MiSTer-devel / GBA_MiSTer

GBA for MiSTer
GNU General Public License v2.0
143 stars 44 forks source link

Scroll glitches in Metroid Fusion and Zero Mission #99

Closed sergiou87 closed 3 years ago

sergiou87 commented 3 years ago

Every few seconds, in areas where there is vertical scroll, the game shows a weird glitch that feels like if different layers (if that makes sense) are out of sync. It's a bit hard to describe, so I hope this video helps:

https://user-images.githubusercontent.com/1083228/127743113-edc6ccca-2864-47f6-b97c-e2fe57a73290.mp4

You can see the glitch at 0:19-0:20, right when I jump on the last platform before I fall.

I've reproduced this in both the Europe and USA versions, and happens during the whole game.

I recommend testing it out with Zero Mission since it has no intro and you start playing faster. You need to get the morphosphere and then go to the right until you reach the area in the video.

I'm using the original BIOS (sha256: fd2547724b505f487e6dcb29ec2ecff3af35a841a77ab2e85fd87350abd36570) and the latest version of the core (20210718), but it also happened with the previous one.

Save state for the USA game, in the area of the video: Metroid - Zero Mission (USA)_1.zip

FWIW this is my MiSTer.ini file:

[MiSTer]
vsync_adjust=1
vscale_mode=0
video_info=2
recents=1
sergiou87 commented 3 years ago

Just tried with vsync_adjust=0 and worked fine 😕

I guess the problem was my screen doesn't support 59.7Hz and every once in a while it needs to "resync"? Does that make sense?

Could this still be an issue with the core?

SegaSnatcher commented 3 years ago

Curious, do you have the sync core to video turned on in GBA settings?

RobertPeip commented 3 years ago

Was it 100% reproducible without vsync_adjust=0 and now is completly gone?

The effect itself seems like it's the layers, as the HUD is still in place, so it's no simple tearing effect. However, i'm not sure what modern screen do. It seems quiet strange, as the game is somewhat popular and the effect would probably been seen before, but who knows.

If you want this to be more reproducible by others, please create a savestate next to this spot and upload here.

But if it's gone with vsync_adjust=0 it sounds much more like a display effect, as the core itself doesn't even know of this mode, it's video/scaler output only.

sergiou87 commented 3 years ago

Curious, do you have the sync core to video turned on in GBA settings?

@SegaSnatcher Yup! And I just tried to turn it off and still can reproduce the issue.

@RobertPeip thanks for your reply! ❤️

Was it 100% reproducible without vsync_adjust=0 and now is completly gone?

It seems like that. Since it's kind of random, I'm not 100% sure it won't happen again with vsync_adjust=0. But I spent minutes jumping in that area from the video and couldn't reproduce it, whereas with vsync_adjust=1 it's a matter of seconds.

The effect itself seems like it's the layers, as the HUD is still in place, so it's no simple tearing effect.

Even more… it only seems to affect the scroll and objects (and not the HUD), but it's like if the colors within that layer were out of sync 🤯

As you say, I was surprised nobody noticed it given how popular these games are… unless people who played it didn't change the default vsync_adjust=0 value.

I just uploaded the save state to the original message as you suggested. FWIW this happened on my TV, a Samsung 60KU6000: https://www.displayspecifications.com/en/model/051c47a

RobertPeip commented 3 years ago

You uploaded a savegame, not a savestate. I attached a savestate now.

Cannot reproduce it here. Would be good if someone else could confirm.

Metroid - Zero Mission (USA)_1.zip

sergiou87 commented 3 years ago

🤦  😭  sorry, and thanks for that savestate. I just updated my original post with your file, thank you!

sergiou87 commented 3 years ago

I was able to test this on another display and I cannot reproduce the issue there with vsync_adjust=1. Maybe I need a new TV...

Thanks for your work and sorry about this distraction!

RobertPeip commented 3 years ago

Thanks a lot for reporting back!