Skip to content

Ring Out 1.6.4

Choose a tag to compare

@jackpoison-prog jackpoison-prog released this 27 Sep 16:20

Another speed release: 8-13% less CPU than 1.6.3, depending on the disc. All of it comes from the code the recompiler generates.

Measured directly on a Steam Deck, 1.6.3 against 1.6.4 over the same 16,000 frames of an arcade match, each module built by its own release's setup, 8 runs each (every 1.6.4 run beat every 1.6.3 run):

  • US disc: 11.0% less CPU
  • Japanese disc: 8.3% less
  • European disc: 11.9% less
  • SC2 Plus: 12.7% less

What changed:

  • Twin chunks (the biggest part, 5.7-6.7% on every disc): each block of game code is compiled twice. A fast copy handles the entry points real gameplay uses, and the ordinary copy covers everything else.
  • Chunk overhang (US, European, SC2 Plus): one hot loop sat across the boundary between two compiled blocks, so every pass through it took a detour. It now stays inside one block. The Japanese disc's layout never had this problem.
  • Cheaper memory stores (every disc): stores through the stack and the game's two global data pointers skip a check that could never fail.
  • Three smaller improvements to how the recompiler handles floating point and paired-single maths, plus a CPU-state value it now keeps in a register instead of memory.
  • Starting Ring Out while it is already running now says so instead of opening a second copy.

Game behaviour is unchanged. On the US, European and SC2 Plus discs, some internal events now happen on slightly different frames, so replays recorded on 1.6.3 may play out differently on 1.6.4. Record new ones.

You need to re-run setup to get the gain. The speedup is in the module setup builds on your machine. Unzip fresh and point setup at your disc as before.

Netplay needs both players on 1.6.4, as with every release.