Daytona USA gets a native recompiled port for modded Switch, locked at 57.52 Hz

A GBAtemp release called Daytona-NX-Modern recompiles the Sega Model 2 arcade board behind Daytona USA into native ARM64 code for modded Switch consoles, matching the cabinet's original refresh rate.

AI-drafted from 1 source. This story was written with AI from the outside reporting listed under Sources, and checked by automated tools before it went up. The originals have the full detail.

A developer going by Thorhax has released a homebrew port of Daytona USA built not on emulation but on static recompilation, translating the Sega Model 2 arcade board's original processors directly into code the Switch's ARM64 chip can run natively. The project, called Daytona-NX-Modern, is detailed in a release thread on GBAtemp, and its headline claim is a locked 57.52 FPS, the exact refresh rate of the original 1994 cabinet, rather than the 60 Hz most emulators settle for.

Daytona USA ran on Sega's Model 2 board, a setup built around an Intel i960 RISC CPU for game logic, a Fujitsu MB86234 TGP chip for 3D transform and lighting, and a separate 68000 processor handling sound. Most previous fan ports have emulated that hardware, interpreting its instructions on the fly. The GBAtemp thread instead describes static ahead of time, or AOT, recompilation: the original programs for all three chips are translated once, in advance, straight into native ARM64 instructions, cutting out the interpretation step that usually costs emulators their performance headroom.

How the rasteriser gets to 57.52 Hz on stock hardware

Model 2's 3D rendering is reconstructed in software rather than handed to the Switch's GPU outright. Thorhax describes a “multithreaded software rasterizer” using what the post calls a work-stealing raster queue, split into eight slices and spread across two of the console's CPU cores. That restructuring is credited with cutting rasterisation time by roughly half, which the post says is what makes the locked arcade frame rate possible at the Switch's stock 1020 MHz clock, with no overclock mentioned.

Audio gets its own dedicated core too. The thread describes the audio callback pinned to a separate core with raised real time priority and a 1024 sample buffer, which it says prevents the stutter and starvation that can plague emulated arcade sound. The result, according to the post, is “clear, stutter-free stereo audio” alongside the frame-locked video.

Why 57.52 Hz instead of 60

Arcade boards of this era rarely ran at a clean 60 Hz, and Model 2 is no exception: its native rate is 57.524 Hz. Most ports round that up or down to fit a 60 Hz display, which introduces judder as frames are duplicated or dropped to match. Daytona-NX-Modern instead reportedly uses precise thread timing, via what the post calls a “high-precision hybrid svcSleepThread waiting” approach, to pace frames at the arcade's original rate rather than the Switch screen's own refresh. The thread says this is also intended to reduce power draw and heat compared with constantly fighting the display's VSync. An in-game menu, opened with a button chord, lets players toggle between that native 57.52 Hz pacing and a conventional 60 Hz VSync mode, alongside a switch between the recompiled audio engine and a “reference” 68000 mode and a live performance overlay.

What is still missing

The release does not include any copyrighted game data. Players need their own arcade ROM set, specifically the Revision A MAME dump, which they must place alongside the homebrew file themselves; nothing is bundled. The thread is written by a single named developer with a Ko-fi link rather than any studio, and there is no sign in the post of involvement from Sega, who still own Daytona USA outright. How the port performs against the genuine cabinet in blind play, and whether other revisions of the ROM set work, are not addressed in the thread and remain untested by anyone outside the people who have already downloaded it.

Sources

Image: Illustration: AI-generated for Gaming World

More news from Gaming World