Viewing Issue Advanced Details Jump to Notes ]
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
04396 Interface Minor Always 2011-06-29 18:15 2011-08-19 17:22
Tester denzilla View Status Public Platform MAMEUI
Assigned To hap Resolution Fixed OS Windows Vista/7 (64-bit)
Status [?] Resolved   Driver
Version 0.143 Fixed in Version 0.143u4 Build Normal
Summary 04396: all games and drivers: Refreshspeed activating when not needed
Description If refreshspeed is enabled globally via default game options, it limits every game/driver to 99%
Steps To Reproduce Enable refreshspeed globally, start any game and they will all be running 99%.
Additional Information
Flags
Regression Version 0.139u3
Affected Sets / Systems all games and drivers
Attached Files
 


-  Notes
User avatar (07596)
Fujix (Administrator)
2011-06-30 02:17
edited on: 2011-06-30 02:20

My LCD is working at 58.8 Hz, all games are limited to 97%. It is about 97-98% of 60 Hz. This could have to do with this.

Some 30 fps games such like shanghai and gberet, and 55 hz games like imgfight, all work at 97% with the -refreshspeed option for me.


Sorry for closing this report at first, it was my misunderstanding.

User avatar (07597)
Tafoid (Administrator)
2011-06-30 02:33

Upon testing with a 60hz CRT, with "gberet" a 30hz game .. the "99%" issue began between the following revisions:
= r10176 (I have a r10175 build and it's fine)
= r10182 - this build I have shows the "99%".

Judging from change logs it looks most like something in r10176 where there were oodles of changes to machine, driver, sound, video devices.

This is also likely the cause of the issue that was reported to .info forum a few months ago too, regarding changed %'s when -refreshspeed was used.
http://www.mameworld.info/ubbthreads/showthreaded.php?Cat=&Number=246919
User avatar (07700)
hap (Developer)
2011-08-19 09:09

During screen.c device start, it calls a function in video.c that's responsible for setting the speed: update_refresh_speed()
That function calls frame_period() which is in screen.h, and denies access if the device wasn't started yet. This causes it to always return a default value (60hz) if frame_period is read during device start.

It's easy to workaround this bug in an ugly way, but I don't know how to fix this cleanly myself. Aaron mayhaps?
User avatar (07702)
hap (Developer)
2011-08-19 17:22

ok, fix was easy anyway