mirror of
https://github.com/CraftyBoss/SuperMarioOdysseyOnline.git
synced 2024-11-25 12:45:17 +00:00
7fa8c659e1
- Show "SMOO made by CraftyBoss" for about 5 seconds - Then show "Freeze-Tag & Sardines made by Amethyst-szs" for about 5 seconds. - This does only overlay the game starting normally and does not slow down the process additionally. --- Changes compared to the original cherry-picked version: - Put all into the speedboot namespace instead of only a few things. - Don't load into the game, but stay in the main menu - (Because of issues with new save files) - Added text: "Made by CraftyBoss" - Added text: "& Sardines" - Speed up transition animation between the two screens - (Because it is now shown for a shorter total time) Instead of directly (speed)booting into the game like in the original cherry-picked commit, this stays in the main menu. The original behavior can be restored by setting `speedbootAutoload` to `true` inside `BootHooks.cpp`. This is to prevent issues with new empty save files. They normally don't get to the main menu but to an extra menu that now is invisible behind the custom boot screen. The game doesn't load automatically then but the player needs to blindly navigate the invisible menu to start the game. Till Cap Kingdom is fully loaded only the custom boot screen is visible (e.g. during the first cutscene video). (cherry picked from commit c1eac0852eb839560dbc2ccafe373176c9911684) Co-authored-by: Robin C. Ladiges <rcl.git@blackpinguin.de>
139 lines
4.6 KiB
Text
139 lines
4.6 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
|
|
1F2998 B freezeIsCheckpointWarpAllowed // Patches checkpoint system to always allow warping, disable in freeze tag
|
|
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, disables snapshot mode in freeze tag
|
|
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
|
|
4EAFA4 B overrideHelpFadeNerve
|
|
|
|
// 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
|
|
|
|
// Freeze tag hooks
|
|
4272F0 BL freezeDeathArea // Replaces functionality of death areas in freeze tag
|
|
538A94 B freezePlayerHitPointDamage // Reimplements the damage function, disabling it's functionality in Freeze Tag
|
|
51B280 B freezeKidsMode // Forces kids mode to be enabled during Freeze Tag
|
|
1CFBA0 BL freezeMoonHitboxDisable // When mode enabled, disable hitboxes with moons to avoid softlocks
|
|
|
|
// custom bootscreen hooks
|
|
50EF28 BL speedboot::hakoniwaSetNerveSetup
|
|
50EB88 ORR w2, wzr, #0x1f // nerve state count
|
|
50EB64 BL speedboot::prepareLayoutInitInfo
|