* start making models extraction with blender * finishing extract model * Update fast64 * extract course * Update fast64 * Update fast64 * simplify import of course_displaylists and course_textures and remplace adress with texture * Update fast64 * change data format and simplify the thread queue * move in a blender folder * remove fast64 * re add fast64 * add model_extract and fast64_blender in makefile * multithread with make file split the models into multiple json and add course segment * Update fast64 * remove old model_extract * remove the error when he don't find blender * start rename around course section * rename around object * update submodule fast64 * fix compilation issue and add some model to extract * Update fast64 * remove fast64 * re add fast64 * update submodule * fix compilation issue * add other collision gfx and prepare reorganise file * re arrange json * Create README.MD * Update README.MD * Update README.MD * update fast64 * rename to initiate_next_state * Revert "Merge branch '3d-objects' into general-object" This reverts commit |
||
|---|---|---|
| .github/workflows | ||
| asm | ||
| assets | ||
| courses | ||
| data | ||
| docs | ||
| doxygen-awesome-css@df88fe4fdd | ||
| enhancements | ||
| include | ||
| src | ||
| tools | ||
| yamls | ||
| .clang-format | ||
| .clang-tidy | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .gitmodules | ||
| Dockerfile | ||
| Doxyfile | ||
| Makefile | ||
| Makefile.split | ||
| README.md | ||
| addr_to_sym.py | ||
| assets.json | ||
| config.yml | ||
| ctx_includes.c | ||
| diff | ||
| diff_settings.py | ||
| extract_assets.py | ||
| first-diff.py | ||
| import | ||
| m2c_helper.sh | ||
| mk64.eu-1.0.sha1 | ||
| mk64.eu-final.sha1 | ||
| mk64.ld | ||
| mk64.us.sha1 | ||
| permute | ||
| permuter_settings.toml | ||
| progress.py | ||
| python_convert.py | ||
| rename_sym.sh | ||
| safe_gcc.mk | ||
| safe_gcc_old.mk | ||
| undefined_syms.txt | ||
| util.mk | ||
README.md
Mario Kart 64
This work-in-progress decompilation of Mario Kart 64 pursues historical and educational elements within the game found via taking it apart and putting it back together. Inspiration to do so not only emanates from the game's hardware and technology but also its immensely positive effects on the cultures and families of nearly every nationality.
This repository does not contain assets. Compiling requires asset extraction from a prior copy of the game.
It supports and builds the following versions:
| ROM Output | Revision | SHA-1 Checksum |
|---|---|---|
| mk64.us.z64 | USA | 579c48e211ae952530ffc8738709f078d5dd215e |
| mk64.eu-1.0.z64 | EUR 1.0 | a729039453210b84f17019dda3f248d5888f7690 |
| mk64.eu-final.z64 | EUR 1.1 | f6b5f519dd57ea59e9f013cc64816e9d273b2329 |
Progress
Total progress consists of all code segments together.
Game code progress consists of main, ending and racing.
Quick Start
git submodule update --init --recursive
Extract assets
make assets -j
make -j
Building
Build instructions located in the API docs
See also, the comprehensive API and documentation which includes an overview of the code-base while also discussing significant concepts, features, and modding.
Current State
The code-base may change significanty overtime as naming and documentation continues. The code-base is shiftable.
Some menu textures are compressed using a format called tkmk00. A byte-matching compressor/decompressor does not yet exist.
Project Structure
mk64
├── asm: Handwritten assembly code, rom header and boot
│ ├── non_matchings: Assembly for non-matching sections
│ └── os: Libultra handwritten assembly code
├── assets: Textures
├── courses: Course data, geography, display lists and staff ghosts
├── build: Output directory
├── data: Misc data, text, audio banks, and instrument sets
├── docs: Build guides
├── include: Header files
├── music: Sequences
├── src: C source code for the game
| ├── actors: Individual actors split out from other files
│ ├── audio: Sample tables and audio code
│ ├── data: Misc data referenced in other C files
| ├── debug: Custom debug code
| ├── ending: Podium ceremony and credits code
│ ├── os: Libultra C code
| └── racing: Race and game engine code
├── textures: Texture data, bitmaps
| ├── common: Textures common to many courses
| ├── courses: Course specific textures
| ├── crash screen: Crash screen font image
│ ├── raw: Raw textures
│ ├── standalone: Whole textures
| ├── startup_logo: Reflection map
| └── trophy: Ceremony cutscene podium and trophy textures
└── tools: build tools
Documentation
Documentation available online at https://n64decomp.github.io/mk64/.
Documentation generated using Doxygen. Run make doc to test locally. Documentation resides in docs/html. Open index.html to view the site.
Contributing
Pull requests are welcome. For major changes, please discuss in the Discord.
Run make format to ensure it meets the project's coding standards.
If code needs to avoid formatting place // clang-format off before the code and // clang-format on after.
Official Discord: discord.gg/DuYH3Fh