ADFFS 2.68

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

ADFFS 2.68

Post by JonAbbott »

This is a large update from the previous ADFFS release, with many bug fixes, additional features and games supported under RISC OS 5:
  • USB Joystick support on RISC OS 5 when used in conjunction with Richard Walker's USBJoystick Module
  • Improvements to the RISC OS 3.11 compatibility layer when running on RISC OS 3.5 and newer operating systems
  • A full RISC OS 5 GraphicsV driver allowing legacy modes to be used at the desktop
  • Many changes to the JIT to support dynamic PMP page allocation within appspace
  • Additional games now playable on RISC OS 5:
    • 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)
    • F1048901 Avon & Murdac (1989) (TOPOLOGIKA)
    • F1009501 Crisis (1990) (Cambridge International Software)
    • F1013501 Enthar Seven (1988) (Robico Software)
    • F1043701 Fugative's Quest (1989) (Robico Software)
    • F1008401 Last Days of Doom, The & Hezarin (1990) (TOPOLOGIKA)
    • F1061301 Nevryon [SA version] (2001) (The Fourth Dimension) (HD install only)
    • F1048701 Play It Again Sam 3 (1993) (Superior Software)
    • F1048702 Play It Again Sam 3 (1993) (Superior Software)
    • F1029301 Pushy (1997) (The Fourth Dimension)
    • F1065901 Repton 1 (1997) (ProAction)
    • F1034401 SpySnatcher (1992) (TOPOLOGIKA)
    • F1037401 Twinworld (1990) (Cygnus Software)
    • F1038201 White Magic 2 (1989) (The Fourth Dimension)
    • F1039401 Worra Battle (1989) (Oak Solutions)
  • Preliminary support for 26bit Wimp based games on RISC OS 5:
    • F1000901 Aldebaran (1993) (Evolution Trading)
    • F1004301 Black Angel (1992) (The Fourth Dimension)
    • F1007401 Chaos Engine, The (2000) (R-Comp Interactive)
    • F1013001 Elite [v1.02] (1991) (Hybrid Technology)
    • F1064501 Elite [v1.14] (1999) (Ian Bell)
    • F1013101 Emotions - Search for Humanity (1997) (The Datafile)
    • F1014101 E-Type II (1994) (The Fourth Dimension)
    • F1016301 Flying High: Joust (1997) (GEK)
    • F1016302 Flying High: Euroblaster (1997) (GEK)
    • F1016501 Frak! (1998) (R-Comp Interactive)
    • F1003003 Zodiac - Aries: Hamsters (1994) (GamesWare)
    • F1020901 Ixion (1992) (Software 42)
    • F1022901 Logic Mania: Atomix (1996) (The Fourth Dimension)
    • F1025202 Merp (1996) (TBA Software)
    • F1028701 Premier Manager (1994) (Gremlin Graphics)
    • F1033001 Sim City (1993) (Krisalis Software)
    • F1038001 WaveLength (1994) (GamesWare)
    • F1000301 Abuse (1998) (R-Comp Interactive) (works provided the install path is short)
    • F1011001 Demon's Lair (1993) (The Fourth Dimension) (sets wrong MODE on return to desktop)
    • F1060701 Demon's Lair [SA version] (1997) (The Fourth Dimension) (sets wrong MODE on return to desktop)
    • F1061101 Haunted House [SA version] (1999) (The Fourth Dimension) (graphics aren't updated correctly, randomly hangs, doesn't run from HD)
    • F1018701 Haunted House (1993) (The Fourth Dimension) (Wimp menu crashes, randomly hangs and sound issues)
    • F1021701 K.V. (1993) (High Risc Software Developments) (Info window hangs)
    • F1023901 Mah-Jong Patience (1990) (Cambridge International Software) (randomly hangs)
    • F1032401 Scrabble (1994) (U.S. Gold) (randomly hangs)
    • F1032801 Shuggy (1997) (Werewolf Software) (Info window hangs)
As RISC OS 5 doesn't provide a public API to allow task switching, the 26bit Wimp app support this build provides should be considered as experimental and has many limitations. Only one 26bit app can be run at once and it may randomly lock the machine when BASIC programs display Info menus.

USBJoystick when used in conjunction with ADFFS on RISC OS 5, will translate USB Joysticks to multiple interfaces, including Acorn, SerialPort, RTFM, JoyMod etc. Where games don't directly support Joysticks, the Joystick buttons can be mapped to Low-Level Internal Key Numbers via *ADFJoystickKeys <J1 Right> <J1 Left> <J1 Down> <J1 Up> <J1 Fire> [<J2 Right> <J2 Left> <J2 Down> <J2 Up> <J2 Fire>]


