befor you start reading, take a cup of coffee. I made a lot of text to explain my problem detailed. Because i can not load more than two links into this posting, i make a answer to show two additional pictures.
I'm Robert, mechanical engineer, and a fan of nostalig thinks (like cars or games). And thats the first step to my problem.
I want to modify my very first game i ever played. It's called "Radix - Beyond the Void". See here for more informations: https://goo.gl/Gy2kTw
I started reverse engineering the game about a jear ago. Within the time (maybe 30minutes a day) i was able to decode the game file and to view all the files the game is made with. A short discription:
The Game has two essential files:
- Radix.exe (the Game executable)
- Radix.dat (the Gamefile)
Radix.exe is loading parts from Radix.dat (like Sounds, images, levels) into the memory and than put it on the screen to move into the menu or -more important- to kill some enemies.
Radix.dat is a compressed gamefile with all necessary things for the Game. I used a HEX editor and Excel to read the index and i was able to extract all files. The Filetypes are:
- Music Files [.wav]
- Sound Files [.wav]
- Level Files [.lgd - own Radix format]
- Text Files [.txt]
- Image Files [own Format, see below]
- A Palette file for the Images [own Radix format]
- Demo Files (if you wait a minute, the games plays a demo) [own Radix format]
- Imagecontainer for Walls, Floors and Ceilings
- Imagecontainer for Things (like enemies or power ups)
The Imagecontainers have their own index and it was not a problem to extract the single images.
It took me some hours of work, i got that the images are indexed pictures. As example a 64px x 64px picture has exactly 4096 bytes. Every byte is a pixel and the decimal number of the byte is a position at the palette file for the colours. After some more hours i wrote a programm to show me the pictures with the right colours out of the palette file:
{See link 1}
The pictures for the game menu are indexed pictures too, but they are 800byte bigger than the resolution is. As example the Mainmenu has 320px x 200px and the file has a size of 64000byte + 800byte. The 800byte are splittet into 768byte for colors (256 red, 256green, 256blue) and some informations about position and size.
{See link 2}
If you stress Google for some minutes you will find a leveleditor to make you own Levels. Within the package with the leveleditor is a programm wich is called "3drescmp.exe".
3DResCmp.exe is needed to generate a new .dat File and play your own Levels in Radix. After i spend some hours with the 3DResCmp.exe i was able to change things like menuimages or Sounds, because the programmers didnt explain all functions of 3DResCmp.exe.
See here a DosBox Video: https://www.youtube.com/watch?v=YHL7irP7r3g
Now my mainly Problem: I'm able to generate a new Radix.dat-File except the Walls- and Thingsimages. This is because i dont know the original format of the images. The images are indexed, i can load the palette but not even one picture. I tryed at least 30 picture formats, tryed Photoshop 2.5 and 3.0 but nothing works.
Now my question: Can somebody reverse engineer the 3DResCmp.exe and can tell me the what format i have to use? I assume that 3DResCmp.exe take a image and create a indexed picture with the loaded palette file.
Radix, the Leveleditor and 3Drescmp.exe is written in Watcom C++ in Version of 1993 to 1995. I tryed IDA and some other tools, but i'm not a C++ programmer and i don't know how to interpret the results.
If you have questions or a tipp feel free to answer. I dont want that you make all the work, but i'm despairing at the images and need help from a software (reverse)engineer.
Greetings, Robert