[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] [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 .origin = codecave
forceCutsceneLimit: forceCutsceneLimit:

View File

@ -1,6 +1,5 @@
[XCX_FPS++_GameSpeed] [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 .origin = codecave
# Constants # Constants
@ -248,8 +247,8 @@ lwz r10, 0x14(r1)
blr blr
[XCX_FPS++_GameSpeed_V101E] [XCX_FPS++_GameSpeed_V101E] ; #####################################################################################################################################################
moduleMatches = 0xF882D5CF moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
; Global data patch ; Global data patch
0x10171980 = havokHalfSpeed: 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 # 0x027A33DC = lfs f1, averageFPS1Inv@l(r10) ; But introduces shake and stutter issue. CODE XREF: ev::CEvtManager::startPage((float,bool))+6Cj
[XCX_FPS++_GameSpeed_V102J] [XCX_FPS++_GameSpeed_V102U] ; #####################################################################################################################################################
moduleMatches = 0x7672271D 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 ; Global data patch
0x10171570 = havokHalfSpeed: 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 # 0x027A1124 = lfs f1, averageFPS1Inv@l(r10) ; But introduces shake and stutter issue. CODE XREF: ev::CEvtManager::startPage((float,bool))+6Cj
[XCX_FPS++_GameSpeed_V102U] [XCX_FPS++_GameSpeed_V100U] ; #####################################################################################################################################################
moduleMatches = 0x30B6E091 moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
; Global data patch ; Global data patch
0x10171980 = havokHalfSpeed: 0x10171880 = havokHalfSpeed:
0x10171980 = .float $fpsLimit 0x10171880 = .float $fpsLimit
0x100598E4 = titleScreenSpeed: 0x100598E4 = titleScreenSpeed:
0x100598E4 = .float (30.0/$fpsLimit) 0x100598E4 = .float (30.0/$fpsLimit)
0x10012644 = soulVoiceSpeed: 0x10012644 = soulVoiceSpeed:
@ -348,30 +390,73 @@ moduleMatches = 0x30B6E091
; Instruction-specific patches ; Instruction-specific patches
0x02228274 = lis r5, averageFPS0.1@ha ; Controller acceleration 0x02228274 = lis r5, averageFPS0.1@ha ; Controller acceleration
0x0222827C = lfs f30, averageFPS0.1@l(r5) ; Controller acceleration 0x0222827C = lfs f30, averageFPS0.1@l(r5) ; Controller acceleration
0x0273E3CC = lis r7, averageFPS1Inv@ha ; Sync elevator, vehicles etc 0x0273E36C = lis r7, averageFPS1Inv@ha ; Sync elevator, vehicles etc
0x0273E3D0 = lfs f31, averageFPS1Inv@l(r7) ; Sync elevator, vehicles etc 0x0273E370 = lfs f31, averageFPS1Inv@l(r7) ; Sync elevator, vehicles etc
0x0276A85C = lis r8, averageFPS1Inv@ha ; Sync in-game cutscenes 0x0276A7FC = lis r8, averageFPS1Inv@ha ; Sync in-game cutscenes
0x0276A860 = lfs f31, averageFPS1Inv@l(r8) ; Sync in-game cutscenes 0x0276A800 = lfs f31, averageFPS1Inv@l(r8) ; Sync in-game cutscenes
0x025F299C = lis r12, averageFPS1Inv@ha ; Move__11CfSceneTaskFv ; Filter CPU, 30FPS logic 0x025F292C = lis r12, averageFPS1Inv@ha ; Move__11CfSceneTaskFv ; Filter CPU, 30FPS logic
0x025F29A4 = lfs f31, averageFPS1Inv@l(r12) ; Move__11CfSceneTaskFv 0x025F2934 = lfs f31, averageFPS1Inv@l(r12) ; Move__11CfSceneTaskFv
# 0x02D39CE0 = lis r12, const_guiSpeed@ha ; AnimeObject::set # 0x02D39B68 = lis r12, const_guiSpeed@ha ; AnimeObject::set
# 0x02D39CE4 = lfs f13, const_guiSpeed@l(r12) ; AnimeObject::set # 0x02D39B6C = lfs f13, const_guiSpeed@l(r12) ; AnimeObject::set
0x02D202C8 = lis r12, const_guiSpeed@ha ; MenuObject::playEvent 0x02D20150 = lis r12, const_guiSpeed@ha ; MenuObject::playEvent
0x02D202CC = lfs f31, const_guiSpeed@l(r12) ; MenuObject::playEvent 0x02D20154 = lfs f31, const_guiSpeed@l(r12) ; MenuObject::playEvent
0x02D20394 = lis r12, const_guiSpeed@ha ; MenuObject::playEventFrame 0x02D2021C = lis r12, const_guiSpeed@ha ; MenuObject::playEventFrame
0x02D20398 = lfs f31, const_guiSpeed@l(r12) ; MenuObject::playEventFrame 0x02D20220 = lfs f31, const_guiSpeed@l(r12) ; MenuObject::playEventFrame
; Call GX2SetSwapInterval with 0 which removes any vsync ; 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 ; Use FPS waiting logic even with swap interval being 0
0x02FD59B4 = li r3, 1 0x02FD583C = li r3, 1
0x02FD5A54 = bla _calculateGamespeed 0x02FD58DC = bla _calculateGamespeed
0x027685B0 = bla _useCutsceneLimit 0x02768550 = bla _useCutsceneLimit
0x03AC2790 = bla _usePrerenderedCutsceneLimit 0x03AC2610 = bla _usePrerenderedCutsceneLimit
# These patches are replaced by lowering the framerate to prevent side-effects # These patches are replaced by lowering the framerate to prevent side-effects
# 0x027398B4 = lis r11, averageFPS1@ha ; Double updateEventParam cutscenes # 0x02739854 = lis r11, averageFPS1@ha ; Double updateEventParam cutscenes
# 0x027398C0 = lfs f1, averageFPS1@l(r11) ; Double updateEventParam cutscenes # 0x02739860 = lfs f1, averageFPS1@l(r11) ; Double updateEventParam cutscenes
# 0x027A33D8 = lis r10, averageFPS1Inv@ha ; Half SyncFrame cinematic cutscene, fixes timing issues with cinematic cutscenes # 0x027A3378 = 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 # 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] ; ######################################################## [XCX_FPS++_Overdrive_General]
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 .origin = codecave
_over: _over:
@ -10,20 +9,18 @@ _over:
fmuls f1, f31, f1 fmuls f1, f31, f1
blr 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)) 0x021BC904 = bla _over ; Gear::CGear::update((float))
0x021E2020 = bla _over ; Gear::CMode::Update((float)) 0x021E2020 = bla _over ; Gear::CMode::Update((float))
[XCX_FPS++_Overdrive_V102U] ; ######################################################## [XCX_FPS++_Overdrive_V102J]
moduleMatches = 0x30B6E091 ; 1.0.2U
0x021BC904 = bla _over ; Gear::CGear::update((float))
0x021E2020 = bla _over ; Gear::CMode::Update((float))
[XCX_FPS++_Overdrive_V102J] ; ########################################################
moduleMatches = 0x7672271D ; 1.0.2J moduleMatches = 0x7672271D ; 1.0.2J
0x021BC3D0 = bla _over ; Gear::CGear::update((float)) 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] ; ######################################################## [XCX_FPS++_QTE_General]
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 .origin = codecave
timingFloatConv: timingFloatConv:
@ -76,35 +75,48 @@ _justFrame2:
blr 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 ; menu::MenuButtonChallenge::setup
0x02ACE40C = lis r7, averageFPS30Inv@ha 0x02ACE40C = lis r7, averageFPS30Inv@ha
0x02ACE414 = lfs f0, averageFPS30Inv@l(r7) 0x02ACE414 = lfs f0, averageFPS30Inv@l(r7)
; menu::MenuButtonChallenge::move ; menu::MenuButtonChallenge::move
0x02ACE6E4 = bla _justFrame1 0x02ACE6E4 = bla _justFrame1
0x02ACE700 = bla _justFrame2 0x02ACE700 = bla _justFrame2
[XCX_FPS++_QTE_V102U] ; ######################################################## [XCX_FPS++_QTE_V102U] ; ########################################################
moduleMatches = 0x30B6E091 ; 1.0.2U moduleMatches = 0x30B6E091 ; 1.0.2U
; menu::MenuButtonChallenge::setup ; menu::MenuButtonChallenge::setup
0x02ACE3FC = lis r7, averageFPS30Inv@ha 0x02ACE3FC = lis r7, averageFPS30Inv@ha
0x02ACE404 = lfs f0, averageFPS30Inv@l(r7) 0x02ACE404 = lfs f0, averageFPS30Inv@l(r7)
; menu::MenuButtonChallenge::move ; menu::MenuButtonChallenge::move
0x02ACE6D4 = bla _justFrame1 0x02ACE6D4 = bla _justFrame1
0x02ACE6F0 = bla _justFrame2 0x02ACE6F0 = bla _justFrame2
[XCX_FPS++_QTE_V102J] [XCX_FPS++_QTE_V102J] ; ########################################################
moduleMatches = 0x7672271D ; 1.0.2J moduleMatches = 0x7672271D ; 1.0.2J
; menu::MenuButtonChallenge::setup ; menu::MenuButtonChallenge::setup
0x02ACAA38 = lis r7, averageFPS30Inv@ha 0x02ACAA38 = lis r7, averageFPS30Inv@ha
0x02ACAA40 = lfs f0, averageFPS30Inv@l(r7) 0x02ACAA40 = lfs f0, averageFPS30Inv@l(r7)
; menu::MenuButtonChallenge::move ; menu::MenuButtonChallenge::move
0x02ACAD10 = bla _justFrame1 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] #################################################################################################################################### [XCX_DAMAGES_V101E]
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
0x02E0C5B0 = li r3, -1-$mult
.origin = codecave
.int $mult
0x025D896C = mulli r4, r31, $mult 0x025D896C = mulli r4, r31, $mult
[XCX_DAMAGES_1U] #################################################################################################################################### [XCX_DAMAGES_V102U]
moduleMatches = 0xAB97DE6B ; 1.0.1U moduleMatches = 0x30B6E091 ; 1.0.2U
0x02E0C550 = li r3, -1-$mult
0x025D896C = mulli r4, r31, $mult
.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-$mult
0x025D88FC = mulli r4, r31, $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,8 +2,8 @@
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Ground damage multiplicator" name = "Ground damage multiplicator"
path = "Xenoblade Chronicles X/Mods/Battle/Ground damage multiplicator" path = "Xenoblade Chronicles X/Mods/Battle/Ground damage multiplicator"
description = Increase the ground damage done by your team (skells not impacted). description = Increase the damage done by your team. Doesn't affect the damage numbers that are shown.
version = 5 version = 6
[Default] [Default]
$mult = 2 $mult = 2
@ -23,6 +23,10 @@ $mult = 5
name = Damage x10 name = Damage x10
$mult = 10 $mult = 10
[Preset]
name = Damage x25
$mult = 25
[Preset] [Preset]
name = Damage x100 name = Damage x100
$mult = 100 $mult = 100

View File

