Page 9 of 16

Re: ADFFS 2.54

Posted: Tue Apr 12, 2016
by Vanfanel
@Jon: Drifter now works again, and I fixed my Diggers HD install.

Re: ADFFS 2.54

Posted: Tue Apr 12, 2016
by JonAbbott
JonAbbott wrote:loading ADF's cause the machine to lock.
Fixed in today's build.

Re: ADFFS 2.54

Posted: Wed Apr 13, 2016
by JonAbbott
The bug fix I implemented to MiscOp 1 (it was corrupting one of the return registers), which gets the OS disc change detection working, seems to crash FileCore on RO5 for some games. Apocalypse, GBA and E-Type are some I've noticed, possibly all games that wait for a disc change are affected.

Re: ADFFS 2.54

Posted: Thu Apr 14, 2016
by JonAbbott
JonAbbott wrote:The bug fix I implemented to MiscOp 1 (it was corrupting one of the return registers), which gets the OS disc change detection working, seems to crash FileCore on RO5 for some games.
Today's build may have fixed this problem.

Whilst testing Apocalypse on HD vs Floppy, I noticed the crash was only occurring when loading Modules from floppy when booting from the desktop. Having waded through the 26bit Module code, line by line, I spotted a few potential issues that may have caused Modules to load into an unaligned address. I'm not 100% convinced that is the root cause though, as there's no link between 26bit Modules and MiscOp 1.

I've also update the ADFS Module, as it had two bugs in it relating to creating the initial ADFS file system and the value it return when there's no floppy in the drive.

EDIT: The Module changes appear to have broken Inferno
EDIT2: Modules with * commands aren't working correctly

Re: ADFFS 2.54

Posted: Thu Apr 14, 2016
by JonAbbott
Whilst testing Apocalypse on HD vs Floppy, I noticed the crash was only occurring when loading Modules from floppy when booting from the desktop.
Fixed in the build I've just put up, it turned out to be invalid Module headers in the original Modules. The sound Modules in Apocalypse, GBA, E-Type and probably many more games were created using a Sound->Module tool, unfortunately it had a bug where it sets the Command Table pointer entry when there are no * commands.

Re: ADFFS 2.54

Posted: Thu Apr 14, 2016
by Vanfanel
@Jon: fixed on the Pi, too!

Re: ADFFS 2.54

Posted: Fri Apr 15, 2016
by JonAbbott
Are there any more bugs left to fix on the Pi? The only issues I'm currently aware of, are with the JIT on StrongARM and ARMv7 and the scrolling on JP2 and GBA.

Re: ADFFS 2.54

Posted: Sat Apr 16, 2016
by Vanfanel
@Jon: Appart from these scrolling problems and the cursor in Lemmings appearing on the left side of the screen when you take it to the rightmost position, I would say there are no more bugs in the "compatible" games.
Oh! And music on Wolfenstein3D. The option seems to be greyed out for some reason.

Re: ADFFS 2.54

Posted: Sat Apr 16, 2016
by JonAbbott
Vanfanel wrote:the cursor in Lemmings appearing on the left side of the screen when you take it to the rightmost position
That's normal behaviour, I was seeing the same issue when I tested it on my A440.
Vanfanel wrote:Oh! And music on Wolfenstein3D. The option seems to be greyed out for some reason.
I'll put that on the "known issues" list as I spent a few days trying to figure out why that was happening, and didn't get anywhere.

I looked at the scrolling issue last night and also discovered the screen width in JP2+ is four pixels out, compared to JP2. The only difference between the two, is that JP2+ is using VIDC2. The width calculation however is simply HDER-HDSR, so I couldn't figure out how it was ending up wrong.

What I did discover with regard to the jerking, was JP2/JP2+/GBA set incorrect values for HBSR/HBER for the values they subsequently write to HDSR/HDER, resulting in a border being added at one of the extremes of scrolling. You can see the issue in GBA as you scroll, the right of the screen moves as the border appears. In JP2/JP2+ I suspect it happens so briefly you don't notice it on physical as its corrected before the monitor does its rescan, note that under ADFFS you can't get it to stop on the frame that shifts left - the game corrects it on the next frame refresh.

GBA also has a faulty MODE extension module, which is why it doesn't run correctly under any emulator - it works on physical because of the way monitors rescale. Any emulator that relies on HCR being correct will result in an incorrect scaling.

I'll spend one more day on JP2+ and will then put it on the "known issues" list. I'll start preparing the games for release end of next week and release everything as soon as they're ready.

Re: ADFFS 2.54

Posted: Sat Apr 16, 2016
by JonAbbott
JonAbbott wrote:I looked at the scrolling issue last night and also discovered the screen width in JP2+ is four pixels out, compared to JP2. The only difference between the two, is that JP2+ is using VIDC2.
I've just spotted a bug where VIDC1 writes to VIDC20 memory space weren't being treated as VIDC1 when RO3.11 is being emulated. Now fixed, this has got JP2+ running under both IOC and IOMD emulation. Under IOC emulation the screen width is correct - it's only incorrect under IOMD.

Looking at the JP2+ code, it starts with VIDC1 values and if it detects IOMD during loading, it converts the values to VIDC20. It does this correctly, however it then corrects the value again when it writes to VIDC20, which results in a screen width that's 4 pixels too small. I've now corrected the code in the boot script, so the width is correct when emulating RO3.71