Demystifying WHDLoad

If you’ve not heard of it before, WHDLoad is a fantastic piece of software which streamlines the loading of games from an Amiga equipped with a hard drive. Later in the Amiga’s life, games sometimes came with a hard drive installer when they were supplied with many disks (and in fact it was the purchase of Beneath a Steel Sky, on 15 floppies, that prompted me to purchase a 260MB drive for my A1200 the very next day to try and save myself from disk-swapping injury) but this is an exception rather than a rule. In fact many Amiga games used a non-DOS disk format to perhaps squeeze a few extra bytes on, or provide copy protection, and if you pop one of these in to your Workbench environment all you’ll see is DF0:NDOS and no way to launch the game.

With the rapidly falling cost of mass storage, and the relative rarity of working Amiga floppy drives, this needed to change. A modern CF card and adaptor costs less than 10% of what I paid for that 260MB drive, and offers perhaps 40x the storage – but still, how do you solve the short-sightedness of 1980s developers who didn’t plan for this and supply a hard drive installer? This is where WHDLoad steps in. Through a tremendous effort from the developer Bert Jahn, and many people who have worked to make games available, you can install virtually any game to your hard drive – whether it’s a particular favourite of yours, or even a stinker like Altered Beast, no longer will you have to risk wearing out your precious disks and drives.

So, what is WHDLoad?

Well, it’s probably easiest to think of it as a small “virtual machine” system that sets up an environment for the game to run in. The game doesn’t see anything unusual in its little walled garden, meanwhile WHDLoad is busy setting up the hardware and supplying the files as though they were being read off floppy disk. The game is patched as it runs, so you’ll never see an “insert disk” screen. Importantly, you only have to run one program to start all this off, and the WHDLoad program handles all this from you so it’s simplicity itself for a novice user.

There are only a few requirements needed on the software side of things:

  • WHDLoad executable, in C: – the installer (below) does this for you.
  • A “slave” file per game. These are freely available from https://www.whdownload.com/ which has over 2900 games listed. Put each slave in its own drawer.
  • The files for the game, in the same drawer as the slave
  • Kickstart files, in the Devs:kickstarts drawer

You may be wondering why you need Kickstarts – after all, your Amiga already has a physical chip installed. Well, remember we’re effectively dealing with a virtual environment; by using a small selection of kickstart files, it enables your Amiga to recreate the most compatible environment. Run a relatively recent AGA game on your 1200 and it will load a Kickstart 3.1 image. However if you wanted to play a game from 1988, it may well instead use a Kickstart 1.3 image. The settings for this are held in the Slave file and read by WHDLoad so you don’t need to worry about choosing one.

Do note that although your Amiga will be setting up an environment just for the game, it doesn’t bypass any hardware requirements. In short, no you can’t run AGA games on an ECS machine this way!

The slave file describes how the files are loaded. Some games will be individual files, exactly how the authors made them and if you look in the folder it’s stored in, you’ll see familiar extensions like .iff for images and sound, .txt for text files etc. Other games will be entire disk images and all you’ll see in the drawer once unpacked are disk.1, disk.2 etc – 880KB files which represent the entire structure of the original floppies. Again, you don’t need to worry about converting between them as the slave tells WHDLoad what to do.

A great benefit of WHDLoad is that it doesn’t kill the operating system – you can press a user-definable key, often defaulting to F10 or PrtScr, and quit straight back to Workbench. Fantastic for trying games out in quick succession.

Another benefit of running from slaves is that they’re usually “cracked”, i.e. the copy protection has been removed. Now this generated all sorts of moral questions in the 1980s and 1990s but I think we’re probably past that now. It goes without saying that the handful of new games being released in the 2020’s for the Amiga platform shouldn’t be cracked and spread but older games, well it’s unlikely there’s even a method for collecting sales revenue for them. All you need to know is that you won’t be asked to type in word 5 of the 15th line of page 47 of the manual. Or if you are, you can just press enter.

Hardware Requirements

The majority of games in the Amiga’s history are written for a 1MB Amiga 500 – unfortunately it’s not that simple with WHDLoad. As it’s setting up a virtual environment, and you’re running from hard drive, you’re going to need a bit more memory to hold everything that’s going off.

Typically A500/600 games will need 1-2MB of free RAM depending on how many disks they use and how they load, which means by the time you’ve loaded Workbench, a few background tasks and your hard drive has a bit of memory for buffers you probably want a machine with 4MB of Fast RAM. That’s more than you’ll get in the trapdoor so you’re looking for something that sits on the CPU, or perhaps a Terriblefire card for A500. For AGA games, the requirements are a bit higher and you’ll want at least 8MB of Fast RAM in your A1200 or A4000 – most games will load with 4MB but some will give an error that they couldn’t allocate memory.

CPU-wise, the one the game was designed for will be just fine. There’s no overhead involved, no emulation, so the game will run at the same speed on a 68000 from HDD, as it did from floppy. In some cases the WHDLoad version will actually be running at a better speed as issues with caches and faster processors will be patched.

Playing your first game with WHDLoad

  1. Firstly, download WHDLoad from http://whdload.de/ – most users will need the WHDLoad_usr.lha file. Transfer to your Amiga, unpack and install this.
  2. You’ll then need Kickstarts. We can’t link to them, they’re copyrighted material, but we all know how the internet works. They need to go into Devs:Kickstarts, and be named exactly as shown in the WHDLoad Docs , eg the Kickstart 1.3 file should be called kick34005.A500 and there should be a corresponding “.RTB” file for each kickstart
  3. You’ll then need slaves and games. The easiest way to do this is to use the RetroPlay Archives on the Turran FTP site which contains both the slave, and the game files, in an .lha archive for each title. Download your game(s) of choice and transfer them to your Amiga.
  4. Unpack the lha file onto your Amiga hard drive and run the game. Note that most games use NewIcons – if you haven’t got that installed, you’ll see just a small square icon but it won’t affect gameplay.
  5. Play!