A305/A301/A410/A440/A540 requirements:
  • 4MB RAM minimum, 12MB RAM maximum
  • RISCOS 3.11
  • 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 4.x due to the way it allocates screen memory in 1MB blocks
  • NOTE: Some RISC OS 4 builds (4.39 for example) have an inbuilt version of ZLib which contains a compression bug. You must *RMUnplug ZLib from the ROM if you wish to save/image JFD files
Iyonix requirements
  • RISC OS 5.23 Jun 9th 2016 or newer
  • To get legacy TV MODEs working (0 to 15), you can try this Monitor file for 75Hz EGA on VGA
    EGAonVGAMonitor.zip
  • (optional) For USB Joystick support, load the USBJoystick Module and configure the Joystick mappings with *USBJoystick_Map, before running a game via ADFFS
Pi requirements:
  • Any revision Pi, from Pi 1 to Pi 3 Model B, including Pi Zero
  • RISC OS 5.23 Jun 9th 2016 or newer
  • Ensure fake_vsync_isr=1 is uncommented in !Boot.Loader.CONFIG/TXT
  • If you're running a ROM build of 14th Dec 2016 or newer you must disable GPU mode change support by creating !Boot.Loader.CMDLINE/TXT with the following contents:

    Code: Select all

    disable_mode_changes
  • (optional) For USB Joystick support, load the USBJoystick Module and configure the Joystick mappings with *USBJoystick_Map, before running a game via ADFFS
  • (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
  • 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 if an HD floppy is mounted on RO3.5+ ARM710 under RedSquirrel
  • Although Caverns runs fine under VIDC translation on the A7000, on a RiscPC the scrolling isn't quite correct
  • Some games don't display on Kinetic (eg Zarch)
  • OMAP based cores are untested and may not work
  • Some games that use overscan may result in a blank screen on a RiscPC
  • Vubars in Overload (2000) (Paradise Games) help pages cause a crash
  • 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 a task switch)

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)
F1000701 Air Supremacy (1991) (Superior Software)
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)
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)
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)
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)
F1008101 Chuck Rock (1991) (Krisalis Software)
F1014401 Chuck Rock [BUZZ version] (1994) (Krisalis Software)
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)
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)
F1012501 Drifter (1997) (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) (screen borders aren't correct)
F1045701 Enter The Realm [SA version] (1992) (The Fourth Dimension)
F1013501 Enthar Seven (1988) (Robico Software)
F1014001 E-Type (1989) (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) (see 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)
F1063101 Formula Fun (1993) (Mystery 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)
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)
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)
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)
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 (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) (graphics issues under blitter)
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)
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)
F1028201 Poizone (1991) (Eterna)
F1028501 Populous (1992) (Krisalis Software)
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)
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)
F1031801 Saloon Cars (1991) (The Fourth Dimension)
F1031901 Saloon Cars Deluxe (1992) (The Fourth Dimension)
F1032601 Sensible Soccer (1993) (Renegade)
F1032701 Serpents (1993) (Cambridge International Software)
F1032901 Silver Ball (1997) (The Fourth Dimension)
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)
F1033901 Spheres of Chaos (1992) (Matt Black)
F1034101 Spobbleoid (1994) (Cybernation Entertainment Systems)
F1034201 Spobbleoid Fantasy (1994) (Cybernation Entertainment Systems)
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)
F1038101 White Magic (1989) (The Fourth Dimension)
F1038201 White Magic 2 (1989) (The Fourth Dimension)
F1038801 Wolfenstein 3D (1994) (Powerslave Software)
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)
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: (1994) (GamesWare)
F1003005 Zodiac - Aries: Square Route (1994) (GamesWare)

