This is a collection of all (or most) public header files for the game Super Mario Odyssey. These were collected in a community effort to help with modding the game.
This repository can simply be included in your project using for example git submodule
. I suggest placing this in a separate directory next to the custom header files, for example using include/...
for custom files and lib/...
as the location for this repo.
To add the repository as a submodule named lib
to the current folder, run this command:
git submodule add https://github.com/MonsterDruide1/smo-headers lib
Make sure to add lib
and lib/sead
to your includes, either by using the -Ilib -Ilib/sead
compiler flags or by adding it to a makefile.
An example project using this repository as base for headers is the practice mod.
As multiple different versions of the headers got created and evolved differently, this repository tries to get them back together in a single, accessible location. However, at the moment not all of the headers are properly polished up and merged to a single location, so different bases can be selected to use in the project.
Name | Path | Working | Cleaned libraries | Merged | into |
---|---|---|---|---|---|
OdysseyDecomp | / | ✅ | ✅ | ✅ | |
SuperMarioOdysseyOnline | online-headers | ✅ | ✅ | ❌ | |
SMO-Challenges-Base | challenges-base | ✅ | ✅ | ❌ | |
OdysseyReversed | odyssey-reversed | ✅ | ❌ | ❌ | |
smo-practice | practice-headers | ✅ | ❌ | ❌ | |
SMO-PrimitiveRenderer | primitive-renderer | ✅ | ❌ | ❌ | |
OdysseyHeaders | granimated-headers | ✅ | ✅ | ❌ | |
Visible-HitSensors | visible-hitsensors | ✅ | ✅ | ✅ | primitive-renderer |
Starlight-SMO-Example | starlight-example | ✅ | ❌ | ❌ | |
Starlight-SMO-LayoutEditing | starlight-layout | ✅ | ✅ | ✅ | visible-hitsensors |
SMO-Galaxy-Gravity | galaxy-gravity | ✅ | ✅ | ❌ | |
OdysseyHeaders | ricbent-headers | ❌ | ❌ | ❌ | |
Superstar | granimated-superstar | ✅ | ✅ | ✅ | odyssey-reversed |
Please note that the Header collection by RicBent is in "unfixable state" for the most part. It has probably been autogenerated from symbols in the game, and thus is lacking all return types. The project will be included for completeness sake here, but will not be further dealt with or fixed.
To use a specific version of the headers, adjust your includes accordingly: For example, to use the headers of SuperMarioOdysseyOnline
, pick lib/online-headers
and lib/online-headers/sead
as your includes instead.
Credits goes to all the various projects and users that collected and published headers: