Go to file
MegaMech 318a6d713f Define default keyboard layout 2024-11-21 17:29:14 -07:00
.github/workflows update with the decomp (#97) 2024-09-17 09:32:50 -06:00
asm [modding] Course Mod Support (#104) 2024-10-05 15:31:31 -06:00
assets Update lus (#16) 2024-06-11 09:49:44 -06:00
courses [modding] Big Update PR (#118) 2024-11-14 23:32:55 -07:00
data A lot of fixes 2024-05-03 12:14:16 -06:00
docs Update from decomp (#34) 2024-08-22 18:20:13 -06:00
doxygen-awesome-css@28ed396de1 update all submodule (#21) 2024-07-27 20:42:07 -06:00
enhancements [modding] Big Update PR (#118) 2024-11-14 23:32:55 -07:00
include [modding] Big Update PR (#118) 2024-11-14 23:32:55 -07:00
libultraship@736ad68251 [modding] Implement jumbtron fb effect (#125) 2024-11-15 03:02:20 -07:00
models update with the decomp (#97) 2024-09-17 09:32:50 -06:00
mods [modding] Implement jumbtron fb effect (#125) 2024-11-15 03:02:20 -07:00
src Remove asserts 2024-11-20 22:50:36 -07:00
textures/crash_screen A lot of fixes 2024-05-03 12:14:16 -06:00
tools update with the decomp (#97) 2024-09-17 09:32:50 -06:00
torch@6edf65beca [modding] Implement jumbtron fb effect (#125) 2024-11-15 03:02:20 -07:00
yamls/us Remove unused metadata files 2024-11-20 22:55:45 -07:00
.clang-format Update decomp clang (#67) 2024-08-27 17:47:39 -06:00
.clang-tidy Update decomp clang (#67) 2024-08-27 17:47:39 -06:00
.editorconfig Memory and Actor decomp (#201) 2022-05-14 15:12:32 -07:00
.gitattributes Add building on macOS (#224) 2022-06-15 17:26:03 -07:00
.gitignore [Modding] start add wasm integration (#84) 2024-10-05 15:49:07 -06:00
.gitmodules [Modding] start add wasm integration (#84) 2024-10-05 15:49:07 -06:00
CMakeLists.txt Fix jumbotron 2024-11-15 23:27:18 -07:00
Dockerfile update with the decomp (#97) 2024-09-17 09:32:50 -06:00
Doxyfile use github actions instead (#605) 2024-04-12 18:54:59 -06:00
Makefile update with the decomp (#97) 2024-09-17 09:32:50 -06:00
Makefile.split Linkage for the ceremony_data file (#478) 2023-10-27 22:18:20 -06:00
README.md Update decomp clang (#67) 2024-08-27 17:47:39 -06:00
addr_to_sym.py Delete courses/cup folders and rename course related files (#432) 2023-09-20 17:17:24 -06:00
assets.json Add ymls for Torch code generator (#497) 2024-04-09 21:29:57 -06:00
config.yml Update lus (#16) 2024-06-11 09:49:44 -06:00
ctx_includes.c Update from decomp (#34) 2024-08-22 18:20:13 -06:00
diff Some matches in 80027D00 (#385) 2023-08-25 22:14:08 -06:00
diff_settings.py Document progress.py and correct readme (#483) 2023-11-05 13:57:14 -07:00
extract_assets.py add compatibilty for Windows build (#564) 2024-02-22 08:33:46 -07:00
first-diff.py Update from decomp (#34) 2024-08-22 18:20:13 -06:00
import Matches in 80281fa0, render_courses, and create defines for sound cues. (#276) 2022-11-21 04:06:12 -07:00
lus-cvars.cmake Define default keyboard layout 2024-11-21 17:29:14 -07:00
m2c_helper.sh Add a utility that aids in generating m2c output (#279) 2022-12-09 19:03:30 -07:00
mk64.eu-1.0.sha1 EU 1.0 OK (#265) 2023-10-19 23:37:21 -06:00
mk64.eu-final.sha1 EU 1.0 OK (#265) 2023-10-19 23:37:21 -06:00
mk64.ld update with the decomp (#97) 2024-09-17 09:32:50 -06:00
mk64.us.sha1 Initial commit 2020-10-14 21:13:33 -07:00
permute Matches in 80281fa0, render_courses, and create defines for sound cues. (#276) 2022-11-21 04:06:12 -07:00
permuter_settings.toml Turn D_802BFB80 into a union (#582) 2024-03-25 13:25:13 -04:00
progress.py Action Renames (#606) 2024-04-12 19:16:13 -06:00
python_convert.py place surface type const and unassemble flag in vtx and document effects (#553) 2024-01-20 21:22:35 -07:00
rename_sym.sh Linkage for the ceremony_data file (#478) 2023-10-27 22:18:20 -06:00
safe_gcc.mk Update decomp (#63) 2024-08-24 18:39:52 -06:00
safe_gcc_old.mk Update decomp (#63) 2024-08-24 18:39:52 -06:00
test_blend.bat update with the decomp (#97) 2024-09-17 09:32:50 -06:00
undefined_syms.txt Update decomp (#63) 2024-08-24 18:39:52 -06:00
util.mk update with the decomp (#97) 2024-09-17 09:32:50 -06:00

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

Linux Compile

Progress

Total progress consists of all code segments together.

Game code progress consists of main, ending and racing.

Build Status Build Status

Build Status Build Status Build Status

  • Build Status
  • Build Status
  • Build Status
  • Build Status
  • Build Status

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