Add lasyan3's Xenoblade Chronicles X game patches

For more info about each mod, see https://forum.cemu.info/showthread.php/145-My-Gameplay-Patches-for-Xenoblade-Chronicles-X .
This commit is contained in:
lasyan3 2018-10-07 18:13:26 +02:00 committed by Milan
parent 3afafd47c4
commit e68bb61f5a
59 changed files with 882 additions and 85 deletions

View File

@ -0,0 +1,9 @@
[XCX_BGMNOFLIGHT]
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
; ----------------------------------------------------------------------------
; WHO : cfs::CfSoundManager::fbgmUpdate((void))
; WHAT : Never call function cfs::CfSoundManager::fbgmChangeNameDoll((bool)) so that Skell Flight music is never played
_skip = 0x22A4DD4
0x022A4DC0 = b _skip

View File

@ -0,0 +1,5 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Xenoblade Chronicles X - BGM - No Skell Flight Music"
version=2

View File

@ -0,0 +1,8 @@
[XCX_BGMNOOVER]
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
; ----------------------------------------------------------------------------
; WHO : cfs::CfSoundManagerBGM::playgear((unsigned int))
; WHAT : Never process this function so that Overdrive music is never played
0x022AB1F4 = blr

View File

@ -0,0 +1,5 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Xenoblade Chronicles X - BGM - No Overdrive Music"
version=2

View File

@ -1,59 +0,0 @@
[XCX_COLLECTIBLESRANGE]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0U
codeCaveSize = 0xC0
_itemRangeInner = 0x00000000
0x00000000 = lis r5, 0x4250
0x00000004 = addi r5, r5, 0x0000
0x00000008 = stw r5, 0x4(r23)
0x0000000C = lfs f10, 0x4(r23)
0x00000010 = fadd f10, f9, f10
0x00000014 = blr
_itemHeightInner = 0x00000020
0x00000020 = lis r5, 0x4250
0x00000024 = addi r5, r5, 0x0000
0x00000028 = stw r5, 0x4(r23)
0x0000002C = lfs f12, 0x4(r23)
0x00000030 = fadd f12, f10, f12
0x00000034 = blr
_itemRangeDoll = 0x00000040
0x00000040 = lis r5, 0x4250
0x00000044 = addi r5, r5, 0x0000
0x00000048 = stw r5, 0x4(r23)
0x0000004C = lfs f9, 0x4(r23)
0x00000050 = fadd f9, f6, f9
0x00000054 = blr
_itemHeightDoll = 0x00000060
0x00000060 = lis r5, 0x4250
0x00000064 = addi r5, r5, 0x0000
0x00000068 = stw r5, 0x4(r23)
0x0000006C = lfs f10, 0x4(r23)
0x00000070 = fadd f10, f7, f10
0x00000074 = blr
_itemRangeFlight = 0x00000080
0x00000080 = lis r5, 0x4250
0x00000084 = addi r5, r5, 0x0000
0x00000088 = stw r5, 0x4(r23)
0x0000008C = lfs f10, 0x4(r23)
0x00000090 = fadd f10, f12, f10
0x00000094 = blr
_itemHeightFlight = 0x000000A0
0x000000A0 = lis r5, 0x4250
0x000000A4 = addi r5, r5, 0x0000
0x000000A8 = stw r5, 0x4(r23)
0x000000AC = lfs f0, 0x4(r23)
0x000000B0 = fadd f0, f13, f0
0x000000B4 = blr
0x02389B80 = bla _itemRangeInner
0x02389BB8 = bla _itemHeightInner
0x02389C3C = bla _itemRangeDoll
0x02389C74 = bla _itemHeightDoll
0x02389CEC = bla _itemRangeFlight
0x02389D30 = bla _itemHeightFlight

View File

@ -1,21 +0,0 @@
[XCX_CUSTOMDROPRATIO]
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0U
codeCaveSize = 0x20
; Uncomment those TWO lines to affect the chest chance to appear
;0x021AADB8 = li r3, 3 ; 0 = no drop, 1 = always gold, 2 = always silver, 3 = always bronze
;0x021AADBC = blr
_minDropRate = 0x00000000
0x00000000 = cmpwi r31, 100 ; all items with drop ratio less than this value will have a new drop ratio set at line 0x00000010
0x00000008 = blt .+0x8
0x0000000C = b .+0x8
0x00000010 = li r31, 100 ; new drop ratio
0x00000014 = cmpw r3, r31
0x00000018 = blr
0x021AF5DC = bla _minDropRate ; modify drop ratio for gold chests
0x021AF5F8 = bla _minDropRate ; modify drop ratio for silver chests
0x021AF614 = bla _minDropRate ; modify drop ratio for bronze chests

