[Main] [Docs] [Registration] [Installs] [Search] [Team] [Guestbook] [Links]

Usage

WHDLoad can be started from the command line (CLI/Shell) or from the Workbench. Options can specified in a global configuration file and via arguments or Tooltypes. The Slave option is usually required. Other options maybe necessary too, depending on your hardware and the program to execute within WHDLoad. When started from the command line WHDLoad exits with the follwing return codes:

Options and global configuration

There are local and global options. Local options are specified as arguments via the command line or as ToolTypes when started from the Workbench.
If started from the Workbench via an icon WHDLoad will try to update the icon regarding the options PreloadSize, Config and possible options changed in the splash window. If such operation is wished also when started from the command line tools like WBRun (contained in OS3.5/3.9) must be used to simulate a start from the Workbench.
The global configuration file is "S:WHDLoad.prefs". It is a usual ASCII file and contains one option per line. Empty lines and comments are ignored. A comment is line based, starts with the character ";" and goes up to the end of line.
An example configuration file is contained in the WHDLoad package ("S/WHDLoad.prefs").

List of available options

there are three types of options:

numerical: the value of the option is an integer,
on the command line you must use decimal notation, as ToolType you can also use hexadecimal notation indicated by a leading "$"
string: the value of the option is a string
switch: option will be enabled if specified (boolean)

The column Local shows if the option can be used on the command line and as tooltype in the icon. The column Global shows if the option can be used in the global configuration file.

Many options are not available in the special WHDLoadCD32. The column CD≥≤ shows if the option is present in this special WHDLoad version.

Name of optionTypeLocalGlobalCD≥≤Default value
BranchCacheswitchx--
ButtonWaitswitchxxx
Cacheswitchx-x
Chkswitchx--
ChkAudPtswitchx--
ChkBltHogswitchx--
ChkBltSizeswitchx--
ChkBltWaitswitchx--
ChkColBstswitchx--
ChkCopConswitchx--
ChkIntsswitchx--
ChipNoCacheswitchxx-
Configstringx-x""
ConfigDelaynumericalxxx400
CoreDumpswitchx--
CoreDumpPathstring-x-PROGDIR:
Customstringx-x""
Custom1numericalx-x0
Custom2numericalx-x0
Custom3numericalx-x0
Custom4numericalx-x0
Custom5numericalx-x0
Dswitchx--
Datastringx-x-
DebugKeynumericalxx-$78 (CAA)
DCacheswitchx--
ExecuteCleanupstringxx--
ExecuteStartupstringxx--
Expertswitch-x-
ExpChipswitchx--
ExpLocalswitchx--
Exp24Bitswitchx--
FileLogswitchx--
FreezeKeynumericalxx-$78 (CAA)
FullChipswitchxx-
LogBuffernumericalxx-4096
MMUswitchxx-
NoAutoVecswitchxxx
NoCacheswitchx-x
NoFileCacheswitchx-x
NoFilterswitchxxx
NoFlushMemswitchxx-
NoMemReverseswitch-x-
NoMMUswitchxx-
NoResIntswitchx-x
NoReqswitchxxx
NoVBRMoveswitchx-x
NoWriteCacheswitchxx-
NTSCswitchxxx
PALswitchxxx
Preloadswitchx-x
PreloadSizenumericalx--
QuitKeynumericalxxx$59 (F10)
ReadDelaynumerical-xx0
RestartKeynumericalxxx$78 (CAA)
SaveDirstringx---
SavePathstringxx--
ShowRegsstring-x-SYS:Utilities/MultiView
Slavestringx-xWHDLoad.Slave
Snoopswitchx--
SnoopAGAswitchx--
SnoopECSswitchx--
SnoopOCSswitchx--
SplashDelaynumericalxxx200
StoreBufferswitchx--
SuperScalarswitchx--
TimeOutnumericalx-x0
WriteDelaynumericalxx-150

Example usage

