ADFFS 2.57 beta

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

Re: ADFFS 2.57 beta

Post by JonAbbott » Tue Jun 21, 2016 10:11 pm

Vanfanel wrote:@Jon: games previously failing are working now, testing randomly. Elite works great on the Pi!
Good news, I'm going to start testing tomorrow. I need to do some YouTube videos, so will probably do that whilst testing the newly working games.
Vanfanel wrote:Cannon Fodder is now slow-motion ALWAYS and shows tearing on the lower part of the screen.
You can see it very easily if you try it in a 50HZ mode.
(Other games have normal speed)
It's the 50hz detection that's failing then, it will be related to the changes as the VSync's are now counted at a different stage in the mode change process. You'll possibly find other games, such as Pacmania show tearing occasionally.

I'll see if I can push the count back further in the mode change, which may fix it. Failing that add a command line option to force 50hz.

At some point I'll resume coding the PLL based blitter, which I rolled back due to timing issues which would require virtualising TickerV and CallEvery transient callbacks.

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

Re: ADFFS 2.57 beta

Post by Vanfanel » Wed Jun 22, 2016 12:09 pm

@Jon: In my opinion, a commandline option to tell the games "don't try to detect, run at 50HZ!" would be a great addition, even if you move the (optional) detection further into the mode change.
That way, every frame will be perfect from the begining in a 50HZ mode.

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

Re: ADFFS 2.57 beta

Post by JonAbbott » Wed Jun 22, 2016 12:56 pm

Vanfanel wrote:@Jon: In my opinion, a commandline option to tell the games "don't try to detect, run at 50HZ!" would be a great addition, even if you move the (optional) detection further into the mode change.
That way, every frame will be perfect from the begining in a 50HZ mode.
I'll add an environment variable check.
JonAbbott wrote:
Vanfanel wrote:-Wonderland can be installed via it's installer as you indicated, but then it does the same as with manual installation. It takes me back to the desktop after the (awesome) mad hater picture.
Whilst testing, I noticed it did this if the disc wasn't named. ie ADFS::0.$ would cause the problem, ADFS::ONE.$ wouldn't.

I think this was triggering a Page Zero read in RISCOS, which I've yet to look into. Try running it under the debug Module via F12 and see if you get a debug screen.
I've had a look at this today, it appears the game is hardcoded to check for ADFS::4 or SCSIFS::4 and exits, failing to load any files, if the filepath doesn't match one of these.

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

Re: ADFFS 2.57 beta

Post by JonAbbott » Wed Jun 22, 2016 1:57 pm

JonAbbott wrote:I'll add an environment variable check.
Done. Add "Set ADFFS$50Hz 1" to !ADFFS.!Boot

However...looking at the VSync code, I think this might not have the result we want. The VSync counter will currently count VSyncs until it sees 50 - it will the stop counting and fall back to blitting at every VSync - the catch however is that it may not blit every VSync as the blit check is done off MonotonicTime.

Before trying the new Modules, run Cannon Fodder and see if it reports the monitor is 50Hz - if it does, then ADFFS is detecting 50Hz correctly and it's the VSync blit code that I need to modify.

Once you've done that, try the new modules with the Environment variable set, to confirm my suspicion. Note that when fixed, the debug module wont report either the game's FPS or the monitor Hz.

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

Re: ADFFS 2.57 beta

Post by Vanfanel » Wed Jun 22, 2016 2:07 pm

@jon: I didn't update the debug module before this change, so can you please upload the debug module you want me to use for the HZ test? You can name it adffs500db_old or something like that.

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

Re: ADFFS 2.57 beta

Post by JonAbbott » Wed Jun 22, 2016 2:59 pm

Vanfanel wrote:@jon: I didn't update the debug module before this change, so can you please upload the debug module you want me to use for the HZ test? You can name it adffs500db_old or something like that.
Just run the current one without the Environment variable.

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

Re: ADFFS 2.57 beta

Post by JonAbbott » Wed Jun 22, 2016 5:30 pm

Vanfanel wrote:-Overload is still staying on the screen rate warning forever. It's not hanging: music plays, loader colour bars move... but that's all. No key on the keyboard seems to convince it to continue.
This appears to be a bug in its VSync detection code, setting the 50hz environment variable appears to work around the issue although you now can't get past level 1 :roll:

Burn 'Out appears to be broken as well.

EDIT: It's the intro that's failing in Burn 'Out, it started failing on 2.57n (yesterday's build). It doesn't look like Overload (Paradise) has ever got past level 1, although I'm sure I played a few levels at some point.

EDIT2: Burn 'Out fixed on the latest build. Service_PreModeChange wasn't remapping the legacy video memory space.

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

Re: ADFFS 2.57 beta

Post by JonAbbott » Wed Jun 22, 2016 11:20 pm

JonAbbott wrote:
Vanfanel wrote:-Overload is still staying on the screen rate warning forever. It's not hanging: music plays, loader colour bars move... but that's all. No key on the keyboard seems to convince it to continue.
This appears to be a bug in its VSync detection code, setting the 50hz environment variable appears to work around the issue
This was being caused by an incorrect FPS setting in the floppy image, download the JFD again to resolve. I'm looking into why it appears to hang starting level 2.

On starting level 2, it goes though the same code as level 1 so it's either become elevated or its the same issue as above. I've tested it on StrongARM under the JIT and it works okay, so it's not JIT related.

EDIT:
The Burn 'Out cursor issues are two fold, it thinks there's an RTFM Joystick available and DSymphonyPlayer is leaving IRQ disabled for long periods. I'll need to look at the code to fix it.

I suspect Overload's issues are also DSymphonyPlayer related.

Cannon Fodder's half speed issue isn't related to the blitter. I've tried turning off all the frame rate detection, frame pacing and forcing the blit at VSync and the game is still half speed. The problem start at 2.55f and was fixed in 2.57h, it then started again at 2.57n - I suspect its related to calculating the flyback period in T1 ticks.

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

Re: ADFFS 2.57 beta

Post by JonAbbott » Thu Jun 23, 2016 1:17 pm

JonAbbott wrote:Cannon Fodder's half speed issue isn't related to the blitter. I've tried turning off all the frame rate detection, frame pacing and forcing the blit at VSync and the game is still half speed. The problem start at 2.55f and was fixed in 2.57h, it then started again at 2.57n - I suspect its related to calculating the flyback period in T1 ticks.
Now fixed it today's build. ADFRemapVideoMemory was checking if the MODE requested was valid, which it wouldn't be for MODE 9 that Canon Fodder wants as the blitter now doesn't start until during the Mode change process. This caused Cannon Fodder to switch to a VGA compliant mode, where it presumes the refresh rate is quicker.

The other thing I've changed in this build, is to ignore the game and blit at VSync when ADFFS$50Hz is set. This may result on some tearing if the game runs at a lower refresh rate.

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

Re: ADFFS 2.57 beta

Post by Vanfanel » Thu Jun 23, 2016 2:04 pm

@Jon: with this version, Cannon Fodder hangs on the "Cannon Fodder is loading" text screen. Cursor blinks 3-4 times, then it hangs.

Lemmings also goes blank after the Krisalis logo.

Post Reply