View File

@ -1,4 +0,0 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Xenoblade Chronicles X - Custom Drop Ratio (issues with certain quests!)"
version=2

View File

@ -0,0 +1,20 @@
[XCX_CAMERA]
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
codeCaveSize = 0x8
0x00000000 = .float 5.0 ; zoom (default is 0.0)
_zoom = 0x00000000
0x00000004 = .float 60.0 ; fov (default is 40.0)
_fov = 0x00000004
# CamData::CCamDataManager::getParamsZoomDefault((CamData::eTargetTypes, unsigned char))
0x0222A19C = lis r12, _zoom@h
0x0222A1B0 = lfs f1, _zoom@l(r12)
0x0222A1CC = nop
# CamData::CCamDataManager::getFov((CamData::eTargetTypes))
0x02229CE0 = lis r11, _fov@h
0x02229CF8 = lfs f1, _fov@l(r11)
0x02229D14 = nop

View File

@ -0,0 +1,4 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Xenoblade Chronicles X - DSP - Camera customization"
version=2

View File

@ -0,0 +1,61 @@
[XCX_DISTMOBINFO]
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
codeCaveSize = 0x100
; ----------------------------------------------------------------------------
; 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 = 0x00000000
0x00000000 = lis r3, 0x4300
0x00000004 = addi r3, r3, 0x0000
0x00000008 = mr r5, r27
0x0000000C = blr
0x02387260 = bla _init_react
; ----------------------------------------------------------------------------
; WHAT : cfs::CfMobInfo::setup((void))
; WHY : Adjust the view distance based on the information type
_info_default = 0x00000020
0x00000020 = cmpwi r6, 2
0x00000024 = beq .+0x20
0x00000028 = lhz r8, 0x20(r29)
0x0000002C = cmpwi r8, 0x4300
0x00000030 = blt .+0x14
0x00000034 = lis r8, 0x4120
0x00000038 = addi r8, r8, 0x0000
0x0000003C = stw r8, 0x20(r29)
0x00000040 = li r6, 0
0x00000044 = stw r6, 0x40(r29)
0x00000048 = blr
_info_obtained = 0x00000060
0x00000060 = lhz r8, 0x20(r29)
0x00000064 = cmpwi r8, 0x4300
0x00000068 = blt .+0x14
0x0000006C = lis r8, 0x4120
0x00000070 = addi r8, r8, 0x0000
0x00000074 = stw r8, 0x20(r29)
0x00000078 = li r10, 0
0x0000007C = stw r10, 0x40(r29)
0x00000080 = blr
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

View File

@ -0,0 +1,5 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Xenoblade Chronicles X - DSP - NPC bubbles distance increased"
version=2

View File

@ -0,0 +1,9 @@
[XCX_BATTLEPOINTSX]
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
; ----------------------------------------------------------------------------
; WHO : addClassExpChara__Q2_6Battle14CBattleManagerFUiT1
; WHAT : Multiply the battle points given in... battles
;0x020C4A74 = li r0, 20 ; alternative: always gives +20 battle points
0x020C4A74 = mulli r0, r0, 30

View File

@ -0,0 +1,5 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Xenoblade Chronicles X - GPL - Battle Points X"
version=2

View File

@ -0,0 +1,9 @@
[XCX_BLADEX]
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
; ----------------------------------------------------------------------------
; WHO : fw::SocialUnion::getUnionBasePoint((int))
; WHAT : Multiply the BLADE points rewarded (default is by 10)
0x0288E610 = nop
0x0288E614 = li r3, 10

View File

@ -0,0 +1,5 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Xenoblade Chronicles X - GPL - Blade Points X"
version=2

View File

@ -0,0 +1,9 @@
[XCX_CHALLENGE]
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
; ----------------------------------------------------------------------------
; WHO : Battle::CSoulVoiceButtonChallenge::updateInternal((float))
; WHAT : Disable QTE (calling Battle::CButtonChallengeManager::CallUI)
0x0209D6F0 = nop
0x0209D720 = nop

View File

@ -0,0 +1,4 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Xenoblade Chronicles X - GPL - Button Challenges disabled"
version=2

View File

@ -0,0 +1,9 @@
[XCX_CLASSEXPX]
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
; ----------------------------------------------------------------------------
; WHO : addClassExpChara__Q2_6Battle14CBattleManagerFUiT1
; WHAT : Multiply the class experience given during combat (default by 100)
0x020C4A28 = mulli r31, r3, 2

View File

@ -0,0 +1,5 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Xenoblade Chronicles X - GPL - Class Exp Points X"
version=2