Changes since 2.64:
  • imageADF wasn't staggering reads correctly, causing 1.6M floppies to fail to image
  • RTFM Joystick translation added
  • JIT OS_GBPB wasn't checking if any bytes were actually read
  • JIT STMFD R13{!},{PC}^ now strips the ^ as its not a valid instruction (fixed Sensible Soccer on ARMv7)
  • Added ADFJoystickKeys for RO5 machines, which translates Joystick_Read changes to key presses
  • JIT Joystick_Read added to avoid SWI's going direct to USBJoystick (fixes crashes in games that run under an IRQ or set the SVC stack to a non-1mb aligned address)
  • JIT SWI handler wasn't clearing V when entered
  • JIT UpCallV and UpCall Environment handler now only allow through calls that are applicable to RISC OS 3.71 and earlier (fixes USB stack becoming unresponsive on RISC OS 5)
  • JIT call_module_entry didn't exit if the shutdown process had zeroed all the Module entry points
  • JIT Vector claims weren't clearing the internal claim entry if the claim failed and there were no other active claimants
  • JIT Moved SeriousErrorV 1 call from the termination task, to shutdown_interrupts, so it's call when ADFFS reports an issue
  • JIT OS_RemoveTickerEvent wasn't fully releasing the internal vector claim entry
  • JIT OS_CallAfter / OS_CallEvery weren't sharing sibling vector entries if the parameters matched, meaning OS_RemoveTickerEvent could leave sibling claims in the internal vector table
  • Service_ModeChange was resetting HCR/VCR after GraphicsV_SetMode had already defined them (fixes squashed screen in Bouncer and Stunt Racer 2000, knock on effect - BlowPipe won't now fill the screen)
  • JIT Reads/Writes to Hardware Vectors (except IRQ which is handled seperately) are now done to the start of JIT space (fixes Adventures Classics Collection)
  • JIT TSTP/TEQP/CMPP/CMNP were assuming the S bit were set and consequently always setting flags. Without the S bit, only the CPU mode changes on ARM2 (fixes Adventures Classics Collection)
  • JIT TST/TEQ/CMP/CMN on 26 bit OS weren't using a NOP if the S bit is unset
  • JIT TST/TEQ/CMP/CMN on 26 bit OS weren't clearing Rd (its unused)
  • JIT TSTP/TEQP/CMPP/CMNP on 26 bit OS were copying the instruction when the S bit was unset, instead of replacing with a codelet
  • JIT OS_Byte 166 was returning an incorrect upper value in R2
  • JIT ALU instructions with PC in Rn weren't ignoring Rs when checking for available scratch registers, if Rs wasn't present
  • JIT MUL/MLA Rd, Rm, Rs{, Rn} with PC in Rm/Rs/Rn support added (fixes Adventures Classics Collection)
  • ADF imaging failed on 1772 as DiscOp 3 can't return a list of sector ID's
  • *ADFSave/*ADFFlush and saving/flushing via the filer didn't work below RISC OS 3.5
  • *ADFRecord wasn't reporting an error if the filename buffer overflowed
  • reset_ChangeEnvironment wasn't resetting user_entry on JIT startup
  • MemAlloc no longer triggers a Shy virus warning with VProtect 2.93
  • JIT hv_OS_Claim, hv_OS_AddCallBack, hv_OS_Release, hv_OS_RemoveTickerEvent and hv_OS_FSControl weren't clearing down stacked registers before aborting with unsupported messages
  • JIT 26bit Module init sequence wasn't setting the correct address for Module_being_inserted, causing OS_FSControl to not know which Module Initialise was running if it subsequently tries to add a Filing System (fixes SFS in Play it Again Sam 3)
  • JIT 26bit Modules now report the actual error if the RMA insert fails
  • ADFScreenLoad added to work around a bug introduced in RISC OS 3.5 and to allow aliasing of ScreenLoad when 26bit filing systems are handling GBPB
  • JIT OS_SpriteOp 6 now ignored (fixes Letrouve)
  • OS_FSControl now gets the DomainID of the current task before jumping into it
  • JIT hypervised SWI's that return errors weren't calling OS_GenerateError if the X bit was unset
  • TrackerMod updated to 5.07, it was previously settings a sample rate of 0 Hz on 8bit audio systems
  • CTRL-SHIFT-F10 wasn't saving the recording file
  • FileCore_Create now sets the DiscOp errors to be correct for the machine ADFFS is running on
  • *ADFEmulateFDC with no parameter now resets DiscOp errors to be correct for the machine ADFFS is running on
  • Prevent_ScatterList_Adds was checking Background_Op instead of ScatterList_Op, meaning later additions to the scatter list were being missed when creating recordings
  • Entry_DiscOp was also capturing ADFS::1
  • Workaround for background scatter list transfers not being terminated correctly by FileCore pre RISC OS 3.5 added, to prevent a FileCore lock when errors are returned
  • hv_call_voice_handler was using R14 to determine if voices were being terminated, causing voice channels to randomly shut off
  • JIT OS_Byte 13 now prevents RISC OS putting events into a locked state regardless of RISC OS version being emulated
  • call_vector_claim, call_module_entry, voices and environment handlers now check the currently mapped in task ID before entering user code (commented out until 26bit Modules are handled)
  • global MemCopy wasn't checking the current task ID before clearing JIT space
  • moved the blitter from GraphicsV 1 to the 50hz ticker to prevent audio IRQ latency issues (fixes Pushy and Wizard Apprentice)
  • JIT memory is now reset when entering BASIC
  • Hypervised Wimp_SlotSize was corrupting ADFPause code
  • JIT 26bit BASIC no longer puts SWI code into it's variable space
  • *RAMFSFree wasn't working
  • SWI vector initial check optimized to use a table
  • all SWI handlers changed to use vector_handler_trap to exit
  • hv_pre_SWI_veneer wasn't preserving flags correctly on RISC OS 3.11
  • lowered blitter priority to VideoDecode (64) to prevent audio issues in higher resolution modes
  • changed all SWI handler exits to be via macro or vector_handler_exit and stacked R11 on entry to the SWI vector
  • JIT hardware vector writes weren't aligning word writes
  • JIT SWI's called via OS_CallASWI that required a codelet were returning to the wrong address
  • JIT moved environment handler entry into appspace so RISC OS handles them when task switching
  • JIT moved software vectors into appspace to allow delinking at Wimp_Poll
  • JIT Wimp_Poll / Wimp_PollIdle hypervised and delink/relink around the call
  • OS_CallSWI / OS_CallSWIR12 no longer managed by SWI handler if private CLib and BASIC are being used
  • JIT OS_CallSWI / OS_CallSWIR12 now redirect to the internal hypervised SWI handler
  • Added ADFFS_Module to pass through OS_Module
  • BASIC26 Service handler now uses ADFFS_Module to see if its the CAO when Service_Memory is issued (fixes Wimp_Initialise)
  • JIT now tracks the number of JIT tasks and only shuts down if it reaches zero
  • Hypervised OS_FSControl was unnecessary using Hypervised OS_File
  • JIT TEQP/CMNP/TSTP/CMPP Rx,PC were corrupting IRQ/FIQ
  • JIT OS_RemoveCallBack and call_vector_claim were not clearing vector_table.original code after handing the claim
  • OS_SpriteOp 52 now sets "Translation table can be ignored" if there's no translation table in R7
  • moved disk_swap_pending from vars to swi handler
  • JIT Abort handler now checks the source of an unaligned LDR, if its within a codelet, its presumed to be an LDM codelet and switched to an aligned LDR (fixes Pocket Money demo) - DISABLED as it breaks stuff
  • ChannelHandler wasn't correctly checking if the handler should be called directly or via the JIT
  • OS_ReadDynamicArea was performing checks only required when a 32bit CLib is being used
  • _fifty_hz_ticker wasn't clearing the _IOC_VFLYBK semaphore before exiting, causing VFLYBK to never go low
  • hv_pre_SWI_veneer wasn't preserving the IRQ/FIQ state across SWI's passed to the OS
  • JIT Pre/Post Wimp Filters added to link/delink vectors
  • JIT OS_Module 10 (Module_InsertFromMemory) now leaves the Module in RAM and (fixes Raw Power which 2.63j broke)
  • JIT Wimp_Initialise hypervised and installs Pre/Post Filters for 26bit Wimp tasks. Wimp_Poll/PollIdle no longer hypervised
  • JIT SWI flag preservation wasn't preserving IRQ/FIQ/CPU state returned by SWI's
  • GraphicsV driver is now always active and will blit legacy modes on GPU based machines
  • Blitter is now paused during a Service_ModeTranslate and the VIDC20 geometry reset (fixes K.V.)
  • Added DOSMap's for ADF, APD and JFD to !Boot
  • JIT added OS_ScreenMode 2 support, which returns legacy screen mode info (fixes Sibelius)
  • RISC OS 3.11 screen memory is now only mapped when emulating below RISC OS 3.5
  • GOARM3JIT and ADFRemapVideoMemory now only claim processor vectors relevant to them
  • ADFEmulateRISCOS no longer adds the task to the supported list
  • Full GraphicsV driver implemented
  • Abort handler modified to allow PMP triggered aborts within it
  • No longer tracks Prefetch Aborts, to resolve issues with PMP
  • ADFEmulateRISCOS now remaps video memory if emulating below RO3.5
  • Stripped out lots of code for build options no longer supported
  • MEMC mouse pointer address is now validated and falls back to the OS pointer address if its not a valid address or the current task isn't running under the JIT
  • JIT Wimp_Initialise now Delinks, sets CAO to 8000 and Relinks to prevent appspace being shrunk (fixes an Abort in WindowManager)
  • JIT Environment handlers rewritten to handle WindowManager
  • JIT now sits on ChangeEnvironmentV to veneer claims
  • JIT BASIC26 now performs OS_SynchroniseCodeAreas on appspace when loaded
  • restore_machine_state now resets the VDU queue
  • OS_Byte 129 no longer returns legacy values to 32bit Modules (fixes QTM)
  • JIT IOC_timers now issues a go_T0 / go_T1 when the timers cross zero instead of simply copying the latched value (fixes Rotor which broke in 2.63a)
  • JIT STREX aborts weren't flushing the cache
  • JIT STR on IOMD wasn't flushing the cache
  • JIT 26bit BASIC now does an OS_SynchroniseCodeAreas in SYS (workaround while the OS doesn't preserve page access during task switching)
  • JIT Page Zero Abort handlers no longer use R14, which is corrupt by PMP pages triggering Aborts
  • GraphicsV driver now updates its cursor palette for all cards
  • OS_Module wasn't handling recursive Delete calls (fixes Quark)
  • OS_Module 10 wasn't claiming any space to build the stub Module, it now gets the Module size from [R1, #-4] and checks if it's a sensible size, forcing to 32KB if not (RawPower Sqsh Module has no size)
  • JIT OS_CallASWI/R12 behaviour changed to forward specific SWI to the OS (eg OS_CLI) that may not return immediately
  • JIT OS_CallASWI/R12 calling Wimp_Poll/Idle now call a codelet in application space (fixes Abuse)
  • JIT device/vector claims now track the taskID
  • JIT kill_vector_in_range now only kills for the current taskID
  • JIT kill_26bit_modules now only kills Modules in the current taskID
  • OS_FSControl now stacks the Utility return address in SVC instead of USER to avoid PMP issues
  • Setting IOC IRQA T1 was latching T1 if it was previously enabled, when it should be latched if previously disabled (fixes Lemmings 2)
  • JIT hv_post_SWI_veneer was corrupting CPSR on 26bit OS (bug introduced in 2.66k)
  • JIT OS_SetEnv was returning the altered RAM limit, instead of the previous value
  • JIT OS_DynamicArea was trapping all reason codes, not just 2
  • Changed RedSquirrel detection to use XHostFS_GetDeviceName as RSTools aren't 32bit compatible (fixes RO5 under RedSquirrel)
  • ADFScreenLoad now only removes cursors if it changed MODE. Now plots the sprite at the graphics window bottom/left (fixes MicroDrive Designer)
adffs268.zip
(992.92 KiB) Downloaded 569 times

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.

source.zip
(341.37 KiB) Downloaded 401 times
andretim
Posts: 23
Joined: Tue Oct 15, 2013 5:29 pm

Re: ADFFS 2.68

Post by andretim »

I had not much time to play these days but I gave the version a quick test with a few gmes.

The only issue I noticed (Rpi3 OS 5.25 15-Aug-18) is that Ctrl+Shit+F12 locked my machine with:
Pandora's Box [SA version] (1998) (The Fourth Dimension) F1047800
JonAbbott
Posts: 2938
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: ADFFS 2.68

Post by JonAbbott »

andretim wrote: Fri Aug 31, 2018 10:05 pm Ctrl+Shift+F12 locked my machine with:
Pandora's Box [SA version] (1998) (The Fourth Dimension) F1047800
Will investigate
JonAbbott
Posts: 2938
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: ADFFS 2.68

Post by JonAbbott »

JonAbbott wrote: Sat Sep 01, 2018 9:10 am
andretim wrote: Fri Aug 31, 2018 10:05 pm Ctrl+Shift+F12 locked my machine with:
Pandora's Box [SA version] (1998) (The Fourth Dimension) F1047800
Will investigate
I've terminated the game both within the game and at the menu, both when running from HD and from floppy and couldn't cause a lock.

Did you run any other games prior to Pandora's Box? Could you please try terminating it again, but after a clean boot.
Vanfanel
Posts: 576
Joined: Mon Sep 16, 2013 12:01 am

Re: ADFFS 2.68

Post by Vanfanel »

@Jon: I am doing some regression testing, and it seems that:
-Wolfenstein 3D is hanging in quit. Can you reproduce?
-Elite v1.14 crashes on launch. It says Elite has caused an error and will be closed, blaming an unknown SWI
-Populus is crashing on quit. I have tried to update it's !Run script, but F1038501 is missing from the obey zip included in ADFFS 2.68, strange! Anyway, it's crashing from floppy image, too.

As for Pandora's [SA version], it's quitting fine here.
JonAbbott
Posts: 2938
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: ADFFS 2.68

Post by JonAbbott »

Vanfanel wrote: Thu Sep 06, 2018 4:49 pm -Wolfenstein 3D is hanging in quit. Can you reproduce?
If you're running it from HD you need to cache the script. Rename !Run to !Run2 and create !Run as:

Code: Select all

obey -c <Obey$Dir>.!Run2
Vanfanel wrote: Thu Sep 06, 2018 4:49 pm -Elite v1.14 crashes on launch. It says Elite has caused an error and will be closed, blaming an unknown SWI
I see that as well, looks like I may have broken OS_CallASWIR12
Vanfanel wrote: Thu Sep 06, 2018 4:49 pm -Populus is crashing on quit. I have tried to update it's !Run script, but F1038501 is missing from the obey zip included in ADFFS 2.68, strange! Anyway, it's crashing from floppy image, too.
Populous is F1028501. It's not crashing, its reporting use of an undefined instruction. I'll need to investigate further to figure out the best fix.
andretim
Posts: 23
Joined: Tue Oct 15, 2013 5:29 pm

Re: ADFFS 2.68

Post by andretim »

For Pandora, it seems to depends on the location. I managed to reproduce it twice on the tavern's square (where the 4 bearded drinkers are).
Another issue is a badly nested handler error if I hurry up too much to start the game: when press space as soon as the intro music starts playing, the scroll that follows shows but before the rectangle with "Press space to play" appears the error occurs and the games drops to the BASIC prompt.
JonAbbott
Posts: 2938
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: ADFFS 2.68

Post by JonAbbott »

andretim wrote: Thu Sep 06, 2018 8:47 pm For Pandora, it seems to depends on the location. I managed to reproduce it twice on the tavern's square (where the 4 bearded drinkers are).
I can reproduce this in the release build, but I can't reproduce it using a debug build, so its possible one of it's Modules isn't closing down properly.

A workaround is to press CTRL-F12 first to bring up the load/exit menu, then CTRL-SHIFT-F12 to terminate.
andretim wrote: Thu Sep 06, 2018 8:47 pm Another issue is a badly nested handler error if I hurry up too much to start the game: when press space as soon as the intro music starts playing, the scroll that follows shows but before the rectangle with "Press space to play" appears the error occurs and the games drops to the BASIC prompt.
Avoid hammering SPACE during loading as it has to modify two BASIC programs to fix an issue in the main program. The only way to do this currently is to insert keys into the keyboard buffer.
Vanfanel
Posts: 576
Joined: Mon Sep 16, 2013 12:01 am

Re: ADFFS 2.68

Post by Vanfanel »

@Jon: That's how Wolfenstein is installed here, with !Run calling !Run2 as you described.
Quitting via the menu option works fine, and quitting via CTRL+SHIFT+F12 from the menu works fine, too. However, quitting via CTRL+SHIFT+F12 from in-game does hang the computer.

As for Populus, on the list of compatible games you have: F1038501 Populous (1992) (Krisalis Software).
It seems to be a little mistake :)
JonAbbott
Posts: 2938
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: ADFFS 2.68

Post by JonAbbott »

Vanfanel wrote: Fri Sep 07, 2018 12:29 am Quitting via the menu option works fine, and quitting via CTRL+SHIFT+F12 from the menu works fine, too. However, quitting via CTRL+SHIFT+F12 from in-game does hang the computer.
In that case it's possibly the same issue as Pandora's box. In this case, I suspect one of the sound voices isn't terminating correctly. I probably won't investigate this one further as I'll be releasing the 32bit version of Wolfenstein 3D in the near future.
Vanfanel wrote: Fri Sep 07, 2018 12:29 am As for Populus, on the list of compatible games you have: F1038501 Populous (1992) (Krisalis Software).
It seems to be a little mistake :)
A typo I seem to have carried over from when it was first added to the working list - now corrected.
Post Reply