[XCX] Port to most versions, added freecam mode and other changes

Thanks to @intra2 for the work!
This commit is contained in:
intra 2022-09-25 08:37:11 -05:00 committed by GitHub
parent 240179e6c9
commit 97c0d90901
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
113 changed files with 2002 additions and 910 deletions

View File

@ -1,6 +1,5 @@
[XCX_FPS++_Cutscene]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D ; 1.0.1E, 1.0.2U, 1.0.2J
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
forceCutsceneLimit:
@ -109,4 +108,4 @@ mr r4, r10
lis r10, const_30@ha
lfs f10, const_30@l(r10)
b _setGameSpeed
b _setGameSpeed

View File

@ -1,6 +1,5 @@
[XCX_FPS++_GameSpeed]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D ; 1.0.1E, 1.0.2U, 1.0.2J
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
# Constants
@ -248,8 +247,8 @@ lwz r10, 0x14(r1)
blr
[XCX_FPS++_GameSpeed_V101E]
moduleMatches = 0xF882D5CF
[XCX_FPS++_GameSpeed_V101E] ; #####################################################################################################################################################
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
; Global data patch
0x10171980 = havokHalfSpeed:
@ -291,8 +290,51 @@ moduleMatches = 0xF882D5CF
# 0x027A33DC = lfs f1, averageFPS1Inv@l(r10) ; But introduces shake and stutter issue. CODE XREF: ev::CEvtManager::startPage((float,bool))+6Cj
[XCX_FPS++_GameSpeed_V102J]
moduleMatches = 0x7672271D
[XCX_FPS++_GameSpeed_V102U] ; #####################################################################################################################################################
moduleMatches = 0x30B6E091 ; 1.0.2U
; Global data patch
0x10171980 = havokHalfSpeed:
0x10171980 = .float $fpsLimit
0x100598E4 = titleScreenSpeed:
0x100598E4 = .float (30.0/$fpsLimit)
0x10012644 = soulVoiceSpeed:
0x10012644 = .float (900/$fpsLimit)
; Instruction-specific patches
0x02228274 = lis r5, averageFPS0.1@ha ; Controller acceleration
0x0222827C = lfs f30, averageFPS0.1@l(r5) ; Controller acceleration
0x0273E3CC = lis r7, averageFPS1Inv@ha ; Sync elevator, vehicles etc
0x0273E3D0 = lfs f31, averageFPS1Inv@l(r7) ; Sync elevator, vehicles etc
0x0276A85C = lis r8, averageFPS1Inv@ha ; Sync in-game cutscenes
0x0276A860 = lfs f31, averageFPS1Inv@l(r8) ; Sync in-game cutscenes
0x025F299C = lis r12, averageFPS1Inv@ha ; Move__11CfSceneTaskFv ; Filter CPU, 30FPS logic
0x025F29A4 = lfs f31, averageFPS1Inv@l(r12) ; Move__11CfSceneTaskFv
# 0x02D39CE0 = lis r12, const_guiSpeed@ha ; AnimeObject::set
# 0x02D39CE4 = lfs f13, const_guiSpeed@l(r12) ; AnimeObject::set
0x02D202C8 = lis r12, const_guiSpeed@ha ; MenuObject::playEvent
0x02D202CC = lfs f31, const_guiSpeed@l(r12) ; MenuObject::playEvent
0x02D20394 = lis r12, const_guiSpeed@ha ; MenuObject::playEventFrame
0x02D20398 = lfs f31, const_guiSpeed@l(r12) ; MenuObject::playEventFrame
; Call GX2SetSwapInterval with 0 which removes any vsync
0x02FD8A34 = li r3, 0
; Use FPS waiting logic even with swap interval being 0
0x02FD59B4 = li r3, 1
0x02FD5A54 = bla _calculateGamespeed
0x027685B0 = bla _useCutsceneLimit
0x03AC2790 = bla _usePrerenderedCutsceneLimit
# These patches are replaced by lowering the framerate to prevent side-effects
# 0x027398B4 = lis r11, averageFPS1@ha ; Double updateEventParam cutscenes
# 0x027398C0 = lfs f1, averageFPS1@l(r11) ; Double updateEventParam cutscenes
# 0x027A33D8 = lis r10, averageFPS1Inv@ha ; Half SyncFrame cinematic cutscene, fixes timing issues with cinematic cutscenes
# 0x027A33DC = lfs f1, averageFPS1Inv@l(r10) ; But introduces shake and stutter issue. CODE XREF: ev::CEvtManager::startPage((float,bool))+6Cj
[XCX_FPS++_GameSpeed_V102J] ; #####################################################################################################################################################
moduleMatches = 0x7672271D ; 1.0.2J
; Global data patch
0x10171570 = havokHalfSpeed:
@ -334,12 +376,12 @@ moduleMatches = 0x7672271D
# 0x027A1124 = lfs f1, averageFPS1Inv@l(r10) ; But introduces shake and stutter issue. CODE XREF: ev::CEvtManager::startPage((float,bool))+6Cj
[XCX_FPS++_GameSpeed_V102U]
moduleMatches = 0x30B6E091
[XCX_FPS++_GameSpeed_V100U] ; #####################################################################################################################################################
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
; Global data patch
0x10171980 = havokHalfSpeed:
0x10171980 = .float $fpsLimit
0x10171880 = havokHalfSpeed:
0x10171880 = .float $fpsLimit
0x100598E4 = titleScreenSpeed:
0x100598E4 = .float (30.0/$fpsLimit)
0x10012644 = soulVoiceSpeed:
@ -348,30 +390,73 @@ moduleMatches = 0x30B6E091
; Instruction-specific patches
0x02228274 = lis r5, averageFPS0.1@ha ; Controller acceleration
0x0222827C = lfs f30, averageFPS0.1@l(r5) ; Controller acceleration
0x0273E3CC = lis r7, averageFPS1Inv@ha ; Sync elevator, vehicles etc
0x0273E3D0 = lfs f31, averageFPS1Inv@l(r7) ; Sync elevator, vehicles etc
0x0276A85C = lis r8, averageFPS1Inv@ha ; Sync in-game cutscenes
0x0276A860 = lfs f31, averageFPS1Inv@l(r8) ; Sync in-game cutscenes
0x025F299C = lis r12, averageFPS1Inv@ha ; Move__11CfSceneTaskFv ; Filter CPU, 30FPS logic
0x025F29A4 = lfs f31, averageFPS1Inv@l(r12) ; Move__11CfSceneTaskFv
# 0x02D39CE0 = lis r12, const_guiSpeed@ha ; AnimeObject::set
# 0x02D39CE4 = lfs f13, const_guiSpeed@l(r12) ; AnimeObject::set
0x02D202C8 = lis r12, const_guiSpeed@ha ; MenuObject::playEvent
0x02D202CC = lfs f31, const_guiSpeed@l(r12) ; MenuObject::playEvent
0x02D20394 = lis r12, const_guiSpeed@ha ; MenuObject::playEventFrame
0x02D20398 = lfs f31, const_guiSpeed@l(r12) ; MenuObject::playEventFrame
0x0273E36C = lis r7, averageFPS1Inv@ha ; Sync elevator, vehicles etc
0x0273E370 = lfs f31, averageFPS1Inv@l(r7) ; Sync elevator, vehicles etc
0x0276A7FC = lis r8, averageFPS1Inv@ha ; Sync in-game cutscenes
0x0276A800 = lfs f31, averageFPS1Inv@l(r8) ; Sync in-game cutscenes
0x025F292C = lis r12, averageFPS1Inv@ha ; Move__11CfSceneTaskFv ; Filter CPU, 30FPS logic
0x025F2934 = lfs f31, averageFPS1Inv@l(r12) ; Move__11CfSceneTaskFv
# 0x02D39B68 = lis r12, const_guiSpeed@ha ; AnimeObject::set
# 0x02D39B6C = lfs f13, const_guiSpeed@l(r12) ; AnimeObject::set
0x02D20150 = lis r12, const_guiSpeed@ha ; MenuObject::playEvent
0x02D20154 = lfs f31, const_guiSpeed@l(r12) ; MenuObject::playEvent
0x02D2021C = lis r12, const_guiSpeed@ha ; MenuObject::playEventFrame
0x02D20220 = lfs f31, const_guiSpeed@l(r12) ; MenuObject::playEventFrame
; Call GX2SetSwapInterval with 0 which removes any vsync
0x02FD8A34 = li r3, 0
0x02FD88BC = li r3, 0
; Use FPS waiting logic even with swap interval being 0
0x02FD59B4 = li r3, 1
0x02FD583C = li r3, 1
0x02FD5A54 = bla _calculateGamespeed
0x027685B0 = bla _useCutsceneLimit
0x03AC2790 = bla _usePrerenderedCutsceneLimit
0x02FD58DC = bla _calculateGamespeed
0x02768550 = bla _useCutsceneLimit
0x03AC2610 = bla _usePrerenderedCutsceneLimit
# These patches are replaced by lowering the framerate to prevent side-effects
# 0x027398B4 = lis r11, averageFPS1@ha ; Double updateEventParam cutscenes
# 0x027398C0 = lfs f1, averageFPS1@l(r11) ; Double updateEventParam cutscenes
# 0x027A33D8 = lis r10, averageFPS1Inv@ha ; Half SyncFrame cinematic cutscene, fixes timing issues with cinematic cutscenes
# 0x027A33DC = lfs f1, averageFPS1Inv@l(r10) ; But introduces shake and stutter issue. CODE XREF: ev::CEvtManager::startPage((float,bool))+6Cj
# 0x02739854 = lis r11, averageFPS1@ha ; Double updateEventParam cutscenes
# 0x02739860 = lfs f1, averageFPS1@l(r11) ; Double updateEventParam cutscenes
# 0x027A3378 = lis r10, averageFPS1Inv@ha ; Half SyncFrame cinematic cutscene, fixes timing issues with cinematic cutscenes
# 0x027A337C = lfs f1, averageFPS1Inv@l(r10) ; But introduces shake and stutter issue. CODE XREF: ev::CEvtManager::startPage((float,bool))+6Cj
[XCX_FPS++_GameSpeed_V100J] ; #####################################################################################################################################################
moduleMatches = 0x785CA8A9 ; 1.0.0J
; Global data patch
0x10171070 = havokHalfSpeed:
0x10171070 = .float $fpsLimit
0x10059514 = titleScreenSpeed:
0x10059514 = .float (30.0/$fpsLimit)
0x1001260C = soulVoiceSpeed:
0x1001260C = .float (900/$fpsLimit)
; Instruction-specific patches
0x02227ABC = lis r5, averageFPS0.1@ha ; Controller acceleration
0x02227AC4 = lfs f30, averageFPS0.1@l(r5) ; Controller acceleration
0x0273BBD0 = lis r7, averageFPS1Inv@ha ; Sync elevator, vehicles etc
0x0273BBD4 = lfs f31, averageFPS1Inv@l(r7) ; Sync elevator, vehicles etc
0x02768064 = lis r8, averageFPS1Inv@ha ; Sync in-game cutscenes
0x02768068 = lfs f31, averageFPS1Inv@l(r8) ; Sync in-game cutscenes
0x025F149C = lis r12, averageFPS1Inv@ha ; Move__11CfSceneTaskFv ; Filter CPU, 30FPS logic
0x025F14A4 = lfs f31, averageFPS1Inv@l(r12) ; Move__11CfSceneTaskFv
# 0x02D30A10 = lis r12, const_guiSpeed@ha ; AnimeObject::set
# 0x02D30A14 = lfs f13, const_guiSpeed@l(r12) ; AnimeObject::set
0x02D1709C = lis r12, const_guiSpeed@ha ; MenuObject::playEvent
0x02D170A0 = lfs f31, const_guiSpeed@l(r12) ; MenuObject::playEvent
0x02D17168 = lis r12, const_guiSpeed@ha ; MenuObject::playEventFrame
0x02D1716C = lfs f31, const_guiSpeed@l(r12) ; MenuObject::playEventFrame
; Call GX2SetSwapInterval with 0 which removes any vsync
0x02FCEB9C = li r3, 0
; Use FPS waiting logic even with swap interval being 0
0x02FCBB1C = li r3, 1
0x02FCBBBC = bla _calculateGamespeed
0x02765DB8 = bla _useCutsceneLimit
0x03AB85A8 = bla _usePrerenderedCutsceneLimit
# These patches are replaced by lowering the framerate to prevent side-effects
# 0x027370B8 = lis r11, averageFPS1@ha ; Double updateEventParam cutscenes
# 0x027370C4 = lfs f1, averageFPS1@l(r11) ; Double updateEventParam cutscenes
# 0x027A0180 = lis r10, averageFPS1Inv@ha ; Half SyncFrame cinematic cutscene, fixes timing issues with cinematic cutscenes
# 0x027A0184 = lfs f1, averageFPS1Inv@l(r10) ; But introduces shake and stutter issue. CODE XREF: ev::CEvtManager::startPage((float,bool))+6Cj

View File

@ -1,6 +1,5 @@
[XCX_FPS++_Overdrive_General] ; ########################################################
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D ; 1.0.1E, 1.0.2U, 1.0.2J
[XCX_FPS++_Overdrive_General]
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
_over:
@ -10,20 +9,18 @@ _over:
fmuls f1, f31, f1
blr
[XCX_FPS++_Overdrive_V101E] ; ########################################################
moduleMatches = 0xF882D5CF ; 1.0.1E
[XCX_FPS++_Overdrive_V101E_V102U_V100U]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07, 0xAB97DE6B, 0x676EB33E ; 1.0.1E, 1.0.2U, 1.0.0E, 1.0.1U, 1.0.0U
0x021BC904 = bla _over ; Gear::CGear::update((float))
0x021E2020 = bla _over ; Gear::CMode::Update((float))
[XCX_FPS++_Overdrive_V102U] ; ########################################################
moduleMatches = 0x30B6E091 ; 1.0.2U
0x021BC904 = bla _over ; Gear::CGear::update((float))
0x021E2020 = bla _over ; Gear::CMode::Update((float))
[XCX_FPS++_Overdrive_V102J] ; ########################################################
[XCX_FPS++_Overdrive_V102J]
moduleMatches = 0x7672271D ; 1.0.2J
0x021BC3D0 = bla _over ; Gear::CGear::update((float))
0x021E1AEC = bla _over ; Gear::CMode::Update((float))
0x021E1AEC = bla _over ; Gear::CMode::Update((float))
[XCX_FPS++_Overdrive_V100J]
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x021BC14C = bla _over ; Gear::CGear::update((float))
0x021E1868 = bla _over ; Gear::CMode::Update((float))

View File

@ -1,6 +1,5 @@
[XCX_FPS++_QTE_General] ; ########################################################
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D ; 1.0.1E, 1.0.2U, 1.0.2J
[XCX_FPS++_QTE_General]
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
timingFloatConv:
@ -76,35 +75,48 @@ _justFrame2:
blr
[XCX_FPS++_QTE_V101E] ; ########################################################
moduleMatches = 0xF882D5CF ; 1.0.1E
[XCX_FPS++_QTE_V101E] ; ########################################################
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
; menu::MenuButtonChallenge::setup
0x02ACE40C = lis r7, averageFPS30Inv@ha
0x02ACE414 = lfs f0, averageFPS30Inv@l(r7)
; menu::MenuButtonChallenge::move
0x02ACE6E4 = bla _justFrame1
0x02ACE700 = bla _justFrame2
[XCX_FPS++_QTE_V102U] ; ########################################################
moduleMatches = 0x30B6E091 ; 1.0.2U
; menu::MenuButtonChallenge::setup
0x02ACE3FC = lis r7, averageFPS30Inv@ha
0x02ACE404 = lfs f0, averageFPS30Inv@l(r7)
; menu::MenuButtonChallenge::move
0x02ACE6D4 = bla _justFrame1
0x02ACE6F0 = bla _justFrame2
[XCX_FPS++_QTE_V102J]
[XCX_FPS++_QTE_V102J] ; ########################################################
moduleMatches = 0x7672271D ; 1.0.2J
; menu::MenuButtonChallenge::setup
0x02ACAA38 = lis r7, averageFPS30Inv@ha
0x02ACAA40 = lfs f0, averageFPS30Inv@l(r7)
; menu::MenuButtonChallenge::move
0x02ACAD10 = bla _justFrame1
0x02ACAD2C = bla _justFrame2
0x02ACAD2C = bla _justFrame2
[XCX_FPS++_QTE_V100U] ; ########################################################
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
; menu::MenuButtonChallenge::setup
0x02ACE380 = lis r7, averageFPS30Inv@ha
0x02ACE388 = lfs f0, averageFPS30Inv@l(r7)
; menu::MenuButtonChallenge::move
0x02ACE658 = bla _justFrame1
0x02ACE674 = bla _justFrame2
[XCX_FPS++_QTE_V100J] ; ########################################################
moduleMatches = 0x785CA8A9 ; 1.0.0J
; menu::MenuButtonChallenge::setup
0x02AC8C00 = lis r7, averageFPS30Inv@ha
0x02AC8C08 = lfs f0, averageFPS30Inv@l(r7)
; menu::MenuButtonChallenge::move
0x02AC8ED8 = bla _justFrame1
0x02AC8EF4 = bla _justFrame2

View File

@ -1,17 +1,22 @@
[XCX_DAMAGES] ####################################################################################################################################
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
.origin = codecave
.int $mult
[XCX_DAMAGES_V101E]
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
0x02E0C5B0 = li r3, -1-$mult
0x025D896C = mulli r4, r31, $mult
[XCX_DAMAGES_1U] ####################################################################################################################################
moduleMatches = 0xAB97DE6B ; 1.0.1U
[XCX_DAMAGES_V102U]
moduleMatches = 0x30B6E091 ; 1.0.2U
0x02E0C550 = li r3, -1-$mult
0x025D896C = mulli r4, r31, $mult
.origin = codecave
.int $mult
;[XCX_DAMAGES_V102J]
;DO NOT port to JP 1.0.2 untill official game servers go offline
[XCX_DAMAGES_V100U]
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
0x02E0C3D8 = li r3, -1-$mult
0x025D88FC = mulli r4, r31, $mult
[XCX_DAMAGES_V100J]
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x02E03228 = li r3, -1-$mult
0x025CD268 = mulli r4, r31, $mult

View File

@ -2,27 +2,31 @@
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Ground damage multiplicator"
path = "Xenoblade Chronicles X/Mods/Battle/Ground damage multiplicator"
description = Increase the ground damage done by your team (skells not impacted).
version = 5
description = Increase the damage done by your team. Doesn't affect the damage numbers that are shown.
version = 6
[Default]
$mult = 2
[Preset]
name = Damage x 2
name = Damage x2
[Preset]
name = Damage x 3
name = Damage x3
$mult = 3
[Preset]
name = Damage x 5
name = Damage x5
$mult = 5
[Preset]
name = Damage x 10
name = Damage x10
$mult = 10
[Preset]
name = Damage x 100
name = Damage x25
$mult = 25
[Preset]
name = Damage x100
$mult = 100

View File

