mirror of
https://github.com/cemu-project/cemu_graphic_packs.git
synced 2024-11-21 17:19:18 +01:00
[XCX] Port to most versions, added freecam mode and other changes
Thanks to @intra2 for the work!
This commit is contained in:
parent
240179e6c9
commit
97c0d90901
@ -1,6 +1,5 @@
|
||||
[XCX_FPS++_Cutscene]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D ; 1.0.1E, 1.0.2U, 1.0.2J
|
||||
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J
|
||||
.origin = codecave
|
||||
|
||||
forceCutsceneLimit:
|
||||
@ -109,4 +108,4 @@ mr r4, r10
|
||||
lis r10, const_30@ha
|
||||
lfs f10, const_30@l(r10)
|
||||
|
||||
b _setGameSpeed
|
||||
b _setGameSpeed
|
||||
|
@ -1,6 +1,5 @@
|
||||
[XCX_FPS++_GameSpeed]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D ; 1.0.1E, 1.0.2U, 1.0.2J
|
||||
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J
|
||||
.origin = codecave
|
||||
|
||||
# Constants
|
||||
@ -248,8 +247,8 @@ lwz r10, 0x14(r1)
|
||||
blr
|
||||
|
||||
|
||||
[XCX_FPS++_GameSpeed_V101E]
|
||||
moduleMatches = 0xF882D5CF
|
||||
[XCX_FPS++_GameSpeed_V101E] ; #####################################################################################################################################################
|
||||
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
|
||||
|
||||
; Global data patch
|
||||
0x10171980 = havokHalfSpeed:
|
||||
@ -291,8 +290,51 @@ moduleMatches = 0xF882D5CF
|
||||
# 0x027A33DC = lfs f1, averageFPS1Inv@l(r10) ; But introduces shake and stutter issue. CODE XREF: ev::CEvtManager::startPage((float,bool))+6Cj
|
||||
|
||||
|
||||
[XCX_FPS++_GameSpeed_V102J]
|
||||
moduleMatches = 0x7672271D
|
||||
[XCX_FPS++_GameSpeed_V102U] ; #####################################################################################################################################################
|
||||
moduleMatches = 0x30B6E091 ; 1.0.2U
|
||||
|
||||
; Global data patch
|
||||
0x10171980 = havokHalfSpeed:
|
||||
0x10171980 = .float $fpsLimit
|
||||
0x100598E4 = titleScreenSpeed:
|
||||
0x100598E4 = .float (30.0/$fpsLimit)
|
||||
0x10012644 = soulVoiceSpeed:
|
||||
0x10012644 = .float (900/$fpsLimit)
|
||||
|
||||
; Instruction-specific patches
|
||||
0x02228274 = lis r5, averageFPS0.1@ha ; Controller acceleration
|
||||
0x0222827C = lfs f30, averageFPS0.1@l(r5) ; Controller acceleration
|
||||
0x0273E3CC = lis r7, averageFPS1Inv@ha ; Sync elevator, vehicles etc
|
||||
0x0273E3D0 = lfs f31, averageFPS1Inv@l(r7) ; Sync elevator, vehicles etc
|
||||
0x0276A85C = lis r8, averageFPS1Inv@ha ; Sync in-game cutscenes
|
||||
0x0276A860 = lfs f31, averageFPS1Inv@l(r8) ; Sync in-game cutscenes
|
||||
0x025F299C = lis r12, averageFPS1Inv@ha ; Move__11CfSceneTaskFv ; Filter CPU, 30FPS logic
|
||||
0x025F29A4 = lfs f31, averageFPS1Inv@l(r12) ; Move__11CfSceneTaskFv
|
||||
# 0x02D39CE0 = lis r12, const_guiSpeed@ha ; AnimeObject::set
|
||||
# 0x02D39CE4 = lfs f13, const_guiSpeed@l(r12) ; AnimeObject::set
|
||||
0x02D202C8 = lis r12, const_guiSpeed@ha ; MenuObject::playEvent
|
||||
0x02D202CC = lfs f31, const_guiSpeed@l(r12) ; MenuObject::playEvent
|
||||
0x02D20394 = lis r12, const_guiSpeed@ha ; MenuObject::playEventFrame
|
||||
0x02D20398 = lfs f31, const_guiSpeed@l(r12) ; MenuObject::playEventFrame
|
||||
|
||||
; Call GX2SetSwapInterval with 0 which removes any vsync
|
||||
0x02FD8A34 = li r3, 0
|
||||
; Use FPS waiting logic even with swap interval being 0
|
||||
0x02FD59B4 = li r3, 1
|
||||
|
||||
0x02FD5A54 = bla _calculateGamespeed
|
||||
0x027685B0 = bla _useCutsceneLimit
|
||||
0x03AC2790 = bla _usePrerenderedCutsceneLimit
|
||||
|
||||
# These patches are replaced by lowering the framerate to prevent side-effects
|
||||
# 0x027398B4 = lis r11, averageFPS1@ha ; Double updateEventParam cutscenes
|
||||
# 0x027398C0 = lfs f1, averageFPS1@l(r11) ; Double updateEventParam cutscenes
|
||||
# 0x027A33D8 = lis r10, averageFPS1Inv@ha ; Half SyncFrame cinematic cutscene, fixes timing issues with cinematic cutscenes
|
||||
# 0x027A33DC = lfs f1, averageFPS1Inv@l(r10) ; But introduces shake and stutter issue. CODE XREF: ev::CEvtManager::startPage((float,bool))+6Cj
|
||||
|
||||
|
||||
[XCX_FPS++_GameSpeed_V102J] ; #####################################################################################################################################################
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
|
||||
; Global data patch
|
||||
0x10171570 = havokHalfSpeed:
|
||||
@ -334,12 +376,12 @@ moduleMatches = 0x7672271D
|
||||
# 0x027A1124 = lfs f1, averageFPS1Inv@l(r10) ; But introduces shake and stutter issue. CODE XREF: ev::CEvtManager::startPage((float,bool))+6Cj
|
||||
|
||||
|
||||
[XCX_FPS++_GameSpeed_V102U]
|
||||
moduleMatches = 0x30B6E091
|
||||
[XCX_FPS++_GameSpeed_V100U] ; #####################################################################################################################################################
|
||||
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||
|
||||
; Global data patch
|
||||
0x10171980 = havokHalfSpeed:
|
||||
0x10171980 = .float $fpsLimit
|
||||
0x10171880 = havokHalfSpeed:
|
||||
0x10171880 = .float $fpsLimit
|
||||
0x100598E4 = titleScreenSpeed:
|
||||
0x100598E4 = .float (30.0/$fpsLimit)
|
||||
0x10012644 = soulVoiceSpeed:
|
||||
@ -348,30 +390,73 @@ moduleMatches = 0x30B6E091
|
||||
; Instruction-specific patches
|
||||
0x02228274 = lis r5, averageFPS0.1@ha ; Controller acceleration
|
||||
0x0222827C = lfs f30, averageFPS0.1@l(r5) ; Controller acceleration
|
||||
0x0273E3CC = lis r7, averageFPS1Inv@ha ; Sync elevator, vehicles etc
|
||||
0x0273E3D0 = lfs f31, averageFPS1Inv@l(r7) ; Sync elevator, vehicles etc
|
||||
0x0276A85C = lis r8, averageFPS1Inv@ha ; Sync in-game cutscenes
|
||||
0x0276A860 = lfs f31, averageFPS1Inv@l(r8) ; Sync in-game cutscenes
|
||||
0x025F299C = lis r12, averageFPS1Inv@ha ; Move__11CfSceneTaskFv ; Filter CPU, 30FPS logic
|
||||
0x025F29A4 = lfs f31, averageFPS1Inv@l(r12) ; Move__11CfSceneTaskFv
|
||||
# 0x02D39CE0 = lis r12, const_guiSpeed@ha ; AnimeObject::set
|
||||
# 0x02D39CE4 = lfs f13, const_guiSpeed@l(r12) ; AnimeObject::set
|
||||
0x02D202C8 = lis r12, const_guiSpeed@ha ; MenuObject::playEvent
|
||||
0x02D202CC = lfs f31, const_guiSpeed@l(r12) ; MenuObject::playEvent
|
||||
0x02D20394 = lis r12, const_guiSpeed@ha ; MenuObject::playEventFrame
|
||||
0x02D20398 = lfs f31, const_guiSpeed@l(r12) ; MenuObject::playEventFrame
|
||||
0x0273E36C = lis r7, averageFPS1Inv@ha ; Sync elevator, vehicles etc
|
||||
0x0273E370 = lfs f31, averageFPS1Inv@l(r7) ; Sync elevator, vehicles etc
|
||||
0x0276A7FC = lis r8, averageFPS1Inv@ha ; Sync in-game cutscenes
|
||||
0x0276A800 = lfs f31, averageFPS1Inv@l(r8) ; Sync in-game cutscenes
|
||||
0x025F292C = lis r12, averageFPS1Inv@ha ; Move__11CfSceneTaskFv ; Filter CPU, 30FPS logic
|
||||
0x025F2934 = lfs f31, averageFPS1Inv@l(r12) ; Move__11CfSceneTaskFv
|
||||
# 0x02D39B68 = lis r12, const_guiSpeed@ha ; AnimeObject::set
|
||||
# 0x02D39B6C = lfs f13, const_guiSpeed@l(r12) ; AnimeObject::set
|
||||
0x02D20150 = lis r12, const_guiSpeed@ha ; MenuObject::playEvent
|
||||
0x02D20154 = lfs f31, const_guiSpeed@l(r12) ; MenuObject::playEvent
|
||||
0x02D2021C = lis r12, const_guiSpeed@ha ; MenuObject::playEventFrame
|
||||
0x02D20220 = lfs f31, const_guiSpeed@l(r12) ; MenuObject::playEventFrame
|
||||
|
||||
; Call GX2SetSwapInterval with 0 which removes any vsync
|
||||
0x02FD8A34 = li r3, 0
|
||||
0x02FD88BC = li r3, 0
|
||||
; Use FPS waiting logic even with swap interval being 0
|
||||
0x02FD59B4 = li r3, 1
|
||||
0x02FD583C = li r3, 1
|
||||
|
||||
0x02FD5A54 = bla _calculateGamespeed
|
||||
0x027685B0 = bla _useCutsceneLimit
|
||||
0x03AC2790 = bla _usePrerenderedCutsceneLimit
|
||||
0x02FD58DC = bla _calculateGamespeed
|
||||
0x02768550 = bla _useCutsceneLimit
|
||||
0x03AC2610 = bla _usePrerenderedCutsceneLimit
|
||||
|
||||
# These patches are replaced by lowering the framerate to prevent side-effects
|
||||
# 0x027398B4 = lis r11, averageFPS1@ha ; Double updateEventParam cutscenes
|
||||
# 0x027398C0 = lfs f1, averageFPS1@l(r11) ; Double updateEventParam cutscenes
|
||||
# 0x027A33D8 = lis r10, averageFPS1Inv@ha ; Half SyncFrame cinematic cutscene, fixes timing issues with cinematic cutscenes
|
||||
# 0x027A33DC = lfs f1, averageFPS1Inv@l(r10) ; But introduces shake and stutter issue. CODE XREF: ev::CEvtManager::startPage((float,bool))+6Cj
|
||||
# 0x02739854 = lis r11, averageFPS1@ha ; Double updateEventParam cutscenes
|
||||
# 0x02739860 = lfs f1, averageFPS1@l(r11) ; Double updateEventParam cutscenes
|
||||
# 0x027A3378 = lis r10, averageFPS1Inv@ha ; Half SyncFrame cinematic cutscene, fixes timing issues with cinematic cutscenes
|
||||
# 0x027A337C = lfs f1, averageFPS1Inv@l(r10) ; But introduces shake and stutter issue. CODE XREF: ev::CEvtManager::startPage((float,bool))+6Cj
|
||||
|
||||
|
||||
[XCX_FPS++_GameSpeed_V100J] ; #####################################################################################################################################################
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
|
||||
; Global data patch
|
||||
0x10171070 = havokHalfSpeed:
|
||||
0x10171070 = .float $fpsLimit
|
||||
0x10059514 = titleScreenSpeed:
|
||||
0x10059514 = .float (30.0/$fpsLimit)
|
||||
0x1001260C = soulVoiceSpeed:
|
||||
0x1001260C = .float (900/$fpsLimit)
|
||||
|
||||
; Instruction-specific patches
|
||||
0x02227ABC = lis r5, averageFPS0.1@ha ; Controller acceleration
|
||||
0x02227AC4 = lfs f30, averageFPS0.1@l(r5) ; Controller acceleration
|
||||
0x0273BBD0 = lis r7, averageFPS1Inv@ha ; Sync elevator, vehicles etc
|
||||
0x0273BBD4 = lfs f31, averageFPS1Inv@l(r7) ; Sync elevator, vehicles etc
|
||||
0x02768064 = lis r8, averageFPS1Inv@ha ; Sync in-game cutscenes
|
||||
0x02768068 = lfs f31, averageFPS1Inv@l(r8) ; Sync in-game cutscenes
|
||||
0x025F149C = lis r12, averageFPS1Inv@ha ; Move__11CfSceneTaskFv ; Filter CPU, 30FPS logic
|
||||
0x025F14A4 = lfs f31, averageFPS1Inv@l(r12) ; Move__11CfSceneTaskFv
|
||||
# 0x02D30A10 = lis r12, const_guiSpeed@ha ; AnimeObject::set
|
||||
# 0x02D30A14 = lfs f13, const_guiSpeed@l(r12) ; AnimeObject::set
|
||||
0x02D1709C = lis r12, const_guiSpeed@ha ; MenuObject::playEvent
|
||||
0x02D170A0 = lfs f31, const_guiSpeed@l(r12) ; MenuObject::playEvent
|
||||
0x02D17168 = lis r12, const_guiSpeed@ha ; MenuObject::playEventFrame
|
||||
0x02D1716C = lfs f31, const_guiSpeed@l(r12) ; MenuObject::playEventFrame
|
||||
|
||||
; Call GX2SetSwapInterval with 0 which removes any vsync
|
||||
0x02FCEB9C = li r3, 0
|
||||
; Use FPS waiting logic even with swap interval being 0
|
||||
0x02FCBB1C = li r3, 1
|
||||
|
||||
0x02FCBBBC = bla _calculateGamespeed
|
||||
0x02765DB8 = bla _useCutsceneLimit
|
||||
0x03AB85A8 = bla _usePrerenderedCutsceneLimit
|
||||
|
||||
# These patches are replaced by lowering the framerate to prevent side-effects
|
||||
# 0x027370B8 = lis r11, averageFPS1@ha ; Double updateEventParam cutscenes
|
||||
# 0x027370C4 = lfs f1, averageFPS1@l(r11) ; Double updateEventParam cutscenes
|
||||
# 0x027A0180 = lis r10, averageFPS1Inv@ha ; Half SyncFrame cinematic cutscene, fixes timing issues with cinematic cutscenes
|
||||
# 0x027A0184 = lfs f1, averageFPS1Inv@l(r10) ; But introduces shake and stutter issue. CODE XREF: ev::CEvtManager::startPage((float,bool))+6Cj
|
||||
|
@ -1,6 +1,5 @@
|
||||
[XCX_FPS++_Overdrive_General] ; ########################################################
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D ; 1.0.1E, 1.0.2U, 1.0.2J
|
||||
|
||||
[XCX_FPS++_Overdrive_General]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J
|
||||
.origin = codecave
|
||||
|
||||
_over:
|
||||
@ -10,20 +9,18 @@ _over:
|
||||
fmuls f1, f31, f1
|
||||
blr
|
||||
|
||||
[XCX_FPS++_Overdrive_V101E] ; ########################################################
|
||||
moduleMatches = 0xF882D5CF ; 1.0.1E
|
||||
|
||||
[XCX_FPS++_Overdrive_V101E_V102U_V100U]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07, 0xAB97DE6B, 0x676EB33E ; 1.0.1E, 1.0.2U, 1.0.0E, 1.0.1U, 1.0.0U
|
||||
0x021BC904 = bla _over ; Gear::CGear::update((float))
|
||||
0x021E2020 = bla _over ; Gear::CMode::Update((float))
|
||||
|
||||
[XCX_FPS++_Overdrive_V102U] ; ########################################################
|
||||
moduleMatches = 0x30B6E091 ; 1.0.2U
|
||||
|
||||
0x021BC904 = bla _over ; Gear::CGear::update((float))
|
||||
0x021E2020 = bla _over ; Gear::CMode::Update((float))
|
||||
|
||||
[XCX_FPS++_Overdrive_V102J] ; ########################################################
|
||||
[XCX_FPS++_Overdrive_V102J]
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
|
||||
0x021BC3D0 = bla _over ; Gear::CGear::update((float))
|
||||
0x021E1AEC = bla _over ; Gear::CMode::Update((float))
|
||||
0x021E1AEC = bla _over ; Gear::CMode::Update((float))
|
||||
|
||||
[XCX_FPS++_Overdrive_V100J]
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
0x021BC14C = bla _over ; Gear::CGear::update((float))
|
||||
0x021E1868 = bla _over ; Gear::CMode::Update((float))
|
||||
|
@ -1,6 +1,5 @@
|
||||
[XCX_FPS++_QTE_General] ; ########################################################
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D ; 1.0.1E, 1.0.2U, 1.0.2J
|
||||
|
||||
[XCX_FPS++_QTE_General]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J
|
||||
.origin = codecave
|
||||
|
||||
timingFloatConv:
|
||||
@ -76,35 +75,48 @@ _justFrame2:
|
||||
|
||||
blr
|
||||
|
||||
[XCX_FPS++_QTE_V101E] ; ########################################################
|
||||
moduleMatches = 0xF882D5CF ; 1.0.1E
|
||||
|
||||
[XCX_FPS++_QTE_V101E] ; ########################################################
|
||||
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
|
||||
; menu::MenuButtonChallenge::setup
|
||||
0x02ACE40C = lis r7, averageFPS30Inv@ha
|
||||
0x02ACE414 = lfs f0, averageFPS30Inv@l(r7)
|
||||
|
||||
; menu::MenuButtonChallenge::move
|
||||
0x02ACE6E4 = bla _justFrame1
|
||||
0x02ACE700 = bla _justFrame2
|
||||
|
||||
[XCX_FPS++_QTE_V102U] ; ########################################################
|
||||
moduleMatches = 0x30B6E091 ; 1.0.2U
|
||||
|
||||
; menu::MenuButtonChallenge::setup
|
||||
0x02ACE3FC = lis r7, averageFPS30Inv@ha
|
||||
0x02ACE404 = lfs f0, averageFPS30Inv@l(r7)
|
||||
|
||||
; menu::MenuButtonChallenge::move
|
||||
0x02ACE6D4 = bla _justFrame1
|
||||
0x02ACE6F0 = bla _justFrame2
|
||||
|
||||
[XCX_FPS++_QTE_V102J]
|
||||
[XCX_FPS++_QTE_V102J] ; ########################################################
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
|
||||
; menu::MenuButtonChallenge::setup
|
||||
0x02ACAA38 = lis r7, averageFPS30Inv@ha
|
||||
0x02ACAA40 = lfs f0, averageFPS30Inv@l(r7)
|
||||
|
||||
; menu::MenuButtonChallenge::move
|
||||
0x02ACAD10 = bla _justFrame1
|
||||
0x02ACAD2C = bla _justFrame2
|
||||
0x02ACAD2C = bla _justFrame2
|
||||
|
||||
[XCX_FPS++_QTE_V100U] ; ########################################################
|
||||
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||
; menu::MenuButtonChallenge::setup
|
||||
0x02ACE380 = lis r7, averageFPS30Inv@ha
|
||||
0x02ACE388 = lfs f0, averageFPS30Inv@l(r7)
|
||||
; menu::MenuButtonChallenge::move
|
||||
0x02ACE658 = bla _justFrame1
|
||||
0x02ACE674 = bla _justFrame2
|
||||
|
||||
[XCX_FPS++_QTE_V100J] ; ########################################################
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
; menu::MenuButtonChallenge::setup
|
||||
0x02AC8C00 = lis r7, averageFPS30Inv@ha
|
||||
0x02AC8C08 = lfs f0, averageFPS30Inv@l(r7)
|
||||
; menu::MenuButtonChallenge::move
|
||||
0x02AC8ED8 = bla _justFrame1
|
||||
0x02AC8EF4 = bla _justFrame2
|
||||
|
@ -1,17 +1,22 @@
|
||||
[XCX_DAMAGES] ####################################################################################################################################
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
|
||||
|
||||
.origin = codecave
|
||||
|
||||
.int $mult
|
||||
|
||||
[XCX_DAMAGES_V101E]
|
||||
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
|
||||
0x02E0C5B0 = li r3, -1-$mult
|
||||
0x025D896C = mulli r4, r31, $mult
|
||||
|
||||
[XCX_DAMAGES_1U] ####################################################################################################################################
|
||||
moduleMatches = 0xAB97DE6B ; 1.0.1U
|
||||
[XCX_DAMAGES_V102U]
|
||||
moduleMatches = 0x30B6E091 ; 1.0.2U
|
||||
0x02E0C550 = li r3, -1-$mult
|
||||
0x025D896C = mulli r4, r31, $mult
|
||||
|
||||
.origin = codecave
|
||||
|
||||
.int $mult
|
||||
;[XCX_DAMAGES_V102J]
|
||||
;DO NOT port to JP 1.0.2 untill official game servers go offline
|
||||
|
||||
[XCX_DAMAGES_V100U]
|
||||
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||
0x02E0C3D8 = li r3, -1-$mult
|
||||
0x025D88FC = mulli r4, r31, $mult
|
||||
|
||||
[XCX_DAMAGES_V100J]
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
0x02E03228 = li r3, -1-$mult
|
||||
0x025CD268 = mulli r4, r31, $mult
|
||||
|
@ -2,27 +2,31 @@
|
||||
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "Ground damage multiplicator"
|
||||
path = "Xenoblade Chronicles X/Mods/Battle/Ground damage multiplicator"
|
||||
description = Increase the ground damage done by your team (skells not impacted).
|
||||
version = 5
|
||||
description = Increase the damage done by your team. Doesn't affect the damage numbers that are shown.
|
||||
version = 6
|
||||
|
||||
[Default]
|
||||
$mult = 2
|
||||
|
||||
[Preset]
|
||||
name = Damage x 2
|
||||
name = Damage x2
|
||||
|
||||
[Preset]
|
||||
name = Damage x 3
|
||||
name = Damage x3
|
||||
$mult = 3
|
||||
|
||||
[Preset]
|
||||
name = Damage x 5
|
||||
name = Damage x5
|
||||
$mult = 5
|
||||
|
||||
[Preset]
|
||||
name = Damage x 10
|
||||
name = Damage x10
|
||||
$mult = 10
|
||||
|
||||
[Preset]
|
||||
name = Damage x 100
|
||||
name = Damage x25
|
||||
$mult = 25
|
||||
|
||||
[Preset]
|
||||
name = Damage x100
|
||||
$mult = 100
|
||||
|
@ -1,22 +1,32 @@
|
||||
[XCX_DAMAGES]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J
|
||||
|
||||
.origin = codecave
|
||||
|
||||
.int $divr
|
||||
|
||||
_divide_dmg:
|
||||
li r4, $divr
|
||||
divw r4, r31, r4
|
||||
blr
|
||||
|
||||
[XCX_DAMAGES_V101E]
|
||||
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
|
||||
0x02E0C5B0 = li r3, -1-$divr
|
||||
0x025D896C = bla _divide_dmg
|
||||
|
||||
[XCX_DAMAGES_1U]
|
||||
moduleMatches = 0xAB97DE6B ; 1.0.1U
|
||||
[XCX_DAMAGES_V102U]
|
||||
moduleMatches = 0x30B6E091 ; 1.0.2U
|
||||
0x02E0C550 = li r3, -1-$divr
|
||||
0x025D896C = bla _divide_dmg
|
||||
|
||||
.origin = codecave
|
||||
;[XCX_DAMAGES_V102J]
|
||||
;DO NOT port to JP 1.0.2 untill official game servers go offline
|
||||
|
||||
.int $mult
|
||||
[XCX_DAMAGES_V100U]
|
||||
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||
0x02E0C3D8 = li r3, -1-$divr
|
||||
0x025D88FC = bla _divide_dmg
|
||||
|
||||
0x025D88FC = mulli r4, r31, $mult
|
||||
[XCX_DAMAGES_V100J]
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
0x02E03228 = li r3, -1-$divr
|
||||
0x025CD268 = bla _divide_dmg
|
||||
|
@ -2,22 +2,15 @@
|
||||
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = Ground Damage Divisor
|
||||
path = "Xenoblade Chronicles X/Mods/Battle/Ground damage divisor"
|
||||
description = Make the game more challenging by dividing the given damage you and your team do to enemies. Doesn't affect the damage numbers that are shown.|Might be experimental since it's not fully been tested yet.||Made by Lashoun.
|
||||
version = 5
|
||||
description = Make the game more challenging by dividing the given damage you and your team do to enemies. Doesn't affect the damage numbers that are shown.||Made by Lashoun.
|
||||
version = 6
|
||||
|
||||
[Default]
|
||||
$divr = 2
|
||||
|
||||
[Preset]
|
||||
category = Damage Divisor
|
||||
name = Normal Damage (Default)
|
||||
default = 1
|
||||
$divr = 1
|
||||
|
||||
[Preset]
|
||||
category = Damage Divisor
|
||||
name = Damage / 2
|
||||
$divr = 2
|
||||
|
||||
[Preset]
|
||||
category = Damage Divisor
|
||||
@ -36,7 +29,7 @@ $divr = 10
|
||||
|
||||
[Preset]
|
||||
category = Damage Divisor
|
||||
name = Damage / 10
|
||||
name = Damage / 50
|
||||
$divr = 50
|
||||
|
||||
[Preset]
|
||||
|
@ -1,7 +1,6 @@
|
||||
[XCX_ENEMIESTATS]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
[XCX_ENEMIESTATS_V101E]
|
||||
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
|
||||
; ------------------------------------------------------------------------
|
||||
; WHO : calcEnParam__3cfsFPQ2_3cfs7SChrPrmUiT2
|
||||
; WHAT : Apply modificator on enemies stats (HP, Melee Attack, Melee Accuracy, Ranged Attack, Ranged Accuracy, Potential and Evasion)
|
||||
|
||||
@ -9,5 +8,23 @@ moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
|
||||
; 70% = 0.0007
|
||||
; 50% = 0.0005
|
||||
; 1% = 0.00001 ; GAME CRASH (enemis are too weak)
|
||||
|
||||
0x02E0C5B0 = li r3, -3
|
||||
0x1003206C = .float $mod
|
||||
|
||||
[XCX_ENEMIESTATS_V102U]
|
||||
moduleMatches = 0x30B6E091 ; 1.0.2U
|
||||
0x02E0C550 = li r3, -3
|
||||
0x1003206C = .float $mod
|
||||
|
||||
;[XCX_ENEMIESTATS_V102J]
|
||||
;DO NOT port to JP 1.0.2 untill official game servers go offline
|
||||
|
||||
[XCX_ENEMIESTATS_V100U]
|
||||
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||
0x02E0C3D8 = li r3, -3
|
||||
0x1003206C = .float $mod
|
||||
|
||||
[XCX_ENEMIESTATS_V100J]
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
0x02E03228 = li r3, -3
|
||||
0x10031FDC = .float $mod
|
||||
|
@ -3,23 +3,43 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "Enemy Statistics modificator"
|
||||
path = "Xenoblade Chronicles X/Mods/Battle/Enemy Statistics modificator"
|
||||
description = Apply a percent modificator on enemies stats (HP, Melee Attack, Melee Accuracy, Ranged Attack, Ranged Accuracy, Potential and Evasion).|You can consult the new values in the Bestiary menu.
|
||||
version = 5
|
||||
version = 6
|
||||
|
||||
[Default]
|
||||
$mod = 0.001
|
||||
|
||||
[Preset]
|
||||
name = "Set at 25%"
|
||||
$mod = 0.00025
|
||||
|
||||
[Preset]
|
||||
name = "Set at 50%"
|
||||
$mod = 0.0005
|
||||
|
||||
[Preset]
|
||||
name = Set at 50%
|
||||
|
||||
[Preset]
|
||||
name = Set at 75%
|
||||
name = "Set at 75%"
|
||||
$mod = 0.00075
|
||||
|
||||
[Preset]
|
||||
name = Set at 125%
|
||||
name = "Set at 100% (default)"
|
||||
default = 1
|
||||
|
||||
[Preset]
|
||||
name = "Set at 125%"
|
||||
$mod = 0.00125
|
||||
|
||||
[Preset]
|
||||
name = Set at 150%
|
||||
name = "Set at 150%"
|
||||
$mod = 0.0015
|
||||
|
||||
[Preset]
|
||||
name = "Set at 200%"
|
||||
$mod = 0.002
|
||||
|
||||
[Preset]
|
||||
name = "Hell: Set at 300%"
|
||||
$mod = 0.003
|
||||
|
||||
[Preset]
|
||||
name = "Impossible: Set at 1000%"
|
||||
$mod = 0.01
|
||||
|
@ -1,8 +1,6 @@
|
||||
[XCX_RELEASEDIST]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
|
||||
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9, 0x8780C48F ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J, 1.0.1J
|
||||
.origin = codecave
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : cfs::CfCompoPropertyEnemy::getReleasePcDistanceXZ
|
||||
; WHAT : Reduce escape distance from enemies (to lose aggro)
|
||||
|
@ -1,16 +1,33 @@
|
||||
[Definition]
|
||||
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "Escape distance reducer"
|
||||
path = "Xenoblade Chronicles X/Mods/Battle/Escape distance reducer"
|
||||
description = Reduce escape distance needed to lose aggro from enemies.
|
||||
version = 5
|
||||
name = "Enemy de-aggro range reducer"
|
||||
path = "Xenoblade Chronicles X/Mods/Battle/Enemy de-aggro"
|
||||
description = Decrease or increase the distance needed to run to lose aggro from enemies.
|
||||
version = 6
|
||||
|
||||
[Default]
|
||||
$mod = 1.333
|
||||
$mod = 1.0
|
||||
|
||||
[Preset]
|
||||
name = Apply -25%
|
||||
name = "Hell: Enemies will never de-aggro"
|
||||
$mod = 0.0001
|
||||
|
||||
[Preset]
|
||||
name = Apply -50%
|
||||
name = "Increase Range x2"
|
||||
$mod = 0.5
|
||||
|
||||
[Preset]
|
||||
name = "Range x1 (default)"
|
||||
default = 1
|
||||
|
||||
[Preset]
|
||||
name = "Decrease Range / 2"
|
||||
$mod = 2.0
|
||||
|
||||
[Preset]
|
||||
name = "Decrease Range / 4"
|
||||
$mod = 4.0
|
||||
|
||||
[Preset]
|
||||
name = "Enemies will not fight at all (game breaking)"
|
||||
$mod = 500.0
|
||||
|
@ -1,9 +1,17 @@
|
||||
[XCX_OVERDRIVE]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
|
||||
|
||||
[XCX_OVERDRIVE_V101E_102U_100U]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07, 0xAB97DE6B, 0x676EB33E ; 1.0.1E, 1.0.2U, 1.0.0E, 1.0.1U, 1.0.0U
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : Gear::CGear::IsPermit((void))
|
||||
; WHAT : Always returns true to unlock Overdrive even before chapter 5
|
||||
0x021B70AC = li r3, $mod
|
||||
0x021B70C4 = li r3, $mod
|
||||
|
||||
0x021B70AC = li r3, 1
|
||||
0x021B70C4 = li r3, 1
|
||||
[XCX_OVERDRIVE_V102J]
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
0x021B6B78 = li r3, $mod
|
||||
0x021B6B90 = li r3, $mod
|
||||
|
||||
[XCX_OVERDRIVE_V100J]
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
0x021B68F4 = li r3, $mod
|
||||
0x021B690C = li r3, $mod
|
||||
|
@ -2,5 +2,15 @@
|
||||
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "Overdrive unlocked pre-Chapter 5"
|
||||
path = "Xenoblade Chronicles X/Mods/Battle/Overdrive unlocked"
|
||||
description = Unleashed the power of Overdrive before Chapter 5.
|
||||
version = 5
|
||||
description = Unleash the power of Overdrive before Chapter 5 or relock it after Chapter 5.
|
||||
version = 6
|
||||
|
||||
[Default]
|
||||
$mod = 1
|
||||
|
||||
[Preset]
|
||||
name = Force Unlock
|
||||
|
||||
[Preset]
|
||||
name = Force Relock
|
||||
$mod = 0
|
||||
|
@ -1,9 +1,5 @@
|
||||
[XCX_QTE_DOLLLOST_ALL] #################################################################################################
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
|
||||
|
||||
0x027F9464 = SetInsure:
|
||||
0x023EEFB0 = getPropAccessor:
|
||||
|
||||
[XCX_QTE_DOLLLOST]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.0U, 1.0.0J
|
||||
.origin = codecave
|
||||
|
||||
_setDestructionExcellent:
|
||||
@ -43,9 +39,34 @@ _setDestructionGoodExit:
|
||||
mr r3, r31 ; restore r3 from r31 saved in the stack
|
||||
blr
|
||||
|
||||
|
||||
[XCX_QTE_DOLLLOST_V101E_V102U]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
|
||||
0x027F9464 = SetInsure:
|
||||
0x023EEFB0 = getPropAccessor:
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : Battle::CSoulVoiceButtonChallenge::applyResult((void))
|
||||
; WHAT : Cancel Skell destruction if insurance is still valid (or if QTE result is Excellent)
|
||||
|
||||
0x0209879C = bla _setDestructionExcellent
|
||||
0x02098804 = bla _setDestructionGood
|
||||
|
||||
[XCX_QTE_DOLLLOST_V102J]
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
0x027F7008 = SetInsure:
|
||||
0x023EE5F0 = getPropAccessor:
|
||||
0x02098268 = bla _setDestructionExcellent
|
||||
0x020982D0 = bla _setDestructionGood
|
||||
|
||||
[XCX_QTE_DOLLLOST_V100U]
|
||||
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||
0x027F93E8 = SetInsure:
|
||||
0x023EEF40 = getPropAccessor:
|
||||
0x0209879C = bla _setDestructionExcellent
|
||||
0x02098804 = bla _setDestructionGood
|
||||
|
||||
[XCX_QTE_DOLLLOST_V100J]
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
0x027F5FDC = SetInsure:
|
||||
0x023EE120 = getPropAccessor:
|
||||
0x02097FF4 = bla _setDestructionExcellent
|
||||
0x0209805C = bla _setDestructionGood
|
||||
|
@ -1,6 +1,6 @@
|
||||
[Definition]
|
||||
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "Soul Challenges - Skell restored"
|
||||
path = "Xenoblade Chronicles X/Mods/Battle/Soul Challenges - Skell restored"
|
||||
name = "Soul Challenges - Skell auto restore"
|
||||
path = "Xenoblade Chronicles X/Mods/Battle/Soul Challenges - Skell auto restore"
|
||||
description = When your Skell is destroyed and the insurance is still valid, the Skell is automatically restored (use fast travel or die to get it back).
|
||||
version = 5
|
||||
version = 6
|
||||
|
@ -1,16 +1,26 @@
|
||||
[XCX_QTE_AUTO_ALL] #################################################################################################
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
|
||||
|
||||
[XCX_QTE_AUTO_V101E_V102U_V100U]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07, 0xAB97DE6B, 0x676EB33E ; 1.0.1E, 1.0.2U, 1.0.0E, 1.0.1U, 1.0.0U
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : Battle::CSoulVoiceButtonChallenge::applyResult((void))
|
||||
; WHAT : Force QTE result on Soul Voices (0 = fail 1 = good, 2 = excellent)
|
||||
|
||||
0x0209BA38 = li r9, 2
|
||||
|
||||
0x0209BA38 = li r9, $mod
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : Battle::CSoulVoiceButtonChallenge::updateInternal((float))
|
||||
; WHAT : Auto Apply QTE (dot not call Battle::CButtonChallengeManager::CallUI)
|
||||
|
||||
0x0209D764 = _applyResult:
|
||||
0x0209D6F0 = b _applyResult
|
||||
0x0209D720 = b _applyResult
|
||||
|
||||
[XCX_QTE_AUTO_V102J]
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
0x0209B504 = li r9, $mod
|
||||
0x0209D230 = _applyResult:
|
||||
0x0209D1BC = b _applyResult
|
||||
0x0209D1EC = b _applyResult
|
||||
|
||||
[XCX_QTE_AUTO_V100J]
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
0x0209B290 = li r9, $mod
|
||||
0x0209CFBC = _applyResult:
|
||||
0x0209CF48 = b _applyResult
|
||||
0x0209CF78 = b _applyResult
|
||||
|
@ -1,6 +1,20 @@
|
||||
[Definition]
|
||||
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "Soul Challenges - AutoBattles"
|
||||
path = "Xenoblade Chronicles X/Mods/Battle/Soul Challenges - AutoBattles"
|
||||
description = QTE during battles are automatically done (force result to Excellent).
|
||||
version = 5
|
||||
name = "Soul Challenges - QTE Auto"
|
||||
path = "Xenoblade Chronicles X/Mods/Battle/Soul Challenges - QTE Auto"
|
||||
description = QTE during battles are automatically done (force result).|Does not work on skell destroyed soul voice.
|
||||
version = 6
|
||||
|
||||
[Default]
|
||||
$mod = 2
|
||||
|
||||
[Preset]
|
||||
name = "Force Excellent"
|
||||
|
||||
[Preset]
|
||||
name = "Force Good"
|
||||
$mod = 1
|
||||
|
||||
[Preset]
|
||||
name = "Force Fail / Disable Soul Voices"
|
||||
$mod = 0
|
||||
|
@ -1,7 +1,14 @@
|
||||
[XCX_QTE_SPEED_ALL] #################################################################################################
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
|
||||
|
||||
[XCX_QTE_SPEED_V101E_V102U_V100U]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07, 0xAB97DE6B, 0x676EB33E ; 1.0.1E, 1.0.2U, 1.0.0E, 1.0.1U, 1.0.0U
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : SoulVoice::CSoulVoice::getDifficulty((void))
|
||||
; WHAT : QTE speed does not increase
|
||||
0x022078D4 = li r3, 1
|
||||
0x022078D4 = li r3, $mod
|
||||
|
||||
[XCX_QTE_SPEED_V102J]
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
0x022073A0 = li r3, $mod
|
||||
|
||||
[XCX_QTE_SPEED_V100J]
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
0x0220711C = li r3, $mod
|
||||
|
@ -1,6 +1,24 @@
|
||||
[Definition]
|
||||
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "Soul Challenges - Difficulty"
|
||||
path = "Xenoblade Chronicles X/Mods/Battle/Soul Challenges - Difficulty"
|
||||
description = Speed of QTE does not increase during battles.
|
||||
version = 5
|
||||
name = "Soul Challenges - QTE Speed"
|
||||
path = "Xenoblade Chronicles X/Mods/Battle/Soul Challenges - QTE Speed"
|
||||
description = Speed of QTE does not increase or decrease during battles.
|
||||
version = 6
|
||||
|
||||
[Default]
|
||||
$mod = 1
|
||||
|
||||
[Preset]
|
||||
name = Slow
|
||||
|
||||
[Preset]
|
||||
name = Mid
|
||||
$mod = 2
|
||||
|
||||
[Preset]
|
||||
name = Fast
|
||||
$mod = 3
|
||||
|
||||
[Preset]
|
||||
name = Faster
|
||||
$mod = 4
|
||||
|
@ -1,12 +1,18 @@
|
||||
[XCX_DLC]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
|
||||
|
||||
[XCX_DLC_V101E_V102U]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : collectQuestInfoDL__Q2_3cfs15CfSocialManagerFRQ2_2ml45resvector__tm__28_PQ2_3cfs17CfSocialQuestInfo
|
||||
; WHAT : Disable endgame check to unlock DLC missions
|
||||
0x022C6B50 = nop
|
||||
|
||||
[XCX_DLC_1U]
|
||||
moduleMatches = 0xAB97DE6B ; 1.0.1U
|
||||
[XCX_DLC_V102J]
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
0x022C6560 = nop
|
||||
|
||||
0x022C6AE0 = nop
|
||||
[XCX_DLC_V100U]
|
||||
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||
0x022C6AE0 = nop
|
||||
|
||||
[XCX_DLC_V100J]
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
0x022C6AE0 = nop
|
||||
|
@ -3,5 +3,4 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "DLC Quests unlocked"
|
||||
path = "Xenoblade Chronicles X/Mods/BLADE/DLC Quests unlocked"
|
||||
description = DLC Support quests are unlocked and accessible right after you are a BLADE member.
|
||||
version = 5
|
||||
|
||||
version = 6
|
||||
|
@ -1,13 +1,10 @@
|
||||
[XCX_TICKETS_DLC_ALL]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
|
||||
|
||||
[XCX_TICKETS_DLC]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J
|
||||
.origin = codecave
|
||||
|
||||
.int $mission
|
||||
|
||||
VarTicketsAmount:
|
||||
.int 0
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : menu::MenuMultiQuestInfoWindow::displayInfo((menu::MenuObject *,bool))
|
||||
; menu::MenuMultiQuestResult::setup((void))
|
||||
@ -44,23 +41,40 @@ lis r27, VarTicketsAmount@ha
|
||||
lwz r27, VarTicketsAmount@l(r27)
|
||||
blr
|
||||
|
||||
[XCX_TICKETS_DLC_1E] ############################################################################################
|
||||
moduleMatches = 0xF882D5CF ; 1.0.1E
|
||||
_ticketsValueJP:
|
||||
lis r4, VarTicketsAmount@ha
|
||||
lwz r4, VarTicketsAmount@l(r4)
|
||||
blr
|
||||
|
||||
|
||||
[XCX_TICKETS_DLC_V101E]
|
||||
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
|
||||
0x02B94718 = bla _ticketsDispBefore
|
||||
0x02B9FE2C = bla _ticketsDispAfter
|
||||
0x023CC654 = bla _ticketsValue
|
||||
|
||||
[XCX_TICKETS_DLC_2U] ############################################################################################
|
||||
[XCX_TICKETS_DLC_V102U]
|
||||
moduleMatches = 0x30B6E091 ; 1.0.2U
|
||||
|
||||
0x02B94708 = bla _ticketsDispBefore
|
||||
0x02B9FE1C = bla _ticketsDispAfter
|
||||
0x023CC654 = bla _ticketsValue
|
||||
|
||||
[XCX_TICKETS_DLC_1U] ############################################################################################
|
||||
moduleMatches = 0xAB97DE6B ; 1.0.1U
|
||||
[XCX_TICKETS_DLC_V102J]
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
0x02B90654 = bla _ticketsDispBefore
|
||||
0x02B9B938 = bla _ticketsDispAfter ;
|
||||
0x023CBE48 = bla _ticketsValueJP
|
||||
0x023CBF2C = bla _ticketsValueJP
|
||||
|
||||
[XCX_TICKETS_DLC_V100U]
|
||||
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||
0x02B9468C = bla _ticketsDispBefore
|
||||
0x02B9FD2C = bla _ticketsDispAfter
|
||||
0x023CC5E4 = bla _ticketsValue
|
||||
|
||||
[XCX_TICKETS_DLC_V100J]
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
0x02B8DDA8 = bla _ticketsDispBefore
|
||||
0x02B98F68 = bla _ticketsDispAfter ;
|
||||
0x023CB978 = bla _ticketsValueJP
|
||||
0x023CBA5C = bla _ticketsValueJP
|
||||
|
@ -2,15 +2,15 @@
|
||||
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "Gain Reward Tickets from DLC or Time Attack missions"
|
||||
path = "Xenoblade Chronicles X/Mods/BLADE/Gain Reward Tickets from DLC or Time Attack missions"
|
||||
description = Adds Exchange Tickets in reward of completing Blade missions.
|
||||
version = 5
|
||||
description = Adds Exchange Tickets in reward of completing Blade missions.|This mod will not work if More Reward Tickets is enabled.
|
||||
version = 6
|
||||
|
||||
[Default]
|
||||
$mission = 5
|
||||
|
||||
[Preset]
|
||||
name = "Gain from DLC missions (money/100)"
|
||||
$mission = 2
|
||||
|
||||
[Preset]
|
||||
name = "Gain from TA missions (exp)"
|
||||
$mission = 2
|
||||
|
||||
[Preset]
|
||||
name = "Gain from DLC missions (money/100)"
|
||||
$mission = 5
|
||||
|
@ -1,8 +1,27 @@
|
||||
[XCX_OFFLINEWE]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
|
||||
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J
|
||||
.origin = codecave
|
||||
|
||||
; Manage RPs & Appraisal
|
||||
VarShareRP:
|
||||
.int 0
|
||||
;_shareAP = reloc(0x1039C174) ; (1.0.1E, 1.0.2U)
|
||||
VarShareAP:
|
||||
.int 0
|
||||
|
||||
_loadRP:
|
||||
lis r12, 0x0022
|
||||
ori r12, r12, 0x5510
|
||||
blr
|
||||
|
||||
; menu::CTerminalMenu_PieceExchange::offline((void))
|
||||
; Allow access to piece exchange from network console
|
||||
_single:
|
||||
li r3, 0
|
||||
blr
|
||||
|
||||
[XCX_OFFLINEWE_V101E_V102U] ; ######################################################################################
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
|
||||
; cfs::CfSocialManager::update((float))
|
||||
0x022879D0 = nop ; (network test?) allow call to cfs::CfSocialQuestManager::update((void))
|
||||
|
||||
@ -25,108 +44,142 @@ moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
|
||||
0x022863CC = nop ; or. r0, r6, r7
|
||||
0x02286474 = li r7, 1 ; for getWERewardList
|
||||
|
||||
; Manage RPs & Appraisal
|
||||
VarShareRP:
|
||||
.int 0
|
||||
;_shareAP = reloc(0x1039C174)
|
||||
VarShareAP:
|
||||
.int 0
|
||||
|
||||
_loadRP:
|
||||
lis r12, 0x0022
|
||||
ori r12, r12, 0x5510
|
||||
blr
|
||||
0x0282B2F0 = bla _loadRP ; __CPR86__getWorldEnemyInfo__Q2_2fw15SocialDataStoreCFUiRQ3_2fwJ25J14WorldEnemyInfo
|
||||
|
||||
; ######################################### TODO : get WERewardList (Telethia Stem Cell)
|
||||
|
||||
; cfs::CfSocialManager::getQuestDetailWE((cfs::CfSocialQuestInfoWE &))
|
||||
; |- __CPR95__getWorldEnemyInfoFromQuest__Q2_2fw15SocialDataStoreCFUiRQ3_2fwJ34J14WorldEnemyInfo
|
||||
0x0282B454 = li r3, 0 ; getWorldEnemyIndexFromQuestID / Uncomment to show Appraisal Rewards
|
||||
0x0282B454 = li r3, 0 ; getWorldEnemyIndexFromQuestID
|
||||
; |- |- __CPR86__getWorldEnemyInfo__Q2_2fw15SocialDataStoreCFUiRQ3_2fwJ25J14WorldEnemyInfo
|
||||
0x0282B0E4 = li r7, 1 ; cmpwi r7, 0
|
||||
0x0282B0FC = li r0, 1 ; cmpwi r0, 0
|
||||
0x0282B170 = li r6, 1 ; to store in 8(r26) -> needed for cmpwi r0, 1 after callback
|
||||
0x0282B264 = nop ; skip deserializeWorldEnemy
|
||||
0x0282B410 = li r4, 1 ; for getWERewardList
|
||||
|
||||
; cfs::CfSocialManager::getQuestDetailFR((cfs::CfSocialQuestInfoFR &))
|
||||
0x0228989C = nop ; Uncomment to show Appraisal Rewards
|
||||
|
||||
[XCX_OFFLINEWE_1E] ############################################################################################
|
||||
moduleMatches = 0xF882D5CF ; 1.0.1E
|
||||
|
||||
.origin = codecave
|
||||
|
||||
[XCX_OFFLINEWE_V101E] ; ############################################################################################
|
||||
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
|
||||
0x02AC5C10 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline
|
||||
; menu::MenuMultiQuestOrder::move((void))
|
||||
; skip BLADE medals requirement on launch mission
|
||||
0x02B9B0B0 = li r3, 1 ; Disable call to menu::MenuMultiQuestOrder::canOrderWorldEnemy
|
||||
|
||||
; menu::CTerminalMenu_PieceExchange::offline((void))
|
||||
; Allow access to piece exchange from network console
|
||||
_single:
|
||||
li r3, 0
|
||||
blr
|
||||
0x02AC613C = ba _single ; menu::CBladeHomuMenu::single((void))
|
||||
|
||||
; __CPR129__getMultiQuestReward__Q2_3cfs15CfSocialManagerCFUiRQ2_3mtl68fixed_vector__tm__48_Q3_3cfsJ28J11QuestRewardXCUiL_2_46T1 --> OK
|
||||
0x022CA324 = nop ; always all items?
|
||||
|
||||
[XCX_OFFLINEWE_2U] ############################################################################################
|
||||
[XCX_OFFLINEWE_V102U] ; ############################################################################################
|
||||
moduleMatches = 0x30B6E091 ; 1.0.2U
|
||||
|
||||
.origin = codecave
|
||||
|
||||
0x02AC5C00 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline
|
||||
|
||||
0x02B9B0A0 = li r3, 1 ; Disable call to menu::MenuMultiQuestOrder::canOrderWorldEnemy
|
||||
|
||||
;0x02BA0CE0 = bla _updateRP ; menu::MenuMultiQuestResult::updateEnemyBoss((menu::MenuObject *))
|
||||
0x02AC612C = ba _single ; menu::CBladeHomuMenu::single((void))
|
||||
0x022CA324 = nop ; always all items? ;;
|
||||
|
||||
_single:
|
||||
li r3, 0
|
||||
blr
|
||||
[XCX_OFFLINEWE_V102J] ; ############################################################################################
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
0x022873E8 = nop ; (network test?) allow call to cfs::CfSocialQuestManager::update((void))
|
||||
0x022C7A6C = nop ; network test : lwz r10, 0x1B0(r30) --> rlwinm. r9, r10, 0,30,30
|
||||
0x022C7A70 = nop ; network test
|
||||
|
||||
0x02AC612C = ba _single
|
||||
0x022C5C64 = li r3, 1 ; fw::SocialDataStore::getWorldEnemyCount(const(void))
|
||||
0x022C5C90 = li r3, 0x4EE9 ; Quest ID for WE - fw::SocialDataStore::getWorldEnemyQuest(const(unsigned int))
|
||||
0x022C5FB8 = li r3, 1 ; fw::SocialDataStore::getWorldEnemyCount(const(void))
|
||||
|
||||
[XCX_OFFLINEWE_1U] ############################################################################################
|
||||
moduleMatches = 0xAB97DE6B ; 1.0.1U
|
||||
0x022C60DC = li r3, 1 ; fw::SocialDataStore::getWorldEnemyCount(const(void))
|
||||
0x022C610C = li r3, 0x4EED
|
||||
0x022C6148 = nop ; network test?
|
||||
0x022C646C = li r3, 1 ; fw::SocialDataStore::getWorldEnemyCount(const(void))
|
||||
|
||||
.origin = codecave
|
||||
0x02285E0C = nop ; or. r0, r6, r7
|
||||
0x02285E34 = nop ; or. r0, r6, r7
|
||||
0x02285EDC = li r7, 1 ; for getWERewardList
|
||||
|
||||
0x028284C8 = bla _loadRP ; __CPR86__getWorldEnemyInfo__Q2_2fw15SocialDataStoreCFUiRQ3_2fwJ25J14WorldEnemyInfo
|
||||
|
||||
0x0282862C = li r3, 0 ; getWorldEnemyIndexFromQuestID
|
||||
0x028282BC = li r7, 1 ; cmpwi r7, 0
|
||||
0x028282D4 = li r0, 1 ; cmpwi r0, 0
|
||||
0x02828348 = li r6, 1 ; to store in 8(r26) -> needed for cmpwi r0, 1 after callback
|
||||
0x0282843C = nop ; skip deserializeWorldEnemy
|
||||
0x028285E8 = li r4, 1 ; for getWERewardList
|
||||
0x022892B4 = nop ; Uncomment to show Appraisal Rewards
|
||||
|
||||
0x02AC22D0 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline
|
||||
0x02B96BCC = li r3, 1 ; Disable call to menu::MenuMultiQuestOrder::canOrderWorldEnemy
|
||||
|
||||
0x02AC27FC = ba _single ; menu::CBladeHomuMenu::single((void))
|
||||
0x022C9D34 = nop ; always all items?
|
||||
|
||||
[XCX_OFFLINEWE_V100U] ; ############################################################################################
|
||||
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||
0x02287960 = nop ; (network test?) allow call to cfs::CfSocialQuestManager::update((void))
|
||||
0x02AC5B84 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline
|
||||
0x022C7FEC = nop ; network test : lwz r10, 0x1B0(r30) --> rlwinm. r9, r10, 0,30,30
|
||||
0x022C7FF0 = nop ; network test
|
||||
0x022C61E4 = li r3, 1 ; fw::SocialDataStore::getWorldEnemyCount(const(void))
|
||||
0x022C6210 = li r3, 0x4EE9 ; Quest ID for WE - fw::SocialDataStore::getWorldEnemyQuest(const(unsigned int))
|
||||
0x022C6538 = li r3, 1 ; fw::SocialDataStore::getWorldEnemyCount(const(void))
|
||||
0x022C668C = li r3, 1 ; fw::SocialDataStore::getWorldEnemyCount(const(void))
|
||||
|
||||
0x022C665C = li r3, 1 ; fw::SocialDataStore::getWorldEnemyCount(const(void))
|
||||
0x022C668C = li r3, 0x4EED
|
||||
0x022C66C8 = nop ; network test?
|
||||
0x022C69EC = li r3, 1 ; fw::SocialDataStore::getWorldEnemyCount(const(void))
|
||||
|
||||
0x022863A4 = nop ; or. r0, r6, r7
|
||||
0x022863CC = nop ; or. r0, r6, r7
|
||||
0x02286474 = li r7, 1 ; for getWERewardList
|
||||
|
||||
_loadRP:
|
||||
lis r12, 0x0022
|
||||
ori r12, r12, 0x5510
|
||||
blr
|
||||
0x0282B274 = bla _loadRP ; __CPR86__getWorldEnemyInfo__Q2_2fw15SocialDataStoreCFUiRQ3_2fwJ25J14WorldEnemyInfo
|
||||
|
||||
0x0282B3D8 = li r3, 0 ; getWorldEnemyIndexFromQuestID / Uncomment to show Appraisal Rewards
|
||||
0x0282B3D8 = li r3, 0 ; getWorldEnemyIndexFromQuestID
|
||||
0x0282B068 = li r7, 1 ; cmpwi r7, 0
|
||||
0x0282B080 = li r0, 1 ; cmpwi r0, 0
|
||||
0x0282B0F4 = li r6, 1 ; to store in 8(r26) -> needed for cmpwi r0, 1 after callback
|
||||
0x0282B1E8 = nop ; skip deserializeWorldEnemy
|
||||
0x0282B394 = li r4, 1 ; for getWERewardList
|
||||
0x0228982C = nop ; Uncomment to show Appraisal Rewards
|
||||
|
||||
0x02AC5B84 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline
|
||||
0x02B9AFB0 = li r3, 1 ; Disable call to menu::MenuMultiQuestOrder::canOrderWorldEnemy
|
||||
|
||||
_single:
|
||||
li r3, 0
|
||||
blr
|
||||
0x02AC60B0 = ba _single ; menu::CBladeHomuMenu::single((void))
|
||||
|
||||
0x022CA2B4 = nop ; always all items?
|
||||
|
||||
[XCX_OFFLINEWE_V100J] ; ############################################################################################
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
0x0228713C = nop ; (network test?) allow call to cfs::CfSocialQuestManager::update((void))
|
||||
0x022C78F8 = nop ; network test : lwz r10, 0x1B0(r30) --> rlwinm. r9, r10, 0,30,30
|
||||
0x022C78FC = nop ; network test
|
||||
|
||||
0x022C5AF0 = li r3, 1 ; fw::SocialDataStore::getWorldEnemyCount(const(void))
|
||||
0x022C5B1C = li r3, 0x4EE9 ; Quest ID for WE - fw::SocialDataStore::getWorldEnemyQuest(const(unsigned int))
|
||||
0x022C5E44 = li r3, 1 ; fw::SocialDataStore::getWorldEnemyCount(const(void))
|
||||
|
||||
0x022C5F68 = li r3, 1 ; fw::SocialDataStore::getWorldEnemyCount(const(void))
|
||||
0x022C5F98 = li r3, 0x4EED
|
||||
0x022C5FD4 = nop ; network test?
|
||||
0x022C62F8 = li r3, 1 ; fw::SocialDataStore::getWorldEnemyCount(const(void))
|
||||
|
||||
0x02285B60 = nop ; or. r0, r6, r7
|
||||
0x02285B88 = nop ; or. r0, r6, r7
|
||||
0x02285C30 = li r7, 1 ; for getWERewardList
|
||||
|
||||
0x0282749C = bla _loadRP ; __CPR86__getWorldEnemyInfo__Q2_2fw15SocialDataStoreCFUiRQ3_2fwJ25J14WorldEnemyInfo
|
||||
|
||||
0x02827600 = li r3, 0 ; getWorldEnemyIndexFromQuestID
|
||||
0x02827290 = li r7, 1 ; cmpwi r7, 0
|
||||
0x028272A8 = li r0, 1 ; cmpwi r0, 0
|
||||
0x0282731C = li r6, 1 ; to store in 8(r26) -> needed for cmpwi r0, 1 after callback
|
||||
0x02827410 = nop ; skip deserializeWorldEnemy
|
||||
0x028275BC = li r4, 1 ; for getWERewardList
|
||||
0x02289008 = nop ; Uncomment to show Appraisal Rewards
|
||||
|
||||
0x02AC04E8 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline
|
||||
0x02B94268 = li r3, 1 ; Disable call to menu::MenuMultiQuestOrder::canOrderWorldEnemy
|
||||
|
||||
0x02AC0A14 = ba _single ; menu::CBladeHomuMenu::single((void))
|
||||
0x022C9BC0 = nop ; always all items?
|
||||
|
@ -1,6 +1,6 @@
|
||||
[XCX_OFFLINEWE]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
|
||||
|
||||
; not porting this backup file to JP
|
||||
[XCX_OFFLINEWE_V101E_V102U]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
|
||||
.origin = codecave
|
||||
|
||||
; getServerTimeSec__Q2_2nt10CNetLibNexCFRUL
|
||||
@ -155,9 +155,8 @@ blr
|
||||
; A droite les items communs
|
||||
; A gauche les items si Nemesis battu
|
||||
|
||||
[XCX_OFFLINEWE_1E] ############################################################################################
|
||||
moduleMatches = 0xF882D5CF ; 1.0.1E
|
||||
|
||||
[XCX_OFFLINEWE_V101E] ; ############################################################################################
|
||||
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
|
||||
.origin = codecave
|
||||
|
||||
; menu::MenuMultiQuestOrder::move((void))
|
||||
@ -262,9 +261,8 @@ blr
|
||||
;02C23528
|
||||
;02C23530
|
||||
|
||||
[XCX_OFFLINEWE_2U] ############################################################################################
|
||||
[XCX_OFFLINEWE_V102U] ; ############################################################################################
|
||||
moduleMatches = 0x30B6E091 ; 1.0.2U
|
||||
|
||||
.origin = codecave
|
||||
|
||||
;0x02B9B0A0 = li r3, 1 ; Disable call to menu::MenuMultiQuestOrder::canOrderWorldEnemy
|
||||
@ -275,9 +273,8 @@ blr
|
||||
|
||||
0x02AC612C = ba _single
|
||||
|
||||
[XCX_OFFLINEWE_1U] ############################################################################################
|
||||
moduleMatches = 0xAB97DE6B ; 1.0.1U
|
||||
|
||||
[XCX_OFFLINEWE_V100U] ; ############################################################################################
|
||||
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||
.origin = codecave
|
||||
|
||||
; getServerTimeSec__Q2_2nt10CNetLibNexCFRUL
|
||||
@ -425,4 +422,3 @@ blr
|
||||
; __CPR129__getMultiQuestReward__Q2_3cfs15CfSocialManagerCFUiRQ2_3mtl68fixed_vector__tm__48_Q3_3cfsJ28J11QuestRewardXCUiL_2_46T1 --> OK
|
||||
; 0x022C9E88
|
||||
0x022CA324 = nop ; always all items?
|
||||
|
||||
|
@ -3,4 +3,4 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "Offline Global Nemesis missions"
|
||||
path = "Xenoblade Chronicles X/Mods/BLADE/Offline Global Nemesis missions"
|
||||
description = Global Nemesis (both Telethia Plume and Yggralith Zero) are available in the BLADE console.|You still need medals to start the battle.
|
||||
version = 5
|
||||
version = 6
|
||||
|
@ -1,8 +1,6 @@
|
||||
[XCX_UNLOCKPOSTSKELLS_ALL] ################################################################
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
|
||||
|
||||
[XCX_UNLOCKPOSTSKELLS]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J
|
||||
.origin = codecave
|
||||
|
||||
.int $miranium
|
||||
.int $resource
|
||||
.int $ignoreLevel
|
||||
@ -13,35 +11,47 @@ LbIgnoreLevel:
|
||||
li r3, 1
|
||||
blr
|
||||
|
||||
[XCX_UNLOCKPOSTSKELLS_1E] ################################################################
|
||||
moduleMatches = 0xF882D5CF ; 1.0.1E
|
||||
|
||||
[XCX_UNLOCKPOSTSKELLS_V101E]
|
||||
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
|
||||
; menu::MenuArmsCompanyDevelopSelectBlueprint::CheckEnableDevelop(const(int, bool))
|
||||
0x02A7A784 = li r3, $miranium
|
||||
0x02A7A954 = li r3, $resource
|
||||
|
||||
; menu::MenuArmsCompany::IsDollLicense(const(void))
|
||||
0x02A6B838 = li r3, 1 ; always returns true
|
||||
|
||||
; menu::MenuArmsCompanyDevelopSelectBlueprint::InitializeItemData((void))
|
||||
0x02A7B220 = li r30, 0 ; unlock everything
|
||||
|
||||
0x02AF8EA8 = b LbIgnoreLevel
|
||||
|
||||
[XCX_UNLOCKPOSTSKELLS_2U] ################################################################
|
||||
[XCX_UNLOCKPOSTSKELLS_V102U]
|
||||
moduleMatches = 0x30B6E091 ; 1.0.2U
|
||||
|
||||
0x02A6B828 = li r3, 1
|
||||
0x02A7B210 = li r30, 0
|
||||
0x02A7A774 = li r3, $miranium
|
||||
0x02A7A944 = li r3, $resource
|
||||
0x02A6B828 = li r3, 1 ; always returns true
|
||||
0x02A7B210 = li r30, 0 ; unlock everything
|
||||
0x02AF8E98 = b LbIgnoreLevel
|
||||
|
||||
[XCX_UNLOCKPOSTSKELLS_1U] ################################################################
|
||||
moduleMatches = 0xAB97DE6B ; 1.0.1U
|
||||
[XCX_UNLOCKPOSTSKELLS_V102J]
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
0x02A76CEC = li r3, $miranium
|
||||
0x02A76EBC = li r3, $resource
|
||||
0x02A67DA0 = li r3, 1 ; always returns true
|
||||
0x02A77788 = li r30, 0 ; unlock everything
|
||||
0x02AF54B8 = b LbIgnoreLevel
|
||||
|
||||
0x02A6B7AC = li r3, 1 ; always returns true
|
||||
0x02A7B194 = li r30, 0 ; unlock everything
|
||||
[XCX_UNLOCKPOSTSKELLS_V100U]
|
||||
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||
0x02A7A6F8 = li r3, $miranium
|
||||
0x02A7A8C8 = li r3, $resource
|
||||
0x02AF8E1C = b LbIgnoreLevel
|
||||
0x02A6B7AC = li r3, 1 ; always returns true
|
||||
0x02A7B194 = li r30, 0 ; unlock everything
|
||||
0x02AF8E1C = b LbIgnoreLevel
|
||||
|
||||
[XCX_UNLOCKPOSTSKELLS_V100J]
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
0x02A75124 = li r3, $miranium
|
||||
0x02A752F4 = li r3, $resource
|
||||
0x02A6626C = li r3, 1 ; always returns true
|
||||
0x02A75BC0 = li r30, 0 ; unlock everything
|
||||
0x02AF3444 = b LbIgnoreLevel
|
||||
|
@ -3,7 +3,7 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "Lv60 Skells unlocked"
|
||||
path = "Xenoblade Chronicles X/Mods/BLADE/Lv60 Skells unlocked"
|
||||
description = Lv60 Skells and equipment are unlocked and accessible right after you are a BLADE member.
|
||||
version = 5
|
||||
version = 6
|
||||
|
||||
[Default]
|
||||
$miranium = 2
|
||||
@ -17,4 +17,4 @@ name = Normal
|
||||
name = CHEAT - Ignore Miranium, resources and level requirements
|
||||
$miranium = 0
|
||||
$resource = 0
|
||||
$ignoreLevel = 0
|
||||
$ignoreLevel = 0
|
||||
|
@ -1,15 +1,11 @@
|
||||
[XCX_BLADE_MORETICKETS]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B, 0x7672271D ; 1.0.1E, 1.0.2U, 1.0.1U, 1.0.2J
|
||||
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J
|
||||
.origin = codecave
|
||||
|
||||
.int $mult
|
||||
.int $uncap
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : cfs::CfSocialManager::addTradeTicket((int, unsigned int))
|
||||
; WHAT : Multiply the reward tickets given in many occasions
|
||||
|
||||
_moreTickets:
|
||||
mr r30, r3
|
||||
cmpwi r4, 0
|
||||
@ -20,7 +16,6 @@ blr
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : cfs::CfSocialManager::addTradeTicket((int, unsigned int))
|
||||
; WHAT : Ignore the max number of tickets we can get
|
||||
|
||||
_uncapTickets:
|
||||
li r5, $uncap
|
||||
cmpwi r5, 1
|
||||
@ -31,7 +26,6 @@ blr
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : menu::MenuMultiQuestInfoWindow::displayInfo((menu::MenuObject *,bool))
|
||||
; WHAT :
|
||||
|
||||
_dispBefore:
|
||||
lhz r26, 0x8C(r1)
|
||||
mulli r26, r26, $mult
|
||||
@ -40,7 +34,6 @@ blr
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : menu::MenuMultiQuestResult::setup((void))
|
||||
; WHAT :
|
||||
|
||||
_dispAfter:
|
||||
lhz r5, 0x5778(r29)
|
||||
mulli r5, r5, $mult
|
||||
@ -49,7 +42,6 @@ blr
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : writeListTicket__Q2_4menu19MenuMultiQuestOrderFPQ2_4menu10MenuObjectiQ3_2fw9CItemType4TypeUsUiT5
|
||||
; WHAT : multiply tickets from piece exchange
|
||||
|
||||
_pieceExchange:
|
||||
mr r5, r29
|
||||
cmpwi r26, 0x1E
|
||||
@ -76,10 +68,10 @@ bnelr
|
||||
mulli r29, r29, $mult
|
||||
blr
|
||||
|
||||
#####################################################################################################
|
||||
[XCX_BLADE_MORETICKETS_1E]
|
||||
moduleMatches = 0xF882D5CF ; 1.0.1E
|
||||
|
||||
;#####################################################################################################
|
||||
[XCX_BLADE_MORETICKETS_V101E]
|
||||
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
|
||||
0x022CA86C = bla _moreTickets
|
||||
0x022CAC5C = bla _uncapTickets
|
||||
0x02B94718 = bla _dispBefore
|
||||
@ -88,10 +80,9 @@ moduleMatches = 0xF882D5CF ; 1.0.1E
|
||||
0x02B9C1EC = bla _dispExchangeInit
|
||||
0x02C7C07C = bla _dispExchangeUpdate
|
||||
|
||||
#####################################################################################################
|
||||
[XCX_BLADE_MORETICKETS_2U]
|
||||
;#####################################################################################################
|
||||
[XCX_BLADE_MORETICKETS_V102U]
|
||||
moduleMatches = 0x30B6E091 ; 1.0.2U
|
||||
|
||||
0x022CA86C = bla _moreTickets
|
||||
0x022CAC5C = bla _uncapTickets
|
||||
0x02B94708 = bla _dispBefore
|
||||
@ -100,10 +91,20 @@ moduleMatches = 0x30B6E091 ; 1.0.2U
|
||||
0x02B9C1DC = bla _dispExchangeInit
|
||||
0x02C7C01C = bla _dispExchangeUpdate
|
||||
|
||||
#####################################################################################################
|
||||
[XCX_BLADE_MORETICKETS_1U]
|
||||
moduleMatches = 0xAB97DE6B ; 1.0.1U
|
||||
;#####################################################################################################
|
||||
[XCX_BLADE_MORETICKETS_V102J]
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
0x022CA09C = bla _moreTickets
|
||||
0x022CA48C = bla _uncapTickets
|
||||
0x02B90654 = bla _dispBefore
|
||||
;0x02B9B938 = bla _dispAfter ;not working
|
||||
0x02B938A8 = bla _pieceExchange
|
||||
0x02B97D08 = bla _dispExchangeInit
|
||||
0x02C77570 = bla _dispExchangeUpdate
|
||||
|
||||
;#####################################################################################################
|
||||
[XCX_BLADE_MORETICKETS_V100U]
|
||||
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||
0x022CA7FC = bla _moreTickets
|
||||
0x022CABEC = bla _uncapTickets
|
||||
0x02B9468C = bla _dispBefore
|
||||
@ -112,14 +113,13 @@ moduleMatches = 0xAB97DE6B ; 1.0.1U
|
||||
0x02B9C0EC = bla _dispExchangeInit
|
||||
0x02C7BEA4 = bla _dispExchangeUpdate
|
||||
|
||||
#####################################################################################################
|
||||
[XCX_BLADE_MORETICKETS_2J]
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
|
||||
0x022CA09C = bla _moreTickets
|
||||
0x022CA48C = bla _uncapTickets
|
||||
0x02B90654 = bla _dispBefore
|
||||
0x02B9B948 = bla _dispAfter
|
||||
0x02B938A8 = bla _pieceExchange
|
||||
0x02B97D08 = bla _dispExchangeInit
|
||||
0x02C77FB8 = bla _dispExchangeUpdate
|
||||
;#####################################################################################################
|
||||
[XCX_BLADE_MORETICKETS_V100J]
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
0x022C9F28 = bla _moreTickets
|
||||
0x022CA318 = bla _uncapTickets
|
||||
0x02B8DDA8 = bla _dispBefore
|
||||
;0x02B98F68 = bla _dispAfter ;not working
|
||||
0x02B90F84 = bla _pieceExchange
|
||||
0x02B953A4 = bla _dispExchangeInit
|
||||
0x02C73A5C = bla _dispExchangeUpdate
|
||||
|
@ -3,7 +3,7 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "More Reward Tickets"
|
||||
path = "Xenoblade Chronicles X/Mods/BLADE/More Reward Tickets"
|
||||
description = Increase the Tickets gained with Squad tasks and missions.|Uncapped presets ignore max tickets.
|
||||
version = 5
|
||||
version = 6
|
||||
|
||||
[Default]
|
||||
$mult = 2
|
||||
@ -12,6 +12,10 @@ $uncap = 0
|
||||
[Preset]
|
||||
name = "Gain more Tickets (x2)"
|
||||
|
||||
[Preset]
|
||||
name = "Gain more Tickets (x3)"
|
||||
$mult = 3
|
||||
|
||||
[Preset]
|
||||
name = "Gain more Tickets (x5)"
|
||||
$mult = 5
|
||||
@ -20,6 +24,10 @@ $mult = 5
|
||||
name = "Gain more Tickets (x10)"
|
||||
$mult = 10
|
||||
|
||||
[Preset]
|
||||
name = "Gain more Tickets (x25)"
|
||||
$mult = 25
|
||||
|
||||
[Preset]
|
||||
name = "Gain more Tickets (x100)"
|
||||
$mult = 100
|
||||
@ -28,6 +36,10 @@ $mult = 100
|
||||
name = "Gain more Tickets (x1000)"
|
||||
$mult = 1000
|
||||
|
||||
[Preset]
|
||||
name = "Respawn Global Nemesis Yggralith Zero (x500000)"
|
||||
$mult = 500000
|
||||
|
||||
[Preset]
|
||||
name = Yes
|
||||
category = "Capped to BLADE level"
|
||||
@ -36,4 +48,3 @@ category = "Capped to BLADE level"
|
||||
name = No
|
||||
category = "Capped to BLADE level"
|
||||
$uncap = 1
|
||||
|
||||
|
@ -1,10 +1,48 @@
|
||||
[XCX_SQUADMISSIONS]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
|
||||
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J
|
||||
.origin = codecave
|
||||
.int $missionId
|
||||
|
||||
;#################### Activate Squad Tasks
|
||||
;######### Change Squad Mission using main menu
|
||||
VarSquadMission:
|
||||
.int 0
|
||||
|
||||
_iniPtr:
|
||||
li r5, 0
|
||||
lis r30, VarSquadMission@ha
|
||||
stw r5, VarSquadMission@l(r30)
|
||||
mr r30, r3
|
||||
blr
|
||||
|
||||
;######### Force Squad Mission number
|
||||
_forceMission:
|
||||
lmw r14, 0x1B8(r1)
|
||||
li r4, $missionId
|
||||
cmpwi r4, 0
|
||||
beqlr
|
||||
mr r3, r4
|
||||
blr
|
||||
|
||||
;######### Force Squad Mission number 1.0.0J --not working
|
||||
;_forceMissionJP:
|
||||
;lmw r15, 0x1AC(r1) ;
|
||||
;li r4, $missionId
|
||||
;cmpwi r4, 0
|
||||
;beqlr
|
||||
;mr r3, r4
|
||||
;blr
|
||||
|
||||
;######### Change Squad Mission using main menu
|
||||
_savePtr:
|
||||
li r3, 1
|
||||
lis r30, VarSquadMission@ha
|
||||
stw r3, VarSquadMission@l(r30)
|
||||
blr
|
||||
|
||||
|
||||
[XCX_SQUADMISSIONS_V101E_V102U]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
|
||||
;################## Activate Squad Tasks
|
||||
; cfs::CfSocialManager::update((float))
|
||||
0x022879D0 = nop ; (network test?) allow call to cfs::CfSocialQuestManager::update((void))
|
||||
|
||||
@ -17,8 +55,7 @@ moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
|
||||
0x023ABCAC = nop ; compare with 0x28 - UNLOCK
|
||||
0x023ABCB8 = nop ; compare with 0x2C - UNLOCK
|
||||
|
||||
;##################### BLADE Home Terminal (for Squad Quest Selection)
|
||||
|
||||
;################## BLADE Home Terminal (for Squad Quest Selection)
|
||||
; cfs::CfSocialManager::refreshOrderQuestInfo (called when select an entry in the BLADE menu)
|
||||
0x022C805C = nop ; test réseau : lwz r10, 0x1B0(r30) --> rlwinm. r9, r10, 0,30,30
|
||||
0x022C8060 = nop ; test réseau
|
||||
@ -26,18 +63,6 @@ moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
|
||||
; collectQuestInfoSQ__Q2_3cfs15CfSocialManagerFRQ2_2ml45resvector__tm__28_PQ2_3cfs17CfSocialQuestInfo
|
||||
0x022C58BC = nop ; rlwinm. r10, r11, 0,29,29
|
||||
|
||||
;#################### Change Squad Mission using main menu
|
||||
|
||||
VarSquadMission:
|
||||
.int 0
|
||||
|
||||
_iniPtr:
|
||||
li r5, 0
|
||||
lis r30, VarSquadMission@ha
|
||||
stw r5, VarSquadMission@l(r30)
|
||||
mr r30, r3
|
||||
blr
|
||||
|
||||
; cfs::CfSquadMissionManager::joinMission((cfs::CfSquadTargetCount const &))
|
||||
0x023B74A0 = bla _iniPtr
|
||||
|
||||
@ -45,59 +70,37 @@ blr
|
||||
0x023ABDF4 = _gotoTimeout:
|
||||
0x023ABE54 = _gotoNext:
|
||||
|
||||
0x023ABDC8 = lis r3, VarSquadMission@ha
|
||||
0x023ABDCC = lwz r7, VarSquadMission@l(r3)
|
||||
0x023ABDC8 = lis r3, VarSquadMission@ha
|
||||
0x023ABDCC = lwz r7, VarSquadMission@l(r3)
|
||||
0x023ABDD0 = cmpwi r7, 1
|
||||
0x023ABDD4 = beq _gotoTimeout
|
||||
0x023ABDD8 = b _gotoNext
|
||||
|
||||
#################### Force Squad Mission number
|
||||
.origin = codecave
|
||||
.int $missionId
|
||||
|
||||
_forceMission:
|
||||
lmw r14, 0x1B8(r1)
|
||||
li r4, $missionId
|
||||
cmpwi r4, 0
|
||||
beqlr
|
||||
mr r3, r4
|
||||
blr
|
||||
|
||||
0x023AB7C4 = bla _forceMission
|
||||
|
||||
#################### Change Squad Mission using main menu
|
||||
|
||||
_savePtr:
|
||||
li r3, 1
|
||||
lis r30, VarSquadMission@ha
|
||||
stw r3, VarSquadMission@l(r30)
|
||||
blr
|
||||
|
||||
#####################################################################################################
|
||||
[XCX_SQUADMISSIONS_1E]
|
||||
moduleMatches = 0xF882D5CF ; 1.0.1E
|
||||
;####################################################################################################
|
||||
[XCX_SQUADMISSIONS_V101E]
|
||||
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
|
||||
|
||||
; getServerTimeSec__Q2_2nt10CNetLibNexCFRUL
|
||||
0x0295EA10 = nop
|
||||
0x0295EA14 = li r0, 42
|
||||
|
||||
; menu::MenuSquadMission::process((void))
|
||||
0x02BFC7C0 = li r11, 1 ; garder affichée la liste des tasks en bas à droite
|
||||
|
||||
##################### BLADE Home Terminal (for Squad Quest Selection)
|
||||
0x02BFC7C0 = li r11, 1 ; garder affichée la liste des tasks en bas à droite ; keep displayed the list of tasks at the bottom right
|
||||
|
||||
;################## BLADE Home Terminal (for Squad Quest Selection)
|
||||
0x02AC5C10 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline
|
||||
|
||||
#################### Change Squad Mission using main menu
|
||||
|
||||
;################## Change Squad Mission using main menu
|
||||
0x02B85134 = bla _savePtr
|
||||
0x02B8514C = bla _savePtr
|
||||
|
||||
0x02B85084 = li r11, 1
|
||||
0x02B850A8 = li r11, 1
|
||||
|
||||
#####################################################################################################
|
||||
[XCX_SQUADMISSIONS_2U]
|
||||
;####################################################################################################
|
||||
[XCX_SQUADMISSIONS_V102U]
|
||||
moduleMatches = 0x30B6E091 ; 1.0.2U
|
||||
|
||||
; getServerTimeSec__Q2_2nt10CNetLibNexCFRUL
|
||||
@ -105,26 +108,58 @@ moduleMatches = 0x30B6E091 ; 1.0.2U
|
||||
0x0295EA04 = li r0, 42
|
||||
|
||||
; menu::MenuSquadMission::process((void))
|
||||
0x02BFC7B0 = li r11, 1
|
||||
|
||||
##################### BLADE Home Terminal (for Squad Quest Selection)
|
||||
0x02BFC7B0 = li r11, 1 ; garder affichée la liste des tasks en bas à droite ; keep displayed the list of tasks at the bottom right
|
||||
|
||||
;################## BLADE Home Terminal (for Squad Quest Selection)
|
||||
0x02AC5C00 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline
|
||||
|
||||
#################### Change Squad Mission using main menu
|
||||
|
||||
;################## Change Squad Mission using main menu
|
||||
0x02B85124 = bla _savePtr
|
||||
0x02B8513C = bla _savePtr
|
||||
|
||||
0x02B85074 = li r11, 1
|
||||
0x02B85098 = li r11, 1
|
||||
|
||||
#####################################################################################################
|
||||
[XCX_SQUADMISSIONS_1U]
|
||||
moduleMatches = 0xAB97DE6B ; 1.0.1U
|
||||
;####################################################################################################
|
||||
[XCX_SQUADMISSIONS_V102J]
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
0x022873E8 = nop ; (network test?) allow call to cfs::CfSocialQuestManager::update((void))
|
||||
0x023AB068 = nop ; 0x6B8(r12) == 0
|
||||
0x023AB098 = nop ; isHost
|
||||
0x023AB24C = li r5, 60 ; force 0x24 - UNLOCK
|
||||
0x023AB3F4 = nop ; isHost
|
||||
0x0239FCB8 = nop ; isHost
|
||||
0x023AB490 = nop ; compare with 0x28 - UNLOCK
|
||||
0x023AB49C = nop ; compare with 0x2C - UNLOCK
|
||||
0x022C7A6C = nop ; test réseau : lwz r10, 0x1B0(r30) --> rlwinm. r9, r10, 0,30,30
|
||||
0x022C7A70 = nop ; test réseau
|
||||
0x022C52CC = nop ; rlwinm. r10, r11, 0,29,29
|
||||
|
||||
.origin = codecave
|
||||
0x023B6C84 = bla _iniPtr
|
||||
|
||||
0x023AB5D8 = _gotoTimeout:
|
||||
0x023AB638 = _gotoNext:
|
||||
|
||||
0x023AB5AC = lis r3, VarSquadMission@ha
|
||||
0x023AB5B0 = lwz r7, VarSquadMission@l(r3)
|
||||
0x023AB5B4 = cmpwi r7, 1
|
||||
0x023AB5B8 = beq _gotoTimeout
|
||||
0x023AB5BC = b _gotoNext
|
||||
|
||||
0x023AAFA8 = bla _forceMission
|
||||
|
||||
0x0295B7EC = nop
|
||||
0x0295B7F0 = li r0, 42
|
||||
0x02BF81D0 = li r11, 1 ; garder affichée la liste des tasks en bas à droite ; keep displayed the list of tasks at the bottom right
|
||||
0x02AC22D0 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline
|
||||
0x02B81070 = bla _savePtr
|
||||
0x02B81088 = bla _savePtr
|
||||
0x02B80FC0 = li r11, 1
|
||||
0x02B80FE4 = li r11, 1
|
||||
|
||||
;####################################################################################################
|
||||
[XCX_SQUADMISSIONS_V100U]
|
||||
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||
0x02287960 = nop ; (network test?) allow call to cfs::CfSocialQuestManager::update((void))
|
||||
0x023AB814 = nop ; 0x6B8(r12) == 0
|
||||
0x023AB844 = nop ; isHost
|
||||
@ -137,53 +172,61 @@ moduleMatches = 0xAB97DE6B ; 1.0.1U
|
||||
0x022C7FF0 = nop ; test réseau
|
||||
0x022C584C = nop ; rlwinm. r10, r11, 0,29,29
|
||||
|
||||
VarSquadMission:
|
||||
.int 0
|
||||
|
||||
_iniPtr:
|
||||
li r5, 0
|
||||
lis r30, VarSquadMission@ha
|
||||
stw r5, VarSquadMission@l(r30)
|
||||
mr r30, r3
|
||||
blr
|
||||
|
||||
0x023B7430 = bla _iniPtr
|
||||
|
||||
0x023ABD84 = _gotoTimeout:
|
||||
0x023ABDE4 = _gotoNext:
|
||||
|
||||
0x023ABD58 = lis r3, VarSquadMission@ha
|
||||
0x023ABD5C = lwz r7, VarSquadMission@l(r3)
|
||||
0x023ABD58 = lis r3, VarSquadMission@ha
|
||||
0x023ABD5C = lwz r7, VarSquadMission@l(r3)
|
||||
0x023ABD60 = cmpwi r7, 1
|
||||
0x023ABD64 = beq _gotoTimeout
|
||||
0x023ABD68 = b _gotoNext
|
||||
|
||||
#################### Force Squad Mission number
|
||||
.int $missionId
|
||||
|
||||
_forceMission:
|
||||
lmw r14, 0x1B8(r1)
|
||||
li r4, $missionId
|
||||
cmpwi r4, 0
|
||||
beqlr
|
||||
mr r3, r4
|
||||
blr
|
||||
|
||||
0x023AB754 = bla _forceMission
|
||||
|
||||
#################### Change Squad Mission using main menu
|
||||
|
||||
_savePtr:
|
||||
li r3, 1
|
||||
lis r30, VarSquadMission@ha
|
||||
stw r3, VarSquadMission@l(r30)
|
||||
blr
|
||||
|
||||
0x0295E984 = nop
|
||||
0x0295E988 = li r0, 42
|
||||
0x02BFC6C0 = li r11, 1 ; garder affichée la liste des tasks en bas à droite
|
||||
0x02BFC6C0 = li r11, 1 ; garder affichée la liste des tasks en bas à droite ; keep displayed the list of tasks at the bottom right
|
||||
0x02AC5B84 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline
|
||||
0x02B850A8 = bla _savePtr
|
||||
0x02B850C0 = bla _savePtr
|
||||
0x02B84FF8 = li r11, 1
|
||||
0x02B8501C = li r11, 1
|
||||
0x02B8501C = li r11, 1
|
||||
|
||||
;####################################################################################################
|
||||
;[XCX_SQUADMISSIONS_V100J] ;;;;;; 1.0.0J broken, not working (';' is comment symbol)
|
||||
;moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
;0x0228713C = nop ; (network test?) allow call to cfs::CfSocialQuestManager::update((void))
|
||||
;0x023AAC20 = nop ; 0x6B8(r12) == 0
|
||||
;0x023AAC50 = nop ; isHost
|
||||
;0x023AADA4 = li r9, 60 ; force 0x24 - UNLOCK ;
|
||||
;0x023AAF4C = nop ; isHost
|
||||
;0x0239F9A4 = nop ; isHost
|
||||
;0x023AAFE8 = nop ; compare with 0x28 - UNLOCK
|
||||
;0x023AAFF4 = nop ; compare with 0x2C - UNLOCK
|
||||
;0x022C78F8 = nop ; test réseau : lwz r10, 0x1B0(r30) --> rlwinm. r9, r10, 0,30,30
|
||||
;0x022C78FC = nop ; test réseau
|
||||
;0x022C5158 = nop ; rlwinm. r10, r11, 0,29,29
|
||||
|
||||
;0x023B6168 = bla _iniPtr
|
||||
|
||||
;0x023AB134 = _gotoTimeout: ;
|
||||
;0x023AB194 = _gotoNext: ;
|
||||
|
||||
;0x023AB104 = lis r12, VarSquadMission@ha ;
|
||||
;0x023AB108 = lwz r12, VarSquadMission@l(r12) ;
|
||||
;0x023AB10C = cmpwi r12, 1 ;
|
||||
;0x023AB110 = beq _gotoTimeout
|
||||
;0x023AB114 = b _gotoNext
|
||||
|
||||
;0x023AAB68 = bla _forceMissionJP ;
|
||||
|
||||
;0x0295A05C = nop
|
||||
;0x0295A060 = li r0, 42
|
||||
;0x02BF5364 = li r11, 1 ; garder affichée la liste des tasks en bas à droite ; keep displayed the list of tasks at the bottom right
|
||||
;0x02AC04E8 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline
|
||||
;0x02B7EAC0 = bla _savePtr
|
||||
;0x02B7EAD8 = bla _savePtr
|
||||
;0x02B7EA10 = li r11, 1
|
||||
;0x02B7EA34 = li r11, 1
|
||||
|
@ -2,8 +2,8 @@
|
||||
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "Squad tasks and missions are available offline"
|
||||
path = "Xenoblade Chronicles X/Mods/BLADE/Offline Squad tasks and missions"
|
||||
description = Squad tasks and missions are available offline. Presets allow to select a Squad Mission, or you can use [Social > Squad Select] menu for random selection.
|
||||
version = 5
|
||||
description = Squad tasks and missions are available offline. Presets allow to select a Squad Mission, or you can use [Social > Squad Select] menu for random selection.||Recommended to be combined with More Reward Tickets (x5).
|
||||
version = 6
|
||||
|
||||
[Default]
|
||||
$missionId = 0
|
||||
@ -77,16 +77,36 @@ $missionId = 16
|
||||
|
||||
[Preset]
|
||||
name = "N17: Monoceros,Brambloo Shoot(c),Progen,Visigel,Jia Mian(t)"
|
||||
$missionId = 17
|
||||
$missionId = 20
|
||||
|
||||
[Preset]
|
||||
name = "N18: Sacrifole,Jacul,Dieter(t),Arenatect,Zig"
|
||||
$missionId = 18
|
||||
$missionId = 21
|
||||
|
||||
[Preset]
|
||||
name = "N19: Aprica,Sylooth,Tectinsula,Xe-dom,Coronid"
|
||||
$missionId = 19
|
||||
$missionId = 22
|
||||
|
||||
[Preset]
|
||||
name = "N20: Aeviter,Vigent,Virago,Tersqual,Myuena Cactus(c)"
|
||||
$missionId = 20
|
||||
$missionId = 23
|
||||
|
||||
[Preset]
|
||||
name = "N21: Unused squad mission"
|
||||
$missionId = 17
|
||||
|
||||
[Preset]
|
||||
name = "N22: Unused squad mission"
|
||||
$missionId = 18
|
||||
|
||||
[Preset]
|
||||
name = "N23: Unused squad mission"
|
||||
$missionId = 19
|
||||
|
||||
[Preset]
|
||||
name = "N24: Unused squad mission"
|
||||
$missionId = 24
|
||||
|
||||
[Preset]
|
||||
name = "N25: Unused squad mission"
|
||||
$missionId = 25
|
||||
|
@ -1,24 +1,22 @@
|
||||
[XCX_COLLECTIBLESRANGE_ALL]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
|
||||
|
||||
[XCX_COLLECTIBLESRANGE]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J
|
||||
.origin = codecave
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : cfs::CfPopManagerItem::updateTouchItem((void))
|
||||
; WHAT : Initialize collectibles distance
|
||||
|
||||
_rangeInnerConst:
|
||||
.float 40.0
|
||||
.float $rangeinner
|
||||
_heightInnerConst:
|
||||
.float 8.0
|
||||
.float $heightinner
|
||||
_rangeDollConst:
|
||||
.float 64.0
|
||||
.float $rangedoll
|
||||
_heightDollConst:
|
||||
.float 64.0
|
||||
.float $heightdoll
|
||||
_rangeFlightConst:
|
||||
.float 64.0
|
||||
.float $rangeflight
|
||||
_heightFlightConst:
|
||||
.float 52.0
|
||||
.float $heightflight
|
||||
|
||||
_itemRangeInner:
|
||||
lis r5, _rangeInnerConst@ha
|
||||
@ -56,9 +54,9 @@ lfs f0, _heightFlightConst@l(r5)
|
||||
fadd f0, f13, f0
|
||||
blr
|
||||
|
||||
[XCX_COLLECTIBLESRANGE] #################################################################################################
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
|
||||
|
||||
[XCX_COLLECTIBLESRANGE_V101E_V102U]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
|
||||
0x02389B80 = bla _itemRangeInner
|
||||
0x02389BB8 = bla _itemHeightInner
|
||||
0x02389C3C = bla _itemRangeDoll
|
||||
@ -66,12 +64,29 @@ moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
|
||||
0x02389CEC = bla _itemRangeFlight
|
||||
0x02389D30 = bla _itemHeightFlight
|
||||
|
||||
[XCX_COLLECTIBLESRANGE_1U] #################################################################################################
|
||||
moduleMatches = 0xAB97DE6B ; 1.0.1U
|
||||
[XCX_COLLECTIBLESRANGE_V102J]
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
0x023893B4 = bla _itemRangeInner
|
||||
0x023893EC = bla _itemHeightInner
|
||||
0x02389470 = bla _itemRangeDoll
|
||||
0x023894A8 = bla _itemHeightDoll
|
||||
0x02389520 = bla _itemRangeFlight
|
||||
0x02389564 = bla _itemHeightFlight
|
||||
|
||||
[XCX_COLLECTIBLESRANGE_V100U]
|
||||
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||
0x02389B10 = bla _itemRangeInner
|
||||
0x02389B48 = bla _itemHeightInner
|
||||
0x02389BCC = bla _itemRangeDoll
|
||||
0x02389C04 = bla _itemHeightDoll
|
||||
0x02389C7C = bla _itemRangeFlight
|
||||
0x02389CC0 = bla _itemHeightFlight
|
||||
|
||||
[XCX_COLLECTIBLESRANGE_V100J]
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
0x02389240 = bla _itemRangeInner
|
||||
0x02389278 = bla _itemHeightInner
|
||||
0x023892FC = bla _itemRangeDoll
|
||||
0x02389334 = bla _itemHeightDoll
|
||||
0x023893AC = bla _itemRangeFlight
|
||||
0x023893F0 = bla _itemHeightFlight
|
||||
|
@ -2,5 +2,25 @@
|
||||
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "Catch range mod"
|
||||
path = "Xenoblade Chronicles X/Mods/Collectibles/Catch range mod"
|
||||
description = Increase the distance from which collectibles are looted (no preset needed).
|
||||
version = 5
|
||||
description = Increase the distance from which collectibles are grabbed.
|
||||
version = 6
|
||||
|
||||
[Default]
|
||||
$rangeinner = 40.0
|
||||
$heightinner = 8.0
|
||||
$rangedoll = 64.0
|
||||
$heightdoll = 64.0
|
||||
$rangeflight = 64.0
|
||||
$heightflight = 52.0
|
||||
|
||||
[Preset]
|
||||
name = Big Range
|
||||
|
||||
[Preset]
|
||||
name = Bigger Range
|
||||
$rangeinner = 80.0
|
||||
$heightinner = 16.0
|
||||
$rangedoll = 128.0
|
||||
$heightdoll = 128.0
|
||||
$rangeflight = 128.0
|
||||
$heightflight = 104.0
|
||||
|
@ -1,23 +1,29 @@
|
||||
[XCX_NOITEMSELL]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
|
||||
|
||||
[XCX_NOITEMSELL_V101E_V102U]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : addItem__Q2_3cfs9CfItemBoxSFQ3_2fw9CItemType4TypeUiRQ2_3cfs12CfItemHandle
|
||||
; WHAT : instead of selling item, return 0 (no systemlog)
|
||||
|
||||
0x02365A94 = li r31, 0 ; sellItem
|
||||
|
||||
0x02365A94 = li r31, $mod ; sellItem
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : cfs::CfPopManagerItem::updateTouchItem((void))
|
||||
; WHAT : exit code if addItem returns 0 (blue gem not collected and no sound)
|
||||
|
||||
0x0238A1BC = _exit:
|
||||
0x02389EF8 = beq _exit
|
||||
|
||||
[XCX_NOITEMSELL_1U] ######################################################################
|
||||
moduleMatches = 0xAB97DE6B ; 1.0.1U
|
||||
|
||||
0x02365A24 = li r31, 0 ; sellItem
|
||||
[XCX_NOITEMSELL_V102J]
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
0x023652C8 = li r31, $mod ; sellItem
|
||||
0x023899F0 = _exit:
|
||||
0x0238972C = beq _exit
|
||||
|
||||
[XCX_NOITEMSELL_V100U]
|
||||
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||
0x02365A24 = li r31, $mod ; sellItem
|
||||
0x0238A14C = _exit:
|
||||
0x02389E88 = beq _exit
|
||||
|
||||
[XCX_NOITEMSELL_V100J]
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
0x02365154 = li r31, $mod ; sellItem
|
||||
0x0238987C = _exit:
|
||||
0x023895B8 = beq _exit
|
||||
|
@ -2,6 +2,15 @@
|
||||
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "Ignore 100th"
|
||||
path = "Xenoblade Chronicles X/Mods/Collectibles/Ignore 100th"
|
||||
description = Do not collect if you have 99 of the items, and don't sell it (no preset needed).
|
||||
version = 5
|
||||
|
||||
description = Ignore items past 99|Do not collect if you have 99 of the item, and don't sell it.||Collect items past 99|Collect even if you have 99 of the item, does not give any extra items.
|
||||
version = 6
|
||||
|
||||
[Default]
|
||||
$mod = 0
|
||||
|
||||
[Preset]
|
||||
name = Ignore items past 99
|
||||
|
||||
[Preset]
|
||||
name = Collect items past 99
|
||||
$mod = 1
|
||||
|
@ -1,18 +1,22 @@
|
||||
[XCX_MAXSLOTS_1E] ######################################################################
|
||||
moduleMatches = 0xF882D5CF ; 1.0.1E
|
||||
|
||||
[XCX_MAXSLOTS_V101E]
|
||||
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : Cshop::updateLuItem((void))
|
||||
; WHAT : max 3 slots per armor L shop
|
||||
|
||||
0x02A3AA18 = li r0, 3
|
||||
|
||||
[XCX_MAXSLOTS_2U] ######################################################################
|
||||
moduleMatches = 0x30B6E091 ;1.0.2U
|
||||
|
||||
[XCX_MAXSLOTS_V102U]
|
||||
moduleMatches = 0x30B6E091 ; 1.0.2U
|
||||
0x02A3AA08 = li r0, 3
|
||||
|
||||
[XCX_MAXSLOTS_1U] ######################################################################
|
||||
moduleMatches = 0xAB97DE6B ; 1.0.1U
|
||||
[XCX_MAXSLOTS_V102J]
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
0x02A3721C = li r0, 3 ;
|
||||
|
||||
0x02A3A98C = li r0, 3
|
||||
[XCX_MAXSLOTS_V100U]
|
||||
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||
0x02A3A98C = li r0, 3
|
||||
|
||||
[XCX_MAXSLOTS_V100J]
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
0x02A35764 = li r0, 3 ;
|
||||
|
@ -3,4 +3,4 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "Armors can have 3 augment slots"
|
||||
path = "Xenoblade Chronicles X/Mods/Equipment/Armors can have 3 augment slots"
|
||||
description = Using L's shop, you can have 3 augment slots on your EQUIPPED armors (ground and skell).
|
||||
version = 5
|
||||
version = 6
|
||||
|
@ -1,8 +1,6 @@
|
||||
[XCX_UPGRADENOLIMIT_ALL] ################################################################
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
|
||||
|
||||
[XCX_UPGRADENOLIMIT]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J
|
||||
.origin = codecave
|
||||
|
||||
.int $checkSelectItem
|
||||
.int $checkStrengthen
|
||||
|
||||
@ -23,30 +21,26 @@ lwz r3, VarUpgradeCount@l(r3)
|
||||
cmpwi r3, 0xF
|
||||
blr
|
||||
|
||||
[XCX_UPGRADENOLIMIT_1E] ################################################################
|
||||
moduleMatches = 0xF882D5CF ; 1.0.1E
|
||||
|
||||
[XCX_UPGRADENOLIMIT_V101E] ; ################################################################
|
||||
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : menu::MenuArmsCompanyAffixSelectItem::CheckAffixStrengthen
|
||||
; WHAT : Unlimited upgrades (equipment selection menu)
|
||||
|
||||
0x02A6DCA8 = li r3, 0 ; Ignore upgrades counter
|
||||
0x02A6DFFC = li r3, $checkSelectItem
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : menu::MenuArmsCompanyAffixStrengthen::CheckAffixStrengthen
|
||||
; WHAT : Unlimited upgrades (affix selection menu)
|
||||
|
||||
0x02A72134 = li r10, 99 ; Ignore upgrades counter
|
||||
0x02A723B4 = li r3, $checkStrengthen
|
||||
|
||||
0x02A71F38 = bla SaveUpgradeCount
|
||||
0x02A7218C = bla CtrlUpgradeCount
|
||||
|
||||
[XCX_UPGRADENOLIMIT_2U] ################################################################
|
||||
[XCX_UPGRADENOLIMIT_V102U] ; ################################################################
|
||||
moduleMatches = 0x30B6E091 ; 1.0.2U
|
||||
|
||||
|
||||
0x02A6DC98 = li r3, 0
|
||||
0x02A6DFEC = li r3, $checkSelectItem
|
||||
|
||||
@ -56,9 +50,19 @@ moduleMatches = 0x30B6E091 ; 1.0.2U
|
||||
0x02A71F28 = bla SaveUpgradeCount
|
||||
0x02A7217C = bla CtrlUpgradeCount
|
||||
|
||||
[XCX_UPGRADENOLIMIT_1U] ################################################################
|
||||
moduleMatches = 0xAB97DE6B ; 1.0.1U
|
||||
[XCX_UPGRADENOLIMIT_V102J] ; ################################################################
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
0x02A6A210 = li r3, 0 ; Ignore upgrades counter
|
||||
0x02A6A564 = li r3, $checkSelectItem
|
||||
|
||||
0x02A6E69C = li r10, 99 ; Ignore upgrades counter
|
||||
0x02A6E91C = li r3, $checkStrengthen
|
||||
|
||||
0x02A6E4A0 = bla SaveUpgradeCount
|
||||
0x02A6E6F4 = bla CtrlUpgradeCount
|
||||
|
||||
[XCX_UPGRADENOLIMIT_V100U] ; ################################################################
|
||||
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||
0x02A6DC1C = li r3, 0 ; Ignore upgrades counter
|
||||
0x02A6DF70 = li r3, $checkSelectItem
|
||||
|
||||
@ -67,3 +71,15 @@ moduleMatches = 0xAB97DE6B ; 1.0.1U
|
||||
|
||||
0x02A71EAC = bla SaveUpgradeCount
|
||||
0x02A72100 = bla CtrlUpgradeCount
|
||||
|
||||
[XCX_UPGRADENOLIMIT_V100J] ; ################################################################
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
|
||||
0x02A686DC = li r3, 0 ; Ignore upgrades counter
|
||||
0x02A68A30 = li r3, $checkSelectItem
|
||||
|
||||
0x02A6CB2C = li r10, 99 ; Ignore upgrades counter
|
||||
0x02A6CDAC = li r3, $checkStrengthen
|
||||
|
||||
0x02A6C930 = bla SaveUpgradeCount
|
||||
0x02A6CB84 = bla CtrlUpgradeCount
|
||||
|
@ -3,7 +3,7 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "Unlimited augment upgrades"
|
||||
path = "Xenoblade Chronicles X/Mods/Equipment/Unlimited augment upgrades"
|
||||
description = You can upgrade infinitely all the augments inside a piece of equipment.
|
||||
version = 5
|
||||
version = 6
|
||||
|
||||
[Default]
|
||||
$checkSelectItem = 5
|
||||
|
@ -1,8 +1,6 @@
|
||||
[XCX_UNLOCKAUGMENTS_ALL] ################################################################
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
|
||||
|
||||
[XCX_UNLOCKAUGMENTS]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J
|
||||
.origin = codecave
|
||||
|
||||
.int $checkIgnoreMiranium
|
||||
.int $checkIgnoreMaterials
|
||||
|
||||
@ -20,13 +18,12 @@ exit_cmq:
|
||||
stb r3, 0xC(r1)
|
||||
blr
|
||||
|
||||
[XCX_UNLOCKAUGMENTS_1E] ################################################################
|
||||
moduleMatches = 0xF882D5CF ; 1.0.1E
|
||||
|
||||
[XCX_UNLOCKAUGMENTS_V101E] ; ################################################################
|
||||
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : menu::MenuArmsCompanyDeviceList::CheckEnableCreateByDeviceID
|
||||
; WHAT : Unlimited augments
|
||||
|
||||
0x02A817A0 = li r3, 0 ; all augments are known
|
||||
0x02A817C8 = li r3, $checkIgnoreMiranium ; ignore miranium requirement
|
||||
0x02A81A3C = li r3, $checkIgnoreMaterials ; ignore materials requirement
|
||||
@ -36,9 +33,8 @@ moduleMatches = 0xF882D5CF ; 1.0.1E
|
||||
0x02A81478 = bla ChangeMaterialsQuantity
|
||||
0x02A814E4 = bla ChangeMaterialsQuantity
|
||||
|
||||
[XCX_UNLOCKAUGMENTS_2U] ################################################################
|
||||
[XCX_UNLOCKAUGMENTS_V102U] ; ################################################################
|
||||
moduleMatches = 0x30B6E091 ; 1.0.2U
|
||||
|
||||
0x02A81790 = li r3, 0
|
||||
0x02A817B8 = li r3, $checkIgnoreMiranium
|
||||
0x02A81A2C = li r3, $checkIgnoreMaterials
|
||||
@ -48,9 +44,19 @@ moduleMatches = 0x30B6E091 ; 1.0.2U
|
||||
0x02A81468 = bla ChangeMaterialsQuantity
|
||||
0x02A814D4 = bla ChangeMaterialsQuantity
|
||||
|
||||
[XCX_UNLOCKAUGMENTS_1U] ################################################################
|
||||
moduleMatches = 0xAB97DE6B ; 1.0.1U
|
||||
[XCX_UNLOCKAUGMENTS_V102J] ; ################################################################
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
0x02A7DD08 = li r3, 0
|
||||
0x02A7DD30 = li r3, $checkIgnoreMiranium
|
||||
0x02A7DFA4 = li r3, $checkIgnoreMaterials
|
||||
|
||||
0x02A7D96C = bla ChangeMaterialsQuantity
|
||||
0x02A7D970 = cmpwi r31, 0
|
||||
0x02A7D9E0 = bla ChangeMaterialsQuantity
|
||||
0x02A7DA4C = bla ChangeMaterialsQuantity
|
||||
|
||||
[XCX_UNLOCKAUGMENTS_V100U] ; ################################################################
|
||||
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||
0x02A81714 = li r3, 0
|
||||
0x02A8173C = li r3, $checkIgnoreMiranium
|
||||
0x02A819B0 = li r3, $checkIgnoreMaterials
|
||||
@ -59,3 +65,14 @@ moduleMatches = 0xAB97DE6B ; 1.0.1U
|
||||
0x02A8137C = cmpwi r31, 0
|
||||
0x02A813EC = bla ChangeMaterialsQuantity
|
||||
0x02A81458 = bla ChangeMaterialsQuantity
|
||||
|
||||
[XCX_UNLOCKAUGMENTS_V100J] ; ################################################################
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
0x02A7C108 = li r3, 0
|
||||
0x02A7C130 = li r3, $checkIgnoreMiranium
|
||||
0x02A7C3A4 = li r3, $checkIgnoreMaterials
|
||||
|
||||
0x02A7BD6C = bla ChangeMaterialsQuantity
|
||||
0x02A7BD70 = cmpwi r31, 0
|
||||
0x02A7BDE0 = bla ChangeMaterialsQuantity
|
||||
0x02A7BE4C = bla ChangeMaterialsQuantity
|
||||
|
@ -3,7 +3,7 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "Unlock all augments"
|
||||
path = "Xenoblade Chronicles X/Mods/Equipment/Unlock all augments"
|
||||
description = All the augments are already known at the shop, and with the CHEAT preset they cost nothing.
|
||||
version = 5
|
||||
version = 6
|
||||
|
||||
[Default]
|
||||
$checkIgnoreMiranium = 5
|
||||
@ -16,4 +16,3 @@ name = "Normal"
|
||||
name = "CHEAT - Ignore Miranium and resources requirements"
|
||||
$checkIgnoreMiranium = 0
|
||||
$checkIgnoreMaterials = 0
|
||||
|
||||
|
@ -1,14 +1,11 @@
|
||||
[XCX_BATTLEPOINTSX_ALL] ############################################################################
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
|
||||
|
||||
[XCX_BATTLEPOINTSX]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J
|
||||
.origin = codecave
|
||||
|
||||
.int $mod
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : addClassExpChara__Q2_6Battle14CBattleManagerFUiT1
|
||||
; WHAT : Multiply the battle points gained when a new class level is reached
|
||||
|
||||
_exp:
|
||||
li r3, $mod
|
||||
mullw r0, r0, r3
|
||||
@ -18,7 +15,6 @@ blr
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : addInnerExpChara__Q2_6Battle14CBattleManagerFUiN21
|
||||
; WHAT : Multiply the battle points gained when a new level is reached
|
||||
|
||||
_exp2:
|
||||
li r4, $mod
|
||||
mullw r9, r9, r4
|
||||
@ -28,7 +24,6 @@ blr
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : addTreasure__Q2_3cfs10CfTBoxUtilSFUib
|
||||
; WHAT : Multiply the battle points given by treasures or exploration
|
||||
|
||||
_expTreasure:
|
||||
li r3, $mod
|
||||
mullw r3, r31, r3
|
||||
@ -38,7 +33,6 @@ blr
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : addReward__Q2_3cfs11CfSquadUtilSFUiT1
|
||||
; WHAT : Multiply the experience points given by Squad missions
|
||||
|
||||
_expSquadValue:
|
||||
li r4, $mod
|
||||
mullw r3, r3, r4
|
||||
@ -48,7 +42,6 @@ blr
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : menu::MenuMultiQuestInfoWindow::displayInfo((menu::MenuObject *,bool))
|
||||
; WHAT : Multiply the battle points displayed in quest popup information.
|
||||
|
||||
_dispBefore:
|
||||
lhz r24, 0x90(r1)
|
||||
li r25, $mod
|
||||
@ -58,16 +51,15 @@ blr
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : menu::MenuMultiQuestResult::setup((void))
|
||||
; WHAT : Multiply the battle points displayed in quest popup results.
|
||||
|
||||
_dispAfter:
|
||||
li r5, $mod
|
||||
mullw r3, r3, r5
|
||||
stw r3, 0x7C(r1)
|
||||
blr
|
||||
|
||||
[XCX_BATTLEPOINTSX_1E] ############################################################################
|
||||
moduleMatches = 0xF882D5CF ; 1.0.1E
|
||||
|
||||
[XCX_BATTLEPOINTSX_V101E] ; ############################################################################
|
||||
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
|
||||
0x020C4A74 = bla _exp
|
||||
0x020C1C48 = bla _exp2
|
||||
0x022D8EDC = bla _expTreasure
|
||||
@ -76,11 +68,8 @@ moduleMatches = 0xF882D5CF ; 1.0.1E
|
||||
0x02B94730 = bla _dispBefore
|
||||
0x02B9FEE0 = bla _dispAfter
|
||||
|
||||
[XCX_BATTLEPOINTSX_2U] ############################################################################
|
||||
[XCX_BATTLEPOINTSX_V102U] ; ############################################################################
|
||||
moduleMatches = 0x30B6E091 ; 1.0.2U
|
||||
|
||||
.origin = codecave
|
||||
|
||||
0x020C4A74 = bla _exp
|
||||
0x020C1C48 = bla _exp2
|
||||
0x022D8EDC = bla _expTreasure
|
||||
@ -89,13 +78,32 @@ moduleMatches = 0x30B6E091 ; 1.0.2U
|
||||
0x02B94720 = bla _dispBefore
|
||||
0x02B9FED0 = bla _dispAfter
|
||||
|
||||
[XCX_BATTLEPOINTSX_1U] ############################################################################
|
||||
moduleMatches = 0xAB97DE6B ; 1.0.1U
|
||||
[XCX_BATTLEPOINTSX_V102J] ; ############################################################################
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
0x020C4540 = bla _exp
|
||||
0x020C1714 = bla _exp2
|
||||
0x022D870C = bla _expTreasure
|
||||
0x023CBDD4 = bla _expSquadValue
|
||||
0x023CBEB8 = bla _expSquadValue
|
||||
0x02B9066C = bla _dispBefore
|
||||
0x02B9B998 = bla _dispAfter
|
||||
|
||||
[XCX_BATTLEPOINTSX_V100U] ; ############################################################################
|
||||
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||
0x020C4A74 = bla _exp
|
||||
0x020C1C48 = bla _exp2
|
||||
0x022D8E6C = bla _expTreasure
|
||||
0x023CC700 = bla _expSquadValue
|
||||
0x023CC700 = bla _expSquadValue
|
||||
0x023CC7C4 = bla _expSquadValue
|
||||
0x02B946A4 = bla _dispBefore
|
||||
0x02B9FDE0 = bla _dispAfter
|
||||
|
||||
[XCX_BATTLEPOINTSX_V100J] ; ############################################################################
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
0x020C42BC = bla _exp
|
||||
0x020C1490 = bla _exp2
|
||||
0x022D8598 = bla _expTreasure
|
||||
0x023CB904 = bla _expSquadValue
|
||||
0x023CB9E8 = bla _expSquadValue
|
||||
0x02B8DDBC = bla _dispBefore
|
||||
0x02B98FC4 = bla _dispAfter
|
||||
|
@ -3,7 +3,7 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "Battle Points X"
|
||||
path = "Xenoblade Chronicles X/Mods/Experience/Battle Points"
|
||||
description = Change the amount of Battle points gained when a new level (or class level) is reached, when completing missions or exploring.
|
||||
version = 5
|
||||
version = 6
|
||||
|
||||
[Default]
|
||||
$mod = 2
|
||||
@ -11,6 +11,10 @@ $mod = 2
|
||||
[Preset]
|
||||
name = "Quantity x2"
|
||||
|
||||
[Preset]
|
||||
name = "Quantity x3"
|
||||
$mod = 3
|
||||
|
||||
[Preset]
|
||||
name = "Quantity x5"
|
||||
$mod = 5
|
||||
@ -30,4 +34,3 @@ $mod = 100
|
||||
[Preset]
|
||||
name = "Quantity x1000"
|
||||
$mod = 1000
|
||||
|
||||
|
@ -1,23 +1,35 @@
|
||||
[XCX_BLADEX]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
|
||||
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J
|
||||
.origin = codecave
|
||||
|
||||
.int $mod
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : fw::SocialUnion::getUnionBasePoint((int))
|
||||
; WHAT : Multiply the BLADE points rewarded
|
||||
|
||||
[XCX_BLADEX_V101E]
|
||||
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
|
||||
0x0288E610 = nop
|
||||
0x02E0C5B0 = li r3, -1
|
||||
0x0288E614 = li r3, $mod
|
||||
|
||||
[XCX_BLADEX_1U] ######################################################################
|
||||
moduleMatches = 0xAB97DE6B ; 1.0.1U
|
||||
[XCX_BLADEX_V102U]
|
||||
moduleMatches = 0x30B6E091 ; 1.0.2U
|
||||
0x0288E610 = nop
|
||||
0x02E0C550 = li r3, -1
|
||||
0x0288E614 = li r3, $mod
|
||||
|
||||
.origin = codecave
|
||||
|
||||
.int $mod
|
||||
;[XCX_BLADEX_V102J]
|
||||
;moduleMatches = 0x7672271D ; 1.0.2J
|
||||
;0x = nop ; broken
|
||||
;0x = li r3, -1 ; broken
|
||||
;0x = li r3, $mod ; broken
|
||||
|
||||
[XCX_BLADEX_V100U]
|
||||
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||
0x0288E594 = nop
|
||||
0x0288E598 = li r3, $mod
|
||||
0x02E0C3D8 = li r3, -1
|
||||
0x0288E598 = li r3, $mod
|
||||
|
||||
;[XCX_BLADEX_V100J]
|
||||
;moduleMatches = 0x785CA8A9 ; 1.0.0J ;;;
|
||||
;getUnionBasePoint__Q2_2fw11SocialUnionFi does not exist
|
||||
|
@ -3,7 +3,7 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "BLADE Points X"
|
||||
path = "Xenoblade Chronicles X/Mods/Experience/BLADE Points"
|
||||
description = Change the amount of BLADE points gained in various situations.
|
||||
version = 5
|
||||
version = 6
|
||||
|
||||
[Default]
|
||||
$mod = 2
|
||||
@ -11,6 +11,10 @@ $mod = 2
|
||||
[Preset]
|
||||
name = "x2"
|
||||
|
||||
[Preset]
|
||||
name = "x3"
|
||||
$mod = 3
|
||||
|
||||
[Preset]
|
||||
name = "x5"
|
||||
$mod = 5
|
||||
|
@ -1,14 +1,11 @@
|
||||
[XCX_CLASSEXPX]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
|
||||
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J
|
||||
.origin = codecave
|
||||
|
||||
.int $mod
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : addClassExpChara__Q2_6Battle14CBattleManagerFUiT1
|
||||
; WHAT : Multiply the class experience given during combat
|
||||
|
||||
_expBattle:
|
||||
li r12, $mod
|
||||
mullw r31, r3, r12
|
||||
@ -17,7 +14,6 @@ blr
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : addReward__Q2_3cfs11CfSquadUtilSFUiT1
|
||||
; WHAT : Multiply the experience points given by Squad missions
|
||||
|
||||
_expSquadValue:
|
||||
li r4, $mod
|
||||
mullw r3, r3, r4
|
||||
@ -33,36 +29,49 @@ blr
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : menu::MenuMultiQuestResult::setup((void))
|
||||
; WHAT :
|
||||
|
||||
_dispAfter:
|
||||
li r5, $mod
|
||||
mullw r3, r3, r5
|
||||
stw r3, 0x80(r1)
|
||||
blr
|
||||
|
||||
[XCX_CLASSEXPX_1E] ############################################################################
|
||||
moduleMatches = 0xF882D5CF ; 1.0.1E
|
||||
|
||||
[XCX_CLASSEXPX_V101E] ; ############################################################################
|
||||
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
|
||||
0x020C4A28 = bla _expBattle
|
||||
0x023CC750 = bla _expSquadValue
|
||||
0x023CC814 = bla _expSquadValue
|
||||
0x02B91324 = bla _dispBefore
|
||||
0x02B9FF44 = bla _dispAfter
|
||||
|
||||
[XCX_CLASSEXPX_2U] ############################################################################
|
||||
[XCX_CLASSEXPX_V102U] ; ############################################################################
|
||||
moduleMatches = 0x30B6E091 ; 1.0.2U
|
||||
|
||||
0x020C4A28 = bla _expBattle
|
||||
0x023CC750 = bla _expSquadValue
|
||||
0x023CC814 = bla _expSquadValue
|
||||
0x02B91314 = bla _dispBefore
|
||||
0x02B9FF34 = bla _dispAfter
|
||||
|
||||
[XCX_CLASSEXPX_1U] ############################################################################
|
||||
moduleMatches = 0xAB97DE6B ; 1.0.1U
|
||||
[XCX_CLASSEXPX_V102J] ; ############################################################################
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
0x020C44F4 = bla _expBattle
|
||||
0x023CBDB4 = bla _expSquadValue
|
||||
0x023CBE98 = bla _expSquadValue
|
||||
0x02B8D260 = bla _dispBefore
|
||||
0x02B9B9FC = bla _dispAfter
|
||||
|
||||
[XCX_CLASSEXPX_V100U] ; ############################################################################
|
||||
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||
0x020C4A28 = bla _expBattle
|
||||
0x023CC6E0 = bla _expSquadValue
|
||||
0x023CC7A4 = bla _expSquadValue
|
||||
0x02B91298 = bla _dispBefore
|
||||
0x02B9FE44 = bla _dispAfter
|
||||
|
||||
[XCX_CLASSEXPX_V100J] ; ############################################################################
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
0x020C4270 = bla _expBattle
|
||||
0x023CB8E4 = bla _expSquadValue
|
||||
0x023CB9C8 = bla _expSquadValue
|
||||
0x02B8AB48 = bla _dispBefore
|
||||
0x02B99024 = bla _dispAfter
|
||||
|
@ -3,7 +3,7 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "Class Exp Points X"
|
||||
path = "Xenoblade Chronicles X/Mods/Experience/Class Exp Points"
|
||||
description = Change the amount of Class Exp points gained in battle, missions, quests and exploration.
|
||||
version = 5
|
||||
version = 6
|
||||
|
||||
[Default]
|
||||
$mod = 2
|
||||
@ -11,6 +11,10 @@ $mod = 2
|
||||
[Preset]
|
||||
name = "x2"
|
||||
|
||||
[Preset]
|
||||
name = "x3"
|
||||
$mod = 3
|
||||
|
||||
[Preset]
|
||||
name = "x5"
|
||||
$mod = 5
|
||||
|
@ -1,13 +1,20 @@
|
||||
[XCX_FRIENDPOINTSX]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
|
||||
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J
|
||||
.origin = codecave
|
||||
|
||||
.int $mod
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : RegistDamage_SoulVoiceLink__Q2_12DamageSystem7FactorySFRCQ2_3cfs30CfHandleKey__tm__11_XCUiL_2_12T1Ui
|
||||
; WHAT : Gives a lot of friend points when activating a Soul Voice Link during combat
|
||||
; : BEWARE as this can lead to freeze of the emulator when opening the Affinity Chart (not sure if this is related)
|
||||
|
||||
[XCX_FRIENDPOINTSX_V101E_V102U_V100U]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07, 0xAB97DE6B, 0x676EB33E ; 1.0.1E, 1.0.2U, 1.0.0E, 1.0.1U, 1.0.0U
|
||||
0x02179908 = li r31, $mod
|
||||
|
||||
[XCX_FRIENDPOINTSX_V102J]
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
0x021793D4 = li r31, $mod
|
||||
|
||||
[XCX_FRIENDPOINTSX_V100J]
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
0x02179150 = li r31, $mod
|
||||
|
@ -3,7 +3,7 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "Friends Points X"
|
||||
path = "Xenoblade Chronicles X/Mods/Experience/Friends Points"
|
||||
description = More Friends points gained when activating a Soul Voice Link during battle.
|
||||
version = 5
|
||||
version = 6
|
||||
|
||||
[Default]
|
||||
$mod = 100
|
||||
@ -11,6 +11,10 @@ $mod = 100
|
||||
[Preset]
|
||||
name = "+100"
|
||||
|
||||
[Preset]
|
||||
name = "+150"
|
||||
$mod = 150
|
||||
|
||||
[Preset]
|
||||
name = "+250"
|
||||
$mod = 250
|
||||
|
@ -1,14 +1,11 @@
|
||||
[XCX_EXPX]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
|
||||
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J
|
||||
.origin = codecave
|
||||
|
||||
.int $mod
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : cfs::CfCompoCtrlEnemy::execRequestCommon
|
||||
; WHAT : Multiply the experience points given in battles
|
||||
|
||||
_expBattle:
|
||||
lwz r3, 0x3184(r28)
|
||||
mulli r3, r3, $mod
|
||||
@ -19,7 +16,6 @@ blr
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : addTreasure__Q2_3cfs10CfTBoxUtilSFUib
|
||||
; WHAT : Multiply the experience points given by treasures or exploration
|
||||
|
||||
_expTreasure:
|
||||
li r3, $mod
|
||||
lhz r31, 0x1C(r1)
|
||||
@ -29,7 +25,6 @@ blr
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : addReward__Q2_3cfs11CfQuestUtilSFUiQ2_3cfs17CfQuestRewardType
|
||||
; WHAT : Multiply the experience points given by quests ?
|
||||
|
||||
_expQuest:
|
||||
li r4, $mod
|
||||
mullw r3, r3, r4
|
||||
@ -39,7 +34,6 @@ blr
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : addReward__Q2_3cfs11CfSquadUtilSFUiT1
|
||||
; WHAT : Multiply the experience points given by Squad missions
|
||||
|
||||
_expSquadValue:
|
||||
li r4, $mod
|
||||
mullw r3, r3, r4
|
||||
@ -49,7 +43,6 @@ blr
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : menu::MenuMultiQuestInfoWindow::displayInfo((menu::MenuObject *,bool))
|
||||
; WHAT :
|
||||
|
||||
_dispBefore:
|
||||
lwz r23, 0x88(r1)
|
||||
li r24, $mod
|
||||
@ -59,48 +52,64 @@ blr
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : menu::MenuMultiQuestResult::setup((void))
|
||||
; WHAT :
|
||||
|
||||
_dispAfter:
|
||||
li r5, $mod
|
||||
mullw r3, r3, r5
|
||||
stw r3, 0x78(r1)
|
||||
blr
|
||||
|
||||
[XCX_EXPX_1E] ############################################################################
|
||||
moduleMatches = 0xF882D5CF ; 1.0.1E
|
||||
|
||||
[XCX_EXPX_V101E] ; ############################################################################
|
||||
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
|
||||
0x025624D4 = bla _expBattle
|
||||
0x022D8E64 = bla _expTreasure
|
||||
0x0229560C = bla _expQuest
|
||||
0x023CC6D4 = bla _expSquadValue
|
||||
0x02B94700 = bla _dispBefore
|
||||
0x02B9FDD4 = bla _dispAfter
|
||||
|
||||
; TEST : unlimited exp (no 9999 limit) up to 65535?
|
||||
; unlimited exp (no 9999 limit) loops around 140000
|
||||
0x020C1BC4 = nop
|
||||
|
||||
[XCX_EXPX_2U] ############################################################################
|
||||
[XCX_EXPX_V102U] ; ############################################################################
|
||||
moduleMatches = 0x30B6E091 ; 1.0.2U
|
||||
|
||||
0x025624D4 = bla _expBattle
|
||||
0x022D8E64 = bla _expTreasure
|
||||
0x0229560C = bla _expQuest
|
||||
0x023CC6D4 = bla _expSquadValue
|
||||
0x02B946F0 = bla _dispBefore
|
||||
0x02B9FDC4 = bla _dispAfter
|
||||
|
||||
; TEST : unlimited exp (no 9999 limit) up to 65535?
|
||||
; unlimited exp (no 9999 limit) loops around 140000
|
||||
0x020C1BC4 = nop
|
||||
|
||||
[XCX_EXPX_1U] ############################################################################
|
||||
moduleMatches = 0xAB97DE6B ; 1.0.1U
|
||||
[XCX_EXPX_V102J] ; ############################################################################
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
0x02561AB0 = bla _expBattle
|
||||
0x022D8694 = bla _expTreasure
|
||||
0x02295024 = bla _expQuest
|
||||
0x023CBD38 = bla _expSquadValue
|
||||
0x02B9063C = bla _dispBefore
|
||||
0x02B9B8D0 = bla _dispAfter
|
||||
; unlimited exp (no 9999 limit) loops around 140000
|
||||
0x020C1690 = nop
|
||||
|
||||
[XCX_EXPX_V100U] ; ############################################################################
|
||||
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||
0x02562464 = bla _expBattle
|
||||
0x022D8DF4 = bla _expTreasure
|
||||
0x0229559C = bla _expQuest
|
||||
0x023CC664 = bla _expSquadValue
|
||||
0x02B94674 = bla _dispBefore
|
||||
0x02B9FCD4 = bla _dispAfter
|
||||
|
||||
; TEST : unlimited exp (no 9999 limit) up to 65535?
|
||||
; unlimited exp (no 9999 limit) loops around 140000
|
||||
0x020C1BC4 = nop
|
||||
|
||||
[XCX_EXPX_V100J] ; ############################################################################
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
0x02560FD4 = bla _expBattle
|
||||
0x022D8520 = bla _expTreasure
|
||||
0x02294D78 = bla _expQuest
|
||||
0x023CB868 = bla _expSquadValue
|
||||
0x02B8DD8C = bla _dispBefore ;
|
||||
0x02B98F04 = bla _dispAfter
|
||||
; unlimited exp (no 9999 limit) loops around 140000
|
||||
0x020C140C = nop
|
||||
|
@ -1,15 +1,23 @@
|
||||
[Definition]
|
||||
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "Inner Exp Points"
|
||||
path = "Xenoblade Chronicles X/Mods/Experience/Inner Exp Points"
|
||||
description = Change the amount of Inner Exp points gained in battle, missions, quests and exploration. [1.0.1E/1.0.2U]
|
||||
version = 5
|
||||
name = "Lv Exp Points"
|
||||
path = "Xenoblade Chronicles X/Mods/Experience/Lv Exp Points"
|
||||
description = Change the amount of Level Exp points gained in battle, missions, quests and exploration.|Ignores the 9999 exp cap.
|
||||
version = 6
|
||||
|
||||
[Default]
|
||||
$mod = 2
|
||||
$mod = 1
|
||||
|
||||
[Preset]
|
||||
name = "x1"
|
||||
|
||||
[Preset]
|
||||
name = "x2"
|
||||
$mod = 2
|
||||
|
||||
[Preset]
|
||||
name = "x3"
|
||||
$mod = 3
|
||||
|
||||
[Preset]
|
||||
name = "x5"
|
||||
@ -29,4 +37,4 @@ $mod = 100
|
||||
|
||||
[Preset]
|
||||
name = "x1000"
|
||||
$mod = 1000
|
||||
$mod = 1000
|
||||
|
15
src/XenobladeChroniclesX/Mods/FOVSetting/patch_fov.asm
Normal file
15
src/XenobladeChroniclesX/Mods/FOVSetting/patch_fov.asm
Normal 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
|
@ -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
|
||||
|
@ -3,14 +3,16 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = Field of View
|
||||
path = "Xenoblade Chronicles X/Mods/Field of View"
|
||||
description = Changes the field of view (FOV). Fixes edge framing for 21:9 cinematics and other FOV tweaks.
|
||||
version = 4
|
||||
version = 6
|
||||
|
||||
[Preset]
|
||||
name = Default FOV
|
||||
[Default]
|
||||
$fov = 1.0
|
||||
|
||||
[Preset]
|
||||
name = Match 16:9 horizontal FOV to 21:9 (1.3125)
|
||||
name = Default FOV
|
||||
|
||||
[Preset]
|
||||
name = "Match 16:9 horizontal FOV to 21:9 (1.3125)"
|
||||
$fov = 1.3125
|
||||
|
||||
[Preset]
|
||||
@ -18,21 +20,21 @@ name = Balance 48:9 (1.45)
|
||||
$fov = 1.45
|
||||
|
||||
[Preset]
|
||||
name = Slight FOV increase without breaking framing (0.925)
|
||||
name = "Slight FOV increase without breaking framing (0.925)"
|
||||
$fov = 0.925
|
||||
|
||||
[Preset]
|
||||
name = Match 16:10 horizontal FOV to 16:9 (0.9)
|
||||
name = "Match 16:10 horizontal FOV to 16:9 (0.9)"
|
||||
$fov = 0.9
|
||||
|
||||
[Preset]
|
||||
name = Pc style wide FOV (0.825)
|
||||
name = "Pc style wide FOV (0.825)"
|
||||
$fov = 0.825
|
||||
|
||||
[Preset]
|
||||
name = Match 21:9 horizontal FOV to 16:9 (0.7442)
|
||||
name = "Match 21:9 horizontal FOV to 16:9 (0.7442)"
|
||||
$fov = 0.7442
|
||||
|
||||
[Preset]
|
||||
name = Fish eye (0.5)
|
||||
name = "Fish eye (0.5)"
|
||||
$fov = 0.5
|
||||
|
@ -1,15 +1,12 @@
|
||||
[XCX_FN_MIR_FREQ_ALL]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
|
||||
|
||||
[XCX_FN_MIR_FREQ]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J
|
||||
.origin = codecave
|
||||
|
||||
.int $mod
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHAT : changeTime__Q2_4fnet9CFnetTaskFUiT1
|
||||
; WHY : Affect the frequency of the FrontierNav income for the Miranium
|
||||
; Frequency unit is 1 minute (so by default income is every 30 minutes)
|
||||
|
||||
_miranium:
|
||||
li r8, $mod
|
||||
addi r10, r3, 1
|
||||
@ -19,12 +16,19 @@ subf r3, r0, r10
|
||||
cmpwi r3, 0
|
||||
blr
|
||||
|
||||
[XCX_FN_MIR_FREQ] ##################################################################
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
|
||||
|
||||
[XCX_FN_MIR_FREQ_V101E_V102U]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
|
||||
0x027D5250 = bla _miranium
|
||||
|
||||
[XCX_FN_MIR_FREQ_1U] ##################################################################
|
||||
moduleMatches = 0xAB97DE6B ; 1.0.1U
|
||||
[XCX_FN_MIR_FREQ_V102J]
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
0x027D2E88 = bla _miranium
|
||||
|
||||
0x027D51F0 = bla _miranium
|
||||
[XCX_FN_MIR_FREQ_V100U]
|
||||
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||
0x027D51F0 = bla _miranium
|
||||
|
||||
[XCX_FN_MIR_FREQ_V100J]
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
0x027D1E84 = bla _miranium
|
||||
|
@ -1,9 +1,9 @@
|
||||
[Definition]
|
||||
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "Miranium income frequency mod"
|
||||
path = "Xenoblade Chronicles X/Mods/FrontierNav/Miranium income frequency mod"
|
||||
name = "FrontierNav - Miranium frequency mod"
|
||||
path = "Xenoblade Chronicles X/Mods/FrontierNav/Miranium frequency mod"
|
||||
description = Affect the frequency of the FrontierNav income for the Miranium (Vanilla is every 30 minutes).
|
||||
version = 5
|
||||
version = 6
|
||||
|
||||
[Default]
|
||||
$mod = 1
|
||||
@ -30,4 +30,3 @@ $mod = 15
|
||||
[Preset]
|
||||
name = "Every 20 minutes"
|
||||
$mod = 20
|
||||
|
||||
|
@ -1,14 +1,12 @@
|
||||
[XCX_FN_MIR_QTY_ALL] ######################################################################
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
|
||||
|
||||
[XCX_FN_MIR_QTY]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J
|
||||
.origin = codecave
|
||||
|
||||
.int $mod
|
||||
.int $uncap
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : changeTime__Q2_4fnet9CFnetTaskFUiT1
|
||||
; WHAT : Affect the quantity of the NavFrontier income for the Miranium
|
||||
|
||||
_miranium:
|
||||
lwzx r31, r3, r28
|
||||
li r4, $mod
|
||||
@ -18,9 +16,6 @@ blr
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : fnet::CFnetData::toStorage(const(unsigned int))
|
||||
; WHAT : Ignore max quantity
|
||||
|
||||
.int $uncap
|
||||
|
||||
_getMiranium:
|
||||
li r12, $uncap
|
||||
cmpwi r12, 0
|
||||
@ -36,16 +31,27 @@ beqlr
|
||||
mr r31, r0
|
||||
blr
|
||||
|
||||
[XCX_FN_MIR_QTY] ######################################################################
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
|
||||
|
||||
[XCX_FN_MIR_QTY_V101E_V102U]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
|
||||
0x027D526C = bla _miranium
|
||||
0x027D0FF8 = bla _getMiranium
|
||||
0x027D1030 = bla _ignoreMax
|
||||
|
||||
[XCX_FN_MIR_QTY_1U] ######################################################################
|
||||
moduleMatches = 0xAB97DE6B ; 1.0.1U
|
||||
[XCX_FN_MIR_QTY_V102J]
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
0x027D2EA4 = bla _miranium
|
||||
0x027CEC30 = bla _getMiranium
|
||||
0x027CEC68 = bla _ignoreMax
|
||||
|
||||
[XCX_FN_MIR_QTY_V100U]
|
||||
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||
0x027D520C = bla _miranium
|
||||
0x027D0F98 = bla _getMiranium
|
||||
0x027D0FD0 = bla _ignoreMax
|
||||
|
||||
[XCX_FN_MIR_QTY_V100J]
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
0x027D1EA0 = bla _miranium
|
||||
0x027CDC2C = bla _getMiranium
|
||||
0x027CDC64 = bla _ignoreMax
|
||||
|
@ -1,17 +1,27 @@
|
||||
[Definition]
|
||||
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "Miranium income quantity mod"
|
||||
path = "Xenoblade Chronicles X/Mods/FrontierNav/Miranium income quantity mod"
|
||||
name = "FrontierNav - Miranium quantity mod"
|
||||
path = "Xenoblade Chronicles X/Mods/FrontierNav/Miranium quantity mod"
|
||||
description = Affect the quantity of the FrontierNav income for the Miranium.
|
||||
version = 5
|
||||
version = 6
|
||||
|
||||
[Default]
|
||||
$mod = 2
|
||||
$mod = 1
|
||||
$uncap = 0
|
||||
|
||||
[Preset]
|
||||
name = "Miranium x1"
|
||||
category = Miranium quantity
|
||||
|
||||
[Preset]
|
||||
name = "Miranium x2"
|
||||
category = Miranium quantity
|
||||
$mod = 2
|
||||
|
||||
[Preset]
|
||||
name = "Miranium x3"
|
||||
category = Miranium quantity
|
||||
$mod = 3
|
||||
|
||||
[Preset]
|
||||
name = "Miranium x5"
|
||||
@ -35,9 +45,9 @@ $mod = 100
|
||||
|
||||
[Preset]
|
||||
name = "Yes"
|
||||
category = "Capped by BLADE level"
|
||||
category = "Capped by Storage Probes"
|
||||
|
||||
[Preset]
|
||||
name = "No"
|
||||
category = "Capped by BLADE level"
|
||||
$uncap = 1
|
||||
category = "Capped by Storage Probes"
|
||||
$uncap = 1
|
||||
|
@ -1,22 +1,24 @@
|
||||
[XCX_FN_MNY_FREQ]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
|
||||
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J
|
||||
.origin = codecave
|
||||
|
||||
.int $mod
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHAT : changeTime__Q2_4fnet9CFnetTaskFUiT1
|
||||
; WHY : Affect the frequency of the NavFrontier income for the money
|
||||
; Frequency unit is 1 minute (so by default income is every 15 minutes)
|
||||
|
||||
[XCX_FN_MNY_FREQ_V101E_V102U]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
|
||||
0x027D554C = li r12, $mod
|
||||
|
||||
[XCX_FN_MNY_FREQ_1U] ######################################################################
|
||||
moduleMatches = 0xAB97DE6B ; 1.0.1U
|
||||
[XCX_FN_MNY_FREQ_V102J]
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
0x027D3184 = li r12, $mod
|
||||
|
||||
.origin = codecave
|
||||
[XCX_FN_MNY_FREQ_V100U]
|
||||
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||
0x027D54EC = li r12, $mod
|
||||
|
||||
.int $mod
|
||||
|
||||
0x027D54EC = li r12, $mod
|
||||
[XCX_FN_MNY_FREQ_V100J]
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
0x027D2180 = li r12, $mod
|
||||
|
@ -1,9 +1,9 @@
|
||||
[Definition]
|
||||
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "Money income frequency mod"
|
||||
path = "Xenoblade Chronicles X/Mods/FrontierNav/Money income frequency mod"
|
||||
name = "FrontierNav - Money frequency mod"
|
||||
path = "Xenoblade Chronicles X/Mods/FrontierNav/Money frequency mod"
|
||||
description = Affect the frequency of the FrontierNav income for the Money (Vanilla is 15 minutes).
|
||||
version = 5
|
||||
version = 6
|
||||
|
||||
[Default]
|
||||
$mod = 1
|
||||
@ -26,4 +26,3 @@ $mod = 7
|
||||
[Preset]
|
||||
name = "Every 10 minutes"
|
||||
$mod = 10
|
||||
|
||||
|
@ -1,8 +1,6 @@
|
||||
[XCX_FN_MNY_QTY_ALL] ######################################################################
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
|
||||
|
||||
[XCX_FN_MNY_QTY]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J
|
||||
.origin = codecave
|
||||
|
||||
.int $mod
|
||||
|
||||
_money:
|
||||
@ -10,12 +8,18 @@ li r31, $mod
|
||||
mullw. r31, r31, r3
|
||||
blr
|
||||
|
||||
[XCX_FN_MNY_QTY] ######################################################################
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
|
||||
|
||||
[XCX_FN_MNY_QTY_V101E_V102U]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
|
||||
0x027D5588 = bla _money
|
||||
|
||||
[XCX_FN_MNY_QTY_1U] ######################################################################
|
||||
moduleMatches = 0xAB97DE6B ; 1.0.1U
|
||||
[XCX_FN_MNY_QTY_V102J]
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
0x027D31C0 = bla _money
|
||||
|
||||
[XCX_FN_MNY_QTY_V100U]
|
||||
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||
0x027D5528 = bla _money
|
||||
|
||||
[XCX_FN_MNY_QTY_V100J]
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
0x027D21BC = bla _money
|
||||
|
@ -1,9 +1,9 @@
|
||||
[Definition]
|
||||
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "Money income quantity mod"
|
||||
path = "Xenoblade Chronicles X/Mods/FrontierNav/Money income quantity mod"
|
||||
name = "FrontierNav - Money quantity mod"
|
||||
path = "Xenoblade Chronicles X/Mods/FrontierNav/Money quantity mod"
|
||||
description = Affect the quantity of the FrontierNav income for the Money.
|
||||
version = 5
|
||||
version = 6
|
||||
|
||||
[Default]
|
||||
$mod = 2
|
||||
@ -11,6 +11,10 @@ $mod = 2
|
||||
[Preset]
|
||||
name = "x2"
|
||||
|
||||
[Preset]
|
||||
name = "x3"
|
||||
$mod = 3
|
||||
|
||||
[Preset]
|
||||
name = "x5"
|
||||
$mod = 5
|
||||
@ -30,4 +34,3 @@ $mod = 100
|
||||
[Preset]
|
||||
name = "x1000"
|
||||
$mod = 1000
|
||||
|
||||
|
@ -1,22 +1,24 @@
|
||||
[XCX_FN_RES_FREQ] ######################################################################
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
|
||||
|
||||
[XCX_FN_RES_FREQ]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J
|
||||
.origin = codecave
|
||||
|
||||
.int $mod
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHAT : changeTime__Q2_4fnet9CFnetTaskFUiT1
|
||||
; WHY : Affect the frequency of the NavFrontier income for the resources
|
||||
; Frequency unit is 1 minute (so by default income is every 5 minutes)
|
||||
|
||||
[XCX_FN_RES_FREQ_V101E_V102U]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
|
||||
0x027D534C = li r12, $mod
|
||||
|
||||
[XCX_FN_RES_FREQ_1U] ######################################################################
|
||||
moduleMatches = 0xAB97DE6B ; 1.0.1U
|
||||
|
||||
.origin = codecave
|
||||
|
||||
.int $mod
|
||||
[XCX_FN_RES_FREQ_V102J]
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
0x027D2F84 = li r12, $mod
|
||||
|
||||
[XCX_FN_RES_FREQ_V100U]
|
||||
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||
0x027D52EC = li r12, $mod
|
||||
|
||||
[XCX_FN_RES_FREQ_V100J]
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
0x027D1F80 = li r12, $mod
|
||||
|
@ -1,10 +1,9 @@
|
||||
[Definition]
|
||||
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "Xenoblade Chronicles X - FrontierNav - Probe income frequency mod"
|
||||
name = "Resources income frequency mod"
|
||||
path = "Xenoblade Chronicles X/Mods/FrontierNav/Resources income frequency mod"
|
||||
name = "FrontierNav - Resources frequency mod"
|
||||
path = "Xenoblade Chronicles X/Mods/FrontierNav/Resources frequency mod"
|
||||
description = Affect the frequency of the FrontierNav income for the resources (Vanilla is every 5 minutes).
|
||||
version = 5
|
||||
version = 6
|
||||
|
||||
[Default]
|
||||
$mod = 2
|
||||
|
@ -1,14 +1,11 @@
|
||||
[XCX_FN_RES_QTY_ALL] ######################################################################
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
|
||||
|
||||
[XCX_FN_RES_QTY]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J
|
||||
.origin = codecave
|
||||
|
||||
.int $mod
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHAT : changeTime__Q2_4fnet9CFnetTaskFUiT1
|
||||
; WHY :
|
||||
|
||||
_multCount:
|
||||
lbz r0, 6(r31)
|
||||
li r3, $mod
|
||||
@ -16,12 +13,18 @@ mullw r0, r0, r3
|
||||
stb r0, 6(r31)
|
||||
blr
|
||||
|
||||
[XCX_FN_RES_QTY] ######################################################################
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
|
||||
|
||||
[XCX_FN_RES_QTY_V101E_V102U]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
|
||||
0x027D5428 = bla _multCount
|
||||
|
||||
[XCX_FN_RES_QTY_1U] ######################################################################
|
||||
moduleMatches = 0xAB97DE6B ; 1.0.1U
|
||||
[XCX_FN_RES_QTY_V102J]
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
0x027D3060 = bla _multCount
|
||||
|
||||
[XCX_FN_RES_QTY_V100U]
|
||||
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||
0x027D53C8 = bla _multCount
|
||||
|
||||
[XCX_FN_RES_QTY_V100J]
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
0x027D205C = bla _multCount
|
||||
|
@ -1,9 +1,9 @@
|
||||
[Definition]
|
||||
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "Resources income quantity mod"
|
||||
path = "Xenoblade Chronicles X/Mods/FrontierNav/Resources income quantity mod"
|
||||
name = "FrontierNav - Resources quantity mod"
|
||||
path = "Xenoblade Chronicles X/Mods/FrontierNav/Resources quantity mod"
|
||||
description = Affect the quantity of the FrontierNav income for the resources.
|
||||
version = 5
|
||||
version = 6
|
||||
|
||||
[Default]
|
||||
$mod = 2
|
||||
@ -11,6 +11,10 @@ $mod = 2
|
||||
[Preset]
|
||||
name = "x2"
|
||||
|
||||
[Preset]
|
||||
name = "x3"
|
||||
$mod = 3
|
||||
|
||||
[Preset]
|
||||
name = "x5"
|
||||
$mod = 5
|
||||
@ -26,4 +30,3 @@ $mod = 50
|
||||
[Preset]
|
||||
name = "x100"
|
||||
$mod = 100
|
||||
|
||||
|
@ -1,12 +1,24 @@
|
||||
[XCX_CAMERA_DIST]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
|
||||
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J
|
||||
.origin = codecave
|
||||
|
||||
VarZoom:
|
||||
.float $mod
|
||||
|
||||
; CamData::CCamDataManager::getParamsZoomDefault((CamData::eTargetTypes, unsigned char))
|
||||
0x0222A19C = lis r12, VarZoom@ha
|
||||
0x0222A1B0 = lfs f1, VarZoom@l(r12)
|
||||
|
||||
[XCX_CAMERA_DIST_V101E_V102U_V100U]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07, 0xAB97DE6B, 0x676EB33E ; 1.0.1E, 1.0.2U, 1.0.0E, 1.0.1U, 1.0.0U
|
||||
0x0222A19C = lis r12, VarZoom@ha
|
||||
0x0222A1B0 = lfs f1, VarZoom@l(r12)
|
||||
0x0222A1CC = nop
|
||||
|
||||
[XCX_CAMERA_DIST_V102J]
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
0x02229C68 = lis r12, VarZoom@ha
|
||||
0x02229C7C = lfs f1, VarZoom@l(r12)
|
||||
0x02229C98 = nop
|
||||
|
||||
[XCX_CAMERA_DIST_V100J]
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
0x022299E4 = lis r12, VarZoom@ha
|
||||
0x022299F8 = lfs f1, VarZoom@l(r12)
|
||||
0x02229A14 = nop
|
||||
|
@ -1,9 +1,9 @@
|
||||
[Definition]
|
||||
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "Camera mod (distance)"
|
||||
path = "Xenoblade Chronicles X/Mods/Graphics/Camera mod (distance)"
|
||||
description = Affect the default distance of the camera (Vanilla zoom is 0).
|
||||
version = 5
|
||||
name = "Camera distance mod"
|
||||
path = "Xenoblade Chronicles X/Mods/Graphics/Camera distance mod"
|
||||
description = Affect the default distance of the camera (Vanilla zoom is 0).|Does not affect max zoom possible.
|
||||
version = 6
|
||||
|
||||
[Default]
|
||||
$mod = 2.0
|
||||
@ -18,4 +18,3 @@ $mod = 5.0
|
||||
[Preset]
|
||||
name = "Zoom 10"
|
||||
$mod = 10.0
|
||||
|
||||
|
@ -1,12 +1,10 @@
|
||||
[XCX_DISTMOBINFO]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
|
||||
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J
|
||||
.origin = codecave
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHAT : cfs::CfPopManagerMobInfo::setupZone((cfs::ZoneTypes))
|
||||
; WHY : Initialize view distance for ALL the Mob information to a very high value (filter will be done in setup function)
|
||||
|
||||
_init_react:
|
||||
lis r3, 0x4300
|
||||
addi r3, r3, 0x0000
|
||||
@ -16,7 +14,6 @@ blr
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHAT : cfs::CfMobInfo::setup((void))
|
||||
; WHY : Adjust the view distance based on the information type
|
||||
|
||||
_info_default:
|
||||
cmpwi r6, 2
|
||||
beq tes
|
||||
@ -44,28 +41,35 @@ stw r10, 0x40(r29)
|
||||
exit_info_obtained:
|
||||
blr
|
||||
|
||||
[XCX_DISTMOBINFO_ALL] ###########################################################
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
|
||||
|
||||
[XCX_DISTMOBINFO_V101E_V102U] ; ###########################################################
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
|
||||
0x02387260 = bla _init_react
|
||||
0x02386F04 = bla _info_obtained
|
||||
0x02386F34 = bla _info_default
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHAT : cfs::CfPopManagerMobInfo::updatePop((ml::CVec3 const &, bool))
|
||||
|
||||
0x0238EEC0 = nop ; Disable the call of cfs::CfMobInfo::update function (may have side effects)
|
||||
0x0238EF30 = nop ; Disable altitude check
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHAT : cfs::CfPopManager::isCheckDoll(const(void))
|
||||
; WHY : display bubbles even in skell
|
||||
|
||||
0x0238745C = li r3, 0
|
||||
|
||||
[XCX_DISTMOBINFO_1U] ###########################################################
|
||||
moduleMatches = 0xAB97DE6B ; 1.0.1U
|
||||
[XCX_DISTMOBINFO_V102J] ; ###########################################################
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
0x02386A94 = bla _init_react
|
||||
0x02386738 = bla _info_obtained
|
||||
0x02386768 = bla _info_default
|
||||
|
||||
0x0238E6F4 = nop ; Disable the call of cfs::CfMobInfo::update function (may have side effects)
|
||||
0x0238E764 = nop ; Disable altitude check
|
||||
|
||||
0x02386C90 = li r3, 0
|
||||
|
||||
[XCX_DISTMOBINFO_V100U] ; ###########################################################
|
||||
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||
0x023871F0 = bla _init_react
|
||||
0x02386E94 = bla _info_obtained
|
||||
0x02386EC4 = bla _info_default
|
||||
@ -74,3 +78,14 @@ moduleMatches = 0xAB97DE6B ; 1.0.1U
|
||||
0x0238EEC0 = nop ; Disable altitude check
|
||||
|
||||
0x023873EC = li r3, 0
|
||||
|
||||
[XCX_DISTMOBINFO_V100J] ; ###########################################################
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
0x02386920 = bla _init_react
|
||||
0x023865C4 = bla _info_obtained
|
||||
0x023865F4 = bla _info_default
|
||||
|
||||
0x0238E580 = nop ; Disable the call of cfs::CfMobInfo::update function (may have side effects)
|
||||
0x0238E5F0 = nop ; Disable altitude check
|
||||
|
||||
0x02386B1C = li r3, 0
|
||||
|
@ -3,4 +3,4 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "NPC info bubbles distance mod"
|
||||
path = "Xenoblade Chronicles X/Mods/Graphics/NPC info bubbles distance mod"
|
||||
description = Increase view distance for yellow information bubbles from NPC.
|
||||
version = 5
|
||||
version = 6
|
||||
|
44
src/XenobladeChroniclesX/Mods/HUDFreecam/patch_Freecam.asm
Normal file
44
src/XenobladeChroniclesX/Mods/HUDFreecam/patch_Freecam.asm
Normal 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
|
6
src/XenobladeChroniclesX/Mods/HUDFreecam/rules.txt
Normal file
6
src/XenobladeChroniclesX/Mods/HUDFreecam/rules.txt
Normal 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
|
@ -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
|
6
src/XenobladeChroniclesX/Mods/HUDNoModelFade/rules.txt
Normal file
6
src/XenobladeChroniclesX/Mods/HUDNoModelFade/rules.txt
Normal 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
|
@ -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
|
@ -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
|
@ -1,22 +1,21 @@
|
||||
[XCX_NoOffline_V16J]
|
||||
moduleMatches = 0x785CA8A9
|
||||
|
||||
0x100B06DC = nop ; frameIn
|
||||
|
||||
|
||||
[XCX_NoOffline_V102J]
|
||||
moduleMatches = 0x7672271D
|
||||
|
||||
0x100B0B28 = nop ; frameIn
|
||||
|
||||
|
||||
[XCX_NoOffline_V100E_V101E]
|
||||
moduleMatches = 0x218F6E07, 0xF882D5CF
|
||||
|
||||
[XCX_NoOffline_V101E]
|
||||
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
|
||||
; WHO : s_offline_frameIn
|
||||
; WHAT : Never process this function so that the online label is never shown
|
||||
0x100B0B50 = nop ; frameIn
|
||||
|
||||
|
||||
[XCX_NoOffline_V102U]
|
||||
moduleMatches = 0x30B6E091
|
||||
moduleMatches = 0x30B6E091 ; 1.0.2U
|
||||
0x100B0B38 = nop ; frameIn
|
||||
|
||||
0x100B0B38 = nop ; frameIn
|
||||
[XCX_NoOffline_V102J]
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
0x100B099C = nop ; frameIn
|
||||
|
||||
[XCX_NoOffline_V100U]
|
||||
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||
0x100B0AA0 = nop ; frameIn
|
||||
|
||||
[XCX_NoOffline_V100J]
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
0x100B06DB = nop ; frameIn ;
|
||||
|
@ -3,4 +3,4 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = Hide Offline Label
|
||||
path = "Xenoblade Chronicles X/Mods/Hide Offline Label"
|
||||
description = Removes offline blinking tag. Does not change the actual online state.
|
||||
version = 5
|
||||
version = 6
|
||||
|
@ -1,11 +1,10 @@
|
||||
[XCX_EMANUAL_1E]
|
||||
moduleMatches = 0xF882D5CF ; 1.0.1E
|
||||
|
||||
[XCX_EMANUAL_101E]
|
||||
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : menu::MenuMainMenu::funcManual((int))
|
||||
; WHAT : Replace eManual function with timeManipulate function
|
||||
|
||||
_openTimeManipulate = 0x02C7A2F0
|
||||
_openTimeManipulate = 0x02C7A2F0 ; MenuTask::openTimeManipulate(void)
|
||||
_isFinishTM = 0x02C7A4CC ; MenuTask::isFinishTimeManipulate((void))
|
||||
|
||||
0x02B83CB4 = bl _openTimeManipulate
|
||||
@ -14,11 +13,10 @@ _isFinishTM = 0x02C7A4CC ; MenuTask::isFinishTimeManipulate((void))
|
||||
0x02B83C7C = bl _isFinishTM
|
||||
0x02B83C98 = bl _isFinishTM
|
||||
|
||||
#################################################################################
|
||||
[XCX_EMANUAL_2U]
|
||||
;#################################################################################
|
||||
[XCX_EMANUAL_V102U]
|
||||
moduleMatches = 0x30B6E091 ; 1.0.2U
|
||||
|
||||
_openTimeManipulate = 0x02C7A290
|
||||
_openTimeManipulate = 0x02C7A290 ; MenuTask::openTimeManipulate(void)
|
||||
_isFinishTM = 0x02C7A46C ; MenuTask::isFinishTimeManipulate((void))
|
||||
|
||||
0x02B83CA4 = bl _openTimeManipulate
|
||||
@ -27,11 +25,22 @@ _isFinishTM = 0x02C7A46C ; MenuTask::isFinishTimeManipulate((void))
|
||||
0x02B83C6C = bl _isFinishTM
|
||||
0x02B83C88 = bl _isFinishTM
|
||||
|
||||
#################################################################################
|
||||
[XCX_EMANUAL_1U]
|
||||
moduleMatches = 0xAB97DE6B ; 1.0.1U
|
||||
;#################################################################################
|
||||
[XCX_EMANUAL_V102J]
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
_openTimeManipulate = 0x02C757E4 ; MenuTask::openTimeManipulate(void)
|
||||
_isFinishTM = 0x02C759C0 ; MenuTask::isFinishTimeManipulate((void))
|
||||
|
||||
_openTimeManipulate = 0x02C7A118
|
||||
0x02B7FBF0 = bl _openTimeManipulate
|
||||
0x02B7FC08 = bl _openTimeManipulate
|
||||
|
||||
0x02B7FBB8 = bl _isFinishTM
|
||||
0x02B7FBD4 = bl _isFinishTM
|
||||
|
||||
;#################################################################################
|
||||
[XCX_EMANUAL_V100U]
|
||||
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||
_openTimeManipulate = 0x02C7A118 ; MenuTask::openTimeManipulate(void)
|
||||
_isFinishTM = 0x02C7A2F4 ; MenuTask::isFinishTimeManipulate((void))
|
||||
|
||||
0x02B83C28 = bl _openTimeManipulate
|
||||
@ -39,3 +48,15 @@ _isFinishTM = 0x02C7A2F4 ; MenuTask::isFinishTimeManipulate((void))
|
||||
|
||||
0x02B83BF0 = bl _isFinishTM
|
||||
0x02B83C0C = bl _isFinishTM
|
||||
|
||||
;#################################################################################
|
||||
[XCX_EMANUAL_V100J]
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
_openTimeManipulate = 0x02C71CD0 ; MenuTask::openTimeManipulate(void)
|
||||
_isFinishTM = 0x02C71EAC ; MenuTask::isFinishTimeManipulate((void))
|
||||
|
||||
0x02B7D640 = bl _openTimeManipulate
|
||||
0x02B7D658 = bl _openTimeManipulate
|
||||
|
||||
0x02B7D608 = bl _isFinishTM
|
||||
0x02B7D624 = bl _isFinishTM
|
||||
|
@ -2,5 +2,5 @@
|
||||
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "Change time from eManual"
|
||||
path = "Xenoblade Chronicles X/Mods/HUD/Change time from eManual"
|
||||
description = Allow to change time from the eManual entry of the main menu.
|
||||
version = 5
|
||||
description = Allow to change time from the eManual entry of the main menu.|Fixes the soft lock that happens when selecting eManual on Cemu.
|
||||
version = 6
|
||||
|
@ -1,21 +1,32 @@
|
||||
[XCX_LOOT_RANDOM_AFFIX]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
|
||||
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J
|
||||
.origin = codecave
|
||||
|
||||
.int $var1 ; 80
|
||||
.int $var2 ; 80
|
||||
.int $var3 ; 20
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : calcAffix__Q2_8ItemDrop16CItemDropManagerFUsRQ2_3mtl32fixed_vector__tm__12_UsXCUiL_1_3
|
||||
; WHAT : Affix random truly
|
||||
; Everything above 80% is capped at 80%, and everything else is set to 20%
|
||||
|
||||
_minDropRate:
|
||||
lbz r27, 0x0C(r1)
|
||||
cmpwi r27, 80
|
||||
cmpwi r27, $var1 ; 80
|
||||
blt percent20
|
||||
li r27, 80
|
||||
li r27, $var2 ; 80
|
||||
blr
|
||||
percent20:
|
||||
li r27, 20
|
||||
li r27, $var3 ; 20
|
||||
blr
|
||||
|
||||
|
||||
[XCX_LOOT_RANDOM_AFFIX_V101E_V102U_V100U]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07, 0xAB97DE6B, 0x676EB33E ; 1.0.1E, 1.0.2U, 1.0.0E, 1.0.1U, 1.0.0U
|
||||
0x021AB778 = bla _minDropRate
|
||||
|
||||
[XCX_LOOT_RANDOM_AFFIX_V102J]
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
0x021AB244 = bla _minDropRate
|
||||
|
||||
[XCX_LOOT_RANDOM_AFFIX_V100J]
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
0x021AAFC0 = bla _minDropRate
|
||||
|
@ -3,5 +3,18 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "Equipment - Alternate random augment selection"
|
||||
path = "Xenoblade Chronicles X/Mods/Loot/Equipment - Alternate random augment selection"
|
||||
description = Alternate random selection for augments. Everything above 80% is capped at 80%, and everything else is set to 20%.
|
||||
version = 5
|
||||
version = 6
|
||||
|
||||
[Default]
|
||||
$var1 = 80
|
||||
$var2 = 80
|
||||
$var3 = 20
|
||||
|
||||
[Preset]
|
||||
name = "80%, 20%" #(recommended)
|
||||
|
||||
#[Preset]
|
||||
#name = "50%, 50%" #(untested)
|
||||
#$var1 = 50
|
||||
#$var2 = 50
|
||||
#$var3 = 50
|
||||
|
@ -1,18 +1,34 @@
|
||||
[XCX_LOOT_EQUIPMENT_BESTQUALITY]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
[XCX_LOOT_EQUIPMENT_BESTQUALITY_V101E_V102U_V100U]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07, 0xAB97DE6B, 0x676EB33E ; 1.0.1E, 1.0.2U, 1.0.0E, 1.0.1U, 1.0.0U
|
||||
; ------------------------------------------------------------------------
|
||||
; WHO : __CPR98__calcItemTableID__Q2_8ItemDrop16CItemDropManagerFUcRCQ3_J20JJ29J11SCreateInfoRUs
|
||||
; WHAT : Always best equipment looted (X6X)
|
||||
|
||||
0x021AD710 = nop ; ground weapons ?
|
||||
0x021ADA6C = nop ; ground armors
|
||||
0x021ADDE8 = nop ; skell weapons
|
||||
0x021AE164 = nop ; skell armors
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
; ------------------------------------------------------------------------
|
||||
; WHO : ItemDrop::CItemDropManager::calcAfxSltNum((unsigned short))
|
||||
; WHAT : Control of the loot quality (always orange/yellow)
|
||||
0x021AEE7C = li r3, $traits ; num of gear traits
|
||||
0x021AF280 = li r3, $slots ; num of gear slots
|
||||
|
||||
0x021AEE7C = li r3, 3
|
||||
0x021AF280 = li r3, 3
|
||||
[XCX_LOOT_EQUIPMENT_BESTQUALITY_V102J]
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
0x021AD1DC = nop ; ground weapons ?
|
||||
0x021AD538 = nop ; ground armors
|
||||
0x021AD8B4 = nop ; skell weapons
|
||||
0x021ADC30 = nop ; skell armors
|
||||
|
||||
0x021AE948 = li r3, $traits ; num of gear traits
|
||||
0x021AED4C = li r3, $slots ; num of gear slots
|
||||
|
||||
[XCX_LOOT_EQUIPMENT_BESTQUALITY_V100J]
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
0x021ACF58 = nop ; ground weapons ?
|
||||
0x021AD2B4 = nop ; ground armors
|
||||
0x021AD630 = nop ; skell weapons
|
||||
0x021AD9AC = nop ; skell armors
|
||||
|
||||
0x021AE6C4 = li r3, $traits ; num of gear traits
|
||||
0x021AEAC8 = li r3, $slots ; num of gear slots
|
||||
|
@ -1,6 +1,49 @@
|
||||
[Definition]
|
||||
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "Equipment - Best Quality"
|
||||
path = "Xenoblade Chronicles X/Mods/Loot/Equipment - Always the Best Quality (X6X)"
|
||||
description = Equipment looted is always of the best quality (Prime for ground gear and Intergalactic for Skells) and has always 3 augments and 3 extra free slots (no preset needed).
|
||||
version = 5
|
||||
name = "Equipment - Force Quality"
|
||||
path = "Xenoblade Chronicles X/Mods/Loot/Equipment - Force Quality"
|
||||
description = Equipment looted is always of the specified quality (Prime = Intergalactic for Skell weapons) and always has 0-3 augments and 0-3 extra free slots.||Armor can normally only have 1 slot, so setting 2/3 slots will create cheat equipment.
|
||||
version = 6
|
||||
|
||||
[Default]
|
||||
$traits = 3
|
||||
$slots = 1
|
||||
|
||||
[Preset]
|
||||
name = "Prime (3 traits)"
|
||||
category = "Quality"
|
||||
|
||||
[Preset]
|
||||
name = "Unique (2 traits)"
|
||||
category = "Quality"
|
||||
$traits = 2
|
||||
|
||||
[Preset]
|
||||
name = "Rare (1 trait)"
|
||||
category = "Quality"
|
||||
$traits = 1
|
||||
|
||||
[Preset]
|
||||
name = "Common (0 traits)"
|
||||
category = "Quality"
|
||||
$traits = 0
|
||||
|
||||
[Preset]
|
||||
name = "0 Slots"
|
||||
category = "Number of Slots"
|
||||
$slots = 0
|
||||
|
||||
[Preset]
|
||||
name = "1 Slot"
|
||||
category = "Number of Slots"
|
||||
default = 1
|
||||
|
||||
[Preset]
|
||||
name = "2 Slots"
|
||||
category = "Number of Slots"
|
||||
$slots = 2
|
||||
|
||||
[Preset]
|
||||
name = "3 Slots"
|
||||
category = "Number of Slots"
|
||||
$slots = 3
|
||||
|
@ -1,10 +1,20 @@
|
||||
[XCX_LOOT_EQUIPMENT_COUNT]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
|
||||
|
||||
[XCX_LOOT_EQUIPMENT_COUNT_V101E_V102U_V100U]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07, 0xAB97DE6B, 0x676EB33E ; 1.0.1E, 1.0.2U, 1.0.0E, 1.0.1U, 1.0.0U
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : ItemDrop::CItemDropManager::calcItemNum((uchar))
|
||||
; WHAT : Chances to loot multiples equipments (3 max)
|
||||
|
||||
0x021AB218 = li r3, $cnt3
|
||||
0x021AB268 = li r3, $cnt2
|
||||
0x021AB2B8 = li r3, $cnt1
|
||||
|
||||
[XCX_LOOT_EQUIPMENT_COUNT_V102J]
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
0x021AACE4 = li r3, $cnt3
|
||||
0x021AAD34 = li r3, $cnt2
|
||||
0x021AAD84 = li r3, $cnt1
|
||||
|
||||
[XCX_LOOT_EQUIPMENT_COUNT_V100J]
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
0x021AAA60 = li r3, $cnt3
|
||||
0x021AAAB0 = li r3, $cnt2
|
||||
0x021AAB00 = li r3, $cnt1
|
||||
|
@ -3,24 +3,21 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "Equipment - Force Count"
|
||||
path = "Xenoblade Chronicles X/Mods/Loot/Equipment - Force Count"
|
||||
description = Force the count of equipment looted in Silver or Gold treasures.
|
||||
version = 5
|
||||
version = 6
|
||||
|
||||
[Default]
|
||||
$cnt3 = 0
|
||||
$cnt2 = 0
|
||||
$cnt1 = 0
|
||||
$cnt3 = 100
|
||||
$cnt2 = 100
|
||||
$cnt1 = 100
|
||||
|
||||
[Preset]
|
||||
name = "Always 3 equipments"
|
||||
$cnt2 = 100
|
||||
$cnt1 = 100
|
||||
$cnt3 = 0
|
||||
|
||||
[Preset]
|
||||
name = "Always 2 equipments"
|
||||
$cnt3 = 100
|
||||
$cnt1 = 100
|
||||
$cnt2 = 0
|
||||
|
||||
[Preset]
|
||||
name = "Always 1 equipment"
|
||||
$cnt3 = 100
|
||||
$cnt2 = 100
|
||||
$cnt1 = 0
|
||||
|
@ -1,8 +1,8 @@
|
||||
[XCX_LOOT_EQUIPMENT_TYPE]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
|
||||
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J
|
||||
.origin = codecave
|
||||
|
||||
.int $type
|
||||
.int $sub
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : __CPR98__calcItemTableID__Q2_8ItemDrop16CItemDropManagerFUcRCQ3_J20JJ29J11SCreateInfoRUs
|
||||
; WHAT : Force some kind of equipment to be looted in Gold chests
|
||||
@ -11,13 +11,6 @@ moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
|
||||
; 6 = Skell weapons
|
||||
; 8 = Skell armors
|
||||
|
||||
.int $type
|
||||
|
||||
0x021AEB88 = li r4, $type
|
||||
0x021AEB5C = li r27, $type
|
||||
|
||||
.int $sub
|
||||
|
||||
; Ground Weapons
|
||||
_notRand:
|
||||
li r4, $sub
|
||||
@ -28,8 +21,6 @@ exit_notRand:
|
||||
cmplw r3, r12
|
||||
blr
|
||||
|
||||
0x021AC280 = bla _notRand
|
||||
|
||||
_setSubGW:
|
||||
li r3, $sub
|
||||
cmpwi r3, 0
|
||||
@ -39,8 +30,6 @@ exit_setSubGW:
|
||||
addi r3, r1, 0x54
|
||||
blr
|
||||
|
||||
0x021AD6DC = bla _setSubGW
|
||||
|
||||
_setSubGA:
|
||||
li r3, $sub
|
||||
cmpwi r3, 0
|
||||
@ -50,8 +39,6 @@ exit_setSubGA:
|
||||
addi r3, r1, 0x6C
|
||||
blr
|
||||
|
||||
0x021ADD28 = bla _setSubGA
|
||||
|
||||
_setSubSA:
|
||||
li r3, $sub
|
||||
cmpwi r3, 0
|
||||
@ -61,6 +48,33 @@ exit_setSubSA:
|
||||
addi r3, r1, 0x9C
|
||||
blr
|
||||
|
||||
0x021AE420 = bla _setSubSA
|
||||
|
||||
[XCX_LOOT_EQUIPMENT_TYPE_V101E_V102U_V100U]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07, 0xAB97DE6B, 0x676EB33E ; 1.0.1E, 1.0.2U, 1.0.0E, 1.0.1U, 1.0.0U
|
||||
0x021AEB88 = li r4, $type
|
||||
0x021AEB5C = li r27, $type
|
||||
0x021AC280 = bla _notRand
|
||||
0x021AD6DC = bla _setSubGW
|
||||
0x021ADD28 = bla _setSubGA
|
||||
0x021AE420 = bla _setSubSA
|
||||
;0x021AD9A4 = li r3, 4 ; force index
|
||||
|
||||
[XCX_LOOT_EQUIPMENT_TYPE_V102J]
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
0x021AE654 = li r4, $type
|
||||
0x021AE628 = li r27, $type
|
||||
0x021ABD4C = bla _notRand
|
||||
0x021AD1A8 = bla _setSubGW
|
||||
0x021AD7F4 = bla _setSubGA
|
||||
0x021ADEEC = bla _setSubSA
|
||||
;0x021AD470 = li r3, 4 ; force index
|
||||
|
||||
[XCX_LOOT_EQUIPMENT_TYPE_V100J]
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
0x021AE3D0 = li r4, $type
|
||||
0x021AE3A4 = li r27, $type
|
||||
0x021ABAC8 = bla _notRand
|
||||
0x021ACF24 = bla _setSubGW
|
||||
0x021AD570 = bla _setSubGA
|
||||
0x021ADC68 = bla _setSubSA
|
||||
;0x021AD1EC = li r3, 4 ; force index
|
||||
|
@ -3,7 +3,7 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "Equipment - Force Type"
|
||||
path = "Xenoblade Chronicles X/Mods/Loot/Equipment - Force Type"
|
||||
description = Force the type of equipment looted.
|
||||
version = 5
|
||||
version = 6
|
||||
|
||||
[Default]
|
||||
$type:int = 2
|
||||
@ -174,6 +174,3 @@ name = "Leg"
|
||||
category = Skell Armor
|
||||
condition = $type == 8
|
||||
$sub:int = 5
|
||||
|
||||
|
||||
|
||||
|
@ -1,8 +1,14 @@
|
||||
[XCX_LOOT_EQUIPMENT_BROKEN]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
|
||||
|
||||
[XCX_LOOT_EQUIPMENT_BROKEN_V101E_V102U_V100U]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07, 0xAB97DE6B, 0x676EB33E ; 1.0.1E, 1.0.2U, 1.0.0E, 1.0.1U, 1.0.0U
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : __CPR129__calcItem__Q2_8ItemDrop16CItemDropManagerFRQ3_J13JJ22J9SDropInfoUcRCQ3_J13JJ22J11SCreateInfo
|
||||
; WHAT : Remove broken equipment (to be tested)
|
||||
; WHAT : Remove broken equipment
|
||||
0x021AEBE0 = li r3, $mod ; Nothing is broken
|
||||
|
||||
0x021AEBE0 = li r3, 0 ; Nothing is broken
|
||||
[XCX_LOOT_EQUIPMENT_BROKEN_V102J]
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
0x021AE6AC = li r3, $mod
|
||||
|
||||
[XCX_LOOT_EQUIPMENT_BROKEN_V100J]
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
0x021AE428 = li r3, $mod
|
||||
|
@ -2,6 +2,15 @@
|
||||
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "Equipment - Ignore broken"
|
||||
path = "Xenoblade Chronicles X/Mods/Loot/Equipment - Ignore broken"
|
||||
description = Never get broken equipment.
|
||||
version = 5
|
||||
description = Never or always get broken equipment.
|
||||
version = 6
|
||||
|
||||
[Default]
|
||||
$mod = 0
|
||||
|
||||
[Preset]
|
||||
name = Never get broken equipment
|
||||
|
||||
[Preset]
|
||||
name = Always get broken equipment
|
||||
$mod = 1
|
||||
|
@ -1,27 +1,11 @@
|
||||
[XCX_LOOT_MATERIALS_1E2U]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
|
||||
|
||||
0x030FA650 = _mtRand:
|
||||
|
||||
0x02B09748 = nop
|
||||
0x02B09788 = nop
|
||||
|
||||
[XCX_LOOT_MATERIALS_1U]
|
||||
moduleMatches = 0xAB97DE6B ; 1.0.1U
|
||||
|
||||
0x030FA4D4 = _mtRand:
|
||||
|
||||
[XCX_LOOT_MATERIALS]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
|
||||
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J
|
||||
.origin = codecave
|
||||
.int $ratio
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : __CPR90__calcItemBronze__Q2_8ItemDrop16CItemDropManagerFRQ3_J19JJ28J9SDropInfoUc
|
||||
; WHAT : Affect the drop ratio of materials
|
||||
|
||||
.int $ratio
|
||||
|
||||
_minDropRate:
|
||||
li r11, $ratio
|
||||
li r31, 0
|
||||
@ -36,19 +20,13 @@ compare:
|
||||
cmpw r3, r31
|
||||
blr
|
||||
|
||||
0x021AF5DC = bla _minDropRate ; modify drop ratio for bronze chests
|
||||
0x021AF614 = bla _minDropRate ; modify drop ratio for silver chests
|
||||
0x021AF5F8 = bla _minDropRate ; modify drop ratio for gold chests
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : __CPR90__calcItemBronze__Q2_8ItemDrop16CItemDropManagerFRQ3_J19JJ28J9SDropInfoUc
|
||||
; WHAT : random selection when all materials at 100% and more than 5
|
||||
|
||||
_saveEquipCnt:
|
||||
mr r30, r4
|
||||
lwz r13, 0xE0(r30)
|
||||
blr
|
||||
0x021AF334 = bla _saveEquipCnt
|
||||
|
||||
_fixit:
|
||||
li r12, 0
|
||||
@ -70,4 +48,55 @@ _fixit:
|
||||
mr r4, r3
|
||||
blr
|
||||
|
||||
[XCX_LOOT_MATERIALS_V101E]
|
||||
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
|
||||
0x030FA650 = _mtRand:
|
||||
0x02B09748 = nop
|
||||
0x02B09788 = nop
|
||||
|
||||
[XCX_LOOT_MATERIALS_V102U]
|
||||
moduleMatches = 0x30B6E091 ; 1.0.2U
|
||||
0x030FA654 = _mtRand:
|
||||
0x02B09738 = nop
|
||||
0x02B09778 = nop
|
||||
|
||||
[XCX_LOOT_MATERIALS_V100U]
|
||||
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||
0x030FA4D4 = _mtRand:
|
||||
0x02B096BC = nop
|
||||
0x02B096FC = nop
|
||||
|
||||
[XCX_LOOT_MATERIALS_V101E_V102U_V100U]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07, 0xAB97DE6B, 0x676EB33E ; 1.0.1E, 1.0.2U, 1.0.0E, 1.0.1U, 1.0.0U
|
||||
0x021AF5DC = bla _minDropRate ; modify drop ratio for bronze chests
|
||||
0x021AF614 = bla _minDropRate ; modify drop ratio for silver chests
|
||||
0x021AF5F8 = bla _minDropRate ; modify drop ratio for gold chests
|
||||
|
||||
0x021AF334 = bla _saveEquipCnt
|
||||
0x021AF620 = bla _fixit
|
||||
|
||||
[XCX_LOOT_MATERIALS_V102J]
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
0x030F5B94 = _mtRand:
|
||||
0x02B05688 = nop
|
||||
0x02B056C8 = nop
|
||||
|
||||
0x021AF0A8 = bla _minDropRate ; modify drop ratio for bronze chests
|
||||
0x021AF0E0 = bla _minDropRate ; modify drop ratio for silver chests
|
||||
0x021AF0C4 = bla _minDropRate ; modify drop ratio for gold chests
|
||||
|
||||
0x021AEE00 = bla _saveEquipCnt
|
||||
0x021AF0EC = bla _fixit
|
||||
|
||||
[XCX_LOOT_MATERIALS_V100J]
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
0x030F0794 = _mtRand:
|
||||
0x02B03530 = nop
|
||||
0x02B03570 = nop
|
||||
|
||||
0x021AEE24 = bla _minDropRate ; modify drop ratio for bronze chests
|
||||
0x021AEE5C = bla _minDropRate ; modify drop ratio for silver chests
|
||||
0x021AEE40 = bla _minDropRate ; modify drop ratio for gold chests
|
||||
|
||||
0x021AEB7C = bla _saveEquipCnt
|
||||
0x021AEE68 = bla _fixit
|
||||
|
@ -3,7 +3,7 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "Materials - Drop Ratio"
|
||||
path = "Xenoblade Chronicles X/Mods/Loot/Materials - Drop Ratio"
|
||||
description = Affect the materials minimum drop ratio in the loots.
|
||||
version = 5
|
||||
version = 6
|
||||
|
||||
[Default]
|
||||
$ratio = 100
|
||||
@ -25,4 +25,4 @@ $ratio = 30
|
||||
|
||||
[Preset]
|
||||
name = "Set minimum drop to 0% (never drop)"
|
||||
$ratio = 0
|
||||
$ratio = 0
|
||||
|
@ -1,15 +1,12 @@
|
||||
[XCX_LOOT_FORCECHEST]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U
|
||||
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J
|
||||
.origin = codecave
|
||||
|
||||
.int $forced
|
||||
.int $treasure
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : ItemDrop::CItemDropManager::calcRank((unsigned short, int))
|
||||
; WHAT : Force the chest quality
|
||||
|
||||
_goForced:
|
||||
li r28, $treasure
|
||||
li r4, $forced
|
||||
@ -21,8 +18,10 @@ exit_goForced:
|
||||
mr. r28, r3
|
||||
blr
|
||||
|
||||
0x021AAFA4 = bla _goForced
|
||||
|
||||
[XCX_LOOT_FORCECHEST_V101E_V102U_V100U]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07, 0xAB97DE6B, 0x676EB33E ; 1.0.1E, 1.0.2U, 1.0.0E, 1.0.1U, 1.0.0U
|
||||
0x021AAFA4 = bla _goForced
|
||||
; ----------------------------------------------------------------------------
|
||||
; WHO : ItemDrop::CItemDropManager::calcRank((unsigned short, int))
|
||||
; WHAT : Override the chest quality you get when the game initially decided you get no chest at all
|
||||
@ -32,5 +31,14 @@ blr
|
||||
; : 3) Calculate luck for bronze chest, if success exit with bronze quality (3), else process next step
|
||||
; : 4) No chest at all, exit with no chest (0)
|
||||
; : --> The mod below only changes this last step. So even if you put value 1 (gold chest), you'll still get a silver chest if the game succeeded the step 2.
|
||||
0x021AAF18 = li r3, $treasure
|
||||
|
||||
0x21AAF18 = li r3, $treasure
|
||||
[XCX_LOOT_FORCECHEST_V102J]
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
0x021AAA70 = bla _goForced
|
||||
0x021AA9E4 = li r3, $treasure
|
||||
|
||||
[XCX_LOOT_FORCECHEST_V100J]
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
0x021AA7EC = bla _goForced
|
||||
0x021AA760 = li r3, $treasure
|
||||
|
@ -2,8 +2,8 @@
|
||||
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "Treasure Quality"
|
||||
path = "Xenoblade Chronicles X/Mods/Loot/Treasure Quality"
|
||||
description = Select the preferred treasure quality you want to loot (see readme.txt for explanation).
|
||||
version = 5
|
||||
description = Select the preferred treasure quality you want to loot (see readme.txt for explanation).|Forced can make the story and/or sidequests impossible to complete. (Most key items come from silver treasures)
|
||||
version = 6
|
||||
|
||||
[Default]
|
||||
$treasure:int = 0
|
||||
@ -24,11 +24,11 @@ $treasure:int = 3
|
||||
[Preset]
|
||||
name = "No treasure"
|
||||
|
||||
[Preset]
|
||||
name = "No"
|
||||
category = Forced
|
||||
|
||||
[Preset]
|
||||
name = "Yes"
|
||||
category = Forced
|
||||
$forced:int = 1
|
||||
|
||||
[Preset]
|
||||
name = "No"
|
||||
category = Forced
|
||||
|
@ -1,17 +1,7 @@
|
||||
[XCX_MAXITEMS] ##########################################################
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
|
||||
|
||||
[XCX_MAXITEMS]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J
|
||||
.origin = codecave
|
||||
|
||||
; cfs::CfItemBoxBase::addItem((fw::CItemType::Type, unsigned int, cfs::CfItemHandle &)) --> used to allow more than 99 (if not, auto sell)
|
||||
0x02362C8C = cmplwi r12, 999
|
||||
|
||||
; cfs::CfItemBoxBase::canAddItem((fw::CItemType::Type,uint)) --> used in ticket trading window
|
||||
0x02363108 = cmplwi r12, 999
|
||||
|
||||
; cfs::CfItemBoxBase::getFreeStackCount((fw::CItemType::Type,uint)) --> returns max quantity allowed to buy
|
||||
0x023639DC = li r0, 999 ; when some items in stock
|
||||
0x023639FC = li r0, 999 ; when no item in stock
|
||||
.int $max
|
||||
|
||||
_testsub:
|
||||
lwz r29, 0xC(r1)
|
||||
@ -21,25 +11,47 @@ li r3, 255
|
||||
exit_testsub:
|
||||
blr
|
||||
|
||||
|
||||
[XCX_MAXITEMS_V101E_V102U]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
|
||||
; cfs::CfItemBoxBase::addItem((fw::CItemType::Type, unsigned int, cfs::CfItemHandle &)) --> used to allow more than 99 (if not, auto sell)
|
||||
0x02362C8C = cmplwi r12, $max
|
||||
|
||||
; cfs::CfItemBoxBase::canAddItem((fw::CItemType::Type,uint)) --> used in ticket trading window
|
||||
0x02363108 = cmplwi r12, $max
|
||||
|
||||
; cfs::CfItemBoxBase::getFreeStackCount((fw::CItemType::Type,uint)) --> returns max quantity allowed to buy
|
||||
0x023639DC = li r0, $max ; when some items in stock
|
||||
0x023639FC = li r0, $max ; when no item in stock
|
||||
|
||||
0x02363A28 = bla _testsub
|
||||
|
||||
[XCX_MAXITEMS_1U] ##########################################################
|
||||
moduleMatches = 0xAB97DE6B ; 1.0.1U
|
||||
[XCX_MAXITEMS_V102J]
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
0x023624C0 = cmplwi r12, $max
|
||||
0x0236293C = cmplwi r12, $max
|
||||
|
||||
.origin = codecave
|
||||
0x02363210 = li r0, $max ; when some items in stock
|
||||
0x02363230 = li r0, $max ; when no item in stock
|
||||
|
||||
0x02362C1C = cmplwi r12, 999
|
||||
0x02363098 = cmplwi r12, 999
|
||||
0x0236325C = bla _testsub
|
||||
|
||||
0x0236396C = li r0, 999 ; when some items in stock
|
||||
0x0236398C = li r0, 999 ; when no item in stock
|
||||
[XCX_MAXITEMS_V100U]
|
||||
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||
0x02362C1C = cmplwi r12, $max
|
||||
0x02363098 = cmplwi r12, $max
|
||||
|
||||
_testsub:
|
||||
lwz r29, 0xC(r1)
|
||||
cmpwi r3, 255
|
||||
ble exit_testsub
|
||||
li r3, 255
|
||||
exit_testsub:
|
||||
blr
|
||||
0x0236396C = li r0, $max ; when some items in stock
|
||||
0x0236398C = li r0, $max ; when no item in stock
|
||||
|
||||
0x023639B8 = bla _testsub
|
||||
|
||||
[XCX_MAXITEMS_V100J]
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
0x0236234C = cmplwi r12, $max
|
||||
0x023627C8 = cmplwi r12, $max
|
||||
|
||||
0x0236309C = li r0, $max ; when some items in stock
|
||||
0x023630BC = li r0, $max ; when no item in stock
|
||||
|
||||
0x023630E8 = bla _testsub
|
||||
|
@ -2,5 +2,27 @@
|
||||
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "Max Items"
|
||||
path = "Xenoblade Chronicles X/Mods/Maximus/Max Items"
|
||||
description = "Increase maximum items to 999."
|
||||
version = 5
|
||||
description = Increases maximum amount of items.
|
||||
version = 6
|
||||
|
||||
[Default]
|
||||
$max = 99
|
||||
|
||||
[Preset]
|
||||
name = 99 (Default)
|
||||
category = Max Items
|
||||
|
||||
[Preset]
|
||||
name = 200
|
||||
category = Max Items
|
||||
$max = 200
|
||||
|
||||
[Preset]
|
||||
name = 500
|
||||
category = Max Items
|
||||
$max = 500
|
||||
|
||||
[Preset]
|
||||
name = 999
|
||||
category = Max Items
|
||||
$max = 999
|
||||
|
@ -1,54 +1,87 @@
|
||||
[XCX_MAXMONEY] ##############################################################
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
|
||||
|
||||
[XCX_MAXMONEY_V101E_V102U]
|
||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
|
||||
; fw::Util::addMoney((int))
|
||||
0x027F6C28 = lis r12, 0x3B9B
|
||||
0x027F6C30 = addi r12, r12, -0x3601
|
||||
0x027F6C3C = lis r3, 0x3B9B
|
||||
0x027F6C40 = addi r3, r3, -0x3601
|
||||
|
||||
; fw::Util::setMoney((unsigned int))
|
||||
0x027F6BA8 = lis r4, 0x3B9B
|
||||
0x027F6BAC = addi r4, r4, -0x3601
|
||||
|
||||
; fw::Util::setTradeTicket((unsigned int))
|
||||
0x027F6D00 = lis r0, 0x3B9A
|
||||
0x027F6D04 = ori r0, r0, 0xC9FF
|
||||
|
||||
; fw::Util::setMiranium((unsigned int))
|
||||
0x027F6D9C = lis r0, 0x3B9A
|
||||
0x027F6DA0 = ori r0, r0, 0xC9FF
|
||||
|
||||
; fw::Util::addMiranium((int))
|
||||
0x027F6DFC = lis r0, 0x3B9A
|
||||
0x027F6E04 = ori r0, r0, 0xC9FF
|
||||
0x027F6E14 = lis r12, 0x3B9B
|
||||
0x027F6E18 = addi r12, r12, -0x3601
|
||||
|
||||
[XCX_MAXMONEY_1U] ##############################################################
|
||||
moduleMatches = 0xAB97DE6B ; 1.0.1U
|
||||
[XCX_MAXMONEY_V102J] ; ###########################################################
|
||||
moduleMatches = 0x7672271D ; 1.0.2J
|
||||
; fw::Util::addMoney((int))
|
||||
0x027F47CC = lis r12, 0x3B9B
|
||||
0x027F47D4 = addi r12, r12, -0x3601
|
||||
0x027F47E0 = lis r3, 0x3B9B
|
||||
0x027F47E4 = addi r3, r3, -0x3601
|
||||
; fw::Util::setMoney((unsigned int))
|
||||
0x027F474C = lis r4, 0x3B9B
|
||||
0x027F4750 = addi r4, r4, -0x3601
|
||||
; fw::Util::setTradeTicket((unsigned int))
|
||||
0x027f48A4 = lis r0, 0x3B9A
|
||||
0x027f48A8 = ori r0, r0, 0xC9FF
|
||||
; fw::Util::setMiranium((unsigned int))
|
||||
0x027F4940 = lis r0, 0x3B9A
|
||||
0x027F4944 = ori r0, r0, 0xC9FF
|
||||
; fw::Util::addMiranium((int))
|
||||
0x027F49A0 = lis r0, 0x3B9A
|
||||
0x027f49A8 = ori r0, r0, 0xC9FF
|
||||
0x027f49B8 = lis r12, 0x3B9B
|
||||
0x027f49BC = addi r12, r12, -0x3601
|
||||
|
||||
[XCX_MAXMONEY_V100U] ; ###########################################################
|
||||
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||
; fw::Util::addMoney((int))
|
||||
0x027F6BAC = lis r12, 0x3B9B
|
||||
0x027F6BB4 = addi r12, r12, -0x3601
|
||||
0x027F6BC0 = lis r3, 0x3B9B
|
||||
0x027F6BC4 = addi r3, r3, -0x3601
|
||||
|
||||
; fw::Util::setMoney((unsigned int))
|
||||
0x027F6B2C = lis r4, 0x3B9B
|
||||
0x027F6B30 = addi r4, r4, -0x3601
|
||||
|
||||
; fw::Util::setTradeTicket((unsigned int))
|
||||
0x027F6C84 = lis r0, 0x3B9A
|
||||
0x027F6C88 = ori r0, r0, 0xC9FF
|
||||
|
||||
; fw::Util::setMiranium((unsigned int))
|
||||
0x027F6D20 = lis r0, 0x3B9A
|
||||
0x027F6D24 = ori r0, r0, 0xC9FF
|
||||
|
||||
; fw::Util::addMiranium((int))
|
||||
0x027F6D80 = lis r0, 0x3B9A
|
||||
0x027F6D88 = ori r0, r0, 0xC9FF
|
||||
0x027F6D98 = lis r12, 0x3B9B
|
||||
0x027F6D9C = addi r12, r12, -0x3601
|
||||
|
||||
[XCX_MAXMONEY_V100J] ; ###########################################################
|
||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||
; fw::Util::addMoney((int))
|
||||
0x027F37A0 = lis r12, 0x3B9B
|
||||
0x027F37A8 = addi r12, r12, -0x3601
|
||||
0x027F37B4 = lis r3, 0x3B9B
|
||||
0x027F37B8 = addi r3, r3, -0x3601
|
||||
; fw::Util::setMoney((unsigned int))
|
||||
0x027F3720 = lis r4, 0x3B9B
|
||||
0x027F3724 = addi r4, r4, -0x3601
|
||||
; fw::Util::setTradeTicket((unsigned int))
|
||||
0x027F3878 = lis r0, 0x3B9A
|
||||
0x027F387C = ori r0, r0, 0xC9FF
|
||||
; fw::Util::setMiranium((unsigned int))
|
||||
0x027F3914 = lis r0, 0x3B9A
|
||||
0x027F3918 = ori r0, r0, 0xC9FF
|
||||
; fw::Util::addMiranium((int))
|
||||
0x027F3974 = lis r0, 0x3B9A
|
||||
0x027F397C = ori r0, r0, 0xC9FF
|
||||
0x027F398C = lis r12, 0x3B9B
|
||||
0x027F3990 = addi r12, r12, -0x3601
|
||||
|
@ -3,4 +3,4 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "Max Money"
|
||||
path = "Xenoblade Chronicles X/Mods/Maximus/Max Money"
|
||||
description = "Increase maximum money to 999 999 999."
|
||||
version = 5
|
||||
version = 6
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user