Wolf32X - now at alpha 4!
Posted: Tue Feb 03, 2009 6:31 am
Okay, here's my first release of Wolfenstein 3D for the 32X. It's an alpha release - it's certainly not done, but I reached a point where it's rather playable, so I decided to put this out as an alpha release. This uses one SH2 to drive the game - it's surprisingly fast for a 23 MHz CPU on a 16 bit bus. The game runs at 320x200 in 256 color packed mode. Over the last few days, I've been modifying to original engine as I kept running out of memory. As it is now, the graphics have been decompressed, and the sprites all "decompiled" as they call it. Both are now accessed directly from the rom area instead of being loaded into ram. Having worked on this, I have a lot more respect for the folks who did Doom32X.
There's probably a bug in my graphics decompression routines as some wall textures are wrong. Most seem okay, and the sprites all seem okay so far. Again, this is just an alpha release. I do my testing in Gens as I don't have a flash card for my real system. If someone can point out where I can get a 4MB flash card that works with the 32X, I'll get this working on a real 32X as well.
Wolf3D is GPL licensed, so in accordance with the GPL, all source code is included. Feel free to look over the code and use anything you find helpful. In particular, look at the debug_32.c/debug_font.c/debug_32x.h files. They're how I debugged this project. They're derived from the debug files in the PSP SDK from ps2dev, and licensed as BSD, so feel free to use those files. One caveat - the varargs in the SH2 libc doesn't seem to work right. You'll notice in Wolf32X that I use sprintf() to strings, then use Debug32xScreenPuts() at the moment.
Also incuded are the original shareware data files, and my decompressed versions, along with the command line apps to do the decompression. While not really part of the source, I did make some changes to the ld linker scripts, so those are included with the source.
This version has only one assembly optimization right now - the fixed point multiply. I may work in others later. I also plan to use the slave CPU to handle the audio (this version has no audio). The controls are SUPPOSED to be A = run, B = Fire, C = strafe/operate, Start+A+dpad = select weapon, Start+B+dpad = cheats, and Start+C = escape/menu. They seem to be mixed up, but they do work, so just try it. I plan to have six button support where X/Y/Z take the place of Start+A/B/C.
EDIT 2009-02-06: Alpha 2 up. Changes include wall textures fix, control fix, and six button controller support.
EDIT 2009-02-07: Alpha 3 up. The view size now defaults to 256 wide. You can increase the view size with Start+B+Right/Y+Right, and decrease the view size with Start+B+Left/Y+Left.
EDIT 2009-02-09: Alpha 4 up. Digital sound effects now played.
alpha 1
alpha 2
Wolf32X-a3.zip
Wolf32X-a4.zip
There's probably a bug in my graphics decompression routines as some wall textures are wrong. Most seem okay, and the sprites all seem okay so far. Again, this is just an alpha release. I do my testing in Gens as I don't have a flash card for my real system. If someone can point out where I can get a 4MB flash card that works with the 32X, I'll get this working on a real 32X as well.
Wolf3D is GPL licensed, so in accordance with the GPL, all source code is included. Feel free to look over the code and use anything you find helpful. In particular, look at the debug_32.c/debug_font.c/debug_32x.h files. They're how I debugged this project. They're derived from the debug files in the PSP SDK from ps2dev, and licensed as BSD, so feel free to use those files. One caveat - the varargs in the SH2 libc doesn't seem to work right. You'll notice in Wolf32X that I use sprintf() to strings, then use Debug32xScreenPuts() at the moment.
Also incuded are the original shareware data files, and my decompressed versions, along with the command line apps to do the decompression. While not really part of the source, I did make some changes to the ld linker scripts, so those are included with the source.
This version has only one assembly optimization right now - the fixed point multiply. I may work in others later. I also plan to use the slave CPU to handle the audio (this version has no audio). The controls are SUPPOSED to be A = run, B = Fire, C = strafe/operate, Start+A+dpad = select weapon, Start+B+dpad = cheats, and Start+C = escape/menu. They seem to be mixed up, but they do work, so just try it. I plan to have six button support where X/Y/Z take the place of Start+A/B/C.
EDIT 2009-02-06: Alpha 2 up. Changes include wall textures fix, control fix, and six button controller support.
EDIT 2009-02-07: Alpha 3 up. The view size now defaults to 256 wide. You can increase the view size with Start+B+Right/Y+Right, and decrease the view size with Start+B+Left/Y+Left.
EDIT 2009-02-09: Alpha 4 up. Digital sound effects now played.
alpha 1
alpha 2
Wolf32X-a3.zip
Wolf32X-a4.zip