Workbench: Workbench Options
CLI or Shell: 1> WHDLoad SuperGame.Slave Preload NTSC QuitKey=69 Custom1=1

Description of each Option

ButtonWait/S

This option does not affect WHDLoad itself, but can be tested by the Slave.
The meaning of this option is that if set, the users wants the installed program to wait for pressing a button when it shows pictures and/or plays music and normally it does this only for a very limited time (due to fast HD/RAM loading compared to slow disk loading).

BranchCache/S

This option enables the branch cache of the 68060. On other CPU-types it has no effect.
The option has no effect if NoCache/S is also set.

Cache/S

This option enables the instruction cache and disables the data cache for the installed program. On the 68030 also the instruction burst will be enabled. If the MMU is used by WHDLoad it marks the Chip-Memory as Cacheable Writethrough (impercise).
The option has no effect if NoCache/S is also set.

Chk/S

This option is a shortcut and enables the options ChkBltSize/S, ChkBltWait/S and ChkColBst/S.

ChkAudPt/S

This option checks that pointers written to the Custom audio data pointers are valid chip memory addresses. The pointers must be not null and inside BaseMem. That feature works only in conjunction with one of the SnoopOCS/SnoopECS/SnoopAGA options. This feature should help to diagnose problems with audio replay routines.

ChkBltHog/S

This option checks that all the time the blthog (bltpri) bit in the custom.dmacon register is not set. That feature works only in conjuction with one of the SnoopOCS/SnoopECS/SnoopAGA options. Enabling of blthog gives the blitter priority over the cpu regarding memory accesses, which may cause problems on some hardware configuration. Also sometimes it can be more performant to grant the processor some bus cycles.

ChkBltSize/S

This option checks that the installed program correctly uses the blitter, so that only valid memory areas will be used for the blitter operations. That feature works only in conjunction with one of the SnoopOCS/SnoopECS/SnoopAGA options. All blitter operations will be checked except the line mode.

ChkBltWait/S

This option checks that the installed program correctly waits for the blitter finish before starting a new blitter job. That feature works only in conjunction with one of the SnoopOCS/SnoopECS/SnoopAGA options.

ChkColBst/S

This option checks that all the time the color bit in the custom.bplcon0 register is set. That feature works only in conjunction with one of the SnoopOCS/SnoopECS/SnoopAGA options. Some hardware especially flickerfixer require that this bit is set to output a proper video signal. Therefore for best compatibility this bit should always be set. Checked are direct writes to custom.bplcon0 and all Copper lists.

ChkCopCon/S

This option checks that the installed program does not enable the Copper access to DMA registers via setting custom.copcon. That feature works only in conjunction with one of the SnoopOCS/SnoopECS/SnoopAGA options. It may sometimes useful to detect if programs use the Copper to control DMA activities.

ChkInts/S

This option checks on each interrupt occuring if there is a matching pair in intreq and intena set for this interrupt. If not the installed will be terminated with an appropriate error request. This feature allows the easy detection of interrupt acknowledge problems on faster machines (68040/060) or bad hardware which causes unwanted interrupts. Due the fact that the condition may also raise if the interrupts are disabled by setting intena at the same time an interrupt occurs this has been implemented as a switchable option. Starting with WHDLoad version 17.1 this option enables also all sanity and keyboard checks for the interrupt levels 4-6 which are normally only performed in the levels 1-3.

ChipNoCache/S

This option disables the cachebility of the Chip-Memory (BaseMem). It should be used on hardware which does not allow the cachebility of Chip-Memory (e.g. BlizzardPPC boards) to avoid slowdowns in the execution speed of the installed program. See also CPU Cache Handling.

Config/K

Using this option configuration items can be specified which will be displayed in the WHDLoad startup splash window. This option will overwrite the ws_config variable specified in the Slave. For syntax to be used check ws_config in the Autodocs.
If there is neither ws_config in the Slave nor Config/K set and the Slave checks Custom1-5/K/N or ButtonWait/S items via the resload_Control function, WHDLoad will add a Config/K option to the icon if started from the Workbench. The type of the items will be derived from the actual value of the Custom1-5/K/N options (0-1 boolean, 2-63 list, >63 binary).

