[version=100, target=main]
//StageScene::control+18 BL stageSceneHook
4C8DD0 BL stageInitHook // hook to the init of a stage to modify certain conditions (we also have access to SceneInitInfo)
50F928 BL hakoniwaSequenceHook

// hooks to start logger
5359D8 BL tryInitSocket // GameSystem::init 
B59E28 B seadPrintHook // sead::system::print

// Debug Stuff
5359DC:
    MOV X0, X19 // move GameSystem to arg register
    BL setupDebugMenu
    
50F258: // HakoniwaSequence::drawMain+80
    MOV X0, X19 // HakoniwaSequence
    MOV X1, SP // viewport
    MOV X2, X20 // drawContext
    BL drawMainHook

// Main Stuff

50E89C BL constructHook // HakoniwaSequence::init+1F4
50EF2C: // HakoniwaSequence::init+884
    MOV X0, X19 // move HakoniwaSequence ptr to arg register
    BL threadInit

41B4E4 BL setPlayerModel

1B3F0C NOP // disables call to open HTML viewer during first time odyssey flight
1F2A2C MOV W0, #1 // patches checkpoint system to always allow warping

// Puppet Actor Setup
4B5E30 B ProjectActorFactory // patches actor factory ctor with custom matching factory
4CA0E4 BL initPuppetActors

// Shine Syncing
// 1CF470 BL shineHook

//Shine::get
1D03EC MOV X1, X19
1D03F4 BL sendShinePacket

//Shine::getWithDemo
1D1378 MOV X1, X19
1D1380 BL sendShinePacket

//Shine::exeWaitRequestDemo
1D14C8 MOV X1, X19
1D14D0 BL sendShinePacket

//Shine::receiveMsg
1D0188 MOV X1, X19
1D0190 BL sendShinePacket

//Shine::getDirect
1CF124 MOV X1, X19
1CF12C BL sendShinePacket

1CEEDC BL registerShineToList

// Amiibo Button Disabling
577078: // rs::isHoldAmiiboMode
    MOV X0, #0
    RET
577018: // rs::isTriggerAmiiboMode
    MOV X0, #0
    RET

// Remap Snapshot to !L + Down
577014 B comboBtnHook

// Capture Syncing
9CFB84 BL initObjHook

// Save Data Edits
5167D0: GameConfigData::write+D0
    B saveWriteHook
5168F8: GameConfigData::read+124
    BL saveReadHook

// WindowConfirm Edits
99C758: // WindowConfirmWait:tryEnd+1C (Forces logic to ignore current nerve)
    NOP
    NOP

// Costume Setup
54C498: // rs::isHaveCloth
    MOV W0, #1
    RET
54C4A4: // rs::isHaveCap
    MOV W0, #1
    RET

// Coin Counter Changes

20CA78 BL startCounterHook // starts coin counter if a gamemode is not active
20CAA8 BL startCounterHook // starts purple coin counter if gamemode is not active

// Pause Menu Changes

4EAEC4 B overrideNerveHook // makes any button on pause menu run a specific nerve
4EA104 MOV W2, #5 // update state count to account for new custom state
4EA1F0 BL initNerveStateHook // inits options nerve state and server config state
4EA174 MOV X0, X20 // moves StageSceneStatePauseMenu to first arg
4EA17C NOP // prevents first new of StageSceneStateOption
4EA1A8 BL initStateHook // inits StageSceneStateOption and StageSceneStateServerConfig
4EA1C0 NOP // prevents mStateOption ptr from being overriden

// Gravity hooks

455230 NOP // PlayerJointControlKeeper::update+C0 prevents PlayerJointControlGroundPose from updating 
4B5E30 B ProjectActorFactory // patches actor factory ctor with custom matching factory
4BE628 B ProjectCameraPoserFactory // patches camera poser factory with custom matching factory

4463D8 BL initHackCapHook

4C9080 BL createTicketHook // hook to the init of a stage to create custom gravity camera ticket

5C00B0 BL borderPullBackHook // hooks over isFirstStep in WorldEndBorderKeeper::exePullBack so we can kill the player if they reach the border of the map
    