A quick check would be to add debug output for all OS_Claim/OS_Release and use the non-X version of OS_Release to confirm they're releasing correctly. I'll have a look at the source later, to see if I can spot anything.
ADFFS 2.71 beta
Re: ADFFS 2.71 beta
Re: ADFFS 2.71 beta
I've spotted a problem affecting ] (ie closing assembler) in BASIC, which is incredibly slow. The following code for example takes 3.3 seconds on my Pi3
This is noticeable in Drifter, which takes minutes to load because it contains lots of setup loops containing assembler.
The issue is the OS_SynchroniseCodeAreas in BASIC26 @ A0E4, which does a full cache invalidation instead of just the range the assembler covers. RISC OS appears to be very slow at full cache invalidations taking 2cs so I'll see if I can figure out a fix for BASIC26.
EDIT: Ironically, the last two changes to BASIC in RISC OS 5 were to fix this issue
EDIT2: It appears there was a change to RISC OS to make it SMP aware, so OS_SynchroniseCodeAreas is now hideously slow. I'm going to backport the change implemented in BASIC recently to BASIC26 to resolve.
Code: Select all
P%=&10000:FOR A%=0 TO 100:[OPT0:]:NEXT
The issue is the OS_SynchroniseCodeAreas in BASIC26 @ A0E4, which does a full cache invalidation instead of just the range the assembler covers. RISC OS appears to be very slow at full cache invalidations taking 2cs so I'll see if I can figure out a fix for BASIC26.
EDIT: Ironically, the last two changes to BASIC in RISC OS 5 were to fix this issue
EDIT2: It appears there was a change to RISC OS to make it SMP aware, so OS_SynchroniseCodeAreas is now hideously slow. I'm going to backport the change implemented in BASIC recently to BASIC26 to resolve.
Re: ADFFS 2.71 beta
I've spotted a couple more issues that need resolving:
- After change from an emulated legacy video mode, to a GPU driven mode, hardware scrolling is still active until the next mode change. This results in corrupt scrolling at an F12 prompt
- Games that don't require video memory remapping will fail if they get the screen address before changing mode (eg Drifter, Enter the Realm)
Re: ADFFS 2.71 beta
I thought I had checks for that in the source. Having checked, I have since improved the logging, but to no avail.
I have done some more digging... I think it is my pointerv call (to update the position). It seems that the code I wrote to detect a change in movement is utter nonsense. I think I know what to do, and it probably explains how it doesn't work on your pad.
Re: ADFFS 2.71 beta
2.72f package available, which fixes the following issues:
I've updated the packages for Chocks Away Compendium [SA version] and both versions of Enter The Realm, so remove and reinstall them if you have them installed.
- F1002001 Arcendium (1988) (Alien Images) (crashes when it load the Nuthatch Module via *NUTHATCH) (fixed in 2.72f)
- F1012501 Drifter (1997) (The Fourth Dimension) (very slow to load due to RISC OS SMP changes) (fixed in 2.72f)
- F1013501 Enthar Seven (1988) (Robico Software) (crashes loading) (fixed in 2.72f)
- F1013501 Enthar Seven (1988) (Robico Software) (crashes when terminated via CTRL-SHIFT-F12) (fixed in 2.72f)
- F1063101 Formula Fun (1993) (Mystery Software) (crashes when terminated via CTRL-SHIFT-F12) (fixed in 2.72f)
- All (randomly crashes swapping discs) (bug introduced in 2.71x OS_Byte 19 change, fixed in 2.72f)
I've updated the packages for Chocks Away Compendium [SA version] and both versions of Enter The Realm, so remove and reinstall them if you have them installed.
Am I holding off releasing ADFFS until 0.16 is available, or are we going with 0.15? I have to release by the end of the month.
Re: ADFFS 2.71 beta
I think 0.15 should be fine, as it includes the ADC/OSByte fix for Populous but doesn't have any keyboard or mouse emulation stuff enabled.
Re: ADFFS 2.71 beta
In my rush to get 2.72f out yesterday, it would appear I forgot to update BASIC26 and obey.zip. If you did installed it yesterday, please remove and reinstall to get the corrected package.
Could you please recheck Fireball. The "fix" I implemented to prevent it flickering completely broke disc swapping (it seems to be related to OS_Byte 19 being used by OS_Hourglass whilst threaded), so I had to roll it back with a few minor changes.JonAbbott wrote: ↑Wed Feb 06, 2019 8:55 pmAnd the major issue turned out to be within OS_Byte 19.
ADFFS 2.71x package now available, along with an updated Fireball II package. The scrolling font on the title page is now correct and hopefully no longer flickers.
Re: ADFFS 2.71 beta
@Jon: I am out of home, far from my Risc OS until sunday nigh. I will test as soon as I get back home
Re: ADFFS 2.71 beta
I have tried a handful of games.
Chocks Away locking the machine solid when the loading screen appears (CTRL-BREAK doesn't even work).
Superpool and Break 147 are similar, but CTRL-BREAK still works.
2067BC crashes before it even leaves the desktop with AODT at FC02B5D8 and attempt to use badly nested error handler. Have to CTRL-BREAK.
BigBang. OK, but CTRL-ESC to quit is a bit odd. Mouse pointer appears but game screen is still there, frozen. If I press F12 then ENTER, I see the desktop as normal!
Crystal Maze. OK until you start a game, then I get instruction not implemented, and a screen full of joy! Instruction at top of list is LDMLEIB.
E-Type 2. Change player 2 to computer using icon bar icon, then machine locks up almost immediately. Mouse pointer moves, but that is it, not even CTRL-BREAK. Is this normal for Wimp stuff at this stage?
Chocks Away locking the machine solid when the loading screen appears (CTRL-BREAK doesn't even work).
Superpool and Break 147 are similar, but CTRL-BREAK still works.
2067BC crashes before it even leaves the desktop with AODT at FC02B5D8 and attempt to use badly nested error handler. Have to CTRL-BREAK.
BigBang. OK, but CTRL-ESC to quit is a bit odd. Mouse pointer appears but game screen is still there, frozen. If I press F12 then ENTER, I see the desktop as normal!
Crystal Maze. OK until you start a game, then I get instruction not implemented, and a screen full of joy! Instruction at top of list is LDMLEIB.
E-Type 2. Change player 2 to computer using icon bar icon, then machine locks up almost immediately. Mouse pointer moves, but that is it, not even CTRL-BREAK. Is this normal for Wimp stuff at this stage?
Re: ADFFS 2.71 beta
2.72g package available, which fixes the following issues:
Please retest Chocks Away, Superpool & Break 147 and 2067BC with this build.
- Random crash when changing MODE from a shelled window with BASIC26 loaded under the JIT. Issue first occurs in 2.67c (fixed in 2.72g)
- F1024501 Grievous Bodily 'ARM (1991) (The Fourth Dimension) (doesn't quit to the desktop) (fixed in 2.72g)
- F1018001 Groundhog (1998) (The Fourth Dimension) (crashes when it tries to change MODE) (fixed in 2.72g)
- F1020101 Hostages (1990) (Superior Software) (crashes under RISC OS 3.11) (fixed in 2.72g)
- F1020101 Hostages (1990) (Superior Software) (music should not start playing when loaded) (fixed in 2.72g)
- F1040201 Zarch (1987) (Superior Software) (doesn't clear the screen and ADFRemapVideoMemory 15 160 maps in more than 160KB) (fixed in 2.72g)
It's crashing on exit, I'll investigate.
Its branching somewhere odd, I'll investigate.
Wimp menus are prone to hanging the system, I've yet to figure out why. Avoid all Wimp menus and it's a bit more reliable. Wimp support is a total botch at the minute, as I've no means of forcing a task switch so expect random hangs when at the desktop with 26bit tasks running.
Please retest Chocks Away, Superpool & Break 147 and 2067BC with this build.