coco875 a1f0d32d66 Update decomp clang (#67)
* Update menus.c (#634)

* Update common_data.yml (#635)

* Renames for screenId and other changes (#636)

* screenId renames

* Rename surface map to collision mesh (#637)

* Rename some stack vars (#638)

* Fix syntax error (#639)

* Rename some stack vars

* Update collision.c

* Collision Documentation (#640)

* Collision related renames

* update doxygen (#649)

* change bool (#644)

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* Update (#642)

* Delete trig_tables_bss.c (#650)

* fix typo audio (#656)

* fix typo src actor (#657)

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* fix typo include (#658)

* fix course (#659)

* fix typo debug (#660)

* fix typo data (#661)

* replace number with const (#665)

* fix typo buffers (#655)

* fix typo buffers

* tweak ld file

* rename to sMemoryPool

* add a warning

---------

* fix typo src (#654)

* fix typo src

* fix non matcing

* Update code_80091750.c

---------

* fix typo racing (#653)

* fix typo racing

* get it match

* replace G_LINE3D to G_QUAD

---------

* fix typo src (#652)

* fix ending typo (#651)

* Action more info when it doesn't match and fix first diff (#662)

* Update linux-compile.yml

* fix first-diff

* Update first-diff.py

---------

* document texture of kart (#663)

* document texture of kart

* change screenPlayerId to screenId

* some documentation around object

* Revert "some documentation around object"

This reverts commit cbb39078e036bf2a417bed67359e910213acab28.

* more rename

---------

* Make evaluate_collision_players_palm_tree better (#667)

This matches just the same as before,	but using those two casts instead of
shifts seems more likely to be accurate to the original source code

Signed-off-by: Gabriel Ravier <gabravier@gmail.com>

* add fedora instruciton (#666)

* start documenting animation (#668)

* start documenting animation

* Update course_data.c

* change comment

* update libultra asm (#648)

* update libultra asm

* fix gcc __osThreadTail

---------

* Document Vehicles (#641)

* start doc collision

* fix merge

* finish rename fonction related to vehicle

* document around waypoint of vehicle

* make some modification

* make some change and rename one

* copy_ to oldPos

* doc smoke ferry and train

* some rename

* fix some renaming

* precise index

* rename a funciton

* simplify waypoint_vehicles

* change some name

* change some name

* rename move_to_point_direction

* fix some conflict

* Update code_80005FD0.c

* Update code_80005FD0.h

---------

* Label a save info loop (#645)

* save info

* more gcc progress

* fix a value and do a rename (#669)

* update clang and add action (#664)

* update clang and add action

* try clang on course folder only

* forget two file

* Update course_displaylists.inc.c

* forget few other file

* Update course_vertices.inc.c

* format all code while get it match

* second pass

* format other dir

* disable clang format on bad ido code

* fix some tabulation

* revert format on tool dir

* Update clang-format.yml

* ignore gbi.h

* add some read me instruction

* fix error

* format and fixing error

* Update README.md

---------

* Update linkonly_generator.py (#670)

* format more file

* update

* fix compilation issue

* remove course_metadata folder

* re add course metadata folder

* fix banshee bordwalk crash

* fix windows eurk

* Update CMakeLists.txt

---------
2024-08-27 17:47:39 -06:00
2024-08-24 18:39:52 -06:00
2024-06-11 09:49:44 -06:00
2024-06-11 09:49:44 -06:00
2024-08-27 17:47:39 -06:00
2024-05-03 12:14:16 -06:00
2024-08-22 18:20:13 -06:00
2024-08-27 17:47:39 -06:00
2024-08-27 17:47:39 -06:00
2024-08-27 17:47:39 -06:00
2024-05-03 12:14:16 -06:00
2024-08-27 17:47:39 -06:00
2024-08-25 18:58:56 -06:00
2024-08-22 17:53:05 -06:00
2024-08-27 17:47:39 -06:00
2024-08-27 17:47:39 -06:00
2022-05-14 15:12:32 -07:00
2022-06-15 17:26:03 -07:00
2024-07-28 17:32:21 -06:00
2024-06-11 09:49:44 -06:00
2024-06-11 09:49:44 -06:00
2024-08-22 18:20:13 -06:00
2023-08-25 22:14:08 -06:00
2024-04-12 18:54:59 -06:00
2024-08-22 18:20:13 -06:00
2024-08-27 17:47:39 -06:00
2023-10-19 23:37:21 -06:00
2023-10-19 23:37:21 -06:00
2024-08-24 18:39:52 -06:00
2020-10-14 21:13:33 -07:00
2024-04-12 19:16:13 -06:00
2024-08-27 17:47:39 -06:00
2024-08-24 18:39:52 -06:00
2024-08-24 18:39:52 -06:00
2024-08-24 18:39:52 -06:00

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

S
Description
No description provided
Readme 534 MiB
Languages
C 83.9%
C++ 13.6%
Python 1.1%
CMake 0.8%
Assembly 0.3%