View File

@ -0,0 +1,66 @@
[XCX_COLLECTIBLESRANGE]
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
codeCaveSize = 0x100
; ----------------------------------------------------------------------------
; WHO : cfs::CfPopManagerItem::updateTouchItem((void))
; WHAT : Initialize collectibles distance
0x00000060 = .float 40.0 ; _rangeInnerConst
0x00000064 = .float 8.0 ; _heightInnerConst
0x00000068 = .float 64.0 ; _rangeDollConst
0x0000006C = .float 64.0 ; _heightDollConst
0x00000070 = .float 64.0 ; _rangeFlightConst
0x00000074 = .float 52.0 ; _heightFlightConst
_rangeInnerConst = 0x00000060
_heightInnerConst = 0x00000064
_rangeDollConst = 0x00000068
_heightDollConst = 0x0000006C
_rangeFlightConst = 0x00000070
_heightFlightConst = 0x00000074
_itemRangeInner = 0x00000000
0x00000000 = lis r5, _rangeInnerConst@ha
0x00000004 = lfs f10, _rangeInnerConst@l(r5)
0x00000008 = fadd f10, f9, f10
0x0000000C = blr
_itemHeightInner = 0x00000010
0x00000010 = lis r5, _heightInnerConst@ha
0x00000014 = lfs f12, _heightInnerConst@l(r5)
0x00000018 = fadd f12, f10, f12
0x0000001C = blr
_itemRangeDoll = 0x00000020
0x00000020 = lis r5, _rangeDollConst@ha
0x00000024 = lfs f9, _rangeDollConst@l(r5)
0x00000028 = fadd f9, f6, f9
0x0000002C = blr
_itemHeightDoll = 0x00000030
0x00000030 = lis r5, _heightDollConst@ha
0x00000034 = lfs f10, _heightDollConst@l(r5)
0x00000038 = fadd f10, f7, f10
0x0000003C = blr
_itemRangeFlight = 0x00000040
0x00000040 = lis r5, _rangeFlightConst@ha
0x00000044 = lfs f10, _rangeFlightConst@l(r5)
0x00000048 = fadd f10, f12, f10
0x0000004C = blr
_itemHeightFlight = 0x00000050
0x00000050 = lis r5, _heightFlightConst@ha
0x00000054 = lfs f0, _heightFlightConst@l(r5)
0x00000058 = fadd f0, f13, f0
0x0000005C = blr
0x02389B80 = bla _itemRangeInner
0x02389BB8 = bla _itemHeightInner
0x02389C3C = bla _itemRangeDoll
0x02389C74 = bla _itemHeightDoll
0x02389CEC = bla _itemRangeFlight
0x02389D30 = bla _itemHeightFlight

View File

@ -0,0 +1,5 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Xenoblade Chronicles X - GPL - Collectibles: increase range"
version=2

View File

@ -0,0 +1,63 @@
[XCX_CUSTOMDROPRATIO]
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
codeCaveSize = 0x50
; Uncomment those TWO lines to affect the chest chance to appear
;0x021AADB8 = li r3, 0 ; 0 = no drop, 1 = always gold, 2 = always silver, 3 = always bronze
;0x021AADBC = blr
; ----------------------------------------------------------------------------
; 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
; : It's a bit tough to explain, but the function calcRank does this:
; : 1) Calculate luck for gold chest, if success exit with gold quality (1), else process next step
; : 2) Calculate luck for silver chest, if success exit with silver quality (2), else process next step
; : 3) Calculate luck for bronze chest, if success exit with bronze quality (3), else process next step
; : 4) No chest at all, exit with no chest (0)
; : --> The mod below only changes this last step. So even if you put 1 value (gold chest), you'll still get a silver chest if the game succeeded the step 2.
0x21AAF18 = li r3, 1 ; 0 = nothing (default), 1 = gold, 2 = silver, 3 = bronze
; ----------------------------------------------------------------------------
; WHO : __CPR90__calcItemBronze__Q2_8ItemDrop16CItemDropManagerFRQ3_J19JJ28J9SDropInfoUc
; WHAT : Affect the drop ratio of materials
_minDropRate = 0x00000000
0x00000000 = cmpwi r31, 100 ; this value is the default drop ratio under which we want to set a new drop ratio (logically equal or greater)
0x00000008 = blt .+0x8
0x0000000C = b .+0x8
0x00000010 = li r31, 100 ; here you set the new drop ratio
0x00000014 = cmpw r3, r31
0x00000018 = blr
0x021AF5DC = bla _minDropRate ; modify drop ratio for gold chests
0x021AF5F8 = bla _minDropRate ; modify drop ratio for silver chests
0x021AF614 = bla _minDropRate ; modify drop ratio for bronze chests
; ----------------------------------------------------------------------------
; WHO : ItemDrop::CItemDropManager::calcItemNum((uchar))
; WHAT : 100 % chances of looting 3 equipments
;0x021AB238 = li r11, 100 ; DRP_ItemNumTable - Lot_3
; ----------------------------------------------------------------------------
; WHO : ItemDrop::CItemDropManager::calcAfxSltNum((unsigned short))
; WHAT : Control of the loot quality
0x021AB380 = li r28, 100
0x021AB394 = li r29, 100
0x021AB3AC = li r30, 100
; ----------------------------------------------------------------------------
; WHO : __CPR129__calcItem__Q2_8ItemDrop16CItemDropManagerFRQ3_J13JJ22J9SDropInfoUcRCQ3_J13JJ22J11SCreateInfo
; WHAT : Remove broken equipment
;0x021AEBE0 = li r3, 0 ; Nothing is broken
; Always best equipment (xx60) ? TO BE CONFIRMED
0x021AD710 = nop ; ground weapons ?
0x021ADA6C = nop ; ground armors
0x021ADDE8 = nop ; skell weapons
0x021AE164 = nop ; skell armors

