There's been extensive changes to the way the blitter works, it's now threaded and runs independent of ADFFS' GraphicsV layer so there may be some knock on effects. There is some tearing near the bottom of the screen if your display isn't 50Hz, which I'm looking into and will resolve in the next release.
Due to a bug in the sound stack on RO5.21 which has since been resolved, you need to be running a RISC OS beta build from 16-09-14 or later.
To force your Pi to 50Hz and turn off the filtered upscaling, edit config.txt on the DOS partition and add the following lines. Uncomment one of the hdmi_mode values:
Code: Select all
hdmi_ignore_edid=0xa5000080
#
#set GPU upscaling to nearest neighbour
scaling_kernel=8
#
hdmi_group=1
#576p @ 50Hz
#hdmi_mode=17
#
#720p @ 50Hz
#hdmi_mode=19
#
#1080p @ 50Hz
hdmi_mode=31
NOTE: You must ensure fake_vsync_isr=1 is also uncommented in your config.txt file on the Pi. If you see a blank screen, try setting the monitor to Auto. Also ensure SparkFS is loaded.
Changes since 2.46
- Self-modifying STR's now release codelets correctly
- Codelets now have four local variables which are stacked if the codelet is interrupted
- Codelets that previously referenced the PC as a static value now use the PC in the codelet header
- Improved encodings of the following instructions
- LDMxx Rn, {<reglist>, PC} (14 instructions down from 21)
- LDMxx Rn, {<reglist>, PC}^ (20 instructions down from 25)
- BL <address> (10 instructions down from 11)
- TEQP/CMNP/TSTP/CMPP PC, ... may previously have corrupt the PSR
- Merged <ALU> PC,PC,... code into <ALU> PC,...
- Hypervised OS_Claim codelet may have overwritten the previous codelet in some circumstances
- Codelets are now cache aligned
- Now takes over the IRQ hardware vector whilst the JIT is running and determines if a codelet has been interrupted before passing the IRQ on
- Now initializes abt_R13 on StrongARM to avoid having a private stack in the Abort handlers
- Now takes over the Branch Through Zero hardware vector whilst the JIT is running
- Now reports aborts in the Mouse Pointer area if it can't decode them
- General Abort handler no longer swaps to SVC32 whilst running, it remains in Abort32
- General Abort handler and JIT Abort handler previously could cause register corruption if an interrupt occurred as the handler exited
- JIT Abort handler wasn't using the correct PSR when proxying LDR Rd, [Rn, {+-}Rm, RRX]!
- Blitter optimizations
- VIDC1 translation was previously writing VIDC softcopy registers on RO5
- Blitter now takes account of Vertical borders
- Frame pacing re-enabled
- IOC CR register is now initialized when the JIT starts
- IOC IR pin is now set high when a VSync occurs
- Blitter is now threaded under RTSupport on RO5 non-IOMD
- System Sound Buffer Change IRQ is now raised when the Channel Handler is called
- Blitter now checks if the backbuffer has already been blitted and drops the current frame if a GPU frame swap is pending
- GraphicsV 6 now claims "Set start of video display" instead of passing it through
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 and Pi the scrolling isn't quite correct
- Does not work on a RISC OS 3.1x machine with more than 12mb of RAM
- RO5.x IOMD doesn't support direct access to VIDC1, VIDC20 or IOC
- Some games don't display on Kinetic (eg Zarch)
- No 26-bit module support on 32bit OS's
- Requires 30mb of free memory to work on a StrongARM machine, if the game isn't natively StrongARM compatible
- Does not work on OMAP3/4 and Iyonix support isn't quite ready for public release
- Games that update the display on event 4 currently flicker on Archimedes/Risc PC (eg Chuck Rock, James Pond)
- Sometimes reports "Broken directory" after loading (exiting and reloading is a temporary fix)
- Can't change discs in Apocalypse on RO4
- Some games may hang when quitting back to the desktop
- ADFFS doesn't reset itself after the JIT is shutdown when a game quits (quit and reload ADFFS before trying to Boot another game)
- The blitter doesn't currently support hardware pointers, so the ship and highscore will not be visible in Caverns on the Pi
- Pacmania music isn't quite correct
- 2067BC sound effects in-level are the wrong pitch
- No Excuses and Rockfall are randomly crashing on the Pi
- On the Lemmings title screen, the mouse cursor corrupts as it goes off the left of the screen
10001 2067BC
10034 Axis
10038 Battle Chess
10036 Ballarena
10049 BlowPipe
10452 Bouncer
10065 Cannon Fodder
10072 Caverns (requires hardware pointer support to work correctly)
10081 Chuck Rock
10090 Conqueror
10307 Ego: Repton 4
10167 Freddy's Folly
10172 Gods
10188 Heimdall
10202 HoverBod (needs slowing down)
10210 Jahangir Khan World Championship Squash
10211 James Pond
10590 James Pond [BUZZ version]
10213 Jet Fighter
10484 Krisalis Collection, The: Mad Professor Mariarti [BUZZ version]
10484 Krisalis Collection, The: Revelation! [BUZZ version]
10484 Krisalis Collection, The: Terramex
10277 Lemmings
10469 Lemmings [Learning Curve version]
10233 Mad Professor Mariarti
10593 Mad Professor Mariarti [BUZZ version]
10236 Magic Pockets
10263 No Excuses
10270 Orion
10507 Pac-mania
10447 Pac-mania [Learning Curve version]
10275 Paradroid 2000 (sound effects aren't correct on StrongARM)
10385 Populous
10298 Quest For Gold
10480 Quest For Gold [Learning Curve version]
10308 Revelation!
10595 Revelation! [BUZZ version]
10309 Revolver
10315 Rockfall
10456 Slappit
10343 Sporting Triangles (needs slowing down)
10359 S.W.I.V.
10366 Terramex
10393 World Class Leaderboard (needs slowing down)
10396 Xenon 2: Megablast
10402 Zarch
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.