@ -1,22 +1,32 @@
[XCX_DAMAGES]
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J
.origin = codecave
.int $divr
_divide_dmg:
li r4, $divr
divw r4, r31, r4
blr
[XCX_DAMAGES_V101E]
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
0x02E0C5B0 = li r3, -1-$divr
0x025D896C = bla _divide_dmg
[XCX_DAMAGES_1U]
moduleMatches = 0xAB97DE6B ; 1.0.1U
[XCX_DAMAGES_V102U]
moduleMatches = 0x30B6E091 ; 1.0.2U
0x02E0C550 = li r3, -1-$divr
0x025D896C = bla _divide_dmg
.origin = codecave
;[XCX_DAMAGES_V102J]
;DO NOT port to JP 1.0.2 untill official game servers go offline
.int $mult
[XCX_DAMAGES_V100U]
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
0x02E0C3D8 = li r3, -1-$divr
0x025D88FC = bla _divide_dmg
0x025D88FC = mulli r4, r31, $mult
[XCX_DAMAGES_V100J]
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x02E03228 = li r3, -1-$divr
0x025CD268 = bla _divide_dmg

View File

@ -2,22 +2,15 @@
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = Ground Damage Divisor
path = "Xenoblade Chronicles X/Mods/Battle/Ground damage divisor"
description = Make the game more challenging by dividing the given damage you and your team do to enemies. Doesn't affect the damage numbers that are shown.|Might be experimental since it's not fully been tested yet.||Made by Lashoun.
version = 5
description = Make the game more challenging by dividing the given damage you and your team do to enemies. Doesn't affect the damage numbers that are shown.||Made by Lashoun.
version = 6
[Default]
$divr = 2
[Preset]
category = Damage Divisor
name = Normal Damage (Default)
default = 1
$divr = 1
[Preset]
category = Damage Divisor
name = Damage / 2
$divr = 2
[Preset]
category = Damage Divisor
@ -36,7 +29,7 @@ $divr = 10
[Preset]
category = Damage Divisor
name = Damage / 10
name = Damage / 50
$divr = 50
[Preset]

View File

@ -1,7 +1,6 @@
[XCX_ENEMIESTATS]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
; ----------------------------------------------------------------------------
[XCX_ENEMIESTATS_V101E]
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
; ------------------------------------------------------------------------
; WHO : calcEnParam__3cfsFPQ2_3cfs7SChrPrmUiT2
; WHAT : Apply modificator on enemies stats (HP, Melee Attack, Melee Accuracy, Ranged Attack, Ranged Accuracy, Potential and Evasion)
@ -9,5 +8,23 @@ moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
; 70% = 0.0007
; 50% = 0.0005
; 1% = 0.00001 ; GAME CRASH (enemis are too weak)
0x02E0C5B0 = li r3, -3
0x1003206C = .float $mod
[XCX_ENEMIESTATS_V102U]
moduleMatches = 0x30B6E091 ; 1.0.2U
0x02E0C550 = li r3, -3
0x1003206C = .float $mod
;[XCX_ENEMIESTATS_V102J]
;DO NOT port to JP 1.0.2 untill official game servers go offline
[XCX_ENEMIESTATS_V100U]
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
0x02E0C3D8 = li r3, -3
0x1003206C = .float $mod
[XCX_ENEMIESTATS_V100J]
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x02E03228 = li r3, -3
0x10031FDC = .float $mod

View File

@ -3,23 +3,43 @@ 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.
version = 5
version = 6
[Default]
$mod = 0.001
[Preset]
name = "Set at 25%"
$mod = 0.00025
[Preset]
name = "Set at 50%"
$mod = 0.0005
[Preset]
name = Set at 50%
[Preset]
name = Set at 75%
name = "Set at 75%"
$mod = 0.00075
[Preset]
name = Set at 125%
name = "Set at 100% (default)"
default = 1
[Preset]
name = "Set at 125%"
$mod = 0.00125
[Preset]
name = Set at 150%
name = "Set at 150%"
$mod = 0.0015
[Preset]
name = "Set at 200%"
$mod = 0.002
[Preset]
name = "Hell: Set at 300%"
$mod = 0.003
[Preset]
name = "Impossible: Set at 1000%"
$mod = 0.01

View File

@ -1,8 +1,6 @@
[XCX_RELEASEDIST]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9, 0x8780C48F ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J, 1.0.1J
.origin = codecave
; ----------------------------------------------------------------------------
; WHO : cfs::CfCompoPropertyEnemy::getReleasePcDistanceXZ
; WHAT : Reduce escape distance from enemies (to lose aggro)

View File

@ -1,16 +1,33 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Escape distance reducer"
path = "Xenoblade Chronicles X/Mods/Battle/Escape distance reducer"
description = Reduce escape distance needed to lose aggro from enemies.
version = 5
name = "Enemy de-aggro range reducer"
path = "Xenoblade Chronicles X/Mods/Battle/Enemy de-aggro"
description = Decrease or increase the distance needed to run to lose aggro from enemies.
version = 6
[Default]
$mod = 1.333
$mod = 1.0
[Preset]
name = Apply -25%
name = "Hell: Enemies will never de-aggro"
$mod = 0.0001
[Preset]
name = Apply -50%
name = "Increase Range x2"
$mod = 0.5
[Preset]
name = "Range x1 (default)"
default = 1
[Preset]
name = "Decrease Range / 2"
$mod = 2.0
[Preset]
name = "Decrease Range / 4"
$mod = 4.0
[Preset]
name = "Enemies will not fight at all (game breaking)"
$mod = 500.0

View File

@ -1,9 +1,17 @@
[XCX_OVERDRIVE]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
[XCX_OVERDRIVE_V101E_102U_100U]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07, 0xAB97DE6B, 0x676EB33E ; 1.0.1E, 1.0.2U, 1.0.0E, 1.0.1U, 1.0.0U
; ----------------------------------------------------------------------------
; WHO : Gear::CGear::IsPermit((void))
; WHAT : Always returns true to unlock Overdrive even before chapter 5
0x021B70AC = li r3, $mod
0x021B70C4 = li r3, $mod
0x021B70AC = li r3, 1
0x021B70C4 = li r3, 1
[XCX_OVERDRIVE_V102J]
moduleMatches = 0x7672271D ; 1.0.2J
0x021B6B78 = li r3, $mod
0x021B6B90 = li r3, $mod
[XCX_OVERDRIVE_V100J]
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x021B68F4 = li r3, $mod
0x021B690C = li r3, $mod

View File

@ -2,5 +2,15 @@
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Overdrive unlocked pre-Chapter 5"
path = "Xenoblade Chronicles X/Mods/Battle/Overdrive unlocked"
description = Unleashed the power of Overdrive before Chapter 5.
version = 5
description = Unleash the power of Overdrive before Chapter 5 or relock it after Chapter 5.
version = 6
[Default]
$mod = 1
[Preset]
name = Force Unlock
[Preset]
name = Force Relock
$mod = 0

View File

@ -1,9 +1,5 @@
[XCX_QTE_DOLLLOST_ALL] #################################################################################################
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
0x027F9464 = SetInsure:
0x023EEFB0 = getPropAccessor:
[XCX_QTE_DOLLLOST]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.0U, 1.0.0J
.origin = codecave
_setDestructionExcellent:
@ -43,9 +39,34 @@ _setDestructionGoodExit:
mr r3, r31 ; restore r3 from r31 saved in the stack
blr
[XCX_QTE_DOLLLOST_V101E_V102U]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
0x027F9464 = SetInsure:
0x023EEFB0 = getPropAccessor:
; ----------------------------------------------------------------------------
; WHO : Battle::CSoulVoiceButtonChallenge::applyResult((void))
; WHAT : Cancel Skell destruction if insurance is still valid (or if QTE result is Excellent)
0x0209879C = bla _setDestructionExcellent
0x02098804 = bla _setDestructionGood
[XCX_QTE_DOLLLOST_V102J]
moduleMatches = 0x7672271D ; 1.0.2J
0x027F7008 = SetInsure:
0x023EE5F0 = getPropAccessor:
0x02098268 = bla _setDestructionExcellent
0x020982D0 = bla _setDestructionGood
[XCX_QTE_DOLLLOST_V100U]
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
0x027F93E8 = SetInsure:
0x023EEF40 = getPropAccessor:
0x0209879C = bla _setDestructionExcellent
0x02098804 = bla _setDestructionGood
[XCX_QTE_DOLLLOST_V100J]
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x027F5FDC = SetInsure:
0x023EE120 = getPropAccessor:
0x02097FF4 = bla _setDestructionExcellent
0x0209805C = bla _setDestructionGood

View File

@ -1,6 +1,6 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Soul Challenges - Skell restored"
path = "Xenoblade Chronicles X/Mods/Battle/Soul Challenges - Skell restored"
name = "Soul Challenges - Skell auto restore"
path = "Xenoblade Chronicles X/Mods/Battle/Soul Challenges - Skell auto restore"
description = When your Skell is destroyed and the insurance is still valid, the Skell is automatically restored (use fast travel or die to get it back).
version = 5
version = 6

View File