ConfigDelay/K/N

This option specifies the time in 1/50ths seconds that WHDLoad shows the information window at startup if there are any buttons (see Config/K and Expert/S) on it. If ConfigDelay/K/N is lower than ReadDelay/K/N or SplashDelay/K/N it is ignored. The window is displayed at least as long as Preload/S is processing. If a configuration button is pressed the timer for ConfigDelay restarts.
If the option is set to -1 a Start button is added to the window and it remains open until this button has been pressed. The splash window can also be closed by pressing Space, Return or Enter. If Esc is pressed WHDLoad will stop Preload/S and immediately quit.

CoreDump/S

If selected, on every exit from an installed program, WHDLoad creates a memory and register dump. This may be useful to rip a music-module from the memory dump or for debugging.

CoreDumpPath

The destination directory for all dump files created by WHDLoad.

Custom/K, Custom1/K/N, Custom2/K/N, Custom3/K/N, Custom4/K/N, Custom5/K/N

These options are not used by WHDLoad itself, but can be tested by the Slave to control various Slave specific things. Custom/K can contain a string and Custom1-5/K can only hold an integer. Check the documentation of the specific install if it supports Custom options.

D/S

This option is useful for debugging. If the option is enabled and a supported software freezer (HRT/TK) is found in memory, WHDLoad simulates an NMI before executing the first instruction contained in the Slave to jump in the freezer.

Data/K

Using this option a directory can be specified which will be the base directory for file operations of the installed program. Also multiple directories can be specified seperated by a comma (therefore a directory name specified cannot contain a comma!). If multiple data directories are used on loading all specified directories are tried in order to load a file. Writing will always occur on the first data directory. This options overwrites the value ws_CurrentDir contained in the Slave.

DCache/S

This option enables the instruction and the data cache for the installed program. On the 68030 also the instruction burst will be enabled. If the MMU is used by WHDLoad it marks the Chip-Memory as Cacheable Writethrough (impercise).
The option has no effect if NoCache/S is also set.

DebugKey/K/N

Sets the rawkey code to quit the installed program with writing coredump files. This works only if the expert mode is active and the VBR is moved by WHDLoad (NoVBRMove/S is not set and the cpu is at least a 68010) or the Slave itself supports it.

ExecuteCleanup

With this option a command can be specified which will executed by WHDLoad on exit. Using the system command Execute also a script can be executed.

ExecuteStartup

With this option a command can be specified which will executed by WHDLoad on startup. Can be used to disable hardware which makes problems in conjunction with WHDLoad, like a IP or USB stack. See the Bugs chapter for further infos. Using the system command Execute also a script can be executed.

Expert/S

This option enables the expert mode of WHDLoad. It affects the DebugKey/S feature and warnings during the switch between installed program and OS (color cycle Copper screens). If expert mode is not active DebugKey/S is not available. In expert mode another button in some error requesters of WHDLoad appears. This button named Show Regs allows to display register and status information similar as written to the register dump. Additionally some buttons are added to the splash window to switch a selection of debugging related options. Changed options from the splash window are saved to the icon if started from the workbench.

ExpChip/S, ExpLocal/S, Exp24Bit/S

If the installed program uses expansion memory (ws_ExpMem) these options can be used to force WHDLoad to allocate this memory respective in Chip Memory, Local Memory or 24BitDma Memory. This may result in a performance degration because the specified memory may be slower accessed by the CPU compared to the default Fast memory. You can use third party tools (e.g. SysInfo, GvpInfo,...) to check your memory configuration and see which memory has which properties.
In general these options are intended to fix compatibility problems of installed programs on fast machines by making them slower in execution due using slower memory.

FileLog/S

This option is only for debugging purposes. See Dumps and Logfiles for more info.

