Ring Out 1.3
Three regions, and a Steam Deck module you can actually build.
The Japanese and European discs work
GRSJAF and GRSPAF now recompile and play, alongside the US GRSEAF:
| disc | instructions | unknown opcodes | speed |
|---|---|---|---|
GRSEAF US |
535,368 | 0 | 60 fps |
GRSJAF Japan |
527,592 | 0 | 60 fps |
GRSPAF Europe |
543,008 | 0 | 50 fps — full speed for 50 Hz content |
Nothing is keyed to a disc ID any more. The one address that used to be a US
constant — the OS idle spin loop the core's idle-skip needs, and without which a
build runs at roughly half speed while looking perfectly correct — is now found
in your own disc's executable by matching the loop's shape rather than its
address. It resolves to the hand-found 0x80185DEC on the US disc, 0x8017F35C
on the Japanese one and 0x8018D544 on the European one, the last of which no
human had ever looked at.
Two caveats if your disc is not the US one. The 23 shipped cheat codes are US
addresses and do not carry over, so the cheat list will be empty. And the
profile-guided build is trained on US code, which a JP or PAL module can barely
use — measured at −3.8% instructions, against roughly −11.9% for a US player.
Both build and play correctly regardless.
Steam Deck: ./setup.sh --deck
The Deck package ships no module and sends you to the desktop package to build
one, so that build has to produce something that runs on someone else's CPU.
Two properties of your machine decided whether it would, and both failed
silently at the end of a long recompile:
-march— a normal build targets the machine it runs on. The Deck is Zen
2; a module built on a Zen 4/5 or recent Intel desktop carries AVX-512 or
AVX-VNNI, and the Deck takes SIGILL. An instant crash, no message, possibly
mid-match.- glibc — a floor above ~2.37 fails at
dlopenon SteamOS.
./setup.sh --deck /path/to/disc.iso builds -march=x86-64-v3 and checks both,
then tells you which one you have and what to do about it. The glibc half it can
only diagnose — the fix there is to build on Debian 12 or Ubuntu 22.04.
The --deck module is not a different module: from the same sources it contains
no instruction above v3, keeps its glibc floor at 2.4, and produces identical
frame hashes over 24,000 frames of gameplay.
Also
- The Deck package's README shipped inside 1.2.1 calling itself "Ver 1.1". The
version is now stamped at package time rather than maintained by hand. dolphin-toolcan be built from the vendored tree (-DMODERNGEKKO_ENABLE_DOLPHIN_CLI_TOOL=ON),
which is how an.rvzdisc image becomes something the extractor can read.
Verified by unpacking this exact zip and running ./setup.sh --deck on a PAL
disc, start to finish, then confirming the module it produced loads and hashes
frames.