@ -1,16 +1,26 @@
[XCX_QTE_AUTO_ALL] #################################################################################################
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
[XCX_QTE_AUTO_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 : Battle::CSoulVoiceButtonChallenge::applyResult((void))
; WHAT : Force QTE result on Soul Voices (0 = fail 1 = good, 2 = excellent)
0x0209BA38 = li r9, 2
0x0209BA38 = li r9, $mod
; ----------------------------------------------------------------------------
; WHO : Battle::CSoulVoiceButtonChallenge::updateInternal((float))
; WHAT : Auto Apply QTE (dot not call Battle::CButtonChallengeManager::CallUI)
0x0209D764 = _applyResult:
0x0209D6F0 = b _applyResult
0x0209D720 = b _applyResult
[XCX_QTE_AUTO_V102J]
moduleMatches = 0x7672271D ; 1.0.2J
0x0209B504 = li r9, $mod
0x0209D230 = _applyResult:
0x0209D1BC = b _applyResult
0x0209D1EC = b _applyResult
[XCX_QTE_AUTO_V100J]
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x0209B290 = li r9, $mod
0x0209CFBC = _applyResult:
0x0209CF48 = b _applyResult
0x0209CF78 = b _applyResult

View File

@ -1,6 +1,20 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Soul Challenges - AutoBattles"
path = "Xenoblade Chronicles X/Mods/Battle/Soul Challenges - AutoBattles"
description = QTE during battles are automatically done (force result to Excellent).
version = 5
name = "Soul Challenges - QTE Auto"
path = "Xenoblade Chronicles X/Mods/Battle/Soul Challenges - QTE Auto"
description = QTE during battles are automatically done (force result).|Does not work on skell destroyed soul voice.
version = 6
[Default]
$mod = 2
[Preset]
name = "Force Excellent"
[Preset]
name = "Force Good"
$mod = 1
[Preset]
name = "Force Fail / Disable Soul Voices"
$mod = 0

View File

@ -1,7 +1,14 @@
[XCX_QTE_SPEED_ALL] #################################################################################################
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
[XCX_QTE_SPEED_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 : SoulVoice::CSoulVoice::getDifficulty((void))
; WHAT : QTE speed does not increase
0x022078D4 = li r3, 1
0x022078D4 = li r3, $mod
[XCX_QTE_SPEED_V102J]
moduleMatches = 0x7672271D ; 1.0.2J
0x022073A0 = li r3, $mod
[XCX_QTE_SPEED_V100J]
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x0220711C = li r3, $mod

View File

@ -1,6 +1,24 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Soul Challenges - Difficulty"
path = "Xenoblade Chronicles X/Mods/Battle/Soul Challenges - Difficulty"
description = Speed of QTE does not increase during battles.
version = 5
name = "Soul Challenges - QTE Speed"
path = "Xenoblade Chronicles X/Mods/Battle/Soul Challenges - QTE Speed"
description = Speed of QTE does not increase or decrease during battles.
version = 6
[Default]
$mod = 1
[Preset]
name = Slow
[Preset]
name = Mid
$mod = 2
[Preset]
name = Fast
$mod = 3
[Preset]
name = Faster
$mod = 4

View File

@ -1,12 +1,18 @@
[XCX_DLC]
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
[XCX_DLC_V101E_V102U]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
; ----------------------------------------------------------------------------
; WHO : collectQuestInfoDL__Q2_3cfs15CfSocialManagerFRQ2_2ml45resvector__tm__28_PQ2_3cfs17CfSocialQuestInfo
; WHAT : Disable endgame check to unlock DLC missions
0x022C6B50 = nop
[XCX_DLC_1U]
moduleMatches = 0xAB97DE6B ; 1.0.1U
[XCX_DLC_V102J]
moduleMatches = 0x7672271D ; 1.0.2J
0x022C6560 = nop
0x022C6AE0 = nop
[XCX_DLC_V100U]
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
0x022C6AE0 = nop
[XCX_DLC_V100J]
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x022C6AE0 = nop

View File

@ -3,5 +3,4 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "DLC Quests unlocked"
path = "Xenoblade Chronicles X/Mods/BLADE/DLC Quests unlocked"
description = DLC Support quests are unlocked and accessible right after you are a BLADE member.
version = 5
version = 6

View File

@ -1,13 +1,10 @@
[XCX_TICKETS_DLC_ALL]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
[XCX_TICKETS_DLC]
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 $mission
VarTicketsAmount:
.int 0
; ----------------------------------------------------------------------------
; WHO : menu::MenuMultiQuestInfoWindow::displayInfo((menu::MenuObject *,bool))
; menu::MenuMultiQuestResult::setup((void))
@ -44,23 +41,40 @@ lis r27, VarTicketsAmount@ha
lwz r27, VarTicketsAmount@l(r27)
blr
[XCX_TICKETS_DLC_1E] ############################################################################################
moduleMatches = 0xF882D5CF ; 1.0.1E
_ticketsValueJP:
lis r4, VarTicketsAmount@ha
lwz r4, VarTicketsAmount@l(r4)
blr
[XCX_TICKETS_DLC_V101E]
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
0x02B94718 = bla _ticketsDispBefore
0x02B9FE2C = bla _ticketsDispAfter
0x023CC654 = bla _ticketsValue
[XCX_TICKETS_DLC_2U] ############################################################################################
[XCX_TICKETS_DLC_V102U]
moduleMatches = 0x30B6E091 ; 1.0.2U
0x02B94708 = bla _ticketsDispBefore
0x02B9FE1C = bla _ticketsDispAfter
0x023CC654 = bla _ticketsValue
[XCX_TICKETS_DLC_1U] ############################################################################################
moduleMatches = 0xAB97DE6B ; 1.0.1U
[XCX_TICKETS_DLC_V102J]
moduleMatches = 0x7672271D ; 1.0.2J
0x02B90654 = bla _ticketsDispBefore
0x02B9B938 = bla _ticketsDispAfter ;
0x023CBE48 = bla _ticketsValueJP
0x023CBF2C = bla _ticketsValueJP
[XCX_TICKETS_DLC_V100U]
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
0x02B9468C = bla _ticketsDispBefore
0x02B9FD2C = bla _ticketsDispAfter
0x023CC5E4 = bla _ticketsValue
[XCX_TICKETS_DLC_V100J]
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x02B8DDA8 = bla _ticketsDispBefore
0x02B98F68 = bla _ticketsDispAfter ;
0x023CB978 = bla _ticketsValueJP
0x023CBA5C = bla _ticketsValueJP

View File

@ -2,15 +2,15 @@
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Gain Reward Tickets from DLC or Time Attack missions"
path = "Xenoblade Chronicles X/Mods/BLADE/Gain Reward Tickets from DLC or Time Attack missions"
description = Adds Exchange Tickets in reward of completing Blade missions.
version = 5
description = Adds Exchange Tickets in reward of completing Blade missions.|This mod will not work if More Reward Tickets is enabled.
version = 6
[Default]
$mission = 5
[Preset]
name = "Gain from DLC missions (money/100)"
$mission = 2
[Preset]
name = "Gain from TA missions (exp)"
$mission = 2
[Preset]
name = "Gain from DLC missions (money/100)"
$mission = 5

View File

@ -1,8 +1,27 @@
[XCX_OFFLINEWE]
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
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
; Manage RPs & Appraisal
VarShareRP:
.int 0
;_shareAP = reloc(0x1039C174) ; (1.0.1E, 1.0.2U)
VarShareAP:
.int 0
_loadRP:
lis r12, 0x0022
ori r12, r12, 0x5510
blr
; menu::CTerminalMenu_PieceExchange::offline((void))
; Allow access to piece exchange from network console
_single:
li r3, 0
blr
[XCX_OFFLINEWE_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))
@ -25,108 +44,142 @@ moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
0x022863CC = nop ; or. r0, r6, r7
0x02286474 = li r7, 1 ; for getWERewardList
; Manage RPs & Appraisal
VarShareRP:
.int 0
;_shareAP = reloc(0x1039C174)
VarShareAP:
.int 0
_loadRP:
lis r12, 0x0022
ori r12, r12, 0x5510
blr
0x0282B2F0 = bla _loadRP ; __CPR86__getWorldEnemyInfo__Q2_2fw15SocialDataStoreCFUiRQ3_2fwJ25J14WorldEnemyInfo
; ######################################### TODO : get WERewardList (Telethia Stem Cell)
; cfs::CfSocialManager::getQuestDetailWE((cfs::CfSocialQuestInfoWE &))
; |- __CPR95__getWorldEnemyInfoFromQuest__Q2_2fw15SocialDataStoreCFUiRQ3_2fwJ34J14WorldEnemyInfo
0x0282B454 = li r3, 0 ; getWorldEnemyIndexFromQuestID / Uncomment to show Appraisal Rewards
0x0282B454 = li r3, 0 ; getWorldEnemyIndexFromQuestID
; |- |- __CPR86__getWorldEnemyInfo__Q2_2fw15SocialDataStoreCFUiRQ3_2fwJ25J14WorldEnemyInfo
0x0282B0E4 = li r7, 1 ; cmpwi r7, 0
0x0282B0FC = li r0, 1 ; cmpwi r0, 0
0x0282B170 = li r6, 1 ; to store in 8(r26) -> needed for cmpwi r0, 1 after callback
0x0282B264 = nop ; skip deserializeWorldEnemy
0x0282B410 = li r4, 1 ; for getWERewardList
; cfs::CfSocialManager::getQuestDetailFR((cfs::CfSocialQuestInfoFR &))
0x0228989C = nop ; Uncomment to show Appraisal Rewards
[XCX_OFFLINEWE_1E] ############################################################################################
moduleMatches = 0xF882D5CF ; 1.0.1E
.origin = codecave
[XCX_OFFLINEWE_V101E] ; ############################################################################################
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
0x02AC5C10 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline
; menu::MenuMultiQuestOrder::move((void))
; skip BLADE medals requirement on launch mission
0x02B9B0B0 = li r3, 1 ; Disable call to menu::MenuMultiQuestOrder::canOrderWorldEnemy
; menu::CTerminalMenu_PieceExchange::offline((void))
; Allow access to piece exchange from network console
_single:
li r3, 0
blr
0x02AC613C = ba _single ; menu::CBladeHomuMenu::single((void))
; __CPR129__getMultiQuestReward__Q2_3cfs15CfSocialManagerCFUiRQ2_3mtl68fixed_vector__tm__48_Q3_3cfsJ28J11QuestRewardXCUiL_2_46T1 --> OK
0x022CA324 = nop ; always all items?
[XCX_OFFLINEWE_2U] ############################################################################################
[XCX_OFFLINEWE_V102U] ; ############################################################################################
moduleMatches = 0x30B6E091 ; 1.0.2U
.origin = codecave
0x02AC5C00 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline
0x02B9B0A0 = li r3, 1 ; Disable call to menu::MenuMultiQuestOrder::canOrderWorldEnemy
;0x02BA0CE0 = bla _updateRP ; menu::MenuMultiQuestResult::updateEnemyBoss((menu::MenuObject *))
0x02AC612C = ba _single ; menu::CBladeHomuMenu::single((void))
0x022CA324 = nop ; always all items? ;;
_single:
li r3, 0
blr
[XCX_OFFLINEWE_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
0x022C7A70 = nop ; network test
0x02AC612C = ba _single
0x022C5C64 = li r3, 1 ; fw::SocialDataStore::getWorldEnemyCount(const(void))
0x022C5C90 = li r3, 0x4EE9 ; Quest ID for WE - fw::SocialDataStore::getWorldEnemyQuest(const(unsigned int))
0x022C5FB8 = li r3, 1 ; fw::SocialDataStore::getWorldEnemyCount(const(void))
[XCX_OFFLINEWE_1U] ############################################################################################
moduleMatches = 0xAB97DE6B ; 1.0.1U
0x022C60DC = li r3, 1 ; fw::SocialDataStore::getWorldEnemyCount(const(void))
0x022C610C = li r3, 0x4EED
0x022C6148 = nop ; network test?
0x022C646C = li r3, 1 ; fw::SocialDataStore::getWorldEnemyCount(const(void))
.origin = codecave
0x02285E0C = nop ; or. r0, r6, r7
0x02285E34 = nop ; or. r0, r6, r7
0x02285EDC = li r7, 1 ; for getWERewardList
0x028284C8 = bla _loadRP ; __CPR86__getWorldEnemyInfo__Q2_2fw15SocialDataStoreCFUiRQ3_2fwJ25J14WorldEnemyInfo
0x0282862C = li r3, 0 ; getWorldEnemyIndexFromQuestID
0x028282BC = li r7, 1 ; cmpwi r7, 0
0x028282D4 = li r0, 1 ; cmpwi r0, 0
0x02828348 = li r6, 1 ; to store in 8(r26) -> needed for cmpwi r0, 1 after callback
0x0282843C = nop ; skip deserializeWorldEnemy
0x028285E8 = li r4, 1 ; for getWERewardList
0x022892B4 = nop ; Uncomment to show Appraisal Rewards
0x02AC22D0 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline
0x02B96BCC = li r3, 1 ; Disable call to menu::MenuMultiQuestOrder::canOrderWorldEnemy
0x02AC27FC = ba _single ; menu::CBladeHomuMenu::single((void))
0x022C9D34 = nop ; always all items?
[XCX_OFFLINEWE_V100U] ; ############################################################################################
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
0x02287960 = nop ; (network test?) allow call to cfs::CfSocialQuestManager::update((void))
0x02AC5B84 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline
0x022C7FEC = nop ; network test : lwz r10, 0x1B0(r30) --> rlwinm. r9, r10, 0,30,30
0x022C7FF0 = nop ; network test
0x022C61E4 = li r3, 1 ; fw::SocialDataStore::getWorldEnemyCount(const(void))
0x022C6210 = li r3, 0x4EE9 ; Quest ID for WE - fw::SocialDataStore::getWorldEnemyQuest(const(unsigned int))
0x022C6538 = li r3, 1 ; fw::SocialDataStore::getWorldEnemyCount(const(void))
0x022C668C = li r3, 1 ; fw::SocialDataStore::getWorldEnemyCount(const(void))
0x022C665C = li r3, 1 ; fw::SocialDataStore::getWorldEnemyCount(const(void))
0x022C668C = li r3, 0x4EED
0x022C66C8 = nop ; network test?
0x022C69EC = li r3, 1 ; fw::SocialDataStore::getWorldEnemyCount(const(void))
0x022863A4 = nop ; or. r0, r6, r7
0x022863CC = nop ; or. r0, r6, r7
0x02286474 = li r7, 1 ; for getWERewardList
_loadRP:
lis r12, 0x0022
ori r12, r12, 0x5510
blr
0x0282B274 = bla _loadRP ; __CPR86__getWorldEnemyInfo__Q2_2fw15SocialDataStoreCFUiRQ3_2fwJ25J14WorldEnemyInfo
0x0282B3D8 = li r3, 0 ; getWorldEnemyIndexFromQuestID / Uncomment to show Appraisal Rewards
0x0282B3D8 = li r3, 0 ; getWorldEnemyIndexFromQuestID
0x0282B068 = li r7, 1 ; cmpwi r7, 0
0x0282B080 = li r0, 1 ; cmpwi r0, 0
0x0282B0F4 = li r6, 1 ; to store in 8(r26) -> needed for cmpwi r0, 1 after callback
0x0282B1E8 = nop ; skip deserializeWorldEnemy
0x0282B394 = li r4, 1 ; for getWERewardList
0x0228982C = nop ; Uncomment to show Appraisal Rewards
0x02AC5B84 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline
0x02B9AFB0 = li r3, 1 ; Disable call to menu::MenuMultiQuestOrder::canOrderWorldEnemy
_single:
li r3, 0
blr
0x02AC60B0 = ba _single ; menu::CBladeHomuMenu::single((void))
0x022CA2B4 = nop ; always all items?
[XCX_OFFLINEWE_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
0x022C78FC = nop ; network test
0x022C5AF0 = li r3, 1 ; fw::SocialDataStore::getWorldEnemyCount(const(void))
0x022C5B1C = li r3, 0x4EE9 ; Quest ID for WE - fw::SocialDataStore::getWorldEnemyQuest(const(unsigned int))
0x022C5E44 = li r3, 1 ; fw::SocialDataStore::getWorldEnemyCount(const(void))
0x022C5F68 = li r3, 1 ; fw::SocialDataStore::getWorldEnemyCount(const(void))
0x022C5F98 = li r3, 0x4EED
0x022C5FD4 = nop ; network test?
0x022C62F8 = li r3, 1 ; fw::SocialDataStore::getWorldEnemyCount(const(void))
0x02285B60 = nop ; or. r0, r6, r7
0x02285B88 = nop ; or. r0, r6, r7
0x02285C30 = li r7, 1 ; for getWERewardList
0x0282749C = bla _loadRP ; __CPR86__getWorldEnemyInfo__Q2_2fw15SocialDataStoreCFUiRQ3_2fwJ25J14WorldEnemyInfo
0x02827600 = li r3, 0 ; getWorldEnemyIndexFromQuestID
0x02827290 = li r7, 1 ; cmpwi r7, 0
0x028272A8 = li r0, 1 ; cmpwi r0, 0
0x0282731C = li r6, 1 ; to store in 8(r26) -> needed for cmpwi r0, 1 after callback
0x02827410 = nop ; skip deserializeWorldEnemy
0x028275BC = li r4, 1 ; for getWERewardList
0x02289008 = nop ; Uncomment to show Appraisal Rewards
0x02AC04E8 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline
0x02B94268 = li r3, 1 ; Disable call to menu::MenuMultiQuestOrder::canOrderWorldEnemy
0x02AC0A14 = ba _single ; menu::CBladeHomuMenu::single((void))
0x022C9BC0 = nop ; always all items?

View File

@ -1,6 +1,6 @@
[XCX_OFFLINEWE]
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
; 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
; getServerTimeSec__Q2_2nt10CNetLibNexCFRUL
@ -155,9 +155,8 @@ blr
; A droite les items communs
; A gauche les items si Nemesis battu
[XCX_OFFLINEWE_1E] ############################################################################################
moduleMatches = 0xF882D5CF ; 1.0.1E
[XCX_OFFLINEWE_V101E] ; ############################################################################################
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
.origin = codecave
; menu::MenuMultiQuestOrder::move((void))
@ -262,9 +261,8 @@ blr
;02C23528
;02C23530
[XCX_OFFLINEWE_2U] ############################################################################################
[XCX_OFFLINEWE_V102U] ; ############################################################################################
moduleMatches = 0x30B6E091 ; 1.0.2U
.origin = codecave
;0x02B9B0A0 = li r3, 1 ; Disable call to menu::MenuMultiQuestOrder::canOrderWorldEnemy
@ -275,9 +273,8 @@ blr
0x02AC612C = ba _single
[XCX_OFFLINEWE_1U] ############################################################################################
moduleMatches = 0xAB97DE6B ; 1.0.1U
[XCX_OFFLINEWE_V100U] ; ############################################################################################
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
.origin = codecave
; getServerTimeSec__Q2_2nt10CNetLibNexCFRUL
@ -425,4 +422,3 @@ blr
; __CPR129__getMultiQuestReward__Q2_3cfs15CfSocialManagerCFUiRQ2_3mtl68fixed_vector__tm__48_Q3_3cfsJ28J11QuestRewardXCUiL_2_46T1 --> OK
; 0x022C9E88
0x022CA324 = nop ; always all items?

View File

@ -3,4 +3,4 @@ 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.|You still need medals to start the battle.
version = 5
version = 6

View File

@ -1,8 +1,6 @@
[XCX_UNLOCKPOSTSKELLS_ALL] ################################################################
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
[XCX_UNLOCKPOSTSKELLS]
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 $miranium
.int $resource
.int $ignoreLevel
@ -13,35 +11,47 @@ LbIgnoreLevel:
li r3, 1
blr
[XCX_UNLOCKPOSTSKELLS_1E] ################################################################
moduleMatches = 0xF882D5CF ; 1.0.1E
[XCX_UNLOCKPOSTSKELLS_V101E]
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
; menu::MenuArmsCompanyDevelopSelectBlueprint::CheckEnableDevelop(const(int, bool))
0x02A7A784 = li r3, $miranium
0x02A7A954 = li r3, $resource
; menu::MenuArmsCompany::IsDollLicense(const(void))
0x02A6B838 = li r3, 1 ; always returns true
; menu::MenuArmsCompanyDevelopSelectBlueprint::InitializeItemData((void))
0x02A7B220 = li r30, 0 ; unlock everything
0x02AF8EA8 = b LbIgnoreLevel
[XCX_UNLOCKPOSTSKELLS_2U] ################################################################
[XCX_UNLOCKPOSTSKELLS_V102U]
moduleMatches = 0x30B6E091 ; 1.0.2U
0x02A6B828 = li r3, 1
0x02A7B210 = li r30, 0
0x02A7A774 = li r3, $miranium
0x02A7A944 = li r3, $resource
0x02A6B828 = li r3, 1 ; always returns true
0x02A7B210 = li r30, 0 ; unlock everything
0x02AF8E98 = b LbIgnoreLevel
[XCX_UNLOCKPOSTSKELLS_1U] ################################################################
moduleMatches = 0xAB97DE6B ; 1.0.1U
[XCX_UNLOCKPOSTSKELLS_V102J]
moduleMatches = 0x7672271D ; 1.0.2J
0x02A76CEC = li r3, $miranium
0x02A76EBC = li r3, $resource
0x02A67DA0 = li r3, 1 ; always returns true
0x02A77788 = li r30, 0 ; unlock everything
0x02AF54B8 = b LbIgnoreLevel
0x02A6B7AC = li r3, 1 ; always returns true
0x02A7B194 = li r30, 0 ; unlock everything
[XCX_UNLOCKPOSTSKELLS_V100U]
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
0x02A7A6F8 = li r3, $miranium
0x02A7A8C8 = li r3, $resource
0x02AF8E1C = b LbIgnoreLevel
0x02A6B7AC = li r3, 1 ; always returns true
0x02A7B194 = li r30, 0 ; unlock everything
0x02AF8E1C = b LbIgnoreLevel
[XCX_UNLOCKPOSTSKELLS_V100J]
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x02A75124 = li r3, $miranium
0x02A752F4 = li r3, $resource
0x02A6626C = li r3, 1 ; always returns true
0x02A75BC0 = li r30, 0 ; unlock everything
0x02AF3444 = b LbIgnoreLevel

View File

@ -3,7 +3,7 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Lv60 Skells unlocked"
path = "Xenoblade Chronicles X/Mods/BLADE/Lv60 Skells unlocked"
description = Lv60 Skells and equipment are unlocked and accessible right after you are a BLADE member.
version = 5
version = 6
[Default]
$miranium = 2
@ -17,4 +17,4 @@ name = Normal
name = CHEAT - Ignore Miranium, resources and level requirements
$miranium = 0
$resource = 0
$ignoreLevel = 0
$ignoreLevel = 0

View File

@ -1,15 +1,11 @@
[XCX_BLADE_MORETICKETS]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B, 0x7672271D ; 1.0.1E, 1.0.2U, 1.0.1U, 1.0.2J
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 $mult
.int $uncap
; ----------------------------------------------------------------------------
; WHO : cfs::CfSocialManager::addTradeTicket((int, unsigned int))
; WHAT : Multiply the reward tickets given in many occasions
_moreTickets:
mr r30, r3
cmpwi r4, 0
@ -20,7 +16,6 @@ blr
; ----------------------------------------------------------------------------
; WHO : cfs::CfSocialManager::addTradeTicket((int, unsigned int))
; WHAT : Ignore the max number of tickets we can get
_uncapTickets:
li r5, $uncap
cmpwi r5, 1
@ -31,7 +26,6 @@ blr
; ----------------------------------------------------------------------------
; WHO : menu::MenuMultiQuestInfoWindow::displayInfo((menu::MenuObject *,bool))
; WHAT :
_dispBefore:
lhz r26, 0x8C(r1)
mulli r26, r26, $mult
@ -40,7 +34,6 @@ blr
; ----------------------------------------------------------------------------
; WHO : menu::MenuMultiQuestResult::setup((void))
; WHAT :
_dispAfter:
lhz r5, 0x5778(r29)
mulli r5, r5, $mult
@ -49,7 +42,6 @@ blr
; ----------------------------------------------------------------------------
; WHO : writeListTicket__Q2_4menu19MenuMultiQuestOrderFPQ2_4menu10MenuObjectiQ3_2fw9CItemType4TypeUsUiT5
; WHAT : multiply tickets from piece exchange
_pieceExchange:
mr r5, r29
cmpwi r26, 0x1E
@ -76,10 +68,10 @@ bnelr
mulli r29, r29, $mult
blr
#####################################################################################################
[XCX_BLADE_MORETICKETS_1E]
moduleMatches = 0xF882D5CF ; 1.0.1E
;#####################################################################################################
[XCX_BLADE_MORETICKETS_V101E]
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
0x022CA86C = bla _moreTickets
0x022CAC5C = bla _uncapTickets
0x02B94718 = bla _dispBefore
@ -88,10 +80,9 @@ moduleMatches = 0xF882D5CF ; 1.0.1E
0x02B9C1EC = bla _dispExchangeInit
0x02C7C07C = bla _dispExchangeUpdate
#####################################################################################################
[XCX_BLADE_MORETICKETS_2U]
;#####################################################################################################
[XCX_BLADE_MORETICKETS_V102U]
moduleMatches = 0x30B6E091 ; 1.0.2U
0x022CA86C = bla _moreTickets
0x022CAC5C = bla _uncapTickets
0x02B94708 = bla _dispBefore
@ -100,10 +91,20 @@ moduleMatches = 0x30B6E091 ; 1.0.2U
0x02B9C1DC = bla _dispExchangeInit
0x02C7C01C = bla _dispExchangeUpdate
#####################################################################################################
[XCX_BLADE_MORETICKETS_1U]
moduleMatches = 0xAB97DE6B ; 1.0.1U
;#####################################################################################################
[XCX_BLADE_MORETICKETS_V102J]
moduleMatches = 0x7672271D ; 1.0.2J
0x022CA09C = bla _moreTickets
0x022CA48C = bla _uncapTickets
0x02B90654 = bla _dispBefore
;0x02B9B938 = bla _dispAfter ;not working
0x02B938A8 = bla _pieceExchange
0x02B97D08 = bla _dispExchangeInit
0x02C77570 = bla _dispExchangeUpdate
;#####################################################################################################
[XCX_BLADE_MORETICKETS_V100U]
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
0x022CA7FC = bla _moreTickets
0x022CABEC = bla _uncapTickets
0x02B9468C = bla _dispBefore
@ -112,14 +113,13 @@ moduleMatches = 0xAB97DE6B ; 1.0.1U
0x02B9C0EC = bla _dispExchangeInit
0x02C7BEA4 = bla _dispExchangeUpdate
#####################################################################################################
[XCX_BLADE_MORETICKETS_2J]
moduleMatches = 0x7672271D ; 1.0.2J
0x022CA09C = bla _moreTickets
0x022CA48C = bla _uncapTickets
0x02B90654 = bla _dispBefore
0x02B9B948 = bla _dispAfter
0x02B938A8 = bla _pieceExchange
0x02B97D08 = bla _dispExchangeInit
0x02C77FB8 = bla _dispExchangeUpdate
;#####################################################################################################
[XCX_BLADE_MORETICKETS_V100J]
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x022C9F28 = bla _moreTickets
0x022CA318 = bla _uncapTickets
0x02B8DDA8 = bla _dispBefore
;0x02B98F68 = bla _dispAfter ;not working
0x02B90F84 = bla _pieceExchange
0x02B953A4 = bla _dispExchangeInit
0x02C73A5C = bla _dispExchangeUpdate

View File

@ -3,7 +3,7 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "More Reward Tickets"
path = "Xenoblade Chronicles X/Mods/BLADE/More Reward Tickets"
description = Increase the Tickets gained with Squad tasks and missions.|Uncapped presets ignore max tickets.
version = 5
version = 6
[Default]
$mult = 2
@ -12,6 +12,10 @@ $uncap = 0
[Preset]
name = "Gain more Tickets (x2)"
[Preset]
name = "Gain more Tickets (x3)"
$mult = 3
[Preset]
name = "Gain more Tickets (x5)"
$mult = 5
@ -20,6 +24,10 @@ $mult = 5
name = "Gain more Tickets (x10)"
$mult = 10
[Preset]
name = "Gain more Tickets (x25)"
$mult = 25
[Preset]
name = "Gain more Tickets (x100)"
$mult = 100
@ -28,6 +36,10 @@ $mult = 100
name = "Gain more Tickets (x1000)"
$mult = 1000
[Preset]
name = "Respawn Global Nemesis Yggralith Zero (x500000)"
$mult = 500000
[Preset]
name = Yes
category = "Capped to BLADE level"
@ -36,4 +48,3 @@ category = "Capped to BLADE level"
name = No
category = "Capped to BLADE level"
$uncap = 1

View File

@ -1,10 +1,48 @@
[XCX_SQUADMISSIONS]
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
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 $missionId
;#################### Activate Squad Tasks
;######### Change Squad Mission using main menu
VarSquadMission:
.int 0
_iniPtr:
li r5, 0
lis r30, VarSquadMission@ha
stw r5, VarSquadMission@l(r30)
mr r30, r3
blr
;######### Force Squad Mission number
_forceMission:
lmw r14, 0x1B8(r1)
li r4, $missionId
cmpwi r4, 0
beqlr
mr r3, r4
blr
;######### Force Squad Mission number 1.0.0J --not working
;_forceMissionJP:
;lmw r15, 0x1AC(r1) ;
;li r4, $missionId
;cmpwi r4, 0
;beqlr
;mr r3, r4
;blr
;######### Change Squad Mission using main menu
_savePtr:
li r3, 1
lis r30, VarSquadMission@ha
stw r3, VarSquadMission@l(r30)
blr
[XCX_SQUADMISSIONS_V101E_V102U]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
;################## Activate Squad Tasks
; cfs::CfSocialManager::update((float))
0x022879D0 = nop ; (network test?) allow call to cfs::CfSocialQuestManager::update((void))
@ -17,8 +55,7 @@ moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
0x023ABCAC = nop ; compare with 0x28 - UNLOCK
0x023ABCB8 = nop ; compare with 0x2C - UNLOCK
;##################### BLADE Home Terminal (for Squad Quest Selection)
;################## BLADE Home Terminal (for Squad Quest Selection)
; cfs::CfSocialManager::refreshOrderQuestInfo (called when select an entry in the BLADE menu)
0x022C805C = nop ; test réseau : lwz r10, 0x1B0(r30) --> rlwinm. r9, r10, 0,30,30
0x022C8060 = nop ; test réseau
@ -26,18 +63,6 @@ moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
; collectQuestInfoSQ__Q2_3cfs15CfSocialManagerFRQ2_2ml45resvector__tm__28_PQ2_3cfs17CfSocialQuestInfo
0x022C58BC = nop ; rlwinm. r10, r11, 0,29,29
;#################### Change Squad Mission using main menu
VarSquadMission:
.int 0
_iniPtr:
li r5, 0
lis r30, VarSquadMission@ha
stw r5, VarSquadMission@l(r30)
mr r30, r3
blr
; cfs::CfSquadMissionManager::joinMission((cfs::CfSquadTargetCount const &))
0x023B74A0 = bla _iniPtr
@ -45,59 +70,37 @@ blr
0x023ABDF4 = _gotoTimeout:
0x023ABE54 = _gotoNext:
0x023ABDC8 = lis r3, VarSquadMission@ha
0x023ABDCC = lwz r7, VarSquadMission@l(r3)
0x023ABDC8 = lis r3, VarSquadMission@ha
0x023ABDCC = lwz r7, VarSquadMission@l(r3)
0x023ABDD0 = cmpwi r7, 1
0x023ABDD4 = beq _gotoTimeout
0x023ABDD8 = b _gotoNext
#################### Force Squad Mission number
.origin = codecave
.int $missionId
_forceMission:
lmw r14, 0x1B8(r1)
li r4, $missionId
cmpwi r4, 0
beqlr
mr r3, r4
blr
0x023AB7C4 = bla _forceMission
#################### Change Squad Mission using main menu
_savePtr:
li r3, 1
lis r30, VarSquadMission@ha
stw r3, VarSquadMission@l(r30)
blr
#####################################################################################################
[XCX_SQUADMISSIONS_1E]
moduleMatches = 0xF882D5CF ; 1.0.1E
;####################################################################################################
[XCX_SQUADMISSIONS_V101E]
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
; getServerTimeSec__Q2_2nt10CNetLibNexCFRUL
0x0295EA10 = nop
0x0295EA14 = li r0, 42
; menu::MenuSquadMission::process((void))
0x02BFC7C0 = li r11, 1 ; garder affichée la liste des tasks en bas à droite
##################### BLADE Home Terminal (for Squad Quest Selection)
0x02BFC7C0 = li r11, 1 ; garder affichée la liste des tasks en bas à droite ; keep displayed the list of tasks at the bottom right
;################## BLADE Home Terminal (for Squad Quest Selection)
0x02AC5C10 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline
#################### Change Squad Mission using main menu
;################## Change Squad Mission using main menu
0x02B85134 = bla _savePtr
0x02B8514C = bla _savePtr
0x02B85084 = li r11, 1
0x02B850A8 = li r11, 1
#####################################################################################################
[XCX_SQUADMISSIONS_2U]
;####################################################################################################
[XCX_SQUADMISSIONS_V102U]
moduleMatches = 0x30B6E091 ; 1.0.2U
; getServerTimeSec__Q2_2nt10CNetLibNexCFRUL
@ -105,26 +108,58 @@ moduleMatches = 0x30B6E091 ; 1.0.2U
0x0295EA04 = li r0, 42
; menu::MenuSquadMission::process((void))
0x02BFC7B0 = li r11, 1
##################### BLADE Home Terminal (for Squad Quest Selection)
0x02BFC7B0 = li r11, 1 ; garder affichée la liste des tasks en bas à droite ; keep displayed the list of tasks at the bottom right
;################## BLADE Home Terminal (for Squad Quest Selection)
0x02AC5C00 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline
#################### Change Squad Mission using main menu
;################## Change Squad Mission using main menu
0x02B85124 = bla _savePtr
0x02B8513C = bla _savePtr
0x02B85074 = li r11, 1
0x02B85098 = li r11, 1
#####################################################################################################
[XCX_SQUADMISSIONS_1U]
moduleMatches = 0xAB97DE6B ; 1.0.1U
;####################################################################################################
[XCX_SQUADMISSIONS_V102J]
moduleMatches = 0x7672271D ; 1.0.2J
0x022873E8 = nop ; (network test?) allow call to cfs::CfSocialQuestManager::update((void))
0x023AB068 = nop ; 0x6B8(r12) == 0
0x023AB098 = nop ; isHost
0x023AB24C = li r5, 60 ; force 0x24 - UNLOCK
0x023AB3F4 = nop ; isHost
0x0239FCB8 = nop ; isHost
0x023AB490 = nop ; compare with 0x28 - UNLOCK
0x023AB49C = nop ; compare with 0x2C - UNLOCK
0x022C7A6C = nop ; test réseau : lwz r10, 0x1B0(r30) --> rlwinm. r9, r10, 0,30,30
0x022C7A70 = nop ; test réseau
0x022C52CC = nop ; rlwinm. r10, r11, 0,29,29
.origin = codecave
0x023B6C84 = bla _iniPtr
0x023AB5D8 = _gotoTimeout:
0x023AB638 = _gotoNext:
0x023AB5AC = lis r3, VarSquadMission@ha
0x023AB5B0 = lwz r7, VarSquadMission@l(r3)
0x023AB5B4 = cmpwi r7, 1
0x023AB5B8 = beq _gotoTimeout
0x023AB5BC = b _gotoNext
0x023AAFA8 = bla _forceMission
0x0295B7EC = nop
0x0295B7F0 = li r0, 42
0x02BF81D0 = li r11, 1 ; garder affichée la liste des tasks en bas à droite ; keep displayed the list of tasks at the bottom right
0x02AC22D0 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline
0x02B81070 = bla _savePtr
0x02B81088 = bla _savePtr
0x02B80FC0 = li r11, 1
0x02B80FE4 = li r11, 1
;####################################################################################################
[XCX_SQUADMISSIONS_V100U]
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
0x02287960 = nop ; (network test?) allow call to cfs::CfSocialQuestManager::update((void))
0x023AB814 = nop ; 0x6B8(r12) == 0
0x023AB844 = nop ; isHost
@ -137,53 +172,61 @@ moduleMatches = 0xAB97DE6B ; 1.0.1U
0x022C7FF0 = nop ; test réseau
0x022C584C = nop ; rlwinm. r10, r11, 0,29,29
VarSquadMission:
.int 0
_iniPtr:
li r5, 0
lis r30, VarSquadMission@ha
stw r5, VarSquadMission@l(r30)
mr r30, r3
blr
0x023B7430 = bla _iniPtr
0x023ABD84 = _gotoTimeout:
0x023ABDE4 = _gotoNext:
0x023ABD58 = lis r3, VarSquadMission@ha
0x023ABD5C = lwz r7, VarSquadMission@l(r3)
0x023ABD58 = lis r3, VarSquadMission@ha
0x023ABD5C = lwz r7, VarSquadMission@l(r3)
0x023ABD60 = cmpwi r7, 1
0x023ABD64 = beq _gotoTimeout
0x023ABD68 = b _gotoNext
#################### Force Squad Mission number
.int $missionId
_forceMission:
lmw r14, 0x1B8(r1)
li r4, $missionId
cmpwi r4, 0
beqlr
mr r3, r4
blr
0x023AB754 = bla _forceMission
#################### Change Squad Mission using main menu
_savePtr:
li r3, 1
lis r30, VarSquadMission@ha
stw r3, VarSquadMission@l(r30)
blr
0x0295E984 = nop
0x0295E988 = li r0, 42
0x02BFC6C0 = li r11, 1 ; garder affichée la liste des tasks en bas à droite
0x02BFC6C0 = li r11, 1 ; garder affichée la liste des tasks en bas à droite ; keep displayed the list of tasks at the bottom right
0x02AC5B84 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline
0x02B850A8 = bla _savePtr
0x02B850C0 = bla _savePtr
0x02B84FF8 = li r11, 1
0x02B8501C = li r11, 1
0x02B8501C = li r11, 1
;####################################################################################################
;[XCX_SQUADMISSIONS_V100J] ;;;;;; 1.0.0J broken, not working (';' is comment symbol)
;moduleMatches = 0x785CA8A9 ; 1.0.0J
;0x0228713C = nop ; (network test?) allow call to cfs::CfSocialQuestManager::update((void))
;0x023AAC20 = nop ; 0x6B8(r12) == 0
;0x023AAC50 = nop ; isHost
;0x023AADA4 = li r9, 60 ; force 0x24 - UNLOCK ;
;0x023AAF4C = nop ; isHost
;0x0239F9A4 = nop ; isHost
;0x023AAFE8 = nop ; compare with 0x28 - UNLOCK
;0x023AAFF4 = nop ; compare with 0x2C - UNLOCK
;0x022C78F8 = nop ; test réseau : lwz r10, 0x1B0(r30) --> rlwinm. r9, r10, 0,30,30
;0x022C78FC = nop ; test réseau
;0x022C5158 = nop ; rlwinm. r10, r11, 0,29,29
;0x023B6168 = bla _iniPtr
;0x023AB134 = _gotoTimeout: ;
;0x023AB194 = _gotoNext: ;
;0x023AB104 = lis r12, VarSquadMission@ha ;
;0x023AB108 = lwz r12, VarSquadMission@l(r12) ;
;0x023AB10C = cmpwi r12, 1 ;
;0x023AB110 = beq _gotoTimeout
;0x023AB114 = b _gotoNext
;0x023AAB68 = bla _forceMissionJP ;
;0x0295A05C = nop
;0x0295A060 = li r0, 42
;0x02BF5364 = li r11, 1 ; garder affichée la liste des tasks en bas à droite ; keep displayed the list of tasks at the bottom right
;0x02AC04E8 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline
;0x02B7EAC0 = bla _savePtr
;0x02B7EAD8 = bla _savePtr
;0x02B7EA10 = li r11, 1
;0x02B7EA34 = li r11, 1

View File

@ -2,8 +2,8 @@
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Squad tasks and missions are available offline"
path = "Xenoblade Chronicles X/Mods/BLADE/Offline Squad tasks and missions"
description = Squad tasks and missions are available offline. Presets allow to select a Squad Mission, or you can use [Social > Squad Select] menu for random selection.
version = 5
description = Squad tasks and missions are available offline. Presets allow to select a Squad Mission, or you can use [Social > Squad Select] menu for random selection.||Recommended to be combined with More Reward Tickets (x5).
version = 6
[Default]
$missionId = 0
@ -77,16 +77,36 @@ $missionId = 16
[Preset]
name = "N17: Monoceros,Brambloo Shoot(c),Progen,Visigel,Jia Mian(t)"
$missionId = 17
$missionId = 20
[Preset]
name = "N18: Sacrifole,Jacul,Dieter(t),Arenatect,Zig"
$missionId = 18
$missionId = 21
[Preset]
name = "N19: Aprica,Sylooth,Tectinsula,Xe-dom,Coronid"
$missionId = 19
$missionId = 22
[Preset]
name = "N20: Aeviter,Vigent,Virago,Tersqual,Myuena Cactus(c)"
$missionId = 20
$missionId = 23
[Preset]
name = "N21: Unused squad mission"
$missionId = 17
[Preset]
name = "N22: Unused squad mission"
$missionId = 18
[Preset]
name = "N23: Unused squad mission"
$missionId = 19
[Preset]
name = "N24: Unused squad mission"
$missionId = 24
[Preset]
name = "N25: Unused squad mission"
$missionId = 25

View File

@ -1,24 +1,22 @@
[XCX_COLLECTIBLESRANGE_ALL]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
[XCX_COLLECTIBLESRANGE]
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
; ----------------------------------------------------------------------------
; WHO : cfs::CfPopManagerItem::updateTouchItem((void))
; WHAT : Initialize collectibles distance
_rangeInnerConst:
.float 40.0
.float $rangeinner
_heightInnerConst:
.float 8.0
.float $heightinner
_rangeDollConst:
.float 64.0
.float $rangedoll
_heightDollConst:
.float 64.0
.float $heightdoll
_rangeFlightConst:
.float 64.0
.float $rangeflight
_heightFlightConst:
.float 52.0
.float $heightflight
_itemRangeInner:
lis r5, _rangeInnerConst@ha
@ -56,9 +54,9 @@ lfs f0, _heightFlightConst@l(r5)
fadd f0, f13, f0
blr
[XCX_COLLECTIBLESRANGE] #################################################################################################
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
[XCX_COLLECTIBLESRANGE_V101E_V102U]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
0x02389B80 = bla _itemRangeInner
0x02389BB8 = bla _itemHeightInner
0x02389C3C = bla _itemRangeDoll
@ -66,12 +64,29 @@ moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
0x02389CEC = bla _itemRangeFlight
0x02389D30 = bla _itemHeightFlight
[XCX_COLLECTIBLESRANGE_1U] #################################################################################################
moduleMatches = 0xAB97DE6B ; 1.0.1U
[XCX_COLLECTIBLESRANGE_V102J]
moduleMatches = 0x7672271D ; 1.0.2J
0x023893B4 = bla _itemRangeInner
0x023893EC = bla _itemHeightInner
0x02389470 = bla _itemRangeDoll
0x023894A8 = bla _itemHeightDoll
0x02389520 = bla _itemRangeFlight
0x02389564 = bla _itemHeightFlight
[XCX_COLLECTIBLESRANGE_V100U]
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
0x02389B10 = bla _itemRangeInner
0x02389B48 = bla _itemHeightInner
0x02389BCC = bla _itemRangeDoll
0x02389C04 = bla _itemHeightDoll
0x02389C7C = bla _itemRangeFlight
0x02389CC0 = bla _itemHeightFlight
[XCX_COLLECTIBLESRANGE_V100J]
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x02389240 = bla _itemRangeInner
0x02389278 = bla _itemHeightInner
0x023892FC = bla _itemRangeDoll
0x02389334 = bla _itemHeightDoll
0x023893AC = bla _itemRangeFlight
0x023893F0 = bla _itemHeightFlight

View File

@ -2,5 +2,25 @@
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Catch range mod"
path = "Xenoblade Chronicles X/Mods/Collectibles/Catch range mod"
description = Increase the distance from which collectibles are looted (no preset needed).
version = 5
description = Increase the distance from which collectibles are grabbed.
version = 6
[Default]
$rangeinner = 40.0
$heightinner = 8.0
$rangedoll = 64.0
$heightdoll = 64.0
$rangeflight = 64.0
$heightflight = 52.0
[Preset]
name = Big Range
[Preset]
name = Bigger Range
$rangeinner = 80.0
$heightinner = 16.0
$rangedoll = 128.0
$heightdoll = 128.0
$rangeflight = 128.0
$heightflight = 104.0

View File

@ -1,23 +1,29 @@
[XCX_NOITEMSELL]
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
[XCX_NOITEMSELL_V101E_V102U]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
; ----------------------------------------------------------------------------
; WHO : addItem__Q2_3cfs9CfItemBoxSFQ3_2fw9CItemType4TypeUiRQ2_3cfs12CfItemHandle
; WHAT : instead of selling item, return 0 (no systemlog)
0x02365A94 = li r31, 0 ; sellItem
0x02365A94 = li r31, $mod ; sellItem
; ----------------------------------------------------------------------------
; WHO : cfs::CfPopManagerItem::updateTouchItem((void))
; WHAT : exit code if addItem returns 0 (blue gem not collected and no sound)
0x0238A1BC = _exit:
0x02389EF8 = beq _exit
[XCX_NOITEMSELL_1U] ######################################################################
moduleMatches = 0xAB97DE6B ; 1.0.1U
0x02365A24 = li r31, 0 ; sellItem
[XCX_NOITEMSELL_V102J]
moduleMatches = 0x7672271D ; 1.0.2J
0x023652C8 = li r31, $mod ; sellItem
0x023899F0 = _exit:
0x0238972C = beq _exit
[XCX_NOITEMSELL_V100U]
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
0x02365A24 = li r31, $mod ; sellItem
0x0238A14C = _exit:
0x02389E88 = beq _exit
[XCX_NOITEMSELL_V100J]
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x02365154 = li r31, $mod ; sellItem
0x0238987C = _exit:
0x023895B8 = beq _exit

View File

@ -2,6 +2,15 @@
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Ignore 100th"
path = "Xenoblade Chronicles X/Mods/Collectibles/Ignore 100th"
description = Do not collect if you have 99 of the items, and don't sell it (no preset needed).
version = 5
description = Ignore items past 99|Do not collect if you have 99 of the item, and don't sell it.||Collect items past 99|Collect even if you have 99 of the item, does not give any extra items.
version = 6
[Default]
$mod = 0
[Preset]
name = Ignore items past 99
[Preset]
name = Collect items past 99
$mod = 1

View File

@ -1,18 +1,22 @@
[XCX_MAXSLOTS_1E] ######################################################################
moduleMatches = 0xF882D5CF ; 1.0.1E
[XCX_MAXSLOTS_V101E]
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
; ----------------------------------------------------------------------------
; WHO : Cshop::updateLuItem((void))
; WHAT : max 3 slots per armor L shop
0x02A3AA18 = li r0, 3
[XCX_MAXSLOTS_2U] ######################################################################
moduleMatches = 0x30B6E091 ;1.0.2U
[XCX_MAXSLOTS_V102U]
moduleMatches = 0x30B6E091 ; 1.0.2U
0x02A3AA08 = li r0, 3
[XCX_MAXSLOTS_1U] ######################################################################
moduleMatches = 0xAB97DE6B ; 1.0.1U
[XCX_MAXSLOTS_V102J]
moduleMatches = 0x7672271D ; 1.0.2J
0x02A3721C = li r0, 3 ;
0x02A3A98C = li r0, 3
[XCX_MAXSLOTS_V100U]
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
0x02A3A98C = li r0, 3
[XCX_MAXSLOTS_V100J]
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x02A35764 = li r0, 3 ;

View File

@ -3,4 +3,4 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Armors can have 3 augment slots"
path = "Xenoblade Chronicles X/Mods/Equipment/Armors can have 3 augment slots"
description = Using L's shop, you can have 3 augment slots on your EQUIPPED armors (ground and skell).
version = 5
version = 6

View File

@ -1,8 +1,6 @@
[XCX_UPGRADENOLIMIT_ALL] ################################################################
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
[XCX_UPGRADENOLIMIT]
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 $checkSelectItem
.int $checkStrengthen
@ -23,30 +21,26 @@ lwz r3, VarUpgradeCount@l(r3)
cmpwi r3, 0xF
blr
[XCX_UPGRADENOLIMIT_1E] ################################################################
moduleMatches = 0xF882D5CF ; 1.0.1E
[XCX_UPGRADENOLIMIT_V101E] ; ################################################################
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
; ----------------------------------------------------------------------------
; WHO : menu::MenuArmsCompanyAffixSelectItem::CheckAffixStrengthen
; WHAT : Unlimited upgrades (equipment selection menu)
0x02A6DCA8 = li r3, 0 ; Ignore upgrades counter
0x02A6DFFC = li r3, $checkSelectItem
; ----------------------------------------------------------------------------
; WHO : menu::MenuArmsCompanyAffixStrengthen::CheckAffixStrengthen
; WHAT : Unlimited upgrades (affix selection menu)
0x02A72134 = li r10, 99 ; Ignore upgrades counter
0x02A723B4 = li r3, $checkStrengthen
0x02A71F38 = bla SaveUpgradeCount
0x02A7218C = bla CtrlUpgradeCount
[XCX_UPGRADENOLIMIT_2U] ################################################################
[XCX_UPGRADENOLIMIT_V102U] ; ################################################################
moduleMatches = 0x30B6E091 ; 1.0.2U
0x02A6DC98 = li r3, 0
0x02A6DFEC = li r3, $checkSelectItem
@ -56,9 +50,19 @@ moduleMatches = 0x30B6E091 ; 1.0.2U
0x02A71F28 = bla SaveUpgradeCount
0x02A7217C = bla CtrlUpgradeCount
[XCX_UPGRADENOLIMIT_1U] ################################################################
moduleMatches = 0xAB97DE6B ; 1.0.1U
[XCX_UPGRADENOLIMIT_V102J] ; ################################################################
moduleMatches = 0x7672271D ; 1.0.2J
0x02A6A210 = li r3, 0 ; Ignore upgrades counter
0x02A6A564 = li r3, $checkSelectItem
0x02A6E69C = li r10, 99 ; Ignore upgrades counter
0x02A6E91C = li r3, $checkStrengthen
0x02A6E4A0 = bla SaveUpgradeCount
0x02A6E6F4 = bla CtrlUpgradeCount
[XCX_UPGRADENOLIMIT_V100U] ; ################################################################
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
0x02A6DC1C = li r3, 0 ; Ignore upgrades counter
0x02A6DF70 = li r3, $checkSelectItem
@ -67,3 +71,15 @@ moduleMatches = 0xAB97DE6B ; 1.0.1U
0x02A71EAC = bla SaveUpgradeCount
0x02A72100 = bla CtrlUpgradeCount
[XCX_UPGRADENOLIMIT_V100J] ; ################################################################
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x02A686DC = li r3, 0 ; Ignore upgrades counter
0x02A68A30 = li r3, $checkSelectItem
0x02A6CB2C = li r10, 99 ; Ignore upgrades counter
0x02A6CDAC = li r3, $checkStrengthen
0x02A6C930 = bla SaveUpgradeCount
0x02A6CB84 = bla CtrlUpgradeCount

View File

@ -3,7 +3,7 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Unlimited augment upgrades"
path = "Xenoblade Chronicles X/Mods/Equipment/Unlimited augment upgrades"
description = You can upgrade infinitely all the augments inside a piece of equipment.
version = 5
version = 6
[Default]
$checkSelectItem = 5

View File

@ -1,8 +1,6 @@
[XCX_UNLOCKAUGMENTS_ALL] ################################################################
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
[XCX_UNLOCKAUGMENTS]
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 $checkIgnoreMiranium
.int $checkIgnoreMaterials
@ -20,13 +18,12 @@ exit_cmq:
stb r3, 0xC(r1)
blr
[XCX_UNLOCKAUGMENTS_1E] ################################################################
moduleMatches = 0xF882D5CF ; 1.0.1E
[XCX_UNLOCKAUGMENTS_V101E] ; ################################################################
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
; ----------------------------------------------------------------------------
; WHO : menu::MenuArmsCompanyDeviceList::CheckEnableCreateByDeviceID
; WHAT : Unlimited augments
0x02A817A0 = li r3, 0 ; all augments are known
0x02A817C8 = li r3, $checkIgnoreMiranium ; ignore miranium requirement
0x02A81A3C = li r3, $checkIgnoreMaterials ; ignore materials requirement
@ -36,9 +33,8 @@ moduleMatches = 0xF882D5CF ; 1.0.1E
0x02A81478 = bla ChangeMaterialsQuantity
0x02A814E4 = bla ChangeMaterialsQuantity
[XCX_UNLOCKAUGMENTS_2U] ################################################################
[XCX_UNLOCKAUGMENTS_V102U] ; ################################################################
moduleMatches = 0x30B6E091 ; 1.0.2U
0x02A81790 = li r3, 0
0x02A817B8 = li r3, $checkIgnoreMiranium
0x02A81A2C = li r3, $checkIgnoreMaterials
@ -48,9 +44,19 @@ moduleMatches = 0x30B6E091 ; 1.0.2U
0x02A81468 = bla ChangeMaterialsQuantity
0x02A814D4 = bla ChangeMaterialsQuantity
[XCX_UNLOCKAUGMENTS_1U] ################################################################
moduleMatches = 0xAB97DE6B ; 1.0.1U
[XCX_UNLOCKAUGMENTS_V102J] ; ################################################################
moduleMatches = 0x7672271D ; 1.0.2J
0x02A7DD08 = li r3, 0
0x02A7DD30 = li r3, $checkIgnoreMiranium
0x02A7DFA4 = li r3, $checkIgnoreMaterials
0x02A7D96C = bla ChangeMaterialsQuantity
0x02A7D970 = cmpwi r31, 0
0x02A7D9E0 = bla ChangeMaterialsQuantity
0x02A7DA4C = bla ChangeMaterialsQuantity
[XCX_UNLOCKAUGMENTS_V100U] ; ################################################################
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
0x02A81714 = li r3, 0
0x02A8173C = li r3, $checkIgnoreMiranium
0x02A819B0 = li r3, $checkIgnoreMaterials
@ -59,3 +65,14 @@ moduleMatches = 0xAB97DE6B ; 1.0.1U
0x02A8137C = cmpwi r31, 0
0x02A813EC = bla ChangeMaterialsQuantity
0x02A81458 = bla ChangeMaterialsQuantity
[XCX_UNLOCKAUGMENTS_V100J] ; ################################################################
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x02A7C108 = li r3, 0
0x02A7C130 = li r3, $checkIgnoreMiranium
0x02A7C3A4 = li r3, $checkIgnoreMaterials
0x02A7BD6C = bla ChangeMaterialsQuantity
0x02A7BD70 = cmpwi r31, 0
0x02A7BDE0 = bla ChangeMaterialsQuantity
0x02A7BE4C = bla ChangeMaterialsQuantity

View File

@ -3,7 +3,7 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Unlock all augments"
path = "Xenoblade Chronicles X/Mods/Equipment/Unlock all augments"
description = All the augments are already known at the shop, and with the CHEAT preset they cost nothing.
version = 5
version = 6
[Default]
$checkIgnoreMiranium = 5
@ -16,4 +16,3 @@ name = "Normal"
name = "CHEAT - Ignore Miranium and resources requirements"
$checkIgnoreMiranium = 0
$checkIgnoreMaterials = 0

View File

@ -1,14 +1,11 @@
[XCX_BATTLEPOINTSX_ALL] ############################################################################
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
[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
_exp:
li r3, $mod
mullw r0, r0, r3
@ -18,7 +15,6 @@ blr
; ----------------------------------------------------------------------------
; WHO : addInnerExpChara__Q2_6Battle14CBattleManagerFUiN21
; WHAT : Multiply the battle points gained when a new level is reached
_exp2:
li r4, $mod
mullw r9, r9, r4
@ -28,7 +24,6 @@ blr
; ----------------------------------------------------------------------------
; WHO : addTreasure__Q2_3cfs10CfTBoxUtilSFUib
; WHAT : Multiply the battle points given by treasures or exploration
_expTreasure:
li r3, $mod
mullw r3, r31, r3
@ -38,7 +33,6 @@ blr
; ----------------------------------------------------------------------------
; WHO : addReward__Q2_3cfs11CfSquadUtilSFUiT1
; WHAT : Multiply the experience points given by Squad missions
_expSquadValue:
li r4, $mod
mullw r3, r3, r4
@ -48,7 +42,6 @@ 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
@ -58,16 +51,15 @@ 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)
blr
[XCX_BATTLEPOINTSX_1E] ############################################################################
moduleMatches = 0xF882D5CF ; 1.0.1E
[XCX_BATTLEPOINTSX_V101E] ; ############################################################################
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
0x020C4A74 = bla _exp
0x020C1C48 = bla _exp2
0x022D8EDC = bla _expTreasure
@ -76,11 +68,8 @@ moduleMatches = 0xF882D5CF ; 1.0.1E
0x02B94730 = bla _dispBefore
0x02B9FEE0 = bla _dispAfter
[XCX_BATTLEPOINTSX_2U] ############################################################################
[XCX_BATTLEPOINTSX_V102U] ; ############################################################################
moduleMatches = 0x30B6E091 ; 1.0.2U
.origin = codecave
0x020C4A74 = bla _exp
0x020C1C48 = bla _exp2
0x022D8EDC = bla _expTreasure
@ -89,13 +78,32 @@ moduleMatches = 0x30B6E091 ; 1.0.2U
0x02B94720 = bla _dispBefore
0x02B9FED0 = bla _dispAfter
[XCX_BATTLEPOINTSX_1U] ############################################################################
moduleMatches = 0xAB97DE6B ; 1.0.1U
[XCX_BATTLEPOINTSX_V102J] ; ############################################################################
moduleMatches = 0x7672271D ; 1.0.2J
0x020C4540 = bla _exp
0x020C1714 = bla _exp2
0x022D870C = bla _expTreasure
0x023CBDD4 = bla _expSquadValue
0x023CBEB8 = bla _expSquadValue
0x02B9066C = bla _dispBefore
0x02B9B998 = bla _dispAfter
[XCX_BATTLEPOINTSX_V100U] ; ############################################################################
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
0x020C4A74 = bla _exp
0x020C1C48 = bla _exp2
0x022D8E6C = bla _expTreasure
0x023CC700 = bla _expSquadValue
0x023CC700 = bla _expSquadValue
0x023CC7C4 = bla _expSquadValue
0x02B946A4 = bla _dispBefore
0x02B9FDE0 = bla _dispAfter
[XCX_BATTLEPOINTSX_V100J] ; ############################################################################
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x020C42BC = bla _exp
0x020C1490 = bla _exp2
0x022D8598 = bla _expTreasure
0x023CB904 = bla _expSquadValue
0x023CB9E8 = bla _expSquadValue
0x02B8DDBC = bla _dispBefore
0x02B98FC4 = bla _dispAfter

View File

@ -3,7 +3,7 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Battle Points X"
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.
version = 5
version = 6
[Default]
$mod = 2
@ -11,6 +11,10 @@ $mod = 2
[Preset]
name = "Quantity x2"
[Preset]
name = "Quantity x3"
$mod = 3
[Preset]
name = "Quantity x5"
$mod = 5
@ -30,4 +34,3 @@ $mod = 100
[Preset]
name = "Quantity x1000"
$mod = 1000

View File

@ -1,23 +1,35 @@
[XCX_BLADEX]
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
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 : 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_1U] ######################################################################
moduleMatches = 0xAB97DE6B ; 1.0.1U
[XCX_BLADEX_V102U]
moduleMatches = 0x30B6E091 ; 1.0.2U
0x0288E610 = nop
0x02E0C550 = li r3, -1
0x0288E614 = li r3, $mod
.origin = codecave
.int $mod
;[XCX_BLADEX_V102J]
;moduleMatches = 0x7672271D ; 1.0.2J
;0x = nop ; broken
;0x = li r3, -1 ; broken
;0x = li r3, $mod ; broken
[XCX_BLADEX_V100U]
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
0x0288E594 = nop
0x0288E598 = li r3, $mod
0x02E0C3D8 = li r3, -1
0x0288E598 = li r3, $mod
;[XCX_BLADEX_V100J]
;moduleMatches = 0x785CA8A9 ; 1.0.0J ;;;
;getUnionBasePoint__Q2_2fw11SocialUnionFi does not exist

View File

@ -3,7 +3,7 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "BLADE Points X"
path = "Xenoblade Chronicles X/Mods/Experience/BLADE Points"
description = Change the amount of BLADE points gained in various situations.
version = 5
version = 6
[Default]
$mod = 2
@ -11,6 +11,10 @@ $mod = 2
[Preset]
name = "x2"
[Preset]
name = "x3"
$mod = 3
[Preset]
name = "x5"
$mod = 5

View File

@ -1,14 +1,11 @@
[XCX_CLASSEXPX]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
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
_expBattle:
li r12, $mod
mullw r31, r3, r12
@ -17,7 +14,6 @@ blr
; ----------------------------------------------------------------------------
; WHO : addReward__Q2_3cfs11CfSquadUtilSFUiT1
; WHAT : Multiply the experience points given by Squad missions
_expSquadValue:
li r4, $mod
mullw r3, r3, r4
@ -33,36 +29,49 @@ blr
; ----------------------------------------------------------------------------
; WHO : menu::MenuMultiQuestResult::setup((void))
; WHAT :
_dispAfter:
li r5, $mod
mullw r3, r3, r5
stw r3, 0x80(r1)
blr
[XCX_CLASSEXPX_1E] ############################################################################
moduleMatches = 0xF882D5CF ; 1.0.1E
[XCX_CLASSEXPX_V101E] ; ############################################################################
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
0x020C4A28 = bla _expBattle
0x023CC750 = bla _expSquadValue
0x023CC814 = bla _expSquadValue
0x02B91324 = bla _dispBefore
0x02B9FF44 = bla _dispAfter
[XCX_CLASSEXPX_2U] ############################################################################
[XCX_CLASSEXPX_V102U] ; ############################################################################
moduleMatches = 0x30B6E091 ; 1.0.2U
0x020C4A28 = bla _expBattle
0x023CC750 = bla _expSquadValue
0x023CC814 = bla _expSquadValue
0x02B91314 = bla _dispBefore
0x02B9FF34 = bla _dispAfter
[XCX_CLASSEXPX_1U] ############################################################################
moduleMatches = 0xAB97DE6B ; 1.0.1U
[XCX_CLASSEXPX_V102J] ; ############################################################################
moduleMatches = 0x7672271D ; 1.0.2J
0x020C44F4 = bla _expBattle
0x023CBDB4 = bla _expSquadValue
0x023CBE98 = bla _expSquadValue
0x02B8D260 = bla _dispBefore
0x02B9B9FC = bla _dispAfter
[XCX_CLASSEXPX_V100U] ; ############################################################################
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
0x020C4A28 = bla _expBattle
0x023CC6E0 = bla _expSquadValue
0x023CC7A4 = bla _expSquadValue
0x02B91298 = bla _dispBefore
0x02B9FE44 = bla _dispAfter
[XCX_CLASSEXPX_V100J] ; ############################################################################
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x020C4270 = bla _expBattle
0x023CB8E4 = bla _expSquadValue
0x023CB9C8 = bla _expSquadValue
0x02B8AB48 = bla _dispBefore
0x02B99024 = bla _dispAfter

View File

@ -3,7 +3,7 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Class Exp Points X"
path = "Xenoblade Chronicles X/Mods/Experience/Class Exp Points"
description = Change the amount of Class Exp points gained in battle, missions, quests and exploration.
version = 5
version = 6
[Default]
$mod = 2
@ -11,6 +11,10 @@ $mod = 2
[Preset]
name = "x2"
[Preset]
name = "x3"
$mod = 3
[Preset]
name = "x5"
$mod = 5

View File

@ -1,13 +1,20 @@
[XCX_FRIENDPOINTSX]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
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 : 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]
moduleMatches = 0x7672271D ; 1.0.2J
0x021793D4 = li r31, $mod
[XCX_FRIENDPOINTSX_V100J]
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x02179150 = li r31, $mod

View File

@ -3,7 +3,7 @@ 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.
version = 5
version = 6
[Default]
$mod = 100
@ -11,6 +11,10 @@ $mod = 100
[Preset]
name = "+100"
[Preset]
name = "+150"
$mod = 150
[Preset]
name = "+250"
$mod = 250

View File

@ -1,14 +1,11 @@
[XCX_EXPX]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
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
_expBattle:
lwz r3, 0x3184(r28)
mulli r3, r3, $mod
@ -19,7 +16,6 @@ blr
; ----------------------------------------------------------------------------
; WHO : addTreasure__Q2_3cfs10CfTBoxUtilSFUib
; WHAT : Multiply the experience points given by treasures or exploration
_expTreasure:
li r3, $mod
lhz r31, 0x1C(r1)
@ -29,7 +25,6 @@ blr
; ----------------------------------------------------------------------------
; WHO : addReward__Q2_3cfs11CfQuestUtilSFUiQ2_3cfs17CfQuestRewardType
; WHAT : Multiply the experience points given by quests ?
_expQuest:
li r4, $mod
mullw r3, r3, r4
@ -39,7 +34,6 @@ blr
; ----------------------------------------------------------------------------
; WHO : addReward__Q2_3cfs11CfSquadUtilSFUiT1
; WHAT : Multiply the experience points given by Squad missions
_expSquadValue:
li r4, $mod
mullw r3, r3, r4
@ -49,7 +43,6 @@ blr
; ----------------------------------------------------------------------------
; WHO : menu::MenuMultiQuestInfoWindow::displayInfo((menu::MenuObject *,bool))
; WHAT :
_dispBefore:
lwz r23, 0x88(r1)
li r24, $mod
@ -59,48 +52,64 @@ blr
; ----------------------------------------------------------------------------
; WHO : menu::MenuMultiQuestResult::setup((void))
; WHAT :
_dispAfter:
li r5, $mod
mullw r3, r3, r5
stw r3, 0x78(r1)
blr
[XCX_EXPX_1E] ############################################################################
moduleMatches = 0xF882D5CF ; 1.0.1E
[XCX_EXPX_V101E] ; ############################################################################
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
0x025624D4 = bla _expBattle
0x022D8E64 = bla _expTreasure
0x0229560C = bla _expQuest
0x023CC6D4 = bla _expSquadValue
0x02B94700 = bla _dispBefore
0x02B9FDD4 = bla _dispAfter
; TEST : unlimited exp (no 9999 limit) up to 65535?
; unlimited exp (no 9999 limit) loops around 140000
0x020C1BC4 = nop
[XCX_EXPX_2U] ############################################################################
[XCX_EXPX_V102U] ; ############################################################################
moduleMatches = 0x30B6E091 ; 1.0.2U
0x025624D4 = bla _expBattle
0x022D8E64 = bla _expTreasure
0x0229560C = bla _expQuest
0x023CC6D4 = bla _expSquadValue
0x02B946F0 = bla _dispBefore
0x02B9FDC4 = bla _dispAfter
; TEST : unlimited exp (no 9999 limit) up to 65535?
; unlimited exp (no 9999 limit) loops around 140000
0x020C1BC4 = nop
[XCX_EXPX_1U] ############################################################################
moduleMatches = 0xAB97DE6B ; 1.0.1U
[XCX_EXPX_V102J] ; ############################################################################
moduleMatches = 0x7672271D ; 1.0.2J
0x02561AB0 = bla _expBattle
0x022D8694 = bla _expTreasure
0x02295024 = bla _expQuest
0x023CBD38 = bla _expSquadValue
0x02B9063C = bla _dispBefore
0x02B9B8D0 = bla _dispAfter
; unlimited exp (no 9999 limit) loops around 140000
0x020C1690 = nop
[XCX_EXPX_V100U] ; ############################################################################
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
0x02562464 = bla _expBattle
0x022D8DF4 = bla _expTreasure
0x0229559C = bla _expQuest
0x023CC664 = bla _expSquadValue
0x02B94674 = bla _dispBefore
0x02B9FCD4 = bla _dispAfter
; TEST : unlimited exp (no 9999 limit) up to 65535?
; unlimited exp (no 9999 limit) loops around 140000
0x020C1BC4 = nop
[XCX_EXPX_V100J] ; ############################################################################
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x02560FD4 = bla _expBattle
0x022D8520 = bla _expTreasure
0x02294D78 = bla _expQuest
0x023CB868 = bla _expSquadValue
0x02B8DD8C = bla _dispBefore ;
0x02B98F04 = bla _dispAfter
; unlimited exp (no 9999 limit) loops around 140000
0x020C140C = nop

View File

@ -1,15 +1,23 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Inner Exp Points"
path = "Xenoblade Chronicles X/Mods/Experience/Inner Exp Points"
description = Change the amount of Inner Exp points gained in battle, missions, quests and exploration. [1.0.1E/1.0.2U]
version = 5
name = "Lv Exp Points"
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.
version = 6
[Default]
$mod = 2
$mod = 1
[Preset]
name = "x1"
[Preset]
name = "x2"
$mod = 2
[Preset]
name = "x3"
$mod = 3
[Preset]
name = "x5"
@ -29,4 +37,4 @@ $mod = 100
[Preset]
name = "x1000"
$mod = 1000
$mod = 1000

View File

@ -0,0 +1,15 @@
[XCX_FOV_V101E_V102U]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
0x10190C7C = .float $fov ; 1.0 is default, 0.75 wider FOV
[XCX_FOV_V102J]
moduleMatches = 0x7672271D ; 1.0.2J
0x1019087C = .float $fov
[XCX_FOV_V100U]
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
0x10190B7C = .float $fov
[XCX_FOV_V100J]
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x1019037C = .float $fov

View File

@ -1,20 +0,0 @@
[XCXNOOFFV16J]
moduleMatches = 0x785CA8A9
0x1019037C = .float $fov # 1.0 is default, 0.75 wider FOV
[XCXFOVV102J]
moduleMatches = 0x7672271D
0x1019087C = .float $fov # 1.0 is default, 0.75 wider FOV
[XCXFOVV100E_V101E]
moduleMatches = 0x218F6E07, 0xF882D5CF
0x10190C7C = .float $fov
[XCXFOVV102U]
moduleMatches = 0x30B6E091
0x10190C7C = .float $fov
[XCXFOVV101U]
moduleMatches = 0xAB97DE6B
0x10190B7C = .float $fov

View File

@ -3,14 +3,16 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = Field of View
path = "Xenoblade Chronicles X/Mods/Field of View"
description = Changes the field of view (FOV). Fixes edge framing for 21:9 cinematics and other FOV tweaks.
version = 4
version = 6
[Preset]
name = Default FOV
[Default]
$fov = 1.0
[Preset]
name = Match 16:9 horizontal FOV to 21:9 (1.3125)
name = Default FOV
[Preset]
name = "Match 16:9 horizontal FOV to 21:9 (1.3125)"
$fov = 1.3125
[Preset]
@ -18,21 +20,21 @@ name = Balance 48:9 (1.45)
$fov = 1.45
[Preset]
name = Slight FOV increase without breaking framing (0.925)
name = "Slight FOV increase without breaking framing (0.925)"
$fov = 0.925
[Preset]
name = Match 16:10 horizontal FOV to 16:9 (0.9)
name = "Match 16:10 horizontal FOV to 16:9 (0.9)"
$fov = 0.9
[Preset]
name = Pc style wide FOV (0.825)
name = "Pc style wide FOV (0.825)"
$fov = 0.825
[Preset]
name = Match 21:9 horizontal FOV to 16:9 (0.7442)
name = "Match 21:9 horizontal FOV to 16:9 (0.7442)"
$fov = 0.7442
[Preset]
name = Fish eye (0.5)
name = "Fish eye (0.5)"
$fov = 0.5

View File

@ -1,15 +1,12 @@
[XCX_FN_MIR_FREQ_ALL]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
[XCX_FN_MIR_FREQ]
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
; ----------------------------------------------------------------------------
; WHAT : changeTime__Q2_4fnet9CFnetTaskFUiT1
; WHY : Affect the frequency of the FrontierNav income for the Miranium
; Frequency unit is 1 minute (so by default income is every 30 minutes)
_miranium:
li r8, $mod
addi r10, r3, 1
@ -19,12 +16,19 @@ subf r3, r0, r10
cmpwi r3, 0
blr
[XCX_FN_MIR_FREQ] ##################################################################
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
[XCX_FN_MIR_FREQ_V101E_V102U]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
0x027D5250 = bla _miranium
[XCX_FN_MIR_FREQ_1U] ##################################################################
moduleMatches = 0xAB97DE6B ; 1.0.1U
[XCX_FN_MIR_FREQ_V102J]
moduleMatches = 0x7672271D ; 1.0.2J
0x027D2E88 = bla _miranium
0x027D51F0 = bla _miranium
[XCX_FN_MIR_FREQ_V100U]
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
0x027D51F0 = bla _miranium
[XCX_FN_MIR_FREQ_V100J]
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x027D1E84 = bla _miranium

View File

@ -1,9 +1,9 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Miranium income frequency mod"
path = "Xenoblade Chronicles X/Mods/FrontierNav/Miranium income frequency mod"
name = "FrontierNav - Miranium frequency mod"
path = "Xenoblade Chronicles X/Mods/FrontierNav/Miranium frequency mod"
description = Affect the frequency of the FrontierNav income for the Miranium (Vanilla is every 30 minutes).
version = 5
version = 6
[Default]
$mod = 1
@ -30,4 +30,3 @@ $mod = 15
[Preset]
name = "Every 20 minutes"
$mod = 20

View File

@ -1,14 +1,12 @@
[XCX_FN_MIR_QTY_ALL] ######################################################################
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
[XCX_FN_MIR_QTY]
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
.int $uncap
; ----------------------------------------------------------------------------
; WHO : changeTime__Q2_4fnet9CFnetTaskFUiT1
; WHAT : Affect the quantity of the NavFrontier income for the Miranium
_miranium:
lwzx r31, r3, r28
li r4, $mod
@ -18,9 +16,6 @@ blr
; ----------------------------------------------------------------------------
; WHO : fnet::CFnetData::toStorage(const(unsigned int))
; WHAT : Ignore max quantity
.int $uncap
_getMiranium:
li r12, $uncap
cmpwi r12, 0
@ -36,16 +31,27 @@ beqlr
mr r31, r0
blr
[XCX_FN_MIR_QTY] ######################################################################
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
[XCX_FN_MIR_QTY_V101E_V102U]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
0x027D526C = bla _miranium
0x027D0FF8 = bla _getMiranium
0x027D1030 = bla _ignoreMax
[XCX_FN_MIR_QTY_1U] ######################################################################
moduleMatches = 0xAB97DE6B ; 1.0.1U
[XCX_FN_MIR_QTY_V102J]
moduleMatches = 0x7672271D ; 1.0.2J
0x027D2EA4 = bla _miranium
0x027CEC30 = bla _getMiranium
0x027CEC68 = bla _ignoreMax
[XCX_FN_MIR_QTY_V100U]
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
0x027D520C = bla _miranium
0x027D0F98 = bla _getMiranium
0x027D0FD0 = bla _ignoreMax
[XCX_FN_MIR_QTY_V100J]
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x027D1EA0 = bla _miranium
0x027CDC2C = bla _getMiranium
0x027CDC64 = bla _ignoreMax

View File

@ -1,17 +1,27 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Miranium income quantity mod"
path = "Xenoblade Chronicles X/Mods/FrontierNav/Miranium income quantity mod"
name = "FrontierNav - Miranium quantity mod"
path = "Xenoblade Chronicles X/Mods/FrontierNav/Miranium quantity mod"
description = Affect the quantity of the FrontierNav income for the Miranium.
version = 5
version = 6
[Default]
$mod = 2
$mod = 1
$uncap = 0
[Preset]
name = "Miranium x1"
category = Miranium quantity
[Preset]
name = "Miranium x2"
category = Miranium quantity
$mod = 2
[Preset]
name = "Miranium x3"
category = Miranium quantity
$mod = 3
[Preset]
name = "Miranium x5"
@ -35,9 +45,9 @@ $mod = 100
[Preset]
name = "Yes"
category = "Capped by BLADE level"
category = "Capped by Storage Probes"
[Preset]
name = "No"
category = "Capped by BLADE level"
$uncap = 1
category = "Capped by Storage Probes"
$uncap = 1

View File

@ -1,22 +1,24 @@
[XCX_FN_MNY_FREQ]
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
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
; ----------------------------------------------------------------------------
; WHAT : changeTime__Q2_4fnet9CFnetTaskFUiT1
; WHY : Affect the frequency of the NavFrontier income for the money
; Frequency unit is 1 minute (so by default income is every 15 minutes)
[XCX_FN_MNY_FREQ_V101E_V102U]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
0x027D554C = li r12, $mod
[XCX_FN_MNY_FREQ_1U] ######################################################################
moduleMatches = 0xAB97DE6B ; 1.0.1U
[XCX_FN_MNY_FREQ_V102J]
moduleMatches = 0x7672271D ; 1.0.2J
0x027D3184 = li r12, $mod
.origin = codecave
[XCX_FN_MNY_FREQ_V100U]
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
0x027D54EC = li r12, $mod
.int $mod
0x027D54EC = li r12, $mod
[XCX_FN_MNY_FREQ_V100J]
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x027D2180 = li r12, $mod

View File

@ -1,9 +1,9 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Money income frequency mod"
path = "Xenoblade Chronicles X/Mods/FrontierNav/Money income frequency mod"
name = "FrontierNav - Money frequency mod"
path = "Xenoblade Chronicles X/Mods/FrontierNav/Money frequency mod"
description = Affect the frequency of the FrontierNav income for the Money (Vanilla is 15 minutes).
version = 5
version = 6
[Default]
$mod = 1
@ -26,4 +26,3 @@ $mod = 7
[Preset]
name = "Every 10 minutes"
$mod = 10

View File

@ -1,8 +1,6 @@
[XCX_FN_MNY_QTY_ALL] ######################################################################
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
[XCX_FN_MNY_QTY]
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
_money:
@ -10,12 +8,18 @@ li r31, $mod
mullw. r31, r31, r3
blr
[XCX_FN_MNY_QTY] ######################################################################
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
[XCX_FN_MNY_QTY_V101E_V102U]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
0x027D5588 = bla _money
[XCX_FN_MNY_QTY_1U] ######################################################################
moduleMatches = 0xAB97DE6B ; 1.0.1U
[XCX_FN_MNY_QTY_V102J]
moduleMatches = 0x7672271D ; 1.0.2J
0x027D31C0 = bla _money
[XCX_FN_MNY_QTY_V100U]
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
0x027D5528 = bla _money
[XCX_FN_MNY_QTY_V100J]
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x027D21BC = bla _money

View File

@ -1,9 +1,9 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Money income quantity mod"
path = "Xenoblade Chronicles X/Mods/FrontierNav/Money income quantity mod"
name = "FrontierNav - Money quantity mod"
path = "Xenoblade Chronicles X/Mods/FrontierNav/Money quantity mod"
description = Affect the quantity of the FrontierNav income for the Money.
version = 5
version = 6
[Default]
$mod = 2
@ -11,6 +11,10 @@ $mod = 2
[Preset]
name = "x2"
[Preset]
name = "x3"
$mod = 3
[Preset]
name = "x5"
$mod = 5
@ -30,4 +34,3 @@ $mod = 100
[Preset]
name = "x1000"
$mod = 1000

View File

@ -1,22 +1,24 @@
[XCX_FN_RES_FREQ] ######################################################################
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
[XCX_FN_RES_FREQ]
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
; ----------------------------------------------------------------------------
; WHAT : changeTime__Q2_4fnet9CFnetTaskFUiT1
; WHY : Affect the frequency of the NavFrontier income for the resources
; Frequency unit is 1 minute (so by default income is every 5 minutes)
[XCX_FN_RES_FREQ_V101E_V102U]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
0x027D534C = li r12, $mod
[XCX_FN_RES_FREQ_1U] ######################################################################
moduleMatches = 0xAB97DE6B ; 1.0.1U
.origin = codecave
.int $mod
[XCX_FN_RES_FREQ_V102J]
moduleMatches = 0x7672271D ; 1.0.2J
0x027D2F84 = li r12, $mod
[XCX_FN_RES_FREQ_V100U]
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
0x027D52EC = li r12, $mod
[XCX_FN_RES_FREQ_V100J]
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x027D1F80 = li r12, $mod

View File

@ -1,10 +1,9 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Xenoblade Chronicles X - FrontierNav - Probe income frequency mod"
name = "Resources income frequency mod"
path = "Xenoblade Chronicles X/Mods/FrontierNav/Resources income frequency mod"
name = "FrontierNav - Resources frequency mod"
path = "Xenoblade Chronicles X/Mods/FrontierNav/Resources frequency mod"
description = Affect the frequency of the FrontierNav income for the resources (Vanilla is every 5 minutes).
version = 5
version = 6
[Default]
$mod = 2

View File

@ -1,14 +1,11 @@
[XCX_FN_RES_QTY_ALL] ######################################################################
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
[XCX_FN_RES_QTY]
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
; ----------------------------------------------------------------------------
; WHAT : changeTime__Q2_4fnet9CFnetTaskFUiT1
; WHY :
_multCount:
lbz r0, 6(r31)
li r3, $mod
@ -16,12 +13,18 @@ mullw r0, r0, r3
stb r0, 6(r31)
blr
[XCX_FN_RES_QTY] ######################################################################
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
[XCX_FN_RES_QTY_V101E_V102U]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
0x027D5428 = bla _multCount
[XCX_FN_RES_QTY_1U] ######################################################################
moduleMatches = 0xAB97DE6B ; 1.0.1U
[XCX_FN_RES_QTY_V102J]
moduleMatches = 0x7672271D ; 1.0.2J
0x027D3060 = bla _multCount
[XCX_FN_RES_QTY_V100U]
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
0x027D53C8 = bla _multCount
[XCX_FN_RES_QTY_V100J]
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x027D205C = bla _multCount

View File

@ -1,9 +1,9 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Resources income quantity mod"
path = "Xenoblade Chronicles X/Mods/FrontierNav/Resources income quantity mod"
name = "FrontierNav - Resources quantity mod"
path = "Xenoblade Chronicles X/Mods/FrontierNav/Resources quantity mod"
description = Affect the quantity of the FrontierNav income for the resources.
version = 5
version = 6
[Default]
$mod = 2
@ -11,6 +11,10 @@ $mod = 2
[Preset]
name = "x2"
[Preset]
name = "x3"
$mod = 3
[Preset]
name = "x5"
$mod = 5
@ -26,4 +30,3 @@ $mod = 50
[Preset]
name = "x100"
$mod = 100

View File

@ -1,12 +1,24 @@
[XCX_CAMERA_DIST]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
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))
0x0222A19C = lis r12, VarZoom@ha
0x0222A1B0 = lfs f1, VarZoom@l(r12)
[XCX_CAMERA_DIST_V101E_V102U_V100U]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07, 0xAB97DE6B, 0x676EB33E ; 1.0.1E, 1.0.2U, 1.0.0E, 1.0.1U, 1.0.0U
0x0222A19C = lis r12, VarZoom@ha
0x0222A1B0 = lfs f1, VarZoom@l(r12)
0x0222A1CC = nop
[XCX_CAMERA_DIST_V102J]
moduleMatches = 0x7672271D ; 1.0.2J
0x02229C68 = lis r12, VarZoom@ha
0x02229C7C = lfs f1, VarZoom@l(r12)
0x02229C98 = nop
[XCX_CAMERA_DIST_V100J]
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x022299E4 = lis r12, VarZoom@ha
0x022299F8 = lfs f1, VarZoom@l(r12)
0x02229A14 = nop

