Page 12 of 15

Re: ADFFS 2.71 beta

Posted: Mon Feb 18, 2019 7:34 am
by JonAbbott
richw wrote: Sun Feb 17, 2019 11:43 pm I normally load USBJoystick loads of times, without an issue, so it must be something subtle which only E-Type is showing up. Maybe bytev? I will look.
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.

Re: ADFFS 2.71 beta

Posted: Mon Feb 18, 2019 1:25 pm
by JonAbbott
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 :cry:

Code: Select all

P%=&10000:FOR A%=0 TO 100:[OPT0:]:NEXT
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 :o 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

Posted: Tue Feb 19, 2019 1:35 am
by JonAbbott
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

Posted: Tue Feb 19, 2019 10:12 pm
by richw
JonAbbott wrote: Mon Feb 18, 2019 7:34 am
richw wrote: Sun Feb 17, 2019 11:43 pm I normally load USBJoystick loads of times, without an issue, so it must be something subtle which only E-Type is showing up. Maybe bytev? I will look.
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.
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

Posted: Wed Feb 20, 2019 7:19 pm
by JonAbbott
2.72f package available, which fixes the following issues:
  • 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)
The amount of regressions is starting to get silly. I'm slowly working my way through all the games, but am only up to F and have already found dozens of 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.
richw wrote: Tue Feb 19, 2019 10:12 pm 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.
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

Posted: Wed Feb 20, 2019 7:36 pm
by richw
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

Posted: Thu Feb 21, 2019 7:50 am
by JonAbbott
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.
JonAbbott wrote: Wed Feb 06, 2019 8:55 pm
JonAbbott wrote: Wed Feb 06, 2019 6:50 pm
Vanfanel wrote: Mon Feb 04, 2019 4:45 pm @Jon: I was testing latest beta with Fireball (the first part) and after a while playing the game started to slowdown and the ship and balls partially disappeared, as if only a part of the screen was being redrawn.
It implies there's a major issue somewhere.
And 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.
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.

Re: ADFFS 2.71 beta

Posted: Thu Feb 21, 2019 10:03 pm
by Vanfanel
@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

Posted: Fri Feb 22, 2019 9:27 pm
by richw
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?

Re: ADFFS 2.71 beta

Posted: Sat Feb 23, 2019 12:25 am
by JonAbbott
2.72g package available, which fixes the following issues:
  • 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)
richw wrote: Fri Feb 22, 2019 9:27 pm 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!
It's crashing on exit, I'll investigate.
richw wrote: Fri Feb 22, 2019 9:27 pm 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.
Its branching somewhere odd, I'll investigate.
richw wrote: Fri Feb 22, 2019 9:27 pm 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?
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.