SNES Emulation - Where to look for inaccuracies?
Forum rules
- For making cartridges of your Super NES games, see Reproduction.
-
Myself086
- Posts: 179
- Joined: Sat Nov 10, 2018 2:49 pm
Re: SNES Emulation - Where to look for inaccuracies?
Fixed broken division
You do not have the required permissions to view the files attached to this post.
-
Alyosha_TAS
- Posts: 225
- Joined: Wed Jun 15, 2016 11:49 am
Re: SNES Emulation - Where to look for inaccuracies?
Here are results where the last half of the frames match exactly to console:
Start is off by some cycles:
This is where it looks like it snaps back to exactly matching, not sure where this matches up to in the game:
The last frame is where it doesn't match again:
Hope this is helpful!
Start is off by some cycles:
This is where it looks like it snaps back to exactly matching, not sure where this matches up to in the game:
The last frame is where it doesn't match again:
Hope this is helpful!
You do not have the required permissions to view the files attached to this post.
-
Myself086
- Posts: 179
- Joined: Sat Nov 10, 2018 2:49 pm
Re: SNES Emulation - Where to look for inaccuracies?
Large audio transfers where both CPUs have to wait for each other happen on frames 0 and 323.
The sync at frame 172 is 1 frame before the lights turn on and also the exact frame where the sound effect for turning the lights on is sent.
On every frame before SMB2J starts, the S-CPU has information queued up to be sent to the SPC700. The S-CPU verifies that the SPC700 is ready to receive said information which may explain the sync when the lights turn on. They aren't large transfers that require both processors to be synchronized during the entire transfer, just 4 bytes in total.
Is frame 0 consistent on each power on?
The sync at frame 172 is 1 frame before the lights turn on and also the exact frame where the sound effect for turning the lights on is sent.
On every frame before SMB2J starts, the S-CPU has information queued up to be sent to the SPC700. The S-CPU verifies that the SPC700 is ready to receive said information which may explain the sync when the lights turn on. They aren't large transfers that require both processors to be synchronized during the entire transfer, just 4 bytes in total.
Is frame 0 consistent on each power on?
-
Alyosha_TAS
- Posts: 225
- Joined: Wed Jun 15, 2016 11:49 am
Re: SNES Emulation - Where to look for inaccuracies?
Frame 0 is not consistent. It is most commonly higher than what is shown in the above picture, typically V=246 and H between 28 and 95 with some higher and lower outliers.
I tried it also on my second SNES and got the opposite, frame 0 is typically lower than emulator with V=214 and H around 300.
So maybe this is all just variability of audio cpu power up timing? But how could it be over a scanline in variability?
I tried it also on my second SNES and got the opposite, frame 0 is typically lower than emulator with V=214 and H around 300.
So maybe this is all just variability of audio cpu power up timing? But how could it be over a scanline in variability?
-
Alyosha_TAS
- Posts: 225
- Joined: Wed Jun 15, 2016 11:49 am
Re: SNES Emulation - Where to look for inaccuracies?
Based on the testing results here, I figured I needed the option to set the initial h and v counters at power on as an emulation setting, and after asking for some help Morilli kindly provided me a BizHawk build to do just that.
Using the hardware results that I got from the tests here, I tried to match emulator to what I saw on console. With v = 0 and h = 806, I FINALLY get the desync on emulator that I see on console. I haven't finished resyncing the movie yet, but I can finally make progress again now.
Thanks again to myself086 for the tests, I wouldn't have had any idea how to proceed without them!
Using the hardware results that I got from the tests here, I tried to match emulator to what I saw on console. With v = 0 and h = 806, I FINALLY get the desync on emulator that I see on console. I haven't finished resyncing the movie yet, but I can finally make progress again now.
Thanks again to myself086 for the tests, I wouldn't have had any idea how to proceed without them!