@ -1,22 +1,32 @@
[XCX_DAMAGES] [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 .origin = codecave
.int $divr .int $divr
_divide_dmg: _divide_dmg:
li r4, $divr li r4, $divr
divw r4, r31, r4 divw r4, r31, r4
blr blr
[XCX_DAMAGES_V101E]
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
0x02E0C5B0 = li r3, -1-$divr
0x025D896C = bla _divide_dmg 0x025D896C = bla _divide_dmg
[XCX_DAMAGES_1U] [XCX_DAMAGES_V102U]
moduleMatches = 0xAB97DE6B ; 1.0.1U 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 titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = Ground Damage Divisor name = Ground Damage Divisor
path = "Xenoblade Chronicles X/Mods/Battle/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. 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 = 5 version = 6
[Default] [Default]
$divr = 2 $divr = 2
[Preset]
category = Damage Divisor
name = Normal Damage (Default)
default = 1
$divr = 1
[Preset] [Preset]
category = Damage Divisor category = Damage Divisor
name = Damage / 2 name = Damage / 2
$divr = 2
[Preset] [Preset]
category = Damage Divisor category = Damage Divisor
@ -36,7 +29,7 @@ $divr = 10
[Preset] [Preset]
category = Damage Divisor category = Damage Divisor
name = Damage / 10 name = Damage / 50
$divr = 50 $divr = 50
[Preset] [Preset]

View File

@ -1,7 +1,6 @@
[XCX_ENEMIESTATS] [XCX_ENEMIESTATS_V101E]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
; ------------------------------------------------------------------------
; ----------------------------------------------------------------------------
; WHO : calcEnParam__3cfsFPQ2_3cfs7SChrPrmUiT2 ; WHO : calcEnParam__3cfsFPQ2_3cfs7SChrPrmUiT2
; WHAT : Apply modificator on enemies stats (HP, Melee Attack, Melee Accuracy, Ranged Attack, Ranged Accuracy, Potential and Evasion) ; 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 ; 70% = 0.0007
; 50% = 0.0005 ; 50% = 0.0005
; 1% = 0.00001 ; GAME CRASH (enemis are too weak) ; 1% = 0.00001 ; GAME CRASH (enemis are too weak)
0x02E0C5B0 = li r3, -3
0x1003206C = .float $mod 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" name = "Enemy Statistics modificator"
path = "Xenoblade Chronicles X/Mods/Battle/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. 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] [Default]
$mod = 0.001
[Preset]
name = "Set at 25%"
$mod = 0.00025
[Preset]
name = "Set at 50%"
$mod = 0.0005 $mod = 0.0005
[Preset] [Preset]
name = Set at 50% name = "Set at 75%"
[Preset]
name = Set at 75%
$mod = 0.00075 $mod = 0.00075
[Preset] [Preset]
name = Set at 125% name = "Set at 100% (default)"
default = 1
[Preset]
name = "Set at 125%"
$mod = 0.00125 $mod = 0.00125
[Preset] [Preset]
name = Set at 150% name = "Set at 150%"
$mod = 0.0015 $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] [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 .origin = codecave
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; WHO : cfs::CfCompoPropertyEnemy::getReleasePcDistanceXZ ; WHO : cfs::CfCompoPropertyEnemy::getReleasePcDistanceXZ
; WHAT : Reduce escape distance from enemies (to lose aggro) ; WHAT : Reduce escape distance from enemies (to lose aggro)

View File

@ -1,16 +1,33 @@
[Definition] [Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Escape distance reducer" name = "Enemy de-aggro range reducer"
path = "Xenoblade Chronicles X/Mods/Battle/Escape distance reducer" path = "Xenoblade Chronicles X/Mods/Battle/Enemy de-aggro"
description = Reduce escape distance needed to lose aggro from enemies. description = Decrease or increase the distance needed to run to lose aggro from enemies.
version = 5 version = 6
[Default] [Default]
$mod = 1.333 $mod = 1.0
[Preset] [Preset]
name = Apply -25% name = "Hell: Enemies will never de-aggro"
$mod = 0.0001
[Preset] [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 $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] [XCX_OVERDRIVE_V101E_102U_100U]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U 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)) ; WHO : Gear::CGear::IsPermit((void))
; WHAT : Always returns true to unlock Overdrive even before chapter 5 ; WHAT : Always returns true to unlock Overdrive even before chapter 5
0x021B70AC = li r3, $mod
0x021B70C4 = li r3, $mod
0x021B70AC = li r3, 1 [XCX_OVERDRIVE_V102J]
0x021B70C4 = li r3, 1 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 titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Overdrive unlocked pre-Chapter 5" name = "Overdrive unlocked pre-Chapter 5"
path = "Xenoblade Chronicles X/Mods/Battle/Overdrive unlocked" path = "Xenoblade Chronicles X/Mods/Battle/Overdrive unlocked"
description = Unleashed the power of Overdrive before Chapter 5. description = Unleash the power of Overdrive before Chapter 5 or relock it after Chapter 5.
version = 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] ################################################################################################# [XCX_QTE_DOLLLOST]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U 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
0x027F9464 = SetInsure:
0x023EEFB0 = getPropAccessor:
.origin = codecave .origin = codecave
_setDestructionExcellent: _setDestructionExcellent:
@ -43,9 +39,34 @@ _setDestructionGoodExit:
mr r3, r31 ; restore r3 from r31 saved in the stack mr r3, r31 ; restore r3 from r31 saved in the stack
blr 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)) ; WHO : Battle::CSoulVoiceButtonChallenge::applyResult((void))
; WHAT : Cancel Skell destruction if insurance is still valid (or if QTE result is Excellent) ; WHAT : Cancel Skell destruction if insurance is still valid (or if QTE result is Excellent)
0x0209879C = bla _setDestructionExcellent 0x0209879C = bla _setDestructionExcellent
0x02098804 = bla _setDestructionGood 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] [Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Soul Challenges - Skell restored" name = "Soul Challenges - Skell auto restore"
path = "Xenoblade Chronicles X/Mods/Battle/Soul Challenges - Skell restored" 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). 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] ################################################################################################# [XCX_QTE_AUTO_V101E_V102U_V100U]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U 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)) ; WHO : Battle::CSoulVoiceButtonChallenge::applyResult((void))
; WHAT : Force QTE result on Soul Voices (0 = fail 1 = good, 2 = excellent) ; WHAT : Force QTE result on Soul Voices (0 = fail 1 = good, 2 = excellent)
0x0209BA38 = li r9, $mod
0x0209BA38 = li r9, 2
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; WHO : Battle::CSoulVoiceButtonChallenge::updateInternal((float)) ; WHO : Battle::CSoulVoiceButtonChallenge::updateInternal((float))
; WHAT : Auto Apply QTE (dot not call Battle::CButtonChallengeManager::CallUI) ; WHAT : Auto Apply QTE (dot not call Battle::CButtonChallengeManager::CallUI)
0x0209D764 = _applyResult: 0x0209D764 = _applyResult:
0x0209D6F0 = b _applyResult 0x0209D6F0 = b _applyResult
0x0209D720 = 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] [Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Soul Challenges - AutoBattles" name = "Soul Challenges - QTE Auto"
path = "Xenoblade Chronicles X/Mods/Battle/Soul Challenges - AutoBattles" path = "Xenoblade Chronicles X/Mods/Battle/Soul Challenges - QTE Auto"
description = QTE during battles are automatically done (force result to Excellent). description = QTE during battles are automatically done (force result).|Does not work on skell destroyed soul voice.
version = 5 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] ################################################################################################# [XCX_QTE_SPEED_V101E_V102U_V100U]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U 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)) ; WHO : SoulVoice::CSoulVoice::getDifficulty((void))
; WHAT : QTE speed does not increase ; 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] [Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Soul Challenges - Difficulty" name = "Soul Challenges - QTE Speed"
path = "Xenoblade Chronicles X/Mods/Battle/Soul Challenges - Difficulty" path = "Xenoblade Chronicles X/Mods/Battle/Soul Challenges - QTE Speed"
description = Speed of QTE does not increase during battles. description = Speed of QTE does not increase or decrease during battles.
version = 5 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] [XCX_DLC_V101E_V102U]
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; WHO : collectQuestInfoDL__Q2_3cfs15CfSocialManagerFRQ2_2ml45resvector__tm__28_PQ2_3cfs17CfSocialQuestInfo ; WHO : collectQuestInfoDL__Q2_3cfs15CfSocialManagerFRQ2_2ml45resvector__tm__28_PQ2_3cfs17CfSocialQuestInfo
; WHAT : Disable endgame check to unlock DLC missions ; WHAT : Disable endgame check to unlock DLC missions
0x022C6B50 = nop 0x022C6B50 = nop
[XCX_DLC_1U] [XCX_DLC_V102J]
moduleMatches = 0xAB97DE6B ; 1.0.1U moduleMatches = 0x7672271D ; 1.0.2J
0x022C6560 = 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 0x022C6AE0 = nop

View File

