The crash is being cause by an unimplemented Serial Port SWI. It's calling VTJoystick_Define (&81541), which isn't currently implemented in USBJoystick:
Code: Select all
ADR R0, &B9D0
MOV R1, #8
SWI &81541
Code: Select all
01 C1 00 00 10 00 10 00
You can temporarily fix it by patching out the Serial Port/Acorn support and loading the RTFM support Module. Add the following to the top of !Run:
Code: Select all
JITMEMORYA B958 7A000016 E1A00000
RMLoad adffs:extras.JoyMod
- Magnetic Image
- Serial Port
- RTFM
- Acorn
For Serial Port support, VTJoystick_Define (&81541) will need implementing in USBJoystick.
EDIT2: Reading the Help file, it supports the Magnetic Image Joystick interface, which hangs of the Acorn SWI block and is what the call to SWI &43F41 is doing. It's expecting a pointer to a table of at least four words to be returned in R0. As &43F41 is a valid SWI on RISC OS 3.50+, I suspect it will instantly crash if an Acorn Joystick is available on RISC OS 3.5 or newer.
To fix the crash correctly it needs VTJoystick_Define (&81541) implementing in USBJoystick. Without it, the Joystick controls are mapped incorrectly.