Opened 9 months ago
Closed 7 weeks ago
#13607 closed defect (fixed)
RISCOS: Crash on startup with RISC OS 3.7
|Reported by:||ccawley2011||Owned by:||ccawley2011|
|Priority:||high||Component:||Port: RISC OS|
Attempting to run ScummVM on RISC OS 3.7 causes it to crash with the following error:
Internal error: abort on data transfer at &0000807C
This occurs with the latest stable builds from the buildbot, as well as with the !ScummVM2 build from the 2.5.1 release. RISC OS 5 doesn't seem to have this issue. This can be replicated in RPCEmu 0.9.4.
Change History (5)
by , 9 months ago
comment:1 by , 9 months ago
comment:2 by , 9 months ago
I believe the crash is caused by how plugin is loaded: the plugin data is stored in dynamic area which is placed above the 64MB limit.
RiscOS 3.7 is using ARM 26-bit legacy mode which prevents addressing code above this limit, hence the crash.
comment:3 by , 3 months ago
I have some patches in a branch at https://github.com/lephilousophe/scummvm/tree/riscos37 which avoid the problem but this makes use of a private API of libunixlib (which has not changed in 20 years).
comment:4 by , 7 weeks ago
|Status:||new → closed|
This is fixed in https://github.com/scummvm/scummvm/pull/4691
The previous error was caused by the WimpSlot being too small. The build system now uses makerun if available to calculate the WimpSlot properly.
However, while this fixes static builds, there's still a crash in plugin builds when attempting to call PLUGIN_getBuildDate in a plugin. A backtrace has been attached to this issue.