ADFFS 2.57 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.57 beta

Post by JonAbbott »

Several major bug fixes in this release, if you're currently running 2.55 or 2.56 you should update to this release. Most of the bugs in the StrongARM build are now fixed, so many of the games detailed below should work. A bug that was corrupting memory across all builds has also been resolved and you no longer have to remove the /jfd from the end of files for disc swapping to work.

Additional games that now work on the Pi are:
F10019 Arcade Soccer (1989) (The Fourth Dimension)
F10062 Burn 'Out (1995) (Oregan Developments)
F10117 DinoSaw (1993) (Five Star Marketing)
F10462 Deadline (1996) (Network 23)
F10238 Magnetoids (1994) (Oregan Developments)
F10272 Overload (2000) (Paradise Games)
F10332 Simon the Sorcerer (1994) (GamesWare)
F10397 X-Fire (1992) (The Fourth Dimension)
A305/A301/A410/A440/A540 requirements:
  • 4MB RAM minimum, 12MB RAM maximum
  • RISCOS 3.11
  • SparkFS must be loaded if "Boot Floppy" is going to be used
RiscPC requirements:
  • 32MB RAM minimum
  • RISC OS 3.x, 4.x or 5.23 Jun 9th 2016 or newer. Note that some games will not work on 4.x due to the way it allocates screen memory in 1MB blocks
  • SparkFS must be loaded
Iyonix requirements
  • RISC OS 5.23 Jun 9th 2016 or newer
  • SparkFS must be loaded
  • To get legacy TV MODEs working (0 to 15), you can try this Monitor file for 75Hz EGA on VGA
    EGAonVGAMonitor.zip
    (698 Bytes) Downloaded 419 times
Pi requirements:
  • RISC OS 5.23 Jun 9th 2016 or newer
  • SparkFS must be loaded
  • AnyMode must be installed in !Boot.Choices.Boot.PreDesk or the monitor set to Auto in Configure
  • Ensure fake_vsync_isr=1 is uncommented in !Boot.Loader.CONFIG/TXT
  • (optional) For the proper retro gaming look, you can turn off the default GPU filtered upscaling by editing !Boot.Loader.CONFIG/TXT and add the following lines:

    Code: Select all

    #set GPU upscaling to nearest neighbour
    scaling_kernel=8
  • (optional) If your display supports 50Hz, you can force the Pi to use 50Hz by editing !Boot.Loader.CONFIG/TXT and adding the following lines. Uncomment one of the hdmi_mode values:

    Code: Select all

    hdmi_ignore_edid=0xa5000080
    #
    hdmi_group=1
    #576p @ 50Hz
    #hdmi_mode=17
    #
    #720p @ 50Hz
    #hdmi_mode=19
    #
    #1080p @ 50Hz
    hdmi_mode=31
    At other monitor frequencies, games will still run at the correct rate but micro stutter may be noticeable where extra frames are added to make up the difference

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+ ARM710 under RedSquirrel
  • Although Caverns runs fine under VIDC translation on the A7000, on a RPC the scrolling isn't quite correct
  • Does not work on a RISC OS 3.1x machine with more than 12mb of RAM
  • Some games don't display on Kinetic (eg Zarch)
  • Requires 30mb of free memory to work on a StrongARM machine, if the game isn't natively StrongARM compatible
  • OMAP3/4 and Pi3 untested and may not work
  • Sometimes reports "Broken directory" after loading (exiting and reloading is a temporary fix)
  • Can't change discs in Apocalypse on RO4
  • ADFFS may not reset itself after the JIT is shutdown when a game quits (quit and reload ADFFS before trying to Boot another game)
  • Thundermonk fire sometimes doesn't appear on the Pi if the video refresh rate is >50Hz
  • Some games detailed below are currently not working on StrongARM - due to a bug in the ARMv3/v4 JIT on IOMD
  • Some games may result in a blank screen on a RiscPC
  • Rockfall will crash if left on the demo loop
  • Carnage Inc does not work past ADFFS 2.56 beta
