ARM7TDMI Emulation - JetSetIlly/Gopher2600-Docs GitHub Wiki
Gopher2600 provides emulation the ARM7TDMI CPU that is found in the Harmony
cartridge. The presence of this CPU allows for highly flexible co-processing.
Although the Harmony itself executes in both ARM and Thumb modes, Gopher2600 currently only emulates Thumb mode.
ARM Preferences
The characteristics of the ARM processor can be changed via the preferences
window. It can be opened with the F10
hotkey.
Immediate ARM Execution
instructs the emulation to execute the Thumb program
instantaneously without any cycle counting. For Performance reasons, you may
want to have this selected but for development work you should leave it
disabled.
If immediate mode is disabled then the Default MAM State
can be selected.
This is best kept set to the default, Driver
. This means that the emulated
drivers for the ARM using cartridge type set the MAM appropriately. If
required, this can be changed to Disabled
, Partial
or Full
.
The Abort on Illegal Memory Access
option controls what happens when the
custom Thumb program tries to read or write to memory that doesn't exist. If
the option is on then the Thumb program will exit early and the 6502 program
(ie. normal console operation) will continue.
Note that if the memory access is an instruction fetch the program will always exit early regardless of this option's setting - there's nothing meaningful that can be done if the PC value is out of range.
Details of illegal memory accesses are always written to the log, regardless of
the Abort on Illegal Memory Access
option.