View File

@ -0,0 +1,5 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Xenoblade Chronicles X - GPL - Materials Drop Ratio"
version=2

View File

@ -0,0 +1,7 @@
[XCX_DLC]
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
; ----------------------------------------------------------------------------
; WHO : collectQuestInfoDL__Q2_3cfs15CfSocialManagerFRQ2_2ml45resvector__tm__28_PQ2_3cfs17CfSocialQuestInfo
; WHAT : Disable endgame check to unlock DLC missions
0x022C6B50 = nop

View File

@ -0,0 +1,4 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Xenoblade Chronicles X - GPL - DLC Quests unlocked"
version=2

View File

@ -0,0 +1,8 @@
[XCX_DAMAGES]
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
; ----------------------------------------------------------------------------
; WHO : cfs::CfCompoPropertyEnemy::addDamage((int))
; WHAT : Multiply the ground damage (skells not included) given to enemy (default by 100)
0x025D896C = mulli r4, r31, 10

View File

@ -0,0 +1,4 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Xenoblade Chronicles X - GPL - Damage multiplicator (ground)"
version=2

View File

@ -0,0 +1,50 @@
[XCX_DROPONLYEQUIPMENT]
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
; ----------------------------------------------------------------------------
; WHO : ItemDrop::CItemDropManager::calcRank((unsigned short, int))
; WHAT : Affect the chance of chests
0x021AADB8 = li r3, 1 ; always GOLD chests
0x021AADBC = blr
; ----------------------------------------------------------------------------
; WHO : __CPR90__calcItemBronze__Q2_8ItemDrop16CItemDropManagerFRQ3_J19JJ28J9SDropInfoUc
; WHAT : Affect the drop ratio of materials
0x021AF5D8 = li r31, 0
0x021AF5F4 = li r31, 0
0x021AF610 = li r31, 0
; ----------------------------------------------------------------------------
; WHO : ItemDrop::CItemDropManager::calcItemNum((uchar))
; WHAT : Chances to loot multiples equipments (3 max)
0x021AB238 = li r11, 100 ; DRP_ItemNumTable - Lot_3
; ----------------------------------------------------------------------------
; WHO : __CPR98__calcItemTableID__Q2_8ItemDrop16CItemDropManagerFUcRCQ3_J20JJ29J11SCreateInfoRUs
; WHAT : Force some kind of equipment to be looted in Gold chests
; 2 = Ground weapons
; 4 = Ground armors
; 6 = Skell weapons
; 8 = Skell armors
0x021AEB88 = li r4, 6
0x021AEB5C = li r27, 6
; ----------------------------------------------------------------------------
; 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
0x021AB380 = li r28, 100
0x021AB394 = li r29, 100
0x021AB3AC = li r30, 100

View File

@ -0,0 +1,5 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Xenoblade Chronicles X - GPL - Drop only Equipment"
version=2

View File

