ZSNES
I've always been interested in software-based hardware emulators. Now
that desktop PCs are powerful enough to emulate low-end hardware at full
speed, the possibilities of emulation are expanding. Plus, you learn a
ton when you have to implement an entire set of opcodes in software. You
can start to get a good appreciation for what all those computer engineers
do for a living.
ZSNES is a GUI and emulator core that provides excellent emulation of
the 65c816 CPU and SPC700 sound chipset found within the Super Nintendo
video game console. Using ZSNES, you can play SNES games right on your
desktop. In fact, the adventurous people in the crowd can even
use
a real SNES gamepad to play the emulated software.
When it was announced that ZSNES was going to become open source
software, I contacted the authors of the software to discuss some details
of the codebase. They explained to me that the majority of the code was
assembly and that the asm assumed that a linear frame buffer was going to
be the target of the rendering output. So, we discussed a few different
ways of leveraging the DOS and Win32 ZSNES ports for the Linux porting
effort.
I did the initial pass through the ZSNES codebase and ported the DirectX
portions of the Win32 port to Linux by using the
SDL library. Once that was done, I
stepped back and watched a few other volunteers complete the porting
process. I haven't touched it since then other than to help troubleshoot
some input problems.
You can see more information on ZSNES here:
ZSNES's main web site (I am the "Prometheus" fellow listed under the Contributors section)
ZSNES at the Linux Game Tome
|