View File

@ -1,9 +1,9 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Camera mod (distance)"
path = "Xenoblade Chronicles X/Mods/Graphics/Camera mod (distance)"
description = Affect the default distance of the camera (Vanilla zoom is 0).
version = 5
name = "Camera distance mod"
path = "Xenoblade Chronicles X/Mods/Graphics/Camera distance mod"
description = Affect the default distance of the camera (Vanilla zoom is 0).|Does not affect max zoom possible.
version = 6
[Default]
$mod = 2.0
@ -18,4 +18,3 @@ $mod = 5.0
[Preset]
name = "Zoom 10"
$mod = 10.0

View File

@ -1,12 +1,10 @@
[XCX_DISTMOBINFO]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
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
; ----------------------------------------------------------------------------
; WHAT : cfs::CfPopManagerMobInfo::setupZone((cfs::ZoneTypes))
; WHY : Initialize view distance for ALL the Mob information to a very high value (filter will be done in setup function)
_init_react:
lis r3, 0x4300
addi r3, r3, 0x0000
@ -16,7 +14,6 @@ blr
; ----------------------------------------------------------------------------
; WHAT : cfs::CfMobInfo::setup((void))
; WHY : Adjust the view distance based on the information type
_info_default:
cmpwi r6, 2
beq tes
@ -44,28 +41,35 @@ stw r10, 0x40(r29)
exit_info_obtained:
blr
[XCX_DISTMOBINFO_ALL] ###########################################################
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
[XCX_DISTMOBINFO_V101E_V102U] ; ###########################################################
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
0x02387260 = bla _init_react
0x02386F04 = bla _info_obtained
0x02386F34 = bla _info_default
; ----------------------------------------------------------------------------
; WHAT : cfs::CfPopManagerMobInfo::updatePop((ml::CVec3 const &, bool))
0x0238EEC0 = nop ; Disable the call of cfs::CfMobInfo::update function (may have side effects)
0x0238EF30 = nop ; Disable altitude check
; ----------------------------------------------------------------------------
; WHAT : cfs::CfPopManager::isCheckDoll(const(void))
; WHY : display bubbles even in skell
0x0238745C = li r3, 0
[XCX_DISTMOBINFO_1U] ###########################################################
moduleMatches = 0xAB97DE6B ; 1.0.1U
[XCX_DISTMOBINFO_V102J] ; ###########################################################
moduleMatches = 0x7672271D ; 1.0.2J
0x02386A94 = bla _init_react
0x02386738 = bla _info_obtained
0x02386768 = bla _info_default
0x0238E6F4 = nop ; Disable the call of cfs::CfMobInfo::update function (may have side effects)
0x0238E764 = nop ; Disable altitude check
0x02386C90 = li r3, 0
[XCX_DISTMOBINFO_V100U] ; ###########################################################
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
0x023871F0 = bla _init_react
0x02386E94 = bla _info_obtained
0x02386EC4 = bla _info_default
@ -74,3 +78,14 @@ moduleMatches = 0xAB97DE6B ; 1.0.1U
0x0238EEC0 = nop ; Disable altitude check
0x023873EC = li r3, 0
[XCX_DISTMOBINFO_V100J] ; ###########################################################
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x02386920 = bla _init_react
0x023865C4 = bla _info_obtained
0x023865F4 = bla _info_default
0x0238E580 = nop ; Disable the call of cfs::CfMobInfo::update function (may have side effects)
0x0238E5F0 = nop ; Disable altitude check
0x02386B1C = li r3, 0

