Run <Obey$Dir>.!Boot

If "<ScummVM$Dir>"="" Then Error ScummVM has not been seen by the filer.

Set Alias$RMLoadIfThere IfThere %%0 Then RMLoad %%*0

RMEnsure SharedUnixLibrary 1.14 RMLoadIfThere System:Modules.SharedULib
RMEnsure SharedUnixLibrary 1.14 Error ScummVM requires SharedUnixLibrary 1.14 or later. This can be downloaded from https://www.riscos.info/packages/LibraryDetails.html#SharedUnixLibrary

RMEnsure DigitalRenderer 0.55 RMLoadIfThere System:Modules.DRenderer
RMEnsure DigitalRenderer 0.55 Error ScummVM requires DigitalRenderer 0.55 or later. This can be downloaded from https://www.riscos.info/packages/LibraryDetails.html#DRenderer

Unset Alias$RMLoadIfThere

| By setting ScummVM$Heap we force libunixlib to always use dynamic areas for data allocations
| This frees up space for plugins and allows to have plenty of space for data
Set HasLargeWimpSlot no
RMEnsure UtilityModule 6.00 Set HasLargeWimpSlot yes
RMEnsure UtilityModule 5.00 Set HasLargeWimpSlot no

If "<HasLargeWimpSlot>" = "no" Then Set ScummVM$Heap ""
If "<HasLargeWimpSlot>" = "no" Then SetEval ScummVM$HeapMax 128

Unset HasLargeWimpSlot

| If running from the desktop, redirect stdout and stderr to a file.
| This shouldn't happen when running from the command line, so that commands like "<ScummVM$Dir> --help" still work as expected.
Set Alias$Run_ScummVM Run <Obey$Dir>.scummvm %%*0 ><Choices$Write>.ScummVM.stdout 2><Choices$Write>.ScummVM.stderr
If "<Wimp$State>"="commands" Then Set Alias$Run_ScummVM Run <Obey$Dir>.scummvm %%*0
CDir <Choices$Write>.ScummVM

WimpSlot -min 28812k -max 28812k
Run_ScummVM %*0

Unset Alias$Run_ScummVM
