eXTReMe Tracker


GBA EMULATION

Name

Atari2600 VCS

Author

Otaku

Description

Atari 2600 emulator for the Gameboy Advance and also the Gamecube via the Gameboy Player.

Screenshots

Download

Not Yet

Information

I've been tinkering with this for well over 8 months and it's now at a stage where I'm prepared to show it off (you should see some of the stuff I've worked on that I'm not prepared to show to the world, a lot of it is totally wacky).

The emulator is written in pure assembly language, the main emulator core is completely coded in Thumb and runs from ROM. The CPU emulation is a combination static recompiler & interpretive core -- for those pesky VCS games that run parts of their code out of RAM -- and is coded in ARM assembly running from the internal WRAM of the GBA.

Frame rate is a respectable 39fps, and a little more optimisation will get that to a nice 60fps. There is no sound emulation yet, and I've only implemented digital joysticks and not all ROM bank switching schemes are in place so only 2KB, 4KB and some 8KB games actually run.

One thing I must shamefully admit is that it currently doesn't run on the real hardware, only under the VGBA emulator. I have yet to figure out what I'm doing wrong though I suspect it's something very obvious.

The emulator can render the game in three modes currently, and I'm thinking of adding a 4th. In " tall mode" you have to rotate the GBA ninety degrees counter-clockwise and that gives you a nice tall screen that renders out almost all VCS games correctly -- though obviously only 160 pixels wide. The other two modes render at the correct orientation but drop pixels or add scan lines as appropriate. As the objects move around on screen they seem to squash/stretch slightly with very noticeable pixellation that I'm not happy with. I'm thinking about how to get a cheesey pixel filtering system implemented that would smooth out this problem by anti-aliasing across two or more pixels. I'm still thinking about that. I'd rather have a fast emulator with imperfect graphics than a pixel perfect emulator that only runs at 30% of the correct speed.