Cha-Cha
Cha-Cha is a native PC port of Monster Hunter 3 Ultimate for Windows and Linux that runs on Vulkan.
- Type: PC port
- Game: Monster Hunter 3 Ultimate
- Runs on Windows and Linux
- By SilversRayGA
- Latest release v0.2.2, 2026-11-04
- Source: https://github.com/SilversRayGA/Cha-Cha-Plus
README
Cha-Cha
Monster Hunter 3 Ultimate, running natively on PC.
A static recompilation of the Wii U game for Windows and Linux.
Install · Getting started · What's new · DLC quests · Mods · Texture packs · What's next · Building
Cha-Cha translates the game's PowerPC code into C++ ahead of time and compiles it for your PC. It runs on our own reimplementation of the Wii U system libraries it uses, with graphics on Vulkan and input and audio on SDL3. It is not an emulator, and there is no emulator code in it.
Important
No game files are included. You need your own copy of Monster Hunter 3 Ultimate (US) with update v32. Cha-Cha is a fan project, not affiliated with or endorsed by Capcom or Nintendo.
How to install
You need your own Monster Hunter 3 Ultimate (US) with update v32 (a .wua file, or the game and update folders).
Windows
- Download
Cha-Cha-<version>-windows-x64.zipfrom Releases. - Extract it to a folder you can write to (not Program Files).
- Run
Cha-Cha.exeand choose your game on the setup screen.
Linux / Steam Deck
- Download
Cha-Cha-<version>-x86_64.AppImagefrom Releases. - Make it executable:
chmod +x Cha-Cha-*.AppImage(or Properties → Allow executing as program). - Run it and choose your game on the setup screen.
The first start translates the game's shaders (a few seconds, once), then the game starts by itself. F1 or Select + Options on a controller opens the settings: General, Video, Input, Mods and Quests tabs (LB / RB or Q / E switch), Quit game in General; F2 opens Mods directly. Damage Numbers comes included: switch it on or off in MODS → Mods.
Adding mods: put each mod's folder into the mods folder of your data folder (data\mods next to
Cha-Cha.exe on Windows, ~/.local/share/Cha-Cha/mods on Linux) and restart Cha-Cha.
What's new compared to the original
These are part of the game. Monster HP scaling can be switched off in Settings → General.
Item SetsLoadouts as in MH Generations Ultimate, inside the game's own item box menu (the house box and the small boxes such as the Port Tanzia dock).
|
Monster HP scalingPort Tanzia quests are balanced for four hunters. Hunting there with fewer, monsters now have:
|
Hold to gatherHold the gather button on a carcass, a gathering spot or a mining point and you keep going until the spot is used up. No more tapping through every carve.DLC quests againThe event and challenge quests, once free downloads from a server that is long gone, install from files. See below. |
Made for PC
- Your resolution and frame rate: internal resolution from 0.5× to 4× (up to 5120×2880), a frame rate limit up to unlimited, V-sync, windowed / borderless / fullscreen, smooth or sharp scaling to the window.
- Tri look: the softer, muted, hazier picture of Monster Hunter Tri on the Wii, applied to the world only (menus and the HUD stay as they are).
- Effects the original never had: global illumination, ambient occlusion, an enhanced depth of field and a vignette, each optional. The game's own bloom and depth of field can be switched off.
- Texture packs and texture dumping for making them.
- Skippable cutscenes: press + (Start / Options, or the keyboard key bound to +) to skip a cutscene movie.
- Straight into the game: no launcher menu to click through (
--menushows it). F1, Select + Options (or the PlayStation touchpad / Home button) opens the settings over the game, with Quit game in General; F2 the mods, F3 cycles the GamePad screen (hidden, picture-in-picture, GamePad only), F11 switches between fullscreen and a window and frees the mouse. - Controls your way: keyboard and mouse, or any controller SDL supports, played as a Wii U Pro Controller. Every button can be rebound, and the settings show which button does what, for your bindings and your controller (Xbox, PlayStation or Nintendo names).
- Menus you can point at: in the game's menus the mouse becomes a pointer; the option under it is selected and a click picks it - the start and pause menus, item box, shops, Smithy, Quest Counter, Canteen, house, Farm, Ferry, Supply Box and their prompts.
- A PC keyboard for names and chat instead of the Wii U software keyboard.
Getting started
| Windows | Linux | |
|---|---|---|
| Download | Cha-Cha-<version>-windows-x64.zip from Releases | Cha-Cha-<version>-x86_64.AppImage, or the folder Cha-Cha-<version>-linux-x86_64.tar.gz, from Releases |
| Needs | Windows 10 / 11 x64 | x86-64 with glibc 2.35 or newer (Ubuntu 22.04, Fedora 36, Steam Deck…) |
| Graphics | a Vulkan 1.2 driver | a Vulkan 1.2 driver (Mesa or your GPU vendor's) |
| Run | extract the zip anywhere you can write to, run Cha-Cha.exe | chmod +x Cha-Cha-*.AppImage, then run it; or extract the folder and run ./Cha-Cha |
- Start Cha-Cha. On the first start a setup screen asks for your game.
- Point it at your dump: a
.wuaarchive, or the game and update folders (code,content,meta). Cha-Cha checks that it is the US v32 executable and reads the files where they are; nothing is copied. - Wait a few seconds while the game's shaders are translated for your PC. This happens once.
Your data folder keeps settings, saves, caches, quests and texture packs:
| Data folder | |
|---|---|
| Windows | %APPDATA%\Cha-Cha |
| Linux | ~/.local/share/Cha-Cha (or $XDG_DATA_HOME/Cha-Cha) |
| Portable | data/ next to the program, when a file named portable.txt sits beside it (the Windows zip ships with one) |
| Folder | the program's own folder, when Cha-Cha.ini sits beside it (the Linux folder release ships with one) |
Saves live in <data folder>/save. To skip the setup screen, start it with --install <path to your dump>.
The folder release
Everything in one folder, like other recomps: unpack it anywhere you can write to.
Cha-Cha-<version>/
├── Cha-Cha the program
├── Cha-Cha.ini settings (makes this folder Cha-Cha's data folder)
├── game/ your dump: the game and update folders, or a .wua (found by itself)
├── mods/ mods, one folder each (Damage Numbers, True Attack, Key Quests included)
│ └── damage-numbers/
├── licenses/ Cha-Cha's GPL-3.0 and the bundled libraries' licences
├── README.txt
│ made on the first start:
├── cache/ translated shaders and pipelines
├── save/ your saves
├── quests/ event and challenge quests
├── texture_replacements/ texture packs
└── log.txt the log (when not started from a terminal)
It needs FFmpeg's libavcodec from your distribution (for the movies). On another distribution than it was built on,
use the AppImage.
Default controls
| Wii U Pro Controller | Keyboard and mouse | Controller |
|---|---|---|
| Left stick / right stick | WASD / O K L ; (or the mouse: click in the window, Esc releases) | sticks |
| A / B / X / Y | F, Return or right click / Space or Backspace / left click / E | the face buttons by position, as on the Wii U |
| X + A together | mouse 4 | |
| L / R / ZL / ZR | Q or Left Ctrl / Left Shift or mouse 5 / Z / C | LB / RB / LT / RT |
| + / − | Tab / M | Back / Start |
| D-pad | arrow keys, mouse wheel | d-pad |
Settings → Input switches the controller to the Xbox layout (A / Cross confirms) and rebinds anything. Camera
speed there slows the camera down (30% to 100% of the game's own turn rate, for the stick, the camera keys and the
mouse). Bindings and options are saved in <data folder>/input.ini (docs/input.md).
DLC: event and challenge quests
Capcom's download service for MH3U is gone. Cha-Cha installs the quests from files instead.
- Open MODS → Quests → Quest folder. That is
<data folder>/quests. - Put the quests in, each pack in a folder of its own:
- Official DLC: the save files
quest1,quest2,quest3andquest4from a Wii U save that has the downloaded quests, for example inquests/DLC MH3U/. Official packs install all their quests by themselves. - Custom quests:
q_<number>.questfiles, with an optionalpack.json,cover.png, and a picture and description per quest. Custom packs let you pick quests one by one.
- Official DLC: the save files
- The quests appear at the Port Tanzia Gathering Hall with the event and challenge quests.
Pack format and options: docs/mods.md. Quest files are game data, so Cha-Cha ships none.
Mods
Put mods in <data folder>/mods, one folder each. MODS → Mods (F2 in game) lists them, switches each on or off
(from the next start) and shows their settings.
- Content mods carry a
content/folder whose files replace or add to the game's own (same paths as the game'scontentfolder). Nothing in your dump is changed. - Plugins (
plugins/*.dllon Windows,plugins/*.soon Linux) are native code: they can hook game functions, draw over the game and add settings rows. The API is a single C header,include/chacha_plugin.h.
Included:
- Damage Numbers (mods/damage-numbers): the damage of every hit over the monster, in the Wilds, Rise or Classic style.
- True Attack (mods/true-attack, optional, starts off): menus show weapons' true attack instead of the bloated number (Iron Hammer 70 instead of 364). Damage is not changed.
- Key Quests (mods/key-quests, optional, starts off): a gold key icon, "2 OF 5" and URGENT tags on the Quest Counter's list, for the quests that unlock the next urgent quest.
Switch mods on or off in MODS → Mods (F2 in game). Making mods: docs/modding.md.
Texture packs and texture dumping
Using a pack: put the DDS files in <data folder>/texture_replacements (subfolders are fine) and turn on
Settings → Video → Texture packs. It switches on and off while you play.
Making a pack:
- Turn on Settings → Video → Dump textures. Every texture the game draws from then on is saved to
<data folder>/texture_dumpas a DDS file, already named for replacement:tex_<width>x<height>_<CRC32>.dds. A note in the corner shows the folder and how many have been saved. Dumping lasts until you quit. - Edit the ones you want. Keep the name (you may add text after the CRC), include mipmaps, and copy them into
texture_replacements.
Packs made for the 3DS version don't match the Wii U textures and won't load. Details: docs/texture-packs.md.
What's next
- Local network play: hunt together with players on the same network.
- Online play: Cha-Cha's own lobby server in place of Nintendo's retired service (docs/online.md), with HP scaling then using the real number of hunters.
- Quest maker: build your own quests in the game and share them with a code: copy it, send it, and anyone who pastes it gets the same quest.
Building from source
The build translates your own dump's executable into C++, so put a dump in place first.
-
Put your dump at
game/mh3u.wua(game/README.md), then runpowershell -File scripts/extract.ps1andpowershell -File scripts/fingerprint.ps1. -
Windows: Visual Studio 2026 with "Desktop development with C++" and the Vulkan SDK (tools/README.md):
cmake -S . -B build/cmake cmake --build build/cmake --config Release ctest --test-dir build/cmake -C Release --output-on-failureA clang-cl build (
cmake -S . -B build/clang -T ClangCL) compiles the generated code faster.scripts/package-release.ps1makes the release zip. -
Linux (or WSL2 on Windows): clang 15+, Ninja, CMake 3.25+, the LunarG Vulkan SDK,
libvulkan-dev,libavcodec-devand SDL3's build dependencies.scripts/build-linux.shbuilds it,scripts/package-appimage.shmakes the AppImage (docs/linux.md).On a Linux desktop with the distribution's SDL3 (Fedora:
SDL3-devel,libshaderc-devel,vulkan-loader-devel,libavcodec-free-devel), configure with-DMH3U_SYSTEM_SDL3=ON. An SDL3 built from source without the PipeWire / PulseAudio / ALSA headers has no sound:cmake -S . -B ~/cha-cha-build -G Ninja -DCMAKE_BUILD_TYPE=Release -DMH3U_SYSTEM_SDL3=ON \ -DMH3U_RECOMP_OUT=$HOME/cha-cha-build/recomp-out cmake --build ~/cha-cha-build --target mh3u damage_numbers scripts/package-folder.sh ~/cha-cha-build <version> # the folder release, in build/release/
Inside the checkout Cha-Cha finds extracted/ by itself and uses the checkout as its data folder (all of it
gitignored). The release packages never contain game files, but the program itself contains the recompiled game
code, translated from your executable at build time.
Repository layout
| Path | What lives there | In git? |
|---|---|---|
game/, extracted/ | Your dump, and its unpacked contents | no |
config/ | Target hashes, symbol map, function list, known structures | yes |
recomp/ | The recompiler; recomp/out/ is the generated C++ | source only |
runtime/ | The PC layer replacing the Wii U system: os, gfx (GX2 on Vulkan), audio, input, fs, boot | yes |
src/ | Hand-written game code: item sets, hold to gather, HP scaling… | yes |
include/ | chacha_plugin.h, the plugin API for mods | yes |
mods/ | Mods built with the tree: Damage Numbers | yes |
tools/, scripts/, ghidra/ | Shader translator, helper scripts, reverse-engineering scripts | yes |
docs/ | Roadmap, research log, formats, mods, modding, input, Linux, online notes | yes |
build/ | Build output | no |
How the port works and what was learned: docs/runtime.md, docs/engine.md, docs/research-log.md.
Credits
- Dusklight: the Twilight Princess PC port whose front end (launcher, title screen, settings window) Cha-Cha's front end follows.
- Yakumo: the asset-free release model Cha-Cha follows: a release build plus your own dump, nothing from the game shipped.
- Ghidra, for reverse engineering.
- Libraries: SDL3, Dear ImGui, zstd, the Vulkan SDK (shaderc, glslang, SPIRV-Tools), FFmpeg's libavcodec on Linux (docs/release/THIRD_PARTY_NOTICES.md).
Monster Hunter is a trademark of Capcom. Wii U is a trademark of Nintendo.
License
Cha-Cha is free software under the GNU General Public License v3.0 (LICENSE): you may use, study, change and share it, and if you share a changed version you share its source under the same licence. Third-party libraries keep their own licences. The licence covers Cha-Cha's own code only, not the game: Monster Hunter 3 Ultimate and everything translated from it remain Capcom's.