Opened 2 years ago

Closed 22 months 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
Version: Keywords:
Cc: Game:

Description

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.

Attachments (1)

stderr (1.5 KB ) - added by ccawley2011 2 years ago.

Download all attachments as: .zip

Change History (5)

by ccawley2011, 2 years ago

Attachment: stderr added

comment:1 by ccawley2011, 2 years ago

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.

comment:2 by lephilousophe, 2 years 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 lephilousophe, 23 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 ccawley2011, 22 months ago

Owner: set to ccawley2011
Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.