ADFFS 2.71 beta

Discuss ADFFS development and download test releases
richw
Posts: 137
Joined: Sat Sep 14, 2013 9:05 pm

Re: ADFFS 2.71 beta

Post by richw » Sun Feb 10, 2019 10:01 pm

I have noticed that E-Type appears to be impossible to exit from. Only CTRL-BREAK gets me out!

Perhaps related, but when I add my pointerv handler into USBJoystick, E-Type will refuse to start, locking the machine solid. No doubt I am doing something wrong, but E-Type is strange!

JonAbbott
Posts: 2232
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex

Re: ADFFS 2.71 beta

Post by JonAbbott » Sun Feb 10, 2019 11:01 pm

Vanfanel wrote:
Sun Feb 10, 2019 4:47 pm
@Jon: The "Alone in the Dark" problem happens in the latest stable ADDFs, too. Just in case ir can help.
Can you see if it happens in 2.70 please, I've tried to reproduce it but couldn't. I did notice some screen corruption when triangles get down to 1 or 2 pixels, but it appears to do the same thing on a RiscPC, so that's a bug in the game code.
richw wrote:
Sun Feb 10, 2019 10:01 pm
I have noticed that E-Type appears to be impossible to exit from. Only CTRL-BREAK gets me out!

Perhaps related, but when I add my pointerv handler into USBJoystick, E-Type will refuse to start, locking the machine solid. No doubt I am doing something wrong, but E-Type is strange!
I didn't think E_Type had an exit option, CTRL-SHIFT-F12 being the only option to kill it. I thought it disabled CTRL-BREAK in the script, but I'm possibly thinking of another game...I'll check tomorrow.

Send me a copy of USBJoystick along with the source, I'll debug E-Type and see what it's doing.

JonAbbott
Posts: 2232
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex

Re: ADFFS 2.71 beta

Post by JonAbbott » Mon Feb 11, 2019 3:58 pm

I've been investigating the issue with Chequered Flag, which appears to be memory corruption. It's proving particularly difficult to track down and may or may not be related to the issue in Alone in the Dark.

Somewhere during its init stage, the previous exit handler stored at 45A10 is being overwritten with what looks like a PSR. I've checked 45A10 on entry/exit from the SWI handler and it appears to be okay, checking when the JIT is entered is finding its changed as does checking it when a Environment handler is entered.

EDIT: I've tracked it down to a bug in the handling of the CallBack Environment handler, which I've now fixed. There also appears to be an issue with the Exit handler, which I'm investigating.

JonAbbott
Posts: 2232
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex

Re: ADFFS 2.71 beta

Post by JonAbbott » Tue Feb 12, 2019 12:48 pm

JonAbbott wrote:
Fri Feb 08, 2019 8:47 pm
I might spend some time over the weekend to see if I can implement an Exit handler for ADFFS, so it tidies up if a process doesn't exit cleanly.
2.71z package is now available and includes this feature; in theory, if the game crashes it should shut down the JIT and turn off the video memory remapping so the machine stays stable. The Obey script that runs the game does get terminated if an Abort occurs, so some games that need Aliases, VSync delays etc will not clean up properly, which is something I need to solve. I also need to implement a few more bits to cover ADFFS being RMKilled, so I'll be bumping it to 2.72 once those are added.

The CallBack issue that was causing Chequered Flag to crash on exit is also resolved.

Could you please see if Alone in the Dark still crashes with this build.
JonAbbott wrote:
Sun Feb 10, 2019 11:01 pm
richw wrote:
Sun Feb 10, 2019 10:01 pm
I have noticed that E-Type appears to be impossible to exit from. Only CTRL-BREAK gets me out!
I didn't think E-Type had an exit option, CTRL-SHIFT-F12 being the only option to kill it. I thought it disabled CTRL-BREAK in the script, but I'm possibly thinking of another game...I'll check tomorrow.
E-Type does disable CTRL-BREAK so I'm not sure how you managed to kill it that way, I'll have to find a keyboard with a BREAK key so I can test it. The general rule-of-thumb is, if CTRL-ESC doesn't exit a game or there's no obvious menu/key combination listed in the manual, use CTRL-SHIFT-F12 to forcibly terminates it via ADFFS.
JonAbbott wrote:
Fri Feb 08, 2019 11:27 am
JonAbbott wrote:
Wed Feb 06, 2019 10:33 pm
It's possible the TOPOLOGIKA title issues are bugs in the game code, in which case I'll fix the boot scripts prior to release.
I've checked through all the TOPOLOGIKA titles and I did fix the code in their boot scripts. Their exit issues are all Exit Handler related as I originally suspected.
On further investigation, the game is exiting cleanly, the Obey file continues and shuts down the JIT. The lock occurs when Obey exits back to the desktop, so I need to investigate in more detail to find out why the lock is occurring.

Vanfanel
Posts: 501
Joined: Mon Sep 16, 2013 12:01 am

Re: ADFFS 2.71 beta

Post by Vanfanel » Tue Feb 12, 2019 4:29 pm

@Jon: With current beta, Alone does not hang anymore! I played for half an hour with no hangs :)
Fireball I however boots to a black screen and hangs the system. Fireball II works fine, in case it helps.

JonAbbott
Posts: 2232
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex

Re: ADFFS 2.71 beta