@ -3,5 +3,4 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "DLC Quests unlocked" name = "DLC Quests unlocked"
path = "Xenoblade Chronicles X/Mods/BLADE/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. 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] [XCX_TICKETS_DLC]
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 .origin = codecave
.int $mission .int $mission
VarTicketsAmount: VarTicketsAmount:
.int 0 .int 0
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; WHO : menu::MenuMultiQuestInfoWindow::displayInfo((menu::MenuObject *,bool)) ; WHO : menu::MenuMultiQuestInfoWindow::displayInfo((menu::MenuObject *,bool))
; menu::MenuMultiQuestResult::setup((void)) ; menu::MenuMultiQuestResult::setup((void))
@ -44,23 +41,40 @@ lis r27, VarTicketsAmount@ha
lwz r27, VarTicketsAmount@l(r27) lwz r27, VarTicketsAmount@l(r27)
blr blr
[XCX_TICKETS_DLC_1E] ############################################################################################ _ticketsValueJP:
moduleMatches = 0xF882D5CF ; 1.0.1E 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 0x02B94718 = bla _ticketsDispBefore
0x02B9FE2C = bla _ticketsDispAfter 0x02B9FE2C = bla _ticketsDispAfter
0x023CC654 = bla _ticketsValue 0x023CC654 = bla _ticketsValue
[XCX_TICKETS_DLC_2U] ############################################################################################ [XCX_TICKETS_DLC_V102U]
moduleMatches = 0x30B6E091 ; 1.0.2U moduleMatches = 0x30B6E091 ; 1.0.2U
0x02B94708 = bla _ticketsDispBefore 0x02B94708 = bla _ticketsDispBefore
0x02B9FE1C = bla _ticketsDispAfter 0x02B9FE1C = bla _ticketsDispAfter
0x023CC654 = bla _ticketsValue 0x023CC654 = bla _ticketsValue
[XCX_TICKETS_DLC_1U] ############################################################################################ [XCX_TICKETS_DLC_V102J]
moduleMatches = 0xAB97DE6B ; 1.0.1U 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 0x02B9468C = bla _ticketsDispBefore
0x02B9FD2C = bla _ticketsDispAfter 0x02B9FD2C = bla _ticketsDispAfter
0x023CC5E4 = bla _ticketsValue 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 titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Gain Reward Tickets from DLC or Time Attack missions" 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" 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. description = Adds Exchange Tickets in reward of completing Blade missions.|This mod will not work if More Reward Tickets is enabled.
version = 5 version = 6
[Default] [Default]
$mission = 5 $mission = 2
[Preset]
name = "Gain from DLC missions (money/100)"
[Preset] [Preset]
name = "Gain from TA missions (exp)" 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] [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 .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)) ; cfs::CfSocialManager::update((float))
0x022879D0 = nop ; (network test?) allow call to cfs::CfSocialQuestManager::update((void)) 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 0x022863CC = nop ; or. r0, r6, r7
0x02286474 = li r7, 1 ; for getWERewardList 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 0x0282B2F0 = bla _loadRP ; __CPR86__getWorldEnemyInfo__Q2_2fw15SocialDataStoreCFUiRQ3_2fwJ25J14WorldEnemyInfo
; ######################################### TODO : get WERewardList (Telethia Stem Cell) ; ######################################### TODO : get WERewardList (Telethia Stem Cell)
; cfs::CfSocialManager::getQuestDetailWE((cfs::CfSocialQuestInfoWE &)) ; cfs::CfSocialManager::getQuestDetailWE((cfs::CfSocialQuestInfoWE &))
; |- __CPR95__getWorldEnemyInfoFromQuest__Q2_2fw15SocialDataStoreCFUiRQ3_2fwJ34J14WorldEnemyInfo ; |- __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 ; |- |- __CPR86__getWorldEnemyInfo__Q2_2fw15SocialDataStoreCFUiRQ3_2fwJ25J14WorldEnemyInfo
0x0282B0E4 = li r7, 1 ; cmpwi r7, 0 0x0282B0E4 = li r7, 1 ; cmpwi r7, 0
0x0282B0FC = li r0, 1 ; cmpwi r0, 0 0x0282B0FC = li r0, 1 ; cmpwi r0, 0
0x0282B170 = li r6, 1 ; to store in 8(r26) -> needed for cmpwi r0, 1 after callback 0x0282B170 = li r6, 1 ; to store in 8(r26) -> needed for cmpwi r0, 1 after callback
0x0282B264 = nop ; skip deserializeWorldEnemy 0x0282B264 = nop ; skip deserializeWorldEnemy
0x0282B410 = li r4, 1 ; for getWERewardList 0x0282B410 = li r4, 1 ; for getWERewardList
; cfs::CfSocialManager::getQuestDetailFR((cfs::CfSocialQuestInfoFR &)) ; cfs::CfSocialManager::getQuestDetailFR((cfs::CfSocialQuestInfoFR &))
0x0228989C = nop ; Uncomment to show Appraisal Rewards 0x0228989C = nop ; Uncomment to show Appraisal Rewards
[XCX_OFFLINEWE_1E] ############################################################################################ [XCX_OFFLINEWE_V101E] ; ############################################################################################
moduleMatches = 0xF882D5CF ; 1.0.1E moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
0x02AC5C10 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline
.origin = codecave
; menu::MenuMultiQuestOrder::move((void)) ; menu::MenuMultiQuestOrder::move((void))
; skip BLADE medals requirement on launch mission ; skip BLADE medals requirement on launch mission
0x02B9B0B0 = li r3, 1 ; Disable call to menu::MenuMultiQuestOrder::canOrderWorldEnemy 0x02B9B0B0 = li r3, 1 ; Disable call to menu::MenuMultiQuestOrder::canOrderWorldEnemy
; menu::CTerminalMenu_PieceExchange::offline((void)) ; menu::CTerminalMenu_PieceExchange::offline((void))
; Allow access to piece exchange from network console ; Allow access to piece exchange from network console
_single:
li r3, 0
blr
0x02AC613C = ba _single ; menu::CBladeHomuMenu::single((void)) 0x02AC613C = ba _single ; menu::CBladeHomuMenu::single((void))
; __CPR129__getMultiQuestReward__Q2_3cfs15CfSocialManagerCFUiRQ2_3mtl68fixed_vector__tm__48_Q3_3cfsJ28J11QuestRewardXCUiL_2_46T1 --> OK ; __CPR129__getMultiQuestReward__Q2_3cfs15CfSocialManagerCFUiRQ2_3mtl68fixed_vector__tm__48_Q3_3cfsJ28J11QuestRewardXCUiL_2_46T1 --> OK
0x022CA324 = nop ; always all items? 0x022CA324 = nop ; always all items?
[XCX_OFFLINEWE_2U] ############################################################################################ [XCX_OFFLINEWE_V102U] ; ############################################################################################
moduleMatches = 0x30B6E091 ; 1.0.2U moduleMatches = 0x30B6E091 ; 1.0.2U
.origin = codecave
0x02AC5C00 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline 0x02AC5C00 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline
0x02B9B0A0 = li r3, 1 ; Disable call to menu::MenuMultiQuestOrder::canOrderWorldEnemy 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: [XCX_OFFLINEWE_V102J] ; ############################################################################################
li r3, 0 moduleMatches = 0x7672271D ; 1.0.2J
blr 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] ############################################################################################ 0x022C60DC = li r3, 1 ; fw::SocialDataStore::getWorldEnemyCount(const(void))
moduleMatches = 0xAB97DE6B ; 1.0.1U 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)) 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 0x022C7FEC = nop ; network test : lwz r10, 0x1B0(r30) --> rlwinm. r9, r10, 0,30,30
0x022C7FF0 = nop ; network test 0x022C7FF0 = nop ; network test
0x022C61E4 = li r3, 1 ; fw::SocialDataStore::getWorldEnemyCount(const(void)) 0x022C61E4 = li r3, 1 ; fw::SocialDataStore::getWorldEnemyCount(const(void))
0x022C6210 = li r3, 0x4EE9 ; Quest ID for WE - fw::SocialDataStore::getWorldEnemyQuest(const(unsigned int)) 0x022C6210 = li r3, 0x4EE9 ; Quest ID for WE - fw::SocialDataStore::getWorldEnemyQuest(const(unsigned int))
0x022C6538 = li r3, 1 ; fw::SocialDataStore::getWorldEnemyCount(const(void)) 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 0x022C668C = li r3, 0x4EED
0x022C66C8 = nop ; network test? 0x022C66C8 = nop ; network test?
0x022C69EC = li r3, 1 ; fw::SocialDataStore::getWorldEnemyCount(const(void)) 0x022C69EC = li r3, 1 ; fw::SocialDataStore::getWorldEnemyCount(const(void))
0x022863A4 = nop ; or. r0, r6, r7 0x022863A4 = nop ; or. r0, r6, r7
0x022863CC = nop ; or. r0, r6, r7 0x022863CC = nop ; or. r0, r6, r7
0x02286474 = li r7, 1 ; for getWERewardList 0x02286474 = li r7, 1 ; for getWERewardList
_loadRP:
lis r12, 0x0022
ori r12, r12, 0x5510
blr
0x0282B274 = bla _loadRP ; __CPR86__getWorldEnemyInfo__Q2_2fw15SocialDataStoreCFUiRQ3_2fwJ25J14WorldEnemyInfo 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 0x0282B068 = li r7, 1 ; cmpwi r7, 0
0x0282B080 = li r0, 1 ; cmpwi r0, 0 0x0282B080 = li r0, 1 ; cmpwi r0, 0
0x0282B0F4 = li r6, 1 ; to store in 8(r26) -> needed for cmpwi r0, 1 after callback 0x0282B0F4 = li r6, 1 ; to store in 8(r26) -> needed for cmpwi r0, 1 after callback
0x0282B1E8 = nop ; skip deserializeWorldEnemy 0x0282B1E8 = nop ; skip deserializeWorldEnemy
0x0282B394 = li r4, 1 ; for getWERewardList 0x0282B394 = li r4, 1 ; for getWERewardList
0x0228982C = nop ; Uncomment to show Appraisal Rewards 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 0x02B9AFB0 = li r3, 1 ; Disable call to menu::MenuMultiQuestOrder::canOrderWorldEnemy
_single:
li r3, 0
blr
0x02AC60B0 = ba _single ; menu::CBladeHomuMenu::single((void)) 0x02AC60B0 = ba _single ; menu::CBladeHomuMenu::single((void))
0x022CA2B4 = nop ; always all items? 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] ; not porting this backup file to JP
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U [XCX_OFFLINEWE_V101E_V102U]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
.origin = codecave .origin = codecave
; getServerTimeSec__Q2_2nt10CNetLibNexCFRUL ; getServerTimeSec__Q2_2nt10CNetLibNexCFRUL
@ -155,9 +155,8 @@ blr
; A droite les items communs ; A droite les items communs
; A gauche les items si Nemesis battu ; A gauche les items si Nemesis battu
[XCX_OFFLINEWE_1E] ############################################################################################ [XCX_OFFLINEWE_V101E] ; ############################################################################################
moduleMatches = 0xF882D5CF ; 1.0.1E moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
.origin = codecave .origin = codecave
; menu::MenuMultiQuestOrder::move((void)) ; menu::MenuMultiQuestOrder::move((void))
@ -262,9 +261,8 @@ blr
;02C23528 ;02C23528
;02C23530 ;02C23530
[XCX_OFFLINEWE_2U] ############################################################################################ [XCX_OFFLINEWE_V102U] ; ############################################################################################
moduleMatches = 0x30B6E091 ; 1.0.2U moduleMatches = 0x30B6E091 ; 1.0.2U
.origin = codecave .origin = codecave
;0x02B9B0A0 = li r3, 1 ; Disable call to menu::MenuMultiQuestOrder::canOrderWorldEnemy ;0x02B9B0A0 = li r3, 1 ; Disable call to menu::MenuMultiQuestOrder::canOrderWorldEnemy
@ -275,9 +273,8 @@ blr
0x02AC612C = ba _single 0x02AC612C = ba _single
[XCX_OFFLINEWE_1U] ############################################################################################ [XCX_OFFLINEWE_V100U] ; ############################################################################################
moduleMatches = 0xAB97DE6B ; 1.0.1U moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
.origin = codecave .origin = codecave
; getServerTimeSec__Q2_2nt10CNetLibNexCFRUL ; getServerTimeSec__Q2_2nt10CNetLibNexCFRUL
@ -425,4 +422,3 @@ blr
; __CPR129__getMultiQuestReward__Q2_3cfs15CfSocialManagerCFUiRQ2_3mtl68fixed_vector__tm__48_Q3_3cfsJ28J11QuestRewardXCUiL_2_46T1 --> OK ; __CPR129__getMultiQuestReward__Q2_3cfs15CfSocialManagerCFUiRQ2_3mtl68fixed_vector__tm__48_Q3_3cfsJ28J11QuestRewardXCUiL_2_46T1 --> OK
; 0x022C9E88 ; 0x022C9E88
0x022CA324 = nop ; always all items? 0x022CA324 = nop ; always all items?

View File

@ -3,4 +3,4 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Offline Global Nemesis missions" name = "Offline Global Nemesis missions"
path = "Xenoblade Chronicles X/Mods/BLADE/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. 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] ################################################################ [XCX_UNLOCKPOSTSKELLS]
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 .origin = codecave
.int $miranium .int $miranium
.int $resource .int $resource
.int $ignoreLevel .int $ignoreLevel
@ -13,35 +11,47 @@ LbIgnoreLevel:
li r3, 1 li r3, 1
blr 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)) ; menu::MenuArmsCompanyDevelopSelectBlueprint::CheckEnableDevelop(const(int, bool))
0x02A7A784 = li r3, $miranium 0x02A7A784 = li r3, $miranium
0x02A7A954 = li r3, $resource 0x02A7A954 = li r3, $resource
; menu::MenuArmsCompany::IsDollLicense(const(void)) ; menu::MenuArmsCompany::IsDollLicense(const(void))
0x02A6B838 = li r3, 1 ; always returns true 0x02A6B838 = li r3, 1 ; always returns true
; menu::MenuArmsCompanyDevelopSelectBlueprint::InitializeItemData((void)) ; menu::MenuArmsCompanyDevelopSelectBlueprint::InitializeItemData((void))
0x02A7B220 = li r30, 0 ; unlock everything 0x02A7B220 = li r30, 0 ; unlock everything
0x02AF8EA8 = b LbIgnoreLevel 0x02AF8EA8 = b LbIgnoreLevel
[XCX_UNLOCKPOSTSKELLS_2U] ################################################################ [XCX_UNLOCKPOSTSKELLS_V102U]
moduleMatches = 0x30B6E091 ; 1.0.2U moduleMatches = 0x30B6E091 ; 1.0.2U
0x02A6B828 = li r3, 1
0x02A7B210 = li r30, 0
0x02A7A774 = li r3, $miranium 0x02A7A774 = li r3, $miranium
0x02A7A944 = li r3, $resource 0x02A7A944 = li r3, $resource
0x02A6B828 = li r3, 1 ; always returns true
0x02A7B210 = li r30, 0 ; unlock everything
0x02AF8E98 = b LbIgnoreLevel 0x02AF8E98 = b LbIgnoreLevel
[XCX_UNLOCKPOSTSKELLS_1U] ################################################################ [XCX_UNLOCKPOSTSKELLS_V102J]
moduleMatches = 0xAB97DE6B ; 1.0.1U 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 [XCX_UNLOCKPOSTSKELLS_V100U]
0x02A7B194 = li r30, 0 ; unlock everything moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
0x02A7A6F8 = li r3, $miranium 0x02A7A6F8 = li r3, $miranium
0x02A7A8C8 = li r3, $resource 0x02A7A8C8 = li r3, $resource
0x02A6B7AC = li r3, 1 ; always returns true
0x02A7B194 = li r30, 0 ; unlock everything
0x02AF8E1C = b LbIgnoreLevel 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" name = "Lv60 Skells unlocked"
path = "Xenoblade Chronicles X/Mods/BLADE/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. description = Lv60 Skells and equipment are unlocked and accessible right after you are a BLADE member.
version = 5 version = 6
[Default] [Default]
$miranium = 2 $miranium = 2

View File

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

View File

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

View File

