We stored the wall textures in a compressed format that is different to Doom's.
Once you have reverse engineered the format you can make your own levels and put them in the game. If you look for repeating patterns in the data you should be able to see how large the data structures are and how many of them there are. So, it should be possible for you to extract the levels from the ROM, reverse the process and end up with WAD files of all the Duke Nukem Advance Levels. I think the format started off with a count of all the different structure types (linedefs, sidedefs etc) and then the data was just written out. There is a simple 1:1 correspondence between structures like linedefs and so on from the WAD format and ours. We didn't use WAD files "as is" because of space considerations, we wanted to pack as much onto the cartridge as possible. I was the programmer responsible for the rendering engine, and wrote a conversion tool (called convwad.exe) that converted Doom WAD files to our format. So the Southpaw engine was the only new tech that was unique to DNA. They also had a sound engine that was brought across from their 2D games as well. Torus Games already had a char-based engine that they used for some of their 2D GBA titles and some tools that they used to convert the assets produced by the artists into the palettized GBA char-based formats. Duke Nukem GBA used bitmap mode 4 for the in-game rendering, and a char-based modes for the cutscenes and menu screens.
Let me first tell you a bit about the development process. Unfortunately I haven't worked for Torus Games since 2006, so I don't have access to any of the source code for the Southpaw Engine, which was retired years ago in any case. ^Here's an example of what I'm talking about. Id Software - For making such a great game.Īnd MagicTeam - For making this all possible by handing me their Russian editor, which I was then able to figure out the graphic formats and program the tools. * The recompiler code has also been significantly shortend for sprites, not that it would effect real usage anyway.ĭinomite - For encouraging and the original idea for the entire project. To best fit your replacement graphics! Check out "Extras\Recompile Modes.png" and "Documentation.txt"įor more detail on what you can do with this feature. YSTART and YSTOP values can be modified on the fly * The Recompiler had a big addition to the sprites. * The Recompiler and Decompiler now don't print a shitload of messages. * X1Downscaler can now read headers (*.H) from the Recompile folder if it exists.