As pointed out by SLC, the original “Turrican loader” module in TAPClean was including the XOR checkbyte as part of the Data file payload.
I also realised that the module was lacking the following features:
- checking the integrity of turbo Header files
- extracting Header payload to PRG
- computing Header payload CRC32s and including them in the overall “magic” CRC32 value
I’ve therefore rewritten the “Turrican loader” module from scratch. It’s available in version “0.33-pre-10” which can be checked out using the “v0_33_pre_10” tag 🙂
As I was working at the source code, I also decided to do some due maintenance / refactoring of a few modules. I essentially added some comments and renamed a number of functions to make it clear which module they are part of. I’ve thus been able to also remove a number of duplicate function and variable declarations. Small steps, but definitely in the right direction to facilitate code maintenance ahead of more substantial changes 🙂