Post by JonAbbott » Tue Feb 12, 2019 7:22 pm

Vanfanel wrote:
Tue Feb 12, 2019 4:29 pm
Fireball I however boots to a black screen and hangs the system. Fireball II works fine, in case it helps.
Bugger...thought I'd fixed that issue. It's the BASIC Exit handler hanging. I'll see if I can finish off the clean up code as well, might be a few days as I'm out tomorrow and Thu.

richw
Posts: 137
Joined: Sat Sep 14, 2013 9:05 pm

Re: ADFFS 2.71 beta

Post by richw » Tue Feb 12, 2019 9:29 pm

Hmm, E-Type isn't locking the machine (I think!). It just seems to stop the keyboard and mouse working, maybe even bork the USB stack. It clears the screen, but instead of the E-Type logo fading in, I just see a flashing cursor at the top left for ever.

If I don't register my pointerv handler, then the game starts fine. Oh, and it exits nicely too, with CTRL SHIFT F12. My pointerv handler can be blank, makes no difference.

JonAbbott
Posts: 2232
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex

Re: ADFFS 2.71 beta

Post by JonAbbott » Wed Feb 13, 2019 12:05 am

JonAbbott wrote:
Tue Feb 12, 2019 7:22 pm
Vanfanel wrote:
Tue Feb 12, 2019 4:29 pm
Fireball I however boots to a black screen and hangs the system. Fireball II works fine, in case it helps.
Bugger...thought I'd fixed that issue. It's the BASIC Exit handler hanging. I'll see if I can finish off the clean up code as well, might be a few days as I'm out tomorrow and Thu.
2.72a package is now available. After updating via Packman, immediately reboot as Exit handlers for every app will be left pointing to the previous ADFFS Module. I'll get that issue fixed soon, hopefully by the weekend.

Turns out it wasn't the BASIC Exit handler hanging, but the JIT shutting down prematurely. As I'm not going to be around for a few days, I put some hours in tonight to get it fixed. Hopefully, all games should now exit cleanly and should there be an abort or abnormal termination, ADFFS will at least shut the JIT down. I tested Chequered Flag, Populous, Fireball and a few TOPOLOGIKA titles and they all appeared to exit cleanly to the desktop.

I have botched it somewhat. Whenever a task is run, ADFFS looks to see if the Exit handler is currently pointing into the WindowManager Module. If it is, it installs its own Exit and Error handlers which tell the JIT to shutdown if its active in the current domain (ie the task is running under the JIT).
richw wrote:
Tue Feb 12, 2019 9:29 pm
Hmm, E-Type isn't locking the machine (I think!). It just seems to stop the keyboard and mouse working, maybe even bork the USB stack. It clears the screen, but instead of the E-Type logo fading in, I just see a flashing cursor at the top left for ever.

If I don't register my pointerv handler, then the game starts fine. Oh, and it exits nicely too, with CTRL SHIFT F12. My pointerv handler can be blank, makes no difference.
Send me the Module and source and I'll debug E-Type with it loaded to see why its failing.

JonAbbott
Posts: 2232
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex

Re: ADFFS 2.71 beta

Post by JonAbbott » Wed Feb 13, 2019 8:16 am

Whilst testing games this morning I've spotted an issue with BlastOn (Eterna), which may fail to load after running something else. It's putting code at &4400 which is possibly not being handled correctly. I've fixed it in the boot script by relocating the code higher in memory, but need to investigate why &4000-&8000 isn't being handled correctly.

Omar Sharif's Bridge also appears to hang the first time you run it. If you kill it via CTRL-SHIFT-F12 and then immediately re-run it, it works :?

Spheres of Chaos locks as soon as you start a game (broke in 2.71y)

Confusion is crashing with a Page Zero access issue in its CallBack handler, after running Chuck Rock (the CallBack veneer needs to check if the regdump address is valid before copying them)

JonAbbott
Posts: 2232
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex

Re: ADFFS 2.71 beta

Post by JonAbbott » Thu Feb 14, 2019 4:01 pm

2.72b package is now available. After updating via Packman, immediately reboot as Exit handlers for every app will be left pointing to the previous ADFFS Module - this build now orphans the Exit handler, to resolve this issue and prevent crashes when ADFFS is terminated or updated.
JonAbbott wrote:
Wed Feb 13, 2019 8:16 am
Whilst testing games this morning I've spotted an issue with BlastOn (Eterna), which may fail to load after running something else. It's putting code at &4400 which is possibly not being handled correctly. I've fixed it in the boot script by relocating the code higher in memory, but need to investigate why &4000-&8000 isn't being handled correctly.
Fixed, it wasn't filling &4000-&8000 with hypercalls.
JonAbbott wrote:
Wed Feb 13, 2019 8:16 am
Spheres of Chaos locks as soon as you start a game (broke in 2.71y)
Fixed, my rewrite of LDM with Rn in <reglist> wasn't required so I've pulled it.
JonAbbott wrote:
Wed Feb 13, 2019 8:16 am
Confusion is crashing with a Page Zero access issue in its CallBack handler, after running Chuck Rock (the CallBack veneer needs to check if the regdump address is valid before copying them)
Fixed, it now checks if the regdump pointer is valid.

Unless any more issues show up, I'm going to release this build next week.

Post Reply