Known failure cases for the new automatic loader code:
* ATF: fails if --detect-loader active
* Bomb Jack: fails if both --traps and --detect-loader
active
* Sentinel, The: fails if --traps active
* Sim City: fails if both --traps and --detect-loader
active
* Technician Ted: fails if --traps active
Logged In: YES
user_id=29214
Sentinel fixed: the problem was a block loader with the ROM
loader, but for some reason is in the TZX file as a Turbo
Speed block. This caused the tape trap to repeatedly try to
load the block before the Turbo Speed block, stopping the
loader detector starting the tape normally; fixed by making
the trap work iff the ROM block is in the "PILOT" state.
While retesting by test suite, I found another problem: the
first block in North and South is not loaded via tape traps.
Logged In: YES
user_id=29214
North and South (and incidentally Super Hang-On) now fixed:
the problem was that they had two "metadata" blocks in a
row. Solved by explicitly skipping these when tape traps hit.
Logged In: YES
user_id=29214
Technician Ted fixed: the problem was that it used the ROM
loader to load part of a block, and then expected to load
the rest of the block via its custom loader. In this case,
we weren't correctly pointing to the middle of the block
when the custom loader started, so everything went wrong.
Fixed by not using traps unless the block is of the right
length; another possible fix would be to set the block up
correctly on exit from a "partial" load.
If we do keep this fix, it would probably be possible to
tidy up tape.c:trap_load_block() as we now know on entry
that the block is the right length.
Logged In: YES
user_id=29214
Leaderboard Par 3 Tape 2 - Side 1.tzx crashes with tape
traps on.
Of everything mentioned in this bug:
Test cases for all of these have been added to check_loaders.
Related
Bugs: #333