Site Search
Homepage of Otaku No Zoku
Complete Archives of Otaku No Zoku
About Otaku No Zoku
Subscribe to Otaku No Zoku
Bookmark Otaku No Zoku

Atari 2600 VCS Emulator for GBA :

Gameboy

Ahhhh! The GameBoy Advance. What a wonderful machine. So light! So refreshing! So versatile!

Another Atari VCS 2600 emulator for the new Nintendo GameBoy Advance.

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.

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 actual pixel clock resolution of the Atari 2600 was only 160 pixels anyway so no information is really lost. 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.

Stay posted for more updates.

Notice that these pictures were taken with the PrtScn button on my keyboard and they still look bad. I really do suck at all forms of photography even if it is only performing a screen capture.

Somebody stop me before I emulate again!!

Screenshots:

The original Atari Asteroids.
Screenshot 1 for Atari 2600 VCS Emulator

Activision’s Pitfall
Screenshot 2 for Atari 2600 VCS Emulator

Screenshot 3 for Atari 2600 VCS Emulator

Screenshot 4 for Atari 2600 VCS Emulator

Screenshot 5 for Atari 2600 VCS Emulator

Screenshot 6 for Atari 2600 VCS Emulator

Screenshot 8 for Atari 2600 VCS Emulator

Activision’s Pitfall in landscape mode stretched to fill the screen.
Screenshot 9 for Atari 2600 VCS Emulator

Activision’s Pitfall in landscape mode.
Screenshot 10 for Atari 2600 VCS Emulator

Activision’s H.E.R.O.
Screenshot 11 for Atari 2600 VCS Emulator

Screenshot 12 for Atari 2600 VCS Emulator
— Justin Lloyd

Liked This Post?

Subscribe to the RSS feed or follow me on Twitter to stay up to date!