Game testing status

Discuss ADFFS development versions and upcoming additions
JonAbbott
Posts: 1737
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex

Game testing status

Post by JonAbbott » Fri Mar 07, 2014 3:03 pm

Pi RO5.21

Working:
2067BC
Apocalypse
Arc/A3000 Christmas Box, The: Brixx!
Arc/A3000 Christmas Box, The: Zap the red wierdos from Mars
Arcade 3
Axis
Ballarena
Battle Chess
Battle Tank
BlowPipe
Bouncer
Bubble Fair (although cursor is visible)
Cannon Fodder
Cascade
Chuck Rock
Caverns (needs hardware pointer support)
Conqueror
Ego: Repton 4
Fire & Ice
Fireball II
Fish!
Freddy's Folly
Galactic Dan
Games Minipack Five: Fireball II
Gods
Gribbly's Day Out
Heimdall
HoverBod (needs slowing down)
Ibix The Viking (needs slowing down)
Inferno
Jahangir Khan World Championship Squash
James Pond
James Pond [BUZZ version]
Jet Fighter
The Krisalis Collection: Mad Professor Mariarti [BUZZ version]
The Krisalis Collection: Revelation! [BUZZ version]
The Krisalis Collection: Terramex
The Legend of the Lost Temple
Lemmings
Lemmings [Learning Curve Version]
Lotus Turbo Challenge 2
Mad Professor Mariarti
Maddingly Hall
Magic Pockets
Manchester United (needs a blitter update)
Manchester United Europe (needs a blitter update)
Memory Magic
Missile Control (Missile Control sprite is too large)
Mr Doo
Nebulus
No Excuses
Orion
Pac-mania
Pac-mania [Learning Curve version]
Paradroid 2000
Pesky Muskrats
Pipe Mania
Poizone
Populous
Quest for Gold
Quest for Gold [Learning Curve version]
Revelation!
Revelation! [BUZZ version]
Revolver
Rockfall
Rotor
Slappit
SpeedBall 2
Spheres of Chaos
Sporting Triangles (needs slowing down)
S.W.I.V.
Tactic (UCS)
Thundermonk (although doesn't display your shots)
Warlocks
World Class Leaderboard (needs slowing down)
Xenon 2: Megablast
Zarch


Problems:
Arc/A3000 Christmas Box, The: PON! in Winterland - hangs on loading screen
Boogie Buggy - hangs while loading
Cartoon Line part one (UCS) - Sound issues
Cobalt Seed, The - hangs during loading
Elite - crashes during loading
Empire Soccer 94 - crashes during loading. Works on SA RO5 however
Games Minipack Five: PON! - hangs while loading
Kaptain Konflict - crashes after starting a level
Kerbang - hangs loading the Wimp task
Mig-29 Fulcrum - crashes during loading
Oh, No! More Lemmings - crashes after the title sequence
Overload (Paradise) - crashes during loading
Sensible Soccer - crashes after intro sequence
Tower of Babel - corruption on the menu
Wonderland - crashes with a malloc failure after loading





StrongARM RO3.71

Working:
2067BC
Arc/A3000 Christmas Box, The: Zap the red wierdos from Mars
Arcade 3
Axis
Ballarena
Battle Chess
BlowPipe
Bouncer
Bubble Fair
Cannon Fodder
Cascade
Caverns (scrolling not quite correct)
Chuck Rock
Conqueror
Diggers
Ego: Repton 3 (natively supports StrongARM)
Fire & Ice
Fish!
Freddy's Folly
Galactic Dan
Games Minipack Five: PON!
Gods
Heimdall
HoverBod
Ibix The Viking
Jahangir Khan World Championship Squash
James Pond
James Pond [BUZZ version]
The Krisalis Collection: Revelation! [BUZZ version]
The Krisalis Collection: Mad Professor Mariarti [BUZZ version]
The Krisalis Collection: Terramex
The Legend of the Lost Temple
Lemmings
Lemmings [Learning Curve Version]
Lotus Turbo Challenge 2
Mad Professor Mariarti
Maddingly Hall
Magic Pockets
Memory Magic
Mr Doo
Nebulus
No Excuses
Orion
Pac-mania
Pac-mania [Learning Curve version]
Paradroid 2000 (sound effects aren't correct on physical)
Pipe Mania
Poizone
Populous
Revelation!
Revelation! [BUZZ version]
Revolver
Rotor
Slappit
Sporting Triangles (needs slowing down)
S.W.I.V.
Tactic
Thundermonk
World Class Leaderboard (needs slowing down)
Xenon 2: Megablast
Zarch
Zool - Ninja of the 'Nth' dimension


Problems:
Arc/A3000 Christmas Box, The: PON! in Winterland - crashing when starting a level
Boogie Buggy - sprites aren't drawn correctly
Cartoon Line part one (UCS) - slows down after you die
Dungeon, The - protection fails during loading
Elite - crashes during loading
Inferno - hangs during loading
Gribbly's Day Out - hangs as you enter a level (works under emulation*)
Mig-29 Fulcrum - hangs when you start training
Missile Control - very hard and doesn't end
Oh, No! More Lemmings - hangs whilst loading
Overload (Paradise) - hangs during loading
Pesky Muskrats - hangs after inserting disc 2
Quest for Gold - doesn't seem to see disc 2
Quest for Gold [Learning Curve version] - crashes when ADFFS tries to proxy a write to the IRQ vector
Rockfall - hangs on loading (works under emulation*)
Sensible Soccer - hangs loading
Wonderland - crashes with a malloc failure after loading

*Running under Red Squirrel emulating a RiscPC with SA




Require APCS-A support:
Corruption
Guild of Thieves, The
Jinxter




Require 26bit module support:
Arc/A3000 Christmas Box, The: Brixx!
Aggressor
Air Supremacy
Aldebaran
Alerion
Alone In the Dark
Apocalypse
Arcendium
ArcPinball
Arcturus
Asylum
Bambuzle
Birds of War
Black Angel
BlastOn
Blood Sport
BloodLust
Bobby Blockhead vs The Dark Planet
Botkiller2
Break 147 & Superpool
Bug Hunter & Moondash
Bug Hunter in Space
Burn 'Out
Carnage Inc.
Cataclysm
Chequered Flag
Chequered Flag [RO3 version]
Chocks Away
Chocks Away Compendium
Chopper Force
Command Ship
Crystal Maze, The
Crystal Rainforest, The
Cyber Ape
Cyborg
Cycloids
Deeva
Demon's Lair
Diggers
Drifter
Drop Ship
Emotions - Search for Humanity
Enter The Realm
E-Type
E-Type Compendium
E-Type II
Exodus
Exotic Adventures of Sylvia Layne, The
F.R.E.D.
Fervour
Fine Racer
Fireball II
Flashback
Flying High
FORAY!
Frak!
Grievous Bodily 'ARM
Groundhog
Guile
Haunted House
Hero Quest
Holed Out!!
Holed Out!! Compendium
Holed Out!! Extra Courses Volume 1
Holed Out!! Extra Courses Volume 2
Hostages
Humanoids and Robotix
Inertia
Interdictor
Interdictor II
James Pond II Robocod
James Pond II+ Robocod
K.V.
Labryinth
Last Ninja, The
Lemmings 2: The Tribes
Lemmings 2: The Tribes [demo version]
Magnetoids
Man at Arms
Master Break
MicroDrive
MicroDrive World Edition
Nevryon
OddBall
Olympics, The
Overload (Clares)
Pandora's Box
PowerBand
Punter's Predictor, The
Pushy
Put It!
Pysanki
Quark
Ravenskull
RedShift
Rekall
Repton 1
Repton 3
Repton 3 Four Game Compilation
Rick Dangerous
Sally and Wally
Saloon Cars
Saloon Cars Deluxe
Saloon Cars Deluxe [SA version]
Scrabble
Serpents
Shuggy
Silver Ball
Sim City
Simon the Sorcerer
Small
Spobbleoid Fantasy
Star Fighter 3000
StarTrader
Stunt Racer 2000
Super Snail
Superior Golf
Talisman
Technodream
Time Machine, The
Top Banana
Virtual Golf
WaveLength
White Magic
White Magic 2
Wimp Game, The
Worra Battle
Xacretan
X-Fire
XOR
Zalaga
Zelanites - The Onslaught




Require WIMP support
ALPS
Asylum
Bambuzle
Black Angel
Chaos Engine, The
Cyber Chess
DarkWood
Chess
Desktop Repton
Desktop Repton Plus
E-Type II
Exodus
Fervour
Flying High
FORAY!
Formula Two Thousand
High Risc Racing
Ixion
James Pond II Robocod
James Pond II+ Robocod
K.V.
Last Ninja, The
Lemmings [RPC version]
OddBall
Pushy
Sally and Wally
Shuggy
Sim City
Stunt Racer 2000 Extra Tracks
Superior Golf
Time Machine, The
Triumvirate I
Virtual Golf
WIMP Chess
Wimp Game, The
Wolfenstein 3D
Wolfenstein 3D [RISC User Cover version]
XOR




Untested:
3D Construction Kit
Abuse
Acheton
Adventure Collection, The
Adventures, classic complication [Philosopher's Quest, Countdown to Doom, Return to Doom..., Kingdom of Hamil, Acheton]
Aggressor 2
Airball
AIWID
AlfaXL5
Alien Attack
Alien Fighter
Alien Invasion
Aliped
All-In Boxing
ALPS Support Disc
Antigrav 2
Arcade Soccer
ArcOmnibus
Arctrivia
Avon
Blitz!
Brutal Horse Power
Chocks Away Extra Missions
COPS
Creator
Dreadnoughts
Dune II - Battle for Arrakis
Flight Sim Toolkit
Global Effect
Hamsters
Hermes
Holed Out!! Compendium
Holed Out!! Designer
Iron Lord
Karma - The Flight Trainer
Last Days of Doom, The
Leeds United
Lemmings & Oh, No! More Lemmings [RPC version]
Maddingly Hall
Mahjong Patience
Minotaur
Mirror Image
Morph
Myth of Moby, The
Omar Sharif's Bridge
Pawn, The
Phaethon
PowerBand
Premier Manager
Quazer
Saloon Cars Deluxe Extra Courses
SimCity 2000 [A5000 version]
SimCity 2000 [RPC version]
Speech!
Spobbleoid Fantasy
Square Route
Starch
SunBurst
T.A.N.K.S.
Trivial Pursuit
Twin World
U.I.M.
WolfPack
Word Up Word Down
World Championship Boxing Manager
WorldScape

JonAbbott
Posts: 1737
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex

Re: Game testing status

Post by JonAbbott » Wed Feb 11, 2015 8:55 pm

I finally have Rockfall working reliably on RO3.71, its taken the best part of a week to track down the random crashing, which was caused by SWI OS_EnterOS randomly corrupting SVC R14 on RO3.71 when called from USER mode. I've also sorted out the sound issues which were due to a combination of not duplicating channels when performing DMA emulation and RISCOS 3.11 forcing a Sound Sample Period when Sound_Configure is called without a Sample Period set.

The hanging on RO5 after loading was due to the blitter not taking account of the screen borders correctly, I've now rewritten the border code and got it working again.

I've now noticed there's a problem with the MEMC sound DMA emulation on the Pi - as if it's silencing complete sound buffers. Its working correctly on IOMD both RO3.71 and RO5 and they all share the same audio codebase, which has me somewhat confused. Somewhere along the way, I seem to have broken IRQ1V on the Pi, once I've tracked that problem down I'll check No Excuses and Rotor which also use MEMC sound DMA.

Finally, I'm not convinced the disk protection is working, I need to get someone with an original to playtest the two and compare level 2, it seems overly difficult to me - it could just be me though :|

JonAbbott
Posts: 1737
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex

Re: Game testing status

Post by JonAbbott » Sat Feb 14, 2015 9:55 am

Thundermonk is now working correctly on RO5 IOMD, it also runs on the Pi although your fire shots don't display for some reason. I can't think of any obvious difference that would cause this behaviour though.

Whilst tracking down the issues with sound on this title, I also resolved the sound problems in 2067BC :)

JonAbbott
Posts: 1737
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex

Re: Game testing status

Post by JonAbbott » Wed Feb 25, 2015 9:21 am

I've fixed Rotor's sound problems*, although the knock on effect is that Thundermonk's sound is now knackered on RO5 IOMD. The problem appears to be with Thundermonk, possibly related to RO5 compatibility issues as it seems to think the sample period is really low. If I force a 1:1 DMA fill, the sound is okay.

Whilst then investigating Thundermonk's sound and missing fire issues, I noticed it does something based on the month of the year - I'm not sure what exactly**. I need to test if this is what's causing the fire to not appear on the Pi - there's no clock to read the date from, so it's possibility getting an invalid date back from RISCOS.

* It sets a really low sample period directly on VIDC. I initially switched the VIDC code to issue a Sound_Configure to set the sample period - which works great except on the Pi where it causes an audible pause. What I've now implemented is an N:1 DMA fill routine, which at the minute simple skips samples although ideally needs to go through proper sample rate conversion.

Sample rate conversion has been discussed here and here on ROOL and I did do some work on this using Splines way back in 1999 which I've looked at resurrecting for newer machines. Essentially it requires log->linear conversion and then passing through a sinc function which is fairly CPU intensive, so will limit it to ARM11 or above.


** The check is performed when you complete a level, so unrelated to the missing fire issue

JonAbbott
Posts: 1737
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex

Re: Game testing status

Post by JonAbbott » Fri Feb 27, 2015 11:05 am

Gribbly's Day Out is now working, having converted ExSound to 32bit. It's really slow though, running at ~6 FPS. My initial thought was that it's calling OS_Byte 19 too many times, but NOPing all of them didn't resolve it. The next possibility is calling OS_Byte 113 more than once, I'll try this next.

Fire & Ice is also now working. The problem here turned out to be a bug in their code. After loading a file via OS_File 5 it loads a value at R4+320 updates it and then stores it back, the problem being that after OS_File 5, R4 is the length of the file just loaded, so it was essentially writing to a random memory address. However...R4 isn't the file length on RO5, it seems to point at a stack location, so I need to check there isn't a bug in RO5's implementation of OS_File 5 as well by recreating what Fire & Ice does and checking the result.

So far as the Pi goes, 2.48 is now ready for release. I was going to release yesterday however after testing on the A440/1 and the two RiscPC's I found most games don't work on either, so I need to track those issues down first.

JonAbbott
Posts: 1737
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex

Re: Game testing status

Post by JonAbbott » Wed Mar 04, 2015 3:59 pm

Gribbly's Day Out is now working correctly on the Pi. The slow speed was due to it relying on the IOC VSync IRQ to swap frames; unfortunately IOC VSync isn't triggered until the frame is blitted, so it was falling back to the hard coded min FPS of 12.5 FPS. To resolve, I've changed OS_Byte 113 to only use 12.5 FPS if ADFForceVSync hasn't been used to specify a frame rate.

Why is IOC VSync not triggered at 50 FPS I hear you ask? Well, to ensure T1 is accurate, palette swapping occurs at the correct raster and scrolling occurs on the backbuffer, T1 and VSync have to reset and trigger as the blitter starts. If a game is relying on IOC VSync to swap frames then it's a catch 22 situation where the game is waiting on the blitter and the blitter is waiting on the game. Simply triggering VSync at 50 FPS will cause scrolling to judder, so using the inbuilt ADFForceVSync command is the easiest solution.

The following are also now working correctly on the Pi:
Arc/A3000 Christmas Box, The: Zap the red wierdos from Mars
Ballarena
Lotus Turbo Challenge 2
Nebulus
Rockfall
Rotor - although the palette swap isn't occurring on the menu, a very minor issue

JonAbbott
Posts: 1737
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex

Re: Game testing status

Post by JonAbbott » Thu Mar 05, 2015 8:33 pm

Fish! is working on the Pi. It does need some further investigation though as the instruction count the JIT sees is going up at 20k instructions/sec, they're not being re-encoded so its not down to self-modifying code. It could be FPU instructions, in which case I need to improve the detection and pass them on earlier without forcing a cache flush.

EDIT: Its an SWI OS_Byte instruction that's being self-modified, this SWI doesn't count as being a re-encoded instruction as its copied, hence why I didn't pick up on it until debugging the code.

Why you'd want to self-modify an SWI instead of having a jump block I don't know, its a very poor bit of coding by the original developer. I'll have to test performance on a StrongARM to see if it needs modifying to speed it up. I don't suspect it's doing any VSync waits, which may explain why its being re-encoded 20k/sec.

JonAbbott
Posts: 1737
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex

Re: Game testing status

Post by JonAbbott » Fri Jul 03, 2015 8:05 pm

Whilst trying to create a YouTube video of Quest for Gold, I noticed it crashes in the Javelin event. At a guess is FPU related but needs investigating to determine the exact cause.

JonAbbott
Posts: 1737
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex

Re: Game testing status

Post by JonAbbott » Sat Jul 04, 2015 8:21 am

JonAbbott wrote:Whilst trying to create a YouTube video of Quest for Gold, I noticed it crashes in the Javelin event. At a guess is FPU related but needs investigating to determine the exact cause.
It was a bug in the LDF / STF codelet, which was restoring R0 from the wrong location.

Vanfanel
Posts: 373
Joined: Mon Sep 16, 2013 12:01 am

Re: Game testing status

Post by Vanfanel » Sat Jul 04, 2015 4:07 pm

I admit I hand't noticed this problem with Quest for Gold. I don't like sports games so I didn't test this one in-depth... must do better next time.

Post Reply