View File

@ -3,4 +3,4 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "NPC info bubbles distance mod"
path = "Xenoblade Chronicles X/Mods/Graphics/NPC info bubbles distance mod"
description = Increase view distance for yellow information bubbles from NPC.
version = 5
version = 6

View File

@ -0,0 +1,44 @@
[XCX_FREECAM_V101E_V102U]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
;this mod accesses the developer freecam used by the monolith soft devs
;'nop' makes it so that the specified line never executes
; in func exe_normal__Q2_3Cam8CCamCtrlFv
0x022261BC = nop ;isFreeCamera__Q2_3cfs14CfSceneManagerCFv
; in func isControl__Q2_3cfs9CfObjUtilSFPQ2_3cfs5CfObj
0x0244F930 = nop ;isFreeCamera__Q2_3cfs14CfSceneManagerCFv
; in func isControl__Q2_3cfs18CfCompoActionActorCFPQ2_3cfs5CfObj
0x02467090 = nop ;isFreeCamera__Q2_3cfs14CfSceneManagerCFv
; in func updateBefore__Q2_3cfs16CfCompoCtrlActorFf
0x025532E8 = nop ;isFreeCamera__Q2_3cfs14CfSceneManagerCFv
; in func update__Q2_3cfs14CfSceneFreeCamFv
0x02601CFC = nop ;isFreeCamera__Q2_3cfs14CfSceneManagerCFv
; in func dispFieldCamera__Q2_2ev16CUIManagerAlwaysFb
0x0276A774 = nop ;MenuTask::openHudEventCamera
[XCX_FREECAM_V102J]
moduleMatches = 0x7672271D ; 1.0.2J
0x02225C88 = nop
0x0244EF70 = nop
0x024666D0 = nop
0x025528C4 = nop
0x026012D8 = nop
0x02768EEC = nop
[XCX_FREECAM_V100U]
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
0x022261BC = nop
0x0244F8C0 = nop
0x02467020 = nop
0x02553278 = nop
0x02601C8C = nop
0x0276A714 = nop
[XCX_FREECAM_V100J]
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x02225A04 = nop
0x0244E494 = nop
0x02465BF4 = nop
0x02551DE8 = nop
0x026007FC = nop
0x02767F7C = nop