@ -0,0 +1,39 @@
[XCX_DROPONLYMATERIALS]
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
codeCaveSize = 0x20
; ----------------------------------------------------------------------------
; WHO : __CPR129__calcItem__Q2_8ItemDrop16CItemDropManagerFRQ3_J13JJ22J9SDropInfoUcRCQ3_J13JJ22J11SCreateInfo
; WHAT : No equipment loot
_21AF30C = 0x021AF30C
0x021AEAA8 = b _21AF30C
; ----------------------------------------------------------------------------
; 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
; : It's a bit tough to explain, but the function calcRank does this:
; : 1) Calculate luck for gold chest, if success exit with gold quality (1), else process next step
; : 2) Calculate luck for silver chest, if success exit with silver quality (2), else process next step
; : 3) Calculate luck for bronze chest, if success exit with bronze quality (3), else process next step
; : 4) No chest at all, exit with no chest (0)
; : --> The mod below only changes this last step. So even if you put 1 value (gold chest), you'll still get a silver chest if the game succeeded the step 2.
0x21AAF18 = li r3, 3 ; 0 = nothing (default), 1 = gold, 2 = silver, 3 = bronze
; ----------------------------------------------------------------------------
; WHO : __CPR90__calcItemBronze__Q2_8ItemDrop16CItemDropManagerFRQ3_J19JJ28J9SDropInfoUc
; WHAT : Affect the drop ratio of materials
_minDropRate = 0x00000000
0x00000000 = cmpwi r31, 100 ; this value is the default drop ratio under which we want to set a new drop ratio (logically equal or greater)
0x00000008 = blt .+0x8
0x0000000C = b .+0x8
0x00000010 = li r31, 100 ; here you set the new drop ratio
0x00000014 = cmpw r3, r31
0x00000018 = blr
0x021AF5DC = bla _minDropRate ; modify drop ratio for gold chests
0x021AF5F8 = bla _minDropRate ; modify drop ratio for silver chests
0x021AF614 = bla _minDropRate ; modify drop ratio for bronze chests

View File

@ -0,0 +1,5 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Xenoblade Chronicles X - GPL - Drop only Materials"
version=2

View File

@ -0,0 +1,13 @@
[XCX_ENEMIESTATS]
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
; ----------------------------------------------------------------------------
; WHO : calcEnParam__3cfsFPQ2_3cfs7SChrPrmUiT2
; WHAT : Apply modificator on enemies stats (HP, Melee Attack, Melee Accuracy, Ranged Attack, Ranged Accuracy, Potential and Evasion)
; 100% = 0.001 - default value
; 70% = 0.0007
; 50% = 0.0005
; 1% = 0.00001 ; GAME CRASH (enemis are too weak)
0x1003206C = .float 0.0070

View File

@ -1,4 +1,4 @@
[Definition] [Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Xenoblade Chronicles X - Collectibles Range" name = "Xenoblade Chronicles X - GPL - Enemy Stats"
version=2 version=2

View File

@ -0,0 +1,22 @@
[XCX_UPGRADENOLIMIT_EU]
moduleMatches = 0xF882D5CF ; 1.0.1E
; ----------------------------------------------------------------------------
; WHO : menu::MenuArmsCompanyAffixStrengthen::CheckAffixStrengthen
; WHAT : Unlimited upgrades (affix selection menu)
0x02A72134 = li r10, 99 ; No upgrades remaining (getAffixTotalReinforced) (4)
; ----------------------------------------------------------------------------
; WHO : menu::MenuArmsCompanyAffixSelectItem::CheckAffixStrengthen
; WHAT : Unlimited upgrades (equipment selection menu)
0x02A6DCA8 = li r3, 0 ; No upgrades remaining (3)
;#####################################################################################
[XCX_UPGRADENOLIMIT_US]
moduleMatches = 0x30B6E091 ; 1.0.2U
0x02A72124 = li r10, 99 ; No upgrades remaining (getAffixTotalReinforced) (4)
0x02A6DC98 = li r3, 0 ; No upgrades remaining (3)

View File

@ -0,0 +1,4 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Xenoblade Chronicles X - GPL - Augments Upgrade unlimited"
version=2

View File

@ -0,0 +1,9 @@
[XCX_FRIENDPOINTSX]
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
; ----------------------------------------------------------------------------
; 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)
0x02179908 = li r31, 500

View File

@ -0,0 +1,5 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Xenoblade Chronicles X - GPL - Friend Points X"
version=2

View File

@ -0,0 +1,10 @@
[XCX_EXPX]
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
; ----------------------------------------------------------------------------
; WHO : cfs::CfCompoCtrlEnemy::execRequestCommon
; WHAT : Multiply the experience points given in battles
0x025624E4 = divi r30, r3, 2 ; mulli or divi
;0x020C1BC0 = nop; always +3000xp (+9999px) from battle (addInnerExpChara__Q2_6Battle14CBattleManagerFUiN21)
;0x022953A4 = li r4, 0x270F ; always +9999xp from exploration (addInnerExp__Q2_3cfs10CfTBoxUtilSFUi)

