ADFFS 2.30 beta

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

ADFFS 2.30 beta

Post by JonAbbott »

Mainly bug fixes, with a few additions to the JIT.

NOTE: You must ensure fake_vsync_isr=1 is uncommented in your config.txt file on the Pi. If you see a blank screen, try setting the monitor to Auto. Also ensure the ARM is configured as ARMv5

Changes since 2.29
  • Ambiguous disc errors in the desktop are finally resolved
  • Frames are now marked as dirty in both OS_Byte 19 and OS_Byte 113 which may reduce flickering in some games on the Pi
  • Games can now be slowed down/speed up on RO5 via CTRL-SHIFT PgUp / PgDown
  • Frame pacing no longer causes some games to hang
  • IOC version of ADFFS updated
  • Conqueror no longer hangs when entering the map
  • More SWI's have been hypervised under the JIT
  • Minor bug fixes to some instructions in the JIT
  • IRQ1V is now hypervised on RO5

Known issues
  • Doesn't support the protection used by Chequered Flag (non-RO3 version), Fine Racer and KerBang! (they talk directly to the FDC via IOC)
  • Shelling out of the desktop (Ctrl-Shift-F12 twice) hangs if an HD floppy is mounted on RO3.5+
  • adfs:format doesn't work whilst ADFFS is loaded
  • Although Caverns runs fine under VIDC translation on the A7000, on a RPC the scrolling is broken; with no VRAM, its completely broken. There's also an issue with the ship only appearing on the bottom half of the screen, although this is resolved with the boot script included with ADFFS.
  • Will not work on a RISC OS 3.1x machine with more than 13mb allocated to application space. To workaround increase another area until Applications (free) is below 13mb and ensure it never goes above it whilst ADFFS is loaded
  • Due to ongoing development in RISC OS, it will not work on alpha builds past 18-12-13. This will be resolved once the issues in RISC OS have been corrected and ADFFS updated to reflect the changes
  • Does not currently support RO5.x on IOMD fully, the video display may not appear or it may crash
  • RO4/SA some games don't display (eg Zarch)
  • No 26-bit module support
  • Currently requires at least 30mb of free memory to work on a StrongARM machine
  • Does not work on OMAP3/4
  • Games that frame swap on event 4 currently flicker (James Pond)

Released games that are compatible with this on StrongARM/Pi
Pac-mania
Terramex

NOTE: The "Boot floppy" script has been updated for Pac-mania, so ensure you have !SparkFS or similar loaded to enable frame pacing.

Games that are known to be made StrongARM/Pi compatible with this version
Conqueror
Jet Fighter
Zarch


If you've contributed one of the unreleased titles and have the JFD floppy image, it should work provided you have !SparkFS or similar loaded. Alternatively, extract the relevant Obey file from !ADFFS.obey and launch manually.


Please provide feedback, let us know if it's working or if you see any issues.
Attachments
adffs230b.zip
(477.21 KiB) Downloaded 419 times
JonAbbott
Posts: 2938
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: ADFFS 2.30 beta

Post by JonAbbott »

Whist resolving the issues with TrackerMod on the Pi, I noticed that if Magic Pockets is left to play the titles, it eventually goes into demo mode and works. If you try to start a game however, it crashes on the level selection.

That's good news, as it means the issue is either R14 corruption, or a hypervised entry/exit from an interrupt. At the point it crashes it's checking the keyboard - which coincidentally is also what Fire & Ice is doing at the time it crashes. I'm not entirely sure what the keyboard has to do with it as neither claim any keyboard related vectors, however it's something to investigate.

Once I've resolved that issue, I'll finish off the IOC emulation which may get some more games working. In this beta IRQ1V is hypervised, I'm not entirely sure why I did that at the time, as it needs to be abstracted - we'll be generating our own interrupts from the IOC emulator, which will hang off the HAL timers.
User avatar
swirlythingy
Posts: 8
Joined: Wed Jan 01, 2014 4:58 pm

Re: ADFFS 2.30 beta

Post by swirlythingy »

JonAbbott wrote:Whist resolving the issues with TrackerMod on the Pi, I noticed that if Magic Pockets is left to play the titles, it eventually goes into demo mode and works. If you try to start a game however, it crashes on the level selection.

That's good news, as it means the issue is either R14 corruption, or a hypervised entry/exit from an interrupt. At the point it crashes it's checking the keyboard - which coincidentally is also what Fire & Ice is doing at the time it crashes. I'm not entirely sure what the keyboard has to do with it as neither claim any keyboard related vectors, however it's something to investigate.
The initial level selection is the point at which Magic Pockets calls ADFS_DiscOp (four times, with four different custom disc descriptors, but for the same sector of the disc each time) for copy protection purposes. As for checking the keyboard, I can think of three different possibilities for that particular screen - either Escape (to restart the game, i.e. play the level selection screen again), Ctrl+Escape (to quit) or F5 (to enter a password).

Not sure how much use that'll be, but I figured that since I spent some time working on Magic Pockets I might as well take the opportunity to share, on the off-chance I might know something relevant.
JonAbbott
Posts: 2938
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: ADFFS 2.30 beta

Post by JonAbbott »

swirlythingy wrote:The initial level selection is the point at which Magic Pockets calls ADFS_DiscOp (four times, with four different custom disc descriptors, but for the same sector of the disc each time) for copy protection purposes. As for checking the keyboard, I can think of three different possibilities for that particular screen - either Escape (to restart the game, i.e. play the level selection screen again), Ctrl+Escape (to quit) or F5 (to enter a password).
That's a good point actually, I'll check to see if its done the DiscOp calls at the point it crashes. At the point Fire & Ice crashes - on the last screen before it prompts for disc 2, it checks for SPACE and F1 being held. I've no idea why it does that and wondered if it initiated a cheat or debug mode, I didn't check much further than that as I was trying to figure out how to backtrace the crash.

I'm going to spend some time later today / tomorrow tracing Magic Pockets, as it's so close to working on 32bit. The next will be Lemmings, James Pond or Fire & Ice as I need a game that changes the palette mid-frame working. That will allow me to get the IOC emulation working correctly and recode the frame blit to take account of palette changes.
JonAbbott
Posts: 2938
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: ADFFS 2.30 beta

Post by JonAbbott »

swirlythingy wrote:The initial level selection is the point at which Magic Pockets calls ADFS_DiscOp (four times, with four different custom disc descriptors, but for the same sector of the disc each time) for copy protection purposes
You were spot on. At the start of the sequence it calls ADFFS_Retries, which never returned - that turned out to be a bug in the ADFS shim SWI handler.

Magic Pockets is working perfectly now, I'll do some further testing to see if it fixes any other games and get 2.31 posted up soon.
Post Reply