This repo contains a barebones example of a Super Mario Odyssey v1.0.0 mod written (for the most part) in C++. It is a fork of Starlight, an awesome project geared toward mod creation for Splatoon 2.
The mod itself is the same as the one in Responding to Controller Inputs in Super Mario Odyssey (teleport Mario to y=0 on Left D-Pad press), so as to act as a good comparison between an assembly-based implementation and a C++ one.
The changes in this fork are made incrementally & intentionally, with the goal of being a working example of what specifically needs to be updated in Starlight in order to adapt it to other games. You can see the required steps in the form of Pull Requests, each of which has a description of the change, and occasionally code review comments describing specific details.
- devkitPro
- Python 3
- The Keystone-Engine Python Module
Build has only been tested on WSL2 running Ubuntu 20.04.1.
Just run:
DEVKITPRO={path_to_devkitpro} make
On Ubuntu (and other Debian-based systems), devkitPro will be installed to /opt/devkitpro
by default:
DEVKITPRO=/opt/devkitpro/ make
After a successful build, transfer:
Starlight-SMO-Example100.nso
to/atmosphere/contents/0100000000010000/exefs/subsdk1
(note: no extension)starlight_patch_100/3CA12DFAAF9C82DA064D1698DF79CDA1.ips
to/atmosphere/exefs_patches/starlight_patch_100/3CA12DFAAF9C82DA064D1698DF79CDA1.ips
An enviroment for linking to Splatoon 2 executable and implementing hooks.
- 3096
- khang06
- OatmealDome
- Random0666
- shadowninja108
- shibbo - Repo based on their work on OdysseyReversed
- Thog - Expertise in how rtld is implemented
- devkitA64
- libnx - switch build rules