26bit Module support

Discuss development specific to the Pi version of ADFFS
Post Reply
JonAbbott
Posts: 2954
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: 26bit Module support

Post by JonAbbott »

Updated Modules and obey.zip on dev site. Serpents works and I've fixed a bug that was causing Pesky Muskrats and possibly a few others to fail.

The mouse pointer in Manchester United Europe is now set, however the palette is incorrect. I suspect the issue is related to what was breaking the OS_Word 21 call in the first place. I've not actually found the code that sets the palette, so need to do some further debugging.

EDIT: Sensible Soccer also has palette issues, so possibly a register being corrupt somewhere.
JonAbbott
Posts: 2954
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: 26bit Module support

Post by JonAbbott »

JonAbbott wrote:The mouse pointer in Manchester United Europe is now set, however the palette is incorrect.

EDIT: Sensible Soccer also has palette issues, so possibly a register being corrupt somewhere.
These appear to be two separate issues, with Sensible Soccer it changes three palette entries via VDU 19,16,X,R,G,B. Shortly after receiving these, the GraphicsV driver receives a global palette change that is resetting the palette. This could possibly be a bug in RISCOS on the Pi, I'll have to get ADFFS running again on the Iyonix to compare.

Manchester United Europe - it looks like the code may be changing the cursor palette via writes to VIDC registers 44, 48 and 4C. I'll code support for this to see if it does resolve it.
JonAbbott
Posts: 2954
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: 26bit Module support

Post by JonAbbott »

JonAbbott wrote:Manchester United Europe - it looks like the code may be changing the cursor palette via writes to VIDC registers 44, 48 and 4C. I'll code support for this to see if it does resolve it.
This has indeed resolved the cursor palette. Updated Modules on the dev site.

Having coded it, I feel I should probably implement VIDC hardware cursor emulation next :cry:. I've put it off long enough.
JonAbbott
Posts: 2954
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: 26bit Module support

Post by JonAbbott »

Updated Modules and obey.zip on the dev site, I've not done much coding in the past week as I had to go back to work last week after six months off. Caverns is the only additional game working off the top of my head.

Inferno also seems to have magically fixed itself - worrying I have no idea why it now works. See if it works for you as well.

I need to start wrapping this up for the London Show, so now might be a good time to see which games are broken from 2.50 and previously working on 2.51 from the 2nd post in this thread. I'm aware that Rotor and No Excuses both fail, it may be related to a MEMC DMA change I made to correct the audio in Diggers. I've yet to rollback to see at which point they broke.

I believe Diggers requires one last change to work - namely translating VIDC List Type 0/1 modes into VIDC List Type 3. The VIDC 0/1 translator was coded way back in 2013 and at the time I opted to translate direct to VIDC20 and neglected to also translate to Type 3 and pass back to RISCOS - I'm not sure why, I think it was a quick botch to get some games working at the time.
Vanfanel
Posts: 576
Joined: Mon Sep 16, 2013 12:01 am

Re: 26bit Module support

Post by Vanfanel »

Games working in 2.50 and not working now:
-Cannon Fodder: breaks on disk swap.
-BlowPipe: breaks after inserting second disk.
-ChuckRock: hangs after installing second disk and pressing fire.
-Xenon2: hangs after installing second disk.
-Gribbly's Day Out: hangs after tittle screen.
-Lotus Turbo Challenge: Internal Error, abort on data transfer at &0121956C
-James Pond: black screen.
-Zarch: corrupt screen and hangs there
-Heimdall: hangs on disk 4 insertion
-Nebulus: hangs on black screen
-Magic Pockets: hangs after some seconds of playing
-Populous: abort on instruction fetch at &24D4F804
-Poizone: abort on data transfer at &2027525C

Wow, it seems most games are broken now...
JonAbbott
Posts: 2954
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: 26bit Module support

Post by JonAbbott »

Thanks for doing that, I'll start looking into these. I'm not overly worried by the amount of broken games, it's expected when making the number of code changes since 2.50.

A lot of those issues may be caused by sound or general IRQ emulation. Zarch is the odd one out as it doesn't do anything IRQ related, screen corruption could be down to register corruption.

I'll start by checking them on RO3.71, which will indicate if it's a general issue or a virtual hardware emulation issue.

When you get a blank screen, hit delete a load of times and type "ADFShowRegisters", it may have crashed but not displayed the dump screen. To avoid RISCOS hanging when it crashes, mount the floppy, hit F12 and type *GOS followed by *ADFBootFloppy to

You'll find a lot that appear to hang on a blank screen are actually trying to report an error. I've been trying to figure out why it ends up on a blank screen, but haven't pinned the cause down yet.
JonAbbott
Posts: 2954
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: 26bit Module support

Post by JonAbbott »

Try the latest Modules, see if it fixes any. I just spotted a major bug in the VSync code caused by a typo :oops: ... and a bug in the Vector hypervisor that was causing a crash if Vector's were claimed.

EDIT: Cataclysm works with this build. Rockfall seems to only work if run via the *GOS method, although the audio is broken by the change I made for Diggers - I have some ideas on how to fix it.
Vanfanel
Posts: 576
Joined: Mon Sep 16, 2013 12:01 am

Re: 26bit Module support

Post by Vanfanel »

Ok, re-trying the games on the non-working list with today's module:
-Cannon Fodder: now it's working!! but the cursor is now visible (and paralized) during the intermission and briefing scenes. That shouldn't happen.
-BlowPipe: still hangs at the "please insert disk two" screen after second disk is inserted.
-ChuckRock: still hangs after installing second disk and pressing fire.
-Xenon2: still hangs after installing second disk (at the same starfield scene as before).
-Gribbly's Day Out: now it's working!!
-Lotus Turbo Challenge: now hangs at the Krisalis Software logo. Earlier than before :(
-James Pond: black screen. Tried the delete and adfshowregisters trick but I can't see anything.
-Zarch: Works now but there's a corrupt thick band on the tittle screen with the ship rotating. It seems to be visible only in one of the buffers, because it's shown in a frame and gone in the next.
-Heimdall: works now!
-Nebulus: still hangs on black screen, no information available.
-Magic Pockets: works now!
-Populous: abort on instruction fetch at &24D4F804
-Poizone: works now!
JonAbbott
Posts: 2954
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: 26bit Module support

Post by JonAbbott »

I'm getting different results to you, I'm seeing the same issue in Cannon Fodder and Populous but all of the other games are working.

The VIDC hardware cursor emulation code isn't finished, so those issues should get resolved. Diggers is doing some odd things as well, it seems to be setting the wrong cursor when switching to the default. I also spotted that the Hourglass colours were incorrect in a few of the games above, I'm not sure why that would be as RISCOS should be passing the cursor palette through when it changes the cursor. It seems to only affect RISCOS default cursors, all the game defined cursors appear to be correct so far.
Vanfanel
Posts: 576
Joined: Mon Sep 16, 2013 12:01 am

Re: 26bit Module support

Post by Vanfanel »

Different results?? That's very strange, Jon.. I've updated to the latest obey and ADFFS500 module.. what differences could be? These floppy images are ok, they work well with old ADFFS 2.50
Post Reply