View File

@ -0,0 +1,5 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Xenoblade Chronicles X - GPL - Exp Points X"
version=2

View File

@ -0,0 +1,13 @@
[XCX_MAXSLOTS_EU]
moduleMatches = 0xF882D5CF ; 1.0.1E
; ----------------------------------------------------------------------------
; NAME : Cshop::updateLuItem((void))
; PURPO : max 3 slots per armor L shop
0x02A3AA18 = li r0, 3
[XCX_MAXSLOTS_US]
moduleMatches = 0x30B6E091 ;1.0.2U
0x02A3AA08 = li r0, 3

View File

@ -0,0 +1,4 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Xenoblade Chronicles X - GPL - Equipments have 3 Slots"
version=2

View File

@ -0,0 +1,55 @@
[XCX_PROBEINCOME]
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
codeCaveSize = 0x100
; ----------------------------------------------------------------------------
; 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 = 0x00000000
0x00000000 = li r8, 30 ; default is 30 for miranium
0x00000004 = addi r10, r3, 1
0x00000008 = divwu r0, r10, r8
0x0000000C = mullw r0, r0, r8
0x00000010 = subf r3, r0, r10
0x00000014 = cmpwi r3, 0
0x00000018 = blr
0x027D5250 = bla _miranium
; ----------------------------------------------------------------------------
; WHAT : changeTime__Q2_4fnet9CFnetTaskFUiT1
; WHY : Affect the quantity of the NavFrontier income for the Miranium
0x027D5278 = mulli r4, r31, 100
;0x027D1034 = mulli r3, r31, 100 ; ignore limit
; ----------------------------------------------------------------------------
; 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)
0x027D534C = li r12, 1 ; default is 5 for resources
; ----------------------------------------------------------------------------
; 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)
0x027D554C = li r12, 5 ; default is 15 for money (5 for speedrun)
0x027D5590 = mulli r3, r31, 100 ; quantity
; ----------------------------------------------------------------------------
; WHAT : changeTime__Q2_4fnet9CFnetTaskFUiT1
; WHY :
_multCount = 0x00000020
0x00000020 = lbz r0, 6(r31)
0x00000024 = mulli r0, r0, 5 ; Change this number to multiply the number of each resource mined
0x00000028 = stb r0, 6(r31)
0x0000002C = blr
0x027D5428 = bla _multCount

View File

@ -0,0 +1,5 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Xenoblade Chronicles X - GPL - Probe Income Frequency"
version=2

View File

@ -0,0 +1,16 @@
[XCX_NOITEMSELL]
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
; ----------------------------------------------------------------------------
; WHO : addItem__Q2_3cfs9CfItemBoxSFQ3_2fw9CItemType4TypeUiRQ2_3cfs12CfItemHandle
; WHAT : instead of selling item, return 0 (no systemlog)
0x02365A94 = li r31, 0 ; sellItem
; ----------------------------------------------------------------------------
; WHO : cfs::CfPopManagerItem::updateTouchItem((void))
; WHAT : exit code if addItem returns 0 (blue gem not collected and no sound)
_exit = 0x0238A1BC
0x02389EF8 = beq _exit

View File

@ -0,0 +1,5 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Xenoblade Chronicles X - GPL - Collectibles: ignore 100th"
version=2

View File