@ -1,10 +1,48 @@
[XCX_SQUADMISSIONS] [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 .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)) ; cfs::CfSocialManager::update((float))
0x022879D0 = nop ; (network test?) allow call to cfs::CfSocialQuestManager::update((void)) 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 0x023ABCAC = nop ; compare with 0x28 - UNLOCK
0x023ABCB8 = nop ; compare with 0x2C - 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) ; 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 0x022C805C = nop ; test réseau : lwz r10, 0x1B0(r30) --> rlwinm. r9, r10, 0,30,30
0x022C8060 = nop ; test réseau 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 ; collectQuestInfoSQ__Q2_3cfs15CfSocialManagerFRQ2_2ml45resvector__tm__28_PQ2_3cfs17CfSocialQuestInfo
0x022C58BC = nop ; rlwinm. r10, r11, 0,29,29 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 &)) ; cfs::CfSquadMissionManager::joinMission((cfs::CfSquadTargetCount const &))
0x023B74A0 = bla _iniPtr 0x023B74A0 = bla _iniPtr
@ -51,53 +76,31 @@ blr
0x023ABDD4 = beq _gotoTimeout 0x023ABDD4 = beq _gotoTimeout
0x023ABDD8 = b _gotoNext 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 0x023AB7C4 = bla _forceMission
#################### Change Squad Mission using main menu ;####################################################################################################
[XCX_SQUADMISSIONS_V101E]
_savePtr: moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
li r3, 1
lis r30, VarSquadMission@ha
stw r3, VarSquadMission@l(r30)
blr
#####################################################################################################
[XCX_SQUADMISSIONS_1E]
moduleMatches = 0xF882D5CF ; 1.0.1E
; getServerTimeSec__Q2_2nt10CNetLibNexCFRUL ; getServerTimeSec__Q2_2nt10CNetLibNexCFRUL
0x0295EA10 = nop 0x0295EA10 = nop
0x0295EA14 = li r0, 42 0x0295EA14 = li r0, 42
; menu::MenuSquadMission::process((void)) ; menu::MenuSquadMission::process((void))
0x02BFC7C0 = li r11, 1 ; garder affichée la liste des tasks en bas à droite 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)
;################## BLADE Home Terminal (for Squad Quest Selection)
0x02AC5C10 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline 0x02AC5C10 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline
#################### Change Squad Mission using main menu ;################## Change Squad Mission using main menu
0x02B85134 = bla _savePtr 0x02B85134 = bla _savePtr
0x02B8514C = bla _savePtr 0x02B8514C = bla _savePtr
0x02B85084 = li r11, 1 0x02B85084 = li r11, 1
0x02B850A8 = li r11, 1 0x02B850A8 = li r11, 1
##################################################################################################### ;####################################################################################################
[XCX_SQUADMISSIONS_2U] [XCX_SQUADMISSIONS_V102U]
moduleMatches = 0x30B6E091 ; 1.0.2U moduleMatches = 0x30B6E091 ; 1.0.2U
; getServerTimeSec__Q2_2nt10CNetLibNexCFRUL ; getServerTimeSec__Q2_2nt10CNetLibNexCFRUL
@ -105,26 +108,58 @@ moduleMatches = 0x30B6E091 ; 1.0.2U
0x0295EA04 = li r0, 42 0x0295EA04 = li r0, 42
; menu::MenuSquadMission::process((void)) ; menu::MenuSquadMission::process((void))
0x02BFC7B0 = li r11, 1 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)
;################## BLADE Home Terminal (for Squad Quest Selection)
0x02AC5C00 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline 0x02AC5C00 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline
#################### Change Squad Mission using main menu ;################## Change Squad Mission using main menu
0x02B85124 = bla _savePtr 0x02B85124 = bla _savePtr
0x02B8513C = bla _savePtr 0x02B8513C = bla _savePtr
0x02B85074 = li r11, 1 0x02B85074 = li r11, 1
0x02B85098 = li r11, 1 0x02B85098 = li r11, 1
##################################################################################################### ;####################################################################################################
[XCX_SQUADMISSIONS_1U] [XCX_SQUADMISSIONS_V102J]
moduleMatches = 0xAB97DE6B ; 1.0.1U 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)) 0x02287960 = nop ; (network test?) allow call to cfs::CfSocialQuestManager::update((void))
0x023AB814 = nop ; 0x6B8(r12) == 0 0x023AB814 = nop ; 0x6B8(r12) == 0
0x023AB844 = nop ; isHost 0x023AB844 = nop ; isHost
@ -137,16 +172,6 @@ moduleMatches = 0xAB97DE6B ; 1.0.1U
0x022C7FF0 = nop ; test réseau 0x022C7FF0 = nop ; test réseau
0x022C584C = nop ; rlwinm. r10, r11, 0,29,29 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 0x023B7430 = bla _iniPtr
0x023ABD84 = _gotoTimeout: 0x023ABD84 = _gotoTimeout:
@ -158,32 +183,50 @@ blr
0x023ABD64 = beq _gotoTimeout 0x023ABD64 = beq _gotoTimeout
0x023ABD68 = b _gotoNext 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 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 0x0295E984 = nop
0x0295E988 = li r0, 42 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 0x02AC5B84 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline
0x02B850A8 = bla _savePtr 0x02B850A8 = bla _savePtr
0x02B850C0 = bla _savePtr 0x02B850C0 = bla _savePtr
0x02B84FF8 = li r11, 1 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 titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Squad tasks and missions are available offline" name = "Squad tasks and missions are available offline"
path = "Xenoblade Chronicles X/Mods/BLADE/Offline Squad tasks and missions" 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. 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 = 5 version = 6
[Default] [Default]
$missionId = 0 $missionId = 0
@ -77,16 +77,36 @@ $missionId = 16
[Preset] [Preset]
name = "N17: Monoceros,Brambloo Shoot(c),Progen,Visigel,Jia Mian(t)" name = "N17: Monoceros,Brambloo Shoot(c),Progen,Visigel,Jia Mian(t)"
$missionId = 17 $missionId = 20
[Preset] [Preset]
name = "N18: Sacrifole,Jacul,Dieter(t),Arenatect,Zig" name = "N18: Sacrifole,Jacul,Dieter(t),Arenatect,Zig"
$missionId = 18 $missionId = 21
[Preset] [Preset]
name = "N19: Aprica,Sylooth,Tectinsula,Xe-dom,Coronid" name = "N19: Aprica,Sylooth,Tectinsula,Xe-dom,Coronid"
$missionId = 19 $missionId = 22
[Preset] [Preset]
name = "N20: Aeviter,Vigent,Virago,Tersqual,Myuena Cactus(c)" 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] [XCX_COLLECTIBLESRANGE]
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 .origin = codecave
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; WHO : cfs::CfPopManagerItem::updateTouchItem((void)) ; WHO : cfs::CfPopManagerItem::updateTouchItem((void))
; WHAT : Initialize collectibles distance ; WHAT : Initialize collectibles distance
_rangeInnerConst: _rangeInnerConst:
.float 40.0 .float $rangeinner
_heightInnerConst: _heightInnerConst:
.float 8.0 .float $heightinner
_rangeDollConst: _rangeDollConst:
.float 64.0 .float $rangedoll
_heightDollConst: _heightDollConst:
.float 64.0 .float $heightdoll
_rangeFlightConst: _rangeFlightConst:
.float 64.0 .float $rangeflight
_heightFlightConst: _heightFlightConst:
.float 52.0 .float $heightflight
_itemRangeInner: _itemRangeInner:
lis r5, _rangeInnerConst@ha lis r5, _rangeInnerConst@ha
@ -56,9 +54,9 @@ lfs f0, _heightFlightConst@l(r5)
fadd f0, f13, f0 fadd f0, f13, f0
blr 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 0x02389B80 = bla _itemRangeInner
0x02389BB8 = bla _itemHeightInner 0x02389BB8 = bla _itemHeightInner
0x02389C3C = bla _itemRangeDoll 0x02389C3C = bla _itemRangeDoll
@ -66,12 +64,29 @@ moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
0x02389CEC = bla _itemRangeFlight 0x02389CEC = bla _itemRangeFlight
0x02389D30 = bla _itemHeightFlight 0x02389D30 = bla _itemHeightFlight
[XCX_COLLECTIBLESRANGE_1U] ################################################################################################# [XCX_COLLECTIBLESRANGE_V102J]
moduleMatches = 0xAB97DE6B ; 1.0.1U 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 0x02389B10 = bla _itemRangeInner
0x02389B48 = bla _itemHeightInner 0x02389B48 = bla _itemHeightInner
0x02389BCC = bla _itemRangeDoll 0x02389BCC = bla _itemRangeDoll
0x02389C04 = bla _itemHeightDoll 0x02389C04 = bla _itemHeightDoll
0x02389C7C = bla _itemRangeFlight 0x02389C7C = bla _itemRangeFlight
0x02389CC0 = bla _itemHeightFlight 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 titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Catch range mod" name = "Catch range mod"
path = "Xenoblade Chronicles X/Mods/Collectibles/Catch range mod" path = "Xenoblade Chronicles X/Mods/Collectibles/Catch range mod"
description = Increase the distance from which collectibles are looted (no preset needed). description = Increase the distance from which collectibles are grabbed.
version = 5 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] [XCX_NOITEMSELL_V101E_V102U]
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; WHO : addItem__Q2_3cfs9CfItemBoxSFQ3_2fw9CItemType4TypeUiRQ2_3cfs12CfItemHandle ; WHO : addItem__Q2_3cfs9CfItemBoxSFQ3_2fw9CItemType4TypeUiRQ2_3cfs12CfItemHandle
; WHAT : instead of selling item, return 0 (no systemlog) ; WHAT : instead of selling item, return 0 (no systemlog)
0x02365A94 = li r31, $mod ; sellItem
0x02365A94 = li r31, 0 ; sellItem
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; WHO : cfs::CfPopManagerItem::updateTouchItem((void)) ; WHO : cfs::CfPopManagerItem::updateTouchItem((void))
; WHAT : exit code if addItem returns 0 (blue gem not collected and no sound) ; WHAT : exit code if addItem returns 0 (blue gem not collected and no sound)
0x0238A1BC = _exit: 0x0238A1BC = _exit:
0x02389EF8 = beq _exit 0x02389EF8 = beq _exit
[XCX_NOITEMSELL_1U] ###################################################################### [XCX_NOITEMSELL_V102J]
moduleMatches = 0xAB97DE6B ; 1.0.1U moduleMatches = 0x7672271D ; 1.0.2J
0x023652C8 = li r31, $mod ; sellItem
0x02365A24 = li r31, 0 ; 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: 0x0238A14C = _exit:
0x02389E88 = beq _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 titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Ignore 100th" name = "Ignore 100th"
path = "Xenoblade Chronicles X/Mods/Collectibles/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). 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 = 5 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] ###################################################################### [XCX_MAXSLOTS_V101E]
moduleMatches = 0xF882D5CF ; 1.0.1E moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; WHO : Cshop::updateLuItem((void)) ; WHO : Cshop::updateLuItem((void))
; WHAT : max 3 slots per armor L shop ; WHAT : max 3 slots per armor L shop
0x02A3AA18 = li r0, 3 0x02A3AA18 = li r0, 3
[XCX_MAXSLOTS_2U] ###################################################################### [XCX_MAXSLOTS_V102U]
moduleMatches = 0x30B6E091 ; 1.0.2U moduleMatches = 0x30B6E091 ; 1.0.2U
0x02A3AA08 = li r0, 3 0x02A3AA08 = li r0, 3
[XCX_MAXSLOTS_1U] ###################################################################### [XCX_MAXSLOTS_V102J]
moduleMatches = 0xAB97DE6B ; 1.0.1U moduleMatches = 0x7672271D ; 1.0.2J
0x02A3721C = li r0, 3 ;
[XCX_MAXSLOTS_V100U]
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
0x02A3A98C = li r0, 3 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" name = "Armors can have 3 augment slots"
path = "Xenoblade Chronicles X/Mods/Equipment/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). 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] ################################################################ [XCX_UPGRADENOLIMIT]
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 .origin = codecave
.int $checkSelectItem .int $checkSelectItem
.int $checkStrengthen .int $checkStrengthen
@ -23,30 +21,26 @@ lwz r3, VarUpgradeCount@l(r3)
cmpwi r3, 0xF cmpwi r3, 0xF
blr 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 ; WHO : menu::MenuArmsCompanyAffixSelectItem::CheckAffixStrengthen
; WHAT : Unlimited upgrades (equipment selection menu) ; WHAT : Unlimited upgrades (equipment selection menu)
0x02A6DCA8 = li r3, 0 ; Ignore upgrades counter 0x02A6DCA8 = li r3, 0 ; Ignore upgrades counter
0x02A6DFFC = li r3, $checkSelectItem 0x02A6DFFC = li r3, $checkSelectItem
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; WHO : menu::MenuArmsCompanyAffixStrengthen::CheckAffixStrengthen ; WHO : menu::MenuArmsCompanyAffixStrengthen::CheckAffixStrengthen
; WHAT : Unlimited upgrades (affix selection menu) ; WHAT : Unlimited upgrades (affix selection menu)
0x02A72134 = li r10, 99 ; Ignore upgrades counter 0x02A72134 = li r10, 99 ; Ignore upgrades counter
0x02A723B4 = li r3, $checkStrengthen 0x02A723B4 = li r3, $checkStrengthen
0x02A71F38 = bla SaveUpgradeCount 0x02A71F38 = bla SaveUpgradeCount
0x02A7218C = bla CtrlUpgradeCount 0x02A7218C = bla CtrlUpgradeCount
[XCX_UPGRADENOLIMIT_2U] ################################################################ [XCX_UPGRADENOLIMIT_V102U] ; ################################################################
moduleMatches = 0x30B6E091 ; 1.0.2U moduleMatches = 0x30B6E091 ; 1.0.2U
0x02A6DC98 = li r3, 0 0x02A6DC98 = li r3, 0
0x02A6DFEC = li r3, $checkSelectItem 0x02A6DFEC = li r3, $checkSelectItem
@ -56,9 +50,19 @@ moduleMatches = 0x30B6E091 ; 1.0.2U
0x02A71F28 = bla SaveUpgradeCount 0x02A71F28 = bla SaveUpgradeCount
0x02A7217C = bla CtrlUpgradeCount 0x02A7217C = bla CtrlUpgradeCount
[XCX_UPGRADENOLIMIT_1U] ################################################################ [XCX_UPGRADENOLIMIT_V102J] ; ################################################################
moduleMatches = 0xAB97DE6B ; 1.0.1U 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 0x02A6DC1C = li r3, 0 ; Ignore upgrades counter
0x02A6DF70 = li r3, $checkSelectItem 0x02A6DF70 = li r3, $checkSelectItem
@ -67,3 +71,15 @@ moduleMatches = 0xAB97DE6B ; 1.0.1U
0x02A71EAC = bla SaveUpgradeCount 0x02A71EAC = bla SaveUpgradeCount
0x02A72100 = bla CtrlUpgradeCount 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" name = "Unlimited augment upgrades"
path = "Xenoblade Chronicles X/Mods/Equipment/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. description = You can upgrade infinitely all the augments inside a piece of equipment.
version = 5 version = 6
[Default] [Default]
$checkSelectItem = 5 $checkSelectItem = 5

View File