FreezeKey/K/N

If you are using one of the supported software freezers (HRTmon or Thrillkill) you can use this option to setup a rawkey code on which pressed WHDLoad will enter the freezer. For this to work, the VBR must be moved by WHDLoad (NoVBRMove/S must not be set and the cpu must be at least a 68010) and the freezer must be active. Check also the chapter System Monitors / Freezer for futher infos.

FullChip/S

Specifying this option causes WHDLoad to save and restore not only the chip memory area which is set as ws_BaseMemSize in the Slave but instead the whole chip memory (execbase.MaxLocMem). If WHDLoad uses a present MMU to protect memory this covers only illegal accesses caused by the CPU. Not covered are direct memory accesses by coprocessors like Blitter/Disk-DMA. These DMA actions are able to corrupt the chip memory undetected by WHDLoad's memory protection. With this option selected such faults cannot harm the host operating system because the chip memory is saved and restored completely.
Before the installed program will be started the additional saved chip memory (the part between BaseMemSize and MaxLocMem) will be filled with a special pattern. After the installed program has been returned, WHDLoad checks the additional memory if it has been altered. If there is a change WHDLoad will show an appropriate error requester. Only in this case the additional memory will be written to the memory dump file (not the complete dump file), which allows further investigations.
This option may be useful for development/debugging to avoid corrupting the host AmigaOS and also to aid temporarly broken installs which have not completely fixed all bugs of the installed program.
FullChip/S cannot be enabled together with option ExpChip/S. If both are set FullChip/S is ignored.

LogBuffer/K/N

Using this option the internal buffer of WHDLoad used to carry log messages from the FileLog/S facility and the resload_Log function can be specified. The default length for the buffer is 4096 bytes. This buffer is only allocated if the FileLog/S option has been specified. If the buffer is full, WHDLoad will interrupt the installed program and switch to the operating system to flush the buffer and write the contents to the log file. To avoid such switches the size of the buffer should be choosen large enough to hold as many entries as possible.

MMU/S

