ADFFS 2.84 public beta

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

ADFFS 2.84 public beta

Post by JonAbbott »

This update no longer requires EDID to be disabled ("disable_mode_changes" no longer required in CMDLINE/TXT) on a Pi as it uses GPU overlays to upscale the image. It might also work on OMAP (untested) and other GraphicsV drivers that support hardware overlays.

Because of this issue on the Pi, the Arm v5/v7 builds (ADFFS500ov / ADFFS550ov) have the overlay swaps handled via callback. The knock on effect is possible flickering and video geometry changes being missed/getting out of sync in games that alter the screen geometry at every VSync (very noticeable with Rockfall for example). There might also be random crashes, stuck overlays and hard-locks an RTSupport thread.

The threaded attachment bank switches overlays at VSync, which is when it should occur and how the non-overlay builds of ADFFS work. These builds definitely cause hard-locks, stuck overlays etc and will do until the issue linked above is resolved.

Pinebook laptops are currently unsupported due to this issue. I believe the nightly RISC OS build might have the patch to resolve it. Note that the Pinebook Pro build from R-Comp has yet to be updated, ADFFS will cause a hard-lock if loaded on it when it tries to install its own video driver.

As a general point, the Pinebook and Pinebook Pro video drivers are incomplete, neither support resolution changes or overlays, so are not currently suitable for use with ADFFS.

*Help ADFFS will confirm if the Overlay build has been loaded - you'll see "overlay" listed against the Module name.

