Originally Posted by BoyC
I wonder if we could create pc-playable versions of the demo levels this way?
I think so too.
- ST MP1 files have 868 extra bytes used for the copy protection not needed on PC (not present in the ST demos though).
- Cadaver first demo (Gate House) stores data differently and some data are missing. To port it on PC, data must be reordered and completed with existing vanilla levels.
- graphics are stored identically (no need to deinterlace bitplanes).
- no endianness issue in the data files.
- PC files don't contain the length at offset 0 (so should be removed).
- ROUTINEn.TAD files contain executable code (68k for ST, x86 for PC). This is a vector of hard coded functions used in-game.
To reconstruct the ROUTINEx.TAD file for PC:
- Using vanilla Cadaver & extension (not the demos), we could identify each function in ROUTINEx.TAD files. Each function already maps its 'other system' counterpart because the function index to be called is read from the data files. And those data files are the same between ST/PC -> the meaning of the function called is the same -> we have the corresponding x86 code of these 68k functions.
- By comparing vanilla+extension with demos on ST, we could quantify the amount of shared functions. With the hope that 80% of the functions are the same, we would ~only~ have to code the remaining functions on PC. Maybe x86 code should be rebased.
I see only 1 (big) problem to port the second (Temple) and third (Last Supper) demos. For the first demo (Gate House) more work has to be done to convert the data.