You’ll see a popup that appears when a WHDLoad game is launched, and the most important thing to note is the quit key.

This can be changed globally in a config file in S:, and also per game in the tooltypes (it uses keyboard scan codes like “$59” for F10, so you can specify non-alphanumeric keys). There are other settings and tooltypes for things like turning caches on and off, forcing PAL or NTSC, turning off advanced CPU features if you’re a flash git with a 68060 and so on. 99% of the time however, the defaults will work fine.

The other thing you may see in that pop-up is options such as trainers (giving you extra lives or invincibility etc), fixes, and patches such as skipping intros. These can be ticked, but if you leave the mouse alone the game will start after a few seconds.

Playing your second, third, fourth….. games

So you’ve played your first game, great! But you’re probably already wanting more, and by that we mean you’re imagining having the entire repository of games at your fingertips. Copyright issues aside (and it’s important to note we’re only linking to places you can download these from, not the games themselves), that’s perfectly possible.

If you have access to a Windows PC, you can use a wonderful download tool from EAB forum member mrv2k. Simply grab the latest version and install it, and you can choose collections or types of game to download (for example, if you have an A600 you can untick AGA games). Click download, walk away, have a beer, and between an hour and a week later (depending on your internet speed) you’ll have all the games you could ever want. You’ll just need to get them on to your Amiga and unpack them in the same way described earlier

Obviously an emulator helps here, with the speed cranked up and access to your solid state storage card and your PC’s local folder. One or two games is easy to do manually, you’ll want a bit more of a slick method to do thousands! Deft use of wildcards will help, such as “lha -x a#?.lha Games:a/” to unarchive all games that start with the letter A, into an “A” drawer on your Games drive.

It’s worth noting there are are sometimes updates, to both WHDLoad and to the Slave files which may add features or fixes. When you start a game on an Amiga with internet access, it will warn you when either have been updated but if you lack a network connection you may want to instead make a point of updating your collection every few months, as well as downloading the latest WHDLoad installer.

Once things get a bit busy with hundreds or even thousands of games, you may want to look into a launcher. This stops you having to browse into each drawer to find the games you want to play – a popular choice is iGame, but you could also consider TinyLauncher if you have a lower power machine. This has the advantage that it doesn’t need Workbench to be running, so by calling it early on in your startup-sequence you can save the memory that Workbench would be using. Handy on a 4MB A600!

Save the day

One question you may have is how you save games, if you’re no longer using floppy disks. Luckily you’re not the first to think this, and previous thinkers were also solvers and have put a system in place. Games are patched to redirect floppy disk saves to hard drive and of course to re-load from the same place; by default, it will use the game drawer but you can specify a location in the preferences file in S: to keep all your saves together for easy backup. At that point, each game will create its own drawer when you hit save.

Tweaking

We’ve mentioned a config file a couple of times, but what exactly can be done there? Well, it lives in your S: drawer and is called whdload.prefs. You can edit this with a text editor such as Ed (or TextEdit on newer OS3.2 machines) and you’ll see it’s just a collection of parameters, one per line. These affect all games, so for example we mentioned earlier you can change the quit key for every game by altering the line “Quitkey” in here. Or, you can specify a different save game location. Many of the options are concerned with getting old games running on new hardware, so you can disable caches or change memory behaviour.

There is another way to tweak your settings though, and you can set the tooltypes of a game icon with the same parameters. This will affect only that game – so you could turn off caches in the prefs file, but then turn them back on in the icon information for a specific game.


Conclusion

WHDLoad is an incredible piece of software engineering, and our hats go off to the team involved. With nearly 3000 games available there’s every chance you could be playing something you remember from your childhood in just a few minutes. Do you have to have every game? Of course not – some people love the entire collection being to hand, others like to hunt out a single title and play that in isolation before moving on just like they would have done with real floppies from a shop.

And that brings us onto the drawbacks, of which there are only a few small ones but it’s worth mentioning for balance. The first is accessibility – you’ll need some RAM, and also a way of putting large amounts of files onto your Amiga storage device (the unpacked ECS collection is nearly 5GB for example). Using real floppies, or a Gotek drive to play games doesn’t have this restriction as you can even load ADF files onto a USB stick using a phone or tablet and no extra RAM is needed. I guess what it means is the cost of entry is a little higher.

The second drawback may not be an issue at all for you, and that’s the experience. For some people, the feeling of loading from floppy makes the game come to life. Booting from disk, turning your Amiga into a machine dedicated to that one game with no other distractions is what it’s all about. With WHDLoad, you go in via Workbench with all the bells and whistles and you get a feeling that the game is on top of that, you can quit at any time and play something else.

That said, it’s hard to imagine a world without WHDLoad and near-instant access to such a vast library.

2 thoughts on “Demystifying WHDLoad

  1. I was struggling to get AGS working using WINE so decided to go back a step and just install WHDLoad in my already working copy of WinUAE and use the AGS collection. Thanks to your article I’m going to wipe it all and start from scratch (There is a hell of a lot of filler in AGS collection IMO).

Leave a Reply

Your email address will not be published. Required fields are marked *