@ -0,0 +1,127 @@
[XCX_SQUADMISSIONS]
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
codeCaveSize = 0x20
_getLocalTimeSec = 0x02892000
# cfs::CfSocialManager::update((float))
0x022879D0 = nop
# cfs::CfSocialQuestManager::update((void))
0x023AB884 = nop ; 0x6B8(r12) == 0
0x023AB8B4 = nop ; isHost
0x023ABA68 = li r5, 60 ; force 0x24 - UNLOCK
0x023ABC10 = nop ; isHost
0x023ABC94 = nop ; getServerTimeSecRegion - UNLOCK
0x023ABCAC = nop ; compare with 0x28 - UNLOCK
0x023ABCB8 = nop ; compare with 0x2C - UNLOCK
_gotoJoin = 0x023ABD00 - UNLOCK
0x023ABCBC = b _gotoJoin - UNLOCK
# cfs::CfSocialQuestManager::setupQuest
0x023A0484 = nop ; isHost
##################### BLADE Home Terminal (for Squad Quest Selection)
# cfs::CfSocialManager::refreshOrderQuestInfo (called when select an entry in the BLADE menu)
0x022C805C = nop
0x022C8060 = nop
# collectQuestInfoSQ__Q2_3cfs15CfSocialManagerFRQ2_2ml45resvector__tm__28_PQ2_3cfs17CfSocialQuestInfo
0x022C58BC = nop
#################### Change Squad Mission using main menu
_shareAddr = 0x1039C17C
_iniPtr = 0x00000000
0x00000000 = li r5, 0
0x00000004 = lis r30, _shareAddr@ha
0x00000008 = stw r5, _shareAddr@l(r30)
0x0000000C = mr r30, r3
0x00000010 = blr
0x023B74A0 = bla _iniPtr
_gotoTimeout = 0x023ABDF4
_gotoNext = 0x023ABE54
0x023ABDC8 = lis r3, _shareAddr@ha
0x023ABDCC = lwz r7, _shareAddr@l(r3)
0x023ABDD0 = cmpwi r7, 1
0x023ABDD4 = beq _gotoTimeout
0x023ABDD8 = b _gotoNext
######################## More Tickets
;0x022CAC5C = nop ; no limit
;0x022CA874 = mulli r28, r4, 10 ; tickets multiplier
#####################################################################################################
[XCX_SQUADMISSIONS_EU]
moduleMatches = 0xF882D5CF ; 1.0.1E
# getServerTimeSec__Q2_2nt10CNetLibNexCFRUL
0x0295EA10 = nop
0x0295EA14 = li r0, 42
# menu::MenuSquadMission::process((void))
0x02BFC7C0 = li r11, 1
##################### BLADE Home Terminal (for Squad Quest Selection)
0x02AC5C10 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline
#################### Change Squad Mission using main menu
_shareAddr = 0x1039C17C
codeCaveSize = 0x10
_savePtr = 0x00000000
0x00000000 = li r3, 1
0x00000004 = lis r30, _shareAddr@ha
0x00000008 = stw r3, _shareAddr@l(r30)
0x0000000C = blr
0x02B85134 = bla _savePtr
0x02B8514C = bla _savePtr
0x02B85084 = li r11, 1
0x02B850A8 = li r11, 1
#####################################################################################################
[XCX_SQUADMISSIONS_US]
moduleMatches = 0x30B6E091 ; 1.0.2U
# getServerTimeSec__Q2_2nt10CNetLibNexCFRUL
0x0295EA00 = nop
0x0295EA04 = li r0, 42
# menu::MenuSquadMission::process((void))
0x02BFC7B0 = li r11, 1
##################### BLADE Home Terminal (for Squad Quest Selection)
;menu::CBladeHomuMenu
;menu:CTerminalMenu
0x02AC5C00 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline
#################### Change Squad Mission using main menu
_shareAddr = 0x1039C17C
codeCaveSize = 0x10
_savePtr = 0x00000000
0x00000000 = li r3, 1
0x00000004 = lis r30, _shareAddr@ha
0x00000008 = stw r3, _shareAddr@l(r30)
0x0000000C = blr
0x02B85124 = bla _savePtr
0x02B8513C = bla _savePtr
0x02B85074 = li r11, 1
0x02B85098 = li r11, 1

View File

@ -0,0 +1,4 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Xenoblade Chronicles X - GPL - Offline Squad Quests"
version=2

View File

@ -0,0 +1,9 @@
[XCX_OVERDRIVE]
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
; ----------------------------------------------------------------------------
; WHO : Gear::CGear::IsPermit((void))
; WHAT : Always returns true to unlock Overdrive even before chapter 5
0x021B70AC = li r3, 1
0x021B70C4 = li r3, 1

View File

@ -0,0 +1,4 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Xenoblade Chronicles X - GPL - Overdrive unlocked"
version=2

View File

@ -0,0 +1,23 @@
[XCX_UNLOCKPOSTSKELLS_EU]
moduleMatches = 0xF882D5CF ; 1.0.1E
# menu::MenuArmsCompany::IsDollLicense(const(void))
0x02A6B838 = li r3, 1 ; always returns true
# menu::MenuArmsCompanyDevelopSelectBlueprint::InitializeItemData((void))
0x02A7B220 = li r30, 0 ; unlock everything
# menu::MenuArmsCompanyDevelopSelectBlueprint::CheckEnableDevelop(const(int, bool))
;0x02A7A784 = li r3, 0 ; [CHEAT] ignore miranium and resources requirements
;#####################################################################################
[XCX_UNLOCKPOSTSKELLS_US]
moduleMatches = 0x30B6E091 ; 1.0.2U
# menu::MenuArmsCompany::IsDollLicense(const(void))
0x02A6B828 = li r3, 1 ; always returns true
# menu::MenuArmsCompanyDevelopSelectBlueprint::InitializeItemData((void))
0x02A7B210 = li r30, 0 ; unlock everything
;0x02A7A774 = li r3, 0 ; [CHEAT] ignore miranium and resources requirements

