diff --git a/src/BreathOfTheWild/Graphics/7cd338ce4c6ea935_0000000000000079_ps.txt b/src/BreathOfTheWild/Graphics/7cd338ce4c6ea935_0000000000000079_bak_ps.txt similarity index 100% rename from src/BreathOfTheWild/Graphics/7cd338ce4c6ea935_0000000000000079_ps.txt rename to src/BreathOfTheWild/Graphics/7cd338ce4c6ea935_0000000000000079_bak_ps.txt diff --git a/src/BreathOfTheWild/Mods/FPS++/patch_ControllerScrollSpeed.asm b/src/BreathOfTheWild/Mods/FPS++/patch_ControllerScrollSpeed.asm index 968d7010..60a3368a 100644 --- a/src/BreathOfTheWild/Mods/FPS++/patch_ControllerScrollSpeed.asm +++ b/src/BreathOfTheWild/Mods/FPS++/patch_ControllerScrollSpeed.asm @@ -5,8 +5,30 @@ moduleMatches = 0x6267BFD0 0x03053bd4 = blr ; disable scroll speed adjustment (would require a bigger rewrite for dynamic FPS support) 0x030BD694 = ba _ZN4sead14ControllerBase23updateDerivativeParams_Ejj ; redirect to our re-implementation -0x10327D60 = scrollSpeed: -; .float 1.0 +scrollSpeed: + .float 1.0 + +0x10327D60 = menuNavigationSpeedPackEnabled: +0x10327D64 = menuNavigationSpeedPackValue: + +_checkCursorSpeed: +lis r11, menuNavigationSpeedPackEnabled@ha +lwz r11, menuNavigationSpeedPackEnabled@l(r11) +cmpwi r11, 0x1337 +beq useCustomSpeed +useDefaultSpeed: +lis r11, const_1@ha +lfs f12, const_1@l(r11) +lis r11, scrollSpeed@ha +stfs f12, scrollSpeed@l(r11) +b _checkExternalSpeed +useCustomSpeed: +lis r11, menuNavigationSpeedPackValue@ha +lfs f12, menuNavigationSpeedPackValue@l(r11) +lis r11, scrollSpeed@ha +stfs f12, scrollSpeed@l(r11) +b _checkExternalSpeed + _ZN4sead14ControllerBase21createStickCrossMask_Ev: stwu r1,-16(r1) stw r31,12(r1) diff --git a/src/BreathOfTheWild/Mods/FPS++/patch_GameSpeed.asm b/src/BreathOfTheWild/Mods/FPS++/patch_GameSpeed.asm index 494e68a6..e5e96ff2 100644 --- a/src/BreathOfTheWild/Mods/FPS++/patch_GameSpeed.asm +++ b/src/BreathOfTheWild/Mods/FPS++/patch_GameSpeed.asm @@ -93,15 +93,7 @@ debugMultiplier: _calculateGamespeed: stw r0, 0x78(r30) ; Execute original instruction that got replaced with a jump to this function -; Check and set the cursor speed value if it has been set by the Menu Cursor Speed graphic pack -_checkCursorSpeed: -lis r11, const_0.0@ha ; Load a 0 float... -lfs f12, const_0.0@l(r11) ; ...into f12 -lfs f7, 0xD4(r30) ; Load the external cursor speed offset -fcmpu cr0, f7, f12 ; Compare the value stored in the external memory offset to 0 (f12) -beq _convertTicksToFrametime ; Don't change the value if the menu cursor speed isn't manually set -lis r3, scrollSpeed@ha ; Load the address of the scrollSpeed from the cutscene patch... -stfs f7, scrollSpeed@l(r3) ; ...and then store the external cursor speed from f7 into that address +b _checkCursorSpeed ; If the manual speed has been set by an external program to something other then 0, use that as the static speed _checkExternalSpeed: @@ -113,11 +105,11 @@ bne _setGamespeed ; If static FPS is enabled, always set currently "running" FPS to $fpsLimit _checkStaticFPS: -li r3, $staticFPSMode ; Load the $staticFPSMode setting into r3 -cmpwi r3, 1 ; Compare with 1, which is when it's enabled -bne _calcAverageFPS ; If the comparison is not equal, run -lis r3, fpsLimit@ha ; Load current FPS limit... -lfs f10, fpsLimit@l(r3) ; ...into f10 +li r11, $staticFPSMode ; Load the $staticFPSMode setting into r3 +cmpwi r11, 1 ; Compare with 1, which is when it's enabled +bne _convertTicksToFrametime ; If the comparison is not equal, run +lis r11, fpsLimit@ha ; Load current FPS limit... +lfs f10, fpsLimit@l(r11) ; ...into f10 b _setGamespeed ; Skip dynamic FPS code when static mode is enabled and go to the game speed setting code ; Calculate speed of current frame (FPS). It's calculated by using the ticks between the previous frame and now, which is stored in r12, and the amount of ticks that the Wii U executes in a second (the bus speed). diff --git a/src/BreathOfTheWild/Mods/MenuCursorSpeed/patch_MenuCursorSpeed.asm b/src/BreathOfTheWild/Mods/MenuCursorSpeed/patch_MenuCursorSpeed.asm index e68eef91..4547d1f4 100644 --- a/src/BreathOfTheWild/Mods/MenuCursorSpeed/patch_MenuCursorSpeed.asm +++ b/src/BreathOfTheWild/Mods/MenuCursorSpeed/patch_MenuCursorSpeed.asm @@ -1,4 +1,5 @@ [BotW_MenuCursorSpeed_V208] moduleMatches = 0x6267BFD0 -0x10327D60 = .float $cursorSpeed ; sets cursor speed in a static memory address that's also used by the GameSpeed patch to read the cursor speed \ No newline at end of file +0x10327D60 = .uint 0x1337 ; sets the value for when it's enabled +0x10327D64 = .float $cursorSpeed ; sets cursor speed in a static memory address that's also used by the GameSpeed patch to read the cursor speed \ No newline at end of file