Page 1 of 1

Shock megademo not working in 48K mode [Solved]

Posted: Thu Nov 18, 2021 10:37 pm
by pgimeno
I have tried to run the Shock megademo in 48K mode, but for some reason it shows wrong graphics. My guess is that it is detecting the 48K as if it was a 128K, because switching to 128K mode while the demo is running fixes it.

Of course a 48K should not be detected as a 128K. Any idea what may be happening?

For reference, here's a snapshot of how it should look (taken with Fuse).

Edit: tl;dr: Solved by loading the demo with Fast Tape Load set to Off.

Re: Shock megademo not working in 48K mode

Posted: Thu Nov 18, 2021 11:13 pm
by cursedverses
From what I remember (from an old Your Sinclair) was that the Shock Megademo was 128K only.

You may want to try a different version of the ULA in the MiSTer settings though, I believe it was the Issue 3 ULA you need (but can't remember what that maps to in the menu)

Re: Shock megademo not working in 48K mode

Posted: Thu Nov 18, 2021 11:19 pm
by cursedverses
I stand corrected - it should work on 48, 128 and +3: https://youtu.be/w0rFw88ex4c?t=254

Re: Shock megademo not working in 48K mode

Posted: Fri Nov 19, 2021 12:18 am
by lister_of_smeg
pgimeno wrote: Thu Nov 18, 2021 10:37 pm I have tried to run the Shock megademo in 48K mode, but for some reason it shows wrong graphics. My guess is that it is detecting the 48K as if it was a 128K, because switching to 128K mode while the demo is running fixes it.

Of course a 48K should not be detected as a 128K. Any idea what may be happening?

For reference, here's a snapshot of how it should look (taken with Fuse).
Looks fine on my MiSTer. Are you sure you aren't running the 48K model with ULA-128 or Pentagon timings?

Re: Shock megademo not working in 48K mode

Posted: Fri Nov 19, 2021 5:12 am
by CartoonDonkey
Works perfect in the Next core for me in 48k mode at least with AY sound turned on. Also worked in the regular Spectrum core with ULA-128 timing.

Re: Shock megademo not working in 48K mode

Posted: Fri Nov 19, 2021 2:25 pm
by pgimeno
Thanks for the answers. It works perfectly in Fuse in 48K mode (without sound, of course, because all sound is AY, unless you select a Melodik interface in the peripheral preferences), so I was sure it supports 48K. This is not about the Next core, but about the ZX-Spectrum core. And yes, as I said in the OP it works when switching to ULA-128 timing, but that's not the point; the point is about accuracy in 48K mode.

I made more tests and may have found a possible culprit. I've found that the demo works as expected when loading it with Fast Tape Load disabled. So, one hypothesis is that when loading with Fast Tape Load set to On, the Spectrum is kept at maximum speed for long enough as to reach the speed detection routine in the demo, and that somehow makes it pass the threshold that separates 48K timings from 128K timings.

Re: Shock megademo not working in 48K mode

Posted: Fri Nov 19, 2021 3:12 pm
by pgimeno
lister_of_smeg wrote: Fri Nov 19, 2021 12:18 am Looks fine on my MiSTer. Are you sure you aren't running the 48K model with ULA-128 or Pentagon timings?
I'm curious. Did you set Fast Tape Load to Off when loading it? Because that's what fixed it for me.

Re: Shock megademo not working in 48K mode

Posted: Sat Nov 20, 2021 12:11 am
by lister_of_smeg
pgimeno wrote: Fri Nov 19, 2021 3:12 pm
lister_of_smeg wrote: Fri Nov 19, 2021 12:18 am Looks fine on my MiSTer. Are you sure you aren't running the 48K model with ULA-128 or Pentagon timings?
I'm curious. Did you set Fast Tape Load to Off when loading it? Because that's what fixed it for me.
Nope, I loaded it using ESXDOS/DivMMC.

But I was able to replicate the issue using a TAP instead. Then I tried switching the video timings to ULA-128 on the fly as you did and this fixed it.

So it seems that the Fast Tape Load function is affecting the demo's model detection, pretty much as you originally assumed.