As the weather has been rubbish pretty much all weekend I decided to do some reversing of the Freeload loader using Cabal, one of my favourite games ever, as reference.
By the time I finished, I was able to reassemble the whole side 1 of the tape using mostly PRG files extracted by TAPClean, a few of which I customized to my taste.
The set of commands I have to run to master side 1 according to the original mastering plan is as per below:
64tass orchestrator.txt -o orchestrator.prg prg2tap -h "0593434142414C20202020202020201F" -p freeload1.prg freeload2.prg cabal-side1-remastered.tap prg2tap -a -f -l 1000000 orchestrator.prg cabal-side1-remastered.tap prg2tap -a -f -l 1000000 "cabal\009 (4000-4FFF).prg" cabal-side1-remastered.tap prg2tap -a -f -l 1000000 orchestrator.prg cabal-side1-remastered.tap prg2tap -a -f -l 1000000 "cabal\013 (B43E-C7FF).prg" cabal-side1-remastered.tap prg2tap -a -f -l 1000000 "cabal\015 (4000-43FE).prg" cabal-side1-remastered.tap prg2tap -a -f -l 1000000 "cabal\017 (C800-CBFE).prg" cabal-side1-remastered.tap prg2tap -a -f -l 1000000 "cabal\019 (E000-FF3F).prg" cabal-side1-remastered.tap prg2tap -a -f -l 1000000 "cabal\021 (0C40-B43D).prg" cabal-side1-remastered.tap prg2tap -a -f -l 1000000 "cabal\023 (C800-CFFE).prg" cabal-side1-remastered.tap prg2tap -a -f -l 1000000 "cabal\025 (E000-FFF9).prg" cabal-side1-remastered.tap prg2tap -a -f -l 1000000 "cabal\027 (0200-02A5).prg" cabal-side1-remastered.tap prg2tap -a -f -l 1000000 orchestrator.prg cabal-side1-remastered.tap prg2tap -a -f -l 1000000 "cabal\031 (B43E-C7FF).prg" cabal-side1-remastered.tap prg2tap -a -f -l 1000000 -s "cabal\033 (0400-0C3F).prg" cabal-side1-remastered.tap
The first step is to assemble what I refer to as the “load orchestrator”. This is a piece of code that handles most of the protection against crackers and schedules all activities around the loader: how many files to load, what to do once each of them is loaded and what to do once all files are loaded.
In order to master a new game using Freeload only a handful of changes to the orchestrator would be necessary, e.g. the scroll-text and start address customizations. In fact most of the mastering is trivial once the game has been split in a few files that have to be loaded separately (so that game data does not clash with the orchestrator itself, with the load picture and with the load tune). The splitting itself is also trivial, so all in all it would be quite simple to get a fully automated tool-chain in place from this point 🙂
Have you got a game of yours you’d love to see wrapped up in a Freeload-powered TAP file in no time? Get in touch! You haven’t got a custom load picture? No worries, you can skip that bit!