@ -1,8 +1,6 @@
[XCX_UNLOCKAUGMENTS_ALL] ################################################################ [XCX_UNLOCKAUGMENTS]
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 .origin = codecave
.int $checkIgnoreMiranium .int $checkIgnoreMiranium
.int $checkIgnoreMaterials .int $checkIgnoreMaterials
@ -20,13 +18,12 @@ exit_cmq:
stb r3, 0xC(r1) stb r3, 0xC(r1)
blr 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 ; WHO : menu::MenuArmsCompanyDeviceList::CheckEnableCreateByDeviceID
; WHAT : Unlimited augments ; WHAT : Unlimited augments
0x02A817A0 = li r3, 0 ; all augments are known 0x02A817A0 = li r3, 0 ; all augments are known
0x02A817C8 = li r3, $checkIgnoreMiranium ; ignore miranium requirement 0x02A817C8 = li r3, $checkIgnoreMiranium ; ignore miranium requirement
0x02A81A3C = li r3, $checkIgnoreMaterials ; ignore materials requirement 0x02A81A3C = li r3, $checkIgnoreMaterials ; ignore materials requirement
@ -36,9 +33,8 @@ moduleMatches = 0xF882D5CF ; 1.0.1E
0x02A81478 = bla ChangeMaterialsQuantity 0x02A81478 = bla ChangeMaterialsQuantity
0x02A814E4 = bla ChangeMaterialsQuantity 0x02A814E4 = bla ChangeMaterialsQuantity
[XCX_UNLOCKAUGMENTS_2U] ################################################################ [XCX_UNLOCKAUGMENTS_V102U] ; ################################################################
moduleMatches = 0x30B6E091 ; 1.0.2U moduleMatches = 0x30B6E091 ; 1.0.2U
0x02A81790 = li r3, 0 0x02A81790 = li r3, 0
0x02A817B8 = li r3, $checkIgnoreMiranium 0x02A817B8 = li r3, $checkIgnoreMiranium
0x02A81A2C = li r3, $checkIgnoreMaterials 0x02A81A2C = li r3, $checkIgnoreMaterials
@ -48,9 +44,19 @@ moduleMatches = 0x30B6E091 ; 1.0.2U
0x02A81468 = bla ChangeMaterialsQuantity 0x02A81468 = bla ChangeMaterialsQuantity
0x02A814D4 = bla ChangeMaterialsQuantity 0x02A814D4 = bla ChangeMaterialsQuantity
[XCX_UNLOCKAUGMENTS_1U] ################################################################ [XCX_UNLOCKAUGMENTS_V102J] ; ################################################################
moduleMatches = 0xAB97DE6B ; 1.0.1U 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 0x02A81714 = li r3, 0
0x02A8173C = li r3, $checkIgnoreMiranium 0x02A8173C = li r3, $checkIgnoreMiranium
0x02A819B0 = li r3, $checkIgnoreMaterials 0x02A819B0 = li r3, $checkIgnoreMaterials
@ -59,3 +65,14 @@ moduleMatches = 0xAB97DE6B ; 1.0.1U
0x02A8137C = cmpwi r31, 0 0x02A8137C = cmpwi r31, 0
0x02A813EC = bla ChangeMaterialsQuantity 0x02A813EC = bla ChangeMaterialsQuantity
0x02A81458 = 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" name = "Unlock all augments"
path = "Xenoblade Chronicles X/Mods/Equipment/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. description = All the augments are already known at the shop, and with the CHEAT preset they cost nothing.
version = 5 version = 6
[Default] [Default]
$checkIgnoreMiranium = 5 $checkIgnoreMiranium = 5
@ -16,4 +16,3 @@ name = "Normal"
name = "CHEAT - Ignore Miranium and resources requirements" name = "CHEAT - Ignore Miranium and resources requirements"
$checkIgnoreMiranium = 0 $checkIgnoreMiranium = 0
$checkIgnoreMaterials = 0 $checkIgnoreMaterials = 0

View File

@ -1,14 +1,11 @@
[XCX_BATTLEPOINTSX_ALL] ############################################################################ [XCX_BATTLEPOINTSX]
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 .origin = codecave
.int $mod .int $mod
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; WHO : addClassExpChara__Q2_6Battle14CBattleManagerFUiT1 ; WHO : addClassExpChara__Q2_6Battle14CBattleManagerFUiT1
; WHAT : Multiply the battle points gained when a new class level is reached ; WHAT : Multiply the battle points gained when a new class level is reached
_exp: _exp:
li r3, $mod li r3, $mod
mullw r0, r0, r3 mullw r0, r0, r3
@ -18,7 +15,6 @@ blr
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; WHO : addInnerExpChara__Q2_6Battle14CBattleManagerFUiN21 ; WHO : addInnerExpChara__Q2_6Battle14CBattleManagerFUiN21
; WHAT : Multiply the battle points gained when a new level is reached ; WHAT : Multiply the battle points gained when a new level is reached
_exp2: _exp2:
li r4, $mod li r4, $mod
mullw r9, r9, r4 mullw r9, r9, r4
@ -28,7 +24,6 @@ blr
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; WHO : addTreasure__Q2_3cfs10CfTBoxUtilSFUib ; WHO : addTreasure__Q2_3cfs10CfTBoxUtilSFUib
; WHAT : Multiply the battle points given by treasures or exploration ; WHAT : Multiply the battle points given by treasures or exploration
_expTreasure: _expTreasure:
li r3, $mod li r3, $mod
mullw r3, r31, r3 mullw r3, r31, r3
@ -38,7 +33,6 @@ blr
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; WHO : addReward__Q2_3cfs11CfSquadUtilSFUiT1 ; WHO : addReward__Q2_3cfs11CfSquadUtilSFUiT1
; WHAT : Multiply the experience points given by Squad missions ; WHAT : Multiply the experience points given by Squad missions
_expSquadValue: _expSquadValue:
li r4, $mod li r4, $mod
mullw r3, r3, r4 mullw r3, r3, r4
@ -48,7 +42,6 @@ blr
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; WHO : menu::MenuMultiQuestInfoWindow::displayInfo((menu::MenuObject *,bool)) ; WHO : menu::MenuMultiQuestInfoWindow::displayInfo((menu::MenuObject *,bool))
; WHAT : Multiply the battle points displayed in quest popup information. ; WHAT : Multiply the battle points displayed in quest popup information.
_dispBefore: _dispBefore:
lhz r24, 0x90(r1) lhz r24, 0x90(r1)
li r25, $mod li r25, $mod
@ -58,16 +51,15 @@ blr
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; WHO : menu::MenuMultiQuestResult::setup((void)) ; WHO : menu::MenuMultiQuestResult::setup((void))
; WHAT : Multiply the battle points displayed in quest popup results. ; WHAT : Multiply the battle points displayed in quest popup results.
_dispAfter: _dispAfter:
li r5, $mod li r5, $mod
mullw r3, r3, r5 mullw r3, r3, r5
stw r3, 0x7C(r1) stw r3, 0x7C(r1)
blr blr
[XCX_BATTLEPOINTSX_1E] ############################################################################
moduleMatches = 0xF882D5CF ; 1.0.1E
[XCX_BATTLEPOINTSX_V101E] ; ############################################################################
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
0x020C4A74 = bla _exp 0x020C4A74 = bla _exp
0x020C1C48 = bla _exp2 0x020C1C48 = bla _exp2
0x022D8EDC = bla _expTreasure 0x022D8EDC = bla _expTreasure
@ -76,11 +68,8 @@ moduleMatches = 0xF882D5CF ; 1.0.1E
0x02B94730 = bla _dispBefore 0x02B94730 = bla _dispBefore
0x02B9FEE0 = bla _dispAfter 0x02B9FEE0 = bla _dispAfter
[XCX_BATTLEPOINTSX_2U] ############################################################################ [XCX_BATTLEPOINTSX_V102U] ; ############################################################################
moduleMatches = 0x30B6E091 ; 1.0.2U moduleMatches = 0x30B6E091 ; 1.0.2U
.origin = codecave
0x020C4A74 = bla _exp 0x020C4A74 = bla _exp
0x020C1C48 = bla _exp2 0x020C1C48 = bla _exp2
0x022D8EDC = bla _expTreasure 0x022D8EDC = bla _expTreasure
@ -89,13 +78,32 @@ moduleMatches = 0x30B6E091 ; 1.0.2U
0x02B94720 = bla _dispBefore 0x02B94720 = bla _dispBefore
0x02B9FED0 = bla _dispAfter 0x02B9FED0 = bla _dispAfter
[XCX_BATTLEPOINTSX_1U] ############################################################################ [XCX_BATTLEPOINTSX_V102J] ; ############################################################################
moduleMatches = 0xAB97DE6B ; 1.0.1U 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 0x020C4A74 = bla _exp
0x020C1C48 = bla _exp2 0x020C1C48 = bla _exp2
0x022D8E6C = bla _expTreasure 0x022D8E6C = bla _expTreasure
0x023CC700 = bla _expSquadValue 0x023CC700 = bla _expSquadValue
0x023CC700 = bla _expSquadValue 0x023CC7C4 = bla _expSquadValue
0x02B946A4 = bla _dispBefore 0x02B946A4 = bla _dispBefore
0x02B9FDE0 = bla _dispAfter 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" name = "Battle Points X"
path = "Xenoblade Chronicles X/Mods/Experience/Battle Points" 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. 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] [Default]
$mod = 2 $mod = 2
@ -11,6 +11,10 @@ $mod = 2
[Preset] [Preset]
name = "Quantity x2" name = "Quantity x2"
[Preset]
name = "Quantity x3"
$mod = 3
[Preset] [Preset]
name = "Quantity x5" name = "Quantity x5"
$mod = 5 $mod = 5
@ -30,4 +34,3 @@ $mod = 100
[Preset] [Preset]
name = "Quantity x1000" name = "Quantity x1000"
$mod = 1000 $mod = 1000

View File

