This project is abandoned in favor of riidefi/mkw and stblr/mkw-sp.
A reimplementation of the physics engine of Mario Kart Wii, aiming for perfectly accurate ghost replay. The initial goal is to reach 100% coverage of the CTGP database on Nintendo tracks.
See STATUS.md.
- More vehicles
- Karts
- Outside-drifting bikes
- Quacker
- Blue Falcon
- RKRD improvements
- Rewrite as a GCT
- Support regions other than PAL
- Automation options
- KMP features
- KTPT
- CKPT/CKPH
- POTI
- AREA
- JGPT
- CNPT
- KCL features
- Floor collision
- Wall collision
- Off-road properties
- Boost panels
- Ramps
- OOB
- Cannons
- Moving road
- Driving mechanics
- SSMTs
- Tricks
- Respawn boost
- Nosediving/taildiving
- Slipdrifts
- CLI overhaul
- Make RKRD optional
- Multiple runs
- Configurable output
- 3D renderer
- Collision (KCL/BSP) view
- BRRES view
- Basic MDL0
- Advanced MDL0
- TEX0
- CHR0
- 200cc
- Custom tracks
- Multiplayer mechanics
- Advanced ghost analysis and statistics
- Graphics reimplementation using Vulkan
- Full game reimplementation (maybe)
Install the latest version of Rust, then run:
cargo build --release
Make a copy of your Mario Kart Wii disc with e.g. CleanRip.
Extract Common.szs
and the Course
directory with e.g. Dolphin or WIT.
Then run:
./target/release/hanachan Common.szs Course samples
Every ghost in the samples
directory will be replayed and compared to a dump of the most important physics variables. The number of accurate frames will then be printed.
It is also possible to supply a single ghost file for more detailed output, or a single track file.
At the moment, the codebase is evolving very fast and there is still some code I haven't integrated yet, so if you want to contribute non-trivial features, please tell me about it so we can properly coordinate.
Note: the vast majority of research and development happens on the PAL version of the game.
Copyright 2003-2021 Dolphin Emulator Project
Copyright 2020-2021 Pablo Stebler
This software is available under the terms of the GNU General Public License, either version 2 of the License, or (at your option) any later version.