SuperMarioOdysseyOnline/patches/codehook.slpatch

127 lines
No EOL
3.8 KiB
Text

[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
216FAC MOV W0, #0 // disables AppearSwitchTimer's camera switch
// 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
// 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
// Other HUD Changes
20CB4C BL modeE3Hook // PlayGuideMenuLyt at StageSceneStateLayout::start+140
20CA5C BL modeE3Hook // MapMini::appearSlideIn at StageSceneStateLayout::start+50
20D160 BL modeE3Hook // MapMini::end at StageSceneStateLayout::exeEnd+8C
20D154 BL playGuideEndHook
// 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
// 4E46BC NOP // removes call to setEnableData for one of the commonverticallists in the options menu, which makes all entries in the menu look the same
8912B8 B drawTableHook
// 891394 BL drawInitHook
// 91328 BL updateInitHook