Skip to content

WHDLoad Auto booting

Horace And The Spider edited this page May 24, 2020 · 39 revisions

The WHDLoad AutoBooter is designed to allow games/demos installed via the WHDLoad System to be loaded by Amiberry in a single-file format (e.g. a ZIP or .LHA archive). The file should be specified from command line with the option -autowhdload=<file>

Note: Although Amiberry permits the parsing of .ZIP files into the command line, RetroPie does not currently handle WHDLoad files in this format, and we advise the use of .LHA format files only. Currently available resources for WHDLoad games are provided as LHA, and .ZIP is included for legacy compatibility only.


Emulator Requirements

The following archive should exist adjacent to the Amiberry binary file: (These folders/files are provided with Amiberry)

However, an unpacked whdboot/boot-data folder may also be used.

The following directories must exist:

  • whdboot/game-data must contain game specific data which can improve the compatibility of an individual game.

  • whdboot/save-data will contain game specific written information. this should contain the following sub-folders, which can be empty by default;

    • Autoboots (Will be written to by the Booter)
    • Debugs (Will be written to by the Booter)
    • Savegames (Will be written to by WHDLoad)
    • Kickstarts (Symlinks will be created here - see below)

How it Works:

The booter will automatically mount the HD booter and the game data to the emulated system for easy loading. It will also attempt to select appropriate settings for the game, based on the information available.

The WHDLoad booter uses an A1200 Kickstart 3.1 rom and will search for availability of this rom in the kickstarts path already selected on previous ROM scanning. This is essential for the booter to work.

Where a game requires a slower CPU (e.g. 68000) the A600HD Kickstart 2.05 rom will be searched for and used if available, otherwise the system will revert to a 68020 ECS setup.



A note on WHDLoad Kickstart files (Maximising Booter Compatibility)

Some WHDLoad games require Kickstart files to be made available in Devs:Kickstarts\. These files should either be manually copied save-data/Kickstarts, or otherwise Amiberry will attempt to make 'symlinks'to these files if they are already available in the Kickstart paths location.

For maximum compatibility it is recommended to have the following files, located in the position pointed to by the 'kickstart path' value, which can be set via the Paths panel.

Should you wish to create actual copies of these in Devs/Kickstarts, the renamed name is also stated below.

  • Kickstart v1.2 rev 33.180 (1986)(Commodore)(A500-A1000-A2000).rom - named: kick33180.A500
  • Kickstart v1.3 rev 34.5 (1987)(Commodore)(A500-A1000-A2000-CDTV) - named: kick34005.A500
  • Kickstart v3.1 rev 40.68 (1993)(Commodore)(A1200).rom - named: kick40068.A1200

The full list of compatibile / symlinked Kickstart files is detailed in the Kickstart ROMS (BIOS) section of this Wiki.



Game Specific Settings (Improving Game Compatibility)

The preferences from an individual game can be loaded in one of two ways;

  • From the whdload_db.xml file
  • When loading a game, if an equivalent .uae config file for the game is found in the whdboot/ Path, this (and only this) will be used for the game's individual preferences. This allows the user to create bespoke configurations for individual games, which will not be erased when updating the XML/Database files.



Host Specific Settings (The User's Specific Requirements)

In the file whdboot/hostprefs.conf you can specify input options to be used as the defaults for all games using WHDLoad. This file interacts with the whdload_db.xml file - For example, if the PRIMARY CONTROL tag in the whdload_db.xml file for a specific game lists "JOYSTICK" then, the settings CONTROLLER_1 through 4 from the hostprefs.conf file are utilized as the standard configuration.

If the PRIMARY CONTROL tag for the game in whdload_db.xml lists "MOUSE" as the primary controller, then the controllers mapped to CONTROLLER_MOUSE_1 & CONTROLLER_MOUSE_2 in hostprefs.conf will over-ride the settings for CONTROLLER_1 & CONTROLLER_2 in the emulator. This can be used to the user's advantage to allow different settings to be used for mouse/keyboard & joystick based games, whilst keeping all of the controllers connected.

Note that in this context joy0 indicates the keyboard emulating a joystick.

An example is given below:

CONTROLLER_1=joy1
CONTROLLER_2=joy2
;CONTROLLER_3=joy0
;CONTROLLER_4=joy3
CONTROLLER_MOUSE_1=mouse
CONTROLLER_MOUSE_2=joy0
;RETROARCH_QUIT=TRUE
;RETROARCH_MENU=TRUE
;RETROARCH_RESET=TRUE
;KEY_FOR_QUIT=F12
;KEY_FOR_MENU=F11
;DEADZONE=33
;STEREO_SPLIT=1
;SOUND_ON=FALSE
;ASPECT_RATIO_FIX=TRUE
;FRAMESKIP=TRUE

This would configure the emulator to use joystick 1 and joystick 2 when PRIMARY CONTROL = JOYSTICK in whdload_db.xml and to use the connected mouse mouse and joystick emulation by the keyboard when PRIMARY CONTROL = MOUSE (note that for anything requiring direct use of the keyboard as a keyboard, no mapping is necessary - the keyboard is treated as a fully integrated part of the Amiga, even if it may be connected as a peripheral in real-life applications)

Setting Additional WHDLoad Options/Custom Settings

On first load, the loaded will take from the XML file the slave file and path and if a .uae config for the game is present options will be loaded from that.

The '.uae' file can be manually changed to either select an alternative .slave file within the archive (if multiple slaves are present e.g. where extra levels or data disks are available.) or to add CUSTOM options for trainers/improvements etc. Details of game specific CUSTOM options should be found from www.whdload.de

Also included is the option to view the WHDLoad splashscreen on loading, which gives details of the custom options available, but does increase the load time and requires the mouse in port 0 for AmigaDOS navigation.

The syntax for these options is as follows;

whdload_slave=ManualSelection.slave
whdload_buttonwait=true/false
whdload_custom1=#
whdload_custom2=#
whdload_custom3=#
whdload_custom4=#
whdload_custom5=#
whdload_custom=string
whdload_showsplash=true/false
Clone this wiki locally