mirror of
https://github.com/jkdansereau/goldeneye-pc-port.git
synced 2026-10-23 15:52:42 +02:00
Public-copy language pass, homepage restructure and Documentation rename, 404 page, dead-anchor and permalink fixes, release-gate sign-off, and the pre-release review fixes of the 2026-10-05 batch (probe-doc drift, build-path hygiene, verify.sh and capture safety). Refs: D533 D534
1.3 KiB
1.3 KiB
title, description, date, modified_time
| title | description | date | modified_time |
|---|---|---|---|
| Framerate and pacing | How the GoldenEye 007 PC port holds a steady 60 fps and keeps per-frame game timing correct on a fast CPU. | 2026-10-05 | 2026-10-05 |
Framerate and pacing
The port targets a steady 60 fps with VSync and an optional 30/60 frame cap, including on low-end GPUs.
The N64's game code assumed a 60 Hz vertical-interrupt tick — it ran a few ticks per displayed frame. On a PC the CPU is far faster, so left alone the game logic would race ahead. The port handles this in two places:
- Frame pacing happens in
port/src/video.con the render thread (the software RSP thread), which paces the frame and does the swap and FPS accounting. - Per-frame counters in the game are gated with
portN64FrameStep()so they advance at the display rate, not the CPU rate. Getting this wrong is a recurring class of subtle timing bug (a counter that ticks too fast, a stall that isn't real) — the porting notes track these (for example D13, D22 and D486).
On very weak integrated GPUs (Atom/Celeron class) the first launch writes
lighter values for draw distance, LOD distance and anti-aliasing into
ge007.ini so the game still holds 60 fps.
More: porting notes — the timing-related findings (D13, D22, D486).