ADFFS 2.81

Floppy Disc Controller emulator and virtual IOC/IOMD/ARM JIT for modern RISC OS machines
Post Reply
JonAbbott
Posts: 2957
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

ADFFS 2.81

Post by JonAbbott »

Available below as an attachment for non-networked/pre RiscPC machines, or via PackMan using the source URL detailed at the bottom of this post.

2.81 contains many bug fixes for all machines and some new features mentioned below. It is mainly focused on resolving issues when used on a RiscPC running either RISC OS 3.7x or RISC OS 5.

New features:
  • *ADFBootFloppy can now be used with HD installed games to run the in-built ADFFS Boot script. This avoids having to extract and maintain the scripts in HD installed games, ensuring they're always using the most recent Boot script. For example replace the James Pond !Run contents with:

    Code: Select all

    ADFBootFloppy F1021101
  • !ADFFS will now auto-load itself when opening a JFD file for the first time, provided !ADFFS has been seen. This avoids manually loading !ADFFS prior to opening a floppy image
  • Whilst a game is running, screen memory is now cache-enabled by default on RiscPC with a StrongARM fitted and cache maintenance is performed before VIDC20's DMA reads the memory. This currently only works for games running under the JIT, but will be extended to games that require VIDC1 emulation
  • *MEMA added to replace *MEMORYA. In addition to Byte, Half-word and Double-word it also supports strings, multiple entries on the same command line, skipping to memory locations and performs cache maintenance
  • *HideCommandWindow added to suppress "Press SPACE or click mouse to continue" that some games trigger when exiting back to the Desktop
  • Icons have been created for all games that were missing them and many game icons now have masks
  • Most game Boot scripts have been updated to make use of new features
A-series requirements:
  • 4MB RAM minimum
  • RISC OS 3.10 or newer
  • ADFFS must be installed to a hard-drive
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 RISC OS 4.x due to the way it allocates screen memory in 1MB blocks. RISC OS 6 is not officially supported
Iyonix requirements
  • RISC OS 5.27 Nov 16th 2018 or newer (download link)
  • To get legacy TV MODEs working (0 to 15), you can try this Monitor file for 75Hz EGA on VGA
    EGAonVGAMonitor.zip
