
Wii Sports Resort (ResortCompiled)
Port nativo de Wii Sports Resort (ResortCompiled) para PC.
Wii Sports Resort (ResortCompiled)
Port nativo basado en su ficha de origen.
README del repositorio
Resortcompiled
A native PC port of Wii Sports Resort built by static recompilation. It's based on WiiCompiled, whose recompiler and Wii runtime also power Mario Kart Wiicompiled, and it draws with aurora.
Includes an experimental two-player Riisorted online prototype, with Swordplay Duel as the first target. The same-PC test passed; remote testing is next.
Players: installation and ZeroTier guide. Maintainers: build and package a release.
Target revision: PAL RZTP01. Use your own dump. No Nintendo code or data goes in this repo.
Layout
setup.sh one-time setup (deps, .NET 8, WiiCompiled, dtk, translator build)
scripts/extract.sh disc image -> work/extracted/ (checks game ID, lists RELs)
scripts/extract_ref.sh MKW PAL image -> work/ref/mkw/sys/main.dol (reference for cross-matching)
scripts/xmatch.py masked-instruction function matcher (MKW names -> WSR)
scripts/analyze.sh dtk analysis -> projects/wsr/{MAP.txt, recomp.yml, hle_address_map.csv}
scripts/rekey.py WiiCompiled runtime -> runtime/wsr/{src,include} with MKW addresses rewritten to WSR
scripts/translate.sh WiiCompiled translator first pass -> work/generated/
scripts/build.sh native build (runtime/wsr + work/generated + aurora) -> out/Resortcompiled
projects/wsr/ WSR project files (generated by analyze, safe to commit)
docs/ research notes
patches/wiicompiled/ our fixes to WiiCompiled, applied by setup.sh (candidates to upstream)
disc/ put your disc image here (git-ignored)
external/wiicompiled/ WiiCompiled checkout (pinned commit, git-ignored)
tools/bin/dtk decomp-toolkit, used only as an analyser (git-ignored)
work/ extracted files, dtk output, generated C++, logs, reports (git-ignored)
Quick start
git clone https://github.com/redluigi323/ResortCompiled.git
cd ResortCompiled
bash setup.sh
bash scripts/release/build.sh /path/to/WiiSportsResort.rvz 0.2.0-netplay-preview
The release build uses the checked-in WSR runtime and map. It does not need a Mario Kart Wii dump or runtime re-keying. For upstream hook research, the individual analysis/re-key scripts below remain available.
What each step gives you
- extract:
work/extracted/sys/main.dol, the game ID check and main.dol's SHA-256. The game code is all inmain.dol(~6.3 MB of code). The 7 RELs on the disc live infiles/sys/mpls_movie/rels/and belong to the MotionPlus movie app, so analysis skips them (--with-relsto include). - extract_ref: pulls Mario Kart Wii PAL's
main.dol. dtk's signature database only names ~350 of WSR's 34k functions; matching instruction patterns against MKW (whose ~20k functions WiiCompiled has named) carries the shared RVL SDK / NW4R / EGG names over, and maps WiiCompiled's MKW-address hooks to WSR addresses directly. - analyze:
projects/wsr/MAP.txtis the function map the translator uses to find functions.projects/wsr/recomp.ymlis the translator config. The script fills in the entry point, the r13/r2 small-data bases (read from__init_registers) and the DOL hash for you.projects/wsr/hle_address_map.csvlists every function WiiCompiled's runtime replaces, with its MKW address next to the matching WSR address. We use it to point the runtime at WSR's functions.work/reports/hle_coverage.mdsummarises how many replacements matched.
- rekey: copies WiiCompiled's runtime into
runtime/wsr/and rewrites each MKW address it can map: functions via the MKW↔WSR pairing (exact or fuzzy), jump-table labels through the instruction alignment, and data/bss addresses via alignedlis/addiand r13/r2 references in paired functions. Hooks it can't map are commented out (// RESORT-UNMAPPED) so they can't hijack unrelated WSR code.work/reports/rekey.mdlists low-confidence matches, disabled hooks,RMCPgame-ID constants and every unresolved address;projects/wsr/address_map.csvhas the full map. Re-running overwritesruntime/wsr/{src,include}, so commit before hand-editing. - build: assembles WiiCompiled's expected layout in
work/tree/(runtime copied,generatedandaurora-mainsymlinked), configures CMake + Ninja with clang/lld intowork/build/, and copies the game toout/.out/is portable (portable.txt), so settings, saves and logs live inout/UserData/, andConfig.tomlpointsdvd_rootatwork/extracted. Translated shards are compiled with at most one job per 2 GB of RAM. Logs go towork/logs/build-*.log. - translate: turns the game's PowerPC code into C++ under
work/generated/. For now, instructions the translator can't handle become runtime traps instead of stopping the build. It does not produce a playable exe yet.
Roadmap
- ✅ Toolchain + analysis pipeline
- ✅ First full translation: 34,213 functions, 91 unsupported instructions (all
mfsprin TRK debugger / exception / cache-init code that WiiCompiled replaces natively anyway) - ✅ Automatic re-key of the runtime (570 of 750 referenced MKW addresses mapped)
- Fix the rest by hand (disabled hooks, unmapped data, RMCP→RZTP), wire up the native build → first boot to the title screen
- MotionPlus + IR pointer in the Wii Remote input layer (WPAD/KPAD), gyro-controller mapping, real Wii Remote Plus
- Audio, saves, all 12 sports playable, checked against Dolphin
- Frame interpolation tuning, aspect ratio/FOV hooks, HUD layout
- Riisorted online: deterministic input lockstep (Swordplay Duel first), then sport expansion and deeper game integration. Rollback requires portable snapshots.
Online design: Riisorted netplay plan. Experimental hosting/joining: live online instructions. Input diagnostics: motion recording and playback.
Licensing
WiiCompiled is GPLv3, so this project is GPLv3. aurora is MIT.
Release launcher
The desktop launcher lives in launcher/. It provides
first-run disc installation, exact revision checking, a built-in Mii creator,
automatic Mii resource setup from a complete disc, optional Mii imports, and
Wii Sports Resort / Riisorted selection. Riisorted includes an experimental
two-player direct online connection; its future game modifications have a separate
overlay directory.
Release packaging instructions: launcher/README.md. The launcher is bundled with Python/Qt and the existing native runtime so end users do not need the development toolchain.
Comentarios (0)
Inicia sesión para dejar un comentario.
Sé el primero en comentar sobre este juego.