View File

@ -0,0 +1,6 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Freecam"
path = "Xenoblade Chronicles X/Mods/HUD/Freecam"
description = Look around the world with the developer freecam.|The game functions like normal when you're in this mode. Area renders around camera, so going too far will make your character have no ground and die.||Made by blingbloing, modified by intra.|||Hold 'R' button to move camera up|Hold 'L' button to move camera down|Hold 'X' button to keep camera in place|Hold 'Y' button to speed up camera|Tip: Press and hold the R stick button to speed up even more
version = 6

View File

@ -0,0 +1,29 @@
[XCX_NoModelFade_V101E_V102U]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
; in func setCameraAlphaMount__Q2_3cfs5CfObjFf
0x023EAC38 = nop ;setCameraAlphaMount__Q2_3cfs5CfObjFf
0x023EB5A4 = nop ;setCameraAlphaMount__Q2_3cfs5CfObjFf
; in func updateAlpha__Q2_3cfs17CfCompoAssetActorFv
0x02483E14 = nop ;setCameraAlphaMount__Q2_3cfs5CfObjFf
0x02484018 = nop ;setCameraAlphaMount__Q2_3cfs5CfObjFf
[XCX_NoModelFade_V102J]
moduleMatches = 0x7672271D ; 1.0.2J
0x023EA278 = nop
0x023EABE4 = nop
0x02483454 = nop
0x02483658 = nop
[XCX_NoModelFade_V100U]
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
0x023EABC8 = nop
0x023EB534 = nop
0x02483DA4 = nop
0x02483FA8 = nop
[XCX_NoModelFade_V100J]
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x023E9DA8 = nop
0x023EA714 = nop
0x02482978 = nop
0x02482B7C = nop