Games that are made StrongARM/Pi compatible:
F10001 2067 BC (1993) (Oregan Developments)
F10006 Aggressor (1992) (Atomic Software)
F10007 Air Supremacy (1991) (Superior Software)
F10010 Alerion (1988) (DABS Press)
F10015 Alone In the Dark (1995) (Krisalis Software)
F10017 Apocalypse (1990) (The Fourth Dimension)
F10019 Arcade Soccer (1989) (The Fourth Dimension)
F10493 Arc/A3000 Christmas Box, The: Brixx! (1990) (RTFM Software)
F10493 Arc/A3000 Christmas Box, The: PON! in Winterland (1990) (RTFM Software)
F10493 Arc/A3000 Christmas Box, The: Zap the red wierdos from Mars (1990) (RTFM Software)
F10018 Arcade 3 (1988) (Clares Micro Supplies)
F10020 Arcendium (1988) (Alien Images)
F10026 Arcturus (1994) (Oregan Developments)
F10034 Axis (1993) (TBA Software)
F10036 Ballarena (1990) (Sisteme)
F10038 Battle Chess (1993) (Krisalis Software)
F10039 Battle Tank (1990) (Minerva)
F10041 Big Bang (1996) (Psycore)
F10042 Birds of War (1993) (The Fourth Dimension)
F10049 BlowPipe (1990) (Eclipse)
F10053 Boogie Buggy (1991) (The Fourth Dimension)
F10452 Bouncer (1991) (RTFM Software)
F10057 Bubble Fair (1991) (Eterna)
F10060 Bug Hunter in Space (1990) (Minerva)
F10062 Burn 'Out (1995) (Oregan Developments)
F10065 Cannon Fodder (1994) (Krisalis Software)
F10067 Carnage Inc. (1993) (The Fourth Dimension)
F10355 Cascade (1992) (Milo Shaffer and Richard Norman)
F10068 Casino (1989) (Minerva)
F10071 Cataclysm (1991) (The Fourth Dimension)
F10072 Caverns (1991) (Minerva)
F10490 Champions: Jahangir Khan World Championship Squash (1991) (Krisalis Software)
F10081 Chuck Rock (1991) (Krisalis Software)
F10144 Chuck Rock [BUZZ version] (1994) (Krisalis Software)
F10090 Conqueror (1988) (Superior Software)
F10104 DarkWood (1995) (Eclipse)
F10462 Deadline (1996) (Network 23)
F10115 Diggers (1994) (Millennium Interactive)
F10117 DinoSaw (1993) (Five Star Marketing)
F10118 Dominate (1991) (RTFM Software)
F10125 Drifter (1997) (The Fourth Dimension)
F10127 Drop Ship (1990) (The Fourth Dimension)
F10128 Dune II - Battle for Arrakis (1995) (Eclipse) (v1.23F)
F10535 Dune II - Battle for Arrakis (1997) (Eclipse) [CD version] (v1.32)
F10129 Dungeon, The (1993) (The Fourth Dimension)
F10307 Ego: Repton 4 (1992) (Superior Software)
F10130 Elite (1991) (Hybrid Technology) (v1.02)
F10645 Elite (1999) (Ian Bell) (v1.14)
F10140 E-Type (1989) (The Fourth Dimension)
F10153 Fine Racer (1991) (Eterna)
F10154 Fire & Ice (1995) (Warner Interactive Entertainment)
F10157 Fireball II (1990) (Cambridge International Software)
F10158 Fish! (1988) (Rainbird)
F10159 Flashback (1994) (U.S. Gold)
F10167 Freddy's Folly (1988) (Minerva)
F10170 Galactic Dan (1992) (The Fourth Dimension)
F10592 Games Minipack Five: Fireball II (1990) (Cambridge International Software)
F10592 Games Minipack Five: PON! (1990) (Cambridge International Software)
F10172 Gods (1992) (Krisalis Software)
F10179 Gribbly's Day Out (1992) (Coin-Age)
F10178 Grievous Bodily 'ARM [HD version] (2002) (CJE Micros)
F10188 Heimdall (1993) (Krisalis Software)
F10192 Hero Quest (1991) (Krisalis Software)
F10199 Holed Out!! (1989) (The Fourth Dimension)
F10202 HoverBod (1988) (Minerva)
F10204 Ibix the Viking (1989) (Minerva)
F10408 Inferno (1996) (Paradise Games)
F10210 Jahangir Khan World Championship Squash (1991) (Krisalis Software)
F10211 James Pond (1990) (Krisalis Software)
F10590 James Pond [BUZZ version] (1990) (Krisalis Software)
F10212 James Pond II Robocod (1993) (Eclipse)
F10525 James Pond II+ Robocod (1995) (Eclipse)
F10213 Jet Fighter (1988) (Minerva)
F10484 Krisalis Collection, The: Mad Professor Mariarti [BUZZ version] (1991) (Krisalis Software)
F10484 Krisalis Collection, The: Pipe Mania (1993) (Krisalis Software)
F10484 Krisalis Collection, The: Revelation! [BUZZ version] (1993) (Krisalis Software)
F10484 Krisalis Collection, The: Terramex (1993) (Krisalis Software)
F10223 Last Ninja, The (1992) (Superior Software)
F10225 Legend of the Lost Temple, The (1992) (Eterna)
F10277 Lemmings (1991) (Krisalis Software)
F10469 Lemmings [Learning Curve version] (1991) (Krisalis Software)
F10228 Lemmings 2: The Tribes (1994) (Krisalis Software)
F10232 Lotus Turbo Challenge 2 (1992) (Krisalis Software)
F10235 Maddingly Hall (1989) (Minerva)
F10233 Mad Professor Mariarti (1990) (Krisalis Software)
F10593 Mad Professor Mariarti [BUZZ version] (1991) (Krisalis Software)
F10236 Magic Pockets (1993) (Renegade)
F10238 Magnetoids (1994) (Oregan Developments)
F10241 Man at Arms (1990) (The Fourth Dimension)
F10242 Manchester United (1990) (Krisalis Software)
F10491 Manchester United Europe (1991) (Krisalis Software)
F10250 MiG-29 Fulcrum (1991) (Domark) (no sound)
F10251 Minotaur (1987) (Minerva)
F10253 Missile Control (1988) (Minerva)
F10258 Mr Doo (1994) (Archimedes World)
F10260 Nebulus (1992) (Krisalis Software)
F10261 Nevryon (1990) (The Fourth Dimension)
F10263 No Excuses (1991) (Arcana Software)
F10267 Oh, No! More Lemmings (1992) (Krisalis Software)
F10270 Orion (1988) (Minerva)
F10271 Overload (1989) (Clares Micro Supplies)
F10272 Overload (2000) (Paradise Games)
F10507 Pac-mania (1989) (Grandslam Entertainments)
F10447 Pac-mania [Learning Curve version] (1991) (Domark)
F10274 Pandora's Box (1991) (The Fourth Dimension)
F10275 Paradroid 2000 (1993) (Coin-Age)
F10278 Pesky Muskrats (1992) (Coin-Age)
F10281 Pipe Mania (1989) (Krisalis Software)
F10282 Poizone (1991) (Eterna)
F10385 Populous (1992) (Krisalis Software)
F10290 Pysanki (1990) (The Fourth Dimension)
F10298 Quest For Gold
F10480 Quest For Gold [Learning Curve version] (1992) (Krisalis Software)
F10303 RedShift (1990) (Minerva)
F10306 Repton 3 (1988) (Superior Software)
F10308 Revelation! (1992) (Krisalis Software)
F10595 Revelation! [BUZZ version] (1993) (Krisalis Software)
F10309 Revolver () (Psycore)
F10310 Rick Dangerous (1995) (The Hitmen Software)
F10312 Rise in Crime (1988) (Robico Software)
F10315 Rockfall (1991) (Eterna)
F10316 Rotor (1989) (Arcana Software)
F10326 Sensible Soccer (1993) (Renegade) (palette issues)
F10327 Serpents (1993) (Cambridge International Software)
F10332 Simon the Sorcerer (1994) (GamesWare)
F10456 Slappit (1990) (RTFM Software)
F10338 SpeedBall 2 (1994) (Krisalis Software)
F10339 Spheres of Chaos (1992) (Matt Black)
F10343 Sporting Triangles (1990) (CDS Software) (needs slowing down)
F10348 StarTrader (1989) (Gem Electronics)
F10350 Stranded! (1989) (Robico Software)
F10359 S.W.I.V. (1992) (Krisalis Software)
F10566 S.W.I.V. [BUZZ version] (1993) (Krisalis Software)
F10361 Tactic (1996) (Uffenkamp Computer Systeme)
F10362 Talisman (1989) (Minerva)
F10366 Terramex (1988) (Grandslam Entertainments)
F10367 Thundermonk (1989) (Minerva)
F10371 Tower of Babel (1991) (Cygnus Software)
F10378 Warlocks (1993) (Network 23)
F10381 White Magic (1989) (The Fourth Dimension)
F10388 Wolfenstein 3D (1994) (Powerslave Software)
F10389 Wonderland (1991) (Virgin Mastertronic)
F10393 World Class Leaderboard (1988) (Krisalis Software) (needs slowing down)
F10396 Xenon 2: Megablast (1993) (Eclipse)
F10397 X-Fire (1992) (The Fourth Dimension)
F10402 Zarch (1987) (Superior Software)
F10403 Zelanites - The Onslaught (1991) (MicroPower)
F10030 Zodiac - Aries: BlowPipe (1994) (GamesWare)