Pi requirements:
  • Any revision Pi, from Pi 1 to Pi 4, including Pi Zero
  • RISC OS 5.27 Nov 16th 2018 or newer (download link)
  • Ensure fake_vsync_isr=1 is uncommented in !Boot.Loader.CONFIG/TXT
  • You must disable GPU mode change support using the applicable method below. Note that if you have multiple entries in CMDLINE/TXT, they should be separated with spaces and not new lines.

    Non-NOOBS RISC OS:
    1. Hold SHIFT and browse to !Boot.Loader from the root of the drive
    2. Create CMDLINE/TXT with the following contents:

      Code: Select all

      disable_mode_changes
    NOOBS RISC OS:
    1. Hold SHIFT at power on to enter the NOOBS configuration
    2. Select Edit Config
    3. Add the following to CMDLINE.TXT:

      Code: Select all

      disable_mode_changes
  • (optional) For a blocky pixel retro gaming look, 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
  • Does not support the protection used by Chequered Flag (RO2 version) when running on RISC OS 3.1x (talks directly to the FDC via IOC)
  • Shelling out of the desktop (Ctrl-Shift-F12 twice) hangs under RedSquirrel if an HD floppy is mounted on RO3.5+ ARM710
  • OMAP based cores are not supported. When changing to a legacy mode, the system will hard-lock on a black screen
  • Some games that use overscan may result in a blank screen on a RiscPC
  • 26bit WIMP app support under RISC OS 5 can randomly lock the machine (related to a feature of RISC OS, which doesn't preserve memory page access across task switches)
  • Hardware scrolling is still in effect when returning from an emulated legacy mode, to the desktop under RISC OS 5
  • When switching between an emulated mode and the desktop, logical memory space is leaked eventually resulting in logical memory exhaustion. Refer to the ROOL discussion for further details
  • JIT will not work under RPCEmu as it does not generate Page Faults when User mode writes to pages with Supervisor only write permissions
  • Red Squirrel will crash when mounting a floppy image, if emulating an IOC machine with 16MB of RAM
  • CTRL-SHIFT-F12 will not terminate the following games, which run natively (this is the ARMv5+ list, many more games run native on IOMD):
    • Botkiller
    • Exodus
    • Freddy's Folly
    • Giant Killer
    • Gloop (from Logic Mania)
    • MicroDrive 32M
    • Minotaur
    • SunBurst
    • TwinWorld
    • Wolfenstein 3D
    • Zool - Ninja of the 'Nth' Dimension
  • Games that alter the Wimp Mode might cause a lock when exiting back to the Wimp. This appears to be an external issue when the Wimp can't handle the MODE. Titles need patching to not mess with the Wimp:
    • Cyborg
    • Dreadnoughts
    • Guile
    • Put It!
    • Wizard Apprentice
  • WIMP based titles may lock the machine:
    • Abuse
    • Alderbaran (not working - hard-locks the system)
    • Black Angel
    • Demon's Lair
    • E-Type II
    • Elite
    • Emotions - Search for Humanity
    • EuroBlaster (from Flying High)
    • Fervour
    • Foray
    • Frak!
    • Global Effect
    • Hamsters
    • Haunted House
    • High Risc Racing
    • Ixion
    • Joust (from Flying High)
    • Karma - The Flight Trainer
    • K.V.
    • Mah-Jong Patience
    • Merp (from Mirror Image and Merp)
    • Premier Manager
    • Scrabble
    • Shuggy
    • SimCity
    • TANKS
    • The Chaos Engine
    • Virtual Golf
    • WaveLength
  • Dominate - has corruption on the wipeout screen, which is corruption on the original floppy. Need to source another copy to image
  • Formula Fun - doesn't hide the text cursor and doesn't wait on the track map screen
  • Frak! - music is glitchy and the game has a screensaver, which you can't get out of without hitting ESC
  • Hostages - Music might be wrong. Check against a physical RO2, ARM2 based machine
  • James Pond 2: Robocod (original release) - music key is wrong. Also happens on physical, might be related to a RISC OS update or Module version
  • Caverns does not scroll correctly on a RiscPC with VRAM fitted
  • Caverns does not display the high-score/ship on a RiscPC running RISC OS 5
  • Rotor does not work on a RiscPC
  • Games that rely on specific video timings or geometry to palette swap or set the Pointer position may not be correct on IOC with LCDGameModes enabled or IOMD based machines
  • Sound is currently very jittery on a RiscPC with a StrongARM fitted, when the JIT is performing cache maintenance. For example when a game starts up or is using self-modifying code
  • Using CTRL-SHIFT-F12 to terminate a game on IOMD can result in the Desktop inadvertently shutting down
  • The following games crash when installed to long paths:
    • Abuse
    • Wonderland

Games that are made compatible with StrongARM or newer processors (tested on Pi 3):
F1000101 2067 BC (1993) (Oregan Developments)
F1000201 3D Construction Kit (1991) (Domark)
F1045101 Acheton & Kingom of Hamil (1987) (TOPOLOGIKA)
F1000401 Adventures, classic complication [Philosopher's Quest, Countdown to Doom, Return to Doom, Kingdom of Hamil, Acheton] (1988) (TOPOLOGIKA)
F1000402 Adventures, classic complication [Philosopher's Quest, Countdown to Doom, Return to Doom, Kingdom of Hamil, Acheton] (1988) (TOPOLOGIKA)
F1049202 Adventure Collection, The: Kidnapping (1993) (Alpine Software)
F1000601 Aggressor (1992) (Atomic Software)
F1064301 Aggressor Macho Edition (1992) (Matt Black)
F1000701 Air Supremacy (1991) (Superior Software)
F1070601 Alien Invasion (1990) (Alien Images)
F1001001 Alerion (1988) (DABS Press)
F1001501 Alone In the Dark (1995) (Krisalis Software)
F1001701 Apocalypse (1990) (The Fourth Dimension)
F1049301 Arc/A3000 Christmas Box, The: Brixx! (1990) (RTFM Software)
F1049302 Arc/A3000 Christmas Box, The: PON! in Winterland (1990) (RTFM Software)
F1049303 Arc/A3000 Christmas Box, The: Zap the red wierdos from Mars (1990) (RTFM Software)
F1001801 Arcade 3 (1988) (Clares Micro Supplies)
F1001901 Arcade Soccer (1989) (The Fourth Dimension)
F1002001 Arcendium (1988) (Alien Images)
F1002401 ArcPinball (1990) (Shibumi Soft)
F1002601 Arcturus (1994) (Oregan Developments)
F1003301 Asylum (1993) (Digital Psychosis)
F1070001 Asylum (2002) (Acorn Arcade)
F1048901 Avon & Murdac (1989) (TOPOLOGIKA)
F1003401 Axis (1993) (TBA Software)
F1023101 Ballarena (1990) (Sisteme)
F1003601 Ballarena (1994) (Uffenkamp Computer Systeme)
F1003701 Bambuzle (1991) (Arxe Systems)
F1003801 Battle Chess (1993) (Krisalis Software)
F1003901 Battle Tank (1990) (Minerva)
F1004101 Big Bang (1996) (Psycore)
F1004201 Birds of War (1993) (The Fourth Dimension)
F1064001 Blaston (1991) (Eterna)
F1004401 Blaston (1994) (Uffenkamp Computer Systeme)
F1004601 Blitz! (1991) (Arxe Systems)
F1004701 BloodLust (1998) (The Fourth Dimension)
F1004801 Blood Sport (1993) (Matt Black)
F1004901 BlowPipe (1990) (Eclipse)
F1005201 Bobby Blockhead vs The Dark Planet (1991) (Atomic Software)
F1005301 Boogie Buggy (1991) (The Fourth Dimension)
F1005501 Botkiller2 (1999) (Artex Software)
F1045201 Bouncer (1991) (RTFM Software)
F1005601 Break 147 & Superpool (1991) (The Fourth Dimension) (HD install only)
F1060501 Break 147 & Superpool [SA version] (2000) (The Fourth Dimension)
F1044301 Brutal Horse Power (1997) (TBA Software)
F1005701 Bubble Fair (1991) (Eterna)
F1005801 Bubble Impact (1997) (Moving Pixels)
F1005901 Bug Hunter & Moondash (1990) (Minerva)
F1006001 Bug Hunter in Space (1990) (Minerva)
F1006201 Burn'Out (1995) (Oregan Developments)
F1046101 Burn'Out [SA version] (1997) (Oregan Developments)
F1006501 Cannon Fodder (1994) (Krisalis Software)
F1006701 Carnage Inc. (1993) (The Fourth Dimension)
F1019501 Cartoon Line part one (1991) (Eterna)
F1002201 Cartoon Line part one (1993) (Uffenkamp Computer Systeme)
F1035501 Cascade (1992) (Milo Shaffer and Richard Norman)
F1006801 Casino (1989) (Minerva)
F1007101 Cataclysm (1991) (The Fourth Dimension)
F1048201 Cataclysm [SA version] (1998) (The Fourth Dimension)
F1007201 Caverns (1991) (Minerva)
F1049001 Champions: Jahangir Khan World Championship Squash (1991) (Krisalis Software)
F1049002 Champions: Manchester United (1992) (Krisalis Software)
F1049004 Champions: World Championship Boxing Manager (1992) (Krisalis Software)
F1049005 Champions: World Class Leaderboard (1992) (Krisalis Software)
F1062401 Chequered Flag [RO3 version] (1992) (Cambridge International Software)
F1007801 Chocks Away (1990) (The Fourth Dimension)
F1060601 Chocks Away Compendium [SA version] (2000) (The Fourth Dimension)
F1008001 Chopper Force (1992) (The Fourth Dimension)
F1050401 Chopper Force [SA version] (1998) (The Fourth Dimension)
F1008101 Chuck Rock (1991) (Krisalis Software)
F1014401 Chuck Rock [BUZZ version] (1994) (Krisalis Software)
F1060201 Chuck Rock [SA version] (2001) (R-Comp Interactive)
F1008301 Cobalt Seed, The (1995) (TBA Software)
F1008801 Command Ship (1995) (TBA Software)
F1008901 Confusion (1989) (Cambridge International Software)
F1009001 Conqueror (1988) (Superior Software)
F1009101 COPS (1989) (Alpine Software)
F1009301 Corruption (1989) (Rainbird)
F1009501 Crisis (1990) (Cambridge International Software)
F1009601 Crystal Maze, The (1993) (Sherston Software)
F1009901 Cyber Ape (1995) (TBA Software)
F1010101 CyberZone (1992) (Uffenkamp Computer Systeme)
F1010201b Cyborg (1992) (Alpine Software) (Text Adventure only)
F1010301 Cycloids (1993) (Software 42)
F1010401 DarkWood (1995) (Eclipse)
F1046201 Deadline (1996) (Network 23)
F1010901 Deeva (1990) (Calderglen Computers)
F1011501 Diggers (1994) (Millennium Interactive)
F1011701 DinoSaw (1993) (Five Star Marketing)
F1011801 Dominate (1991) (RTFM Software)
F1012101 DragonBall (1993) (TBA Software)
F1012201 Dreadnoughts (1992) (Turcan Research Systems)
F1012501 Drifter (1997) (The Fourth Dimension)
F1060801 Drifter [SA version] (2000) (The Fourth Dimension)
F1012701 Drop Ship (1990) (The Fourth Dimension)
F1060101 Drop Ship [SA version] (1997) (The Fourth Dimension)
F1012801 Dune II - Battle for Arrakis (1995) (Eclipse) (v1.23F)
F1053501 Dune II - Battle for Arrakis (1997) (Eclipse) [CD version] (v1.32)
F1012901 Dungeon, The (1993) (The Fourth Dimension)
F1030701 Ego: Repton 4 (1992) (Superior Software)
F1013201 Empire Soccer '94 (1995) (Empire Software)
F1013401 Enter The Realm (1991) (The Fourth Dimension)
F1045701 Enter The Realm [SA version] (1992) (The Fourth Dimension)
F1013501 Enthar Seven (1988) (Robico Software)
F1014001 E-Type (1989) (The Fourth Dimension)
F1061001 E-Type Compendium [SA version[ (1999) (The Fourth Dimension)
F1014601 Exotic Adventures of Sylvia Layne, The (1993) (The Fourth Dimension)
F1015301 Fine Racer (1991) (Eterna)
F1015401 Fire & Ice (1995) (Warner Interactive Entertainment)
F1015701 Fireball II (1990) (Cambridge International Software) (F1015701b script for Fireball)
F1015801 Fish! (1988) (Rainbird)
F1015901 Flashback (1994) (U.S. Gold)
F1016301 Flying High: Joust (1997) (GEK)
F1016302 Flying High: Euroblaster (1997) (GEK)
F1062501 FORAY! (1992) (Acorn User)
F1063101 Formula Fun (1993) (Mystery Software)
F1016401 Formula Two Thousand (1994) (TBA Software)
F1016601 F.R.E.D. (1993) (Software 42) (provided you preload the 32bit version of ArcFS)
F1016701 Freddy's Folly (1988) (Minerva)
F1043701 Fugative's Quest (1989) (Robico Software)
F1017001 Galactic Dan (1992) (The Fourth Dimension)
F1055601 Games Minipack Four: Confusion (1989) (Cambridge International Software)
F1055602 Games Minipack Four: Orion (1988) (Minerva)
F1055603 Games Minipack Four: StarTrader (1989) (Gem Electronics)
F1055604 Games Minipack Four: Word Up Word Down (1989) (Gem Electronics)
F1059201 Games Minipack Five: Fireball II (1990) (Cambridge International Software) (F1059201b script for Fireball)
F1059202 Games Minipack Five: Fish! (1990) (Cambridge International Software)
F1059203 Games Minipack Five: PON! (1990) (Cambridge International Software)
F1017201 Gods (1992) (Krisalis Software)
F1054501 Gods [RPC version] (2001) (R-Comp Interactive)
F1017901 Gribbly's Day Out (1992) (Coin-Age)
F1017801 Grievous Bodily 'ARM (1991) (The Fourth Dimension) (hard to swap discs without it asking for disc 1)
F1024501 Grievous Bodily 'ARM (1991) (The Fourth Dimension) (hard to swap discs without it asking for disc 1)
F1018001 Groundhog (1998) (The Fourth Dimension)
F1041101 Guild of Thieves, The (1987) (Rainbird)
F1018301 Guile (1992) (Dream Software)
F1018801 Heimdall (1993) (Krisalis Software)
F1019201 Hero Quest (1991) (Krisalis Software)
F1019301 Heroes of Might and Magic 2: The Succession Wars (2000) (R-Comp Interactive) (no script)
F1019901 Holed Out!! (1989) (The Fourth Dimension)
F1061201 Holed Out!! Compendium [SA version] (1999) (The Fourth Dimension)
F1020101 Hostages (1990) (Superior Software)
F1020201 HoverBod (1988) (Minerva)
F1056501 Humanoids and Robotix (1993) (Cambridge International Software)
F1020401 Ibix the Viking (1989) (Minerva)
F1020501 Inertia (1990) (The Fourth Dimension)
F1040801 Inferno (1996) (Paradise Games)
F1020601 Interdictor (1989) (Clares Micro Supplies)
F1020701 Interdictor II (1990) (Clares Micro Supplies)
F1020801 Iron Lord (1990) (Cygnus Software)
F1021001 Jahangir Khan World Championship Squash (1991) (Krisalis Software)
F1064901 Jahangir Khan World Championship Squash [BUZZ version] (1991) (Krisalis Software)
F1021101 James Pond (1990) (Krisalis Software)
F1059001 James Pond [BUZZ version] (1990) (Krisalis Software)
F1060301 James Pond [SA version] (2001) (R-Comp Interactive)
F1021201 James Pond II Robocod (1993) (Eclipse)
F1052501 James Pond II+ Robocod (1995) (Eclipse)
F1063301 James Pond Underwater Agent and Running Water (1995) (SkillsWare)
F1021301 Jet Fighter (1988) (Minerva)
F1021401 Jinxter (1989) (Rainbird)
F1021801 Kaptain Konflict (1990) (Calderglen Computers)
F1022001 KerBang! (1991) (Eterna)
F1048401 Krisalis Collection, The: Mad Professor Mariarti [BUZZ version] (1991) (Krisalis Software)
F1048402 Krisalis Collection, The: Pipe Mania (1993) (Krisalis Software)
F1048403 Krisalis Collection, The: Revelation! [BUZZ version] (1993) (Krisalis Software)
F1048404 Krisalis Collection, The: Terramex (1993) (Krisalis Software)
F1022101 Labyrinth (2000) (Acornsoft)
F1008401 Last Days of Doom, The & Hezarin (1990) (TOPOLOGIKA)
F1022301 Last Ninja, The (1992) (Superior Software)
F1022401 Leeds United (1993) (CDS Software)
F1022501 Legend of the Lost Temple, The (1992) (Eterna)
F1027701 Lemmings (1991) (Krisalis Software)
F1046901 Lemmings [Learning Curve version] (1991) (Krisalis Software)
F1022801 Lemmings 2: The Tribes (1994) (Krisalis Software)
F1022902 Logic Mania: Blindfold (1996) (The Fourth Dimension)
F1022903 Logic Mania: Gloop (1996) (The Fourth Dimension)
F1022904 Logic Mania: Tilt (1996) (The Fourth Dimension) (font palette issues if booted)
F1023201 Lotus Turbo Challenge 2 (1992) (Krisalis Software)
F1023301 Mad Professor Mariarti (1990) (Krisalis Software)
F1059301 Mad Professor Mariarti [BUZZ version] (1991) (Krisalis Software)
F1023501 Maddingly Hall (1989) (Minerva)
F1023601 Magic Pockets (1993) (Renegade)
F1023801 Magnetoids (1994) (Oregan Developments)
F1024101 Man at Arms (1990) (The Fourth Dimension)
F1061701 Man at Arms (1992) (ProAction)
F1024201 Manchester United (1990) (Krisalis Software)
F1049101 Manchester United Europe (1991) (Krisalis Software)
F1024401 Master Break (1990) (Superior Software)
F1056401 Memory Magic (1990) (Cambridge International Software)
F1024701 MicroDrive (1990) (Cambridge International Software)
F1045801 MicroDrive Designer (1992) (Cambridge International Software)
F1024801 MicroDrive World Edition (1991) (Cambridge International Software)
F1025001 MiG-29 Fulcrum (1991) (Domark)
F1040901 MiG-29M Super Fulcrum (1991) (Domark)
F1025101 Minotaur (1987) (Minerva)
F1025201 Mirror Image and Merp (1996) (TBA Software)
F1025301 Missile Control (1988) (Minerva)
F1025601 Morph (1998) (The Fourth Dimension)
F1025801 Mr Doo (1994) (Archimedes World)
F1026001 Nebulus (1992) (Krisalis Software)
F1026101 Nevryon (1990) (The Fourth Dimension)
F1061301 Nevryon [SA version] (2001) (The Fourth Dimension) (HD install only)
F1026301 No Excuses (1991) (Arcana Software)
F10266o1 OddBall (1995) (Digital Psychosis)
F1026701 Oh, No! More Lemmings (1992) (Krisalis Software)
F1026801 Olympics, The (1990) (The Fourth Dimension)
F1026901 Omar Sharif's Bridge (1992) (Krisalis Software)
F1027001 Orion (1988) (Minerva)
F1027101 Overload (1989) (Clares Micro Supplies)
F1027201 Overload (2000) (Paradise Games)
F1050701 Pac-mania (1989) (Grandslam Entertainments)
F1044701 Pac-mania [Learning Curve version] (1991) (Domark)
F1027401 Pandora's Box (1991) (The Fourth Dimension)
F1047801 Pandora's Box [SA version] (1998) (The Fourth Dimension)
F1027501 Paradroid 2000 (1993) (Coin-Age)
F1027701 Pawn, The (1990) (Rainbird)
F1027801 Pesky Muskrats (1992) (Coin-Age)
F1028101 Pipe Mania (1989) (Krisalis Software)
F1059901 Pipe Mania [RPC version] (2001) (R-Comp Interactive)
F1041001 Plague Planet (1988) (Alpine Software)
F1048701 Play It Again Sam 3 disk 1 [Superior Golf, Zelanites] (1993) (Superior Software)
F1048702 Play It Again Sam 3 disk 2 [Letrouve, Top Banana] (1993) (Superior Software)
F1057407 Play It Again Sam 4: Last Ninja, The (1997) (ProAction)
F1054701 Pocket Money Demo (1998) (Paradise Games)
F1028201 Poizone (1991) (Eterna)
F1028501 Populous (1992) (Krisalis Software)
F1059701 Populous [RPC version] (2001) (R-Comp Interactive)
F1028601 PowerBand (1990) (The Fourth Dimension) (v1.00)
F1061901 PowerBand (1990) (The Fourth Dimension) (v2.00)
F1060001 PowerBand [SA version] (1998) (The Fourth Dimension)
F1029301 Pushy (1997) (The Fourth Dimension)
F1029201 Put It! (1992) (Uffenkamp Computer Systeme) (sound issues)
F1029001 Pysanki (1990) (The Fourth Dimension)
F1029601 Quark (1993) (Oregan Developments)
F1029701 Quazer (1988) (Impact Software)
F1029801 Quest For Gold
F1048001 Quest For Gold [Learning Curve version] (1992) (Krisalis Software)
F1030101 Ravenskull (1997) (ProAction)
F1030201 Raw Power (1993) (Software 42)
F1030301 RedShift (1990) (Minerva)
F1047501 Rekall (1990) (RTFM Software)
F1065901 Repton 1 (1997) (ProAction)
F1030401 Repton 1 & 2 Special Offer Pack (1998) (ProAction)
F1030601 Repton 3 (1988) (Superior Software)
F1047901 Repton 3 Four Game Compilation (1992) (Superior Software)
F1030801 Revelation! (1992) (Krisalis Software)
F1059501 Revelation! [BUZZ version] (1993) (Krisalis Software)
F1030901 Revolver (1995) (Psycore)
F1031001 Rick Dangerous (1995) (The Hitmen Software)
F1031201 Rise in Crime (1988) (Robico Software)
F1031501 Rockfall (1991) (Eterna)
F1031601 Rotor (1989) (Arcana Software)
F1045901 Sally and Wally (1995) (Oregan Developments)
F1031801 Saloon Cars (1991) (The Fourth Dimension)
F1031901 Saloon Cars Deluxe (1992) (The Fourth Dimension)
F1061401 Saloon Cars Deluxe [SA version] (2000) (The Fourth Dimension) (F1061401b script for !Run replacement)
F1032601 Sensible Soccer (1993) (Renegade)
F1032701 Serpents (1993) (Cambridge International Software)
F1043801 SimCity 2000 [A5000 version] (1994) (Krisalis Software)
F1033101 SimCity 2000 [RPC version] (1994) (Krisalis Software)
F1032901 Silver Ball (1997) (The Fourth Dimension)
F1043801 SimCity 2000 [A5000 version] (1994) (Krisalis Software)
F1033101 SimCity 2000 [RPC version] (1994) (Krisalis Software)
F1033201 Simon the Sorcerer (1994) (GamesWare)
F1045601 Slappit (1990) (RTFM Software)
F1033401 Small (1993) (Virgo Software)
F1059405 Software 42 Collection: Raw Power (1993) (Eclipse)
F1033801 SpeedBall 2 (1994) (Krisalis Software)
F1054601 SpeedBall 2 [RPC version] (2001) (R-Comp Interactive)
F1033901 Spheres of Chaos (1992) (Matt Black)
F1054401 Spheres of Chaos 2 (2000) (R-Comp Interactive)
F1034101 Spobbleoid (1994) (Cybernation Entertainment Systems)
F1034201 Spobbleoid Fantasy (1994) (Cybernation Entertainment Systems)
F1061801 Spobbleoid Fantasy [SA version] (2002) (The Fourth Dimension)
F1034301 Sporting Triangles (1990) (CDS Software)
F1034401 SpySnatcher (1992) (TOPOLOGIKA)
F1034701 Starch (1990) (Alien Images)
F1034801 StarTrader (1989) (Gem Electronics)
F1035001 Stranded! (1989) (Robico Software)
F1035101 Stunt Racer 2000 (1993) (The Fourth Dimension)
F1044501 Stunt Racer 2000 [SA version] (1997) (The Fourth Dimension)
F1035601 Super Snail (1998) (The Fourth Dimension)
F1035701 Superior Golf (1990) (Superior Software) (speed issues, click on club to select instead of using MENU/ADJUST)
F1035901 S.W.I.V. (1992) (Krisalis Software)
F1056601 S.W.I.V. [BUZZ version] (1993) (Krisalis Software)
F1036001 Syndicate+ (1998) (R-Comp Interactive)
F1062901 Tactic (1990) (Eterna)
F1036101 Tactic (1996) (Uffenkamp Computer Systeme)
F1036201 Talisman (1989) (Minerva)
F1036401 Technodream (1993) (Superior Software)
F1036601 Terramex (1988) (Grandslam Entertainments)
F1036701 Thundermonk (1989) (Minerva)
F1037001 Top Banana (1988) (Hex)
F1037101 Tower of Babel (1991) (Cygnus Software)
F1037201 Trivial Pursuit (1989) (Domark)
F1037401 Twinworld (1990) (Cygnus Software)
F1037501 UIM (1990) (The Fourth Dimension)
F1037801 Warlocks (1993) (Network 23)
F1037901 Waterloo (1992) (Turcan Research Systems)
F1038101 White Magic (1989) (The Fourth Dimension)
F1038201 White Magic 2 (1989) (The Fourth Dimension)
F1038601 Wizard Apprentice (1997) (The Datafile)
F1038801 Wolfenstein 3D (1994) (Powerslave Software) (use the native 32bit version instead)
F1038701 WolfPack (1992) (Software 42)
F1038901 Wonderland (1991) (Virgin Mastertronic)
F1039001 Word Up Word Down (1989) (Gem Electronics)
F1039201 World Championship Boxing Manager (1991) (Krisalis Software)
F1039301 World Class Leaderboard (1988) (Krisalis Software)
F1039101 WorldScape [pre-release v0.91] (1990) (Eclipse)
F1065501 WorldScape (1990) (Eclipse)
F1039401 Worra Battle (1989) (Oak Solutions)
F1039601 Xenon 2: Megablast (1993) (Eclipse)
F1039701 X-Fire (1992) (The Fourth Dimension) (Spray sound doesn't work correctly)
F1032001 X-Run (1990) (XFM Software)
F1040101 Zalaga (1996) (Pro-Action)
F1040201 Zarch (1987) (Superior Software)
F1040301 Zelanites - The Onslaught (1991) (MicroPower)
F1003001 Zodiac - Aries: BlowPipe (1994) (GamesWare)
F1003004 Zodiac - Aries: Quizmaster (1994) (GamesWare)
F1003005 Zodiac - Aries: Square Route (1994) (GamesWare)


Changes since 2.80:
  • JIT Abort handler wasn't clearing the Device Vector claims on IOMD
  • GOARMxJIT wasn't flushing the I-cache
  • ADFScreenCaching wasn't included in the IOMD 32bit build and wasn't called by ADFBootFloppy on IOMD 32bit build. It was also corrupting R12 if called by Entry_ADFBootFloppy
  • ADFScreenCaching now works on RO 3.71 SA
  • JIT report_abort now handles aborts occuring during JIT initialisation
  • JIT call_vector_claim was disabling FIQ instead of IRQ on entry and was corrupting R13 on IOMD due to the lack of a NOP after LDMIA R13, {R13}^
  • JIT restore_machine_state wasn't restoring the VSync event correctly
  • JIT CACHEOP_CLEAN_CODELET wasn't invalidating the I cache on StrongARM
  • Added an STR preceding all STM^ on IOMD builds to workaround a StrongARM rev.2 erratum
  • JIT call_device_claimant now allocates a transient stack for the vector call, to avoid potential re-entrancy issues
  • JIT the following instructions didn't include a NOP after the MSR on IOMD 32bit:
    • <alu>S PC, ...
    • TSTP/TEQP/CMPP/CMNP
    • LDM Rn{!}, {<reg_list>, PC}^
    • MOVS PC, Rn, ...
  • JIT core was corrupting the UND stack on IOMD 26bit if the 1st instruction seen was a Copro that needed passing to the previous claimant
  • JIT IOMD debug screen output was Black, instead of White
  • JIT BL codelet reduced to 9 instructions on 32bit RISC OS
  • JFD imager now checks if the disk selection was cancelled, before running the actual imager
  • JFD imager disk selection switched to Wimp v3.00 and now defines the menu width
  • JIT report_JIT was calling Debugger_Disassemble with SPSR set to the current CPU mode
  • EventV handler wasn't claiming the Key event when a task is being terminated
  • JIT call_device_claimant now preserves the entry SPSR to avoid SPSR corruption when passing IRQ back to RISC OS on IOMD
  • JIT IRQ handler on IOMD was checking IRQ status registers instead of IRQ request registers, causing unnecessary IRQ's to be passed to the OS and game
  • JIT IRQ handler on IOMD was corrupting R13 if an IRQ occurred whilst PC was inside a codelet, if there were no IRQ's to pass to the OS
  • *MEMA added to reduce Boot script sizes and perform cache ops
  • Moved RunType aliases to !Boot and altered so ADFFS will start up if it's not already loaded. This means !ADFFS only needs to be seen during boot and not run to open floppy images
  • *HideCommandWindow added to prevent "Press SPACE .." being prompted when a script exits back to the Wimp
  • GOARM3JIT now passes to *ADFGO to avoid code duplication
  • JIT reset_appspace_L2PT no longer sets page zero access to read/write
  • JIT merged ARMop and non-ARMop codepaths and back-ported RO5 ARMop to 26bit builds
  • JIT on Low Vector the abort handler wasn't checking for conditional hypercalls, which could cause conditional Page Zero LDR/LDM hypercalls to be overwritten
  • added a "Filer_Boot !Boot" to !Run, to ensure its seen by the Wimp, this ensures !ADFFS.!Boot is not rerun by the Wimp when added to the boot tasks
  • *ADFBootFloppy will now accept the floppy ID as a value, which will extract the Boot script from !ADFFS.obey and run it
  • Added HideCommandwindow to all Boot scripts that use ECHO
  • Changed all Boot scripts to use MEMA
  • JIT IOC handler was clearing SSBC if the task was paged out
  • JIT IOC handler was only processing the first register in an LDM/STM that was touching IOC registers
  • JIT IOC handler now emulates IRQB on IOMD
  • JIT update_MEMC now only alters the Sound DMA state if its actually changed
  • JIT debug via our_XOS_WriteC on IOMD now validates MEMC_Vinit (Rockfall had a bug that pointed the video start into its codespace)
  • Writes to MEMC CR now ignore Sound DMA control (fixes sound in Rockfall, No Excuses and Rotor on IOMD)
  • JIT wasn't enabling sub-page support on ARM7x0/ARM7500/SA
  • ADFRemapVideoMemory wasn't flusing the TLB if it unmapped the MEMC section in L1PT on IOMD 26bit
  • JIT TSTP/TEQP/CMPP/CMNP are now left as-is on IOMD 26bit
  • Data Abort handler could have corrupt R4,R7 when passing aborts to the OS early if Instruction tracing was enabled
  • JIT Page Zero abort detection was checking for <&100000 not <&4000
  • JIT on IOMD 26bit the Abort handler now always sets R13 on entry as the OS Abort handler performs an LDR R13
  • JIT on IOMD 26bit the UND32/ABT32 stacks are now setup during Module startup, instead of JIT startup and the UND32 stack is left imortal when ADFFS exits. The UND32 stack is only created if FPUEmulator hasn't setup a valid stack
  • JIT IOMD 26bit Page Zero abort handler wasn't setting up the word aligned address when proxying writes by the OS
  • JIT CACHEOP_CLEAN_APPSPACE_TO_HERE was cleaning 1 instruction too many
  • JIT wasn't tracking the number of instructions processed, so could exceed JIT_max_instructions (currently 128) if it didn't exit early due to a branch
  • JIT CACHEOP_CLEAN_D_INVALIDATE_I was cleaning 1 extra cache line if the last instruction was the last in the cache line
  • JIT IRQ order corrected to IRQ, IRQ1v, Device Vectors
  • MEMC Vinit wasn't testing for Vinit=Vend correctly when setting VIDINITA on IOMD
  • IOMD if a StrongARM is present, cache flushes are performed to ensure the cached video memory is flushed:
    • On entry to OS_Byte 113
    • On entry to OS_Word 22
    • Before writing to MEMC Vstart
    • If none of the above occurred, the IRQ vector flushes before exit if VSync was active on entry
  • "Boot Floppy" no longer forces Screen Caching off on StrongARM
  • JIT Branch thru Zero handler could crash if entered in USR without a valid stack
  • ADFJoystickKeys wasn't releasing it's ticker correctly when disabled
  • SWI handler quick-check now using a slightly improved routine
  • LCDGameModes updated to set LCDGM$Status when it is enabled and Boot scripts revised accordingly
  • Added volume control keys: CTRL-SHIFT-Up / CTRL-SHIFT-Down in preparation for a switch to 16bit audio (2.81n)
  • *JITBREAK wasn't resetting the instruction at the breakpoint to ensure the JIT is entered
  • JIT now performs an OS_DelinkApplicaton when shutting down as a fail-safe
  • *ADFRemapVideoMemory and *ScreenSize now add a pause after changing screen mode, before changing DA2's size, to workaround a bug in Red Squirrel that crashes the emulator
  • JIT now restores the OS_Byte 114 state when shutdown (fixes Inferno's display issues when run after CTRL-SHIFT-F12 terminating Interdictor)
  • JIT MRC CP15,0,Rx,C0,C? might return an ARMv3 response if the JIT was in ARMv4 mode and the cache was disabled
  • JIT add a check for MRC CP15,0,Rx,C2,C? when running in ARMv4 mode
  • JIT STR PC,[PC, ... was corrupting the register used for tmp2
  • JIT now ensures its emulating an appropriate OS for the CPU mode. ARMv3 will drop to RO3.11 and ARMv4 will switch to RO3.71. When shutting down it will reset the emulation to the current OS
  • JIT OS_SynchroniseCodeArea 0 no longer flushes the full JIT cache. It now cleans the current WimpSlot and allocated region of the RMA. All codelets that aren't immortal are cleared
  • JIT updated APCS-R Clib to 6.14 as most OS_SynchroniseCodeAreas 0 have been replaced with ranged syncs
  • JIT ARMv4 cache consistency checker wasn't checking MOV PC,PC correctly (Burn'Out [SA] intro @ B8B0)
  • JIT environment_handlers was not marking Environment handler codelets as immortal (fixes Burn'Out [SA] crash when run under the ARMv4 JIT)
  • JIT when the ARMv4 JIT is active all JITMEMORYA are now made persistent to cover OS_SynchroniseCodeAreas clearing the JIT code cache (fixes Burn'Out [SA]) (2.81rc1)
  • *ADFCRC added to allow memory to be CRC checked before patching
  • Modified the APD decoder to retain R12 as a pointer to VARS and adjusted all VARS references to be relative to R12
  • Removed the embeded MFM CRC table from the 1772 emulator, its now calculated when an APD is loaded
  • APD decoder no longer uses a hardcoded buffer limit, its now extended as required (fixes aborts when loading 1.6MB APD's)
  • Added CRC checks to boot scripts that modify game code (up to F1007201)
  • Alias$RunType_FCE / FE3 modified to support longer file paths
  • Added CRC checks to boot script that modify code (2.81rc2)
  • *ADFOpen might have trigger an error trying to open a Filer window if it had already reported a Wimp error trying to open the file
  • ADFFS$CRC now set when ADFFS is loaded, to avoid errors in Boot scripts that check file CRC's
adffs281.zip
(1.29 MiB) Downloaded 486 times
adffs281lite.zip
(463.33 KiB) Downloaded 309 times
(lite version is for pre RISC OS 3.5 machines only to ease transfer via floppy. No JFD imaging or later OS support files are included)


NOTE: On RISC OS 3.5+ use the PackMan distribution to receive automatic updates. Add the following URL to the PackMan sources:

Code: Select all

https://www.jaspp.org.uk/packages/release

NOTE: You must use "Boot floppy" to run supported games. If you don't, you could end up with a machine that isn't bootable, as some games 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
Attachments
source281.zip
(333.9 KiB) Downloaded 250 times
Post Reply