View File

@ -0,0 +1,6 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "No Fading When Close-up"
path = "Xenoblade Chronicles X/Mods/HUD/No Fading When Close-up"
description = Makes it so that character and skell models don't fade out when the camera gets too close.
version = 6

View File

@ -0,0 +1,32 @@
[XCX_REMOVEBLUR_V101E_V102U_V100U]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07, 0xAB97DE6B, 0x676EB33E ; 1.0.1E, 1.0.2U, 1.0.0E, 1.0.1U, 1.0.0U
; in func update__Q2_4Gear5CGearFf
0x021BC970 = nop ;_updateBlur__Q2_4Gear5CGearFf
; in func Update__Q2_4Gear5CModeFf
0x021E208C = nop ;_updateBlur__Q2_4Gear5CModeFf
; in func _startDecorate__Q2_4Gear5CGearFUi
0x021BEDAC = nop ;_startBlur__Q2_4Gear5CGearFv
; in func _startDecorate__Q2_4Gear5CModeFUi
0x021CFCCC = nop ;_startBlur__Q2_4Gear5CModeFv
; in func _endDecorate__Q2_4Gear5CGearFUi
0x021B4294 = nop ;_endBlur__Q2_4Gear5CGearFv
; in func _tailStatus__Q2_6Battle14CBattleManagerFv
0x020B6404 = nop ;IsEndBlur__Q2_4Gear5CGearFv
[XCX_REMOVEBLUR_V102J]
moduleMatches = 0x7672271D ; 1.0.2J
0x021BC43C = nop
0x021E1B58 = nop
0x021BE878 = nop
0x021CF798 = nop
0x021B3D60 = nop
0x020B5ED0 = nop
[XCX_REMOVEBLUR_V100J]
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x021BC1B8 = nop
0x021E18D4 = nop
0x021BE5F4 = nop
0x021CF514 = nop
0x021B3ADC = nop
0x020B5C5C = nop

View File

@ -0,0 +1,6 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Remove Overdrive Blur"
path = "Xenoblade Chronicles X/Mods/HUD/Remove Overdrive Blur"
description = Removes the blur that happens around the screen when you are in Overdrive.
version = 6

View File

@ -1,22 +1,21 @@
[XCX_NoOffline_V16J]
moduleMatches = 0x785CA8A9
0x100B06DC = nop ; frameIn
[XCX_NoOffline_V102J]
moduleMatches = 0x7672271D
0x100B0B28 = nop ; frameIn
[XCX_NoOffline_V100E_V101E]
moduleMatches = 0x218F6E07, 0xF882D5CF
[XCX_NoOffline_V101E]
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
; WHO : s_offline_frameIn
; WHAT : Never process this function so that the online label is never shown
0x100B0B50 = nop ; frameIn
[XCX_NoOffline_V102U]
moduleMatches = 0x30B6E091
moduleMatches = 0x30B6E091 ; 1.0.2U
0x100B0B38 = nop ; frameIn
0x100B0B38 = nop ; frameIn
[XCX_NoOffline_V102J]
moduleMatches = 0x7672271D ; 1.0.2J
0x100B099C = nop ; frameIn
[XCX_NoOffline_V100U]
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
0x100B0AA0 = nop ; frameIn
[XCX_NoOffline_V100J]
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x100B06DB = nop ; frameIn ;

View File

@ -3,4 +3,4 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = Hide Offline Label
path = "Xenoblade Chronicles X/Mods/Hide Offline Label"
description = Removes offline blinking tag. Does not change the actual online state.
version = 5
version = 6

View File

@ -1,11 +1,10 @@
[XCX_EMANUAL_1E]
moduleMatches = 0xF882D5CF ; 1.0.1E
[XCX_EMANUAL_101E]
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
; ----------------------------------------------------------------------------
; WHO : menu::MenuMainMenu::funcManual((int))
; WHAT : Replace eManual function with timeManipulate function
_openTimeManipulate = 0x02C7A2F0
_openTimeManipulate = 0x02C7A2F0 ; MenuTask::openTimeManipulate(void)
_isFinishTM = 0x02C7A4CC ; MenuTask::isFinishTimeManipulate((void))
0x02B83CB4 = bl _openTimeManipulate
@ -14,11 +13,10 @@ _isFinishTM = 0x02C7A4CC ; MenuTask::isFinishTimeManipulate((void))
0x02B83C7C = bl _isFinishTM
0x02B83C98 = bl _isFinishTM
#################################################################################
[XCX_EMANUAL_2U]
;#################################################################################
[XCX_EMANUAL_V102U]
moduleMatches = 0x30B6E091 ; 1.0.2U
_openTimeManipulate = 0x02C7A290
_openTimeManipulate = 0x02C7A290 ; MenuTask::openTimeManipulate(void)
_isFinishTM = 0x02C7A46C ; MenuTask::isFinishTimeManipulate((void))
0x02B83CA4 = bl _openTimeManipulate
@ -27,11 +25,22 @@ _isFinishTM = 0x02C7A46C ; MenuTask::isFinishTimeManipulate((void))
0x02B83C6C = bl _isFinishTM
0x02B83C88 = bl _isFinishTM
#################################################################################
[XCX_EMANUAL_1U]
moduleMatches = 0xAB97DE6B ; 1.0.1U
;#################################################################################
[XCX_EMANUAL_V102J]
moduleMatches = 0x7672271D ; 1.0.2J
_openTimeManipulate = 0x02C757E4 ; MenuTask::openTimeManipulate(void)
_isFinishTM = 0x02C759C0 ; MenuTask::isFinishTimeManipulate((void))
_openTimeManipulate = 0x02C7A118
0x02B7FBF0 = bl _openTimeManipulate
0x02B7FC08 = bl _openTimeManipulate
0x02B7FBB8 = bl _isFinishTM
0x02B7FBD4 = bl _isFinishTM
;#################################################################################
[XCX_EMANUAL_V100U]
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
_openTimeManipulate = 0x02C7A118 ; MenuTask::openTimeManipulate(void)
_isFinishTM = 0x02C7A2F4 ; MenuTask::isFinishTimeManipulate((void))
0x02B83C28 = bl _openTimeManipulate
@ -39,3 +48,15 @@ _isFinishTM = 0x02C7A2F4 ; MenuTask::isFinishTimeManipulate((void))
0x02B83BF0 = bl _isFinishTM
0x02B83C0C = bl _isFinishTM
;#################################################################################
[XCX_EMANUAL_V100J]
moduleMatches = 0x785CA8A9 ; 1.0.0J
_openTimeManipulate = 0x02C71CD0 ; MenuTask::openTimeManipulate(void)
_isFinishTM = 0x02C71EAC ; MenuTask::isFinishTimeManipulate((void))
0x02B7D640 = bl _openTimeManipulate
0x02B7D658 = bl _openTimeManipulate
0x02B7D608 = bl _isFinishTM
0x02B7D624 = bl _isFinishTM

View File

@ -2,5 +2,5 @@
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Change time from eManual"
path = "Xenoblade Chronicles X/Mods/HUD/Change time from eManual"
description = Allow to change time from the eManual entry of the main menu.
version = 5
description = Allow to change time from the eManual entry of the main menu.|Fixes the soft lock that happens when selecting eManual on Cemu.
version = 6

View File

@ -1,21 +1,32 @@
[XCX_LOOT_RANDOM_AFFIX]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
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 $var1 ; 80
.int $var2 ; 80
.int $var3 ; 20
; ----------------------------------------------------------------------------
; WHO : calcAffix__Q2_8ItemDrop16CItemDropManagerFUsRQ2_3mtl32fixed_vector__tm__12_UsXCUiL_1_3
; WHAT : Affix random truly
; Everything above 80% is capped at 80%, and everything else is set to 20%
_minDropRate:
lbz r27, 0x0C(r1)
cmpwi r27, 80
cmpwi r27, $var1 ; 80
blt percent20
li r27, 80
li r27, $var2 ; 80
blr
percent20:
li r27, 20
li r27, $var3 ; 20
blr
[XCX_LOOT_RANDOM_AFFIX_V101E_V102U_V100U]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07, 0xAB97DE6B, 0x676EB33E ; 1.0.1E, 1.0.2U, 1.0.0E, 1.0.1U, 1.0.0U
0x021AB778 = bla _minDropRate
[XCX_LOOT_RANDOM_AFFIX_V102J]
moduleMatches = 0x7672271D ; 1.0.2J
0x021AB244 = bla _minDropRate
[XCX_LOOT_RANDOM_AFFIX_V100J]
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x021AAFC0 = bla _minDropRate

View File

@ -3,5 +3,18 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Equipment - Alternate random augment selection"
path = "Xenoblade Chronicles X/Mods/Loot/Equipment - Alternate random augment selection"
description = Alternate random selection for augments. Everything above 80% is capped at 80%, and everything else is set to 20%.
version = 5
version = 6
[Default]
$var1 = 80
$var2 = 80
$var3 = 20
[Preset]
name = "80%, 20%" #(recommended)
#[Preset]
#name = "50%, 50%" #(untested)
#$var1 = 50
#$var2 = 50
#$var3 = 50

View File

