Skip to content

Latest commit

 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pc-monsterhunter3

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.

Where it stands

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).

BYOA — Bring Your Own Assets

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.

Layout

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

Building

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.tsv

build/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.

Documentation

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

Licence

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.

About

Toward a native PC port of Monster Hunter Tri (Wii, 2009): disc and code analysis, a stripped executable and its RSO modules recompiled, a gamepad as the Classic Controller, on wiikit. BYOA.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages