From 2b108292465aa61d880df7b8ee25ac79fdad2f88 Mon Sep 17 00:00:00 2001 From: intra0 Date: Thu, 12 Dec 2024 12:08:11 -0600 Subject: [PATCH 01/19] Delete xcx/ansio directory --- .../Enhancements/ansio/rules.txt | 118 ------------------ 1 file changed, 118 deletions(-) delete mode 100644 src/XenobladeChroniclesX/Enhancements/ansio/rules.txt diff --git a/src/XenobladeChroniclesX/Enhancements/ansio/rules.txt b/src/XenobladeChroniclesX/Enhancements/ansio/rules.txt deleted file mode 100644 index b277831d7..000000000 --- a/src/XenobladeChroniclesX/Enhancements/ansio/rules.txt +++ /dev/null @@ -1,118 +0,0 @@ -[Definition] -titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 -name = Anisotropic Filtering -path = "Xenoblade Chronicles X/Enhancements/Anisotropic Filtering" -description = Enables anisotropic filtering for ground, wall and vegetation textures to make them appear clearer when viewed from an angle.|Has a minimal performance impact. -version = 7 - -[Default] -#Defined seprately so that they can be change individually if desired -$anisomount = 1 -$anisorock = 1 -$anisosand = 1 -$anisotree = 1 -$anisolargeplant = 1 -$anisomidplant = 1 -$anisosmallplant = 1 - -[Preset] -category = "Anisotrophic Filtering Strength" -name = x1 (Default) - -[Preset] -category = "Anisotrophic Filtering Strength" -name = x2 -$anisomount = 2 -$anisorock = 2 -$anisosand = 2 -$anisotree = 2 -$anisolargeplant = 2 -$anisomidplant = 2 -$anisosmallplant = 2 - -[Preset] -category = "Anisotrophic Filtering Strength" -name = x4 -$anisomount = 4 -$anisorock = 4 -$anisosand = 4 -$anisotree = 4 -$anisolargeplant = 4 -$anisomidplant = 4 -$anisosmallplant = 4 - -[Preset] -category = "Anisotrophic Filtering Strength" -name = x8 -$anisomount = 8 -$anisorock = 8 -$anisosand = 8 -$anisotree = 8 -$anisolargeplant = 8 -$anisomidplant = 8 -$anisosmallplant = 8 - -[Preset] -category = "Anisotrophic Filtering Strength" -name = x16 (Recommended) -$anisomount = 16 -$anisorock = 16 -$anisosand = 16 -$anisotree = 16 -$anisolargeplant = 16 -$anisomidplant = 16 -$anisosmallplant = 16 - -[Preset] -category = "Anisotrophic Filtering Strength" -name = x32 (Overkill) -$anisomount = 32 -$anisorock = 32 -$anisosand = 32 -$anisotree = 32 -$anisolargeplant = 32 -$anisomidplant = 32 -$anisosmallplant = 32 - - -[TextureRedefine] # Mountain Textures -width = 2048 -height = 1024 -formats = 0x031 -overwriteAnisotropy = $anisomount - -[TextureRedefine] # Ground/Rock Textures -width = 1024 -height = 1024 -formats = 0x031 -overwriteAnisotropy = $anisorock - -[TextureRedefine] # Ground/Sand Textures -width = 512 -height = 512 -formats = 0x031 -overwriteAnisotropy = $anisosand - -[TextureRedefine] # Tree Textures -width = 128 -height = 512 -formats = 0x031 -overwriteAnisotropy = $anisotree - -[TextureRedefine] # Ground/Sand/Plant Textures -width = 256 -height = 256 -formats = 0x031 -overwriteAnisotropy = $anisolargeplant - -[TextureRedefine] # Grass/Plant Textures -width = 256 -height = 128 -formats = 0x031 -overwriteAnisotropy = $anisomidplant - -[TextureRedefine] # Grass/Plant Textures -width = 128 -height = 128 -formats = 0x033 -overwriteAnisotropy = $anisosmallplant From d40b672bace68670894334e1517246d48f2d8275 Mon Sep 17 00:00:00 2001 From: intra0 Date: Thu, 12 Dec 2024 12:14:24 -0600 Subject: [PATCH 02/19] Rename ansio folder to ansiotropic --- .../Enhancements/Anisotropic/rules.txt | 118 ++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 src/XenobladeChroniclesX/Enhancements/Anisotropic/rules.txt diff --git a/src/XenobladeChroniclesX/Enhancements/Anisotropic/rules.txt b/src/XenobladeChroniclesX/Enhancements/Anisotropic/rules.txt new file mode 100644 index 000000000..b277831d7 --- /dev/null +++ b/src/XenobladeChroniclesX/Enhancements/Anisotropic/rules.txt @@ -0,0 +1,118 @@ +[Definition] +titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 +name = Anisotropic Filtering +path = "Xenoblade Chronicles X/Enhancements/Anisotropic Filtering" +description = Enables anisotropic filtering for ground, wall and vegetation textures to make them appear clearer when viewed from an angle.|Has a minimal performance impact. +version = 7 + +[Default] +#Defined seprately so that they can be change individually if desired +$anisomount = 1 +$anisorock = 1 +$anisosand = 1 +$anisotree = 1 +$anisolargeplant = 1 +$anisomidplant = 1 +$anisosmallplant = 1 + +[Preset] +category = "Anisotrophic Filtering Strength" +name = x1 (Default) + +[Preset] +category = "Anisotrophic Filtering Strength" +name = x2 +$anisomount = 2 +$anisorock = 2 +$anisosand = 2 +$anisotree = 2 +$anisolargeplant = 2 +$anisomidplant = 2 +$anisosmallplant = 2 + +[Preset] +category = "Anisotrophic Filtering Strength" +name = x4 +$anisomount = 4 +$anisorock = 4 +$anisosand = 4 +$anisotree = 4 +$anisolargeplant = 4 +$anisomidplant = 4 +$anisosmallplant = 4 + +[Preset] +category = "Anisotrophic Filtering Strength" +name = x8 +$anisomount = 8 +$anisorock = 8 +$anisosand = 8 +$anisotree = 8 +$anisolargeplant = 8 +$anisomidplant = 8 +$anisosmallplant = 8 + +[Preset] +category = "Anisotrophic Filtering Strength" +name = x16 (Recommended) +$anisomount = 16 +$anisorock = 16 +$anisosand = 16 +$anisotree = 16 +$anisolargeplant = 16 +$anisomidplant = 16 +$anisosmallplant = 16 + +[Preset] +category = "Anisotrophic Filtering Strength" +name = x32 (Overkill) +$anisomount = 32 +$anisorock = 32 +$anisosand = 32 +$anisotree = 32 +$anisolargeplant = 32 +$anisomidplant = 32 +$anisosmallplant = 32 + + +[TextureRedefine] # Mountain Textures +width = 2048 +height = 1024 +formats = 0x031 +overwriteAnisotropy = $anisomount + +[TextureRedefine] # Ground/Rock Textures +width = 1024 +height = 1024 +formats = 0x031 +overwriteAnisotropy = $anisorock + +[TextureRedefine] # Ground/Sand Textures +width = 512 +height = 512 +formats = 0x031 +overwriteAnisotropy = $anisosand + +[TextureRedefine] # Tree Textures +width = 128 +height = 512 +formats = 0x031 +overwriteAnisotropy = $anisotree + +[TextureRedefine] # Ground/Sand/Plant Textures +width = 256 +height = 256 +formats = 0x031 +overwriteAnisotropy = $anisolargeplant + +[TextureRedefine] # Grass/Plant Textures +width = 256 +height = 128 +formats = 0x031 +overwriteAnisotropy = $anisomidplant + +[TextureRedefine] # Grass/Plant Textures +width = 128 +height = 128 +formats = 0x033 +overwriteAnisotropy = $anisosmallplant From 1e997e983f2e6a1dded917a48cb2ba9623f58d43 Mon Sep 17 00:00:00 2001 From: intra0 Date: Thu, 12 Dec 2024 12:23:00 -0600 Subject: [PATCH 03/19] Sugested changes for antialiasing fixes mispelling of compatible removes the `:` in the category names changes every `:float` to `:double` deletes credits comment at the bottom because it was already in the mods description --- .../Enhancements/AntiAliasing/rules.txt | 108 +++++++++--------- 1 file changed, 53 insertions(+), 55 deletions(-) diff --git a/src/XenobladeChroniclesX/Enhancements/AntiAliasing/rules.txt b/src/XenobladeChroniclesX/Enhancements/AntiAliasing/rules.txt index 7c643b9ff..526600725 100644 --- a/src/XenobladeChroniclesX/Enhancements/AntiAliasing/rules.txt +++ b/src/XenobladeChroniclesX/Enhancements/AntiAliasing/rules.txt @@ -8,9 +8,9 @@ version = 6 [Default] $Preset:int = 0 -$subPix:float = 0.75 -$edgeThreshold:float = 0.166 -$edgeThresholdMin:float = 0.0833 +$subPix:double = 0.75 +$edgeThreshold:double = 0.166 +$edgeThresholdMin:double = 0.0833 $FXAAQUALITYPRESET:int = 12 $FXAAGREENASLUMA:int = 0 $FXAADISCARD:int = 0 @@ -27,197 +27,197 @@ $Preset:int = 0 [Preset] -category = "FXAA sub-pixel aliasing removal:" +category = "FXAA sub-pixel aliasing removal" condition = $Preset == 2 name = "1.00 (upper limit, softer) (recommended)" default = 1 -$subPix:float = 1.00 +$subPix:double = 1.00 [Preset] -category = "FXAA sub-pixel aliasing removal:" +category = "FXAA sub-pixel aliasing removal" condition = $Preset == 2 name = "0.75 (default)" -$subPix:float = 0.75 +$subPix:double = 0.75 [Preset] -category = "FXAA sub-pixel aliasing removal:" +category = "FXAA sub-pixel aliasing removal" condition = $Preset == 2 name = "0.50 (lower limit, sharper, less sub-pixel aliasing removal)" -$subPix:float = 0.50 +$subPix:double = 0.50 [Preset] -category = "FXAA sub-pixel aliasing removal:" +category = "FXAA sub-pixel aliasing removal" condition = $Preset == 2 name = "0.25 (almost off)" -$subPix:float = 0.25 +$subPix:double = 0.25 [Preset] -category = "FXAA sub-pixel aliasing removal:" +category = "FXAA sub-pixel aliasing removal" condition = $Preset == 2 name = "0.00 (completely off)" -$subPix:float = 0.00 +$subPix:double = 0.00 [Preset] -category = "FXAA Edge detection threshold:" +category = "FXAA Edge detection threshold" condition = $Preset == 2 name = "0.333 (too little, faster)" -$edgeThreshold:float = 0.333 +$edgeThreshold:double = 0.333 [Preset] -category = "FXAA Edge detection threshold:" +category = "FXAA Edge detection threshold" condition = $Preset == 2 name = "0.250 (low quality)" -$edgeThreshold:float = 0.250 +$edgeThreshold:double = 0.250 [Preset] -category = "FXAA Edge detection threshold:" +category = "FXAA Edge detection threshold" condition = $Preset == 2 name = "0.166 (default)" -$edgeThreshold:float = 0.166 +$edgeThreshold:double = 0.166 [Preset] -category = "FXAA Edge detection threshold:" +category = "FXAA Edge detection threshold" condition = $Preset == 2 name = "0.125 (high quality) (recommended)" default = 1 -$edgeThreshold:float = 0.125 +$edgeThreshold:double = 0.125 [Preset] -category = "FXAA Edge detection threshold:" +category = "FXAA Edge detection threshold" condition = $Preset == 2 name = "0.063 (overkill, slower)" -$edgeThreshold:float = 0.063 +$edgeThreshold:double = 0.063 [Preset] -category = "FXAA Darkness threshold:" +category = "FXAA Darkness threshold" condition = $Preset == 2 name = "0.0833 (upper limit, the start of visible unfiltered edges) (default)" -$edgeThresholdMin:float = 0.0833 +$edgeThresholdMin:double = 0.0833 [Preset] -category = "FXAA Darkness threshold:" +category = "FXAA Darkness threshold" condition = $Preset == 2 name = "0.0625 (high quality, faster)" -$edgeThresholdMin:float = 0.0625 +$edgeThresholdMin:double = 0.0625 [Preset] -category = "FXAA Darkness threshold:" +category = "FXAA Darkness threshold" condition = $Preset == 2 name = "0.0312 (visible limit, slower)" -$edgeThresholdMin:float = 0.0312 +$edgeThresholdMin:double = 0.0312 [Preset] -category = "FXAA Darkness threshold:" +category = "FXAA Darkness threshold" condition = $Preset == 2 name = "0.0156 (overkill) (recommended)" default = 1 -$edgeThresholdMin:float = 0.0156 +$edgeThresholdMin:double = 0.0156 [Preset] -category = "FXAA Quality Preset:" +category = "FXAA Quality Preset" condition = $Preset == 2 name = "10 (default medium dither) (10=fastest)" $FXAAQUALITYPRESET:int = 10 [Preset] -category = "FXAA Quality Preset:" +category = "FXAA Quality Preset" condition = $Preset == 2 name = "11 (default medium dither)" $FXAAQUALITYPRESET:int = 11 [Preset] -category = "FXAA Quality Preset:" +category = "FXAA Quality Preset" condition = $Preset == 2 name = "12 (default medium dither) (default)" $FXAAQUALITYPRESET:int = 12 [Preset] -category = "FXAA Quality Preset:" +category = "FXAA Quality Preset" condition = $Preset == 2 name = "13 (default medium dither)" $FXAAQUALITYPRESET:int = 13 [Preset] -category = "FXAA Quality Preset:" +category = "FXAA Quality Preset" condition = $Preset == 2 name = "14 (default medium dither) (recommended)" default = 1 $FXAAQUALITYPRESET:int = 14 [Preset] -category = "FXAA Quality Preset:" +category = "FXAA Quality Preset" condition = $Preset == 2 name = "15 (default medium dither) (15=highest quality)" $FXAAQUALITYPRESET:int = 15 [Preset] -category = "FXAA Quality Preset:" +category = "FXAA Quality Preset" condition = $Preset == 2 name = "20 (less dither, more expensive) (20=fastest)" $FXAAQUALITYPRESET:int = 20 [Preset] -category = "FXAA Quality Preset:" +category = "FXAA Quality Preset" condition = $Preset == 2 name = "21 (less dither, more expensive)" $FXAAQUALITYPRESET:int = 21 [Preset] -category = "FXAA Quality Preset:" +category = "FXAA Quality Preset" condition = $Preset == 2 name = "22 (less dither, more expensive)" $FXAAQUALITYPRESET:int = 22 [Preset] -category = "FXAA Quality Preset:" +category = "FXAA Quality Preset" condition = $Preset == 2 name = "23 (less dither, more expensive)" $FXAAQUALITYPRESET:int = 23 [Preset] -category = "FXAA Quality Preset:" +category = "FXAA Quality Preset" condition = $Preset == 2 name = "24 (less dither, more expensive)" $FXAAQUALITYPRESET:int = 24 [Preset] -category = "FXAA Quality Preset:" +category = "FXAA Quality Preset" condition = $Preset == 2 name = "25 (less dither, more expensive)" $FXAAQUALITYPRESET:int = 25 [Preset] -category = "FXAA Quality Preset:" +category = "FXAA Quality Preset" condition = $Preset == 2 name = "26 (less dither, more expensive)" $FXAAQUALITYPRESET:int = 26 [Preset] -category = "FXAA Quality Preset:" +category = "FXAA Quality Preset" condition = $Preset == 2 name = "27 (less dither, more expensive)" $FXAAQUALITYPRESET:int = 27 [Preset] -category = "FXAA Quality Preset:" +category = "FXAA Quality Preset" condition = $Preset == 2 name = "28 (less dither, more expensive)" $FXAAQUALITYPRESET:int = 28 [Preset] -category = "FXAA Quality Preset:" +category = "FXAA Quality Preset" condition = $Preset == 2 name = "29 (less dither, more expensive) (29=highest quality)" $FXAAQUALITYPRESET:int = 29 [Preset] -category = "FXAA Quality Preset:" +category = "FXAA Quality Preset" condition = $Preset == 2 name = "39 (no dither, very expensive)" $FXAAQUALITYPRESET:int = 39 [Preset] -category = "FXAA Green As Luma:" +category = "FXAA Green As Luma" condition = $Preset == 2 name = "On (will turn off AA on anything which lacks some amount of green)" default = 1 @@ -225,19 +225,19 @@ $FXAAGREENASLUMA:int = 1 $FXAADISCARD:int = 0 [Preset] -category = "FXAA Green As Luma:" +category = "FXAA Green As Luma" condition = $Preset == 2 name = "Off" $FXAAGREENASLUMA:int = 0 [Preset] -category = "FXAA discard on pixels which don't need AA:" +category = "FXAA discard on pixels which don't need AA" condition = ($Preset == 2)*($FXAAGREENASLUMA == 0) == 1 -name = "On (not compatable with Green As Luma)" +name = "On (not compatible with Green As Luma)" $FXAADISCARD:int = 1 [Preset] -category = "FXAA discard on pixels which don't need AA:" +category = "FXAA discard on pixels which don't need AA" condition = ($Preset == 2)*($FXAAGREENASLUMA == 0) == 1 name = "Off" default = 1 @@ -276,5 +276,3 @@ $FXAADISCARD:int = 0 # Pure red and blue or combination of only R and B, will get no AA. # 1 = On. # 0 = Off. - -# Credits: Made by SkalFate, updated by Intra From 8ae204e32d5c18804aa9c831eb700dd9d1f5022f Mon Sep 17 00:00:00 2001 From: intra0 Date: Thu, 12 Dec 2024 12:23:56 -0600 Subject: [PATCH 04/19] Make sugested changes to Brightness Old changes "work arround" to "workaround" --- src/XenobladeChroniclesX/Workarounds/BrightnessOLD/rules.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/XenobladeChroniclesX/Workarounds/BrightnessOLD/rules.txt b/src/XenobladeChroniclesX/Workarounds/BrightnessOLD/rules.txt index 8fed68be2..7e6344394 100644 --- a/src/XenobladeChroniclesX/Workarounds/BrightnessOLD/rules.txt +++ b/src/XenobladeChroniclesX/Workarounds/BrightnessOLD/rules.txt @@ -2,7 +2,7 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 name = OLD Brightness Workaround path = "Xenoblade Chronicles X/Workarounds/Brightness OLD" -description = Old version of the brightness work arround.|The new version is *significantly* more accurate to Wii U but currently does not support gamma, glare, or lift modification. +description = Old version of the brightness workaround.|The new version is *significantly* more accurate to Wii U but currently does not support gamma, glare, or lift modification. #Credits: getdls version = 6 From 6f06c2c6b3953e73407f1233ebf73199c0215967 Mon Sep 17 00:00:00 2001 From: intra0 Date: Thu, 12 Dec 2024 12:26:19 -0600 Subject: [PATCH 05/19] Delete xcx/PhysicsJumpToTheMoon directory --- .../Mods/PhysicsJumpToTheMoon/patch_jump.asm | 52 ------ .../Mods/PhysicsJumpToTheMoon/rules.txt | 159 ------------------ 2 files changed, 211 deletions(-) delete mode 100644 src/XenobladeChroniclesX/Mods/PhysicsJumpToTheMoon/patch_jump.asm delete mode 100644 src/XenobladeChroniclesX/Mods/PhysicsJumpToTheMoon/rules.txt diff --git a/src/XenobladeChroniclesX/Mods/PhysicsJumpToTheMoon/patch_jump.asm b/src/XenobladeChroniclesX/Mods/PhysicsJumpToTheMoon/patch_jump.asm deleted file mode 100644 index a6a436e54..000000000 --- a/src/XenobladeChroniclesX/Mods/PhysicsJumpToTheMoon/patch_jump.asm +++ /dev/null @@ -1,52 +0,0 @@ -[XCX_MOONJUMP] -moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J -.origin = codecave -.int $landtype - -VarVelocityV: - .float $vert -VarVelocityH: - .float $horz - -_setVelocity: -lis r3, VarVelocityV@ha -lfs f30, VarVelocityV@l(r3) -fdivs f30, f1, f30 -blr - -_setHorizVelocity: -lis r4, VarVelocityH@ha -lfs f31, VarVelocityH@l(r4) -fmuls f1, f1, f31 -stfs f1, 0x18(r1) -blr - - -[XCX_MOONJUMP_V101E_V102U] -moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E -0x0264A700 = bla _setVelocity -0x0264AD40 = bla _setHorizVelocity - -; chr::CIL_BaseJump::decideLandingType((void)) -0x024714E0 = li r3, $landtype - -[XCX_MOONJUMP_V102J] -moduleMatches = 0x7672271D ; 1.0.2J -0x02649CDC = bla _setVelocity -0x0264A31C = bla _setHorizVelocity - -0x02470B20 = li r3, $landtype - -[XCX_MOONJUMP_V100U] -moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U -0x0264A690 = bla _setVelocity -0x0264ACD0 = bla _setHorizVelocity - -0x02471470 = li r3, $landtype - -[XCX_MOONJUMP_V100J] -moduleMatches = 0x785CA8A9 ; 1.0.0J -0x02649200 = bla _setVelocity -0x02649840 = bla _setHorizVelocity - -0x02470044 = li r3, $landtype diff --git a/src/XenobladeChroniclesX/Mods/PhysicsJumpToTheMoon/rules.txt b/src/XenobladeChroniclesX/Mods/PhysicsJumpToTheMoon/rules.txt deleted file mode 100644 index 83a41234c..000000000 --- a/src/XenobladeChroniclesX/Mods/PhysicsJumpToTheMoon/rules.txt +++ /dev/null @@ -1,159 +0,0 @@ -[Definition] -titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 -name = "Jump higher" -path = "Xenoblade Chronicles X/Mods/Physics/Jump to the Moon!" -description = Increase horizontal and vertical velocity of jump (Vanilla values are 1.0 for both). -version = 6 - -[Default] -$horz = 1.0 -$vert = 1.0 -$landtype = 4 - -[Preset] -name = "Distance x1.0 (default)" -category = "Horizontal Velocity (distance reached)" - -[Preset] -name = "Distance x1.5" -category = "Horizontal Velocity (distance reached)" -$horz = 1.5 - -[Preset] -name = "Distance x1.6" -category = "Horizontal Velocity (distance reached)" -$horz = 1.6 - -[Preset] -name = "Distance x1.7" -category = "Horizontal Velocity (distance reached)" -$horz = 1.7 - -[Preset] -name = "Distance x1.8" -category = "Horizontal Velocity (distance reached)" -$horz = 1.8 - -[Preset] -name = "Distance x1.9" -category = "Horizontal Velocity (distance reached)" -$horz = 1.9 - -[Preset] -name = "Distance x2.0" -category = "Horizontal Velocity (distance reached)" -$horz = 2.0 - -[Preset] -name = "Distance x2.5" -category = "Horizontal Velocity (distance reached)" -$horz = 2.5 - -[Preset] -name = "Distance x3.0" -category = "Horizontal Velocity (distance reached)" -$horz = 3.0 - -[Preset] -name = "Distance x5.0" -category = "Horizontal Velocity (distance reached)" -$horz = 5.0 - -[Preset] -name = "CHEAT x100.0" -category = "Horizontal Velocity (distance reached)" -$horz = 100.0 - -[Preset] -name = "Height x1.0 (default)" -category = "Vertical Velocity (height)" - -[Preset] -name = "Height x1.05" -category = "Vertical Velocity (height)" -$vert = 1.05 - -[Preset] -name = "Height x1.06" -category = "Vertical Velocity (height)" -$vert = 1.06 - -[Preset] -name = "Height x1.07" -category = "Vertical Velocity (height)" -$vert = 1.07 - -[Preset] -name = "Height x1.08" -category = "Vertical Velocity (height)" -$vert = 1.08 - -[Preset] -name = "Height x1.09" -category = "Vertical Velocity (height)" -$vert = 1.09 - -[Preset] -name = "Height x1.10" -category = "Vertical Velocity (height)" -$vert = 1.10 - -[Preset] -name = "Height x1.20" -category = "Vertical Velocity (height)" -$vert = 1.20 - -[Preset] -name = "Height x1.30" -category = "Vertical Velocity (height)" -$vert = 1.30 - -[Preset] -name = "Height x1.40" -category = "Vertical Velocity (height)" -$vert = 1.40 - -[Preset] -name = "Height x1.50" -category = "Vertical Velocity (height)" -$vert = 1.50 - -[Preset] -name = "CHEAT x18.0" -category = "Vertical Velocity (height)" -$vert = 18.0 - -[Preset] -name = "Step forward [6]" -category = "Landing type" -$landtype = 6 - -[Preset] -name = "Normal land [5]" -category = "Landing type" -$landtype = 5 - -[Preset] -name = "Short land [4]" -category = "Landing type" -default = 1 - -[Preset] -name = "Role [3]" -category = "Landing type" -$landtype = 3 - -[Preset] -name = "Full stop [2]" -category = "Landing type" -$landtype = 2 - -[Preset] -name = "Half stop [1]" -category = "Landing type" -$landtype = 1 - -[Preset] -name = "Never Land [0] (softlocks)" -category = "Landing type" -$landtype = 0 From a4d176f0b47cc816b793ad492007d416c37c11d8 Mon Sep 17 00:00:00 2001 From: intra0 Date: Thu, 12 Dec 2024 12:27:43 -0600 Subject: [PATCH 06/19] Rename Jump to the moon to Super High Jump Moon jump usually means being able to infinitly jump this mod just makes you jump high, so the name is missleading --- .../Mods/PhysicsSuperHighJump/patch_jump.asm | 47 ++++++ .../Mods/PhysicsSuperHighJump/rules.txt | 159 ++++++++++++++++++ src/XenobladeChroniclesX/Mods/readme.md | 4 +- 3 files changed, 208 insertions(+), 2 deletions(-) create mode 100644 src/XenobladeChroniclesX/Mods/PhysicsSuperHighJump/patch_jump.asm create mode 100644 src/XenobladeChroniclesX/Mods/PhysicsSuperHighJump/rules.txt diff --git a/src/XenobladeChroniclesX/Mods/PhysicsSuperHighJump/patch_jump.asm b/src/XenobladeChroniclesX/Mods/PhysicsSuperHighJump/patch_jump.asm new file mode 100644 index 000000000..02fe8a493 --- /dev/null +++ b/src/XenobladeChroniclesX/Mods/PhysicsSuperHighJump/patch_jump.asm @@ -0,0 +1,47 @@ +[XCX_HIGHJUMP] +moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J +.origin = codecave + +VarVelocityV: + .float $vert +VarVelocityH: + .float $horz + +_setVelocity: +lis r3, VarVelocityV@ha +lfs f30, VarVelocityV@l(r3) +fdivs f30, f1, f30 +blr + +_setHorizVelocity: +lis r4, VarVelocityH@ha +lfs f31, VarVelocityH@l(r4) +fmuls f1, f1, f31 +stfs f1, 0x18(r1) +blr + + +[XCX_HIGHJUMP_V101E_V102U] +moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E +0x0264A700 = bla _setVelocity +0x0264AD40 = bla _setHorizVelocity +; chr::CIL_BaseJump::decideLandingType((void)) +0x024714E0 = li r3, $landtype + +[XCX_HIGHJUMP_V102J] +moduleMatches = 0x7672271D ; 1.0.2J +0x02649CDC = bla _setVelocity +0x0264A31C = bla _setHorizVelocity +0x02470B20 = li r3, $landtype + +[XCX_HIGHJUMP_V100U] +moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U +0x0264A690 = bla _setVelocity +0x0264ACD0 = bla _setHorizVelocity +0x02471470 = li r3, $landtype + +[XCX_HIGHJUMP_V100J] +moduleMatches = 0x785CA8A9 ; 1.0.0J +0x02649200 = bla _setVelocity +0x02649840 = bla _setHorizVelocity +0x02470044 = li r3, $landtype diff --git a/src/XenobladeChroniclesX/Mods/PhysicsSuperHighJump/rules.txt b/src/XenobladeChroniclesX/Mods/PhysicsSuperHighJump/rules.txt new file mode 100644 index 000000000..915b5f381 --- /dev/null +++ b/src/XenobladeChroniclesX/Mods/PhysicsSuperHighJump/rules.txt @@ -0,0 +1,159 @@ +[Definition] +titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 +name = "Super High Jump!" +path = "Xenoblade Chronicles X/Mods/Physics/Super High Jump!" +description = Increase horizontal and vertical velocity of jump. +version = 6 + +[Default] +$horz = 1.0 +$vert = 1.0 +$landtype = 4 + +[Preset] +name = "Distance x1.0 (default)" +category = "Horizontal Velocity (distance reached)" + +[Preset] +name = "Distance x1.5" +category = "Horizontal Velocity (distance reached)" +$horz = 1.5 + +[Preset] +name = "Distance x1.6" +category = "Horizontal Velocity (distance reached)" +$horz = 1.6 + +[Preset] +name = "Distance x1.7" +category = "Horizontal Velocity (distance reached)" +$horz = 1.7 + +[Preset] +name = "Distance x1.8" +category = "Horizontal Velocity (distance reached)" +$horz = 1.8 + +[Preset] +name = "Distance x1.9" +category = "Horizontal Velocity (distance reached)" +$horz = 1.9 + +[Preset] +name = "Distance x2.0" +category = "Horizontal Velocity (distance reached)" +$horz = 2.0 + +[Preset] +name = "Distance x2.5" +category = "Horizontal Velocity (distance reached)" +$horz = 2.5 + +[Preset] +name = "Distance x3.0" +category = "Horizontal Velocity (distance reached)" +$horz = 3.0 + +[Preset] +name = "Distance x5.0" +category = "Horizontal Velocity (distance reached)" +$horz = 5.0 + +[Preset] +name = "CHEAT x100.0" +category = "Horizontal Velocity (distance reached)" +$horz = 100.0 + +[Preset] +name = "Height x1.0 (default)" +category = "Vertical Velocity (height)" + +[Preset] +name = "Height x1.05" +category = "Vertical Velocity (height)" +$vert = 1.05 + +[Preset] +name = "Height x1.06" +category = "Vertical Velocity (height)" +$vert = 1.06 + +[Preset] +name = "Height x1.07" +category = "Vertical Velocity (height)" +$vert = 1.07 + +[Preset] +name = "Height x1.08" +category = "Vertical Velocity (height)" +$vert = 1.08 + +[Preset] +name = "Height x1.09" +category = "Vertical Velocity (height)" +$vert = 1.09 + +[Preset] +name = "Height x1.10" +category = "Vertical Velocity (height)" +$vert = 1.10 + +[Preset] +name = "Height x1.20" +category = "Vertical Velocity (height)" +$vert = 1.20 + +[Preset] +name = "Height x1.30" +category = "Vertical Velocity (height)" +$vert = 1.30 + +[Preset] +name = "Height x1.40" +category = "Vertical Velocity (height)" +$vert = 1.40 + +[Preset] +name = "Height x1.50" +category = "Vertical Velocity (height)" +$vert = 1.50 + +[Preset] +name = "CHEAT x18.0" +category = "Vertical Velocity (height)" +$vert = 18.0 + +[Preset] +name = "Step forward [6]" +category = "Landing type" +$landtype = 6 + +[Preset] +name = "Normal land [5]" +category = "Landing type" +$landtype = 5 + +[Preset] +name = "Short land [4]" +category = "Landing type" +default = 1 + +[Preset] +name = "Role [3]" +category = "Landing type" +$landtype = 3 + +[Preset] +name = "Full stop [2]" +category = "Landing type" +$landtype = 2 + +[Preset] +name = "Half stop [1]" +category = "Landing type" +$landtype = 1 + +[Preset] +name = "Never Land [0] (softlocks)" +category = "Landing type" +$landtype = 0 diff --git a/src/XenobladeChroniclesX/Mods/readme.md b/src/XenobladeChroniclesX/Mods/readme.md index 531e00807..7234586c2 100644 --- a/src/XenobladeChroniclesX/Mods/readme.md +++ b/src/XenobladeChroniclesX/Mods/readme.md @@ -28,7 +28,7 @@ - **Character Level**: Can change any characters current level. - **Character Size**: Can change any characters size, and even has some glitch size values. - **Change Character Name**: Can change any characters name and can rename your avatar. -- **Unlock Character Arts**: Can unlock any or all arts and can force arts to be equiped, even multiple of the same art. +- **Unlock Character Arts**: Can unlock any or all arts and can force arts to be equiped, even multiple of the same art ### Collectibles mods - **Catch range mod**: Increase the distance from which you catch a collectible. @@ -101,7 +101,7 @@ - **No Skell Flight music**: Disables the flight music (at the beginning the music is awesome, but after some time I wanted to listen to the field musics again). ### Physics mods -- **Jump to the Moon!**: Increases the horizontal and vertical velocity of the jump (vanilla values are 1.0 for both). +- **Super High Jump!**: Increases the horizontal and vertical velocity of the jump (vanilla values are 1.0 for both). > Horizontal velocity is the distance you reach when jumping. > Vertical Velocity is the height of the jump (works while idle, walking and sprinting) - **Run Forrest, run!**: Increases the speed of sprinting. From 7cbe514ca5d3e3a16005f362f722ea27e990f104 Mon Sep 17 00:00:00 2001 From: intra0 Date: Thu, 12 Dec 2024 12:30:06 -0600 Subject: [PATCH 07/19] oops accidentially deleted a `.` --- src/XenobladeChroniclesX/Mods/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/XenobladeChroniclesX/Mods/readme.md b/src/XenobladeChroniclesX/Mods/readme.md index 7234586c2..bc5ca49eb 100644 --- a/src/XenobladeChroniclesX/Mods/readme.md +++ b/src/XenobladeChroniclesX/Mods/readme.md @@ -28,7 +28,7 @@ - **Character Level**: Can change any characters current level. - **Character Size**: Can change any characters size, and even has some glitch size values. - **Change Character Name**: Can change any characters name and can rename your avatar. -- **Unlock Character Arts**: Can unlock any or all arts and can force arts to be equiped, even multiple of the same art +- **Unlock Character Arts**: Can unlock any or all arts and can force arts to be equiped, even multiple of the same art. ### Collectibles mods - **Catch range mod**: Increase the distance from which you catch a collectible. From 5e675ad528ac4d65739dfd37836d98c1e2cba5b2 Mon Sep 17 00:00:00 2001 From: intra0 Date: Thu, 12 Dec 2024 12:57:37 -0600 Subject: [PATCH 08/19] Update XCX/Max Money Makes it so the user can change the max money ammount --- .../Mods/MaxMoney/patch_maxmoney.asm | 122 +++++++++--------- .../Mods/MaxMoney/rules.txt | 38 +++++- 2 files changed, 100 insertions(+), 60 deletions(-) diff --git a/src/XenobladeChroniclesX/Mods/MaxMoney/patch_maxmoney.asm b/src/XenobladeChroniclesX/Mods/MaxMoney/patch_maxmoney.asm index b522bba16..ba86c7420 100644 --- a/src/XenobladeChroniclesX/Mods/MaxMoney/patch_maxmoney.asm +++ b/src/XenobladeChroniclesX/Mods/MaxMoney/patch_maxmoney.asm @@ -1,87 +1,91 @@ [XCX_MAXMONEY_V101E_V102U] moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E +maxMoney = $maxAmount ; fw::Util::addMoney((int)) -0x027F6C28 = lis r12, 0x3B9B -0x027F6C30 = addi r12, r12, -0x3601 -0x027F6C3C = lis r3, 0x3B9B -0x027F6C40 = addi r3, r3, -0x3601 +0x027F6C28 = lis r12, maxMoney@ha +0x027F6C30 = addi r12, r12, maxMoney@l +0x027F6C3C = lis r3, maxMoney@ha +0x027F6C40 = addi r3, r3, maxMoney@l ; fw::Util::setMoney((unsigned int)) -0x027F6BA8 = lis r4, 0x3B9B -0x027F6BAC = addi r4, r4, -0x3601 +0x027F6BA8 = lis r4, maxMoney@ha +0x027F6BAC = addi r4, r4, maxMoney@l ; fw::Util::setTradeTicket((unsigned int)) -0x027F6D00 = lis r0, 0x3B9A -0x027F6D04 = ori r0, r0, 0xC9FF +0x027F6D00 = lis r0, maxMoney@ha +0x027F6D04 = addi r0, r0, maxMoney@l ; fw::Util::setMiranium((unsigned int)) -0x027F6D9C = lis r0, 0x3B9A -0x027F6DA0 = ori r0, r0, 0xC9FF +0x027F6D9C = lis r0, maxMoney@ha +0x027F6DA0 = addi r0, r0, maxMoney@l ; fw::Util::addMiranium((int)) -0x027F6DFC = lis r0, 0x3B9A -0x027F6E04 = ori r0, r0, 0xC9FF -0x027F6E14 = lis r12, 0x3B9B -0x027F6E18 = addi r12, r12, -0x3601 +0x027F6DFC = lis r0, maxMoney@ha +0x027F6E04 = addi r0, r0, maxMoney@l +0x027F6E14 = lis r12, maxMoney@ha +0x027F6E18 = addi r12, r12, maxMoney@l -[XCX_MAXMONEY_V102J] ; ########################################################### +[XCX_MAXMONEY_V102J] moduleMatches = 0x7672271D ; 1.0.2J +maxMoney = $maxAmount ; fw::Util::addMoney((int)) -0x027F47CC = lis r12, 0x3B9B -0x027F47D4 = addi r12, r12, -0x3601 -0x027F47E0 = lis r3, 0x3B9B -0x027F47E4 = addi r3, r3, -0x3601 +0x027F47CC = lis r12, maxMoney@ha +0x027F47D4 = addi r12, r12, maxMoney@l +0x027F47E0 = lis r3, maxMoney@ha +0x027F47E4 = addi r3, r3, maxMoney@l ; fw::Util::setMoney((unsigned int)) -0x027F474C = lis r4, 0x3B9B -0x027F4750 = addi r4, r4, -0x3601 +0x027F474C = lis r4, maxMoney@ha +0x027F4750 = addi r4, r4, maxMoney@l ; fw::Util::setTradeTicket((unsigned int)) -0x027f48A4 = lis r0, 0x3B9A -0x027f48A8 = ori r0, r0, 0xC9FF +0x027f48A4 = lis r0, maxMoney@ha +0x027f48A8 = addi r0, r0, maxMoney@l ; fw::Util::setMiranium((unsigned int)) -0x027F4940 = lis r0, 0x3B9A -0x027F4944 = ori r0, r0, 0xC9FF +0x027F4940 = lis r0, maxMoney@ha +0x027F4944 = addi r0, r0, maxMoney@l ; fw::Util::addMiranium((int)) -0x027F49A0 = lis r0, 0x3B9A -0x027f49A8 = ori r0, r0, 0xC9FF -0x027f49B8 = lis r12, 0x3B9B -0x027f49BC = addi r12, r12, -0x3601 +0x027F49A0 = lis r0, maxMoney@ha +0x027f49A8 = addi r0, r0, maxMoney@l +0x027f49B8 = lis r12, maxMoney@ha +0x027f49BC = addi r12, r12, maxMoney@l -[XCX_MAXMONEY_V100U] ; ########################################################### +[XCX_MAXMONEY_V100U] moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U +maxMoney = $maxAmount ; fw::Util::addMoney((int)) -0x027F6BAC = lis r12, 0x3B9B -0x027F6BB4 = addi r12, r12, -0x3601 -0x027F6BC0 = lis r3, 0x3B9B -0x027F6BC4 = addi r3, r3, -0x3601 +0x027F6BAC = lis r12, maxMoney@ha +0x027F6BB4 = addi r12, r12, maxMoney@l +0x027F6BC0 = lis r3, maxMoney@ha +0x027F6BC4 = addi r3, r3, maxMoney@l ; fw::Util::setMoney((unsigned int)) -0x027F6B2C = lis r4, 0x3B9B -0x027F6B30 = addi r4, r4, -0x3601 +0x027F6B2C = lis r4, maxMoney@ha +0x027F6B30 = addi r4, r4, maxMoney@l ; fw::Util::setTradeTicket((unsigned int)) -0x027F6C84 = lis r0, 0x3B9A -0x027F6C88 = ori r0, r0, 0xC9FF +0x027F6C84 = lis r0, maxMoney@ha +0x027F6C88 = addi r0, r0, maxMoney@l ; fw::Util::setMiranium((unsigned int)) -0x027F6D20 = lis r0, 0x3B9A -0x027F6D24 = ori r0, r0, 0xC9FF +0x027F6D20 = lis r0, maxMoney@ha +0x027F6D24 = addi r0, r0, maxMoney@l ; fw::Util::addMiranium((int)) -0x027F6D80 = lis r0, 0x3B9A -0x027F6D88 = ori r0, r0, 0xC9FF -0x027F6D98 = lis r12, 0x3B9B -0x027F6D9C = addi r12, r12, -0x3601 +0x027F6D80 = lis r0, maxMoney@ha +0x027F6D88 = addi r0, r0, maxMoney@l +0x027F6D98 = lis r12, maxMoney@ha +0x027F6D9C = addi r12, r12, maxMoney@l -[XCX_MAXMONEY_V100J] ; ########################################################### +[XCX_MAXMONEY_V100J] moduleMatches = 0x785CA8A9 ; 1.0.0J +maxMoney = $maxAmount ; fw::Util::addMoney((int)) -0x027F37A0 = lis r12, 0x3B9B -0x027F37A8 = addi r12, r12, -0x3601 -0x027F37B4 = lis r3, 0x3B9B -0x027F37B8 = addi r3, r3, -0x3601 +0x027F37A0 = lis r12, maxMoney@ha +0x027F37A8 = addi r12, r12, maxMoney@l +0x027F37B4 = lis r3, maxMoney@ha +0x027F37B8 = addi r3, r3, maxMoney@l ; fw::Util::setMoney((unsigned int)) -0x027F3720 = lis r4, 0x3B9B -0x027F3724 = addi r4, r4, -0x3601 +0x027F3720 = lis r4, maxMoney@ha +0x027F3724 = addi r4, r4, maxMoney@l ; fw::Util::setTradeTicket((unsigned int)) -0x027F3878 = lis r0, 0x3B9A -0x027F387C = ori r0, r0, 0xC9FF +0x027F3878 = lis r0, maxMoney@ha +0x027F387C = addi r0, r0, maxMoney@l ; fw::Util::setMiranium((unsigned int)) -0x027F3914 = lis r0, 0x3B9A -0x027F3918 = ori r0, r0, 0xC9FF +0x027F3914 = lis r0, maxMoney@ha +0x027F3918 = addi r0, r0, maxMoney@l ; fw::Util::addMiranium((int)) -0x027F3974 = lis r0, 0x3B9A -0x027F397C = ori r0, r0, 0xC9FF -0x027F398C = lis r12, 0x3B9B -0x027F3990 = addi r12, r12, -0x3601 +0x027F3974 = lis r0, maxMoney@ha +0x027F397C = addi r0, r0, maxMoney@l +0x027F398C = lis r12, maxMoney@ha +0x027F3990 = addi r12, r12, maxMoney@l diff --git a/src/XenobladeChroniclesX/Mods/MaxMoney/rules.txt b/src/XenobladeChroniclesX/Mods/MaxMoney/rules.txt index d91300971..7db12be2c 100644 --- a/src/XenobladeChroniclesX/Mods/MaxMoney/rules.txt +++ b/src/XenobladeChroniclesX/Mods/MaxMoney/rules.txt @@ -2,5 +2,41 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 name = "Max Money" path = "Xenoblade Chronicles X/Mods/Maximus/Max Money" -description = "Increase maximum money to 999 999 999." +description = "Increase (or decrease) the maximum money you can hold." version = 6 + +[Default] +$maxAmount = 0x3B9AC9FF #999999999 + +[Preset] +name = 0 +$maxAmount = 0 + +[Preset] +name = 9,999 +$maxAmount = 0x270F + +[Preset] +name = 99,999 +$maxAmount = 0x1869F + +[Preset] +name = 999,999 +$maxAmount = 0xF423F + +[Preset] +name = 9,999,999 +$maxAmount = 0x98967F + +[Preset] +name = 99,999,999 (Default) +$maxAmount = 0x5F5E0FF + +[Preset] +name = 999,999,999 (Recommended) +$maxAmount = 0x3B9AC9FF +default = 1 + +[Preset] +name = 2,140,000,000 #2147483647 risk negative money +$maxAmount = 0x7F8DCF00 From 99c0848fd1cc11cebb0a7fa7fd957730f8881f5c Mon Sep 17 00:00:00 2001 From: intra0 Date: Sun, 22 Dec 2024 16:01:49 -0600 Subject: [PATCH 09/19] make ticket multiplier more accurate to what it actually does 500000 in hex is 0x7a120. its used in a li instruction so it gets trimmed to 0xa120 which is a negative intiger. all negative intigers produce the exact same effect in this mod. this change just make the rules.txt say what the mod actually does --- src/XenobladeChroniclesX/Mods/BladeMoreTickets/rules.txt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/XenobladeChroniclesX/Mods/BladeMoreTickets/rules.txt b/src/XenobladeChroniclesX/Mods/BladeMoreTickets/rules.txt index 80a39b1ae..3bd379452 100644 --- a/src/XenobladeChroniclesX/Mods/BladeMoreTickets/rules.txt +++ b/src/XenobladeChroniclesX/Mods/BladeMoreTickets/rules.txt @@ -6,11 +6,12 @@ description = Increase the Tickets gained with Squad tasks and missions.|Uncappe version = 6 [Default] -$mult = 2 +$mult = 1 $uncap = 0 [Preset] name = "Gain more Tickets (x2)" +$mult = 2 [Preset] name = "Gain more Tickets (x3)" @@ -37,8 +38,8 @@ name = "Gain more Tickets (x1000)" $mult = 1000 [Preset] -name = "Respawn Global Nemesis Yggralith Zero (x500000)" -$mult = 500000 +name = "Respawn Global Nemesis Yggralith Zero (x-1)" +$mult = -1 [Preset] name = Yes From cc7f642ef67c1813549346406e070b3a6dad2d14 Mon Sep 17 00:00:00 2001 From: Intra Date: Mon, 23 Dec 2024 05:50:23 -0600 Subject: [PATCH 10/19] New tenstion point mod is a convienence mod, sets your TP to max when booting the game, because it resets to 0 everytime you save & quit has some other fun options as well --- .../Mods/BattleTensionPoints/patch_tp.asm | 42 +++++++++++++++++++ .../Mods/BattleTensionPoints/rules.txt | 31 ++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 src/XenobladeChroniclesX/Mods/BattleTensionPoints/patch_tp.asm create mode 100644 src/XenobladeChroniclesX/Mods/BattleTensionPoints/rules.txt diff --git a/src/XenobladeChroniclesX/Mods/BattleTensionPoints/patch_tp.asm b/src/XenobladeChroniclesX/Mods/BattleTensionPoints/patch_tp.asm new file mode 100644 index 000000000..29fda9bdf --- /dev/null +++ b/src/XenobladeChroniclesX/Mods/BattleTensionPoints/patch_tp.asm @@ -0,0 +1,42 @@ +[XCX_BootWithTP] +moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J +.origin = codecave +BoolBootWithTP: +.uint 0 + +_BootWithTP: +li r3, $everyloadingscreen +cmpwi r3, 0 +bne _applymaxTP +lis r3, BoolBootWithTP@ha +lwz r3, BoolBootWithTP@l(r3) +cmpwi r3, 0 +bne+ _BootWithTPExit +_applymaxTP: +lwz r3,0x98(r10) +stw r3,0x94(r10) +lis r3, BoolBootWithTP@ha +stw r3, BoolBootWithTP@l(r3) +_BootWithTPExit: +li r3, 1 +blr + +[XCX_BootWithTP_v101E_v102U] +moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E +0x02367C1C = bla _BootWithTP +0x025B50A4 = lwz r3,0x94+$memoffset(r12) + +[XCX_BootWithTP_v102J] +moduleMatches = 0x7672271D ; 1.0.2J +0x02367450 = bla _BootWithTP +0x025B4680 = lwz r3,0x94+$memoffset(r12) + +[XCX_BootWithTP_v100U] +moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U +0x02367BAC = bla _BootWithTP +0x025B5034 = lwz r3,0x94+$memoffset(r12) + +[XCX_BootWithTP_v100J] +moduleMatches = 0x785CA8A9 ; 1.0.0J +0x023672DC = bla _BootWithTP +0x025B3BA4 = lwz r3,0x94+$memoffset(r12) diff --git a/src/XenobladeChroniclesX/Mods/BattleTensionPoints/rules.txt b/src/XenobladeChroniclesX/Mods/BattleTensionPoints/rules.txt new file mode 100644 index 000000000..6f02eaa46 --- /dev/null +++ b/src/XenobladeChroniclesX/Mods/BattleTensionPoints/rules.txt @@ -0,0 +1,31 @@ +[Definition] +titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 +name = Boot with max TP +path = "Xenoblade Chronicles X/Mods/Battle/Start with max TP" +description = When ever you boot the game you'll have your current max TP (tension points) instead of 0.|Is a nice convienence option. +#Credits: Intra +version = 6 + +[Default] +$everyloadingscreen = 0 +$memoffset = 0 + +[Preset] +name = Max TP on boot +$everyloadingscreen = 0 + +[Preset] +name = Max TP Every time you skip travel or die +$everyloadingscreen = 1 + +[Preset] +name = CHEAT: Infinite TP +$memoffset = 4 + +[Preset] +name = CHALLENGE: No TP +$memoffset = -4 + +[Preset] +name = WEIRD: TP always equals HP +$memoffset = -0x10 From 9f4bf9a6006a6462e866c613f9a7332dba84b77e Mon Sep 17 00:00:00 2001 From: Intra Date: Tue, 31 Dec 2024 18:23:42 -0600 Subject: [PATCH 11/19] Delete BattleTensionPoints directory Going to make it, its own PR --- .../Mods/BattleTensionPoints/patch_tp.asm | 42 ------------------- .../Mods/BattleTensionPoints/rules.txt | 31 -------------- 2 files changed, 73 deletions(-) delete mode 100644 src/XenobladeChroniclesX/Mods/BattleTensionPoints/patch_tp.asm delete mode 100644 src/XenobladeChroniclesX/Mods/BattleTensionPoints/rules.txt diff --git a/src/XenobladeChroniclesX/Mods/BattleTensionPoints/patch_tp.asm b/src/XenobladeChroniclesX/Mods/BattleTensionPoints/patch_tp.asm deleted file mode 100644 index 29fda9bdf..000000000 --- a/src/XenobladeChroniclesX/Mods/BattleTensionPoints/patch_tp.asm +++ /dev/null @@ -1,42 +0,0 @@ -[XCX_BootWithTP] -moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J -.origin = codecave -BoolBootWithTP: -.uint 0 - -_BootWithTP: -li r3, $everyloadingscreen -cmpwi r3, 0 -bne _applymaxTP -lis r3, BoolBootWithTP@ha -lwz r3, BoolBootWithTP@l(r3) -cmpwi r3, 0 -bne+ _BootWithTPExit -_applymaxTP: -lwz r3,0x98(r10) -stw r3,0x94(r10) -lis r3, BoolBootWithTP@ha -stw r3, BoolBootWithTP@l(r3) -_BootWithTPExit: -li r3, 1 -blr - -[XCX_BootWithTP_v101E_v102U] -moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E -0x02367C1C = bla _BootWithTP -0x025B50A4 = lwz r3,0x94+$memoffset(r12) - -[XCX_BootWithTP_v102J] -moduleMatches = 0x7672271D ; 1.0.2J -0x02367450 = bla _BootWithTP -0x025B4680 = lwz r3,0x94+$memoffset(r12) - -[XCX_BootWithTP_v100U] -moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U -0x02367BAC = bla _BootWithTP -0x025B5034 = lwz r3,0x94+$memoffset(r12) - -[XCX_BootWithTP_v100J] -moduleMatches = 0x785CA8A9 ; 1.0.0J -0x023672DC = bla _BootWithTP -0x025B3BA4 = lwz r3,0x94+$memoffset(r12) diff --git a/src/XenobladeChroniclesX/Mods/BattleTensionPoints/rules.txt b/src/XenobladeChroniclesX/Mods/BattleTensionPoints/rules.txt deleted file mode 100644 index 6f02eaa46..000000000 --- a/src/XenobladeChroniclesX/Mods/BattleTensionPoints/rules.txt +++ /dev/null @@ -1,31 +0,0 @@ -[Definition] -titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 -name = Boot with max TP -path = "Xenoblade Chronicles X/Mods/Battle/Start with max TP" -description = When ever you boot the game you'll have your current max TP (tension points) instead of 0.|Is a nice convienence option. -#Credits: Intra -version = 6 - -[Default] -$everyloadingscreen = 0 -$memoffset = 0 - -[Preset] -name = Max TP on boot -$everyloadingscreen = 0 - -[Preset] -name = Max TP Every time you skip travel or die -$everyloadingscreen = 1 - -[Preset] -name = CHEAT: Infinite TP -$memoffset = 4 - -[Preset] -name = CHALLENGE: No TP -$memoffset = -4 - -[Preset] -name = WEIRD: TP always equals HP -$memoffset = -0x10 From 366efe1216664b373feb1166ba62d910cc053cd7 Mon Sep 17 00:00:00 2001 From: Intra Date: Tue, 31 Dec 2024 18:26:16 -0600 Subject: [PATCH 12/19] Update description in loottreasurequality there was recently someone who softlocked their save despite the warning that was already present, so making the warning even more visible. also adds a sentence explaing how forced = no works --- src/XenobladeChroniclesX/Mods/LootTreasureQuality/rules.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/XenobladeChroniclesX/Mods/LootTreasureQuality/rules.txt b/src/XenobladeChroniclesX/Mods/LootTreasureQuality/rules.txt index b5cb03642..f9179847d 100644 --- a/src/XenobladeChroniclesX/Mods/LootTreasureQuality/rules.txt +++ b/src/XenobladeChroniclesX/Mods/LootTreasureQuality/rules.txt @@ -2,7 +2,7 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 name = "Treasure Quality" path = "Xenoblade Chronicles X/Mods/Loot/Treasure Quality" -description = Select the preferred treasure quality you want to loot (see readme.txt for explanation).|Forced can make the story and/or sidequests impossible to complete. (Most key items come from silver treasures) +description = Select preferred treasure quality.|(if forced = no, then only overwrite if enemy drops no loot).||**FORCED = YES, CAN PERMANENTLY SOFTLOCK YOUR SAVE**|Key items come from silver treasures, so if the story enemy fails to drop a silver then you don't get the key item. version = 6 [Default] From 293d1904db821302497ee7cb8f39797e1f736a75 Mon Sep 17 00:00:00 2001 From: Intra Date: Sun, 5 Jan 2025 13:49:28 -0600 Subject: [PATCH 13/19] Add a custom option to enemy stats mod Tested and its working as intended. the non-custom options work the exact same as before, and the custom options both update in the enemy index, but also are very noticable in gameplay if you set them to the extreme 25% or 1000% --- .../Mods/BattleEnemyStats/patch_stats.asm | 125 +++- .../Mods/BattleEnemyStats/rules.txt | 537 +++++++++++++++++- 2 files changed, 639 insertions(+), 23 deletions(-) diff --git a/src/XenobladeChroniclesX/Mods/BattleEnemyStats/patch_stats.asm b/src/XenobladeChroniclesX/Mods/BattleEnemyStats/patch_stats.asm index 837808e1d..fb4cdaac2 100644 --- a/src/XenobladeChroniclesX/Mods/BattleEnemyStats/patch_stats.asm +++ b/src/XenobladeChroniclesX/Mods/BattleEnemyStats/patch_stats.asm @@ -1,20 +1,117 @@ -; ------------------------------------------------------------------------ -; WHO : calcEnParam__3cfsFPQ2_3cfs7SChrPrmUiT2 -; WHAT : Apply modificator on enemies stats (HP, Melee Attack, Melee Accuracy, Ranged Attack, Ranged Accuracy, Potential and Evasion) +[XCX_EnemyStats] +moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J +.origin = codecave -; 100% = 0.001 - default value -; 70% = 0.0007 -; 50% = 0.0005 -; 1% = 0.00001 ; GAME CRASH (enemis are too weak) +float_EnemyMeleeAttackMult: +.float $meleeatk +float_EnemyRangedAttackMult: +.float $rangedatk +float_EnemyPotentialMult: +.float $potential +float_EnemyEvasionMult: +.float $evasion +float_EnemyMeleeAccuracyMult: +.float $meleeacc +float_EnemyRangedAccuracyMult: +.float $rangedacc +float_EnemyHPMult: +.float $hp +float_EnemyOtherMult: +.float $other -[XCX_ENEMIESTATS_V101E_V102U_V100U] -moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07, 0xAB97DE6B, 0x676EB33E ; 1.0.1E, 1.0.2U, 1.0.0E, 1.0.1U, 1.0.0U -0x1003206C = .float $mod +EnemyStatsMultMeleeAttack: +lis r3, float_EnemyMeleeAttackMult@ha +lfs f31, float_EnemyMeleeAttackMult@l(r3) +or r3, r24, r24 +blr -[XCX_ENEMIESTATS_V102J] +EnemyStatsMultRangedAttack: +lis r3, float_EnemyRangedAttackMult@ha +lfs f31, float_EnemyRangedAttackMult@l(r3) +or r3, r24, r24 +blr + +EnemyStatsMultPotential: +lis r3, float_EnemyPotentialMult@ha +lfs f31, float_EnemyPotentialMult@l(r3) +or r3, r24, r24 +blr + +EnemyStatsMultEvasion: +lis r3, float_EnemyEvasionMult@ha +lfs f31, float_EnemyEvasionMult@l(r3) +or r3, r24, r24 +blr + +EnemyStatsMultMeleeAccuracy: +lis r3, float_EnemyMeleeAccuracyMult@ha +lfs f31, float_EnemyMeleeAccuracyMult@l(r3) +or r3, r24, r24 +blr + +EnemyStatsMultRangedAccuracy: +lis r3, float_EnemyRangedAccuracyMult@ha +lfs f31, float_EnemyRangedAccuracyMult@l(r3) +or r3, r23, r23 +blr + +EnemyStatsMultHP: +lis r3, float_EnemyHPMult@ha +lfs f31, float_EnemyHPMult@l(r3) +or r3, r24, r24 +blr + +EnemyStatsMultOther: +lis r9, float_EnemyOtherMult@ha +lfs f31, float_EnemyOtherMult@l(r9) +lis r9, 0x1003 +blr + +[XCX_EnemyStats_v101E_v102U] +moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E +;calcEnParam__3cfsFPQ2_3cfs7SChrPrmUiT2 +0x1003206C = .float $other +0x025D7280 = bla EnemyStatsMultHP +0x025D72C4 = bla EnemyStatsMultMeleeAttack +0x025D7300 = bla EnemyStatsMultRangedAttack +0x025D7344 = bla EnemyStatsMultPotential +0x025D7384 = bla EnemyStatsMultEvasion +0x025D73C0 = bla EnemyStatsMultMeleeAccuracy +0x025D73FC = bla EnemyStatsMultRangedAccuracy +0x025D7414 = bla EnemyStatsMultOther + +[XCX_EnemyStats_v102J] moduleMatches = 0x7672271D ; 1.0.2J -0x1003202C = .float $mod +0x1003202C = .float $other +0x025D685C = bla EnemyStatsMultHP +0x025D68A0 = bla EnemyStatsMultMeleeAttack +0x025D68DC = bla EnemyStatsMultRangedAttack +0x025D6920 = bla EnemyStatsMultPotential +0x025D6960 = bla EnemyStatsMultEvasion +0x025D699C = bla EnemyStatsMultMeleeAccuracy +0x025D69D8 = bla EnemyStatsMultRangedAccuracy +0x025D69F0 = bla EnemyStatsMultOther + +[XCX_EnemyStats_v100U] +moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U +0x1003206C = .float $other +0x025D7210 = bla EnemyStatsMultHP +0x025D7254 = bla EnemyStatsMultMeleeAttack +0x025D7290 = bla EnemyStatsMultRangedAttack +0x025D72D4 = bla EnemyStatsMultPotential +0x025D7314 = bla EnemyStatsMultEvasion +0x025D7350 = bla EnemyStatsMultMeleeAccuracy +0x025D738C = bla EnemyStatsMultRangedAccuracy +0x025D73A4 = bla EnemyStatsMultOther -[XCX_ENEMIESTATS_V100J] +[XCX_EnemyStats_v100J] moduleMatches = 0x785CA8A9 ; 1.0.0J -0x10031FDC = .float $mod +0x10031FDC = .float $other +0x025D5D80 = bla EnemyStatsMultHP +0x025D5DC4 = bla EnemyStatsMultMeleeAttack +0x025D5E00 = bla EnemyStatsMultRangedAttack +0x025D5E44 = bla EnemyStatsMultPotential +0x025D5E84 = bla EnemyStatsMultEvasion +0x025D5EC0 = bla EnemyStatsMultMeleeAccuracy +0x025D5EFC = bla EnemyStatsMultRangedAccuracy +0x025D5F14 = bla EnemyStatsMultOther diff --git a/src/XenobladeChroniclesX/Mods/BattleEnemyStats/rules.txt b/src/XenobladeChroniclesX/Mods/BattleEnemyStats/rules.txt index 250a764dd..c90d07cc1 100644 --- a/src/XenobladeChroniclesX/Mods/BattleEnemyStats/rules.txt +++ b/src/XenobladeChroniclesX/Mods/BattleEnemyStats/rules.txt @@ -3,43 +3,562 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 name = "Enemy Statistics modificator" path = "Xenoblade Chronicles X/Mods/Battle/Enemy Statistics modificator" description = Apply a percent modificator on enemies stats (HP, Melee Attack, Melee Accuracy, Ranged Attack, Ranged Accuracy, Potential and Evasion).|You can consult the new values in the Bestiary menu. +#Credits: lanyas3, intra version = 6 [Default] -$mod = 0.001 +$meleeatk = 0.001 +$rangedatk = 0.001 +$potential = 0.001 +$evasion = 0.001 +$meleeacc = 0.001 +$rangedacc = 0.001 +$hp = 0.001 +$other = 0.001 +$custom = 0 + +# 100% = 0.001 - default value +# 70% = 0.0007 +# 50% = 0.0005 +# 1% = 0.00001 ; GAME CRASH (enemis are too weak) [Preset] +category = All Enemy Stats name = "Set at 25%" -$mod = 0.00025 +$meleeatk = 0.00025 +$rangedatk = 0.00025 +$potential = 0.00025 +$evasion = 0.00025 +$meleeacc = 0.00025 +$rangedacc = 0.00025 +$hp = 0.00025 +$other = 0.00025 [Preset] +category = All Enemy Stats name = "Set at 50%" -$mod = 0.0005 +$meleeatk = 0.0005 +$rangedatk = 0.0005 +$potential = 0.0005 +$evasion = 0.0005 +$meleeacc = 0.0005 +$rangedacc = 0.0005 +$hp = 0.0005 +$other = 0.0005 [Preset] +category = All Enemy Stats name = "Set at 75%" -$mod = 0.00075 +$meleeatk = 0.00075 +$rangedatk = 0.00075 +$potential = 0.00075 +$evasion = 0.00075 +$meleeacc = 0.00075 +$rangedacc = 0.00075 +$hp = 0.00075 +$other = 0.00075 [Preset] +category = All Enemy Stats name = "Set at 100% (default)" default = 1 [Preset] +category = All Enemy Stats name = "Set at 125%" -$mod = 0.00125 +$meleeatk = 0.00125 +$rangedatk = 0.00125 +$potential = 0.00125 +$evasion = 0.00125 +$meleeacc = 0.00125 +$rangedacc = 0.00125 +$hp = 0.00125 +$other = 0.00125 [Preset] +category = All Enemy Stats name = "Set at 150%" -$mod = 0.0015 +$meleeatk = 0.0015 +$rangedatk = 0.0015 +$potential = 0.0015 +$evasion = 0.0015 +$meleeacc = 0.0015 +$rangedacc = 0.0015 +$hp = 0.0015 +$other = 0.0015 [Preset] +category = All Enemy Stats name = "Set at 200%" -$mod = 0.002 +$meleeatk = 0.002 +$rangedatk = 0.002 +$potential = 0.002 +$evasion = 0.002 +$meleeacc = 0.002 +$rangedacc = 0.002 +$hp = 0.002 +$other = 0.002 [Preset] +category = All Enemy Stats name = "Hell: Set at 300%" -$mod = 0.003 +$meleeatk = 0.003 +$rangedatk = 0.003 +$potential = 0.003 +$evasion = 0.003 +$meleeacc = 0.003 +$rangedacc = 0.003 +$hp = 0.003 +$other = 0.003 [Preset] +category = All Enemy Stats name = "Impossible: Set at 1000%" -$mod = 0.01 +$meleeatk = 0.01 +$rangedatk = 0.01 +$potential = 0.01 +$evasion = 0.003 #setting the evasion too high would just actually make it impossible +$meleeacc = 0.01 +$rangedacc = 0.01 +$hp = 0.01 +$other = 0.01 + +[Preset] +category = All Enemy Stats +name = "Custom" +$custom = 1 + +[Preset] +category = Enemy HP Stat +condition = $custom == 1 +name = "Set at 25% " +$hp = 0.00025 +$other = 0.00025 + +[Preset] +category = Enemy HP Stat +condition = $custom == 1 +name = "Set at 50% " +$hp = 0.0005 +$other = 0.0005 + +[Preset] +category = Enemy HP Stat +condition = $custom == 1 +name = "Set at 75% " +$hp = 0.00075 +$other = 0.00075 + +[Preset] +category = Enemy HP Stat +condition = $custom == 1 +name = "Set at 100% (default) " +default = 1 + +[Preset] +category = Enemy HP Stat +condition = $custom == 1 +name = "Set at 125% " +$hp = 0.00125 +$other = 0.00125 + +[Preset] +category = Enemy HP Stat +condition = $custom == 1 +name = "Set at 150% " +$hp = 0.0015 +$other = 0.0015 + +[Preset] +category = Enemy HP Stat +condition = $custom == 1 +name = "Set at 200% " +$hp = 0.002 +$other = 0.002 + +[Preset] +category = Enemy HP Stat +condition = $custom == 1 +name = "Hell: Set at 300% " +$hp = 0.003 +$other = 0.003 + +[Preset] +category = Enemy HP Stat +condition = $custom == 1 +name = "Impossible: Set at 1000% " +$hp = 0.01 +$other = 0.01 + +[Preset] +category = Enemy Melee Attack Stat +condition = $custom == 1 +name = "Set at 25% " +$meleeatk = 0.00025 + +[Preset] +category = Enemy Melee Attack Stat +condition = $custom == 1 +name = "Set at 50% " +$meleeatk = 0.0005 + +[Preset] +category = Enemy Melee Attack Stat +condition = $custom == 1 +name = "Set at 75% " +$meleeatk = 0.00075 + +[Preset] +category = Enemy Melee Attack Stat +condition = $custom == 1 +name = "Set at 100% (default) " +default = 1 + +[Preset] +category = Enemy Melee Attack Stat +condition = $custom == 1 +name = "Set at 125% " +$meleeatk = 0.00125 + +[Preset] +category = Enemy Melee Attack Stat +condition = $custom == 1 +name = "Set at 150% " +$meleeatk = 0.0015 + +[Preset] +category = Enemy Melee Attack Stat +condition = $custom == 1 +name = "Set at 200% " +$meleeatk = 0.002 + +[Preset] +category = Enemy Melee Attack Stat +condition = $custom == 1 +name = "Hell: Set at 300% " +$meleeatk = 0.003 + +[Preset] +category = Enemy Melee Attack Stat +condition = $custom == 1 +name = "Impossible: Set at 1000% " +$meleeatk = 0.01 + +[Preset] +category = Enemy Melee Accuracy Stat +condition = $custom == 1 +name = "Set at 25% " +$meleeacc = 0.00025 + +[Preset] +category = Enemy Melee Accuracy Stat +condition = $custom == 1 +name = "Set at 50% " +$meleeacc = 0.0005 + +[Preset] +category = Enemy Melee Accuracy Stat +condition = $custom == 1 +name = "Set at 75% " +$meleeacc = 0.00075 + +[Preset] +category = Enemy Melee Accuracy Stat +condition = $custom == 1 +name = "Set at 100% (default) " +default = 1 + +[Preset] +category = Enemy Melee Accuracy Stat +condition = $custom == 1 +name = "Set at 125% " +$meleeacc = 0.00125 + +[Preset] +category = Enemy Melee Accuracy Stat +condition = $custom == 1 +name = "Set at 150% " +$meleeacc = 0.0015 + +[Preset] +category = Enemy Melee Accuracy Stat +condition = $custom == 1 +name = "Set at 200% " +$meleeacc = 0.002 + +[Preset] +category = Enemy Melee Accuracy Stat +condition = $custom == 1 +name = "Hell: Set at 300% " +$meleeacc = 0.003 + +[Preset] +category = Enemy Melee Accuracy Stat +condition = $custom == 1 +name = "Impossible: Set at 1000% " +$meleeacc = 0.01 + +[Preset] +category = Enemy Ranged Attack Stat +condition = $custom == 1 +name = "Set at 25% " +$rangedatk = 0.00025 + +[Preset] +category = Enemy Ranged Attack Stat +condition = $custom == 1 +name = "Set at 50% " +$rangedatk = 0.0005 + +[Preset] +category = Enemy Ranged Attack Stat +condition = $custom == 1 +name = "Set at 75% " +$rangedatk = 0.00075 + +[Preset] +category = Enemy Ranged Attack Stat +condition = $custom == 1 +name = "Set at 100% (default) " +default = 1 + +[Preset] +category = Enemy Ranged Attack Stat +condition = $custom == 1 +name = "Set at 125% " +$rangedatk = 0.00125 + +[Preset] +category = Enemy Ranged Attack Stat +condition = $custom == 1 +name = "Set at 150% " +$rangedatk = 0.0015 + +[Preset] +category = Enemy Ranged Attack Stat +condition = $custom == 1 +name = "Set at 200% " +$rangedatk = 0.002 + +[Preset] +category = Enemy Ranged Attack Stat +condition = $custom == 1 +name = "Hell: Set at 300% " +$rangedatk = 0.003 + +[Preset] +category = Enemy Ranged Attack Stat +condition = $custom == 1 +name = "Impossible: Set at 1000% " +$rangedatk = 0.01 + +[Preset] +category = Enemy Ranged Accuracy Stat +condition = $custom == 1 +name = "Set at 25% " +$rangedacc = 0.00025 + +[Preset] +category = Enemy Ranged Accuracy Stat +condition = $custom == 1 +name = "Set at 50% " +$rangedacc = 0.0005 + +[Preset] +category = Enemy Ranged Accuracy Stat +condition = $custom == 1 +name = "Set at 75% " +$rangedacc = 0.00075 + +[Preset] +category = Enemy Ranged Accuracy Stat +condition = $custom == 1 +name = "Set at 100% (default) " +default = 1 + +[Preset] +category = Enemy Ranged Accuracy Stat +condition = $custom == 1 +name = "Set at 125% " +$rangedacc = 0.00125 + +[Preset] +category = Enemy Ranged Accuracy Stat +condition = $custom == 1 +name = "Set at 150% " +$rangedacc = 0.0015 + +[Preset] +category = Enemy Ranged Accuracy Stat +condition = $custom == 1 +name = "Set at 200% " +$rangedacc = 0.002 + +[Preset] +category = Enemy Ranged Accuracy Stat +condition = $custom == 1 +name = "Hell: Set at 300% " +$rangedacc = 0.003 + +[Preset] +category = Enemy Ranged Accuracy Stat +condition = $custom == 1 +name = "Impossible: Set at 1000% " +$rangedacc = 0.01 + +[Preset] +category = Enemy Potential Stat +condition = $custom == 1 +name = "Set at 25% " +$potential = 0.00025 + +[Preset] +category = Enemy Potential Stat +condition = $custom == 1 +name = "Set at 50% " +$potential = 0.0005 + +[Preset] +category = Enemy Potential Stat +condition = $custom == 1 +name = "Set at 75% " +$potential = 0.00075 + +[Preset] +category = Enemy Potential Stat +condition = $custom == 1 +name = "Set at 100% (default) " +default = 1 + +[Preset] +category = Enemy Potential Stat +condition = $custom == 1 +name = "Set at 125% " +$potential = 0.00125 + +[Preset] +category = Enemy Potential Stat +condition = $custom == 1 +name = "Set at 150% " +$potential = 0.0015 + +[Preset] +category = Enemy Potential Stat +condition = $custom == 1 +name = "Set at 200% " +$potential = 0.002 + +[Preset] +category = Enemy Potential Stat +condition = $custom == 1 +name = "Hell: Set at 300% " +$potential = 0.003 + +[Preset] +category = Enemy Potential Stat +condition = $custom == 1 +name = "Impossible: Set at 1000% " +$potential = 0.01 + +[Preset] +category = Enemy Evasion Stat +condition = $custom == 1 +name = "Set at 25% " +$evasion = 0.00025 + +[Preset] +category = Enemy Evasion Stat +condition = $custom == 1 +name = "Set at 50% " +$evasion = 0.0005 + +[Preset] +category = Enemy Evasion Stat +condition = $custom == 1 +name = "Set at 75% " +$evasion = 0.00075 + +[Preset] +category = Enemy Evasion Stat +condition = $custom == 1 +name = "Set at 100% (default) " +default = 1 + +[Preset] +category = Enemy Evasion Stat +condition = $custom == 1 +name = "Set at 125% " +$evasion = 0.00125 + +[Preset] +category = Enemy Evasion Stat +condition = $custom == 1 +name = "Set at 150% " +$evasion = 0.0015 + +[Preset] +category = Enemy Evasion Stat +condition = $custom == 1 +name = "Set at 200% " +$evasion = 0.002 + +[Preset] +category = Enemy Evasion Stat +condition = $custom == 1 +name = "Hell: Set at 300% " +$evasion = 0.003 + +#remember to remove the $other from Enemy HP Stats when uncommenting +#[Preset] +#category = Enemy Other Stats +#condition = $custom == 1 +#name = "Set at 25% " +#$other = 0.00025 +# +#[Preset] +#category = Enemy Other Stats +#condition = $custom == 1 +#name = "Set at 50% " +#$other = 0.0005 +# +#[Preset] +#category = Enemy Other Stats +#condition = $custom == 1 +#name = "Set at 75% " +#$other = 0.00075 +# +#[Preset] +#category = Enemy Other Stats +#condition = $custom == 1 +#name = "Set at 100% (default) " +#default = 1 +# +#[Preset] +#category = Enemy Other Stats +#condition = $custom == 1 +#name = "Set at 125% " +#$other = 0.00125 +# +#[Preset] +#category = Enemy Other Stats +#condition = $custom == 1 +#name = "Set at 150% " +#$other = 0.0015 +# +#[Preset] +#category = Enemy Other Stats +#condition = $custom == 1 +#name = "Set at 200% " +#$other = 0.002 +# +#[Preset] +#category = Enemy Other Stats +#condition = $custom == 1 +#name = "Hell: Set at 300% " +#$other = 0.003 +# +#[Preset] +#category = Enemy Other Stats +#condition = $custom == 1 +#name = "Impossible: Set at 1000% " +#$other = 0.01 From e755dca1443067dca35f9ffe6942ad8815131275 Mon Sep 17 00:00:00 2001 From: Intra Date: Thu, 9 Jan 2025 12:09:25 -0600 Subject: [PATCH 14/19] fix for exp mult and level change mod adds a x0 option to the exp mult so that when changing your level you can keep it there also stylictic changes to all the mult mods, and renaming the default camera distance mod also added a document to the change level mod --- .../Mods/CharacterLevel/patch_level.asm | 14 +- .../Mods/CharacterLevel/readme.txt | 247 ++++++++++++++++++ .../Mods/CharacterLevel/rules.txt | 96 +++---- .../ExpBattlePointsX/patch_exp_battle.asm | 31 +-- .../Mods/ExpBattlePointsX/rules.txt | 14 +- .../Mods/ExpBladePointsX/patch_exp_blade.asm | 20 +- .../Mods/ExpBladePointsX/rules.txt | 14 +- .../ExpClassExpPointsX/patch_exp_class.asm | 30 +-- .../Mods/ExpClassExpPointsX/rules.txt | 14 +- .../ExpFriendsPointsX/patch_exp_friend.asm | 14 +- .../Mods/ExpFriendsPointsX/rules.txt | 7 +- .../Mods/ExpInnerExpPointsX/patch_exp.asm | 33 +-- .../Mods/ExpInnerExpPointsX/rules.txt | 8 +- .../GraphicsCameraDistance/patch_camera.asm | 10 +- .../Mods/GraphicsCameraDistance/rules.txt | 8 +- 15 files changed, 405 insertions(+), 155 deletions(-) create mode 100644 src/XenobladeChroniclesX/Mods/CharacterLevel/readme.txt diff --git a/src/XenobladeChroniclesX/Mods/CharacterLevel/patch_level.asm b/src/XenobladeChroniclesX/Mods/CharacterLevel/patch_level.asm index 91018369e..a1bac3989 100644 --- a/src/XenobladeChroniclesX/Mods/CharacterLevel/patch_level.asm +++ b/src/XenobladeChroniclesX/Mods/CharacterLevel/patch_level.asm @@ -3,6 +3,7 @@ moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x67 .origin = codecave ; get lv 027e14f ; get exp 027e1504 ; set lv 027e1510 ; set exp 027e151c +; 1b77a520 _levelMemorJP100: ;reads from the static address that stores the address for the start of character info memory section @@ -31,24 +32,29 @@ _charLevelCheat: ; Character Level li r4, $level stb r4, $memoffset (r3) +; Character exp +exp = $exp +lis r4, exp@ha +addi r4, r4, exp@l +stw r4, $memoffset+2 (r3) ;fixes the line we over wrote addi r3,r1,0x8 blr -[XCX_Level_V101E_V102U] +[XCX_Level_v101E_v102U] moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E ; Our code applies when the reqMenuCreateParty function is used 0x023429F0 = bla _levelMemorEU101US102 -[XCX_Level_V102J] +[XCX_Level_v102J] moduleMatches = 0x7672271D ; 1.0.2J 0x02342224 = bla _levelMemorJP102 -[XCX_Level_V100U] +[XCX_Level_v100U] moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U 0x02342980 = bla _levelMemorUS100 -[XCX_Level_V100J] +[XCX_Level_v100J] moduleMatches = 0x785CA8A9 ; 1.0.0J 0x023420B0 = bla _levelMemorJP100 diff --git a/src/XenobladeChroniclesX/Mods/CharacterLevel/readme.txt b/src/XenobladeChroniclesX/Mods/CharacterLevel/readme.txt new file mode 100644 index 000000000..de1b53dfd --- /dev/null +++ b/src/XenobladeChroniclesX/Mods/CharacterLevel/readme.txt @@ -0,0 +1,247 @@ +this file is documenting all the data about a character that can be changed. +fell free to use this document to help make your own character mods +credits to googlebonker for originally making this document + +The addresses listed are Wii U addresses. +The exact address in cemu changes from update to update +but in 2.4 is 1B77A5C8 and in other versions will be near that address + +1C38E5C8 AAAAAAAA AAAAAAAA +1C38E5D0 AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA +1C38E5E0 AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA +1C38E5F0 AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA +1C38E600 AAAAAAAA AAAAAAAA AAAABBCC DDDDEEEE +1C38E610 FFFFGGHH IIJJKKKK LLLLMMMM NNNNOOOO +1C38E620 PPPPQQQQ RRRRSSSS TTTTUUUU VVVVWWWW +1C38E630 XXXXXXXX YYYYYYYY ZZZZZZZZ AAAAAAAA +1C38E640 BBCCDDEE FFFFFFFF GGGGHHHH IIIIJJJJ +1C38E650 KKKKLLLL MMMMNNNN OOOOPPPP QQQQRRRR +1C38E660 SSSSTTTT UUUUVVVV WWWWXXXX YYYYZZZZ +1C38E670 AAAABBBB CCCCDDDD EEEEFFFF GGGGHHHH +1C38E680 IIIIJJJJ KKKKLLLL MMMMNNNN OOOOPPPP +1C38E690 QQQQRRRR SSSSTTTT UUUUVVVV WWWWXXXX +1C38E6A0 YYYYZZZZ AAAABBBB CCCCDDDD EEEEFFFF +1C38E6B0 GGGGHHHH IIIIJJJJ KKKKLLLL MMMMNNNN +1C38E6C0 OOOOPPPP QQQQRRRR SSSSTTTT UUUUVVVV +1C38E6D0 WWWWXXXX YYYYZZZZ AAAABBBB CCCCDDDD +1C38E6E0 EEEEFFFF GGGGHHHH IIIIJJJJ KKKKLLLL +1C38E6F0 MMNNOOPP QQQQRRSS TTUUVVWW XXYYZZAA +1C38E700 BBCCDDEE FFGGHHII JJKKLLMM NNOOPPQQ +1C38E710 RRRRSSSS TTTTUUUU VVVVWWWW XXXXYYYY +1C38E720 ZZZZAAAA BBBBCCCC DDDDEEEE FFFFGGG +1C38E730 HHHHIIII JJJJKKKK LLLLLLLL + + +1C38E5C8 +A Avatar name +B A 67th unusable character slot. The game always puts "00" after your avatar's name, but the next slot (CC) that would be used for "00" is used to count the characters in your avatar's name. Anything besides "00" in this space will crash your game and cause it to reload. +C Avatar name character count. This automatically readjusts if you try to change it. +D Base Face +E Hair > Style +F Hair > Special (Hair > Specials only go with the corresponding Hair > Style. If you mismatch these, the game will crash and cause it to reload. 00 is always off.) +G Skin > Moles +H Skin > Freckles +I Skin > Cheeks +J Skin > Scars +K Make up > Face Paint +L Eyes > Pupils +M Body Gender (01 male, 02 female) +N ???? +O Voice +P Skin > Color +Q Makeup > Lips +R Makeup > Eye Shadow +S Eyes > Color 1 (iris) +T Eyes > Color 2 (pupil) +U Hair > Roots Color +V Hair > Tips Color +W ???? +X Height +Y Breast Depth (only works on female bodies) (maximum is 400000000. Setting this value to FF800001 or higher will cause your character's breasts to disappear) +Z Breast Height (only works on female bodies) (maximum is 400000000. Setting +this value to FF800001 or higher will cause your character's breasts to disappear) + +1C38E63C +A Breast Width (only works on female bodies) (maximum is 400000000. Setting this value to FF800001 or higher will cause your character's breasts to disappear) +B Protagonist presence (WARNING! Glitchy!) +C Something about a Skell? +D Character level (Warning! Glitchy!) +E ???? +F Character experience on the level +G Ranged Weapon +H Ranged Weapon Trait 1 +I Ranged Weapon Trait 2 +J Ranged Weapon Trait 3 +K Ranged Weapon Augment 1 +L Ranged Weapon Augment 2 +M Ranged Weapon Augment 3 +N Melee Weapon +O Melee Weapon Trait 1 +P Melee Weapon Trait 2 +Q Melee Weapon Trait 3 +R Melee Weapon Augment 1 +S Melee Weapon Augment 2 +T Melee Weapon Augment 3 +U Body Armor +V Body Armor Trait 1 +W Body Armor Trait 2 +X Body Armor Trait 3 +Y Body Armor Augment 1 +Z Body Armor Augment 2 + +1C38E670 +A Body Armor Augment 3 +B Head Armor +C Head Armor Trait 1 +D Head Armor Trait 2 +E Head Armor Trait 3 +F Head Armor Augment 1 +G Head Armor Augment 2 +H Head Armor Augment 3 +I Arm Armor R +J Arm Armor R Trait 1 +K Arm Armor R Trait 2 +L Arm Armor R Trait 3 +M Arm Armor R Augment 1 +N Arm Armor R Augment 2 +O Arm Armor R Augment 3 +P Arm Armor L +Q Arm Armor L Trait 1 +R Arm Armor L Trait 2 +S Arm Armor L Trait 3 +T Arm Armor L Augment 1 +U Arm Armor L Augment 2 +V Arm Armor L Augment 3 +W Leg Armor +X Leg Armor Trait 1 +Y Leg Armor Trait 2 +Z Leg Armor Trait 3 + +1C38E6A4 +A Leg Armor Augment 1 +B Leg Armor Augment 2 +C Leg Armor Augment 3 +D Body Fashion +E Body Fashion Trait 1 +F Body Fashion Trait 2 +G Body Fashion Trait 3 +H Body Fashion Augment 1 +I Body Fashion Augment 2 +J Body Fashion Augment 3 +K Head Fashion +L Head Fashion Trait 1 +M Head Fashion Trait 2 +N Head Fashion Trait 3 +O Head Fashion Augment 1 +P Head Fashion Augment 2 +Q Head Fashion Augment 3 +R Arm Fashion R +S Arm Fashion R Trait 1 +T Arm Fashion R Trait 2 +U Arm Fashion R Trait 3 +V Arm Fashion R Augment 1 +W Arm Fashion R Augment 2 +X Arm Fashion R Augment 3 +Y Arm Fashion L +Z Arm Fashion L Trait 1 + +1C38E6D8 +A Arm Fashion L Trait 2 +B Arm Fashion L Trait 3 +C Arm Fashion L Augment 1 +D Arm Fashion L Augment 2 +E Arm Fashion L Augment 3 +F Leg Fashion +G Leg Fashion Trait 1 +H Leg Fashion Trait 2 +I Leg Fashion Trait 3 +J Leg Fashion Augment 1 +K Leg Fashion Augment 2 +L Leg Fashion Augment 3 +M Class (invalid Classes will crash the game and cause it to reload) +N ???? +O Class Level +P ???? +Q Class experience on the level +R Arts Palette Slot 4 +S Arts Palette Slot 4 Art Level +T Arts Palette Slot 3 +U Arts Palette Slot 3 Art Level +V Arts Palette Slot 2 +W Arts Palette Slot 2 Art Level +X Arts Palette Slot 1 +Y Arts Palette Slot 1 Art Level +Z Arts Palette Slot 8 + +1C38E703 +A Arts Palette Slot 8 Art Level +B Arts Palette Slot 7 +C Arts Palette Slot 7 Art Level +D Arts Palette Slot 6 +E Arts Palette Slot 6 Art Level +F Arts Palette Slot 5 +G Arts Palette Slot 5 Art Level +H Assigned Skills Slot 1 +I Assigned Skills Slot 1 Skill Level +J Assigned Skills Slot 2 +K Assigned Skills Slot 2 Skill Level +L Assigned Skills Slot 3 +M Assigned Skills Slot 3 Skill Level +N Assigned Skills Slot 4 +O Assigned Skills Slot 4 Skill Level +P Assigned Skills Slot 5 +Q Assigned Skills Slot 5 Skill Level +R Soul Voice Custom Voice 1 Category +S Soul Voice Custom Voice 2 Category +T Soul Voice Custom Voice 3 Category +U Soul Voice Custom Voice 4 Category +V Soul Voice 1 +W Soul Voice 2 +X Soul Voice 3 +Y Soul Voice 4 +Z Soul Voice 5 + +1C38E722 +A Soul Voice 6 +B Soul Voice 8 +C Soul Voice 7 +D Soul Voice 9 +E Soul Voice 10 +F Soul Voice 11 +G Soul Voice 12 +H Soul Voice 13 +I Soul Voice 14 +J Soul Voice 15 +K Soul Voice 16 +L Former HP tracker? + +ASCII Table +A 41 61 a +B 42 62 b +C 43 63 c +D 44 64 d +E 45 65 e +F 46 66 f +G 47 67 g +H 48 68 h +I 49 69 i +J 4A 6A j +K 4B 6B k +L 4C 6C l +M 4D 6D m +N 4E 6E n +O 4F 6F o +P 50 70 p +Q 51 71 q +R 52 72 r +S 53 73 s +T 54 74 t +U 55 75 u +V 56 76 v +W 57 77 w +X 58 78 x +Y 59 79 y +Z 5A 7A z +! 21 CF ? +. 2E 2C , +space 20 diff --git a/src/XenobladeChroniclesX/Mods/CharacterLevel/rules.txt b/src/XenobladeChroniclesX/Mods/CharacterLevel/rules.txt index fc76b3731..8598e5b88 100644 --- a/src/XenobladeChroniclesX/Mods/CharacterLevel/rules.txt +++ b/src/XenobladeChroniclesX/Mods/CharacterLevel/rules.txt @@ -3,226 +3,214 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 name = Character Level path = "Xenoblade Chronicles X/Mods/Character/Character Level" description = "You can change the level of any character.||***Activate by pressing START(+), then Party->Active Members->Confirm Changes." +#Credits: Intra version = 7 [Default] $memoffset = 0x122 $level = 1 - +$exp = 0 $characterID = 1 [Preset] -category = "Character:" +category = "Character" name = "Playable Avatar" [Preset] -category = "Character:" +category = "Character" name = "Nagi" $characterID = 2 $memoffset = (($characterID-1)*0x57C)+0x122 [Preset] -category = "Character:" +category = "Character" name = "L" $characterID = 3 $memoffset = (($characterID-1)*0x57C)+0x122 [Preset] -category = "Character:" +category = "Character" name = "Lao" $characterID = 4 $memoffset = (($characterID-1)*0x57C)+0x122 [Preset] -category = "Character:" +category = "Character" name = "H.B." $characterID = 5 $memoffset = (($characterID-1)*0x57C)+0x122 [Preset] -category = "Character:" +category = "Character" name = "Gwin" $characterID = 6 $memoffset = (($characterID-1)*0x57C)+0x122 [Preset] -category = "Character:" +category = "Character" name = "Frye" $characterID = 7 $memoffset = (($characterID-1)*0x57C)+0x122 [Preset] -category = "Character:" +category = "Character" name = "Doug" $characterID = 8 $memoffset = (($characterID-1)*0x57C)+0x122 [Preset] -category = "Character:" +category = "Character" name = "Yelv" $characterID = 9 $memoffset = (($characterID-1)*0x57C)+0x122 [Preset] -category = "Character:" +category = "Character" name = "Boze" $characterID = 10 $memoffset = (($characterID-1)*0x57C)+0x122 [Preset] -category = "Character:" +category = "Character" name = "Phog" $characterID = 11 $memoffset = (($characterID-1)*0x57C)+0x122 [Preset] -category = "Character:" +category = "Character" name = "Elma" $characterID = 12 $memoffset = (($characterID-1)*0x57C)+0x122 [Preset] -category = "Character:" +category = "Character" name = "Lin" $characterID = 13 $memoffset = (($characterID-1)*0x57C)+0x122 [Preset] -category = "Character:" +category = "Character" name = "Celica" $characterID = 14 $memoffset = (($characterID-1)*0x57C)+0x122 [Preset] -category = "Character:" +category = "Character" name = "Irina" $characterID = 15 $memoffset = (($characterID-1)*0x57C)+0x122 [Preset] -category = "Character:" +category = "Character" name = "Murderess" $characterID = 16 $memoffset = (($characterID-1)*0x57C)+0x122 [Preset] -category = "Character:" +category = "Character" name = "Alexa" $characterID = 17 $memoffset = (($characterID-1)*0x57C)+0x122 [Preset] -category = "Character:" +category = "Character" name = "Hope" $characterID = 18 $memoffset = (($characterID-1)*0x57C)+0x122 [Preset] -category = "Character:" +category = "Character" name = "Mia" $characterID = 19 $memoffset = (($characterID-1)*0x57C)+0x122 [Preset] -category = "Level:" +category = "Level" name = lv. 1 [Preset] -category = "Level:" +category = "Level" name = lv. 5 $level = 5 [Preset] -category = "Level:" +category = "Level" name = lv. 10 $level = 10 [Preset] -category = "Level:" +category = "Level" name = lv. 15 $level = 15 [Preset] -category = "Level:" +category = "Level" name = lv. 20 $level = 20 [Preset] -category = "Level:" +category = "Level" name = lv. 25 $level = 25 [Preset] -category = "Level:" +category = "Level" name = lv. 30 $level = 30 [Preset] -category = "Level:" +category = "Level" name = lv. 35 $level = 35 [Preset] -category = "Level:" +category = "Level" name = lv. 40 $level = 40 [Preset] -category = "Level:" +category = "Level" name = lv. 45 $level = 45 [Preset] -category = "Level:" +category = "Level" name = lv. 50 $level = 50 [Preset] -category = "Level:" +category = "Level" name = lv. 55 $level = 55 [Preset] -category = "Level:" +category = "Level" name = lv. 60 $level = 60 +$exp = 23760 [Preset] -category = "Level:" -name = lv. 70 -$level = 70 - -[Preset] -category = "Level:" -name = lv. 80 -$level = 80 - -[Preset] -category = "Level:" -name = lv. 90 -$level = 90 - -[Preset] -category = "Level:" +category = "Level" name = lv. 100 $level = 100 [Preset] -category = "Level:" +category = "Level" name = lv. 150 $level = 150 [Preset] -category = "Level:" +category = "Level" name = lv. 200 $level = 200 [Preset] -category = "Level:" +category = "Level" name = lv. 255 $level = 255 [Preset] -category = "Level:" -name = lv. 0 +category = "Level" +name = lv. 0 (WILL softlock unless you have Max HP Up) $level = 0 +$exp = -1 diff --git a/src/XenobladeChroniclesX/Mods/ExpBattlePointsX/patch_exp_battle.asm b/src/XenobladeChroniclesX/Mods/ExpBattlePointsX/patch_exp_battle.asm index 43c1573f3..2ce808924 100644 --- a/src/XenobladeChroniclesX/Mods/ExpBattlePointsX/patch_exp_battle.asm +++ b/src/XenobladeChroniclesX/Mods/ExpBattlePointsX/patch_exp_battle.asm @@ -1,8 +1,6 @@ -[XCX_BATTLEPOINTSX] +[XCX_BattlePointsX] moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J .origin = codecave -.int $mod - ; ---------------------------------------------------------------------------- ; WHO : addClassExpChara__Q2_6Battle14CBattleManagerFUiT1 ; WHAT : Multiply the battle points gained when a new class level is reached @@ -11,7 +9,6 @@ li r3, $mod mullw r0, r0, r3 mulli r0, r0, 3 blr - ; ---------------------------------------------------------------------------- ; WHO : addInnerExpChara__Q2_6Battle14CBattleManagerFUiN21 ; WHAT : Multiply the battle points gained when a new level is reached @@ -20,7 +17,6 @@ li r4, $mod mullw r9, r9, r4 add r11, r11, r9 blr - ; ---------------------------------------------------------------------------- ; WHO : addTreasure__Q2_3cfs10CfTBoxUtilSFUib ; WHAT : Multiply the battle points given by treasures or exploration @@ -29,7 +25,6 @@ li r3, $mod mullw r3, r31, r3 mr r31, r3 blr - ; ---------------------------------------------------------------------------- ; WHO : addReward__Q2_3cfs11CfSquadUtilSFUiT1 ; WHAT : Multiply the experience points given by Squad missions @@ -38,27 +33,25 @@ li r4, $mod mullw r3, r3, r4 stw r3, 0x1C(r1) blr - ; ---------------------------------------------------------------------------- ; WHO : menu::MenuMultiQuestInfoWindow::displayInfo((menu::MenuObject *,bool)) ; WHAT : Multiply the battle points displayed in quest popup information. _dispBefore: -lhz r24, 0x90(r1) -li r25, $mod -mullw r24, r24, r25 +lhz r24, 0x90(r1) +li r25, $mod +mullw r24, r24, r25 blr - ; ---------------------------------------------------------------------------- ; WHO : menu::MenuMultiQuestResult::setup((void)) ; WHAT : Multiply the battle points displayed in quest popup results. _dispAfter: -li r5, $mod -mullw r3, r3, r5 -stw r3, 0x7C(r1) +li r5, $mod +mullw r3, r3, r5 +stw r3, 0x7C(r1) blr -[XCX_BATTLEPOINTSX_V101E] ; ############################################################################ +[XCX_BattlePointsX_v101E] moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E 0x020C4A74 = bla _exp 0x020C1C48 = bla _exp2 @@ -68,7 +61,7 @@ moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E 0x02B94730 = bla _dispBefore 0x02B9FEE0 = bla _dispAfter -[XCX_BATTLEPOINTSX_V102U] ; ############################################################################ +[XCX_BattlePointsX_v102U] moduleMatches = 0x30B6E091 ; 1.0.2U 0x020C4A74 = bla _exp 0x020C1C48 = bla _exp2 @@ -78,7 +71,7 @@ moduleMatches = 0x30B6E091 ; 1.0.2U 0x02B94720 = bla _dispBefore 0x02B9FED0 = bla _dispAfter -[XCX_BATTLEPOINTSX_V102J] ; ############################################################################ +[XCX_BattlePointsX_v102J] moduleMatches = 0x7672271D ; 1.0.2J 0x020C4540 = bla _exp 0x020C1714 = bla _exp2 @@ -88,7 +81,7 @@ moduleMatches = 0x7672271D ; 1.0.2J 0x02B9066C = bla _dispBefore 0x02B9B998 = bla _dispAfter -[XCX_BATTLEPOINTSX_V100U] ; ############################################################################ +[XCX_BattlePointsX_v100U] moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U 0x020C4A74 = bla _exp 0x020C1C48 = bla _exp2 @@ -98,7 +91,7 @@ moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U 0x02B946A4 = bla _dispBefore 0x02B9FDE0 = bla _dispAfter -[XCX_BATTLEPOINTSX_V100J] ; ############################################################################ +[XCX_BattlePointsX_v100J] moduleMatches = 0x785CA8A9 ; 1.0.0J 0x020C42BC = bla _exp 0x020C1490 = bla _exp2 diff --git a/src/XenobladeChroniclesX/Mods/ExpBattlePointsX/rules.txt b/src/XenobladeChroniclesX/Mods/ExpBattlePointsX/rules.txt index 381b4663e..cde68019e 100644 --- a/src/XenobladeChroniclesX/Mods/ExpBattlePointsX/rules.txt +++ b/src/XenobladeChroniclesX/Mods/ExpBattlePointsX/rules.txt @@ -1,15 +1,25 @@ [Definition] titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 -name = "Battle Points X" +name = "Battle Points Multiplier" path = "Xenoblade Chronicles X/Mods/Experience/Battle Points" description = Change the amount of Battle points gained when a new level (or class level) is reached, when completing missions or exploring. +#Credits: lasyan3 version = 6 [Default] -$mod = 2 +$mod = 1 + +[Preset] +name = "Quantity x0" +$mod = 0 + +[Preset] +name = "Quantity x1" +default = 1 [Preset] name = "Quantity x2" +$mod = 2 [Preset] name = "Quantity x3" diff --git a/src/XenobladeChroniclesX/Mods/ExpBladePointsX/patch_exp_blade.asm b/src/XenobladeChroniclesX/Mods/ExpBladePointsX/patch_exp_blade.asm index ac2e832cc..6cc779cbe 100644 --- a/src/XenobladeChroniclesX/Mods/ExpBladePointsX/patch_exp_blade.asm +++ b/src/XenobladeChroniclesX/Mods/ExpBladePointsX/patch_exp_blade.asm @@ -1,35 +1,29 @@ -[XCX_BLADEX] -moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J -.origin = codecave -.int $mod -; ---------------------------------------------------------------------------- +[XCX_BLADEexp_v101E] +moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E ; WHO : fw::SocialUnion::getUnionBasePoint((int)) ; WHAT : Multiply the BLADE points rewarded - -[XCX_BLADEX_V101E] -moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E 0x0288E610 = nop 0x02E0C5B0 = li r3, -1 0x0288E614 = li r3, $mod -[XCX_BLADEX_V102U] +[XCX_BLADEexp_v102U] moduleMatches = 0x30B6E091 ; 1.0.2U 0x0288E610 = nop 0x02E0C550 = li r3, -1 0x0288E614 = li r3, $mod -[XCX_BLADEX_V102J] +[XCX_BLADEexp_v102J] moduleMatches = 0x7672271D ; 1.0.2J 0x0288B470 = nop 0x02E07A78 = li r3, -1 0x0288B474 = li r3, $mod -[XCX_BLADEX_V100U] +[XCX_BLADEexp_v100U] moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U 0x0288E594 = nop 0x02E0C3D8 = li r3, -1 0x0288E598 = li r3, $mod -;[XCX_BLADEX_V100J] -;moduleMatches = 0x785CA8A9 ; 1.0.0J ;;; +;[XCX_BLADEX_v100J] +;moduleMatches = 0x785CA8A9 ; 1.0.0J ;getUnionBasePoint__Q2_2fw11SocialUnionFi does not exist diff --git a/src/XenobladeChroniclesX/Mods/ExpBladePointsX/rules.txt b/src/XenobladeChroniclesX/Mods/ExpBladePointsX/rules.txt index f9a6e62f1..c77ffec35 100644 --- a/src/XenobladeChroniclesX/Mods/ExpBladePointsX/rules.txt +++ b/src/XenobladeChroniclesX/Mods/ExpBladePointsX/rules.txt @@ -1,15 +1,25 @@ [Definition] titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 -name = "BLADE Points X" +name = "BLADE Points Multiplier" path = "Xenoblade Chronicles X/Mods/Experience/BLADE Points" description = Change the amount of BLADE points gained in various situations. +#Credits: lasyan3 version = 6 [Default] -$mod = 2 +$mod = 1 + +[Preset] +name = "x0" +$mod = 0 + +[Preset] +name = "x1" +default = 1 [Preset] name = "x2" +$mod = 2 [Preset] name = "x3" diff --git a/src/XenobladeChroniclesX/Mods/ExpClassExpPointsX/patch_exp_class.asm b/src/XenobladeChroniclesX/Mods/ExpClassExpPointsX/patch_exp_class.asm index a80a39d4a..0553fe14e 100644 --- a/src/XenobladeChroniclesX/Mods/ExpClassExpPointsX/patch_exp_class.asm +++ b/src/XenobladeChroniclesX/Mods/ExpClassExpPointsX/patch_exp_class.asm @@ -1,8 +1,6 @@ -[XCX_CLASSEXPX] +[XCX_ClassEXP] moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J .origin = codecave -.int $mod - ; ---------------------------------------------------------------------------- ; WHO : addClassExpChara__Q2_6Battle14CBattleManagerFUiT1 ; WHAT : Multiply the class experience given during combat @@ -10,7 +8,6 @@ _expBattle: li r12, $mod mullw r31, r3, r12 blr - ; ---------------------------------------------------------------------------- ; WHO : addReward__Q2_3cfs11CfSquadUtilSFUiT1 ; WHAT : Multiply the experience points given by Squad missions @@ -21,22 +18,21 @@ stw r3, 0x18(r1) blr _dispBefore: -li r5, $mod -mullw r3, r3, r5 -stw r3, 0x34(r1) +li r5, $mod +mullw r3, r3, r5 +stw r3, 0x34(r1) blr - ; ---------------------------------------------------------------------------- ; WHO : menu::MenuMultiQuestResult::setup((void)) -; WHAT : +; WHAT : _dispAfter: -li r5, $mod -mullw r3, r3, r5 -stw r3, 0x80(r1) +li r5, $mod +mullw r3, r3, r5 +stw r3, 0x80(r1) blr -[XCX_CLASSEXPX_V101E] ; ############################################################################ +[XCX_ClassEXP_v101E] moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E 0x020C4A28 = bla _expBattle 0x023CC750 = bla _expSquadValue @@ -44,7 +40,7 @@ moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E 0x02B91324 = bla _dispBefore 0x02B9FF44 = bla _dispAfter -[XCX_CLASSEXPX_V102U] ; ############################################################################ +[XCX_ClassEXP_v102U] moduleMatches = 0x30B6E091 ; 1.0.2U 0x020C4A28 = bla _expBattle 0x023CC750 = bla _expSquadValue @@ -52,7 +48,7 @@ moduleMatches = 0x30B6E091 ; 1.0.2U 0x02B91314 = bla _dispBefore 0x02B9FF34 = bla _dispAfter -[XCX_CLASSEXPX_V102J] ; ############################################################################ +[XCX_ClassEXP_v102J] moduleMatches = 0x7672271D ; 1.0.2J 0x020C44F4 = bla _expBattle 0x023CBDB4 = bla _expSquadValue @@ -60,7 +56,7 @@ moduleMatches = 0x7672271D ; 1.0.2J 0x02B8D260 = bla _dispBefore 0x02B9B9FC = bla _dispAfter -[XCX_CLASSEXPX_V100U] ; ############################################################################ +[XCX_ClassEXP_v100U] moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U 0x020C4A28 = bla _expBattle 0x023CC6E0 = bla _expSquadValue @@ -68,7 +64,7 @@ moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U 0x02B91298 = bla _dispBefore 0x02B9FE44 = bla _dispAfter -[XCX_CLASSEXPX_V100J] ; ############################################################################ +[XCX_ClassEXP_v100J] moduleMatches = 0x785CA8A9 ; 1.0.0J 0x020C4270 = bla _expBattle 0x023CB8E4 = bla _expSquadValue diff --git a/src/XenobladeChroniclesX/Mods/ExpClassExpPointsX/rules.txt b/src/XenobladeChroniclesX/Mods/ExpClassExpPointsX/rules.txt index 4df330c6f..052bcbe25 100644 --- a/src/XenobladeChroniclesX/Mods/ExpClassExpPointsX/rules.txt +++ b/src/XenobladeChroniclesX/Mods/ExpClassExpPointsX/rules.txt @@ -1,15 +1,25 @@ [Definition] titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 -name = "Class Exp Points X" +name = "Class Exp Points Multiplier" path = "Xenoblade Chronicles X/Mods/Experience/Class Exp Points" description = Change the amount of Class Exp points gained in battle, missions, quests and exploration. +#Credits: lasyan3 version = 6 [Default] -$mod = 2 +$mod = 1 + +[Preset] +name = "x0" +$mod = 0 + +[Preset] +name = "x1" +default = 1 [Preset] name = "x2" +$mod = 2 [Preset] name = "x3" diff --git a/src/XenobladeChroniclesX/Mods/ExpFriendsPointsX/patch_exp_friend.asm b/src/XenobladeChroniclesX/Mods/ExpFriendsPointsX/patch_exp_friend.asm index 7154c4f9a..036165111 100644 --- a/src/XenobladeChroniclesX/Mods/ExpFriendsPointsX/patch_exp_friend.asm +++ b/src/XenobladeChroniclesX/Mods/ExpFriendsPointsX/patch_exp_friend.asm @@ -1,20 +1,14 @@ -[XCX_FRIENDPOINTSX] -moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J -.origin = codecave -.int $mod -; ---------------------------------------------------------------------------- +[XCX_FriendPoints_v101E_v102U_v100U] +moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07, 0xAB97DE6B, 0x676EB33E ; 1.0.1E, 1.0.2U, 1.0.0E, 1.0.1U, 1.0.0U ; WHO : RegistDamage_SoulVoiceLink__Q2_12DamageSystem7FactorySFRCQ2_3cfs30CfHandleKey__tm__11_XCUiL_2_12T1Ui ; WHAT : Gives a lot of friend points when activating a Soul Voice Link during combat ; : BEWARE as this can lead to freeze of the emulator when opening the Affinity Chart (not sure if this is related) - -[XCX_FRIENDPOINTSX_V101E_V102U_V100U] -moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07, 0xAB97DE6B, 0x676EB33E ; 1.0.1E, 1.0.2U, 1.0.0E, 1.0.1U, 1.0.0U 0x02179908 = li r31, $mod -[XCX_FRIENDPOINTSX_V102J] +[XCX_FriendPoints_v102J] moduleMatches = 0x7672271D ; 1.0.2J 0x021793D4 = li r31, $mod -[XCX_FRIENDPOINTSX_V100J] +[XCX_FriendPoints_v100J] moduleMatches = 0x785CA8A9 ; 1.0.0J 0x02179150 = li r31, $mod diff --git a/src/XenobladeChroniclesX/Mods/ExpFriendsPointsX/rules.txt b/src/XenobladeChroniclesX/Mods/ExpFriendsPointsX/rules.txt index 04c769ae3..cefc63a94 100644 --- a/src/XenobladeChroniclesX/Mods/ExpFriendsPointsX/rules.txt +++ b/src/XenobladeChroniclesX/Mods/ExpFriendsPointsX/rules.txt @@ -1,8 +1,9 @@ [Definition] titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 -name = "Friends Points X" -path = "Xenoblade Chronicles X/Mods/Experience/Friends Points" -description = More Friends points gained when activating a Soul Voice Link during battle. +name = "More Affinity Points From Soul Voices" +path = "Xenoblade Chronicles X/Mods/Experience/Affinity Points" +description = More Affinity points gained when activating a Soul Voice during battle. +#Credits: lasyan3 version = 6 [Default] diff --git a/src/XenobladeChroniclesX/Mods/ExpInnerExpPointsX/patch_exp.asm b/src/XenobladeChroniclesX/Mods/ExpInnerExpPointsX/patch_exp.asm index 130f3eeb4..36f6f58e9 100644 --- a/src/XenobladeChroniclesX/Mods/ExpInnerExpPointsX/patch_exp.asm +++ b/src/XenobladeChroniclesX/Mods/ExpInnerExpPointsX/patch_exp.asm @@ -1,8 +1,6 @@ [XCX_EXPX] moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J .origin = codecave -.int $mod - ; ---------------------------------------------------------------------------- ; WHO : cfs::CfCompoCtrlEnemy::execRequestCommon ; WHAT : Multiply the experience points given in battles @@ -12,7 +10,6 @@ mulli r3, r3, $mod stw r3, 0x3184(r28) mr r3, r28 blr - ; ---------------------------------------------------------------------------- ; WHO : addTreasure__Q2_3cfs10CfTBoxUtilSFUib ; WHAT : Multiply the experience points given by treasures or exploration @@ -21,7 +18,6 @@ li r3, $mod lhz r31, 0x1C(r1) mullw r31, r31, r3 blr - ; ---------------------------------------------------------------------------- ; WHO : addReward__Q2_3cfs11CfQuestUtilSFUiQ2_3cfs17CfQuestRewardType ; WHAT : Multiply the experience points given by quests ? @@ -30,7 +26,6 @@ li r4, $mod mullw r3, r3, r4 stw r3, 0x60(r1) blr - ; ---------------------------------------------------------------------------- ; WHO : addReward__Q2_3cfs11CfSquadUtilSFUiT1 ; WHAT : Multiply the experience points given by Squad missions @@ -39,27 +34,25 @@ li r4, $mod mullw r3, r3, r4 stw r3, 0x10(r1) blr - ; ---------------------------------------------------------------------------- ; WHO : menu::MenuMultiQuestInfoWindow::displayInfo((menu::MenuObject *,bool)) -; WHAT : +; WHAT : _dispBefore: -lwz r23, 0x88(r1) -li r24, $mod -mullw r23, r23, r24 +lwz r23, 0x88(r1) +li r24, $mod +mullw r23, r23, r24 blr - ; ---------------------------------------------------------------------------- ; WHO : menu::MenuMultiQuestResult::setup((void)) -; WHAT : +; WHAT : _dispAfter: -li r5, $mod -mullw r3, r3, r5 -stw r3, 0x78(r1) +li r5, $mod +mullw r3, r3, r5 +stw r3, 0x78(r1) blr -[XCX_EXPX_V101E] ; ############################################################################ +[XCX_EXPX_v101E] moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E 0x025624D4 = bla _expBattle 0x022D8E64 = bla _expTreasure @@ -70,7 +63,7 @@ moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E ; unlimited exp (no 9999 limit) loops around 140000 0x020C1BC4 = nop -[XCX_EXPX_V102U] ; ############################################################################ +[XCX_EXPX_v102U] moduleMatches = 0x30B6E091 ; 1.0.2U 0x025624D4 = bla _expBattle 0x022D8E64 = bla _expTreasure @@ -81,7 +74,7 @@ moduleMatches = 0x30B6E091 ; 1.0.2U ; unlimited exp (no 9999 limit) loops around 140000 0x020C1BC4 = nop -[XCX_EXPX_V102J] ; ############################################################################ +[XCX_EXPX_v102J] moduleMatches = 0x7672271D ; 1.0.2J 0x02561AB0 = bla _expBattle 0x022D8694 = bla _expTreasure @@ -92,7 +85,7 @@ moduleMatches = 0x7672271D ; 1.0.2J ; unlimited exp (no 9999 limit) loops around 140000 0x020C1690 = nop -[XCX_EXPX_V100U] ; ############################################################################ +[XCX_EXPX_v100U] moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U 0x02562464 = bla _expBattle 0x022D8DF4 = bla _expTreasure @@ -103,7 +96,7 @@ moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U ; unlimited exp (no 9999 limit) loops around 140000 0x020C1BC4 = nop -[XCX_EXPX_V100J] ; ############################################################################ +[XCX_EXPX_v100J] moduleMatches = 0x785CA8A9 ; 1.0.0J 0x02560FD4 = bla _expBattle 0x022D8520 = bla _expTreasure diff --git a/src/XenobladeChroniclesX/Mods/ExpInnerExpPointsX/rules.txt b/src/XenobladeChroniclesX/Mods/ExpInnerExpPointsX/rules.txt index 77f2b5442..76b60d969 100644 --- a/src/XenobladeChroniclesX/Mods/ExpInnerExpPointsX/rules.txt +++ b/src/XenobladeChroniclesX/Mods/ExpInnerExpPointsX/rules.txt @@ -1,15 +1,21 @@ [Definition] titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 -name = "Lv Exp Points" +name = "Lv Exp Points Multiplier" path = "Xenoblade Chronicles X/Mods/Experience/Lv Exp Points" description = Change the amount of Level Exp points gained in battle, missions, quests and exploration.|Ignores the 9999 exp cap. +#Credits: lasyan3 version = 6 [Default] $mod = 1 +[Preset] +name = "x0" +$mod = 0 + [Preset] name = "x1" +default - 1 [Preset] name = "x2" diff --git a/src/XenobladeChroniclesX/Mods/GraphicsCameraDistance/patch_camera.asm b/src/XenobladeChroniclesX/Mods/GraphicsCameraDistance/patch_camera.asm index 9ebe95bac..5e2adda9d 100644 --- a/src/XenobladeChroniclesX/Mods/GraphicsCameraDistance/patch_camera.asm +++ b/src/XenobladeChroniclesX/Mods/GraphicsCameraDistance/patch_camera.asm @@ -1,23 +1,23 @@ -[XCX_CAMERA_DIST] +[XCX_CameraDist] moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J .origin = codecave VarZoom: .float $mod -; CamData::CCamDataManager::getParamsZoomDefault((CamData::eTargetTypes, unsigned char)) -[XCX_CAMERA_DIST_V101E_V102U_V100U] +[XCX_CameraDist_v101E_v102U_v100U] moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07, 0xAB97DE6B, 0x676EB33E ; 1.0.1E, 1.0.2U, 1.0.0E, 1.0.1U, 1.0.0U +; CamData::CCamDataManager::getParamsZoomDefault((CamData::eTargetTypes, unsigned char)) 0x0222A19C = lis r12, VarZoom@ha 0x0222A1B0 = lfs f1, VarZoom@l(r12) 0x0222A1CC = nop -[XCX_CAMERA_DIST_V102J] +[XCX_CameraDist_v102J] moduleMatches = 0x7672271D ; 1.0.2J 0x02229C68 = lis r12, VarZoom@ha 0x02229C7C = lfs f1, VarZoom@l(r12) 0x02229C98 = nop -[XCX_CAMERA_DIST_V100J] +[XCX_CameraDist_v100J] moduleMatches = 0x785CA8A9 ; 1.0.0J 0x022299E4 = lis r12, VarZoom@ha 0x022299F8 = lfs f1, VarZoom@l(r12) diff --git a/src/XenobladeChroniclesX/Mods/GraphicsCameraDistance/rules.txt b/src/XenobladeChroniclesX/Mods/GraphicsCameraDistance/rules.txt index 14f432613..b21b908a0 100644 --- a/src/XenobladeChroniclesX/Mods/GraphicsCameraDistance/rules.txt +++ b/src/XenobladeChroniclesX/Mods/GraphicsCameraDistance/rules.txt @@ -1,15 +1,17 @@ [Definition] titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 -name = "Camera distance mod" -path = "Xenoblade Chronicles X/Mods/Graphics/Camera distance mod" +name = "Default Camera Distance Mod" +path = "Xenoblade Chronicles X/Mods/Graphics/Default camera distance" description = Affect the default distance of the camera (Vanilla zoom is 0).|Does not affect max zoom possible. +#Credits: lyasian3 version = 6 [Default] -$mod = 2.0 +$mod = 0.0 [Preset] name = "Zoom 2" +$mod = 2.0 [Preset] name = "Zoom 5" From 77a520f49468cf34a52cb8ad217e7b59b8871641 Mon Sep 17 00:00:00 2001 From: Intra Date: Thu, 9 Jan 2025 12:13:49 -0600 Subject: [PATCH 15/19] Update patch_exp_blade.asm --- .../Mods/ExpBladePointsX/patch_exp_blade.asm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/XenobladeChroniclesX/Mods/ExpBladePointsX/patch_exp_blade.asm b/src/XenobladeChroniclesX/Mods/ExpBladePointsX/patch_exp_blade.asm index 6cc779cbe..7362eb816 100644 --- a/src/XenobladeChroniclesX/Mods/ExpBladePointsX/patch_exp_blade.asm +++ b/src/XenobladeChroniclesX/Mods/ExpBladePointsX/patch_exp_blade.asm @@ -1,4 +1,4 @@ -[XCX_BLADEexp_v101E] +[XCX_BLADEX_v101E] moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E ; WHO : fw::SocialUnion::getUnionBasePoint((int)) ; WHAT : Multiply the BLADE points rewarded @@ -6,19 +6,19 @@ moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E 0x02E0C5B0 = li r3, -1 0x0288E614 = li r3, $mod -[XCX_BLADEexp_v102U] +[XCX_BLADEX_v102U] moduleMatches = 0x30B6E091 ; 1.0.2U 0x0288E610 = nop 0x02E0C550 = li r3, -1 0x0288E614 = li r3, $mod -[XCX_BLADEexp_v102J] +[XCX_BLADEX_v102J] moduleMatches = 0x7672271D ; 1.0.2J 0x0288B470 = nop 0x02E07A78 = li r3, -1 0x0288B474 = li r3, $mod -[XCX_BLADEexp_v100U] +[XCX_BLADEX_v100U] moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U 0x0288E594 = nop 0x02E0C3D8 = li r3, -1 From 00b80420aae6a5fc1b4b39bca5b0da5508413a83 Mon Sep 17 00:00:00 2001 From: Intra Date: Wed, 15 Jan 2025 16:29:57 -0600 Subject: [PATCH 16/19] Update patch_dmg.asm made the assumption cmpwi would read r0 as 0, it doesn't. very necessary bug fix --- .../Mods/BattleDamageModGround/patch_dmg.asm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/XenobladeChroniclesX/Mods/BattleDamageModGround/patch_dmg.asm b/src/XenobladeChroniclesX/Mods/BattleDamageModGround/patch_dmg.asm index af575e4b0..a537834d1 100644 --- a/src/XenobladeChroniclesX/Mods/BattleDamageModGround/patch_dmg.asm +++ b/src/XenobladeChroniclesX/Mods/BattleDamageModGround/patch_dmg.asm @@ -8,8 +8,9 @@ divw r4, r31, r4 blr _mult_or_divide: -cmpwi r0, $multOrDivision -bne- _divide_dmg +li r4, $multOrDivision +cmpwi r4, 0 +bne _divide_dmg mulli r4, r31, $mult blr From 5bacdb866672fafafc028ac3e794de42800bfde9 Mon Sep 17 00:00:00 2001 From: Intra Date: Tue, 28 Jan 2025 19:11:38 -0600 Subject: [PATCH 17/19] can change RP ammount in offline global nemesis mod --- .../patch_offline_nemesis.asm | 25 +++++++++---------- .../patch_offline_nemesis.asm.bak | 1 - .../rules.txt | 11 ++++++++ 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/src/XenobladeChroniclesX/Mods/BladeGlobalNemesisMissionsOffline/patch_offline_nemesis.asm b/src/XenobladeChroniclesX/Mods/BladeGlobalNemesisMissionsOffline/patch_offline_nemesis.asm index 2ad2aa2f8..7a17cde17 100644 --- a/src/XenobladeChroniclesX/Mods/BladeGlobalNemesisMissionsOffline/patch_offline_nemesis.asm +++ b/src/XenobladeChroniclesX/Mods/BladeGlobalNemesisMissionsOffline/patch_offline_nemesis.asm @@ -1,10 +1,8 @@ -[XCX_OFFLINEWE] +[XCX_OfflineWorldEnemy] moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J .origin = codecave -.int $ygg ;0x400D | mission ID for ygg -.int $teli ;0x4008 or 0x4009 | mission ID's for teli -.int $nemesiscost ;sets blade medals cost of nemesis mission -.int $minmedals ;sets minimum blade medal count +;0x400D | mission ID for ygg +;0x4008 or 0x4009 | mission ID's for teli ; Manage RPs & Appraisal VarShareRP: @@ -14,8 +12,9 @@ VarShareAP: .int 0 _loadRP: -lis r12, 0x0022 -ori r12, r12, 0x5510 +RPAmmmount = $RPAmmmount +lis r12, RPAmmmount@hi +ori r12, r12, RPAmmmount@l blr ; menu::CTerminalMenu_PieceExchange::offline((void)) @@ -24,7 +23,7 @@ _single: li r3, 0 blr -[XCX_OFFLINEWE_V101E_V102U] ; ###################################################################################### +[XCX_OfflineWorldEnemy_v101E_v102U] ; ###################################################################################### moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E ; cfs::CfSocialManager::update((float)) 0x022879D0 = nop ; (network test?) allow call to cfs::CfSocialQuestManager::update((void)) @@ -72,7 +71,7 @@ moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E 0x02888E00 = bge 0x02888E08 ;LAB_02888e08 0x02888E04 = li r3, $minmedals -[XCX_OFFLINEWE_V101E] ; ############################################################################################ +[XCX_OfflineWorldEnemy_v101E] ; ############################################################################################ moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E 0x02AC5C10 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline ; menu::MenuMultiQuestOrder::move((void)) @@ -85,7 +84,7 @@ moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E ; __CPR129__getMultiQuestReward__Q2_3cfs15CfSocialManagerCFUiRQ2_3mtl68fixed_vector__tm__48_Q3_3cfsJ28J11QuestRewardXCUiL_2_46T1 --> OK 0x022CA324 = nop ; always all items? -[XCX_OFFLINEWE_V102U] ; ############################################################################################ +[XCX_OfflineWorldEnemy_v102U] ; ############################################################################################ moduleMatches = 0x30B6E091 ; 1.0.2U 0x02AC5C00 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline 0x02B9B0A0 = li r3, 1 ; Disable call to menu::MenuMultiQuestOrder::canOrderWorldEnemy @@ -93,7 +92,7 @@ moduleMatches = 0x30B6E091 ; 1.0.2U 0x02AC612C = ba _single ; menu::CBladeHomuMenu::single((void)) 0x022CA324 = nop ; always all items? ;; -[XCX_OFFLINEWE_V102J] ; ############################################################################################ +[XCX_OfflineWorldEnemy_v102J] ; ############################################################################################ moduleMatches = 0x7672271D ; 1.0.2J 0x022873E8 = nop ; (network test?) allow call to cfs::CfSocialQuestManager::update((void)) 0x022C7A6C = nop ; network test : lwz r10, 0x1B0(r30) --> rlwinm. r9, r10, 0,30,30 @@ -136,7 +135,7 @@ moduleMatches = 0x7672271D ; 1.0.2J 0x02AC27FC = ba _single ; menu::CBladeHomuMenu::single((void)) 0x022C9D34 = nop ; always all items? -[XCX_OFFLINEWE_V100U] ; ############################################################################################ +[XCX_OfflineWorldEnemy_v100U] ; ############################################################################################ moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U 0x02287960 = nop ; (network test?) allow call to cfs::CfSocialQuestManager::update((void)) 0x022C7FEC = nop ; network test : lwz r10, 0x1B0(r30) --> rlwinm. r9, r10, 0,30,30 @@ -179,7 +178,7 @@ moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U 0x02AC60B0 = ba _single ; menu::CBladeHomuMenu::single((void)) 0x022CA2B4 = nop ; always all items? -[XCX_OFFLINEWE_V100J] ; ############################################################################################ +[XCX_OfflineWorldEnemy_v100J] ; ############################################################################################ moduleMatches = 0x785CA8A9 ; 1.0.0J 0x0228713C = nop ; (network test?) allow call to cfs::CfSocialQuestManager::update((void)) 0x022C78F8 = nop ; network test : lwz r10, 0x1B0(r30) --> rlwinm. r9, r10, 0,30,30 diff --git a/src/XenobladeChroniclesX/Mods/BladeGlobalNemesisMissionsOffline/patch_offline_nemesis.asm.bak b/src/XenobladeChroniclesX/Mods/BladeGlobalNemesisMissionsOffline/patch_offline_nemesis.asm.bak index 7e8523ad7..798d90338 100644 --- a/src/XenobladeChroniclesX/Mods/BladeGlobalNemesisMissionsOffline/patch_offline_nemesis.asm.bak +++ b/src/XenobladeChroniclesX/Mods/BladeGlobalNemesisMissionsOffline/patch_offline_nemesis.asm.bak @@ -1,4 +1,3 @@ -; not porting this backup file to JP [XCX_OFFLINEWE_V101E_V102U] moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E .origin = codecave diff --git a/src/XenobladeChroniclesX/Mods/BladeGlobalNemesisMissionsOffline/rules.txt b/src/XenobladeChroniclesX/Mods/BladeGlobalNemesisMissionsOffline/rules.txt index ff1360bf2..49d6a3c36 100644 --- a/src/XenobladeChroniclesX/Mods/BladeGlobalNemesisMissionsOffline/rules.txt +++ b/src/XenobladeChroniclesX/Mods/BladeGlobalNemesisMissionsOffline/rules.txt @@ -3,11 +3,13 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 name = "Offline Global Nemesis missions" path = "Xenoblade Chronicles X/Mods/BLADE/Offline Global Nemesis missions" description = Global Nemesis (both Telethia Plume and Yggralith Zero) are available in the BLADE console. +#Credits: lasyan3 version = 6 [Default] $ygg = 0x4EED $teli = 0x4EE9 +$RPAmmmount = 2250000 $nemesiscost = 1 $minmedals = 0 @@ -20,6 +22,15 @@ category = "Telethia Bossfight Version" name = "Friday Telethia (thunderstorms - 15:00)" $teli = 0x4EE8 +[Preset] +category = "RP Ammount" +name = 2250000 (default) + +[Preset] +category = "RP Ammount" +name = 1 +$RPAmmmount = 1 + [Preset] category = "CHEAT - BLADE Medals not needed" name = "Cheat not enabled" From 3fbe258b4d5745d0d1a7e5d58b8a3582df0f0ff3 Mon Sep 17 00:00:00 2001 From: Intra Date: Tue, 28 Jan 2025 19:19:14 -0600 Subject: [PATCH 18/19] added 1 too many 'm' --- .../patch_offline_nemesis.asm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/XenobladeChroniclesX/Mods/BladeGlobalNemesisMissionsOffline/patch_offline_nemesis.asm b/src/XenobladeChroniclesX/Mods/BladeGlobalNemesisMissionsOffline/patch_offline_nemesis.asm index 7a17cde17..69580bfa3 100644 --- a/src/XenobladeChroniclesX/Mods/BladeGlobalNemesisMissionsOffline/patch_offline_nemesis.asm +++ b/src/XenobladeChroniclesX/Mods/BladeGlobalNemesisMissionsOffline/patch_offline_nemesis.asm @@ -12,9 +12,9 @@ VarShareAP: .int 0 _loadRP: -RPAmmmount = $RPAmmmount -lis r12, RPAmmmount@hi -ori r12, r12, RPAmmmount@l +RPAmmount = $RPAmmount +lis r12, RPAmmount@hi +ori r12, r12, RPAmmount@l blr ; menu::CTerminalMenu_PieceExchange::offline((void)) From cc9c3f7bd60fa93926fdb70aa669d8763809e45d Mon Sep 17 00:00:00 2001 From: Intra Date: Tue, 28 Jan 2025 19:20:10 -0600 Subject: [PATCH 19/19] 1 too many 'm' --- .../Mods/BladeGlobalNemesisMissionsOffline/rules.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/XenobladeChroniclesX/Mods/BladeGlobalNemesisMissionsOffline/rules.txt b/src/XenobladeChroniclesX/Mods/BladeGlobalNemesisMissionsOffline/rules.txt index 49d6a3c36..87b30218b 100644 --- a/src/XenobladeChroniclesX/Mods/BladeGlobalNemesisMissionsOffline/rules.txt +++ b/src/XenobladeChroniclesX/Mods/BladeGlobalNemesisMissionsOffline/rules.txt @@ -9,7 +9,7 @@ version = 6 [Default] $ygg = 0x4EED $teli = 0x4EE9 -$RPAmmmount = 2250000 +$RPAmmount = 2250000 $nemesiscost = 1 $minmedals = 0 @@ -29,7 +29,7 @@ name = 2250000 (default) [Preset] category = "RP Ammount" name = 1 -$RPAmmmount = 1 +$RPAmmount = 1 [Preset] category = "CHEAT - BLADE Medals not needed"