Some news about my Cadaver Viewer.
We have worked hard with Jotd to understand how levels where stored.
You can see on the screenshot:
- a map display (top right)
- a level explorer which shows the rooms and their entities (on the left)
- a script window (at the bottom)
The last feature added is the decoding of the internal interpreter which executes scripts attached to rooms & items. Most of the 93 instructions and 29 type of events are known.
On the picture, you can see the room has 5 attached script:
- 3 scripts are triggered when a zone is collided (yellow rectangle)
- 1 script is triggered when the room timer elapses
- 1 script is triggered when the player enters the room
The script window shows the third zone script when the players touch the bottom right yellow rectangle (the scripts can be viewed but not executed).
Green items have scripts attached to them. They are shown when the item is selected (see the rat at the bottom which has an OnOpen & OnLook event).
The viewer can read the vanilla and The Pay Off levels. Demo levels can't be loaded because they are compressed differently.
Actually, i have lost motivation to work on the viewer for the following reasons:
1) Edited levels can't be saved back because the compression routine is unknown. I have disassembled the decompression code, but there is no way to reverse the algorithm easily. The game can be hacked to load uncompressed levels, but because each level does not share any data with the others, the whole levels are 1,3 MB big (without taking into account the game itself).
2) Each level include 68k assembly code describing some behavior. So the only way to make a full level is to code 68k. Not very smart. Maybe most of the code is the same between the levels, so we could reuse it for the new ones, to be confirmed.
3) Demo levels can't be loaded because the loading and decompression routine are not the same. And if we successfully decode it, the levels might be not compatible (different version of the game engine, data stored differently, ...).
So those 3 points make the work even harder, beside the understanding of the in-game data. And if i have some spare time, i will rather work on disassembling another game.
Originally Posted by BoyC
I'm still interested in the effort though and would love to help you guys out in mapping the data files! You're way ahead of me, so if you have some docs about what's mapped and what's missing that would help a lot.
I will post the viewer with its source soon, maybe it could help you. But i will not have much time to directly help you.