Old 26-bit application on Pi400
ShadowTD (8700) 1 post |
Good evening everyone. I was discussing retro games with a friend of mine a few weeks ago and she mentioned a game she’d loved years ago called Rail28. After much searching, we found that this was on the Archie and even managed to find a copy online (Qubeserver). She bought a Pi400 and I’m in the process of getting it set up but I’ve hit a few snags. There’s two versions of the game I’ve downloaded, one from 95 and one from 96. Once I’d downloaded Aemulor the 95 version works brilliantly apart from the cursor keys to scroll around the map. It’s so incredibly fast you can’t see anything. I’ve tried disabling keyboard repeat and downclocking the Pi to no avail. Any suggestions? The newer 96 version scrolls around perfectly but as soon as it tried to make the ‘bell’ noise at the beginning crashes because it can’t find the file ‘SPLAY_BELL’. Reading the ReadMe indicates that this newer version had added sound effects. Opening up the app shows a Sound folder with several modules in it, one called bell. Shift-doubleclick shows some information in there – “Voice Module by Richard Hudson SPlay_Bell” so it’s almost like these are the right files but need to go somewhere else, maybe in a standard system location? Any suggestions to help with either of these versions would be very much appreciated. |
Chris Evans (457) 1614 posts |
Welcome! What happens if you double click on SPlay_Bell? It should be at the end! You could also try renaming the file ‘bell’ as ‘SPlay_Bell’ and putting it in $.!Boot.Library A bit of a bodge but it might get you going. |
David Feugey (2125) 2709 posts |
Aemulor will not slow down the computer. Full speed. That’s why it’s mainly for Wimp applications or RPC games. |
Andrew Rawnsley (492) 1445 posts |
This may be completely unrelated, but if you are running Aemulor, 26bit modules are kept separate to 32bit ones. I don’t know Rail28, but it may have been written in BASIC. If so, it would run without Aemulor, but the old sound modules might not. In this case, 32 Bit BASIC could be running the game, whilst Aemulor may have loaded the 26bit modules. It is possible that the two might then not see each other. You could try dragging the whole Rail28 to the Aemulor icon on the iconbar, or using *aemuexecute to run the BASIC (alter the !Run file where it says Run <Rail28$Dir>.!RunImage to AemuExecute <Rail28$Dir>.!RunImage This ensures that Aemulor runs the game and the modules together. |
David J. Ruck (33) 1635 posts |
When I was porting a lot of stuff to 32 bit for the Iyonix, I remember there were quite a few sound samples which were compiled in to modules for easy of use. They were quite easy to convert to 32 bit using !ARMalyser, so it that is the case here give me a shout. |
Colin Ferris (399) 1814 posts |
Just trying to get the sound modules 32bitted – but have come across Teqp PC,#3 Change to Svc26 mode (This last one (pc,#2) change causes problems) Have found a way of replacing them – which seems to work – but what is the correct sequence? [Edit] 2 |
David J. Ruck (33) 1635 posts |
I didn’t want to do this from memory as it’s been a while, but here a sequence from some code I ported, hopefully successfully!
It’s better to restore the original mode’s PSR control flags (which I’m assuming is IRQ), as I’ve done here rather trying to explicitly set IRQ, as then you also restore the interrupts, thumb and 32 bit states at the same time. Otherwise you’ll need to work out what these flags should be. |
Dave Higton (1515) 3526 posts |
Shouldn’t that be ORR R0, R5, #3? |
David J. Ruck (33) 1635 posts |
Thanks, it should (and now is), that will teach me to try to simplify it. |
Colin Ferris (399) 1814 posts |
Thanks for the info – it was more or less what I did. Saving the required Reg/s being used. And checking the Reg through wasn’t used for anything else. |
Colin Ferris (399) 1814 posts |
As a note – is there a list of sneaky ways of addressing data. ie like ADR/L Some code doesn’t like being spread abroad – for adding extra code |
Colin Ferris (399) 1814 posts |
Seemed to have the sound modules working Vrpc RO4/5. I was wondering if it would be worth while for the code looking for a Arc – and then patching the code – the Arc should be able to handle self modifying code. |
Stuart Swales (8827) 1357 posts |
If you want it to still work on Arcs as well, why not? That’s how Fireworkz has done it for decades: its muldiv() routine uses a 64-bit intermediate result which on ARM610 and later can be generated in one UMULL instruction but earlier Arcs need to generate it stepwise. So the distributed code uses UMULL but is patched as needed at runtime for use on Arcs. |
Colin Ferris (399) 1814 posts |
As a note – is there a download site for !RailPro v1.4 by Jos Keijzers Dordrecht, Netherlands It seems to run ok in !SmallTask by Thomas Newcomb v1.0 1993 (Sound samples now 32bit) VRPc DL RO 5.29 |
Stuart Painting (5389) 714 posts |
The Icon Bar seems to have a copy, and the page on Acorn Arcade still exists. |