@ -1,18 +1,34 @@
[XCX_LOOT_EQUIPMENT_BESTQUALITY]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
; ----------------------------------------------------------------------------
[XCX_LOOT_EQUIPMENT_BESTQUALITY_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 : __CPR98__calcItemTableID__Q2_8ItemDrop16CItemDropManagerFUcRCQ3_J20JJ29J11SCreateInfoRUs
; WHAT : Always best equipment looted (X6X)
0x021AD710 = nop ; ground weapons ?
0x021ADA6C = nop ; ground armors
0x021ADDE8 = nop ; skell weapons
0x021AE164 = nop ; skell armors
; ----------------------------------------------------------------------------
; ------------------------------------------------------------------------
; WHO : ItemDrop::CItemDropManager::calcAfxSltNum((unsigned short))
; WHAT : Control of the loot quality (always orange/yellow)
0x021AEE7C = li r3, $traits ; num of gear traits
0x021AF280 = li r3, $slots ; num of gear slots
0x021AEE7C = li r3, 3
0x021AF280 = li r3, 3
[XCX_LOOT_EQUIPMENT_BESTQUALITY_V102J]
moduleMatches = 0x7672271D ; 1.0.2J
0x021AD1DC = nop ; ground weapons ?
0x021AD538 = nop ; ground armors
0x021AD8B4 = nop ; skell weapons
0x021ADC30 = nop ; skell armors
0x021AE948 = li r3, $traits ; num of gear traits
0x021AED4C = li r3, $slots ; num of gear slots
[XCX_LOOT_EQUIPMENT_BESTQUALITY_V100J]
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x021ACF58 = nop ; ground weapons ?
0x021AD2B4 = nop ; ground armors
0x021AD630 = nop ; skell weapons
0x021AD9AC = nop ; skell armors
0x021AE6C4 = li r3, $traits ; num of gear traits
0x021AEAC8 = li r3, $slots ; num of gear slots

View File

@ -1,6 +1,49 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Equipment - Best Quality"
path = "Xenoblade Chronicles X/Mods/Loot/Equipment - Always the Best Quality (X6X)"
description = Equipment looted is always of the best quality (Prime for ground gear and Intergalactic for Skells) and has always 3 augments and 3 extra free slots (no preset needed).
version = 5
name = "Equipment - Force Quality"
path = "Xenoblade Chronicles X/Mods/Loot/Equipment - Force Quality"
description = Equipment looted is always of the specified quality (Prime = Intergalactic for Skell weapons) and always has 0-3 augments and 0-3 extra free slots.||Armor can normally only have 1 slot, so setting 2/3 slots will create cheat equipment.
version = 6
[Default]
$traits = 3
$slots = 1
[Preset]
name = "Prime (3 traits)"
category = "Quality"
[Preset]
name = "Unique (2 traits)"
category = "Quality"
$traits = 2
[Preset]
name = "Rare (1 trait)"
category = "Quality"
$traits = 1
[Preset]
name = "Common (0 traits)"
category = "Quality"
$traits = 0
[Preset]
name = "0 Slots"
category = "Number of Slots"
$slots = 0
[Preset]
name = "1 Slot"
category = "Number of Slots"
default = 1
[Preset]
name = "2 Slots"
category = "Number of Slots"
$slots = 2
[Preset]
name = "3 Slots"
category = "Number of Slots"
$slots = 3

View File

@ -1,10 +1,20 @@
[XCX_LOOT_EQUIPMENT_COUNT]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
[XCX_LOOT_EQUIPMENT_COUNT_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 : ItemDrop::CItemDropManager::calcItemNum((uchar))
; WHAT : Chances to loot multiples equipments (3 max)
0x021AB218 = li r3, $cnt3
0x021AB268 = li r3, $cnt2
0x021AB2B8 = li r3, $cnt1
[XCX_LOOT_EQUIPMENT_COUNT_V102J]
moduleMatches = 0x7672271D ; 1.0.2J
0x021AACE4 = li r3, $cnt3
0x021AAD34 = li r3, $cnt2
0x021AAD84 = li r3, $cnt1
[XCX_LOOT_EQUIPMENT_COUNT_V100J]
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x021AAA60 = li r3, $cnt3
0x021AAAB0 = li r3, $cnt2
0x021AAB00 = li r3, $cnt1

View File

@ -3,24 +3,21 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Equipment - Force Count"
path = "Xenoblade Chronicles X/Mods/Loot/Equipment - Force Count"
description = Force the count of equipment looted in Silver or Gold treasures.
version = 5
version = 6
[Default]
$cnt3 = 0
$cnt2 = 0
$cnt1 = 0
$cnt3 = 100
$cnt2 = 100
$cnt1 = 100
[Preset]
name = "Always 3 equipments"
$cnt2 = 100
$cnt1 = 100
$cnt3 = 0
[Preset]
name = "Always 2 equipments"
$cnt3 = 100
$cnt1 = 100
$cnt2 = 0
[Preset]
name = "Always 1 equipment"
$cnt3 = 100
$cnt2 = 100
$cnt1 = 0

View File

@ -1,8 +1,8 @@
[XCX_LOOT_EQUIPMENT_TYPE]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
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 $type
.int $sub
; ----------------------------------------------------------------------------
; WHO : __CPR98__calcItemTableID__Q2_8ItemDrop16CItemDropManagerFUcRCQ3_J20JJ29J11SCreateInfoRUs
; WHAT : Force some kind of equipment to be looted in Gold chests
@ -11,13 +11,6 @@ moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
; 6 = Skell weapons
; 8 = Skell armors
.int $type
0x021AEB88 = li r4, $type
0x021AEB5C = li r27, $type
.int $sub
; Ground Weapons
_notRand:
li r4, $sub
@ -28,8 +21,6 @@ exit_notRand:
cmplw r3, r12
blr
0x021AC280 = bla _notRand
_setSubGW:
li r3, $sub
cmpwi r3, 0
@ -39,8 +30,6 @@ exit_setSubGW:
addi r3, r1, 0x54
blr
0x021AD6DC = bla _setSubGW
_setSubGA:
li r3, $sub
cmpwi r3, 0
@ -50,8 +39,6 @@ exit_setSubGA:
addi r3, r1, 0x6C
blr
0x021ADD28 = bla _setSubGA
_setSubSA:
li r3, $sub
cmpwi r3, 0
@ -61,6 +48,33 @@ exit_setSubSA:
addi r3, r1, 0x9C
blr
0x021AE420 = bla _setSubSA
[XCX_LOOT_EQUIPMENT_TYPE_V101E_V102U_V100U]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07, 0xAB97DE6B, 0x676EB33E ; 1.0.1E, 1.0.2U, 1.0.0E, 1.0.1U, 1.0.0U
0x021AEB88 = li r4, $type
0x021AEB5C = li r27, $type
0x021AC280 = bla _notRand
0x021AD6DC = bla _setSubGW
0x021ADD28 = bla _setSubGA
0x021AE420 = bla _setSubSA
;0x021AD9A4 = li r3, 4 ; force index
[XCX_LOOT_EQUIPMENT_TYPE_V102J]
moduleMatches = 0x7672271D ; 1.0.2J
0x021AE654 = li r4, $type
0x021AE628 = li r27, $type
0x021ABD4C = bla _notRand
0x021AD1A8 = bla _setSubGW
0x021AD7F4 = bla _setSubGA
0x021ADEEC = bla _setSubSA
;0x021AD470 = li r3, 4 ; force index
[XCX_LOOT_EQUIPMENT_TYPE_V100J]
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x021AE3D0 = li r4, $type
0x021AE3A4 = li r27, $type
0x021ABAC8 = bla _notRand
0x021ACF24 = bla _setSubGW
0x021AD570 = bla _setSubGA
0x021ADC68 = bla _setSubSA
;0x021AD1EC = li r3, 4 ; force index

View File

@ -3,7 +3,7 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Equipment - Force Type"
path = "Xenoblade Chronicles X/Mods/Loot/Equipment - Force Type"
description = Force the type of equipment looted.
version = 5
version = 6
[Default]
$type:int = 2
@ -174,6 +174,3 @@ name = "Leg"
category = Skell Armor
condition = $type == 8
$sub:int = 5

View File

@ -1,8 +1,14 @@
[XCX_LOOT_EQUIPMENT_BROKEN]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
[XCX_LOOT_EQUIPMENT_BROKEN_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 : __CPR129__calcItem__Q2_8ItemDrop16CItemDropManagerFRQ3_J13JJ22J9SDropInfoUcRCQ3_J13JJ22J11SCreateInfo
; WHAT : Remove broken equipment (to be tested)
; WHAT : Remove broken equipment
0x021AEBE0 = li r3, $mod ; Nothing is broken
0x021AEBE0 = li r3, 0 ; Nothing is broken
[XCX_LOOT_EQUIPMENT_BROKEN_V102J]
moduleMatches = 0x7672271D ; 1.0.2J
0x021AE6AC = li r3, $mod
[XCX_LOOT_EQUIPMENT_BROKEN_V100J]
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x021AE428 = li r3, $mod

View File

@ -2,6 +2,15 @@
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Equipment - Ignore broken"
path = "Xenoblade Chronicles X/Mods/Loot/Equipment - Ignore broken"
description = Never get broken equipment.
version = 5
description = Never or always get broken equipment.
version = 6
[Default]
$mod = 0
[Preset]
name = Never get broken equipment
[Preset]
name = Always get broken equipment
$mod = 1

View File

@ -1,27 +1,11 @@
[XCX_LOOT_MATERIALS_1E2U]
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
0x030FA650 = _mtRand:
0x02B09748 = nop
0x02B09788 = nop
[XCX_LOOT_MATERIALS_1U]
moduleMatches = 0xAB97DE6B ; 1.0.1U
0x030FA4D4 = _mtRand:
[XCX_LOOT_MATERIALS]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
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 $ratio
; ----------------------------------------------------------------------------
; WHO : __CPR90__calcItemBronze__Q2_8ItemDrop16CItemDropManagerFRQ3_J19JJ28J9SDropInfoUc
; WHAT : Affect the drop ratio of materials
.int $ratio
_minDropRate:
li r11, $ratio
li r31, 0
@ -36,19 +20,13 @@ compare:
cmpw r3, r31
blr
0x021AF5DC = bla _minDropRate ; modify drop ratio for bronze chests
0x021AF614 = bla _minDropRate ; modify drop ratio for silver chests
0x021AF5F8 = bla _minDropRate ; modify drop ratio for gold chests
; ----------------------------------------------------------------------------
; WHO : __CPR90__calcItemBronze__Q2_8ItemDrop16CItemDropManagerFRQ3_J19JJ28J9SDropInfoUc
; WHAT : random selection when all materials at 100% and more than 5
_saveEquipCnt:
mr r30, r4
lwz r13, 0xE0(r30)
blr
0x021AF334 = bla _saveEquipCnt
_fixit:
li r12, 0
@ -70,4 +48,55 @@ _fixit:
mr r4, r3
blr
[XCX_LOOT_MATERIALS_V101E]
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
0x030FA650 = _mtRand:
0x02B09748 = nop
0x02B09788 = nop
[XCX_LOOT_MATERIALS_V102U]
moduleMatches = 0x30B6E091 ; 1.0.2U
0x030FA654 = _mtRand:
0x02B09738 = nop
0x02B09778 = nop
[XCX_LOOT_MATERIALS_V100U]
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
0x030FA4D4 = _mtRand:
0x02B096BC = nop
0x02B096FC = nop
[XCX_LOOT_MATERIALS_V101E_V102U_V100U]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07, 0xAB97DE6B, 0x676EB33E ; 1.0.1E, 1.0.2U, 1.0.0E, 1.0.1U, 1.0.0U
0x021AF5DC = bla _minDropRate ; modify drop ratio for bronze chests
0x021AF614 = bla _minDropRate ; modify drop ratio for silver chests
0x021AF5F8 = bla _minDropRate ; modify drop ratio for gold chests
0x021AF334 = bla _saveEquipCnt
0x021AF620 = bla _fixit
[XCX_LOOT_MATERIALS_V102J]
moduleMatches = 0x7672271D ; 1.0.2J
0x030F5B94 = _mtRand:
0x02B05688 = nop
0x02B056C8 = nop
0x021AF0A8 = bla _minDropRate ; modify drop ratio for bronze chests
0x021AF0E0 = bla _minDropRate ; modify drop ratio for silver chests
0x021AF0C4 = bla _minDropRate ; modify drop ratio for gold chests
0x021AEE00 = bla _saveEquipCnt
0x021AF0EC = bla _fixit
[XCX_LOOT_MATERIALS_V100J]
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x030F0794 = _mtRand:
0x02B03530 = nop
0x02B03570 = nop
0x021AEE24 = bla _minDropRate ; modify drop ratio for bronze chests
0x021AEE5C = bla _minDropRate ; modify drop ratio for silver chests
0x021AEE40 = bla _minDropRate ; modify drop ratio for gold chests
0x021AEB7C = bla _saveEquipCnt
0x021AEE68 = bla _fixit

View File

@ -3,7 +3,7 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Materials - Drop Ratio"
path = "Xenoblade Chronicles X/Mods/Loot/Materials - Drop Ratio"
description = Affect the materials minimum drop ratio in the loots.
version = 5
version = 6
[Default]
$ratio = 100
@ -25,4 +25,4 @@ $ratio = 30
[Preset]
name = "Set minimum drop to 0% (never drop)"
$ratio = 0
$ratio = 0

View File

@ -1,15 +1,12 @@
[XCX_LOOT_FORCECHEST]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
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 $forced
.int $treasure
; ----------------------------------------------------------------------------
; WHO : ItemDrop::CItemDropManager::calcRank((unsigned short, int))
; WHAT : Force the chest quality
_goForced:
li r28, $treasure
li r4, $forced
@ -21,8 +18,10 @@ exit_goForced:
mr. r28, r3
blr
0x021AAFA4 = bla _goForced
[XCX_LOOT_FORCECHEST_V101E_V102U_V100U]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07, 0xAB97DE6B, 0x676EB33E ; 1.0.1E, 1.0.2U, 1.0.0E, 1.0.1U, 1.0.0U
0x021AAFA4 = bla _goForced
; ----------------------------------------------------------------------------
; WHO : ItemDrop::CItemDropManager::calcRank((unsigned short, int))
; WHAT : Override the chest quality you get when the game initially decided you get no chest at all
@ -32,5 +31,14 @@ blr
; : 3) Calculate luck for bronze chest, if success exit with bronze quality (3), else process next step
; : 4) No chest at all, exit with no chest (0)
; : --> The mod below only changes this last step. So even if you put value 1 (gold chest), you'll still get a silver chest if the game succeeded the step 2.
0x021AAF18 = li r3, $treasure
0x21AAF18 = li r3, $treasure
[XCX_LOOT_FORCECHEST_V102J]
moduleMatches = 0x7672271D ; 1.0.2J
0x021AAA70 = bla _goForced
0x021AA9E4 = li r3, $treasure
[XCX_LOOT_FORCECHEST_V100J]
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x021AA7EC = bla _goForced
0x021AA760 = li r3, $treasure

View File

@ -2,8 +2,8 @@
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).
version = 5
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)
version = 6
[Default]
$treasure:int = 0
@ -24,11 +24,11 @@ $treasure:int = 3
[Preset]
name = "No treasure"
[Preset]
name = "No"
category = Forced
[Preset]
name = "Yes"
category = Forced
$forced:int = 1
[Preset]
name = "No"
category = Forced

View File

@ -1,17 +1,7 @@
[XCX_MAXITEMS] ##########################################################
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
[XCX_MAXITEMS]
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
; cfs::CfItemBoxBase::addItem((fw::CItemType::Type, unsigned int, cfs::CfItemHandle &)) --> used to allow more than 99 (if not, auto sell)
0x02362C8C = cmplwi r12, 999
; cfs::CfItemBoxBase::canAddItem((fw::CItemType::Type,uint)) --> used in ticket trading window
0x02363108 = cmplwi r12, 999
; cfs::CfItemBoxBase::getFreeStackCount((fw::CItemType::Type,uint)) --> returns max quantity allowed to buy
0x023639DC = li r0, 999 ; when some items in stock
0x023639FC = li r0, 999 ; when no item in stock
.int $max
_testsub:
lwz r29, 0xC(r1)
@ -21,25 +11,47 @@ li r3, 255
exit_testsub:
blr
[XCX_MAXITEMS_V101E_V102U]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
; cfs::CfItemBoxBase::addItem((fw::CItemType::Type, unsigned int, cfs::CfItemHandle &)) --> used to allow more than 99 (if not, auto sell)
0x02362C8C = cmplwi r12, $max
; cfs::CfItemBoxBase::canAddItem((fw::CItemType::Type,uint)) --> used in ticket trading window
0x02363108 = cmplwi r12, $max
; cfs::CfItemBoxBase::getFreeStackCount((fw::CItemType::Type,uint)) --> returns max quantity allowed to buy
0x023639DC = li r0, $max ; when some items in stock
0x023639FC = li r0, $max ; when no item in stock
0x02363A28 = bla _testsub
[XCX_MAXITEMS_1U] ##########################################################
moduleMatches = 0xAB97DE6B ; 1.0.1U
[XCX_MAXITEMS_V102J]
moduleMatches = 0x7672271D ; 1.0.2J
0x023624C0 = cmplwi r12, $max
0x0236293C = cmplwi r12, $max
.origin = codecave
0x02363210 = li r0, $max ; when some items in stock
0x02363230 = li r0, $max ; when no item in stock
0x02362C1C = cmplwi r12, 999
0x02363098 = cmplwi r12, 999
0x0236325C = bla _testsub
0x0236396C = li r0, 999 ; when some items in stock
0x0236398C = li r0, 999 ; when no item in stock
[XCX_MAXITEMS_V100U]
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
0x02362C1C = cmplwi r12, $max
0x02363098 = cmplwi r12, $max
_testsub:
lwz r29, 0xC(r1)
cmpwi r3, 255
ble exit_testsub
li r3, 255
exit_testsub:
blr
0x0236396C = li r0, $max ; when some items in stock
0x0236398C = li r0, $max ; when no item in stock
0x023639B8 = bla _testsub
[XCX_MAXITEMS_V100J]
moduleMatches = 0x785CA8A9 ; 1.0.0J
0x0236234C = cmplwi r12, $max
0x023627C8 = cmplwi r12, $max
0x0236309C = li r0, $max ; when some items in stock
0x023630BC = li r0, $max ; when no item in stock
0x023630E8 = bla _testsub

View File

@ -2,5 +2,27 @@
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Max Items"
path = "Xenoblade Chronicles X/Mods/Maximus/Max Items"
description = "Increase maximum items to 999."
version = 5
description = Increases maximum amount of items.
version = 6
[Default]
$max = 99
[Preset]
name = 99 (Default)
category = Max Items
[Preset]
name = 200
category = Max Items
$max = 200
[Preset]
name = 500
category = Max Items
$max = 500
[Preset]
name = 999
category = Max Items
$max = 999

View File

@ -1,54 +1,87 @@
[XCX_MAXMONEY] ##############################################################
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
[XCX_MAXMONEY_V101E_V102U]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
; fw::Util::addMoney((int))
0x027F6C28 = lis r12, 0x3B9B
0x027F6C30 = addi r12, r12, -0x3601
0x027F6C3C = lis r3, 0x3B9B
0x027F6C40 = addi r3, r3, -0x3601
; fw::Util::setMoney((unsigned int))
0x027F6BA8 = lis r4, 0x3B9B
0x027F6BAC = addi r4, r4, -0x3601
; fw::Util::setTradeTicket((unsigned int))
0x027F6D00 = lis r0, 0x3B9A
0x027F6D04 = ori r0, r0, 0xC9FF
; fw::Util::setMiranium((unsigned int))
0x027F6D9C = lis r0, 0x3B9A
0x027F6DA0 = ori r0, r0, 0xC9FF
; fw::Util::addMiranium((int))
0x027F6DFC = lis r0, 0x3B9A
0x027F6E04 = ori r0, r0, 0xC9FF
0x027F6E14 = lis r12, 0x3B9B
0x027F6E18 = addi r12, r12, -0x3601
[XCX_MAXMONEY_1U] ##############################################################
moduleMatches = 0xAB97DE6B ; 1.0.1U
[XCX_MAXMONEY_V102J] ; ###########################################################
moduleMatches = 0x7672271D ; 1.0.2J
; fw::Util::addMoney((int))
0x027F47CC = lis r12, 0x3B9B
0x027F47D4 = addi r12, r12, -0x3601
0x027F47E0 = lis r3, 0x3B9B
0x027F47E4 = addi r3, r3, -0x3601
; fw::Util::setMoney((unsigned int))
0x027F474C = lis r4, 0x3B9B
0x027F4750 = addi r4, r4, -0x3601
; fw::Util::setTradeTicket((unsigned int))
0x027f48A4 = lis r0, 0x3B9A
0x027f48A8 = ori r0, r0, 0xC9FF
; fw::Util::setMiranium((unsigned int))
0x027F4940 = lis r0, 0x3B9A
0x027F4944 = ori r0, r0, 0xC9FF
; fw::Util::addMiranium((int))
0x027F49A0 = lis r0, 0x3B9A
0x027f49A8 = ori r0, r0, 0xC9FF
0x027f49B8 = lis r12, 0x3B9B
0x027f49BC = addi r12, r12, -0x3601
[XCX_MAXMONEY_V100U] ; ###########################################################
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
; fw::Util::addMoney((int))
0x027F6BAC = lis r12, 0x3B9B
0x027F6BB4 = addi r12, r12, -0x3601
0x027F6BC0 = lis r3, 0x3B9B
0x027F6BC4 = addi r3, r3, -0x3601
; fw::Util::setMoney((unsigned int))
0x027F6B2C = lis r4, 0x3B9B
0x027F6B30 = addi r4, r4, -0x3601
; fw::Util::setTradeTicket((unsigned int))
0x027F6C84 = lis r0, 0x3B9A
0x027F6C88 = ori r0, r0, 0xC9FF
; fw::Util::setMiranium((unsigned int))
0x027F6D20 = lis r0, 0x3B9A
0x027F6D24 = ori r0, r0, 0xC9FF
; fw::Util::addMiranium((int))
0x027F6D80 = lis r0, 0x3B9A
0x027F6D88 = ori r0, r0, 0xC9FF
0x027F6D98 = lis r12, 0x3B9B
0x027F6D9C = addi r12, r12, -0x3601
[XCX_MAXMONEY_V100J] ; ###########################################################
moduleMatches = 0x785CA8A9 ; 1.0.0J
; fw::Util::addMoney((int))
0x027F37A0 = lis r12, 0x3B9B
0x027F37A8 = addi r12, r12, -0x3601
0x027F37B4 = lis r3, 0x3B9B
0x027F37B8 = addi r3, r3, -0x3601
; fw::Util::setMoney((unsigned int))
0x027F3720 = lis r4, 0x3B9B
0x027F3724 = addi r4, r4, -0x3601
; fw::Util::setTradeTicket((unsigned int))
0x027F3878 = lis r0, 0x3B9A
0x027F387C = ori r0, r0, 0xC9FF
; fw::Util::setMiranium((unsigned int))
0x027F3914 = lis r0, 0x3B9A
0x027F3918 = ori r0, r0, 0xC9FF
; fw::Util::addMiranium((int))
0x027F3974 = lis r0, 0x3B9A
0x027F397C = ori r0, r0, 0xC9FF
0x027F398C = lis r12, 0x3B9B
0x027F3990 = addi r12, r12, -0x3601

View File

@ -3,4 +3,4 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Max Money"
path = "Xenoblade Chronicles X/Mods/Maximus/Max Money"
description = "Increase maximum money to 999 999 999."
version = 5
version = 6

Some files were not shown because too many files have changed in this diff Show More