Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
06853 Graphics Minor Always Jan 22, 2018, 23:03 Jan 15, 2022, 00:39
Tester ICEknight View Status Public Platform MAME (Official Binary)
Assigned To Resolution Open OS Windows 10 (64-bit)
Status [?] Acknowledged Driver
Version 0.193 Fixed in Version Build 64-bit
Fixed in Git Commit Github Pull Request #
Summary MESS-specific 06853: gnw_dm53, gnw_jr55, gnw_mw56: Dual screen Game & Watch graphics distorted in OpenGL when prescaled
Description The vector graphics loaded from SVG files look distorted in OpenGL mode when "prescale" is set to 2 or 3.

The attached examples show how "Mickey & Donald" looks when the prescale setting is set to 0 and 3, respectively. The distortion is specially noticeable in thin lines.
Steps To Reproduce Set video to "opengl", set prescale to "2" or "3", start any dual screen Game & Watch.
Additional Information Looks fine in d3d mode.
Github Commit
Flags
Regression Version
Affected Sets / Systems gnw_dm53, gnw_jr55, gnw_mw56
Attached Files
png file icon opengl prescale 3.png (672,190 bytes) Jan 22, 2018, 23:03 Uploaded by ICEknight
Left: prescale=0 | Right: prescale=3
ICEknight
Relationships
There are no relationship linked to this issue.
Notes
4
User avatar
No.14679
hap
Developer
Jan 22, 2018, 23:49
It doesn't look like a bug to me, but I'm a little surprised that (after some testing) it indeed only happens on the dual-screen games.

I don't think using -prescale on these SVG 'screens' is a good idea. What MAME's doing here, is it's upscaling(without filtering) an already high resolution anti-aliased image, then downscaling it again to your screen size using opengl's whatever filtering algorithm. It's not going to come out the same.
User avatar
No.14684
ICEknight
Tester
Jan 26, 2018, 17:40
Since the LCD graphics are already huge, perhaps the SVG contents could be pre-downscaled (when loaded) as many times as the entered prescale value, so that they'll end up looking just like they do when prescale=0? At least until/if a cleaner solution is found.

Prescaling is a must for getting perfectly edged and smooth scrolling pixels that don't change sizes in certain emulated resolutions (the Streets of Rage intro comes to mind) and this distortion is quite noticeable when switching to one of these games, so I would say it may qualify as a bug.
User avatar
No.19686
galibert
Developer
Jan 14, 2022, 10:02
Not only prescaling is stupid (it should be handled by a shader by just working on the fractional part of the u/v) but prescaling an anti-aliased svg is stupider.
User avatar
No.19688
ICEknight
Tester
Jan 15, 2022, 00:39
edited on: Jan 15, 2022, 00:40
It was left on for pixel-based games since the prescale option can't be accessed from the UI, I obviously wasn't deliberately prescaling already perfectly sharp SVGs when I found out.