Files
parallel-dc/core
libretroadmin fa34742ec0 av_info: report the actual SPG-derived refresh rate
retro_get_system_av_info bucketed timing.fps to 60.00 (VGA) / 59.94 (NTSC) /
50.00 (PAL) from a pixel-clock table whose constants didn't even reconcile with
those figures, and the VGA case was wrong: Dreamcast VGA runs at 59.94, not 60
(27MHz / (858*525) = 59.9401). It also missed that 240p NTSC is ~59.83, not
59.94, and NAOMI boards run faster still.

The scheduler already computes the exact frame period in CalculateSync from the
SPG registers the game programs (Line_Cycles * pvr_numscanlines). Expose it as
spg_get_refresh_rate() -- pixel_clock / ((hcount+1) * (vcount+1)) -- and report
that. timing.fps now equals the rate frames and audio are actually produced at,
per mode and per game: 59.94 for VGA/480i, ~59.83 for 240p NTSC, 50.00 for PAL
480i, ~49.92 for PAL 240p, and the correct higher rates for NAOMI. Matches the
hardware-derived values confirmed upstream (flyinghead/flycast PR #2033) and
keeps frontend frame pacing in step with the core, pairing with the per-frame
audio flush. Falls back to 60 before CalculateSync has run.
2026-07-03 21:44:45 +02:00
..
2021-05-06 21:25:28 +00:00
2020-05-19 12:41:46 +02:00
2015-08-11 20:52:09 +02:00

core

All of the interesting bits are here