Skip to content
forked from stblr/Hanachan

Mario Kart Wii physics reimplementation

License

Notifications You must be signed in to change notification settings

Gaberboo/Hanachan

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hanachan

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.

Status

See STATUS.md.

May 2021 roadmap

  • 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

Future plans

  • 200cc
  • Custom tracks
  • Multiplayer mechanics
  • Advanced ghost analysis and statistics
  • Graphics reimplementation using Vulkan
  • Full game reimplementation (maybe)

Building

Install the latest version of Rust, then run:

cargo build --release

Running

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.

Contributing

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.

Resources

Note: the vast majority of research and development happens on the PAL version of the game.

Ghidra project

mkw-structures

riidefi's decompilation

Symbol Map

Tockdom Wiki

License

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.

About

Mario Kart Wii physics reimplementation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 98.0%
  • Assembly 2.0%