Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
08576 Graphics Minor Always Mar 2, 2023, 21:57 Mar 3, 2023, 13:58
Tester ICEknight View Status Public Platform MAME (Official Binary)
Assigned To Resolution Open OS Windows 10/11 (64-bit)
Status [?] Confirmed Driver
Version 0.252 Fixed in Version Build 64-bit
Fixed in Git Commit Github Pull Request #
Summary 08576: gameboy and clones, gbcolor and clones: Screen tearing even with waitvsync active
Description There seems to be some unavoidable screen tearing going on with both the Game Boy and Game Boy Color emulation (including "Super Game Boy").
Steps To Reproduce -Load the Game Boy driver.
-Load sml2.
-Wait for the demo to play or just start a new game. Notice the wobbly tearing going on.
Additional Information Different games and different drivers seem to give slightly different results, such as the tearing line being static or not, and a different height for it.
Github Commit
Regression Version
Affected Sets / Systems gameboy and clones, gbcolor and clones
Attached Files
png file icon sml2.png (4,072 bytes) Mar 2, 2023, 21:57 Uploaded by ICEknight
gbcolor sml2
png file icon sml.png (2,574 bytes) Mar 2, 2023, 21:57 Uploaded by ICEknight
gameboy sml
There are no relationship linked to this issue.
User avatar
Senior Tester
Mar 3, 2023, 09:18
Confirmed. On gameboy it's more obvious, because there's an odd ripple effect scrolling downwards, and the displacements occur where this effect rolls over. This is regardless of -waitvsync being used or not.
User avatar
Senior Tester
Mar 3, 2023, 10:50
edited on: Mar 3, 2023, 10:50
is this confirmed to not happen on hardware? remember, original games can have tearing too
User avatar
Mar 3, 2023, 13:58
It’s because the Game Boy VDP classes run completely independently of the screen device. The VDP’s vertical timings are detached from the screen device’s vertical timings. I don’t get a ripple effect scrolling down in games like Super Mario Land – the tear sits at the same place for an entire session. There are far bigger issues with the CGB VDP anyway, and the code is pretty old. It could probably do with a rewrite.