View File

@ -0,0 +1,4 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Xenoblade Chronicles X - GPL - Post-game skells unlocked"
version=2

View File

@ -0,0 +1,23 @@
[XCX_RELEASEDIST]
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
codeCaveSize = 0x20
; ----------------------------------------------------------------------------
; WHO : cfs::CfCompoPropertyEnemy::getReleasePcDistanceXZ
; WHAT : Reduce release distance
0x00000000 = .float 2.0 ; default is 1.0
_distanceConst = 0x00000000
_getRelease = 0x00000004
0x00000004 = lis r4, _distanceConst@ha
0x00000008 = lfs f0, _distanceConst@l(r4)
0x0000000C = fdivs f1, f1, f0
0x00000010 = frsp f1, f1
0x00000014 = blr
0x025D8B2C = b _getRelease ; cfs::CfCompoPropertyEnemy::getReleasePcDistanceXZ
;0x025D8B34 = b _getRelease ; cfs::CfCompoPropertyEnemy::getReleasePcDistanceY
;0x025D8B08 = b _getRelease ; cfs::CfCompoPropertyEnemy::getReleaseDistanceXZ
;0x025D8B14 = b _getRelease ; cfs::CfCompoPropertyEnemy::getReleaseDistanceY

View File

@ -0,0 +1,4 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Xenoblade Chronicles X - GPL - Release Distance Reduced"
version=2

View File

@ -0,0 +1,28 @@
[XCX_EMANUAL_EU]
moduleMatches = 0xF882D5CF ; 1.0.1E
; ----------------------------------------------------------------------------
; WHO : menu::MenuMainMenu::funcManual((int))
; WHAT : Replace eManual function with timeManipulate function
_openTimeManipulate = 0x02C7A2F0
_isFinishTM = 0x02C7A4CC # MenuTask::isFinishTimeManipulate((void))
0x02B83CB4 = bl _openTimeManipulate
0x02B83CCC = bl _openTimeManipulate
0x02B83C7C = bl _isFinishTM
0x02B83C98 = bl _isFinishTM
#################################################################################
[XCX_EMANUAL_US]
moduleMatches = 0x30B6E091 ; 1.0.2U
_openTimeManipulate = 0x02C7A290
_isFinishTM = 0x02C7A46C # MenuTask::isFinishTimeManipulate((void))
0x02B83CA4 = bl _openTimeManipulate
0x02B83CBC = bl _openTimeManipulate
0x02B83C6C = bl _isFinishTM
0x02B83C88 = bl _isFinishTM

View File

@ -0,0 +1,4 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Xenoblade Chronicles X - HUD - eManual menu changes time"
version=2

View File

@ -0,0 +1,27 @@
[XCX_MOONJUMP]
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
codeCaveSize = 0x28
0x00000020 = .float 1.05 ; vertical velocity (default is 1.00)
0x00000024 = .float 2.0 ; horizontal velocity (default is 1.00)
_velocity = 0x00000020
_hvelocity = 0x00000024
_setVelocity = 0x00000000
0x00000000 = lis r3, _velocity@h
0x00000004 = lfs f30, _velocity@l(r3)
0x00000008 = fdivs f30, f1, f30
0x0000000C = blr
0x0264A700 = bla _setVelocity
_setHorizVelocity = 0x00000010
0x00000010 = lis r12, _hvelocity@h
0x00000014 = lfs f31, _hvelocity@l(r12)
0x00000018 = fdivs f31, f1, f31
0x0000001C = blr
0x0264C0EC = bla _setHorizVelocity
# chr::CIL_BaseJump::decideLandingType((void))
0x024714E0 = li r3, 5

View File

@ -0,0 +1,4 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Xenoblade Chronicles X - PHY - Jump to the Moon!"
version=2

View File

@ -0,0 +1,17 @@
[XCX_MOVESPEED]
moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U
codeCaveSize = 0x18
0x00000014 = .float 0.7 ; dash speed (smallest means fastest, default is ?)
_speed = 0x00000014
_setSpeed = 0x00000000
0x00000000 = lis r3, _speed@h
0x00000004 = lfs f13, _speed@l(r3)
0x00000008 = fdivs f1, f1, f13
0x0000000C = lwz r3, 0(r31)
0x00000010 = blr
# chr::CInnerLabelState::applyFieldMoveWeight((float))
0x02643330 = bla _setSpeed ; SetVariableFloat(0xBD,float)

View File

@ -0,0 +1,4 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = "Xenoblade Chronicles X - PHY - Run Forrest, run!"
version=2