mirror of
https://github.com/project-slippi/slippi-ssbm-asm.git
synced 2025-10-05 15:42:49 +02:00
enforce no wobbling via code
this is currently applied across the board. will try to address this in the future to only enable it in ranked perhaps
This commit is contained in:
@@ -2,19 +2,9 @@
|
||||
# Address: 800db880
|
||||
# Tags: [affects-gameplay]
|
||||
################################################################################
|
||||
.include "Common/Common.s"
|
||||
.include "External/PreventWobbling/PreventWobbling.s"
|
||||
|
||||
.set REG_DefenderData,29
|
||||
|
||||
.set OFST_WobbleCounter,0x2384
|
||||
.set OFST_LastMoveID,0x2386
|
||||
|
||||
#Init count
|
||||
li r3,0
|
||||
stb r3,OFST_WobbleCounter(REG_DefenderData)
|
||||
#Init last move ID
|
||||
li r3,-1
|
||||
sth r3,OFST_LastMoveID(REG_DefenderData)
|
||||
Wobbling_InitWobbleCount
|
||||
|
||||
#Original codeline
|
||||
lwz r0, 0x005C (sp)
|
||||
lwz r0, 0x005C (sp)
|
||||
|
@@ -2,19 +2,9 @@
|
||||
# Address: 800dbbd4
|
||||
# Tags: [affects-gameplay]
|
||||
################################################################################
|
||||
.include "Common/Common.s"
|
||||
.include "External/PreventWobbling/PreventWobbling.s"
|
||||
|
||||
.set REG_DefenderData,29
|
||||
Wobbling_InitWobbleCount
|
||||
|
||||
.set OFST_WobbleCounter,0x2384
|
||||
.set OFST_LastMoveID,0x2386
|
||||
|
||||
#Init count
|
||||
li r3,0
|
||||
stb r3,OFST_WobbleCounter(REG_DefenderData)
|
||||
#Init last move ID
|
||||
li r3,-1
|
||||
sth r3,OFST_LastMoveID(REG_DefenderData)
|
||||
|
||||
#Original codeline
|
||||
lwz r0, 0x005C (sp)
|
||||
lwz r0, 0x005C (sp)
|
||||
|
191
External/PreventWobbling/PreventWobbling.s
vendored
Normal file
191
External/PreventWobbling/PreventWobbling.s
vendored
Normal file
@@ -0,0 +1,191 @@
|
||||
.ifndef HEADER_PREVENT_WOBBLING
|
||||
|
||||
.macro Wobbling_InitWobbleCount
|
||||
.include "Common/Common.s"
|
||||
|
||||
.set REG_DefenderData,29
|
||||
|
||||
.set OFST_WobbleCounter,0x2384
|
||||
.set OFST_LastMoveID,0x2386
|
||||
|
||||
#Init count
|
||||
li r3,0
|
||||
stb r3,OFST_WobbleCounter(REG_DefenderData)
|
||||
#Init last move ID
|
||||
li r3,-1
|
||||
sth r3,OFST_LastMoveID(REG_DefenderData)
|
||||
.endm
|
||||
|
||||
.macro Wobbling_Check
|
||||
.include "Common/Common.s"
|
||||
|
||||
.set REG_DefenderData,27
|
||||
|
||||
.set ASID_CapturePulledHi, 0xDF
|
||||
.set ASID_CaptureDamageLw, 0xE4
|
||||
.set ASID_CaptureJump, 0xE6
|
||||
|
||||
.set OFST_IsLeader,0x2222
|
||||
.set Bitflag_IsLeader,0x4
|
||||
.set OFST_IsDead,0x221f
|
||||
.set Bitflag_IsDead,0x40
|
||||
.set OFST_IsFrozen,0x2219
|
||||
.set Bitflag_IsFrozen,0x04
|
||||
|
||||
.set OFST_WobbleCounter,0x2384
|
||||
.set OFST_LastMoveID,0x2386
|
||||
.set MaxWobbles,3
|
||||
|
||||
.set Match_CheckIfTeams,0x8016B168
|
||||
.set AS_218_CatchCut,0x800da698
|
||||
.set AS_CaptureJump,0x800dc070
|
||||
.set ActionStateChange,0x800693ac
|
||||
.set AirStoreBoolLoseGroundJump,0x8007d5d4
|
||||
.set PlayerBlock_LoadDataOffset,0x8003418C
|
||||
.set IceClimbers_CheckNanaAliveAndActionable, 0x8012300c
|
||||
|
||||
.set Wobbling_Exit,0x8008F0C8
|
||||
|
||||
# injecting upon entering capturedamage
|
||||
|
||||
#Ensure im being held in a grab (not thrown)
|
||||
lwz r3,0x10(REG_DefenderData)
|
||||
cmpwi r3,ASID_CapturePulledHi
|
||||
blt Original
|
||||
cmpwi r3,ASID_CaptureDamageLw
|
||||
bgt Original
|
||||
#Get grabber data
|
||||
lwz r3,0x1A58(REG_DefenderData)
|
||||
cmpwi r3,0
|
||||
beq Original
|
||||
lwz r4,0x2C(r3)
|
||||
#Ensure grabber has a follower
|
||||
lbz r4,OFST_IsLeader(r4)
|
||||
rlwinm. r4,r4,0,Bitflag_IsLeader
|
||||
beq Original
|
||||
/*
|
||||
lbz r3,0xC(r3)
|
||||
li r4,1
|
||||
branchl r12,PlayerBlock_LoadDataOffset
|
||||
cmpwi r3,0
|
||||
beq Original
|
||||
*/
|
||||
#Check if the person who damaged me IS that fighter
|
||||
lwz r4,0x1868(REG_DefenderData)
|
||||
cmpw r3,r4
|
||||
beq IsFollower
|
||||
#Check if its an item
|
||||
lhz r5,0x0(r4)
|
||||
cmpwi r5,6
|
||||
bne Original
|
||||
IsItem:
|
||||
#Check if the item belongs to the fighter
|
||||
lwz r5,0x2C(r4)
|
||||
lwz r4,0x518(r5)
|
||||
cmpw r3,r4
|
||||
bne Original
|
||||
#Check if this is the same move i was last hit with
|
||||
lhz r3,0xDA8(r5)
|
||||
lhz r4,OFST_LastMoveID(REG_DefenderData)
|
||||
cmpw r3,r4
|
||||
beq Original
|
||||
#Increment wobble count
|
||||
b UpdateWobbleCount
|
||||
IsFollower:
|
||||
#Check if this is the same move i was last hit with
|
||||
lwz r5,0x2C(r3)
|
||||
lhz r3,0x2088(r5)
|
||||
lhz r4,OFST_LastMoveID(REG_DefenderData)
|
||||
cmpw r3,r4
|
||||
beq Original
|
||||
UpdateWobbleCount:
|
||||
#Update last move id
|
||||
sth r3,OFST_LastMoveID(REG_DefenderData)
|
||||
#Increment wobble count by 1
|
||||
lbz r3,OFST_WobbleCounter(REG_DefenderData)
|
||||
addi r3,r3,1
|
||||
stb r3,OFST_WobbleCounter(REG_DefenderData)
|
||||
#Only in singles
|
||||
branchl r12,Match_CheckIfTeams
|
||||
cmpwi r3,0
|
||||
bne Original
|
||||
#Check if wobble count exceeds max
|
||||
lbz r3,OFST_WobbleCounter(REG_DefenderData)
|
||||
cmpwi r3,MaxWobbles
|
||||
ble Original
|
||||
|
||||
.set REG_GrabberGObj, 20
|
||||
.set REG_FollowerGObj, 21
|
||||
backup
|
||||
#Break this grab
|
||||
lwz REG_GrabberGObj,0x1A58(REG_DefenderData)
|
||||
mr r3,REG_GrabberGObj
|
||||
branchl r12,AS_218_CatchCut
|
||||
#Enter Nana into catchcut as well
|
||||
lwz r3,0x2C(REG_GrabberGObj) #Get grabber data
|
||||
lbz r3,0xC(r3)
|
||||
li r4,1
|
||||
branchl r12,PlayerBlock_LoadDataOffset
|
||||
cmpwi r3,0
|
||||
beq SkipBreak
|
||||
mr REG_FollowerGObj,r3
|
||||
#Check if her AI is in follow mode
|
||||
#lbz r5, 0x1a88 + 0xFA (r4)
|
||||
#rlwinm. r5,r5,0,0x01
|
||||
#beq SkipBreak
|
||||
#Ensure that she is alive and actionable
|
||||
lwz r4,0x2c(REG_FollowerGObj)
|
||||
lbz r0, OFST_IsDead (r4) # dead flag
|
||||
rlwinm. r0, r0, 0, Bitflag_IsDead
|
||||
bne SkipBreak
|
||||
lbz r0, OFST_IsFrozen (r4) # frozen flag
|
||||
rlwinm. r0, r0, 0, Bitflag_IsFrozen
|
||||
bne SkipBreak
|
||||
lbz r0, 0x2071 (r4) # state kind
|
||||
rlwinm r0, r0, 28, 28, 31
|
||||
cmpwi r0, 13 # star and screen KOs
|
||||
beq SkipBreak
|
||||
CheckGroundState:
|
||||
#Check grounded/airborne
|
||||
lwz r5, 0xE0 (r4)
|
||||
cmpwi r5,0
|
||||
bne AerialBreak
|
||||
GroundBreak:
|
||||
#Grounded nana enters catchcut (800da698, r4 is 0)
|
||||
li r4,0
|
||||
branchl r12,AS_218_CatchCut #0x800da698
|
||||
b SkipBreak
|
||||
AerialBreak:
|
||||
#Aerial nana enters capturejump (800dc070)
|
||||
lwz r3,0x2c(REG_FollowerGObj)
|
||||
branchl r12,AirStoreBoolLoseGroundJump #0x8007d5d4
|
||||
# give velocity
|
||||
lwz r3,0x2c(REG_FollowerGObj)
|
||||
lwz r5, -0x514C (r13)
|
||||
lfs f0, 0x0374 (r5)
|
||||
lfs f1,0x2c(r3)
|
||||
fneg f1,f1
|
||||
fmuls f0,f0,f1
|
||||
stfs f0, 0x80 (r3)
|
||||
lfs f0, 0x0378 (r5)
|
||||
stfs f0, 0x84 (r3)
|
||||
lfs f0, -0x6900 (rtoc)
|
||||
stfs f0, 0x2340 (r3)
|
||||
# change state
|
||||
lfs f1, -0x6900 (rtoc)
|
||||
lfs f2, -0x68FC (rtoc)
|
||||
fmr f3, f1
|
||||
mr r3, REG_FollowerGObj
|
||||
li r4, ASID_CaptureJump
|
||||
li r5, 0
|
||||
li r6, 0
|
||||
branchl r12,ActionStateChange #0x800693ac
|
||||
SkipBreak:
|
||||
restore
|
||||
branch r12,Wobbling_Exit
|
||||
|
||||
Original:
|
||||
.endm
|
||||
|
||||
.endif
|
||||
.set HEADER_PREVENT_WOBBLING, 1
|
27
External/PreventWobbling/Ranked/Init Wobble Count Air.asm
vendored
Normal file
27
External/PreventWobbling/Ranked/Init Wobble Count Air.asm
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
################################################################################
|
||||
# Address: 800db880
|
||||
# Tags: [affects-gameplay]
|
||||
################################################################################
|
||||
.include "External/PreventWobbling/PreventWobbling.s"
|
||||
.include "Online/Online.s"
|
||||
.include "Common/Common.s"
|
||||
|
||||
# TODO: This doesn't actually work. It would be enabled for all online games when playing but
|
||||
# TODO: if you went to VS mode to play a local game, it wouldn't be enabled when playing but would
|
||||
# TODO: be enabled when that replay was played. We will have to pass the scene and mode the game
|
||||
# TODO: was played to the playback engine to properly decide when to enable this code in a replay
|
||||
|
||||
# Only run this code in ranked and playback
|
||||
getMinorMajor r3
|
||||
cmpwi r3, SCENE_ONLINE_IN_GAME
|
||||
beq EXEC_CODE
|
||||
cmpwi r3, SCENE_PLAYBACK_IN_GAME
|
||||
beq EXEC_CODE
|
||||
b WRAPPER_EXIT
|
||||
|
||||
EXEC_CODE:
|
||||
Wobbling_InitWobbleCount
|
||||
|
||||
WRAPPER_EXIT:
|
||||
#Original codeline
|
||||
lwz r0, 0x005C (sp)
|
27
External/PreventWobbling/Ranked/Init Wobble Count Ground.asm
vendored
Normal file
27
External/PreventWobbling/Ranked/Init Wobble Count Ground.asm
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
################################################################################
|
||||
# Address: 800dbbd4
|
||||
# Tags: [affects-gameplay]
|
||||
################################################################################
|
||||
.include "External/PreventWobbling/PreventWobbling.s"
|
||||
.include "Online/Online.s"
|
||||
.include "Common/Common.s"
|
||||
|
||||
# TODO: This doesn't actually work. It would be enabled for all online games when playing but
|
||||
# TODO: if you went to VS mode to play a local game, it wouldn't be enabled when playing but would
|
||||
# TODO: be enabled when that replay was played. We will have to pass the scene and mode the game
|
||||
# TODO: was played to the playback engine to properly decide when to enable this code in a replay
|
||||
|
||||
# Only run this code in ranked and playback
|
||||
getMinorMajor r3
|
||||
cmpwi r3, SCENE_ONLINE_IN_GAME
|
||||
beq EXEC_CODE
|
||||
cmpwi r3, SCENE_PLAYBACK_IN_GAME
|
||||
beq EXEC_CODE
|
||||
b WRAPPER_EXIT
|
||||
|
||||
EXEC_CODE:
|
||||
Wobbling_InitWobbleCount
|
||||
|
||||
WRAPPER_EXIT:
|
||||
#Original codeline
|
||||
lwz r0, 0x005C (sp)
|
27
External/PreventWobbling/Ranked/Wobble Check.asm
vendored
Normal file
27
External/PreventWobbling/Ranked/Wobble Check.asm
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
################################################################################
|
||||
# Address: 8008F090
|
||||
# Tags: [affects-gameplay]
|
||||
################################################################################
|
||||
.include "External/PreventWobbling/PreventWobbling.s"
|
||||
.include "Online/Online.s"
|
||||
.include "Common/Common.s"
|
||||
|
||||
# TODO: This doesn't actually work. It would be enabled for all online games when playing but
|
||||
# TODO: if you went to VS mode to play a local game, it wouldn't be enabled when playing but would
|
||||
# TODO: be enabled when that replay was played. We will have to pass the scene and mode the game
|
||||
# TODO: was played to the playback engine to properly decide when to enable this code in a replay
|
||||
|
||||
# Only run this code in ranked and playback
|
||||
getMinorMajor r3
|
||||
cmpwi r3, SCENE_ONLINE_IN_GAME
|
||||
beq EXEC_CODE
|
||||
cmpwi r3, SCENE_PLAYBACK_IN_GAME
|
||||
beq EXEC_CODE
|
||||
b WRAPPER_EXIT
|
||||
|
||||
EXEC_CODE:
|
||||
Wobbling_Check
|
||||
|
||||
WRAPPER_EXIT:
|
||||
#Original codeline
|
||||
lwz r0, 0x0010 (r27)
|
171
External/PreventWobbling/Wobble Check.asm
vendored
171
External/PreventWobbling/Wobble Check.asm
vendored
@@ -2,172 +2,9 @@
|
||||
# Address: 8008F090
|
||||
# Tags: [affects-gameplay]
|
||||
################################################################################
|
||||
.include "Common/Common.s"
|
||||
.include "External/PreventWobbling/PreventWobbling.s"
|
||||
|
||||
.set REG_DefenderData,27
|
||||
Wobbling_Check
|
||||
|
||||
.set ASID_CapturePulledHi, 0xDF
|
||||
.set ASID_CaptureDamageLw, 0xE4
|
||||
.set ASID_CaptureJump, 0xE6
|
||||
|
||||
.set OFST_IsLeader,0x2222
|
||||
.set Bitflag_IsLeader,0x4
|
||||
.set OFST_IsDead,0x221f
|
||||
.set Bitflag_IsDead,0x40
|
||||
.set OFST_IsFrozen,0x2219
|
||||
.set Bitflag_IsFrozen,0x04
|
||||
|
||||
.set OFST_WobbleCounter,0x2384
|
||||
.set OFST_LastMoveID,0x2386
|
||||
.set MaxWobbles,3
|
||||
|
||||
.set Match_CheckIfTeams,0x8016B168
|
||||
.set AS_218_CatchCut,0x800da698
|
||||
.set AS_CaptureJump,0x800dc070
|
||||
.set ActionStateChange,0x800693ac
|
||||
.set AirStoreBoolLoseGroundJump,0x8007d5d4
|
||||
.set PlayerBlock_LoadDataOffset,0x8003418C
|
||||
.set IceClimbers_CheckNanaAliveAndActionable, 0x8012300c
|
||||
|
||||
.set Wobbling_Exit,0x8008F0C8
|
||||
|
||||
# injecting upon entering capturedamage
|
||||
|
||||
#Ensure im being held in a grab (not thrown)
|
||||
lwz r3,0x10(REG_DefenderData)
|
||||
cmpwi r3,ASID_CapturePulledHi
|
||||
blt Original
|
||||
cmpwi r3,ASID_CaptureDamageLw
|
||||
bgt Original
|
||||
#Get grabber data
|
||||
lwz r3,0x1A58(REG_DefenderData)
|
||||
cmpwi r3,0
|
||||
beq Original
|
||||
lwz r4,0x2C(r3)
|
||||
#Ensure grabber has a follower
|
||||
lbz r4,OFST_IsLeader(r4)
|
||||
rlwinm. r4,r4,0,Bitflag_IsLeader
|
||||
beq Original
|
||||
/*
|
||||
lbz r3,0xC(r3)
|
||||
li r4,1
|
||||
branchl r12,PlayerBlock_LoadDataOffset
|
||||
cmpwi r3,0
|
||||
beq Original
|
||||
*/
|
||||
#Check if the person who damaged me IS that fighter
|
||||
lwz r4,0x1868(REG_DefenderData)
|
||||
cmpw r3,r4
|
||||
beq IsFollower
|
||||
#Check if its an item
|
||||
lhz r5,0x0(r4)
|
||||
cmpwi r5,6
|
||||
bne Original
|
||||
IsItem:
|
||||
#Check if the item belongs to the fighter
|
||||
lwz r5,0x2C(r4)
|
||||
lwz r4,0x518(r5)
|
||||
cmpw r3,r4
|
||||
bne Original
|
||||
#Check if this is the same move i was last hit with
|
||||
lhz r3,0xDA8(r5)
|
||||
lhz r4,OFST_LastMoveID(REG_DefenderData)
|
||||
cmpw r3,r4
|
||||
beq Original
|
||||
#Increment wobble count
|
||||
b UpdateWobbleCount
|
||||
IsFollower:
|
||||
#Check if this is the same move i was last hit with
|
||||
lwz r5,0x2C(r3)
|
||||
lhz r3,0x2088(r5)
|
||||
lhz r4,OFST_LastMoveID(REG_DefenderData)
|
||||
cmpw r3,r4
|
||||
beq Original
|
||||
UpdateWobbleCount:
|
||||
#Update last move id
|
||||
sth r3,OFST_LastMoveID(REG_DefenderData)
|
||||
#Increment wobble count by 1
|
||||
lbz r3,OFST_WobbleCounter(REG_DefenderData)
|
||||
addi r3,r3,1
|
||||
stb r3,OFST_WobbleCounter(REG_DefenderData)
|
||||
#Only in singles
|
||||
branchl r12,Match_CheckIfTeams
|
||||
cmpwi r3,0
|
||||
bne Original
|
||||
#Check if wobble count exceeds max
|
||||
lbz r3,OFST_WobbleCounter(REG_DefenderData)
|
||||
cmpwi r3,MaxWobbles
|
||||
ble Original
|
||||
|
||||
.set REG_GrabberGObj, 20
|
||||
.set REG_FollowerGObj, 21
|
||||
backup
|
||||
#Break this grab
|
||||
lwz REG_GrabberGObj,0x1A58(REG_DefenderData)
|
||||
mr r3,REG_GrabberGObj
|
||||
branchl r12,AS_218_CatchCut
|
||||
#Enter Nana into catchcut as well
|
||||
lwz r3,0x2C(REG_GrabberGObj) #Get grabber data
|
||||
lbz r3,0xC(r3)
|
||||
li r4,1
|
||||
branchl r12,PlayerBlock_LoadDataOffset
|
||||
cmpwi r3,0
|
||||
beq SkipBreak
|
||||
mr REG_FollowerGObj,r3
|
||||
#Check if her AI is in follow mode
|
||||
#lbz r5, 0x1a88 + 0xFA (r4)
|
||||
#rlwinm. r5,r5,0,0x01
|
||||
#beq SkipBreak
|
||||
#Ensure that she is alive and actionable
|
||||
lwz r4,0x2c(REG_FollowerGObj)
|
||||
lbz r0, OFST_IsDead (r4) # dead flag
|
||||
rlwinm. r0, r0, 0, Bitflag_IsDead
|
||||
bne SkipBreak
|
||||
lbz r0, OFST_IsFrozen (r4) # frozen flag
|
||||
rlwinm. r0, r0, 0, Bitflag_IsFrozen
|
||||
bne SkipBreak
|
||||
lbz r0, 0x2071 (r4) # state kind
|
||||
rlwinm r0, r0, 28, 28, 31
|
||||
cmpwi r0, 13 # star and screen KOs
|
||||
beq SkipBreak
|
||||
CheckGroundState:
|
||||
#Check grounded/airborne
|
||||
lwz r5, 0xE0 (r4)
|
||||
cmpwi r5,0
|
||||
bne AerialBreak
|
||||
GroundBreak:
|
||||
#Grounded nana enters catchcut (800da698, r4 is 0)
|
||||
li r4,0
|
||||
branchl r12,AS_218_CatchCut #0x800da698
|
||||
b SkipBreak
|
||||
AerialBreak:
|
||||
#Aerial nana enters capturejump (800dc070)
|
||||
lwz r3,0x2c(REG_FollowerGObj)
|
||||
branchl r12,AirStoreBoolLoseGroundJump #0x8007d5d4
|
||||
# give velocity
|
||||
lwz r3,0x2c(REG_FollowerGObj)
|
||||
lwz r5, -0x514C (r13)
|
||||
lfs f0, 0x0374 (r5)
|
||||
lfs f1,0x2c(r3)
|
||||
fneg f1,f1
|
||||
fmuls f0,f0,f1
|
||||
stfs f0, 0x80 (r3)
|
||||
lfs f0, 0x0378 (r5)
|
||||
stfs f0, 0x84 (r3)
|
||||
lfs f0, -0x6900 (rtoc)
|
||||
stfs f0, 0x2340 (r3)
|
||||
# change state
|
||||
lfs f1, -0x6900 (rtoc)
|
||||
lfs f2, -0x68FC (rtoc)
|
||||
fmr f3, f1
|
||||
mr r3, REG_FollowerGObj
|
||||
li r4, ASID_CaptureJump
|
||||
li r5, 0
|
||||
li r6, 0
|
||||
branchl r12,ActionStateChange #0x800693ac
|
||||
SkipBreak:
|
||||
restore
|
||||
branch r12,Wobbling_Exit
|
||||
|
||||
Original:
|
||||
lwz r0, 0x0010 (r27)
|
||||
# Original codeline
|
||||
lwz r0, 0x0010 (r27)
|
@@ -48,8 +48,8 @@ beq RETURN_LOCKED
|
||||
b EXIT
|
||||
|
||||
LOGGED_IN_STATE:
|
||||
cmpwi r4, OPTION_RANKED_IDX
|
||||
beq RETURN_LOCKED
|
||||
# cmpwi r4, OPTION_RANKED_IDX
|
||||
# beq RETURN_LOCKED
|
||||
cmpwi r4, OPTION_LOGIN_IDX
|
||||
beq RETURN_LOCKED
|
||||
cmpwi r4, OPTION_UPDATE_IDX
|
||||
|
@@ -1778,6 +1778,27 @@
|
||||
"Annotation": "Common/PSCameraIndependentMonitor/PSCameraIndependentMonitor.asm",
|
||||
"Tags": "[affects-gameplay]"
|
||||
},
|
||||
{
|
||||
"InjectionAddress": "800DB880",
|
||||
"Name": "Required: Slippi Online",
|
||||
"Codetype": "Auto",
|
||||
"Annotation": "External/PreventWobbling/Init Wobble Count Air.asm",
|
||||
"Tags": "[affects-gameplay]"
|
||||
},
|
||||
{
|
||||
"InjectionAddress": "800DBBD4",
|
||||
"Name": "Required: Slippi Online",
|
||||
"Codetype": "Auto",
|
||||
"Annotation": "External/PreventWobbling/Init Wobble Count Ground.asm",
|
||||
"Tags": "[affects-gameplay]"
|
||||
},
|
||||
{
|
||||
"InjectionAddress": "8008F090",
|
||||
"Name": "Required: Slippi Online",
|
||||
"Codetype": "Auto",
|
||||
"Annotation": "External/PreventWobbling/Wobble Check.asm",
|
||||
"Tags": "[affects-gameplay]"
|
||||
},
|
||||
{
|
||||
"InjectionAddress": "803761EC",
|
||||
"Name": "Recommended: Normal Lag Reduction",
|
||||
|
@@ -4273,19 +4273,18 @@ C222B044 00000006 #Online/Menus/TitleMenu/AllowSwapToSameSubmenu.asm
|
||||
7D8903A6 4E800420
|
||||
38600000 986DAFA2
|
||||
60000000 00000000
|
||||
C22299F0 00000019 #Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm
|
||||
2C030008 408200B8
|
||||
C22299F0 00000018 #Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm
|
||||
2C030008 408200B0
|
||||
886DAFA1 2C030000
|
||||
41820014 2C030001
|
||||
41820040 2C030002
|
||||
41820054 2C040000
|
||||
41820080 2C040001
|
||||
41820078 2C040002
|
||||
41820070 2C040003
|
||||
41820068 2C040005
|
||||
41820060 2C040006
|
||||
41820058 48000068
|
||||
2C040000 4182004C
|
||||
4182004C 2C040000
|
||||
41820078 2C040001
|
||||
41820070 2C040002
|
||||
41820068 2C040003
|
||||
41820060 2C040005
|
||||
41820058 2C040006
|
||||
41820050 48000060
|
||||
2C040004 41820044
|
||||
2C040006 4182003C
|
||||
4800004C 2C040000
|
||||
@@ -6865,6 +6864,76 @@ C03D000C FC020840
|
||||
BA8100B0 800100E4
|
||||
382100E0 7C0803A6
|
||||
60000000 00000000
|
||||
C20DB880 00000003 #External/PreventWobbling/Init Wobble Count Air.asm
|
||||
38600000 987D2384
|
||||
3860FFFF B07D2386
|
||||
8001005C 00000000
|
||||
C20DBBD4 00000003 #External/PreventWobbling/Init Wobble Count Ground.asm
|
||||
38600000 987D2384
|
||||
3860FFFF B07D2386
|
||||
8001005C 00000000
|
||||
C208F090 0000003D #External/PreventWobbling/Wobble Check.asm
|
||||
807B0010 2C0300DF
|
||||
418001D8 2C0300E4
|
||||
418101D0 807B1A58
|
||||
2C030000 418201C4
|
||||
8083002C 88842222
|
||||
5484077B 418201B4
|
||||
809B1868 7C032000
|
||||
41820034 A0A40000
|
||||
2C050006 4082019C
|
||||
80A4002C 80850518
|
||||
7C032000 4082018C
|
||||
A0650DA8 A09B2386
|
||||
7C032000 4182017C
|
||||
48000018 80A3002C
|
||||
A0652088 A09B2386
|
||||
7C032000 41820164
|
||||
B07B2386 887B2384
|
||||
38630001 987B2384
|
||||
3D808016 618CB168
|
||||
7D8903A6 4E800421
|
||||
2C030000 4082013C
|
||||
887B2384 2C030003
|
||||
40810130 7C0802A6
|
||||
90010004 9421FF20
|
||||
BE8100B0 829B1A58
|
||||
7E83A378 3D80800D
|
||||
618CA698 7D8903A6
|
||||
4E800421 8074002C
|
||||
8863000C 38800001
|
||||
3D808003 618C418C
|
||||
7D8903A6 4E800421
|
||||
2C030000 418200C4
|
||||
7C751B78 8095002C
|
||||
8804221F 54000673
|
||||
408200B0 88042219
|
||||
5400077B 408200A4
|
||||
88042071 5400E73E
|
||||
2C00000D 41820094
|
||||
80A400E0 2C050000
|
||||
4082001C 38800000
|
||||
3D80800D 618CA698
|
||||
7D8903A6 4E800421
|
||||
48000070 8075002C
|
||||
3D808007 618CD5D4
|
||||
7D8903A6 4E800421
|
||||
8075002C 80ADAEB4
|
||||
C0050374 C023002C
|
||||
FC200850 EC000072
|
||||
D0030080 C0050378
|
||||
D0030084 C0029700
|
||||
D0032340 C0229700
|
||||
C0429704 FC600890
|
||||
7EA3AB78 388000E6
|
||||
38A00000 38C00000
|
||||
3D808006 618C93AC
|
||||
7D8903A6 4E800421
|
||||
BA8100B0 800100E4
|
||||
382100E0 7C0803A6
|
||||
3D808008 618CF0C8
|
||||
7D8903A6 4E800420
|
||||
801B0010 00000000
|
||||
|
||||
$Recommended: Normal Lag Reduction [Hannes Mann]
|
||||
*Reduces input lag
|
||||
|
@@ -4272,19 +4272,18 @@ C222B044 00000006 #Online/Menus/TitleMenu/AllowSwapToSameSubmenu.asm
|
||||
7D8903A6 4E800420
|
||||
38600000 986DAFA2
|
||||
60000000 00000000
|
||||
C22299F0 00000019 #Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm
|
||||
2C030008 408200B8
|
||||
C22299F0 00000018 #Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm
|
||||
2C030008 408200B0
|
||||
886DAFA1 2C030000
|
||||
41820014 2C030001
|
||||
41820040 2C030002
|
||||
41820054 2C040000
|
||||
41820080 2C040001
|
||||
41820078 2C040002
|
||||
41820070 2C040003
|
||||
41820068 2C040005
|
||||
41820060 2C040006
|
||||
41820058 48000068
|
||||
2C040000 4182004C
|
||||
4182004C 2C040000
|
||||
41820078 2C040001
|
||||
41820070 2C040002
|
||||
41820068 2C040003
|
||||
41820060 2C040005
|
||||
41820058 2C040006
|
||||
41820050 48000060
|
||||
2C040004 41820044
|
||||
2C040006 4182003C
|
||||
4800004C 2C040000
|
||||
@@ -6864,6 +6863,76 @@ C03D000C FC020840
|
||||
BA8100B0 800100E4
|
||||
382100E0 7C0803A6
|
||||
60000000 00000000
|
||||
C20DB880 00000003 #External/PreventWobbling/Init Wobble Count Air.asm
|
||||
38600000 987D2384
|
||||
3860FFFF B07D2386
|
||||
8001005C 00000000
|
||||
C20DBBD4 00000003 #External/PreventWobbling/Init Wobble Count Ground.asm
|
||||
38600000 987D2384
|
||||
3860FFFF B07D2386
|
||||
8001005C 00000000
|
||||
C208F090 0000003D #External/PreventWobbling/Wobble Check.asm
|
||||
807B0010 2C0300DF
|
||||
418001D8 2C0300E4
|
||||
418101D0 807B1A58
|
||||
2C030000 418201C4
|
||||
8083002C 88842222
|
||||
5484077B 418201B4
|
||||
809B1868 7C032000
|
||||
41820034 A0A40000
|
||||
2C050006 4082019C
|
||||
80A4002C 80850518
|
||||
7C032000 4082018C
|
||||
A0650DA8 A09B2386
|
||||
7C032000 4182017C
|
||||
48000018 80A3002C
|
||||
A0652088 A09B2386
|
||||
7C032000 41820164
|
||||
B07B2386 887B2384
|
||||
38630001 987B2384
|
||||
3D808016 618CB168
|
||||
7D8903A6 4E800421
|
||||
2C030000 4082013C
|
||||
887B2384 2C030003
|
||||
40810130 7C0802A6
|
||||
90010004 9421FF20
|
||||
BE8100B0 829B1A58
|
||||
7E83A378 3D80800D
|
||||
618CA698 7D8903A6
|
||||
4E800421 8074002C
|
||||
8863000C 38800001
|
||||
3D808003 618C418C
|
||||
7D8903A6 4E800421
|
||||
2C030000 418200C4
|
||||
7C751B78 8095002C
|
||||
8804221F 54000673
|
||||
408200B0 88042219
|
||||
5400077B 408200A4
|
||||
88042071 5400E73E
|
||||
2C00000D 41820094
|
||||
80A400E0 2C050000
|
||||
4082001C 38800000
|
||||
3D80800D 618CA698
|
||||
7D8903A6 4E800421
|
||||
48000070 8075002C
|
||||
3D808007 618CD5D4
|
||||
7D8903A6 4E800421
|
||||
8075002C 80ADAEB4
|
||||
C0050374 C023002C
|
||||
FC200850 EC000072
|
||||
D0030080 C0050378
|
||||
D0030084 C0029700
|
||||
D0032340 C0229700
|
||||
C0429704 FC600890
|
||||
7EA3AB78 388000E6
|
||||
38A00000 38C00000
|
||||
3D808006 618C93AC
|
||||
7D8903A6 4E800421
|
||||
BA8100B0 800100E4
|
||||
382100E0 7C0803A6
|
||||
3D808008 618CF0C8
|
||||
7D8903A6 4E800420
|
||||
801B0010 00000000
|
||||
|
||||
$Recommended: Normal Lag Reduction [Hannes Mann]
|
||||
*Reduces input lag
|
||||
|
@@ -36,7 +36,7 @@
|
||||
{
|
||||
"type": "injectFolder",
|
||||
"sourceFolder": "External/PreventWobbling",
|
||||
"isRecursive": true,
|
||||
"isRecursive": false,
|
||||
"annotation": "Disable wobbling"
|
||||
}
|
||||
]
|
||||
|
@@ -20,7 +20,7 @@
|
||||
{
|
||||
"type": "injectFolder",
|
||||
"sourceFolder": "External/PreventWobbling",
|
||||
"isRecursive": true,
|
||||
"isRecursive": false,
|
||||
"annotation": "Disable wobbling"
|
||||
}
|
||||
]
|
||||
|
@@ -360,6 +360,12 @@
|
||||
"sourceFolder": "Common/PSCameraIndependentMonitor",
|
||||
"isRecursive": true,
|
||||
"annotation": "Avoids PS + Widescreen desyncs [Fizzi]"
|
||||
},
|
||||
{
|
||||
"type": "injectFolder",
|
||||
"sourceFolder": "External/PreventWobbling",
|
||||
"isRecursive": false,
|
||||
"annotation": "Disable wobbling [UnclePunch]"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
Reference in New Issue
Block a user