View Single Post
Old 01 November 2009, 01:41   #1
Zone Friend

rare_j's Avatar
Join Date: Apr 2005
Location: London
Posts: 640
Floppy disk hdf creator for whdload packs

hdf creator for WHDLoad packs (for WinuaeX)

Here's an Amigados batch script to repackage Killergorilla's WHDLoad packs as separate hdf's.
Also included is a boot disk (adf) with WHDLoad on it and a little menu system for starting each game, reading docs and setting extra options (e.g. custom1=1)

I wanted to have a separate hdf for each WHDLoad game for WinuaeX. This means each WHDLoad game can have a separate WinuaeX configuration, and each can have a set of ten save-states. Save-states work well because the hdf files are never written to.

The Amigados batch script unzips each game pack in turn, examines the contents looking for slaves and docs, then copies everything to a hdf file just big enough for it all to fit. Two extra tiny text files are written to the root of each hdf; one is a readout of the contents of the pack (slaves and docs), the other is a short script to display the menu; both are activated by the boot disk.

If you want to try the batch script you'll need to know how to configure WinUAE and use the Amiga shell. You also must use Bloodwych's ClassicWB.
On the xbox side, I'm using the latest (last?) version of WinuaeX which is v17.
For the boot disk, adding your WHDLoad key and the correct kickstart 1.3 and 3.1 files is optional but pretty handy!
If you're ok with that then here are the instructions for running the batch script.

The way it works is to unzip each game pack inside WinUAE, examine it, then repackage it into a custom hdf file just the right size.
So we need one 'in' drive where some game packs are, one 'out' drive to write the hdf's to, and one drive for temporary usage.

1. Download and unpack the attached archive.
2. Load up WinUAE on your PC with ClassicWB. (I use ClassicWB Lite, any ClassicWB should be ok though (not OS3x or GAAE)). Configure 64 Mb Fast Ram and use JIT.
3. Configure an Amiga drive from an empty directory, call the Amiga volume 'KG-ZIP'.
4. Configure another Amiga drive from another empty directory, call the Amiga volume 'KG-HDF'.
5. Configure another Amiga drive, use the directory 'scripts' from the attached archive, call the Amiga volume 'scripts'.
6. Configure another Amiga drive, this time use the hardfile called 'workspace40MB.hdf' which is in the attached archive.
7. Put a couple of WHDLoad zipped game packs into the windows folder that you assigned to 'KG-ZIP'. (you can get them straight from
8. Start ClassicWB. Open a shell window and cd to scripts:
9. Type 'execute repackage', press return, and cross your fingers.

IF you got some error message, go back and check you did all the steps correctly!

When it is finished you should see some new zip files in the windows folder you assigned to KG-HDF. The game packs have been repackaged into separate hdf's, and zipped up for safe keeping.
The name of the new zip file is the same as the pack it was unzipped from. This is so you can easily keep track of what pack version the hdf's are from.
The name of the hdf inside is the pack's Amiga game name. This name is FFS-friendly and also FAT-X friendly.
How long it takes to batch through your packs depends on how fast your PC is.
3Ghz Quad core Xeon workstation: about 12 packs per minute
1.6Ghz Celeron laptop: about 4 packs per minute

You can now unzip the hdf files and transfer them to the xbox to use with WinuaeX. You must use hdf files with WinuaeX, if you try to use zipped hdf files you may find that configuration files go missing, games don't load... WinuaeX is a bit buggy that way. Plain hdf files work well though.

With WinuaeX you control the mouse with the thumbstick and the keyboard is on-screen. So the aim of the boot disk is to store WHDLoad, your key, and the kickstart roms in one place and be able to browse docs on the game hdf and start the game with as little mouse/keyboard interaction as possible, using as little ram as possible.
You'll need to put your own WHDLoad key and kickstart file(s) on the boot disk in the appropriate places. In WinUAE and ClassicWB again, insert the boot.adf from the attached archive and copy your WHDLoad key to 'S'. The boot.adf is labelled Disk1 in workbench.
Getting the kickstarts on there is a bit more complicated.
If you only want to play OCS games, just copy your kick34005.A500 kickstart image to Disk1:devs/Kickstarts. You're done!
If you want to play OCS and AGA/CD32 games you'll want both kick34005.A500 and kick40068.A1200 (or kick40068.A4000 or kick40063.A600) kickstart images on the boot adf, but for both files to fit they'll need to be crunched with xpk. Here's how to do it.

1. Copy kick34005.A500 and kick40068.A1200 to RAM:
2. Open a shell.
3. Type 'xpack RAM:kick34005.A500 method=nuke' and hit return.
4. Type 'xpack RAM:kick40068.A1200 method=nuke' and hit return.
5. They should have crunched down to around 150K and 330K respectively.
6. Now copy these two crunched files to Disk1:devs/Kickstarts/
7. Finally type 'xscan Disk1:devs/Kickstarts/#?' and hit return.

Either way, the boot adf is now ready to be copied over to the xbox as well.

If you've got this far then you know what to do in WinuaeX. Select your hdf file from the WinuaeX menu, configure boot.adf as DF0, set floppy mode to turbo, choose kickstart 3.1 in the configuration (this is important) and enough fastram to preload your game, and you should be ok!

The boot disk brings up a menu of the contents of the game pack so you can easily select the game or read manuals without rummaging through drawers. Use the thumbstick to move the mouse, yellow button is the left mouse button.
If you select a game it starts.
If you select a doc it is loaded up in TextView. Scrolling with the mouse in TextView is nice, press the yellow button while the cursor is over the text and move the thumbstick up or down, the further you push the stick the faster it will scroll. Press the yellow button again to stop scrolling. You can also use the thin scrollbar on the right. If some text goes off the right edge of the screen, select 'wordwrap' from the commands menu. (black button is right mouse button). Close TextView to go back to the boot menu.

That's pretty much it. But what if you want to use a WHDLoad option like custom1=1 or something to enable a cheat?
If you hold down a mouse button (black or yellow) while the boot disk is loading it will start with a different menu. This is where you can disable preloading and/or enter extra WHDLoad options.
- 'Start without Preload' is useful perhaps if you want to try to load Beneath A Steel Sky (original version) or Monkey Island 2, which are probably too big to PRELOAD on WinuaeX.
- 'Customise WHDLoad Options' brings up a text box where you can use the on-screen keyboard (click the thumbstick) to enter an option like custom1=1 to tell the WHDLoad slave to enable a cheat mode or something. Anything entered here will be added to the WHDLoad command line so multiple options separated by a space are ok (e.g. custom1=1 custom2=1 or whatever).
Anything you do in this menu is not saved anywhere, it's just set temporarily (like selecting 'use' in workbench prefs). So to avoid entering your option every time, you could just start the game once you've set your options and do a save-state.

There is no extra space on the hdf's for game saves. WHDLoad on the boot disk (v16.9) is configured to redirect game saves/highscores/etc. to RAM. So just use save-states in WinuaeX to save your game.

Q & A
-Why a boot disk?
Because I didn't want a copy of WHDLoad, the key, and the kickstarts on every hardfile.

-Do Save-States work ok with this?
I've save-stated my way through half a dozen games using this, the hdf files are never written to so it is safe. Once you saved a state, don't change the WinuaeX configuration for that hdf.

killergorilla, legend!
Bloodwych... is the daddy!
thomas - invaluable hardfile help.

Have Fun!
Attached Files
File Type: zip (733.5 KB, 664 views)

Last edited by rare_j; 06 January 2010 at 21:06. Reason: new improved version! (v1.2.1)
rare_j is offline  
AdSense AdSense  
Page generated in 0.14579 seconds with 10 queries