Changes since 2.56:
  • JIT OS_CallBack Hypervised (fixes Chequered Flag)
  • When running on RO6.x, drop ADFFS$OSVersion and the internal OS version to 4.x
  • Now supports file extensions after the disc number, ie F1000001/jfd will now swap discs correctly, without removing the /jfd
  • JIT core wasn't preserving R14 around CACHEOP_INVALIDATE_TLB_ENTRY on 26bit build, causing BL to encode incorrectly if it was the first instruction in a new page
  • JIT OS_CallBack, OS_SetEnv, OS_Control, OS_ChangeEnvironment, OS_BreakCtrl were returning addresses above the 16MB limit. Now centralized using OS_ChangeEnvironment, tracked and Hypervised
  • JIT removed most of the SWI checks when flag preservation is active
  • Now prevents required Environment handlers from being taken over whilst the JIT is running
  • ADFFS$Path macro was incorrectly using Obey$Dir instead of ADFFS$Dir
  • JIT LDR/STR Abort handler wasn't checking for LDRT/STRT (fixes FPEmulator writes and Chequered Flag)
  • JIT initial permitted RAM limit was wrong
  • Sound_Configure was returning a corrupt address for the previous ChannelHandler (fixes Overload (Paradise))
  • JIT OS_ReadMonotonicTime hypervised and enables IRQ around the call (fixes Overload (Paradise) and Burn Out)
  • JIT OS_Module 18 would crash if an error was returned
  • JIT MOV{S} PC,PC is now executed up to
  • CTRL-SHIFT-F10 (stop recording) wasn't working and could crash
  • Was using the wrong VIDC_list table on GPU's, causing games that palette swap, to swap at the wrong raster (bug introduced in 2.55f)
  • JIT OS_File wasn't preserving SPSR around non-Hypervised calls (fixes Simon the Sorcerer)
  • JIT CLib signal now managed (fixes Elite)
  • Recording buffer wasn't large enough for 1600K type F floppies when recording each sector individually
  • MiscOp poll changed wasn't returning "no change" after the first poll, following a disc change
  • MemCopy was corrupting data if the source was 2 bytes out of alignment (bug introduced in 2.49b)
  • JIT Event 11 (key transition) is now tracked, as ADFFS uses it to detect keys. The event is only passed through if the client enabled it (fixes X-Fire)
  • JIT Conditional LDR's were being checked for page zero access in the low vector build regardless of the condition being true, if its the first instruction the JIT sees. This was breaking LDR after a BL for example, or LDR's at a B address. Reinstated the LDR condition check code from 2.48 as a failsafe (fixes Simon the Sorcerer)
  • OS_FSControl wasn't setting CAO when starting tasks
  • OS_FSControl Absolute launch sequence rewritten to match RO3.60 and now initiates tracking of Environment handlers
  • JIT reports Wimp_StartTask
  • OS_FSControl 4 wasn't word aligning Utilities in the JIT RMA
  • JIT STR Rd,[PC,#-4] is now NOP'd (fixes K.V. and Elite)
  • JIT Wimp_Poll / Wimp_PollIdle no longer hypervised (fixes Elite)
  • Service_PreModeChange now reads the existing pointer palette and forces the pointer off via GraphicsV before taking over GraphicsV
  • Moved all GPU code from ADFRemapVideoMemory to appropriate locations in Service_PreModeChange and Service_ModeChange (fixes Elite)
  • Added ADFFS$50Hz Environment variable, to force the blitter to blit at VSync
  • IOC reads weren't returning FFFFFFFF for LDR/LDRB in IO regions (fixes RTFM Joystick detection in Burn Out)
  • OS_ChangeDymanicArea 2 was breaking the blitter
adffs257b.zip
(770.99 KiB) Downloaded 448 times
NOTE: You must have !SparkFS loaded and use "Boot floppy" to run a game. If you don't, you could end up with a machine that isn't bootable, as some games try to alter the CMOS. Provided "Boot floppy" is used, ADFFS will prevent games from altering both the CMOS and unplugging modules.
DO NOT try to run a game by launching it's Icon - it will almost certainly damage your machine.
asm1
Posts: 1
Joined: Sun Jun 26, 2016 6:46 pm

Re: ADFFS 2.57 beta

Post by asm1 »

Is this worth the upgrade from 2.50 ? I remember you saying something about imaging being broken on 2.53 and up but fixed in this version. (Andymc1280 from stardot here) I've imaged 4D's Cyber chess but would like to do a few more.
JonAbbott
Posts: 2938
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: ADFFS 2.57 beta

Post by JonAbbott »

asm1 wrote:Is this worth the upgrade from 2.50 ? I remember you saying something about imaging being broken on 2.53 and up but fixed in this version. (Andymc1280 from stardot here) I've imaged 4D's Cyber chess but would like to do a few more.
Yes, I'd upgrade as one of the fixes was memory corruption when reading from a floppy image, which was a bug introduced in 2.49.
andretim
Posts: 23
Joined: Tue Oct 15, 2013 5:29 pm

Re: ADFFS 2.57 beta

Post by andretim »

I just demoed the PI 3 to an old friend recently and so I downloaded a few games we played in the past to try out with ADDFS.

Lemmings (1991), works fine, just an Abort on data transfer at &8020 on Exit.
Gods (1992) works fine.
SWIV BUZZ version (1993) works fine.

Alone in the Dark (1995), followed your installation instructions but when running do not get past the INFOGRAMES screenshot.

Dune, I got the CD archive, replaced the !Run file, copied !DuneSaves folder from my RPC version.
Half working, games locks up (except mouse) as soon as I click on a button). For example like trying to select a house in a new game or if I load a saved game, selecting a vehicle and trying to select an action.
JonAbbott
Posts: 2938
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: ADFFS 2.57 beta

Post by JonAbbott »

I purchased a Pi3 this week, so will investigate. I've already added some fixes for FPU instructions on ARMv7, but they're rare case issues. Zarch also highlighted a change between ARMv6 and ARMv7, which I've also fixed, again a rare case.

I expect to find lots of undocumented differences, so hopefully your issues are new ones.
JonAbbott
Posts: 2938
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: ADFFS 2.57 beta

Post by JonAbbott »

andretim wrote:Alone in the Dark (1995), followed your installation instructions but when running do not get past the INFOGRAMES screenshot.
I get past the INFOGRAMES logo, but there are still issues as it doesn't start the game proper, crashing in CLib. Deleting the Data directory and recopying it from all discs should get you past the logo.
andretim wrote:Dune, I got the CD archive, replaced the !Run file, copied !DuneSaves folder from my RPC version.
Half working, games locks up (except mouse) as soon as I click on a button). For example like trying to select a house
Again, non-working on Pi2/3. Running under the debug build, both games crash within CLib due to flags being present in an address pointer. I'll investigate and attempt to find root cause.
Post Reply