This option must be used on 68030 machines to get the MMU related features working (memory protection, improved cache management, Snooping, resload_Protect#? functions). On 68040/060 this option has no effect because the MMU will be used by default. It is recommended to set this option in the global configuration file on all systems containing a 68030 with a working MMU (i.e. not a 68ec030) because it increases stability and security a lot. If the option NoMMU/S is also set this option has no effect.

NoAutoVec/S

If selected WHDLoad will not quit if an unexpected autovector interrupt or NMI occurs (vectors #25-31 / $64-$7c). This should be used on systems/hardware which will create at random such interrupts to prevent WHDLoad from exiting. But note that this option does not heal the broken hardware which creates such interrupts. Some installed programs may still not work correctly on such hardware also with this option enabled. So better would be to remove (or fix if possible) the hardware which creates the interrupts.

NoCache/S

If selected all caches will be disabled.
This option overrides BranchCache/S, Cache/S, DCache/S, StoreBuffer/S and SuperScalar/S.

NoFileCache/S

Disables the file cache of WHDLoad and forces a switch to the OS for each disk operation of the installed program.
This option disables Preload/S.

NoFilter/S

Disables the audio filter. Note that this option only affects the initialization at startup, if the installed program itself changes the state of the audio filter this option will be without effect.

NoFlushMem/S

Normally WHDLoad flushes the memory at startup to get as much free memory as possible for the Preload/S operation. That will remove all unused ressources like libraries, fonts etc. from memory. Using this option WHDLoad will not flush the memory. It may be used on systems with a lot of free memory to avoid reloading resident ressources and thus improve system performance.

NoMemReverse/S

If that option is activated WHDLoad will not allocate memory using the MEM_REVERSE flag. There has been reports that using this flag causes problems on some configuration (e.g. configs using memory in the PCMCIA slot of the A600/A1200 as fast memory, configs with a M-Tec 1230/8 MiB OS3.0). The reason for these problems is not known. This option may also help if some of the higher RAM is broken, because WHDLoad will then use memory at lower addresses first. If you get strange errors this option may be worth a try.
This option is always active on Kickstart 2.0 (V37) due an implementation bug in this Kickstart possible freezing during exec.AllocMem.

NoMMU/S

If this option is set WHDLoad will not use the MMU. This is a critical and dangerous option recommended only for testing or debugging and not for normal use. See chapter MMU for more info. The option overides MMU/S.

NoReq/S

This option can only be used when WHDLoad has been started from the command line (CLI/Shell). Started from the Workbench it has no effect. The option forces WHDLoad to not show any requesters in a new, separate window but instead output messages to the command window WHDLoad has been started from.

NoResInt/S

This option disables interrupts during the execution of resload functions. Normally interrupts are allowed while resload functions are executed. Interrupts may play sound, do screen updates or do other important work. Disabling them can cause sound/screen distortion or overall malfunction. But improper working interrupts may destroy internal WHDLoad data areas, which will usually lead to crashes of WHDLoad and probably the whole operating system. This option can be used to check for such problems. If an install behaves strange or crashes WHDLoad without this option, but works fine with this option enabled the reason is very probably an interrupt problem. In such cases the install needs to be fixed.
Starting WHDLoad version 17.0 when entering a resload function the blitter will be checked if being active. If so WHDLoad will terminate telling you.

NoVBRMove/S

By default WHDLoad moves the vector table using the VBR (Vector Base Register) to a different memory location. This has the advantage that the installed program cannot change the vector table, which increases security and stability of WHDLoad greatly. Some installed programs will not correctly work with a moved vector table. The reason for this may be that the installed program uses processor exceptions or is doing other strange stuff. In such a case, this option must be used to prevent WHDLoad from moving the vector base.
Another feature of the moved VBR is that WHDLoad can check the keyboard each time an Autovector interrupt occurs. With this check WHDLoad is able to terminate the installed program independently from the assistance of the installed program if QuitKey/S or DebugKey/S is pressed or to enter a Monitor when FreezeKey/S is pressed.
The VBR moving feature requires at least a 68010 to work. On a 68000 this option has no effect, because there is no VBR and the vector table always starts at $0 and cannot be moved. On a 68000 WHDLoad supports some special hardware (ACA500, Zeus) which allows to place the Autovector interrupt vectors on a different memory location to be able to always support the QuitKey/S feature. These special hardware features are not used if this option has been enabled.

NoWriteCache/S

This option disables the disk write cache feature of WHDLoad. Without this option WHDLoad will try to cache all write operations in memory and defer them until program exit to avoid unnecessary switches to the operating system.

NTSC/S

If selected, WHDLoad will use an NTSC display (60Hz) for the installed program. On a PAL Amiga, the NTSC monitor driver must be installed in "DEVS:Monitors/".

PAL/S

If selected, WHDLoad will use a PAL display (50Hz) for the installed program. On an NTSC Amiga, the PAL monitor driver must be installed in "DEVS:Monitors/".

Preload/S

If this option is enabled, WHDLoad will load as many files and disk images as possible into memory at startup. If during preload the free memory is not sufficient for a file preloading will stop. Then only a part of the files are preloaded. This increases performance when the installed program is running, because it avoids switching to the OS to load data directly from the harddisk. This option should be enabled always.

PreloadSize/N

This option tells WHDLoad how much data can be preloaded. It is used only to calculate the Preload progress bar in the splash window. If the installed program is started from the Workbench WHDLoad will itself set/update this option as a ToolType after returning to the operating system. The PreloadSize count is not only the sum of the filesize for all files. So you can hardly calculate the value yourself.

QuitKey/K/N

Sets the rawkey code to quit the program, this works only if the VBR is moved by WHDLoad (NoVBRMove/S must not be set and the cpu must be at least a 68010) or the Slave itself supports it.

ReadDelay/K/N

This option specifies the time in 1/50ths of a second that WHDLoad will wait after it has loaded data from disks. It will also wait this time after Preload/S has finished. This solves problems with drives (e.g. CD drives) which want do something after reading (e.g. switching the motor off).

RestartKey/K/N

Using this option you can setup a rawkey code on which pressed WHDLoad will restart the installed program.

SaveDir/K

This option specifies the sub directory for write operations of the installed program in conjunction with the SavePath/K option. It may be required to set it explicitly instead of letting WHDLoad determine it if you have installed multiple versions of a game which use the same Slave but have incompatible save files. It may be also useful if the Slave doesn't contain the name of the game and the filename of the Slave is not what you like to have as the save directory name.

SavePath/K

This option forces WHDLoad to redirect all write operations by the installed program to a different location on disk. This option specifies the base directory for all installed programs. Each installed program will have its own sub directory therein. The sub directory will be created by WHDLoad if it doesn't exist (during the first write operation). The name of the sub directory can be specified using the SaveDir/K option or when not set will be derived by WHDLoad from the infos of the Slave (ws_name or the Slave filename). Internally this save directory is handled as an additional (primary) Data directory.

ShowRegs/K/N

This option is only useful in conjunction with the option Expert/S. With this option the program can be specified which will be used by WHDLoad to display the register dump if the Show Regs button in an error requester by WHDLoad will be pressed. WHDLoad will append the filename of the temporary saved file (currently T:.whdl_register) onto the specified command string.

Slave

Name of the Slave which should be used by WHDLoad. The Slave contains the interface code which is required for communication between the installed program and WHDLoad.

Snoop/S, SnoopAGA/S, SnoopECS/S, SnoopOCS/S

These options enable the CIA/Custom register snoop feature of WHDLoad.

SplashDelay/K/N

This option specifies the time in 1/50ths seconds that WHDLoad shows the information window at startup. If SplashDelay/K/N is lower than ReadDelay/K/N it is ignored and the window is displayed using the time from ReadDelay/K/N. The window is displayed at least as long as Preload/S is processing.
If the option is set to 0 no window will be displayed at all. If the option is set to -1 a Start button is added to the window and it remains open until this button has been pressed. The splash window can also be closed by pressing Space, Return or Enter. If Esc is pressed WHDLoad will stop Preload/S and immediately quit. See also ConfigDelay/K/N.

StoreBuffer/S

This option enables the Store Buffer of the 68060. On other CPU-types it has no effect.
The option has no effect if NoCache/S is also set.

SuperScalar/S

This option enables the ability of the 68060 to execute multiple instructions per machine cycle. On other CPU-types it has no effect.
The option has no effect if NoCache/S is also set.

TimeOut/K/N

If set lets WHDLoad and the installed program quit after the specified time. Requires that option NoVBRMove/S is not set and that the installed program does not modify the ciaa.ciatod timer. The time after to quit is specified in 1/50ths of a second. To measure that time for a demo or game enable option Expert/S and set a DebugKey/K/N, when the point you want to the quit the program is reached press the debug key. Now look into the created .whdl_register file and search the ciaa-event value. If your Power Supply Frequency is 50 Hz then it's the value you have to set with TimeOut/K/N, if the Frequency is 60 Hz you have to multiply the value with 5/6.

WriteDelay/K/N

This option specifies the time in 1/50ths seconds that WHDLoad will wait after writing anything physically to disk. It affects all resload_Save#? functions and the FileLog/S feature. This makes sense because filesystems will usually not write data immedately to disk. It takes some time (1..3 seconds) until all structures of the filesystem have been successfully updated. The default value for WriteDelay is 150 which lets WHDLoad wait 3 seconds after each write to the harddisk. You can set this value to 0, but then you should never exit by a reset from the installed program because saved data may not be written correctly to disk.
[Main] [Docs] [Registration] [Installs] [Search] [Team] [Guestbook] [Links]