More on Freeload

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!

This entry was posted in Retrocomputing, Technical and tagged , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s