OrreLink v1.5.10
Pre-releaseSuperseded by v1.5.11 — mixed-architecture rooms keep their recompilers (the Cached Interpreter was too slow); XD's clock is served deterministically instead. Use that one.
Pre-release for testing. Supersedes v1.5.9. Not netplay-compatible with earlier versions.
Fixed — Mac-vs-Windows (and any mixed-CPU) rooms desynced
A macOS host and a Windows guest played the same match and got different results: an attack missed on one machine and hit on the other. Both logs, aligned by link-cable command sequence instead of by time, show why:
- The host sends its CPU core setting to the room. A Mac (Apple Silicon) host sends the ARM64 recompiler; a Windows build cannot construct that core, and Dolphin silently fell back to the x86-64 recompiler with no message anywhere. So the two machines were running XD on two different recompilers.
- Two recompilers split code into blocks differently, and Dolphin only advances its clock at block boundaries, so the two machines' clocks drift apart by a few dozen cycles — visible in the logs well before the first GBA link.
- XD reads that clock. The GBA link key is built from it at every key exchange (
OSGetTick & 0xFFFFFF), and that is exactly where the two logs first differ: one byte, seconds into the session, off by precisely the 4 timer ticks the clock skew predicts. The battle RNG seed is also clock-derived (once, at boot). Which of the clock-dependent paths flipped the accuracy roll — the boot seed, the number of RNG calls before the move, or the GBA-side timing — is what the new log lines below will pin from the next test; every one of them disappears once both machines run the same core.
Fix: every player now tells the host its CPU architecture. If a room mixes architectures (Apple Silicon or Android with Windows or Linux), the host puts everyone on the Cached Interpreter — the one core all four builds share, with identical timing and arithmetic — and says so in chat. Rooms that don't mix (Mac ↔ Thor, Windows ↔ Linux) keep their fast recompilers, exactly as before. The Cached Interpreter is slower than a recompiler; on an Apple Silicon Mac and a recent Windows laptop XD should still hold full speed, and netplay throttles to the slower side. If it can't hold up, the host can set ForceCommonCoreOnMixedArch = False under [NetPlay] in Dolphin.ini to opt out (with the desync risk back).
Also closed while in there: the launcher's "Practice vs dummy" (which feeds fake GBA input locally) is now forced off inside any netplay room; a guest that is ever handed a core it can't build now says so in chat and uses the Cached Interpreter instead of a silent fallback; one accuracy setting (accurate_fmadds) was never actually transmitted to guests and is now forced on for everyone; one cache-accuracy setting that was never synchronized is now pinned; and the interpreter is compiled with floating-point contraction off so ARM64 and x86-64 builds compute identical bits.
New — logs that can prove a desync in one match
Every session log now records, on every machine:
cpu ...at boot: the core that actually ran (not just the one that was requested), the architecture, and every determinism-relevant setting. v1.5.9's Windows log would have readcore_cfg=4 core_eff="JIT64".xd ...lines during the link and battle: XD's RNG seed, the link-key generator state, and checksums of the battle state, keyed by link-command sequence number so two players' logs line up exactly. The first differing line names the moment and the kind of divergence.ar ...at boot: the full set of Action Replay lines that will run (the host's Battle Style/format block on both the host and every guest), plus a send/receive checksum, so "was the host's block applied on the guest" is a one-line diff.
diff <(grep ' xd ' host.log | sed -E 's/^t=[0-9]+ //') <(grep ' xd ' guest.log | sed -E 's/^t=[0-9]+ //') should be empty for a clean match.
Fixed — launcher taller than the screen (Windows laptops)
The launcher's content now lives in a scroll area and the window opens no taller than the screen's working area. On a large screen it looks exactly as before; on a 768-px laptop it opens fitting the screen with a scrollbar instead of hanging off the bottom where Windows won't let it be dragged up. The Team Editor is capped the same way.
| Platform | File |
|---|---|
| Android (AYN Thor etc.) | OrreLink-v1.5.10.apk |
| macOS (Apple Silicon) | OrreLink-v1.5.10-macOS-arm64.zip |
| Windows x64 | OrreLink-v1.5.10-win64.zip |
| Linux x86_64 | OrreLink-v1.5.10-linux-x86_64.AppImage |