ADFFS 2.80 public beta

Discuss ADFFS development and download test releases
JonAbbott
Posts: 2938
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: ADFFS 2.80 public beta

Post by JonAbbott »

Vanfanel wrote: Sun Jan 02, 2022 2:29 pm -Populous: Sometimes fails and hangs when clicking on "Conquest" (shows an error popup but I can't read it, letters seem "compressed").
I've managed to reproduce this with ADFFS 2.74, but only when run from the WIMP. It might be an issue with <Populous$Dir>.Title as I can't reproduce it if I comment it out in the boot script.

Shutting down the JIT and restarting it between the <Populous$Dir>.Title and Run <Populous$Dir>.Loader lines also appears to fix it. I'll continue investigating, but this issue does appear to be specific to this game and not related to 2.80

I have however noticed that CTRL-ESC when in the game crashes under 2.80, so I'll need to investigate and resolve that.
JonAbbott
Posts: 2938
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: ADFFS 2.80 public beta

Post by JonAbbott »

JonAbbott wrote: Tue Jan 04, 2022 1:16 pm I have however noticed that CTRL-ESC when in Populous crashes under 2.80, so I'll need to investigate and resolve
I've tracked this down to the Environment handlers. They were not returning a corrected address for the paravirtualized previous handler when initially assigned and subsequently not correcting the address when an Environment handler actually called a previous Environment handler.

I have some further testing to do before I upload the build.
JonAbbott
Posts: 2938
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: ADFFS 2.80 public beta

Post by JonAbbott »

Vanfanel wrote: Sun Jan 02, 2022 2:29 pm -Populous: Sometimes fails and hangs when clicking on "Conquest"
Could you try adding the following at the top of it's !Run and see if the issue still occurs:

Code: Select all

JITMEMORYA A2D4 EBFFFF08 E1A00000
Note that you'll only get into the tutorial with this, I want to see if its the code that sets the type of game that's causing the problems.
Vanfanel
Posts: 576
Joined: Mon Sep 16, 2013 12:01 am

Re: ADFFS 2.80 public beta

Post by Vanfanel »

JonAbbott wrote: Thu Jan 06, 2022 1:53 pm
Vanfanel wrote: Sun Jan 02, 2022 2:29 pm -Populous: Sometimes fails and hangs when clicking on "Conquest"
Could you try adding the following at the top of it's !Run and see if the issue still occurs:

Code: Select all

JITMEMORYA A2D4 EBFFFF08 E1A00000
Note that you'll only get into the tutorial with this, I want to see if its the code that sets the type of game that's causing the problems.
Tried that and the game does not fail anymore, but as you say, it always goes to the tutorial.
But it's impossible to break now, confirming your suspections I guess.
JonAbbott
Posts: 2938
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: ADFFS 2.80 public beta

Post by JonAbbott »

Vanfanel wrote: Thu Jan 06, 2022 8:51 pm it's impossible to break now, confirming your suspicions I guess.
I've put 2.80i beta on PackMan, could you please see if it fixes Populous and any other games you've seen randomly crash.

I think the issue is where codelets are used to paravirtualise OS_CallASWI/OS_CallASWIR12 calls, when the SWI it wants to call needs passing directly to the OS. I'm not 100% though. I've completely rewritten the code to not use a codelet and instead use a static SWI in application space, in the same way BASIC handles SYS.

I've confirmed it doesn't break Abuse (it calls Wimp_Poll via OS_CallASWIR12) and I'm hoping this will fix Populous.

There are some caveats, which I'm noting here for my future reference:
  1. OS_EnterOS / OS_LeaveOS aren't supported when called via OS_CallASWI/OS_CallASWIR12 so will be reported
  2. The SWI isn't atomic, so an OS_CallASWI/OS_CallASWIR12 under IRQ that needs passing directly to the OS might cause issues if the interrupted instruction is the SWI it uses to pass the call to the OS (ie it's not re-entrant)
Vanfanel
Posts: 576
Joined: Mon Sep 16, 2013 12:01 am

Re: ADFFS 2.80 public beta

Post by Vanfanel »

@Jon: Populous is still crashing here, even more than before. It crashes on quit now, too.
Inferno also quits after clearing the first level.

But well, I am on the Pi4, let's remember that.
JonAbbott
Posts: 2938
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: ADFFS 2.80 public beta

Post by JonAbbott »

Vanfanel wrote: Sat Jan 08, 2022 1:48 pm Populous is still crashing here, even more than before. It crashes on quit now, too.
I'm fairly confident the change in 2.80i will fix the problem with Populous, so that doesn't make a lot of sense.

Could you please try holding SHIFT at power on, then manually run !ADFFSbeta followed by !Populous.
Vanfanel
Posts: 576
Joined: Mon Sep 16, 2013 12:01 am

Re: ADFFS 2.80 public beta

Post by Vanfanel »

@Jon

That did the trick!
Booting with SHIFT pressed (Pi4, remember!):
-Populous works perfectly well
-Inferno does NOT quit after exiting the first level
-Elite does NOT error when trying to launch it for the first time

So, what could be happening here? How can I remove whatever is causing problems on my system? I take SHIFT does a "clean boot"...
JonAbbott
Posts: 2938
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: ADFFS 2.80 public beta

Post by JonAbbott »

If you're not loading anything obvious in Configure, try writing the output of *MODULES to a file with/without a SHIFT boot and see what's being loaded:

Code: Select all

MODULES { > $.modlist }
Vanfanel
Posts: 576
Joined: Mon Sep 16, 2013 12:01 am

Re: ADFFS 2.80 public beta

Post by Vanfanel »

@Jon: I looked at !Configure->Boot->Run, and I had CDFaker! there.
Removed it and now I can boot without pressing SHIFT and these errors don't happen anymore.

-Wavelenght however still hangs on quit via "Back to desktop" main menu option.

-Last Ninja also fails to launch sometimes.

-Diggers shows a corrupt screen on lauch, and then the game seems perfectly OK.
Post Reply