Skip to content

Ring Out 1.3

Choose a tag to compare

@jackpoison-prog jackpoison-prog released this 26 Aug 00:01
· 9 commits to main since this release

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 dlopen on 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-tool can be built from the vendored tree (-DMODERNGEKKO_ENABLE_DOLPHIN_CLI_TOOL=ON),
    which is how an .rvz disc 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.