Toward a native PC port of Monster Hunter Tri (Wii, Capcom, 2009; Europe and North America 2010), known in Japan as Monster Hunter 3. The Wii version was never re-released (Monster Hunter 3 Ultimate, on 3DS and Wii U, is a different game). The goal is the game running natively on PC, played with a gamepad as the Classic Controller.
The route is static recompilation: the game's own PowerPC code, translated to C++ and built for the PC, running on a replacement for the Wii's hardware and system software. Nothing is emulated at the instruction level, and nothing of the game is rewritten.
This repository documents the disc and its code, and holds the port's own
tools and layer. It is the sixth port built on
wiikit, the game-agnostic Wii
toolkit, taken here as a submodule at wiikit/. Where this game needs
something every Wii game would need, it goes into wiikit, not here.
After one session the game boots, plays its movies, and plays into the village and a first quest: the strap screen, the Capcom logo, the opening movie with its sound, the title, file selection, character creation, the village, a quest's map with its monsters, at 16:9 and a steady 30 frames a second (the game's rate), played with an Xbox One pad as the Classic Controller. The sound stutters: short gaps, everywhere, the open issue (see docs/07-next-session.md). Nothing has been saved or played through yet.
Most of the game's code is not in its executable: 21 RSO modules (the SDK's relocatable code: monsters, quests, the lobby, the movies, the Home Button menu, the maps) are loaded at run time. wiikit now recompiles them with the executable (see docs/03-executable.md).
This repository contains documentation and tools only. No game data, no
executables, no assets. You need your own original disc. The work is done on
the European release, RMHP08; the addresses in tools/ and docs/ are that
executable's.
docs/ disc, code and module analysis, the plan, the session log
tools/ Monster Hunter Tri-specific tools, the port's layer (mh3.cpp)
wiikit/ game-agnostic Wii toolkit (submodule: github.com/vs-sr-dev/wiikit)
build/ (not in git) the disc, everything derived from it, the build
As for the other wiikit ports: Python 3.8+ (3.14 for zstd RVZ images), CMake, Ninja, clang (MSYS2) and SDL3; OpenGL 4.5 to run. From the root:
python -m wiikit.disc GAME.rvz --extract build/extract
python tools/sigmatch.py build/extract/sys/main.dol --dsy <Dolphin>/Sys/totaldb.dsy \
--out build/sig_guess.tsv
python tools/names.py build/extract/sys/main.dol # -> build/names.tsv
python -m wiikit.recomp build/extract/sys/main.dol --out build/recomp \
--symbols build/names.tsv --hooks tools/mh3-hooks.txt \
--sel build/extract/files/mh3.sel $(for f in build/extract/files/01/*.rso; do echo --rso $f; done)
cmake -S build/recomp -B build/recomp-build -G Ninja -DCMAKE_CXX_COMPILER=clang++ \
-DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS_RELEASE=-O1 -DWIIKIT_EXTRA=$PWD/tools/mh3.cmake
ninja -C build/recomp-build
cd build/run1 && ../recomp-build/wiiboot ../extract --symbols ../recomp/symbols.tsvbuild/fonts holds the boot ROM's fonts and dsp_coef.bin (Dolphin's
Sys/GC has free ones). The names need only Dolphin's totaldb.dsy (in
every Dolphin install's Sys folder) and the disc: mh3.sel names the
executable's exports to its modules, and tools/names-manual.tsv every
function the runtime hooks that the database misses, each with its evidence. tools/look.py is wiikit.ppc on the stripped DOL.
Playing: wiikit's Classic Controller mapping (the pad's buttons by
position; build/keys.txt for the keyboard). F11 fullscreen, F12 a GX
trace.
00-sessions.md progress log
01-disc-layout.md what is on the disc
03-executable.md the stripped DOL, mh3.sel, the RSO modules and how they are recompiled
07-next-session.md the plan for the next session
10-wiikit.md how this port uses and grows wiikit
MIT. This covers the documentation and tools in this repository only. It says nothing about Monster Hunter Tri, which remains the property of its rights holders.