Snes9x 1.53-4 did not work correctly
-Micky (10269) 143 posts |
Snes9x 1.53-4 did not work correctly with Risc OS 5.28 and Raspberry Pi 3b+. Yes I read the manual and do what it says. Then I double click a snes rom, yes I set type to snesrom, then a black window opens for a few seconds. That’s all what happend. Micky |
Andrew Rawnsley (492) 1445 posts |
This is very much a long-shot, but I recall that a few emulators were compiled with older versions of GCC so failed on newer Pi boards because they use the SWP command. There’s a program called !PatchSWP (available from tellima nl / riscos ) which will modify the executable of such programs to turn the SWP commands into something ARMv8-safe. I know this fixed several 8-bit emulators, and I wonder if the SNES9x comes from a similar era. The only other thing that comes to mind is that it could be something to do with the filename or location of the ROM which is causing it to fail to load. Maybe give it a simple name in the root directory of your main drive? |
-Micky (10269) 143 posts |
Thanks for your answer. !PatchSWP says there are no SWP’s in the program. This is not the reason. It could be that the format from the Snes files is wrong. But what format is the right one for Snes9x? I try: sfc Sfc thems good, but I can read only a few lines of text. Then the window closed. Micky |
David Pitt (9872) 363 posts |
Snes9X works on here both an RPi3A+ and RPi4 provided the second “Issue” noted in Tested with There may be a tool to turn off Alignment Exceptions in Boot Configuration. AlignEx can be used. The site says it is for the BeagleBoard but is good for Pi’s also. The setting is not permanently written to Choices. HTH. |
Rick Murray (539) 13840 posts |
This’ll turn exceptions off. DIM code% 32 P% = code% [ OPT 0 SWI "OS_EnterOS" MRC CP15,0,R0,C1,C0,0 BIC R0,R0,#2 MCR CP15,0,R0,C1,C0,0 MSR CPSR_c,#&10 MOV R0,R0 MOV PC,R14 ] CALL code% Save it in $.!Boot.Library as AlignOff. Change the BIC to ORR to turn them back on. Save that one as AlignOn. Then going to the command line and entering *AlignOff (or …On) will do the job. |
David Pitt (9872) 363 posts |
That tool is named The ROM’s default setting is Alignment Exceptions On, so this does need to be explicitly turned off. |
-Micky (10269) 143 posts |
With Alignment Exceptions off it works. Thanks. Micky |
Cameron Cawley (3514) 157 posts |
That might not still be there in future versions of RISC OS, BTW. https://www.riscosopen.org/tracker/tickets/606 Personally I think it’s worth keeping it around with an “Advanced users only” notice next to the Alignment Exceptions off option, but I don’t feel strongly enough about it to argue with the decision in the issue myself. This thread does prove that there is a genuine use case for it, though. |
Steve Fryatt (216) 2105 posts |
“Can’t see that it’s failing” might be nearer the truth, though. It depends on why Snes9x needs Alignment Exceptions off: if it’s to use “old-style” rotated loads and stores, then “works” really just means “not being made aware that data is being corrupted”. On the other hand, if it’s a recent executable using new processor functionality, then it may indeed be working.
The problem is that it was always a “short term” option, to use until the problem software which used rotated loads and stores could be identified and fixed. The long term goal was to turn the exceptions off once they weren’t required any more, because newer software could then use the new functionality of more recent ARM processors. Unfortunately everyone just turned the exceptions off and stuck their heads in the sand, until software started arriving that used those new features (eg. Iris), and we now can’t tell the difference between the two. I’ll be leaving Alignment Exceptions on here, as I don’t really have a need for Iris and would prefer to know about (and so avoid using) malfunctioning software. Other people’s mileage may vary. |
Steve Pampling (1551) 8170 posts |
Alignment Exceptions sit in the same category as zero page I think, although the first is a recent behaviour restriction issue and zero page is a “should have stopped doing this over a quarter of a century ago” On the latter, have people noticed fewer postings about mysterious crashes now that we’ve had 10 years(I think) of people searching out the erroneous accesses? |
Paul Sprangers (346) 524 posts |
For me the difference is primarily visible. With the exceptions turned on, my screen gets noticeably less crispy, especially the fonts. Not to an extend that my eyes become shivery, but I’m always glad to return to a clear and sharp desktop with those exceptions turned off. Am I the only one with this experience? |
Steve Pampling (1551) 8170 posts |
Just a thought, but perhaps the Software Compatibility List needs an update to include a column for AE status? With a note about the problem. |
Colin Ferris (399) 1814 posts |
Paul which machine / OS? |
Paul Sprangers (346) 524 posts |
Apologise. It’s a Pi4 (4té2) with RO 5.29 (21 Sep). But former versions showed the same behaviour. |