Create a stub module header in the JIT RMA Heap and insert into the RMA, this needs to contain the SWI table, Command table and all Module entry points: Init, Start, Exit, Service (coded)
All entry points need a managed entry/exit (coded)
JIT RMA Heap and code space need to be paged in on entry, if the current Application limit (Wimp_ReadSysInfo 11) is small enough or deferred if not
ADFFS' Vector handler needs recoding so all Vectors, Callbacks, CallEvery etc are managed within ADFFS Module space and not JIT space as is currently the case (coded)
Re: 26bit Module support
Posted: Tue Jun 30, 2015 12:01 am
by JonAbbott
The latest Dev build now has 26bit Module support (points 1 and 2 in OP), you'll need the latest obey.zip to test the games below:
Alerion
possibly a corrupt floppy image (resolved)
alternative fire (ALT) is the only sound that works
can't change keys
can't exit demo mode (non-issue, press Break key to exit)
Alderbaran (crashes starting Wimp task)
Alone in the Dark
crashing with Page Zero access error (resolved)
not setting the correct palette (resolved)
Apocalypse
Arc/A3000 Christmas Box, The: Brixx!
Arc/A3000 Christmas Box, The: PON! in Winterland
Arcendium
possibly a corrupt floppy image (resolved)
Arcade 3
Bug Hunter in Space
Burn 'Out (crashes loading)
Carnage Inc.
Page Zero access bugs need fixing (resolved)
some sound not working (resolved)
no text displayed in-game, happens on all RO versions except 3.11 and 3.71 SA (resolved)
Cascade
working with minor graphics corruption (resolved)
Cataclysm
needs protection patching as in The Dungeon (resolved)
crashes when you start a level (works on RO5 SA) (resolved)
Caverns
requires VIDC cursor support to display highscore and ship (resolved)
The Cobalt Seed
loads code into OS_Heap allocation blocks, which can't currently be patched
Darkwood
Spawns a second task to run the main game, which isn't Hypervised by ADFFS (resolved by bypassing the Wimp task)
crashes loading after disk swap prompts (resolved)
page zero accesss bugs (resolved, but needs play testing)
not regulating its speed correctly
Deeva
crashes when you start a level due to OS_Claim in BASIC code (resolved, BASIC SYS command now hypervised)
game still running in background after game over - FX 13,4 isn't working
Diggers
hangs on the intro - sound IRQ's aren't occuring (resolved)
requires hardware mouse support (resolved)
screen corruption, getting MODE Modules to work will resolve. Needs a 320x200 screen and the OS to be aware of its dimensions (resolved)
audio not correct on the Pi but is okay on RO5 SA from 2.52e (resolved)
VIDC Type 3 translation isn't working correctly on VIDC20, but is okay on the Pi
crashes after a demo loop (resolved)
Dominate (working, needs reimaging as the 'board2' Sprite is corrupt)
Drifter
crashes calling protection code in sprte, which relies on the CPU pipeline for it's last instruction to execute (resolved by adding pipeline support)
line 72 of the BASIC code calls init_stack, which changes USER R13 and causes BASIC to crash on RO5 (resolved)
no sound effects due to an issue in 32bit Stasis Module (resolved by switching back to original Stasis Module)
hangs when you quit a level via "Q" key (resolved)
Drop Ship
needs protection patching as in The Dungeon (resolved)
crashes loading (works on RO5 SA) (resolved)
The Dungeon
crashes after the sound Modules perform a buffer fill (caused by VProtect)
E-Type
Elite (Wimp_Initialise is hanging)
Empire Soccer 94
OS_SpriteOp reports an error on loading (resolved)
hangs on the title credit screen (resolved)
Fireball II
Flashback
Formula Two Thousand
needs protection patching as in The Dungeon (resolved)
crashes starting Wimp task
FRED
requires CPU pipeline support of STR Rx,[PC, #-4]
Games Minipack Five: Fireball II
Games Minipack Five: PON!
Grievous Bodily ARM
screen width incorrect - possible issue with VIDC20 translation as it occurs on RO3.5+ (okay on RO3.11 with MonitorType set to 0) (resolved)
scrolling not smooth on the Pi
Hamsters (Wimp_Initialise is hanging)
Hero Quest
fails to OS_CRC verify the KGM Module at the end of the loader sequence (resolved)
hangs issuing SWI Mus_Off after selecting the language (works on RO3.71 SA) (issue in QTM, resolved)
Holed Out!!
Inferno
crashing when you toggle the sound on/off (works on RO5 SA) (resolved)
crashing when you start the game (works on RO5 SA) (resolved)
James Pond II Robocod
scrolling is altering the screen width, occurs on RO3.71 RPC as well, so could be VIDC translation related
Music notes are the wrong pitch, happens on all RO versions
James Pond II+ Robocod
selects the wrong video mode (resolved, bug in VIDC20 emulator)
doesn't start on the correct level (resolved)
scrolling is altering the screen width, occurs on RO3.71 RPC as well, so could be VIDC translation related
Kaptain Konflict (crashes when you enter the level)
KerBang
hangs loading the Wimp task, was working on RO5 SA until BASIC SYS was Hypervised
The Last Ninja
crashes on the title screen changing the Mouse cursor (resolved)
failing to load NinjaFX Module (resolved)
Lemmings 2
DispScreen hangs (Pi only) (resolved)
hangs when starting a level (resolved on High Vector build)
Man At Arms (crashes loading)
Manchester United
needs blitter change to correct vertical scrolling (resolved)
Manchester United Europe
no music or sound (resolved)
needs blitter change to correct vertical scrolling (resolved)
not changing the mouse pointer (resolved)
mouse pointer palette is incorrect (Pi only) (resolved
"*!Nevryon.NEVSOUND" crashes. *RMRun !Nevryon.NEVSOUND however does work (caused by VProtect)
Oh, No! More Lemmings
cursor isn't clipped correctly at the left and right of the screen
Omar Shariff's Bridge (crashes loading)
Overload (Clares)
Overload (Paradise)
crashes loading (works on RO3.71 SA)
hangs on the game information page that describes the energy levels
Pandora's Box
needs protection patching as in The Dungeon (resolved)
Pesky Muskrats
Pipe Mania
Populous
Abort on instruction fetch at &24D4F804 during loading (resolved)
Pysanki
RedShift
Repton 3
Sensible Soccer
palette being reset during intro sequence (Pi only)
crashes after the intro (resolved)
Serpents
Simon The Sorcerer (hangs loading, after changing MODE)
SpeedBall 2
Spheres of Chaos
Startrader
Talisman
walking sound not quite right (resolved)
Tower of Babel
Warlocks
White Magic
crashes loading sound Modules. Loads any one of them and crashes for all subsequent Module loads (resolved)
Wolfenstein 3D
disc protection fails (broke in build 2.13, disc 1 may need reimaging with slow sectors to correct sector-in-sector) (resolved)
chocolate is causing game to hang on boot
keys are unresponsive on Pi (resolved)
Zelanites - The Onslaught
no music or sound - sound IRQ's aren't occuring (resolved)
NOTE: VProtect causes 26bit Module support to fail, if VProtect is running issue the following two commands to turn off it's Module hackery before booting a game:
Some games require you to RMKill VProtect, see game notes above.
Re: 26bit Module support
Posted: Tue Jun 30, 2015 11:54 am
by Vanfanel
I have no words for this, Jon!!
I discovered Risc OS with "The Dungeon": it was the first game I ever saw running on a Risc OS machine, and I went back to Risc OS three years ago (with the Pandaboard and later the awesome Pi) to try to get this game working on my own computer!!
I can't wait to play it again, that game is a myth for me, a piece of history...
Re: 26bit Module support
Posted: Wed Jul 01, 2015 5:13 am
by JonAbbott
JonAbbott wrote:Pesky Muskrats - works although no music
It's a bug in the 32bit ExSound tracker Module that's bundled with ADFFS, I've now fixed and confirmed the music works under StrongARM emulation.
Re: 26bit Module support
Posted: Wed Jul 01, 2015 9:42 pm
by JonAbbott
I've started adding CPU paravirtualization to the Module support, which is key to getting games running on physical machines as most Module entry points are entered in either SVC or IRQ. It's working under StrongARM emulation, but currently failing on the Pi despite a day of debugging.
Once working, it should hopefully get some more games running on the Pi, possibly Pipe Mania.
Pesky Muskrats doesn't actually need 26bit Module support, I think I flagged it as requiring it due to ExSound, but have since 32bitted that tracker and forgot to update the spreadsheet. There's probably a few other games like this.
I'm struggling to get many more games working under StrongARM emulation, so simply adding 26bit Module support isn't enough, there must be other minor issues causing them to fail. Overload and Inferno should work for example, but Inferno fails reporting "No main program", implying there's a problem that's C related when its registers the main code.
Re: 26bit Module support
Posted: Tue Jul 14, 2015 9:09 am
by JonAbbott
Inferno works with the latest dev build, if you've previously downloaded it, re-download as I've had to modify the disc image to correct the framerate.
It loads two 26bit Modules, itself and DSymphonyPlayer - which amazingly sounds correct.
Re: 26bit Module support
Posted: Tue Jul 14, 2015 11:30 pm
by JonAbbott
Manchester United appears to work, although requires a change to the blitter to correct vertical scrolling. RISCOS does complain when you swap discs, but it seems to recover once you "Press SPACE to continue"
Re: 26bit Module support
Posted: Wed Jul 15, 2015 7:40 pm
by JonAbbott
The latest obey.zip / adffs500 Module on the dev site get Cascade and SpeedBall 2 working on the Pi
Re: 26bit Module support
Posted: Sat Aug 01, 2015 7:30 am
by JonAbbott
The latest obey.zip / adffs500 Module on the dev site get Arcade 3, Pipe Mania and Spheres of Chaos working on the Pi. It now has feature complete 26bit Module support, basic Wimp support (which needs debugging on the Pi, it's working on SA RO5) and SWI flag preservation.
Re: 26bit Module support
Posted: Mon Aug 10, 2015 11:59 am
by Vanfanel
Wow!! Awesome!! Will we see "The Dungeon" supported soon? I am all crazy about that game...