@ -1,23 +1,35 @@
[XCX_BLADEX] [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 .origin = codecave
.int $mod .int $mod
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; WHO : fw::SocialUnion::getUnionBasePoint((int)) ; WHO : fw::SocialUnion::getUnionBasePoint((int))
; WHAT : Multiply the BLADE points rewarded ; WHAT : Multiply the BLADE points rewarded
[XCX_BLADEX_V101E]
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
0x0288E610 = nop 0x0288E610 = nop
0x02E0C5B0 = li r3, -1
0x0288E614 = li r3, $mod 0x0288E614 = li r3, $mod
[XCX_BLADEX_1U] ###################################################################### [XCX_BLADEX_V102U]
moduleMatches = 0xAB97DE6B ; 1.0.1U moduleMatches = 0x30B6E091 ; 1.0.2U
0x0288E610 = nop
0x02E0C550 = li r3, -1
0x0288E614 = li r3, $mod
.origin = codecave ;[XCX_BLADEX_V102J]
;moduleMatches = 0x7672271D ; 1.0.2J
.int $mod ;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 0x0288E594 = nop
0x02E0C3D8 = li r3, -1
0x0288E598 = li r3, $mod 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" name = "BLADE Points X"
path = "Xenoblade Chronicles X/Mods/Experience/BLADE Points" path = "Xenoblade Chronicles X/Mods/Experience/BLADE Points"
description = Change the amount of BLADE points gained in various situations. description = Change the amount of BLADE points gained in various situations.
version = 5 version = 6
[Default] [Default]
$mod = 2 $mod = 2
@ -11,6 +11,10 @@ $mod = 2
[Preset] [Preset]
name = "x2" name = "x2"
[Preset]
name = "x3"
$mod = 3
[Preset] [Preset]
name = "x5" name = "x5"
$mod = 5 $mod = 5

View File

@ -1,14 +1,11 @@
[XCX_CLASSEXPX] [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 .origin = codecave
.int $mod .int $mod
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; WHO : addClassExpChara__Q2_6Battle14CBattleManagerFUiT1 ; WHO : addClassExpChara__Q2_6Battle14CBattleManagerFUiT1
; WHAT : Multiply the class experience given during combat ; WHAT : Multiply the class experience given during combat
_expBattle: _expBattle:
li r12, $mod li r12, $mod
mullw r31, r3, r12 mullw r31, r3, r12
@ -17,7 +14,6 @@ blr
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; WHO : addReward__Q2_3cfs11CfSquadUtilSFUiT1 ; WHO : addReward__Q2_3cfs11CfSquadUtilSFUiT1
; WHAT : Multiply the experience points given by Squad missions ; WHAT : Multiply the experience points given by Squad missions
_expSquadValue: _expSquadValue:
li r4, $mod li r4, $mod
mullw r3, r3, r4 mullw r3, r3, r4
@ -33,36 +29,49 @@ blr
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; WHO : menu::MenuMultiQuestResult::setup((void)) ; WHO : menu::MenuMultiQuestResult::setup((void))
; WHAT : ; WHAT :
_dispAfter: _dispAfter:
li r5, $mod li r5, $mod
mullw r3, r3, r5 mullw r3, r3, r5
stw r3, 0x80(r1) stw r3, 0x80(r1)
blr blr
[XCX_CLASSEXPX_1E] ############################################################################
moduleMatches = 0xF882D5CF ; 1.0.1E
[XCX_CLASSEXPX_V101E] ; ############################################################################
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
0x020C4A28 = bla _expBattle 0x020C4A28 = bla _expBattle
0x023CC750 = bla _expSquadValue 0x023CC750 = bla _expSquadValue
0x023CC814 = bla _expSquadValue 0x023CC814 = bla _expSquadValue
0x02B91324 = bla _dispBefore 0x02B91324 = bla _dispBefore
0x02B9FF44 = bla _dispAfter 0x02B9FF44 = bla _dispAfter
[XCX_CLASSEXPX_2U] ############################################################################ [XCX_CLASSEXPX_V102U] ; ############################################################################
moduleMatches = 0x30B6E091 ; 1.0.2U moduleMatches = 0x30B6E091 ; 1.0.2U
0x020C4A28 = bla _expBattle 0x020C4A28 = bla _expBattle
0x023CC750 = bla _expSquadValue 0x023CC750 = bla _expSquadValue
0x023CC814 = bla _expSquadValue 0x023CC814 = bla _expSquadValue
0x02B91314 = bla _dispBefore 0x02B91314 = bla _dispBefore
0x02B9FF34 = bla _dispAfter 0x02B9FF34 = bla _dispAfter
[XCX_CLASSEXPX_1U] ############################################################################ [XCX_CLASSEXPX_V102J] ; ############################################################################
moduleMatches = 0xAB97DE6B ; 1.0.1U 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 0x020C4A28 = bla _expBattle
0x023CC6E0 = bla _expSquadValue 0x023CC6E0 = bla _expSquadValue
0x023CC7A4 = bla _expSquadValue 0x023CC7A4 = bla _expSquadValue
0x02B91298 = bla _dispBefore 0x02B91298 = bla _dispBefore
0x02B9FE44 = bla _dispAfter 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" name = "Class Exp Points X"
path = "Xenoblade Chronicles X/Mods/Experience/Class Exp Points" path = "Xenoblade Chronicles X/Mods/Experience/Class Exp Points"
description = Change the amount of Class Exp points gained in battle, missions, quests and exploration. description = Change the amount of Class Exp points gained in battle, missions, quests and exploration.
version = 5 version = 6
[Default] [Default]
$mod = 2 $mod = 2
@ -11,6 +11,10 @@ $mod = 2
[Preset] [Preset]
name = "x2" name = "x2"
[Preset]
name = "x3"
$mod = 3
[Preset] [Preset]
name = "x5" name = "x5"
$mod = 5 $mod = 5

View File

@ -1,13 +1,20 @@
[XCX_FRIENDPOINTSX] [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 .origin = codecave
.int $mod .int $mod
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; WHO : RegistDamage_SoulVoiceLink__Q2_12DamageSystem7FactorySFRCQ2_3cfs30CfHandleKey__tm__11_XCUiL_2_12T1Ui ; 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 ; 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) ; : 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 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" name = "Friends Points X"
path = "Xenoblade Chronicles X/Mods/Experience/Friends Points" path = "Xenoblade Chronicles X/Mods/Experience/Friends Points"
description = More Friends points gained when activating a Soul Voice Link during battle. description = More Friends points gained when activating a Soul Voice Link during battle.
version = 5 version = 6
[Default] [Default]
$mod = 100 $mod = 100
@ -11,6 +11,10 @@ $mod = 100
[Preset] [Preset]
name = "+100" name = "+100"
[Preset]
name = "+150"
$mod = 150
[Preset] [Preset]
name = "+250" name = "+250"
$mod = 250 $mod = 250

View File

@ -1,14 +1,11 @@
[XCX_EXPX] [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 .origin = codecave
.int $mod .int $mod
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; WHO : cfs::CfCompoCtrlEnemy::execRequestCommon ; WHO : cfs::CfCompoCtrlEnemy::execRequestCommon
; WHAT : Multiply the experience points given in battles ; WHAT : Multiply the experience points given in battles
_expBattle: _expBattle:
lwz r3, 0x3184(r28) lwz r3, 0x3184(r28)
mulli r3, r3, $mod mulli r3, r3, $mod
@ -19,7 +16,6 @@ blr
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; WHO : addTreasure__Q2_3cfs10CfTBoxUtilSFUib ; WHO : addTreasure__Q2_3cfs10CfTBoxUtilSFUib
; WHAT : Multiply the experience points given by treasures or exploration ; WHAT : Multiply the experience points given by treasures or exploration
_expTreasure: _expTreasure:
li r3, $mod li r3, $mod
lhz r31, 0x1C(r1) lhz r31, 0x1C(r1)
@ -29,7 +25,6 @@ blr
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; WHO : addReward__Q2_3cfs11CfQuestUtilSFUiQ2_3cfs17CfQuestRewardType ; WHO : addReward__Q2_3cfs11CfQuestUtilSFUiQ2_3cfs17CfQuestRewardType
; WHAT : Multiply the experience points given by quests ? ; WHAT : Multiply the experience points given by quests ?
_expQuest: _expQuest:
li r4, $mod li r4, $mod
mullw r3, r3, r4 mullw r3, r3, r4
@ -39,7 +34,6 @@ blr
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; WHO : addReward__Q2_3cfs11CfSquadUtilSFUiT1 ; WHO : addReward__Q2_3cfs11CfSquadUtilSFUiT1
; WHAT : Multiply the experience points given by Squad missions ; WHAT : Multiply the experience points given by Squad missions
_expSquadValue: _expSquadValue:
li r4, $mod li r4, $mod
mullw r3, r3, r4 mullw r3, r3, r4
@ -49,7 +43,6 @@ blr
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; WHO : menu::MenuMultiQuestInfoWindow::displayInfo((menu::MenuObject *,bool)) ; WHO : menu::MenuMultiQuestInfoWindow::displayInfo((menu::MenuObject *,bool))
; WHAT : ; WHAT :
_dispBefore: _dispBefore:
lwz r23, 0x88(r1) lwz r23, 0x88(r1)
li r24, $mod li r24, $mod
@ -59,48 +52,64 @@ blr
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; WHO : menu::MenuMultiQuestResult::setup((void)) ; WHO : menu::MenuMultiQuestResult::setup((void))
; WHAT : ; WHAT :
_dispAfter: _dispAfter:
li r5, $mod li r5, $mod
mullw r3, r3, r5 mullw r3, r3, r5
stw r3, 0x78(r1) stw r3, 0x78(r1)
blr blr
[XCX_EXPX_1E] ############################################################################
moduleMatches = 0xF882D5CF ; 1.0.1E
[XCX_EXPX_V101E] ; ############################################################################
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
0x025624D4 = bla _expBattle 0x025624D4 = bla _expBattle
0x022D8E64 = bla _expTreasure 0x022D8E64 = bla _expTreasure
0x0229560C = bla _expQuest 0x0229560C = bla _expQuest
0x023CC6D4 = bla _expSquadValue 0x023CC6D4 = bla _expSquadValue
0x02B94700 = bla _dispBefore 0x02B94700 = bla _dispBefore
0x02B9FDD4 = bla _dispAfter 0x02B9FDD4 = bla _dispAfter
; unlimited exp (no 9999 limit) loops around 140000
; TEST : unlimited exp (no 9999 limit) up to 65535?
0x020C1BC4 = nop 0x020C1BC4 = nop
[XCX_EXPX_2U] ############################################################################ [XCX_EXPX_V102U] ; ############################################################################
moduleMatches = 0x30B6E091 ; 1.0.2U moduleMatches = 0x30B6E091 ; 1.0.2U
0x025624D4 = bla _expBattle 0x025624D4 = bla _expBattle
0x022D8E64 = bla _expTreasure 0x022D8E64 = bla _expTreasure
0x0229560C = bla _expQuest 0x0229560C = bla _expQuest
0x023CC6D4 = bla _expSquadValue 0x023CC6D4 = bla _expSquadValue
0x02B946F0 = bla _dispBefore 0x02B946F0 = bla _dispBefore
0x02B9FDC4 = bla _dispAfter 0x02B9FDC4 = bla _dispAfter
; unlimited exp (no 9999 limit) loops around 140000
; TEST : unlimited exp (no 9999 limit) up to 65535?
0x020C1BC4 = nop 0x020C1BC4 = nop
[XCX_EXPX_1U] ############################################################################ [XCX_EXPX_V102J] ; ############################################################################
moduleMatches = 0xAB97DE6B ; 1.0.1U 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 0x02562464 = bla _expBattle
0x022D8DF4 = bla _expTreasure 0x022D8DF4 = bla _expTreasure
0x0229559C = bla _expQuest 0x0229559C = bla _expQuest
0x023CC664 = bla _expSquadValue 0x023CC664 = bla _expSquadValue
0x02B94674 = bla _dispBefore 0x02B94674 = bla _dispBefore
0x02B9FCD4 = bla _dispAfter 0x02B9FCD4 = bla _dispAfter
; unlimited exp (no 9999 limit) loops around 140000
; TEST : unlimited exp (no 9999 limit) up to 65535?
0x020C1BC4 = nop 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] [Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Inner Exp Points" name = "Lv Exp Points"
path = "Xenoblade Chronicles X/Mods/Experience/Inner Exp Points" path = "Xenoblade Chronicles X/Mods/Experience/Lv Exp Points"
description = Change the amount of Inner Exp points gained in battle, missions, quests and exploration. [1.0.1E/1.0.2U] description = Change the amount of Level Exp points gained in battle, missions, quests and exploration.|Ignores the 9999 exp cap.
version = 5 version = 6
[Default] [Default]
$mod = 2 $mod = 1
[Preset]
name = "x1"
[Preset] [Preset]
name = "x2" name = "x2"
$mod = 2
[Preset]
name = "x3"
$mod = 3
[Preset] [Preset]
name = "x5" name = "x5"

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 name = Field of View
path = "Xenoblade Chronicles X/Mods/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. description = Changes the field of view (FOV). Fixes edge framing for 21:9 cinematics and other FOV tweaks.
version = 4 version = 6
[Preset] [Default]
name = Default FOV
$fov = 1.0 $fov = 1.0
[Preset] [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 $fov = 1.3125
[Preset] [Preset]
@ -18,21 +20,21 @@ name = Balance 48:9 (1.45)
$fov = 1.45 $fov = 1.45
[Preset] [Preset]
name = Slight FOV increase without breaking framing (0.925) name = "Slight FOV increase without breaking framing (0.925)"
$fov = 0.925 $fov = 0.925
[Preset] [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 $fov = 0.9
[Preset] [Preset]
name = Pc style wide FOV (0.825) name = "Pc style wide FOV (0.825)"
$fov = 0.825 $fov = 0.825
[Preset] [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 $fov = 0.7442
[Preset] [Preset]
name = Fish eye (0.5) name = "Fish eye (0.5)"
$fov = 0.5 $fov = 0.5

View File

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

View File

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

View File

@ -1,14 +1,12 @@
[XCX_FN_MIR_QTY_ALL] ###################################################################### [XCX_FN_MIR_QTY]
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 .origin = codecave
.int $mod .int $mod
.int $uncap
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; WHO : changeTime__Q2_4fnet9CFnetTaskFUiT1 ; WHO : changeTime__Q2_4fnet9CFnetTaskFUiT1
; WHAT : Affect the quantity of the NavFrontier income for the Miranium ; WHAT : Affect the quantity of the NavFrontier income for the Miranium
_miranium: _miranium:
lwzx r31, r3, r28 lwzx r31, r3, r28
li r4, $mod li r4, $mod
@ -18,9 +16,6 @@ blr
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; WHO : fnet::CFnetData::toStorage(const(unsigned int)) ; WHO : fnet::CFnetData::toStorage(const(unsigned int))
; WHAT : Ignore max quantity ; WHAT : Ignore max quantity
.int $uncap
_getMiranium: _getMiranium:
li r12, $uncap li r12, $uncap
cmpwi r12, 0 cmpwi r12, 0
@ -36,16 +31,27 @@ beqlr
mr r31, r0 mr r31, r0
blr 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 0x027D526C = bla _miranium
0x027D0FF8 = bla _getMiranium 0x027D0FF8 = bla _getMiranium
0x027D1030 = bla _ignoreMax 0x027D1030 = bla _ignoreMax
[XCX_FN_MIR_QTY_1U] ###################################################################### [XCX_FN_MIR_QTY_V102J]
moduleMatches = 0xAB97DE6B ; 1.0.1U 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 0x027D520C = bla _miranium
0x027D0F98 = bla _getMiranium 0x027D0F98 = bla _getMiranium
0x027D0FD0 = bla _ignoreMax 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] [Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Miranium income quantity mod" name = "FrontierNav - Miranium quantity mod"
path = "Xenoblade Chronicles X/Mods/FrontierNav/Miranium income quantity mod" path = "Xenoblade Chronicles X/Mods/FrontierNav/Miranium quantity mod"
description = Affect the quantity of the FrontierNav income for the Miranium. description = Affect the quantity of the FrontierNav income for the Miranium.
version = 5 version = 6
[Default] [Default]
$mod = 2 $mod = 1
$uncap = 0 $uncap = 0
[Preset]
name = "Miranium x1"
category = Miranium quantity
[Preset] [Preset]
name = "Miranium x2" name = "Miranium x2"
category = Miranium quantity category = Miranium quantity
$mod = 2
[Preset]
name = "Miranium x3"
category = Miranium quantity
$mod = 3
[Preset] [Preset]
name = "Miranium x5" name = "Miranium x5"
@ -35,9 +45,9 @@ $mod = 100
[Preset] [Preset]
name = "Yes" name = "Yes"
category = "Capped by BLADE level" category = "Capped by Storage Probes"
[Preset] [Preset]
name = "No" name = "No"
category = "Capped by BLADE level" category = "Capped by Storage Probes"
$uncap = 1 $uncap = 1

View File

@ -1,22 +1,24 @@
[XCX_FN_MNY_FREQ] [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 .origin = codecave
.int $mod .int $mod
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; WHAT : changeTime__Q2_4fnet9CFnetTaskFUiT1 ; WHAT : changeTime__Q2_4fnet9CFnetTaskFUiT1
; WHY : Affect the frequency of the NavFrontier income for the money ; WHY : Affect the frequency of the NavFrontier income for the money
; Frequency unit is 1 minute (so by default income is every 15 minutes) ; 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 0x027D554C = li r12, $mod
[XCX_FN_MNY_FREQ_1U] ###################################################################### [XCX_FN_MNY_FREQ_V102J]
moduleMatches = 0xAB97DE6B ; 1.0.1U moduleMatches = 0x7672271D ; 1.0.2J
0x027D3184 = li r12, $mod
.origin = codecave
.int $mod
[XCX_FN_MNY_FREQ_V100U]
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
0x027D54EC = li r12, $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] [Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Money income frequency mod" name = "FrontierNav - Money frequency mod"
path = "Xenoblade Chronicles X/Mods/FrontierNav/Money income 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). description = Affect the frequency of the FrontierNav income for the Money (Vanilla is 15 minutes).
version = 5 version = 6
[Default] [Default]
$mod = 1 $mod = 1
@ -26,4 +26,3 @@ $mod = 7
[Preset] [Preset]
name = "Every 10 minutes" name = "Every 10 minutes"
$mod = 10 $mod = 10

View File

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

View File

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

View File

@ -1,22 +1,24 @@
[XCX_FN_RES_FREQ] ###################################################################### [XCX_FN_RES_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 .origin = codecave
.int $mod .int $mod
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; WHAT : changeTime__Q2_4fnet9CFnetTaskFUiT1 ; WHAT : changeTime__Q2_4fnet9CFnetTaskFUiT1
; WHY : Affect the frequency of the NavFrontier income for the resources ; WHY : Affect the frequency of the NavFrontier income for the resources
; Frequency unit is 1 minute (so by default income is every 5 minutes) ; 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 0x027D534C = li r12, $mod
[XCX_FN_RES_FREQ_1U] ###################################################################### [XCX_FN_RES_FREQ_V102J]
moduleMatches = 0xAB97DE6B ; 1.0.1U moduleMatches = 0x7672271D ; 1.0.2J
0x027D2F84 = li r12, $mod
.origin = codecave
.int $mod
[XCX_FN_RES_FREQ_V100U]
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
0x027D52EC = li r12, $mod 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] [Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Xenoblade Chronicles X - FrontierNav - Probe income frequency mod" name = "FrontierNav - Resources frequency mod"
name = "Resources income frequency mod" path = "Xenoblade Chronicles X/Mods/FrontierNav/Resources frequency mod"
path = "Xenoblade Chronicles X/Mods/FrontierNav/Resources income frequency mod"
description = Affect the frequency of the FrontierNav income for the resources (Vanilla is every 5 minutes). description = Affect the frequency of the FrontierNav income for the resources (Vanilla is every 5 minutes).
version = 5 version = 6
[Default] [Default]
$mod = 2 $mod = 2

View File

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

View File

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

View File

@ -1,12 +1,24 @@
[XCX_CAMERA_DIST] [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 .origin = codecave
VarZoom: VarZoom:
.float $mod .float $mod
; CamData::CCamDataManager::getParamsZoomDefault((CamData::eTargetTypes, unsigned char)) ; CamData::CCamDataManager::getParamsZoomDefault((CamData::eTargetTypes, unsigned char))
[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 0x0222A19C = lis r12, VarZoom@ha
0x0222A1B0 = lfs f1, VarZoom@l(r12) 0x0222A1B0 = lfs f1, VarZoom@l(r12)
0x0222A1CC = nop 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] [Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Camera mod (distance)" name = "Camera distance mod"
path = "Xenoblade Chronicles X/Mods/Graphics/Camera mod (distance)" path = "Xenoblade Chronicles X/Mods/Graphics/Camera distance mod"
description = Affect the default distance of the camera (Vanilla zoom is 0). description = Affect the default distance of the camera (Vanilla zoom is 0).|Does not affect max zoom possible.
version = 5 version = 6
[Default] [Default]
$mod = 2.0 $mod = 2.0
@ -18,4 +18,3 @@ $mod = 5.0
[Preset] [Preset]
name = "Zoom 10" name = "Zoom 10"
$mod = 10.0 $mod = 10.0

View File

@ -1,12 +1,10 @@
[XCX_DISTMOBINFO] [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 .origin = codecave
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; WHAT : cfs::CfPopManagerMobInfo::setupZone((cfs::ZoneTypes)) ; 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) ; WHY : Initialize view distance for ALL the Mob information to a very high value (filter will be done in setup function)
_init_react: _init_react:
lis r3, 0x4300 lis r3, 0x4300
addi r3, r3, 0x0000 addi r3, r3, 0x0000
@ -16,7 +14,6 @@ blr
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; WHAT : cfs::CfMobInfo::setup((void)) ; WHAT : cfs::CfMobInfo::setup((void))
; WHY : Adjust the view distance based on the information type ; WHY : Adjust the view distance based on the information type
_info_default: _info_default:
cmpwi r6, 2 cmpwi r6, 2
beq tes beq tes
@ -44,28 +41,35 @@ stw r10, 0x40(r29)
exit_info_obtained: exit_info_obtained:
blr blr
[XCX_DISTMOBINFO_ALL] ########################################################### [XCX_DISTMOBINFO_V101E_V102U] ; ###########################################################
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
0x02387260 = bla _init_react 0x02387260 = bla _init_react
0x02386F04 = bla _info_obtained 0x02386F04 = bla _info_obtained
0x02386F34 = bla _info_default 0x02386F34 = bla _info_default
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; WHAT : cfs::CfPopManagerMobInfo::updatePop((ml::CVec3 const &, bool)) ; WHAT : cfs::CfPopManagerMobInfo::updatePop((ml::CVec3 const &, bool))
0x0238EEC0 = nop ; Disable the call of cfs::CfMobInfo::update function (may have side effects) 0x0238EEC0 = nop ; Disable the call of cfs::CfMobInfo::update function (may have side effects)
0x0238EF30 = nop ; Disable altitude check 0x0238EF30 = nop ; Disable altitude check
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; WHAT : cfs::CfPopManager::isCheckDoll(const(void)) ; WHAT : cfs::CfPopManager::isCheckDoll(const(void))
; WHY : display bubbles even in skell ; WHY : display bubbles even in skell
0x0238745C = li r3, 0 0x0238745C = li r3, 0
[XCX_DISTMOBINFO_1U] ########################################################### [XCX_DISTMOBINFO_V102J] ; ###########################################################
moduleMatches = 0xAB97DE6B ; 1.0.1U 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 0x023871F0 = bla _init_react
0x02386E94 = bla _info_obtained 0x02386E94 = bla _info_obtained
0x02386EC4 = bla _info_default 0x02386EC4 = bla _info_default
@ -74,3 +78,14 @@ moduleMatches = 0xAB97DE6B ; 1.0.1U
0x0238EEC0 = nop ; Disable altitude check 0x0238EEC0 = nop ; Disable altitude check
0x023873EC = li r3, 0 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" name = "NPC info bubbles distance mod"
path = "Xenoblade Chronicles X/Mods/Graphics/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. 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] [XCX_NoOffline_V101E]
moduleMatches = 0x785CA8A9 moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
; WHO : s_offline_frameIn
0x100B06DC = nop ; frameIn ; WHAT : Never process this function so that the online label is never shown
[XCX_NoOffline_V102J]
moduleMatches = 0x7672271D
0x100B0B28 = nop ; frameIn
[XCX_NoOffline_V100E_V101E]
moduleMatches = 0x218F6E07, 0xF882D5CF
0x100B0B50 = nop ; frameIn 0x100B0B50 = nop ; frameIn
[XCX_NoOffline_V102U] [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 name = Hide Offline Label
path = "Xenoblade Chronicles X/Mods/Hide Offline Label" path = "Xenoblade Chronicles X/Mods/Hide Offline Label"
description = Removes offline blinking tag. Does not change the actual online state. 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] [XCX_EMANUAL_101E]
moduleMatches = 0xF882D5CF ; 1.0.1E moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; WHO : menu::MenuMainMenu::funcManual((int)) ; WHO : menu::MenuMainMenu::funcManual((int))
; WHAT : Replace eManual function with timeManipulate function ; WHAT : Replace eManual function with timeManipulate function
_openTimeManipulate = 0x02C7A2F0 _openTimeManipulate = 0x02C7A2F0 ; MenuTask::openTimeManipulate(void)
_isFinishTM = 0x02C7A4CC ; MenuTask::isFinishTimeManipulate((void)) _isFinishTM = 0x02C7A4CC ; MenuTask::isFinishTimeManipulate((void))
0x02B83CB4 = bl _openTimeManipulate 0x02B83CB4 = bl _openTimeManipulate
@ -14,11 +13,10 @@ _isFinishTM = 0x02C7A4CC ; MenuTask::isFinishTimeManipulate((void))
0x02B83C7C = bl _isFinishTM 0x02B83C7C = bl _isFinishTM
0x02B83C98 = bl _isFinishTM 0x02B83C98 = bl _isFinishTM
################################################################################# ;#################################################################################
[XCX_EMANUAL_2U] [XCX_EMANUAL_V102U]
moduleMatches = 0x30B6E091 ; 1.0.2U moduleMatches = 0x30B6E091 ; 1.0.2U
_openTimeManipulate = 0x02C7A290 ; MenuTask::openTimeManipulate(void)
_openTimeManipulate = 0x02C7A290
_isFinishTM = 0x02C7A46C ; MenuTask::isFinishTimeManipulate((void)) _isFinishTM = 0x02C7A46C ; MenuTask::isFinishTimeManipulate((void))
0x02B83CA4 = bl _openTimeManipulate 0x02B83CA4 = bl _openTimeManipulate
@ -27,11 +25,22 @@ _isFinishTM = 0x02C7A46C ; MenuTask::isFinishTimeManipulate((void))
0x02B83C6C = bl _isFinishTM 0x02B83C6C = bl _isFinishTM
0x02B83C88 = bl _isFinishTM 0x02B83C88 = bl _isFinishTM
################################################################################# ;#################################################################################
[XCX_EMANUAL_1U] [XCX_EMANUAL_V102J]
moduleMatches = 0xAB97DE6B ; 1.0.1U 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)) _isFinishTM = 0x02C7A2F4 ; MenuTask::isFinishTimeManipulate((void))
0x02B83C28 = bl _openTimeManipulate 0x02B83C28 = bl _openTimeManipulate
@ -39,3 +48,15 @@ _isFinishTM = 0x02C7A2F4 ; MenuTask::isFinishTimeManipulate((void))
0x02B83BF0 = bl _isFinishTM 0x02B83BF0 = bl _isFinishTM
0x02B83C0C = 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 titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Change time from eManual" name = "Change time from eManual"
path = "Xenoblade Chronicles X/Mods/HUD/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. 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 = 5 version = 6

View File

@ -1,21 +1,32 @@
[XCX_LOOT_RANDOM_AFFIX] [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 .origin = codecave
.int $var1 ; 80
.int $var2 ; 80
.int $var3 ; 20
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; WHO : calcAffix__Q2_8ItemDrop16CItemDropManagerFUsRQ2_3mtl32fixed_vector__tm__12_UsXCUiL_1_3 ; WHO : calcAffix__Q2_8ItemDrop16CItemDropManagerFUsRQ2_3mtl32fixed_vector__tm__12_UsXCUiL_1_3
; WHAT : Affix random truly ; WHAT : Affix random truly
; Everything above 80% is capped at 80%, and everything else is set to 20% ; Everything above 80% is capped at 80%, and everything else is set to 20%
_minDropRate: _minDropRate:
lbz r27, 0x0C(r1) lbz r27, 0x0C(r1)
cmpwi r27, 80 cmpwi r27, $var1 ; 80
blt percent20 blt percent20
li r27, 80 li r27, $var2 ; 80
blr blr
percent20: percent20:
li r27, 20 li r27, $var3 ; 20
blr 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 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" name = "Equipment - Alternate random augment selection"
path = "Xenoblade Chronicles X/Mods/Loot/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%. 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] [XCX_LOOT_EQUIPMENT_BESTQUALITY_V101E_V102U_V100U]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U 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 ; WHO : __CPR98__calcItemTableID__Q2_8ItemDrop16CItemDropManagerFUcRCQ3_J20JJ29J11SCreateInfoRUs
; WHAT : Always best equipment looted (X6X) ; WHAT : Always best equipment looted (X6X)
0x021AD710 = nop ; ground weapons ? 0x021AD710 = nop ; ground weapons ?
0x021ADA6C = nop ; ground armors 0x021ADA6C = nop ; ground armors
0x021ADDE8 = nop ; skell weapons 0x021ADDE8 = nop ; skell weapons
0x021AE164 = nop ; skell armors 0x021AE164 = nop ; skell armors
; ------------------------------------------------------------------------
; ----------------------------------------------------------------------------
; WHO : ItemDrop::CItemDropManager::calcAfxSltNum((unsigned short)) ; WHO : ItemDrop::CItemDropManager::calcAfxSltNum((unsigned short))
; WHAT : Control of the loot quality (always orange/yellow) ; 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 [XCX_LOOT_EQUIPMENT_BESTQUALITY_V102J]
0x021AF280 = li r3, 3 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] [Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Equipment - Best Quality" name = "Equipment - Force Quality"
path = "Xenoblade Chronicles X/Mods/Loot/Equipment - Always the Best Quality (X6X)" path = "Xenoblade Chronicles X/Mods/Loot/Equipment - Force Quality"
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). 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 = 5 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] [XCX_LOOT_EQUIPMENT_COUNT_V101E_V102U_V100U]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U 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)) ; WHO : ItemDrop::CItemDropManager::calcItemNum((uchar))
; WHAT : Chances to loot multiples equipments (3 max) ; WHAT : Chances to loot multiples equipments (3 max)
0x021AB218 = li r3, $cnt3 0x021AB218 = li r3, $cnt3
0x021AB268 = li r3, $cnt2 0x021AB268 = li r3, $cnt2
0x021AB2B8 = li r3, $cnt1 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" name = "Equipment - Force Count"
path = "Xenoblade Chronicles X/Mods/Loot/Equipment - Force Count" path = "Xenoblade Chronicles X/Mods/Loot/Equipment - Force Count"
description = Force the count of equipment looted in Silver or Gold treasures. description = Force the count of equipment looted in Silver or Gold treasures.
version = 5 version = 6
[Default] [Default]
$cnt3 = 0 $cnt3 = 100
$cnt2 = 0 $cnt2 = 100
$cnt1 = 0 $cnt1 = 100
[Preset] [Preset]
name = "Always 3 equipments" name = "Always 3 equipments"
$cnt2 = 100 $cnt3 = 0
$cnt1 = 100
[Preset] [Preset]
name = "Always 2 equipments" name = "Always 2 equipments"
$cnt3 = 100 $cnt2 = 0
$cnt1 = 100
[Preset] [Preset]
name = "Always 1 equipment" name = "Always 1 equipment"
$cnt3 = 100 $cnt1 = 0
$cnt2 = 100

View File

@ -1,8 +1,8 @@
[XCX_LOOT_EQUIPMENT_TYPE] [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 .origin = codecave
.int $type
.int $sub
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; WHO : __CPR98__calcItemTableID__Q2_8ItemDrop16CItemDropManagerFUcRCQ3_J20JJ29J11SCreateInfoRUs ; WHO : __CPR98__calcItemTableID__Q2_8ItemDrop16CItemDropManagerFUcRCQ3_J20JJ29J11SCreateInfoRUs
; WHAT : Force some kind of equipment to be looted in Gold chests ; 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 ; 6 = Skell weapons
; 8 = Skell armors ; 8 = Skell armors
.int $type
0x021AEB88 = li r4, $type
0x021AEB5C = li r27, $type
.int $sub
; Ground Weapons ; Ground Weapons
_notRand: _notRand:
li r4, $sub li r4, $sub
@ -28,8 +21,6 @@ exit_notRand:
cmplw r3, r12 cmplw r3, r12
blr blr
0x021AC280 = bla _notRand
_setSubGW: _setSubGW:
li r3, $sub li r3, $sub
cmpwi r3, 0 cmpwi r3, 0
@ -39,8 +30,6 @@ exit_setSubGW:
addi r3, r1, 0x54 addi r3, r1, 0x54
blr blr
0x021AD6DC = bla _setSubGW
_setSubGA: _setSubGA:
li r3, $sub li r3, $sub
cmpwi r3, 0 cmpwi r3, 0
@ -50,8 +39,6 @@ exit_setSubGA:
addi r3, r1, 0x6C addi r3, r1, 0x6C
blr blr
0x021ADD28 = bla _setSubGA
_setSubSA: _setSubSA:
li r3, $sub li r3, $sub
cmpwi r3, 0 cmpwi r3, 0
@ -61,6 +48,33 @@ exit_setSubSA:
addi r3, r1, 0x9C addi r3, r1, 0x9C
blr 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 ;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" name = "Equipment - Force Type"
path = "Xenoblade Chronicles X/Mods/Loot/Equipment - Force Type" path = "Xenoblade Chronicles X/Mods/Loot/Equipment - Force Type"
description = Force the type of equipment looted. description = Force the type of equipment looted.
version = 5 version = 6
[Default] [Default]
$type:int = 2 $type:int = 2
@ -174,6 +174,3 @@ name = "Leg"
category = Skell Armor category = Skell Armor
condition = $type == 8 condition = $type == 8
$sub:int = 5 $sub:int = 5

View File

@ -1,8 +1,14 @@
[XCX_LOOT_EQUIPMENT_BROKEN] [XCX_LOOT_EQUIPMENT_BROKEN_V101E_V102U_V100U]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U 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 ; 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 titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Equipment - Ignore broken" name = "Equipment - Ignore broken"
path = "Xenoblade Chronicles X/Mods/Loot/Equipment - Ignore broken" path = "Xenoblade Chronicles X/Mods/Loot/Equipment - Ignore broken"
description = Never get broken equipment. description = Never or always get broken equipment.
version = 5 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] [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 .origin = codecave
.int $ratio
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; WHO : __CPR90__calcItemBronze__Q2_8ItemDrop16CItemDropManagerFRQ3_J19JJ28J9SDropInfoUc ; WHO : __CPR90__calcItemBronze__Q2_8ItemDrop16CItemDropManagerFRQ3_J19JJ28J9SDropInfoUc
; WHAT : Affect the drop ratio of materials ; WHAT : Affect the drop ratio of materials
.int $ratio
_minDropRate: _minDropRate:
li r11, $ratio li r11, $ratio
li r31, 0 li r31, 0
@ -36,19 +20,13 @@ compare:
cmpw r3, r31 cmpw r3, r31
blr 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 ; WHO : __CPR90__calcItemBronze__Q2_8ItemDrop16CItemDropManagerFRQ3_J19JJ28J9SDropInfoUc
; WHAT : random selection when all materials at 100% and more than 5 ; WHAT : random selection when all materials at 100% and more than 5
_saveEquipCnt: _saveEquipCnt:
mr r30, r4 mr r30, r4
lwz r13, 0xE0(r30) lwz r13, 0xE0(r30)
blr blr
0x021AF334 = bla _saveEquipCnt
_fixit: _fixit:
li r12, 0 li r12, 0
@ -70,4 +48,55 @@ _fixit:
mr r4, r3 mr r4, r3
blr 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 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" name = "Materials - Drop Ratio"
path = "Xenoblade Chronicles X/Mods/Loot/Materials - Drop Ratio" path = "Xenoblade Chronicles X/Mods/Loot/Materials - Drop Ratio"
description = Affect the materials minimum drop ratio in the loots. description = Affect the materials minimum drop ratio in the loots.
version = 5 version = 6
[Default] [Default]
$ratio = 100 $ratio = 100

View File

@ -1,15 +1,12 @@
[XCX_LOOT_FORCECHEST] [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 .origin = codecave
.int $forced .int $forced
.int $treasure .int $treasure
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; WHO : ItemDrop::CItemDropManager::calcRank((unsigned short, int)) ; WHO : ItemDrop::CItemDropManager::calcRank((unsigned short, int))
; WHAT : Force the chest quality ; WHAT : Force the chest quality
_goForced: _goForced:
li r28, $treasure li r28, $treasure
li r4, $forced li r4, $forced
@ -21,8 +18,10 @@ exit_goForced:
mr. r28, r3 mr. r28, r3
blr 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)) ; 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 ; 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 ; : 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) ; : 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. ; : --> 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 titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Treasure Quality" name = "Treasure Quality"
path = "Xenoblade Chronicles X/Mods/Loot/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). 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 = 5 version = 6
[Default] [Default]
$treasure:int = 0 $treasure:int = 0
@ -24,11 +24,11 @@ $treasure:int = 3
[Preset] [Preset]
name = "No treasure" name = "No treasure"
[Preset]
name = "No"
category = Forced
[Preset] [Preset]
name = "Yes" name = "Yes"
category = Forced category = Forced
$forced:int = 1 $forced:int = 1
[Preset]
name = "No"
category = Forced

View File

@ -1,17 +1,7 @@
[XCX_MAXITEMS] ########################################################## [XCX_MAXITEMS]
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 .origin = codecave
.int $max
; 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
_testsub: _testsub:
lwz r29, 0xC(r1) lwz r29, 0xC(r1)
@ -21,25 +11,47 @@ li r3, 255
exit_testsub: exit_testsub:
blr 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 0x02363A28 = bla _testsub
[XCX_MAXITEMS_1U] ########################################################## [XCX_MAXITEMS_V102J]
moduleMatches = 0xAB97DE6B ; 1.0.1U 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 0x0236325C = bla _testsub
0x02363098 = cmplwi r12, 999
0x0236396C = li r0, 999 ; when some items in stock [XCX_MAXITEMS_V100U]
0x0236398C = li r0, 999 ; when no item in stock moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
0x02362C1C = cmplwi r12, $max
0x02363098 = cmplwi r12, $max
_testsub: 0x0236396C = li r0, $max ; when some items in stock
lwz r29, 0xC(r1) 0x0236398C = li r0, $max ; when no item in stock
cmpwi r3, 255
ble exit_testsub
li r3, 255
exit_testsub:
blr
0x023639B8 = bla _testsub 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 titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Max Items" name = "Max Items"
path = "Xenoblade Chronicles X/Mods/Maximus/Max Items" path = "Xenoblade Chronicles X/Mods/Maximus/Max Items"
description = "Increase maximum items to 999." description = Increases maximum amount of items.
version = 5 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] ############################################################## [XCX_MAXMONEY_V101E_V102U]
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
; fw::Util::addMoney((int)) ; fw::Util::addMoney((int))
0x027F6C28 = lis r12, 0x3B9B 0x027F6C28 = lis r12, 0x3B9B
0x027F6C30 = addi r12, r12, -0x3601 0x027F6C30 = addi r12, r12, -0x3601
0x027F6C3C = lis r3, 0x3B9B 0x027F6C3C = lis r3, 0x3B9B
0x027F6C40 = addi r3, r3, -0x3601 0x027F6C40 = addi r3, r3, -0x3601
; fw::Util::setMoney((unsigned int)) ; fw::Util::setMoney((unsigned int))
0x027F6BA8 = lis r4, 0x3B9B 0x027F6BA8 = lis r4, 0x3B9B
0x027F6BAC = addi r4, r4, -0x3601 0x027F6BAC = addi r4, r4, -0x3601
; fw::Util::setTradeTicket((unsigned int)) ; fw::Util::setTradeTicket((unsigned int))
0x027F6D00 = lis r0, 0x3B9A 0x027F6D00 = lis r0, 0x3B9A
0x027F6D04 = ori r0, r0, 0xC9FF 0x027F6D04 = ori r0, r0, 0xC9FF
; fw::Util::setMiranium((unsigned int)) ; fw::Util::setMiranium((unsigned int))
0x027F6D9C = lis r0, 0x3B9A 0x027F6D9C = lis r0, 0x3B9A
0x027F6DA0 = ori r0, r0, 0xC9FF 0x027F6DA0 = ori r0, r0, 0xC9FF
; fw::Util::addMiranium((int)) ; fw::Util::addMiranium((int))
0x027F6DFC = lis r0, 0x3B9A 0x027F6DFC = lis r0, 0x3B9A
0x027F6E04 = ori r0, r0, 0xC9FF 0x027F6E04 = ori r0, r0, 0xC9FF
0x027F6E14 = lis r12, 0x3B9B 0x027F6E14 = lis r12, 0x3B9B
0x027F6E18 = addi r12, r12, -0x3601 0x027F6E18 = addi r12, r12, -0x3601
[XCX_MAXMONEY_1U] ############################################################## [XCX_MAXMONEY_V102J] ; ###########################################################
moduleMatches = 0xAB97DE6B ; 1.0.1U 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)) ; fw::Util::addMoney((int))
0x027F6BAC = lis r12, 0x3B9B 0x027F6BAC = lis r12, 0x3B9B
0x027F6BB4 = addi r12, r12, -0x3601 0x027F6BB4 = addi r12, r12, -0x3601
0x027F6BC0 = lis r3, 0x3B9B 0x027F6BC0 = lis r3, 0x3B9B
0x027F6BC4 = addi r3, r3, -0x3601 0x027F6BC4 = addi r3, r3, -0x3601
; fw::Util::setMoney((unsigned int)) ; fw::Util::setMoney((unsigned int))
0x027F6B2C = lis r4, 0x3B9B 0x027F6B2C = lis r4, 0x3B9B
0x027F6B30 = addi r4, r4, -0x3601 0x027F6B30 = addi r4, r4, -0x3601
; fw::Util::setTradeTicket((unsigned int)) ; fw::Util::setTradeTicket((unsigned int))
0x027F6C84 = lis r0, 0x3B9A 0x027F6C84 = lis r0, 0x3B9A
0x027F6C88 = ori r0, r0, 0xC9FF 0x027F6C88 = ori r0, r0, 0xC9FF
; fw::Util::setMiranium((unsigned int)) ; fw::Util::setMiranium((unsigned int))
0x027F6D20 = lis r0, 0x3B9A 0x027F6D20 = lis r0, 0x3B9A
0x027F6D24 = ori r0, r0, 0xC9FF 0x027F6D24 = ori r0, r0, 0xC9FF
; fw::Util::addMiranium((int)) ; fw::Util::addMiranium((int))
0x027F6D80 = lis r0, 0x3B9A 0x027F6D80 = lis r0, 0x3B9A
0x027F6D88 = ori r0, r0, 0xC9FF 0x027F6D88 = ori r0, r0, 0xC9FF
0x027F6D98 = lis r12, 0x3B9B 0x027F6D98 = lis r12, 0x3B9B
0x027F6D9C = addi r12, r12, -0x3601 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" name = "Max Money"
path = "Xenoblade Chronicles X/Mods/Maximus/Max Money" path = "Xenoblade Chronicles X/Mods/Maximus/Max Money"
description = "Increase maximum money to 999 999 999." 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