Changes since 2.83
  • Removed some debug output from the JFD imager
  • When imaging a JFD, the check for the expected DiscRec is now performed in the initial GUI and it prompts if no floppy is inserted
  • Now resets the RunTypes when the ADFFS Module exits to their pre-loaded values
  • Modified imaging Archive so it can be used for package information
  • Now checks if CLib is in the RMA instead of simply checking if its already loaded, to allow ROM based CLib to be updated when ADFFS loads
  • GPU borders are now only cleared when the geometry changes and not written at every frame blit
  • VIDC20 writes to vertical registers were not exiting early if the value had not changed
  • Added GraphicsV overlay support
  • JFD imager now only sets "ID", "Disc number" and "Discs in set" if cached values were previously set
  • ADF imager now allows re-imaging of JFD to ADF and allows the filename to be specified
  • Dropped Low Vector RISC OS 5 support on ARMv5+
  • ADFFS now defaults to overlays if they're supported by the GPU driver
  • VIDC1 palette translation wasn't adjusting the physical colour to account for the fixed logical colour bits in 256 colours and was not ignoring the supremacy bit
  • VIDC1 and GraphicsV palette entries are now gamma corrected when emulating pre-RISC OS 3.5
  • Fixed an issue in Service_ChangeMode, which would fail to translate VIDC1 to VIDC20 on IOMD after calculating VMOD/RMOD due to register corruption
  • When intercepting an ADFS that does not have any floppies configured, it will no longer pass floppy DiscOp/MiscOp on and will instead either deal with them or raise appropriate errors
  • OS_CallASWI/R12 are now intercepted to allow C based ADFS Modules to be intercepted
  • Resolved an issue when checking if CLib is in the RMA, which might cause an unknown command error
  • Moved !RunTypes from !Run to Module Init and Module Exit
  • If ADFS is an active filesystem, it now checks if there are any open files on ADFS: and will refuse to load if there are
  • Fixed a crash introduced by OS_CallASWI/R12 interception
  • Temporarily switched overlay bank switching to be done via CallBack until the issues with the BCMVideo GraphicsV driver (Pi) are resolved. This unfortunately ruins quite a few games, but does reduce the hard-locks. Random stuck overlays do still occur though when the overlay is destroyed
  • The open file check will now RMReInit DOSFS if ADFS::*.$.!Boot.Loader is the only file held open on ADFS. This is a workaround for Pi builds that use ADFS as their main filing system
  • Verified sectors are now marked as protection sectors by the JFD imager
  • JFD imager GUI was updating the previous track instead of the current being processed, causing the wrong tracks to be visually flagged as bad or protection
  • added a manual flag to recording files to indicate a know protection sector read - useful where the protection expects an error
  • added a workaround for early WindowManager versions crashing if Wimp_GetRectangle is called when there are no buffered redraw changes
  • OS_Byte 19 now checks if Timer 0 is active on IOC / IOMD before frame-pacing (fixes Gribbly's Day Out)
  • Service_ModeExtension and Service_ModeChange were corrupting R12 while translating VIDC1 to VIDC20, potentially triggering an abort
  • IOC video memory is now unmapped during Service_ModeChange instead of Service_PreModeChange to avoid potential aborts when interrupt driven screen update code in games runs mid-mode change (fixes Quark on IOMD)
  • Discop's were failing for mounted floppy images, while creating a recording file
  • Overlay is now switched via an RTSupport thread

Script changes
  • Implemented a keyboard buffer flush prior to any key insertions across all scripts
  • F1057408 Play It Again Sam 4: Pharaohs Secret Tombs, The (1996) (ProAction) - Added HD install instructions
  • F1045301 Brian Clough's Football Fortunes (1992) (CDS Software) - Script added, with HD install instructions
  • F1022001 KerBang! (1991) (Eterna) - Added HD install instructions and modified to not require the floppy when run from HD
  • F1022501 Legend of the Lost Temple, The (1992) (Eterna) - Bugfixes now applied on all RISC OS versions
  • F1037801 Warlocks (1993) (Network 23) - Now prevents the game from altering Dynamic Area sizes
  • F1046301 Nosher (1992) (State of the Arc) - Script added, with HD install instructions
  • F1017901 Gribbly's Day Out (1992) (Coin-Age) - Added HD install instructions and rewritten game start-up to use an environment variable for paths
  • F1064001 Blaston (1991) (Eterna) - Added HD install instructions and now applies timing correction on all RISC OS versions, added an infinite strength cheat
  • F1029601 Quark (1993) (Oregan Developments) - Modified game code to not require the floppy and implemented bugfixes on all RISC OS versions.
    Added infinite lives and health cheats
  • F1038801 Wolfenstein 3D (1994) (Powerslave Software) - Bugfixes now applied on all RISC OS versions. Game no longer allocates all free memory to itself, potentially causing aborts when RMA allocation is required - it now allocates a maximum of 2MB. Removed the need to have disc 1 mounted when run from HD
Attachments
adffs284.zip
24/04/24 - Public beta of GPU overlays
(1.29 MiB) Downloaded 4 times
acorndave
Posts: 14
Joined: Wed Sep 04, 2019 3:52 pm

Re: ADFFS 2.84 public beta

Post by acorndave »

I have a Pinebook Pro and have had a bit of a play. I am currently running the Sound /PCi beta Rom from RCcomp. (I think the PineA64 Rom on ROOL is for the original Pinebook and not suitable for the Pro and so have not looked at that)

I downloaded the nightly Beta HardDisc 4 image and merged the boot. By way of a check I noted that I'm now running Shared C Lib 6.22, so it looks like I'm updated. Not sure if I should have done anything else.

I then tried both versions of ADFFS 2.84 and they behaved the same. Basically the desktop locks. The screen is still visible but the keyboard and mouse are unresponsive requiring a hard power off .
JonAbbott
Posts: 2957
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: ADFFS 2.84 public beta

Post by JonAbbott »

acorndave wrote: Wed Dec 27, 2023 5:46 pm I have a Pinebook Pro and have had a bit of a play. I am currently running the Sound /PCi beta Rom from RCcomp. (I think the PineA64 Rom on ROOL is for the original Pinebook and not suitable for the Pro and so have not looked at that)
If the Pinebook Pro OS build is closed source, you would have to raise the issue with RComp directly. Point them to the bug report on ROOL, that's linked above.

If the GraphicsV driver was written by the same author, it's likely to be the same issues, namely a lack of adherence to the documentation around claiming/releasing GraphicsV and when checking the driver ID on entry to the GraphicsV vector.
acorndave
Posts: 14
Joined: Wed Sep 04, 2019 3:52 pm

Re: ADFFS 2.84 public beta

Post by acorndave »

No problem. I will contact RComp and see what they can do. Thanks for all you've done on this anyway. Much appreciated
JonAbbott
Posts: 2957
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: ADFFS 2.84 public beta

Post by JonAbbott »

ADFFS build updated in the OP. Use with caution as it has not been tested to any extent.

Two notable changes:
  • Palette changes are now Gamma corrected
  • SWI raised via OS_CallASWI/R12 are now checked for SWI that need to be intercepted for ADFFS to work
It's the last of those changes that I've not tested beyond confirming a Pi3 appears to work correctly after ADFFS is loaded.
JonAbbott
Posts: 2957
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: ADFFS 2.84 public beta

Post by JonAbbott »

acorndave wrote: Wed Dec 27, 2023 5:46 pm I have a Pinebook Pro and have had a bit of a play. I am currently running the Sound /PCi beta Rom from RCcomp.
...
I then tried both versions of ADFFS 2.84 and they behaved the same. Basically the desktop locks. The screen is still visible but the keyboard and mouse are unresponsive requiring a hard power off .
Could you confirm if the Pinebook Pro is using ADFS for the filing system?
acorndave
Posts: 14
Joined: Wed Sep 04, 2019 3:52 pm

Re: ADFFS 2.84 public beta

Post by acorndave »

It uses SDFS. It boots off an SD card and the main set up is on eMMC. SDFS::eMMC4.$

I've run Verma and it shows SDFS (SDFS and SDFSfiler), various SCSI modules loaded, and CDFS. Can't see anything ADFS related even listed (e.g. ADFS / or ADFSfiler)

Is there anything else I should check ?
JonAbbott
Posts: 2957
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: ADFFS 2.84 public beta

Post by JonAbbott »

acorndave wrote: Wed Jan 31, 2024 7:22 pm Is there anything else I should check ?
No, I was just curious if it suffered from the same issue seen on the RISCOSBits machines, which use ADFS4 for the main filing system.

From correspondence with John Ballance, I believe the GraphicsV driver does now follow the documentation, what I can't tell is if the changes have made their way back into the build. I also have no way of knowing if there's further issues, hence ruling out ADFS as a possible complication.
acorndave
Posts: 14
Joined: Wed Sep 04, 2019 3:52 pm

Re: ADFFS 2.84 public beta

Post by acorndave »

JonAbbott wrote: Thu Feb 01, 2024 7:24 am From correspondence with John Ballance, I believe the GraphicsV driver does now follow the documentation, what I can't tell is if the changes have made their way back into the build. I also have no way of knowing if there's further issues, hence ruling out ADFS as a possible complication.
Ok thanks for that. If the GraphicsV driver has been 'tweaked' then that sounds reasonably promising. I shall make further enquiries with RComp and see what the situation is with regards to updating the Pinebook Pro build.
wmd
Posts: 120
Joined: Thu Feb 04, 2021 1:02 am

Re: ADFFS 2.84 public beta

Post by wmd »

I just tried to make a new JFD of Ballerna (using the original Ballarena JFD) and after populating the track sectors grid I get the error: "Internatl error: address exception at &0386DAEC in "!ADFFS.imaging.wimp"".
Post Reply