From 00e2eb580c406d0da47120661a36cbe86b31e0be Mon Sep 17 00:00:00 2001 From: lasyan3 Date: Sat, 16 Mar 2019 14:25:25 +0100 Subject: [PATCH] [XCX] 1.0.1U Compatibility. Mod "Equipment - Force Type" now allows to select a specific sub-type (for example only loot dual guns ground weapon). But this works only for ground weapons, ground armors and skells armors (not skells weapons). Experience mods (Inner, Class and Battle) now affect points gained in battle, missions, quests and exploration (previously only battle was affected). --- Mods/XenobladeX_FOVSetting/patches.txt | 7 +- .../patches.txt | 20 ++ .../patches.txt | 7 +- .../patches.txt | 2 +- Mods/XenobladeX_mod_BattleNoQTE/patches.txt | 2 +- .../patches.txt | 2 +- .../patches.txt | 5 + .../patches.txt | 47 ++++- .../patches.txt | 30 ++- .../patches.txt | 175 +++++++++++++++++- .../patches.txt | 66 +++++++ .../patches.txt | 7 + .../patches.txt | 13 +- .../patches.txt | 33 +++- .../patches.txt | 31 +++- .../patches.txt | 166 +++++++++++++++-- .../XenobladeX_mod_ExpBattlePointsX/rules.txt | 19 +- .../patches.txt | 22 ++- .../patches.txt | 47 ++++- .../rules.txt | 6 +- .../patches.txt | 2 +- .../rules.txt | 2 +- .../patches.txt | 172 ++++++++++++++++- .../rules.txt | 8 +- .../patches.txt | 25 +++ .../patches.txt | 47 +++++ .../patches.txt | 23 ++- .../patches.txt | 16 ++ .../patches.txt | 20 ++ .../patches.txt | 24 ++- .../patches.txt | 2 +- .../patches.txt | 46 +++++ .../patches.txt | 17 +- .../patches.txt | 7 +- .../patches.txt | 2 +- .../rules.txt | 2 +- .../patches.txt | 56 +++++- .../rules.txt | 135 +++++++++++++- .../patches.txt | 2 +- .../patches.txt | 2 +- .../patches.txt | 2 +- .../readme.txt | 9 + .../rules.txt | 2 +- .../patches.txt | 5 + .../patches.txt | 8 +- .../patches.txt | 28 +++ .../patches.txt | 23 ++- .../patches.txt | 22 ++- 48 files changed, 1314 insertions(+), 102 deletions(-) create mode 100644 Mods/XenobladeX_mod_LootTreasureQuality/readme.txt diff --git a/Mods/XenobladeX_FOVSetting/patches.txt b/Mods/XenobladeX_FOVSetting/patches.txt index 025a881d..081779fb 100644 --- a/Mods/XenobladeX_FOVSetting/patches.txt +++ b/Mods/XenobladeX_FOVSetting/patches.txt @@ -12,4 +12,9 @@ moduleMatches = 0x218F6E07, 0xF882D5CF [XCXFOVV102U] moduleMatches = 0x30B6E091 -0x10190C7C = .float $fov \ No newline at end of file +0x10190C7C = .float $fov + +[XCXFOVV101U] +moduleMatches = 0xAB97DE6B +0x10190B7C = .float $fov + diff --git a/Mods/XenobladeX_mod_BattleDamageModGround/patches.txt b/Mods/XenobladeX_mod_BattleDamageModGround/patches.txt index 46eb945f..e744275f 100644 --- a/Mods/XenobladeX_mod_BattleDamageModGround/patches.txt +++ b/Mods/XenobladeX_mod_BattleDamageModGround/patches.txt @@ -17,3 +17,23 @@ _damages = 0x00000004 0x00000010 = blr 0x025D896C = bla _damages + +[XCX_DAMAGES_1U] ###################################################################### +moduleMatches = 0xAB97DE6B ; 1.0.1U + +codeCaveSize = 0x14 + +; ---------------------------------------------------------------------------- +; WHO : cfs::CfCompoPropertyEnemy::addDamage((int)) +; WHAT : Multiply the ground damage (skells not included) given to enemy + +0x00000000 = .byte $mult +_multiplicator = 0x00000000 + +_damages = 0x00000004 +0x00000004 = lis r4, _multiplicator@ha +0x00000008 = lbz r4, _multiplicator@l(r4) +0x0000000C = mullw r4, r4, r31 +0x00000010 = blr + +0x025D88FC = bla _damages \ No newline at end of file diff --git a/Mods/XenobladeX_mod_BattleEnemyStats/patches.txt b/Mods/XenobladeX_mod_BattleEnemyStats/patches.txt index 3faf3de3..d5af7516 100644 --- a/Mods/XenobladeX_mod_BattleEnemyStats/patches.txt +++ b/Mods/XenobladeX_mod_BattleEnemyStats/patches.txt @@ -1,8 +1,13 @@ [XCX_ENEMIESTATS] -moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U +moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U ; ---------------------------------------------------------------------------- ; 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 $mod diff --git a/Mods/XenobladeX_mod_BattleEscapeDistance/patches.txt b/Mods/XenobladeX_mod_BattleEscapeDistance/patches.txt index 7d0e42b1..6e1e83fe 100644 --- a/Mods/XenobladeX_mod_BattleEscapeDistance/patches.txt +++ b/Mods/XenobladeX_mod_BattleEscapeDistance/patches.txt @@ -1,5 +1,5 @@ [XCX_RELEASEDIST] -moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U +moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U codeCaveSize = 0x20 diff --git a/Mods/XenobladeX_mod_BattleNoQTE/patches.txt b/Mods/XenobladeX_mod_BattleNoQTE/patches.txt index 687d567e..fccee723 100644 --- a/Mods/XenobladeX_mod_BattleNoQTE/patches.txt +++ b/Mods/XenobladeX_mod_BattleNoQTE/patches.txt @@ -1,5 +1,5 @@ [XCX_CHALLENGE] -moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U +moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U ; ---------------------------------------------------------------------------- ; WHO : Battle::CSoulVoiceButtonChallenge::updateInternal((float)) diff --git a/Mods/XenobladeX_mod_BattleOverdriveUnlocked/patches.txt b/Mods/XenobladeX_mod_BattleOverdriveUnlocked/patches.txt index 658b4ae1..4f6307ff 100644 --- a/Mods/XenobladeX_mod_BattleOverdriveUnlocked/patches.txt +++ b/Mods/XenobladeX_mod_BattleOverdriveUnlocked/patches.txt @@ -1,5 +1,5 @@ [XCX_OVERDRIVE] -moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U +moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U ; ---------------------------------------------------------------------------- ; WHO : Gear::CGear::IsPermit((void)) diff --git a/Mods/XenobladeX_mod_BladeDLCQuestsUnlocked/patches.txt b/Mods/XenobladeX_mod_BladeDLCQuestsUnlocked/patches.txt index 8811c9e8..e272d9e6 100644 --- a/Mods/XenobladeX_mod_BladeDLCQuestsUnlocked/patches.txt +++ b/Mods/XenobladeX_mod_BladeDLCQuestsUnlocked/patches.txt @@ -5,3 +5,8 @@ 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 + +[XCX_DLC_1U] +moduleMatches = 0xAB97DE6B ; 1.0.1U + +0x022C6AE0 = nop \ No newline at end of file diff --git a/Mods/XenobladeX_mod_BladeGainTicketsFromMissions/patches.txt b/Mods/XenobladeX_mod_BladeGainTicketsFromMissions/patches.txt index 620f8727..69fbc93a 100644 --- a/Mods/XenobladeX_mod_BladeGainTicketsFromMissions/patches.txt +++ b/Mods/XenobladeX_mod_BladeGainTicketsFromMissions/patches.txt @@ -1,4 +1,4 @@ -[XCX_TICKETS_DLC_EU] +[XCX_TICKETS_DLC_1E] moduleMatches = 0xF882D5CF ; 1.0.1E codeCaveSize = 0x60 @@ -48,7 +48,7 @@ _ticketsValue = 0x00000050 0x02B9FE2C = bla _ticketsDispAfter 0x023CC654 = bla _ticketsValue -[XCX_TICKETS_DLC_US] ############################################################################################ +[XCX_TICKETS_DLC_2U] ############################################################################################ moduleMatches = 0x30B6E091 ; 1.0.2U codeCaveSize = 0x60 @@ -90,3 +90,46 @@ _ticketsValue = 0x00000050 0x02B94708 = bla _ticketsDispBefore 0x02B9FE1C = bla _ticketsDispAfter 0x023CC654 = bla _ticketsValue + +[XCX_TICKETS_DLC_1U] ############################################################################################ +moduleMatches = 0xAB97DE6B ; 1.0.1U + +codeCaveSize = 0x60 + +0x0000005C = .byte $mission +_mission = 0x0000005C + +_shareAddr = 0x1039C080 + +_ticketsDispBefore = 0x00000000 +0x00000000 = lwz r24, 0x47C(r30) +0x00000004 = lwz r24, 8(r24) +0x00000008 = lis r26, _mission@ha +0x0000000C = lbz r26, _mission@l(r26) +0x00000010 = cmplw r24, r26 +0x00000014 = li r26, 0 +0x00000018 = lis r21, _shareAddr@ha +0x0000001C = stw r26, _shareAddr@l(r21) +0x00000020 = bnelr +0x00000024 = mr r26, r23 +0x00000028 = cmpwi r24, 5 +0x0000002C = bne .+0xC +0x00000030 = li r24, 100 +0x00000034 = divw r26, r22, r24 ; r23 = exp, r22 = money +0x00000038 = lis r21, _shareAddr@ha +0x0000003C = stw r26, _shareAddr@l(r21) +0x00000040 = blr + +_ticketsDispAfter = 0x00000044 +0x00000044 = lis r5, _shareAddr@ha +0x00000048 = lwz r5, _shareAddr@l(r5) +0x0000004C = blr + +_ticketsValue = 0x00000050 +0x00000050 = lis r27, _shareAddr@ha +0x00000054 = lwz r27, _shareAddr@l(r27) +0x00000058 = blr + +0x02B9468C = bla _ticketsDispBefore +0x02B9FD2C = bla _ticketsDispAfter +0x023CC5E4 = bla _ticketsValue diff --git a/Mods/XenobladeX_mod_BladeLv60SkellsUnlocked/patches.txt b/Mods/XenobladeX_mod_BladeLv60SkellsUnlocked/patches.txt index 6862d33c..0ff89ba7 100644 --- a/Mods/XenobladeX_mod_BladeLv60SkellsUnlocked/patches.txt +++ b/Mods/XenobladeX_mod_BladeLv60SkellsUnlocked/patches.txt @@ -1,4 +1,4 @@ -[XCX_UNLOCKPOSTSKELLS_EU] +[XCX_UNLOCKPOSTSKELLS_1E] ################################################################ moduleMatches = 0xF882D5CF ; 1.0.1E codeCaveSize = 0x1C @@ -32,8 +32,7 @@ _checkRes = 0x00000010 ;0x02A7A9FC = li r3, 0 ; 4 ;0x02A7AA24 = li r3, 0 ; 5 -;##################################################################################### -[XCX_UNLOCKPOSTSKELLS_US] +[XCX_UNLOCKPOSTSKELLS_2U] ################################################################ moduleMatches = 0x30B6E091 ; 1.0.2U codeCaveSize = 0x1C @@ -60,3 +59,28 @@ _checkRes = 0x00000010 0x00000014 = lbz r3, _resource@l(r3) 0x00000018 = blr 0x02A7A944 = bla _checkRes + +[XCX_UNLOCKPOSTSKELLS_1U] ################################################################ +moduleMatches = 0xAB97DE6B ; 1.0.1U + +codeCaveSize = 0x1C + +0x02A6B7AC = li r3, 1 ; always returns true +0x02A7B194 = li r30, 0 ; unlock everything + +0x00000000 = .byte $miranium +0x00000001 = .byte $resource +_miranium = 0x00000000 +_resource = 0x00000001 + +_checkMir = 0x00000004 +0x00000004 = lis r3, _miranium@ha +0x00000008 = lbz r3, _miranium@l(r3) +0x0000000C = blr +0x02A7A6F8 = bla _checkMir + +_checkRes = 0x00000010 +0x00000010 = lis r3, _resource@ha +0x00000014 = lbz r3, _resource@l(r3) +0x00000018 = blr +0x02A7A8C8 = bla _checkRes diff --git a/Mods/XenobladeX_mod_BladeTasksAndMissionsOffline/patches.txt b/Mods/XenobladeX_mod_BladeTasksAndMissionsOffline/patches.txt index eeb9dce1..fa2ec894 100644 --- a/Mods/XenobladeX_mod_BladeTasksAndMissionsOffline/patches.txt +++ b/Mods/XenobladeX_mod_BladeTasksAndMissionsOffline/patches.txt @@ -1,9 +1,7 @@ [XCX_SQUADMISSIONS] moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U -codeCaveSize = 0x44 - -_getLocalTimeSec = 0x02892000 +codeCaveSize = 0x6C # cfs::CfSocialManager::update((float)) 0x022879D0 = nop ; (network test?) allow call to cfs::CfSocialQuestManager::update((void)) @@ -58,6 +56,10 @@ _mult = 0x00000014 0x00000018 = .byte $uncap _uncap = 0x00000018 +; ---------------------------------------------------------------------------- +; WHO : cfs::CfSocialManager::addTradeTicket((int, unsigned int)) +; WHAT : Multiply the reward tickets given in many occasions + _moreTickets = 0x0000001C 0x0000001C = lis r28, _mult@ha 0x00000020 = lhz r28, _mult@l(r28) @@ -66,6 +68,10 @@ _moreTickets = 0x0000001C 0x022CA874 = bla _moreTickets +; ---------------------------------------------------------------------------- +; WHO : cfs::CfSocialManager::addTradeTicket((int, unsigned int)) +; WHAT : Ignore the max number of tickets we can get + _uncapTickets = 0x0000002C 0x0000002C = lis r5, _uncap@ha 0x00000030 = lbz r5, _uncap@l(r5) @@ -76,8 +82,34 @@ _uncapTickets = 0x0000002C 0x022CAC5C = bla _uncapTickets +; ---------------------------------------------------------------------------- +; WHO : menu::MenuMultiQuestInfoWindow::displayInfo((menu::MenuObject *,bool)) +; WHAT : + +_dispBefore = 0x00000044 +0x00000044 = lhz r26, 0x8C(r1) +0x00000048 = lis r24, _mult@ha +0x0000004C = lhz r24, _mult@l(r24) +0x00000050 = mullw r26, r26, r24 +0x00000054 = blr + +0x02B94718 = bla _dispBefore + +; ---------------------------------------------------------------------------- +; WHO : menu::MenuMultiQuestResult::setup((void)) +; WHAT : + +_dispAfter = 0x00000058 +0x00000058 = lhz r5, 0x5778(r29) +0x0000005C = lis r3, _mult@ha +0x00000060 = lhz r3, _mult@l(r3) +0x00000064 = mullw r5, r5, r3 +0x00000068 = blr + +0x02B9FE2C = bla _dispAfter + ##################################################################################################### -[XCX_SQUADMISSIONS_EU] +[XCX_SQUADMISSIONS_1E] moduleMatches = 0xF882D5CF ; 1.0.1E # getServerTimeSec__Q2_2nt10CNetLibNexCFRUL @@ -110,7 +142,7 @@ _savePtr = 0x00000000 0x02B850A8 = li r11, 1 ##################################################################################################### -[XCX_SQUADMISSIONS_US] +[XCX_SQUADMISSIONS_2U] moduleMatches = 0x30B6E091 ; 1.0.2U # getServerTimeSec__Q2_2nt10CNetLibNexCFRUL @@ -141,3 +173,136 @@ _savePtr = 0x00000000 0x02B85074 = li r11, 1 0x02B85098 = li r11, 1 + +##################################################################################################### +[XCX_SQUADMISSIONS_1U] +moduleMatches = 0xAB97DE6B ; 1.0.1U + +codeCaveSize = 0x7C + +0x02287960 = nop + +0x023AB814 = nop ; 0x6B8(r12) == 0 +0x023AB844 = nop ; isHost +0x023AB9F8 = li r5, 60 ; force 0x24 - UNLOCK +0x023ABBA0 = nop ; isHost +0x023A0414 = nop ; isHost +0x023ABC24 = nop ; getServerTimeSecRegion - UNLOCK +0x023ABC3C = nop ; compare with 0x28 - UNLOCK +0x023ABC48 = nop ; compare with 0x2C - UNLOCK +_gotoJoin = 0x023ABC90 - UNLOCK +0x023ABC4C = b _gotoJoin - UNLOCK + +0x022C7FEC = nop ; test réseau : lwz r10, 0x1B0(r30) --> rlwinm. r9, r10, 0,30,30 +0x022C7FF0 = nop ; test réseau +0x022C584C = nop ; rlwinm. r10, r11, 0,29,29 + +#################### Change Squad Mission using main menu + +_shareAddr = 0x1039C07C + +_iniPtr = 0x00000000 +0x00000000 = li r5, 0 +0x00000004 = lis r30, _shareAddr@ha +0x00000008 = stw r5, _shareAddr@l(r30) +0x0000000C = mr r30, r3 +0x00000010 = blr + +0x023B7430 = bla _iniPtr + +_gotoTimeout = 0x023ABD84 +_gotoNext = 0x023ABDE4 + +0x023ABD58 = lis r3, _shareAddr@ha +0x023ABD5C = lwz r7, _shareAddr@l(r3) +0x023ABD60 = cmpwi r7, 1 +0x023ABD64 = beq _gotoTimeout +0x023ABD68 = b _gotoNext + +######################## More Tickets + +0x00000014 = .short $mult +_mult = 0x00000014 +0x00000018 = .byte $uncap +_uncap = 0x00000018 + +; ---------------------------------------------------------------------------- +; WHO : cfs::CfSocialManager::addTradeTicket((int, unsigned int)) +; WHAT : Multiply the reward tickets given in many occasions + +_moreTickets = 0x0000001C +0x0000001C = lis r28, _mult@ha +0x00000020 = lhz r28, _mult@l(r28) +0x00000024 = mullw r28, r4, r28 +0x00000028 = blr + +0x022CA804 = bla _moreTickets + +; ---------------------------------------------------------------------------- +; WHO : cfs::CfSocialManager::addTradeTicket((int, unsigned int)) +; WHAT : Ignore the max number of tickets we can get + +_uncapTickets = 0x0000002C +0x0000002C = lis r5, _uncap@ha +0x00000030 = lbz r5, _uncap@l(r5) +0x00000034 = cmpwi r5, 1 +0x00000038 = beqlr +0x0000003C = mr r3, r25 +0x00000040 = blr + +0x022CABEC = bla _uncapTickets + +; ---------------------------------------------------------------------------- +; WHO : menu::MenuMultiQuestInfoWindow::displayInfo((menu::MenuObject *,bool)) +; WHAT : + +_dispBefore = 0x00000044 +0x00000044 = lhz r26, 0x8C(r1) +0x00000048 = lis r24, _mult@ha +0x0000004C = lhz r24, _mult@l(r24) +0x00000050 = mullw r26, r26, r24 +0x00000054 = blr + +0x02B9468C = bla _dispBefore + +; ---------------------------------------------------------------------------- +; WHO : menu::MenuMultiQuestResult::setup((void)) +; WHAT : + +_dispAfter = 0x00000058 +0x00000058 = lhz r5, 0x5778(r29) +0x0000005C = lis r3, _mult@ha +0x00000060 = lhz r3, _mult@l(r3) +0x00000064 = mullw r5, r5, r3 +0x00000068 = blr + +0x02B9FD2C = bla _dispAfter + +##################################################################################################### +# getServerTimeSec__Q2_2nt10CNetLibNexCFRUL +0x0295E984 = nop +0x0295E988 = li r0, 42 + +# menu::MenuSquadMission::process((void)) +0x02BFC6C0 = li r11, 1 + +##################### BLADE Home Terminal (for Squad Quest Selection) + +0x02AC5C10 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline + +#################### Change Squad Mission using main menu + +0x02AC5B84 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline + +_savePtr = 0x0000006C +0x0000006C = li r3, 1 +0x00000070 = lis r30, _shareAddr@ha +0x00000074 = stw r3, _shareAddr@l(r30) +0x00000078 = blr + +0x02B850A8 = bla _savePtr +0x02B850C0 = bla _savePtr + +0x02B84FF8 = li r11, 1 +0x02B8501C = li r11, 1 + diff --git a/Mods/XenobladeX_mod_CollectiblesCatchRange/patches.txt b/Mods/XenobladeX_mod_CollectiblesCatchRange/patches.txt index ca57f6f1..0294f31f 100644 --- a/Mods/XenobladeX_mod_CollectiblesCatchRange/patches.txt +++ b/Mods/XenobladeX_mod_CollectiblesCatchRange/patches.txt @@ -63,3 +63,69 @@ _itemHeightFlight = 0x00000050 0x02389C74 = bla _itemHeightDoll 0x02389CEC = bla _itemRangeFlight 0x02389D30 = bla _itemHeightFlight +################################################################################################# +[XCX_COLLECTIBLESRANGE_1U] +moduleMatches = 0xAB97DE6B ; 1.0.1U + +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 + +0x02389B10 = bla _itemRangeInner +0x02389B48 = bla _itemHeightInner +0x02389BCC = bla _itemRangeDoll +0x02389C04 = bla _itemHeightDoll +0x02389C7C = bla _itemRangeFlight +0x02389CC0 = bla _itemHeightFlight diff --git a/Mods/XenobladeX_mod_CollectiblesIgnore100th/patches.txt b/Mods/XenobladeX_mod_CollectiblesIgnore100th/patches.txt index be4410c6..bc02bead 100644 --- a/Mods/XenobladeX_mod_CollectiblesIgnore100th/patches.txt +++ b/Mods/XenobladeX_mod_CollectiblesIgnore100th/patches.txt @@ -14,3 +14,10 @@ moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U _exit = 0x0238A1BC 0x02389EF8 = beq _exit +[XCX_NOITEMSELL_1U] ###################################################################### +moduleMatches = 0xAB97DE6B ; 1.0.1U + +0x02365A24 = li r31, 0 ; sellItem + +_exit = 0x0238A14C +0x02389E88 = beq _exit diff --git a/Mods/XenobladeX_mod_EquipmentArmorsCanHave3AugmentSlots/patches.txt b/Mods/XenobladeX_mod_EquipmentArmorsCanHave3AugmentSlots/patches.txt index 98406ea4..8f9134bb 100644 --- a/Mods/XenobladeX_mod_EquipmentArmorsCanHave3AugmentSlots/patches.txt +++ b/Mods/XenobladeX_mod_EquipmentArmorsCanHave3AugmentSlots/patches.txt @@ -1,13 +1,18 @@ -[XCX_MAXSLOTS_EU] +[XCX_MAXSLOTS_1E] ###################################################################### moduleMatches = 0xF882D5CF ; 1.0.1E ; ---------------------------------------------------------------------------- -; NAME : Cshop::updateLuItem((void)) -; PURPO : max 3 slots per armor L shop +; WHO : Cshop::updateLuItem((void)) +; WHAT : max 3 slots per armor L shop 0x02A3AA18 = li r0, 3 -[XCX_MAXSLOTS_US] +[XCX_MAXSLOTS_2U] ###################################################################### moduleMatches = 0x30B6E091 ;1.0.2U 0x02A3AA08 = li r0, 3 + +[XCX_MAXSLOTS_1U] ###################################################################### +moduleMatches = 0xAB97DE6B ; 1.0.1U + +0x02A3A9FC = li r0, 3 \ No newline at end of file diff --git a/Mods/XenobladeX_mod_EquipmentUnlimitedAugmentUpgrades/patches.txt b/Mods/XenobladeX_mod_EquipmentUnlimitedAugmentUpgrades/patches.txt index 3f8114ee..b2202302 100644 --- a/Mods/XenobladeX_mod_EquipmentUnlimitedAugmentUpgrades/patches.txt +++ b/Mods/XenobladeX_mod_EquipmentUnlimitedAugmentUpgrades/patches.txt @@ -1,4 +1,4 @@ -[XCX_UPGRADENOLIMIT_EU] +[XCX_UPGRADENOLIMIT_1E] moduleMatches = 0xF882D5CF ; 1.0.1E codeCaveSize = 0x1C @@ -32,8 +32,8 @@ _checkStrengthen = 0x00000010 0x02A72134 = li r10, 99 ; Ignore upgrades counter 0x02A723B4 = bla _checkStrengthen -;##################################################################################### -[XCX_UPGRADENOLIMIT_US] +##################################################################################### +[XCX_UPGRADENOLIMIT_2U] moduleMatches = 0x30B6E091 ; 1.0.2U codeCaveSize = 0x1C @@ -58,3 +58,30 @@ _checkStrengthen = 0x00000010 0x02A72124 = li r10, 99 ; Ignore upgrades counter 0x02A723A4 = bla _checkStrengthen + +##################################################################################### +[XCX_UPGRADENOLIMIT_1U] +moduleMatches = 0xAB97DE6B ; 1.0.1U + +codeCaveSize = 0x1C + +0x00000000 = .byte $checkSelectItem +0x00000001 = .byte $checkStrengthen +_selectItem = 0x00000000 +_strengthen = 0x00000001 + +_checkSelectItem = 0x00000004 +0x00000004 = lis r4, _selectItem@ha +0x00000008 = lbz r3, _selectItem@l(r4) +0x0000000C = blr + +_checkStrengthen = 0x00000010 +0x00000010 = lis r3, _strengthen@ha +0x00000014 = lbz r3, _strengthen@l(r3) +0x00000018 = blr + +0x02A6DC1C = li r3, 0 ; Ignore upgrades counter +0x02A6DF70 = bla _checkSelectItem + +0x02A720A8 = li r10, 99 ; Ignore upgrades counter +0x02A72328 = bla _checkStrengthen diff --git a/Mods/XenobladeX_mod_EquipmentUnlockAugments/patches.txt b/Mods/XenobladeX_mod_EquipmentUnlockAugments/patches.txt index c49ffa82..106e3be1 100644 --- a/Mods/XenobladeX_mod_EquipmentUnlockAugments/patches.txt +++ b/Mods/XenobladeX_mod_EquipmentUnlockAugments/patches.txt @@ -1,4 +1,4 @@ -[XCX_UNLOCKAUGMENTS_EU] +[XCX_UNLOCKAUGMENTS_1E] moduleMatches = 0xF882D5CF ; 1.0.1E codeCaveSize = 0x1C @@ -26,8 +26,8 @@ _checkIgnoreEnd = 0x00000010 0x02A817C8 = bla _checkIgnore ; ignore requirements 0x02A81A3C = bla _checkIgnoreEnd ; ignore requirements (end game) -;##################################################################################### -[XCX_UNLOCKAUGMENTS_US] +##################################################################################### +[XCX_UNLOCKAUGMENTS_2U] moduleMatches = 0x30B6E091 ; 1.0.2U codeCaveSize = 0x1C @@ -50,3 +50,28 @@ _checkIgnoreEnd = 0x00000010 0x02A81790 = li r3, 0 ; all augments are known 0x02A817B8 = bla _checkIgnore ; ignore requirements 0x02A81A2C = bla _checkIgnoreEnd ; ignore requirements (end game) + +##################################################################################### +[XCX_UNLOCKAUGMENTS_1U] +moduleMatches = 0xAB97DE6B ; 1.0.1U + +codeCaveSize = 0x1C + +0x00000000 = .byte $checkIgnore +0x00000001 = .byte $checkIgnoreEnd +_ignore = 0x00000000 +_end = 0x00000001 + +_checkIgnore = 0x00000004 +0x00000004 = lis r4, _ignore@ha +0x00000008 = lbz r3, _ignore@l(r4) +0x0000000C = blr + +_checkIgnoreEnd = 0x00000010 +0x00000010 = lis r3, _end@ha +0x00000014 = lbz r3, _end@l(r3) +0x00000018 = blr + +0x02A81714 = li r3, 0 ; all augments are known +0x02A8173C = bla _checkIgnore ; ignore requirements +0x02A819B0 = bla _checkIgnoreEnd ; ignore requirements (end game) diff --git a/Mods/XenobladeX_mod_ExpBattlePointsX/patches.txt b/Mods/XenobladeX_mod_ExpBattlePointsX/patches.txt index f0b74b01..4ac7e7ba 100644 --- a/Mods/XenobladeX_mod_ExpBattlePointsX/patches.txt +++ b/Mods/XenobladeX_mod_ExpBattlePointsX/patches.txt @@ -1,34 +1,172 @@ [XCX_BATTLEPOINTSX] moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U -codeCaveSize = 0x30 +codeCaveSize = 0x9C -0x00000000 = .byte $mod +0x00000000 = .short $mod _mod = 0x00000000 ; ---------------------------------------------------------------------------- ; WHO : addClassExpChara__Q2_6Battle14CBattleManagerFUiT1 -; WHAT : Multiply the battle points given in... battles +; WHAT : Multiply the battle points gained when a new class level is reached _exp = 0x00000004 0x00000004 = lis r3, _mod@ha -0x00000008 = lbz r3, _mod@l(r3) +0x00000008 = lhz r3, _mod@l(r3) 0x0000000C = mullw r0, r0, r3 -0x00000010 = blr +0x00000010 = mulli r0, r0, 3 +0x00000014 = blr 0x020C4A74 = bla _exp ; ---------------------------------------------------------------------------- ; WHO : addInnerExpChara__Q2_6Battle14CBattleManagerFUiN21 -; WHAT : Multiply the battle points given in... battles +; WHAT : Multiply the battle points gained when a new level is reached -_exp2 = 0x00000014 -0x00000014 = lis r4, _mod@ha -0x00000018 = lbz r4, _mod@l(r4) -0x0000001C = li r3, 3 -0x00000020 = divw r4, r4, r3 -0x00000024 = mullw r9, r9, r4 -0x00000028 = add r11, r11, r9 -0x0000002C = blr +_exp2 = 0x00000018 +0x00000018 = lis r4, _mod@ha +0x0000001C = lhz r4, _mod@l(r4) +0x00000020 = mullw r9, r9, r4 +0x00000024 = add r11, r11, r9 +0x00000028 = blr 0x020C1C48 = bla _exp2 + +; ---------------------------------------------------------------------------- +; WHO : addTreasure__Q2_3cfs10CfTBoxUtilSFUib +; WHAT : Multiply the battle points given by treasures or exploration + +_expTreasure = 0x00000050 +0x00000050 = lis r3, _mod@ha +0x00000054 = lhz r3, _mod@l(r3) +0x00000058 = mullw r3, r31, r3 +0x0000005C = blr + +0x022D8EDC = bla _expTreasure + +; ---------------------------------------------------------------------------- +; WHO : menu::MenuMultiQuestInfoWindow::displayInfo((menu::MenuObject *,bool)) +; WHAT : Multiply the battle points displayed in quest popup information. + +_dispBefore = 0x00000060 +0x00000060 = lhz r24, 0x90(r1) +0x00000064 = lis r25, _mod@ha +0x00000068 = lhz r25, _mod@l(r25) +0x0000006C = mullw r24, r24, r25 +0x00000070 = blr + +0x02B94730 = bla _dispBefore + +; ---------------------------------------------------------------------------- +; WHO : menu::MenuMultiQuestResult::setup((void)) +; WHAT : Multiply the battle points displayed in quest popup results. + +_dispAfter = 0x00000074 +0x00000074 = lis r5, _mod@ha +0x00000078 = lhz r5, _mod@l(r5) +0x0000007C = mullw r3, r3, r5 +0x00000080 = stw r3, 0x7C(r1) +0x00000084 = blr + +0x02B9FEE0 = bla _dispAfter + +; ---------------------------------------------------------------------------- +; WHO : addReward__Q2_3cfs11CfSquadUtilSFUiT1 +; WHAT : Multiply the experience points given by Squad missions + +_expSquadValue = 0x00000088 +0x00000088 = lis r4, _mod@ha +0x0000008C = lhz r4, _mod@l(r4) +0x00000090 = mullw r3, r3, r4 +0x00000094 = stw r3, 0x1C(r1) +0x00000098 = blr + +0x023CC770 = bla _expSquadValue +0x023CC834 = bla _expSquadValue + +[XCX_BATTLEPOINTSX_1U] ############################################################################ +moduleMatches = 0xAB97DE6B ; 1.0.1U + +codeCaveSize = 0x9C + +0x00000000 = .short $mod +_mod = 0x00000000 + +; ---------------------------------------------------------------------------- +; WHO : addClassExpChara__Q2_6Battle14CBattleManagerFUiT1 +; WHAT : Multiply the battle points gained when a new class level is reached + +_exp = 0x00000004 +0x00000004 = lis r3, _mod@ha +0x00000008 = lhz r3, _mod@l(r3) +0x0000000C = mullw r0, r0, r3 +0x00000010 = mulli r0, r0, 3 +0x00000014 = blr + +0x020C4A74 = bla _exp + +; ---------------------------------------------------------------------------- +; WHO : addInnerExpChara__Q2_6Battle14CBattleManagerFUiN21 +; WHAT : Multiply the battle points gained when a new level is reached + +_exp2 = 0x00000018 +0x00000018 = lis r4, _mod@ha +0x0000001C = lhz r4, _mod@l(r4) +0x00000020 = mullw r9, r9, r4 +0x00000024 = add r11, r11, r9 +0x00000028 = blr + +0x020C1C48 = bla _exp2 + + +; ---------------------------------------------------------------------------- +; WHO : addTreasure__Q2_3cfs10CfTBoxUtilSFUib +; WHAT : Multiply the battle points given by treasures or exploration + +_expTreasure = 0x00000050 +0x00000050 = lis r3, _mod@ha +0x00000054 = lhz r3, _mod@l(r3) +0x00000058 = mullw r3, r31, r3 +0x0000005C = blr + +0x022D8E6C = bla _expTreasure + +; ---------------------------------------------------------------------------- +; WHO : menu::MenuMultiQuestInfoWindow::displayInfo((menu::MenuObject *,bool)) +; WHAT : Multiply the battle points displayed in quest popup information. + +_dispBefore = 0x00000060 +0x00000060 = lhz r24, 0x90(r1) +0x00000064 = lis r25, _mod@ha +0x00000068 = lhz r25, _mod@l(r25) +0x0000006C = mullw r24, r24, r25 +0x00000070 = blr + +0x02B946A4 = bla _dispBefore + +; ---------------------------------------------------------------------------- +; WHO : menu::MenuMultiQuestResult::setup((void)) +; WHAT : Multiply the battle points displayed in quest popup results. + +_dispAfter = 0x00000074 +0x00000074 = lis r5, _mod@ha +0x00000078 = lhz r5, _mod@l(r5) +0x0000007C = mullw r3, r3, r5 +0x00000080 = stw r3, 0x7C(r1) +0x00000084 = blr + +0x02B9FDE0 = bla _dispAfter + +; ---------------------------------------------------------------------------- +; WHO : addReward__Q2_3cfs11CfSquadUtilSFUiT1 +; WHAT : Multiply the experience points given by Squad missions + +_expSquadValue = 0x00000088 +0x00000088 = lis r4, _mod@ha +0x0000008C = lhz r4, _mod@l(r4) +0x00000090 = mullw r3, r3, r4 +0x00000094 = stw r3, 0x1C(r1) +0x00000098 = blr + +0x023CC700 = bla _expSquadValue +0x023CC700 = bla _expSquadValue diff --git a/Mods/XenobladeX_mod_ExpBattlePointsX/rules.txt b/Mods/XenobladeX_mod_ExpBattlePointsX/rules.txt index b414ea83..d25ab39e 100644 --- a/Mods/XenobladeX_mod_ExpBattlePointsX/rules.txt +++ b/Mods/XenobladeX_mod_ExpBattlePointsX/rules.txt @@ -2,21 +2,30 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 name = "Battle Points X" path = "Xenoblade Chronicles X/Mods/Experience/Battle Points" -description = Change the amount of Battle points gained in battle. +description = Change the amount of Battle points gained when a new level (or class level) is reached, when completing missions or exploring. version = 3 [Preset] name = "Quantity x2" -$mod = 6 +$mod = 2 [Preset] name = "Quantity x5" -$mod = 15 +$mod = 5 [Preset] name = "Quantity x10" -$mod = 30 +$mod = 10 [Preset] name = "Quantity x50" -$mod = 150 +$mod = 50 + +[Preset] +name = "Quantity x100" +$mod = 100 + +[Preset] +name = "Quantity x1000" +$mod = 1000 + diff --git a/Mods/XenobladeX_mod_ExpBladePointsX/patches.txt b/Mods/XenobladeX_mod_ExpBladePointsX/patches.txt index 6ac72b2f..126177cb 100644 --- a/Mods/XenobladeX_mod_ExpBladePointsX/patches.txt +++ b/Mods/XenobladeX_mod_ExpBladePointsX/patches.txt @@ -16,4 +16,24 @@ _exp = 0x00000004 ; WHAT : Multiply the BLADE points rewarded 0x0288E610 = nop -0x0288E614 = bla _exp \ No newline at end of file +0x0288E614 = bla _exp + +[XCX_BLADEX_1U] ###################################################################### +moduleMatches = 0xAB97DE6B ; 1.0.1U + +codeCaveSize = 0x10 + +0x00000000 = .byte $mod +_mod = 0x00000000 + +_exp = 0x00000004 +0x00000004 = lis r3, _mod@ha +0x00000008 = lbz r3, _mod@l(r3) +0x0000000C = blr + +; ---------------------------------------------------------------------------- +; WHO : fw::SocialUnion::getUnionBasePoint((int)) +; WHAT : Multiply the BLADE points rewarded + +0x0288E594 = nop +0x0288E598 = bla _exp \ No newline at end of file diff --git a/Mods/XenobladeX_mod_ExpClassExpPointsX/patches.txt b/Mods/XenobladeX_mod_ExpClassExpPointsX/patches.txt index a6099430..943ef4fa 100644 --- a/Mods/XenobladeX_mod_ExpClassExpPointsX/patches.txt +++ b/Mods/XenobladeX_mod_ExpClassExpPointsX/patches.txt @@ -1,12 +1,12 @@ [XCX_CLASSEXPX] -moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U +moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U -codeCaveSize = 0x20 +codeCaveSize = 0x50 0x00000000 = .byte $mod _mod = 0x00000000 -_exp = 0x00000004 +_expBattle = 0x00000004 0x00000004 = lis r12, _mod@ha 0x00000008 = lbz r12, _mod@l(r12) 0x0000000C = mullw r31, r3, r12 @@ -16,5 +16,44 @@ _exp = 0x00000004 ; WHO : addClassExpChara__Q2_6Battle14CBattleManagerFUiT1 ; WHAT : Multiply the class experience given during combat -0x020C4A28 = bla _exp +0x020C4A28 = bla _expBattle +; ---------------------------------------------------------------------------- +; WHO : menu::MenuMultiQuestInfoSub::displayInfoDL((menu::MenuObject *)) +; WHAT : + +_dispBefore = 0x00000014 +0x00000014 = lis r5, _mod@ha +0x00000018 = lbz r5, _mod@l(r5) +0x0000001C = mullw r3, r3, r5 +0x00000020 = stw r3, 0x34(r1) +0x00000024 = blr + +0x02B91324 = bla _dispBefore + +; ---------------------------------------------------------------------------- +; WHO : menu::MenuMultiQuestResult::setup((void)) +; WHAT : + +_dispAfter = 0x00000028 +0x00000028 = lis r5, _mod@ha +0x0000002C = lbz r5, _mod@l(r5) +0x00000030 = mullw r3, r3, r5 +0x00000034 = stw r3, 0x80(r1) +0x00000038 = blr + +0x02B9FF44 = bla _dispAfter + +; ---------------------------------------------------------------------------- +; WHO : addReward__Q2_3cfs11CfSquadUtilSFUiT1 +; WHAT : Multiply the experience points given by Squad missions + +_expSquadValue = 0x0000003C +0x0000003C = lis r4, _mod@ha +0x00000040 = lbz r4, _mod@l(r4) +0x00000044 = mullw r3, r3, r4 +0x00000048 = stw r3, 0x18(r1) +0x0000004C = blr + +0x023CC750 = bla _expSquadValue +0x023CC814 = bla _expSquadValue diff --git a/Mods/XenobladeX_mod_ExpClassExpPointsX/rules.txt b/Mods/XenobladeX_mod_ExpClassExpPointsX/rules.txt index fcee47ee..b23f1762 100644 --- a/Mods/XenobladeX_mod_ExpClassExpPointsX/rules.txt +++ b/Mods/XenobladeX_mod_ExpClassExpPointsX/rules.txt @@ -2,7 +2,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. +description = Change the amount of Class Exp points gained in battle, missions, quests and exploration. version = 3 [Preset] @@ -20,3 +20,7 @@ $mod = 10 [Preset] name = "x50" $mod = 50 + +[Preset] +name = "x100" +$mod = 100 diff --git a/Mods/XenobladeX_mod_ExpFriendsPointsX/patches.txt b/Mods/XenobladeX_mod_ExpFriendsPointsX/patches.txt index 76b687aa..35ad43c9 100644 --- a/Mods/XenobladeX_mod_ExpFriendsPointsX/patches.txt +++ b/Mods/XenobladeX_mod_ExpFriendsPointsX/patches.txt @@ -1,5 +1,5 @@ [XCX_FRIENDPOINTSX] -moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U +moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U codeCaveSize = 0x10 diff --git a/Mods/XenobladeX_mod_ExpFriendsPointsX/rules.txt b/Mods/XenobladeX_mod_ExpFriendsPointsX/rules.txt index ce59057e..d2d0acab 100644 --- a/Mods/XenobladeX_mod_ExpFriendsPointsX/rules.txt +++ b/Mods/XenobladeX_mod_ExpFriendsPointsX/rules.txt @@ -2,7 +2,7 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 name = "Friends Points X" path = "Xenoblade Chronicles X/Mods/Experience/Friends Points" -description = Set the Friends points gained in battle (flat amount). +description = More Friends points gained when activating a Soul Voice Link during battle. version = 3 [Preset] diff --git a/Mods/XenobladeX_mod_ExpInnerExpPointsX/patches.txt b/Mods/XenobladeX_mod_ExpInnerExpPointsX/patches.txt index e353bc00..d357ab62 100644 --- a/Mods/XenobladeX_mod_ExpInnerExpPointsX/patches.txt +++ b/Mods/XenobladeX_mod_ExpInnerExpPointsX/patches.txt @@ -1,19 +1,175 @@ [XCX_EXPX] moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U -codeCaveSize = 0x14 +codeCaveSize = 0x84 0x00000000 = .byte $mod _mod = 0x00000000 -_exp = 0x00000004 -0x00000004 = lis r30, _mod@ha -0x00000008 = lbz r30, _mod@l(r30) -0x0000000C = mullw r30, r3, r30 -0x00000010 = blr - ; ---------------------------------------------------------------------------- ; WHO : cfs::CfCompoCtrlEnemy::execRequestCommon ; WHAT : Multiply the experience points given in battles -0x025624E4 = bla _exp +_expBattle = 0x00000004 +0x00000004 = lis r30, _mod@ha +0x00000008 = lbz r30, _mod@l(r30) +0x0000000C = lwz r3, 0x3184(r28) +0x00000010 = mullw r3, r3, r30 +0x00000014 = stw r3, 0x3184(r28) +0x00000018 = mr r3, r28 +0x0000001C = blr + +0x025624D4 = bla _expBattle + +; ---------------------------------------------------------------------------- +; WHO : addTreasure__Q2_3cfs10CfTBoxUtilSFUib +; WHAT : Multiply the experience points given by treasures or exploration + +_expTreasure = 0x00000020 +0x00000020 = lis r3, _mod@ha +0x00000024 = lbz r3, _mod@l(r3) +0x00000028 = lhz r31, 0x1C(r1) +0x0000002C = mullw r31, r31, r3 +0x00000030 = blr + +0x022D8E64 = bla _expTreasure + +; ---------------------------------------------------------------------------- +; WHO : addReward__Q2_3cfs11CfQuestUtilSFUiQ2_3cfs17CfQuestRewardType +; WHAT : Multiply the experience points given by quests ? + +_expQuest = 0x00000034 +0x00000034 = lis r4, _mod@ha +0x00000038 = lbz r4, _mod@l(r4) +0x0000003C = mullw r3, r3, r4 +0x00000040 = stw r3, 0x60(r1) +0x00000044 = blr + +0x0229560C = bla _expQuest + +; ---------------------------------------------------------------------------- +; WHO : menu::MenuMultiQuestInfoWindow::displayInfo((menu::MenuObject *,bool)) +; WHAT : + +_dispBefore = 0x00000048 +0x00000048 = lwz r23, 0x88(r1) +0x0000004C = lis r24, _mod@ha +0x00000050 = lbz r24, _mod@l(r24) +0x00000054 = mullw r23, r23, r24 +0x00000058 = blr + +0x02B94700 = bla _dispBefore + +; ---------------------------------------------------------------------------- +; WHO : menu::MenuMultiQuestResult::setup((void)) +; WHAT : + +_dispAfter = 0x0000005C +0x0000005C = lis r5, _mod@ha +0x00000060 = lbz r5, _mod@l(r5) +0x00000064 = mullw r3, r3, r5 +0x00000068 = stw r3, 0x78(r1) +0x0000006C = blr + +0x02B9FDD4 = bla _dispAfter + +; ---------------------------------------------------------------------------- +; WHO : addReward__Q2_3cfs11CfSquadUtilSFUiT1 +; WHAT : Multiply the experience points given by Squad missions + +_expSquadValue = 0x00000070 +0x00000070 = lis r4, _mod@ha +0x00000074 = lbz r4, _mod@l(r4) +0x00000078 = mullw r3, r3, r4 +0x0000007C = stw r3, 0x10(r1) +0x00000080 = blr + +0x023CC6D4 = bla _expSquadValue + +[XCX_EXPX_1U] ############################################################################ +moduleMatches = 0xAB97DE6B ; 1.0.1U + +codeCaveSize = 0x90 + +0x00000000 = .byte $mod +_mod = 0x00000000 + +; ---------------------------------------------------------------------------- +; WHO : cfs::CfCompoCtrlEnemy::execRequestCommon +; WHAT : Multiply the experience points given in battles + +_expBattle = 0x00000004 +0x00000004 = lis r30, _mod@ha +0x00000008 = lbz r30, _mod@l(r30) +0x0000000C = lwz r3, 0x3184(r28) +0x00000010 = mullw r3, r3, r30 +0x00000014 = stw r3, 0x3184(r28) +0x00000018 = mr r3, r28 +0x0000001C = blr + +0x02562464 = bla _expBattle + +; ---------------------------------------------------------------------------- +; WHO : addTreasure__Q2_3cfs10CfTBoxUtilSFUib +; WHAT : Multiply the experience points given by treasures or exploration + +_expTreasure = 0x00000020 +0x00000020 = lis r3, _mod@ha +0x00000024 = lbz r3, _mod@l(r3) +0x00000028 = lhz r31, 0x1C(r1) +0x0000002C = mullw r31, r31, r3 +0x00000030 = blr + +0x022D8DF4 = bla _expTreasure + +; ---------------------------------------------------------------------------- +; WHO : addReward__Q2_3cfs11CfQuestUtilSFUiQ2_3cfs17CfQuestRewardType +; WHAT : Multiply the experience points given by quests ? + +_expQuest = 0x00000034 +0x00000034 = lis r4, _mod@ha +0x00000038 = lbz r4, _mod@l(r4) +0x0000003C = mullw r3, r3, r4 +0x00000040 = stw r3, 0x60(r1) +0x00000044 = blr + +0x0229559C = bla _expQuest + +; ---------------------------------------------------------------------------- +; WHO : menu::MenuMultiQuestInfoWindow::displayInfo((menu::MenuObject *,bool)) +; WHAT : + +_dispBefore = 0x00000048 +0x00000048 = lwz r23, 0x88(r1) +0x0000004C = lis r24, _mod@ha +0x00000050 = lbz r24, _mod@l(r24) +0x00000054 = mullw r23, r23, r24 +0x00000058 = blr + +0x02B94674 = bla _dispBefore + +; ---------------------------------------------------------------------------- +; WHO : menu::MenuMultiQuestResult::setup((void)) +; WHAT : + +_dispAfter = 0x0000005C +0x0000005C = lis r5, _mod@ha +0x00000060 = lbz r5, _mod@l(r5) +0x00000064 = mullw r3, r3, r5 +0x00000068 = stw r3, 0x78(r1) +0x0000006C = blr + +0x02B9FCD4 = bla _dispAfter + +; ---------------------------------------------------------------------------- +; WHO : addReward__Q2_3cfs11CfSquadUtilSFUiT1 +; WHAT : Multiply the experience points given by Squad missions + +_expSquadValue = 0x00000070 +0x00000070 = lis r4, _mod@ha +0x00000074 = lbz r4, _mod@l(r4) +0x00000078 = mullw r3, r3, r4 +0x0000007C = stw r3, 0x10(r1) +0x00000080 = blr + +0x023CC664 = bla _expSquadValue diff --git a/Mods/XenobladeX_mod_ExpInnerExpPointsX/rules.txt b/Mods/XenobladeX_mod_ExpInnerExpPointsX/rules.txt index bde88df9..a8c96c11 100644 --- a/Mods/XenobladeX_mod_ExpInnerExpPointsX/rules.txt +++ b/Mods/XenobladeX_mod_ExpInnerExpPointsX/rules.txt @@ -1,8 +1,8 @@ [Definition] titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 -name = "Inner Exp Points X" +name = "Inner Exp Points" path = "Xenoblade Chronicles X/Mods/Experience/Inner Exp Points" -description = Change the amount of Inner Exp points gained in battle. +description = Change the amount of Inner Exp points gained in battle, missions, quests and exploration. [1.0.1E/1.0.2U] version = 3 [Preset] @@ -20,3 +20,7 @@ $mod = 10 [Preset] name = "x50" $mod = 50 + +[Preset] +name = "x100" +$mod = 100 diff --git a/Mods/XenobladeX_mod_FrontierNavProbeMiraniumFrequency/patches.txt b/Mods/XenobladeX_mod_FrontierNavProbeMiraniumFrequency/patches.txt index 230a930c..58befe29 100644 --- a/Mods/XenobladeX_mod_FrontierNavProbeMiraniumFrequency/patches.txt +++ b/Mods/XenobladeX_mod_FrontierNavProbeMiraniumFrequency/patches.txt @@ -22,3 +22,28 @@ _miranium = 0x00000004 0x00000020 = blr 0x027D5250 = bla _miranium + +[XCX_FN_MIR_FREQ_1U] ################################################################## +moduleMatches = 0xAB97DE6B ; 1.0.1U + +codeCaveSize = 0x24 + +0x00000000 = .byte $mod +_mod = 0x00000000 + +; ---------------------------------------------------------------------------- +; 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 = 0x00000004 +0x00000004 = lis r8, _mod@ha +0x00000008 = lbz r8, _mod@l(r8) +0x0000000C = addi r10, r3, 1 +0x00000010 = divwu r0, r10, r8 +0x00000014 = mullw r0, r0, r8 +0x00000018 = subf r3, r0, r10 +0x0000001C = cmpwi r3, 0 +0x00000020 = blr + +0x027D51F0 = bla _miranium \ No newline at end of file diff --git a/Mods/XenobladeX_mod_FrontierNavProbeMiraniumQuantity/patches.txt b/Mods/XenobladeX_mod_FrontierNavProbeMiraniumQuantity/patches.txt index 29718a27..02717a1a 100644 --- a/Mods/XenobladeX_mod_FrontierNavProbeMiraniumQuantity/patches.txt +++ b/Mods/XenobladeX_mod_FrontierNavProbeMiraniumQuantity/patches.txt @@ -44,3 +44,50 @@ _ignoreMax = 0x00000038 0x00000044 = beqlr 0x00000048 = mr r31, r0 0x0000004C = blr + +[XCX_FN_MIR_QTY_1U] ###################################################################### +moduleMatches = 0xAB97DE6B ; 1.0.1U + +codeCaveSize = 0x50 + +0x00000000 = .short $mod +_mod = 0x00000000 + +_miranium = 0x00000004 +0x00000004 = lwzx r31, r3, r28 +0x00000008 = lis r4, _mod@ha +0x0000000C = lhz r4, _mod@l(r4) +0x00000010 = mullw r31, r31, r4 +0x00000014 = blr + +; ---------------------------------------------------------------------------- +; WHO : changeTime__Q2_4fnet9CFnetTaskFUiT1 +; WHAT : Affect the quantity of the NavFrontier income for the Miranium + +0x027D520C = bla _miranium + +; ---------------------------------------------------------------------------- +; WHO : fnet::CFnetData::toStorage(const(unsigned int)) +; WHAT : Ignore max quantity + +0x00000018 = .byte $uncap +_uncap = 0x00000018 + +0x027D0F98 = bla _getMiranium +_getMiranium = 0x0000001C +0x0000001C = lis r12, _uncap@ha +0x00000020 = lbz r12, _uncap@l(r12) +0x00000024 = cmpwi r12, 0 +0x00000028 = addis r12, r30, 1 +0x0000002C = beqlr +0x00000030 = li r3, 0 +0x00000034 = blr + +0x027D0FD0 = bla _ignoreMax +_ignoreMax = 0x00000038 +0x00000038 = lis r12, _uncap@ha +0x0000003C = lbz r12, _uncap@l(r12) +0x00000040 = cmpwi r12, 1 +0x00000044 = beqlr +0x00000048 = mr r31, r0 +0x0000004C = blr diff --git a/Mods/XenobladeX_mod_FrontierNavProbeMoneyFrequency/patches.txt b/Mods/XenobladeX_mod_FrontierNavProbeMoneyFrequency/patches.txt index 3f478a79..d17284be 100644 --- a/Mods/XenobladeX_mod_FrontierNavProbeMoneyFrequency/patches.txt +++ b/Mods/XenobladeX_mod_FrontierNavProbeMoneyFrequency/patches.txt @@ -16,4 +16,25 @@ _money = 0x00000004 ; 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 = bla _money \ No newline at end of file +0x027D554C = bla _money + +[XCX_FN_MNY_FREQ_1U] ###################################################################### +moduleMatches = 0xAB97DE6B ; 1.0.1U +moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U + +codeCaveSize = 0x10 + +0x00000000 = .byte $mod +_mod = 0x00000000 + +_money = 0x00000004 +0x00000004 = lis r12, _mod@ha +0x00000008 = lbz r12, _mod@l(r12) +0x0000000C = blr + +; ---------------------------------------------------------------------------- +; 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) + +0x027D54EC = bla _money \ No newline at end of file diff --git a/Mods/XenobladeX_mod_FrontierNavProbeMoneyQuantity/patches.txt b/Mods/XenobladeX_mod_FrontierNavProbeMoneyQuantity/patches.txt index 2b97b58f..b70dcd81 100644 --- a/Mods/XenobladeX_mod_FrontierNavProbeMoneyQuantity/patches.txt +++ b/Mods/XenobladeX_mod_FrontierNavProbeMoneyQuantity/patches.txt @@ -13,3 +13,19 @@ _money = 0x00000004 0x00000010 = blr 0x027D5588 = bla _money + +[XCX_FN_MNY_QTY_1U] ###################################################################### +moduleMatches = 0xAB97DE6B ; 1.0.1U + +codeCaveSize = 0x14 + +0x00000000 = .byte $mod +_mod = 0x00000000 + +_money = 0x00000004 +0x00000004 = lis r31, _mod@ha +0x00000008 = lbz r31, _mod@l(r31) +0x0000000C = mullw. r31, r31, r3 +0x00000010 = blr + +0x027D5528 = bla _money diff --git a/Mods/XenobladeX_mod_FrontierNavProbeResourceFrequency/patches.txt b/Mods/XenobladeX_mod_FrontierNavProbeResourceFrequency/patches.txt index e382299e..645e65c4 100644 --- a/Mods/XenobladeX_mod_FrontierNavProbeResourceFrequency/patches.txt +++ b/Mods/XenobladeX_mod_FrontierNavProbeResourceFrequency/patches.txt @@ -17,3 +17,23 @@ _res = 0x00000004 ; Frequency unit is 1 minute (so by default income is every 5 minutes) 0x027D534C = bla _res + +[XCX_FN_RES_FREQ_1U] ###################################################################### +moduleMatches = 0xAB97DE6B ; 1.0.1U + +codeCaveSize = 0x10 + +0x00000000 = .byte $mod +_mod = 0x00000000 + +_res = 0x00000004 +0x00000004 = lis r12, _mod@ha +0x00000008 = lbz r12, _mod@l(r12) +0x0000000C = blr + +; ---------------------------------------------------------------------------- +; 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) + +0x027D52EC = bla _res diff --git a/Mods/XenobladeX_mod_FrontierNavProbeResourceQuantity/patches.txt b/Mods/XenobladeX_mod_FrontierNavProbeResourceQuantity/patches.txt index 47130f1f..c46eda37 100644 --- a/Mods/XenobladeX_mod_FrontierNavProbeResourceQuantity/patches.txt +++ b/Mods/XenobladeX_mod_FrontierNavProbeResourceQuantity/patches.txt @@ -18,4 +18,26 @@ _multCount = 0x00000004 0x00000014 = stb r0, 6(r31) 0x00000018 = blr -0x027D5428 = bla _multCount \ No newline at end of file +0x027D5428 = bla _multCount + +[XCX_FN_RES_QTY_1U] ###################################################################### +moduleMatches = 0xAB97DE6B ; 1.0.1U + +codeCaveSize = 0x1C + +0x00000000 = .byte $mod +_mod = 0x00000000 + +; ---------------------------------------------------------------------------- +; WHAT : changeTime__Q2_4fnet9CFnetTaskFUiT1 +; WHY : + +_multCount = 0x00000004 +0x00000004 = lbz r0, 6(r31) +0x00000008 = lis r3, _mod@ha +0x0000000C = lbz r3, _mod@l(r3) +0x00000010 = mullw r0, r0, r3 +0x00000014 = stb r0, 6(r31) +0x00000018 = blr + +0x027D53C8 = bla _multCount diff --git a/Mods/XenobladeX_mod_GraphicsCameraDistance/patches.txt b/Mods/XenobladeX_mod_GraphicsCameraDistance/patches.txt index 88618a93..56c2f348 100644 --- a/Mods/XenobladeX_mod_GraphicsCameraDistance/patches.txt +++ b/Mods/XenobladeX_mod_GraphicsCameraDistance/patches.txt @@ -1,5 +1,5 @@ [XCX_CAMERA_DIST] -moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U +moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U codeCaveSize = 0x4 diff --git a/Mods/XenobladeX_mod_GraphicsNpcInfoBubblesDistance/patches.txt b/Mods/XenobladeX_mod_GraphicsNpcInfoBubblesDistance/patches.txt index c9567898..2cf73258 100644 --- a/Mods/XenobladeX_mod_GraphicsNpcInfoBubblesDistance/patches.txt +++ b/Mods/XenobladeX_mod_GraphicsNpcInfoBubblesDistance/patches.txt @@ -58,3 +58,49 @@ _info_obtained = 0x00000060 ; WHY : display bubbles even in skell 0x0238745C = li r3, 0 + +[XCX_DISTMOBINFO_1U] ########################################################### +moduleMatches = 0xAB97DE6B ; 1.0.1U + +codeCaveSize = 0x100 + +_init_react = 0x00000000 +0x00000000 = lis r3, 0x4300 +0x00000004 = addi r3, r3, 0x0000 +0x00000008 = mr r5, r27 +0x0000000C = blr + +0x023871F0 = bla _init_react + +_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 + + +0x02386E94 = bla _info_obtained +0x02386EC4 = bla _info_default + +0x0238EE50 = nop ; Disable the call of cfs::CfMobInfo::update function (may have side effects) +0x0238EEC0 = nop ; Disable altitude check + +0x023873EC = li r3, 0 diff --git a/Mods/XenobladeX_mod_HudChangeTimeFromEmanual/patches.txt b/Mods/XenobladeX_mod_HudChangeTimeFromEmanual/patches.txt index 26fe18bf..26d303b5 100644 --- a/Mods/XenobladeX_mod_HudChangeTimeFromEmanual/patches.txt +++ b/Mods/XenobladeX_mod_HudChangeTimeFromEmanual/patches.txt @@ -1,4 +1,4 @@ -[XCX_EMANUAL_EU] +[XCX_EMANUAL_1E] moduleMatches = 0xF882D5CF ; 1.0.1E ; ---------------------------------------------------------------------------- @@ -15,7 +15,7 @@ _isFinishTM = 0x02C7A4CC # MenuTask::isFinishTimeManipulate((void)) 0x02B83C98 = bl _isFinishTM ################################################################################# -[XCX_EMANUAL_US] +[XCX_EMANUAL_2U] moduleMatches = 0x30B6E091 ; 1.0.2U _openTimeManipulate = 0x02C7A290 @@ -26,3 +26,16 @@ _isFinishTM = 0x02C7A46C # MenuTask::isFinishTimeManipulate((void)) 0x02B83C6C = bl _isFinishTM 0x02B83C88 = bl _isFinishTM + +################################################################################# +[XCX_EMANUAL_1U] +moduleMatches = 0xAB97DE6B ; 1.0.1U + +_openTimeManipulate = 0x02C7A118 +_isFinishTM = 0x02C7A2F4 # MenuTask::isFinishTimeManipulate((void)) + +0x02B83C28 = bl _openTimeManipulate +0x02B83C40 = bl _openTimeManipulate + +0x02B83BF0 = bl _isFinishTM +0x02B83C0C = bl _isFinishTM diff --git a/Mods/XenobladeX_mod_LootEquipmentsBestQuality/patches.txt b/Mods/XenobladeX_mod_LootEquipmentsBestQuality/patches.txt index 90108d58..0c8ace5c 100644 --- a/Mods/XenobladeX_mod_LootEquipmentsBestQuality/patches.txt +++ b/Mods/XenobladeX_mod_LootEquipmentsBestQuality/patches.txt @@ -1,5 +1,5 @@ [XCX_LOOT_EQUIPMENT_BESTQUALITY] -moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U +moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U ; ---------------------------------------------------------------------------- ; WHO : __CPR98__calcItemTableID__Q2_8ItemDrop16CItemDropManagerFUcRCQ3_J20JJ29J11SCreateInfoRUs @@ -14,6 +14,5 @@ moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U ; WHO : ItemDrop::CItemDropManager::calcAfxSltNum((unsigned short)) ; WHAT : Control of the loot quality (always orange/yellow) -0x021AB380 = li r28, 100 -0x021AB394 = li r29, 100 -0x021AB3AC = li r30, 100 +0x021AEE7C = li r3, 3 +0x021AF280 = li r3, 3 diff --git a/Mods/XenobladeX_mod_LootEquipmentsForceCount/patches.txt b/Mods/XenobladeX_mod_LootEquipmentsForceCount/patches.txt index bde64f3f..7e7b2c30 100644 --- a/Mods/XenobladeX_mod_LootEquipmentsForceCount/patches.txt +++ b/Mods/XenobladeX_mod_LootEquipmentsForceCount/patches.txt @@ -1,5 +1,5 @@ [XCX_LOOT_EQUIPMENT_COUNT] -moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U +moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U codeCaveSize = 0x30 diff --git a/Mods/XenobladeX_mod_LootEquipmentsForceCount/rules.txt b/Mods/XenobladeX_mod_LootEquipmentsForceCount/rules.txt index 1f532875..e075becf 100644 --- a/Mods/XenobladeX_mod_LootEquipmentsForceCount/rules.txt +++ b/Mods/XenobladeX_mod_LootEquipmentsForceCount/rules.txt @@ -2,7 +2,7 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 name = "Equipment - Force Count" path = "Xenoblade Chronicles X/Mods/Loot/Equipment - Force Count" -description = Force the count of equipment looted (IF and only IF you get a Silver or Gold treasure of course). +description = Force the count of equipment looted in Silver or Gold treasures. version = 3 [Preset] diff --git a/Mods/XenobladeX_mod_LootEquipmentsForceType/patches.txt b/Mods/XenobladeX_mod_LootEquipmentsForceType/patches.txt index b578a79e..acc739fd 100644 --- a/Mods/XenobladeX_mod_LootEquipmentsForceType/patches.txt +++ b/Mods/XenobladeX_mod_LootEquipmentsForceType/patches.txt @@ -1,7 +1,7 @@ [XCX_LOOT_EQUIPMENT_TYPE] -moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U +moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U -codeCaveSize = 0x1C +codeCaveSize = 0x7C ; ---------------------------------------------------------------------------- ; WHO : __CPR98__calcItemTableID__Q2_8ItemDrop16CItemDropManagerFUcRCQ3_J20JJ29J11SCreateInfoRUs @@ -11,19 +11,59 @@ codeCaveSize = 0x1C ; 6 = Skell weapons ; 8 = Skell armors -0x00000000 = .byte $mod -_ratio = 0x00000000 +0x00000000 = .byte $type +_type = 0x00000000 _setEquipR4 = 0x00000004 -0x00000004 = lis r4, _ratio@ha -0x00000008 = lbz r4, _ratio@l(r4) +0x00000004 = lis r4, _type@ha +0x00000008 = lbz r4, _type@l(r4) 0x0000000C = blr 0x021AEB88 = bla _setEquipR4 _setEquipR27 = 0x00000010 -0x00000010 = lis r27, _ratio@ha -0x00000014 = lbz r27, _ratio@l(r27) +0x00000010 = lis r27, _type@ha +0x00000014 = lbz r27, _type@l(r27) 0x00000018 = blr 0x021AEB5C = bla _setEquipR27 + +0x0000001C = .byte $sub +_sub = 0x0000001C + +; Ground Weapons +_notRand = 0x00000020 +0x00000020 = clrlwi r3, r3, 24 +0x00000024 = lis r4, _sub@ha +0x00000028 = lbz r4, _sub@l(r4) +0x0000002C = cmpwi r4, 0 +0x00000030 = beqlr +0x00000034 = li r3, 0x64 +0x00000038 = blr + +0x021AC27C = bla _notRand + +_setSubGW = 0x0000003C +0x0000003C = clrlwi r30, r3, 24 +0x00000040 = lis r3, _sub@ha +0x00000044 = lbz r3, _sub@l(r3) +0x00000048 = cmpwi r3, 0 +0x0000004C = beqlr +0x00000050 = subi r3, r3, 1 +0x00000054 = clrlwi r30, r3, 24 +0x00000058 = blr + +_setSubGA = 0x0000005C +0x0000005C = clrlwi r4, r3, 24 +0x00000060 = lis r3, _sub@ha +0x00000064 = lbz r3, _sub@l(r3) +0x00000068 = cmpwi r3, 0 +0x0000006C = beqlr +0x00000070 = subi r3, r3, 1 +0x00000074 = clrlwi r4, r3, 24 +0x00000078 = blr + +0x021ADD24 = bla _setSubGA + +0x021AE41C = bla _setSubGA + diff --git a/Mods/XenobladeX_mod_LootEquipmentsForceType/rules.txt b/Mods/XenobladeX_mod_LootEquipmentsForceType/rules.txt index 56fea03b..2e04c767 100644 --- a/Mods/XenobladeX_mod_LootEquipmentsForceType/rules.txt +++ b/Mods/XenobladeX_mod_LootEquipmentsForceType/rules.txt @@ -5,18 +5,135 @@ path = "Xenoblade Chronicles X/Mods/Loot/Equipment - Force Type" description = Force the type of equipment looted. version = 3 -[Preset] -name = "Ground weapons" -$mod = 2 +[Preset] ########################################### +name = "Ground weapons - ANY ____________________________________________" +$type = 2 +$sub = 0 [Preset] -name = "Ground armors" -$mod = 4 +name = "Ground weapons - Photon Sabers" +$type = 2 +$sub = 1 [Preset] -name = "Skell weapons" -$mod = 6 +name = "Ground weapons - Assault Rifles" +$type = 2 +$sub = 2 [Preset] -name = "Skell armors" -$mod = 8 +name = "Ground weapons - Sniper Rifles" +$type = 2 +$sub = 3 + +[Preset] +name = "Ground weapons - Dual Guns" +$type = 2 +$sub = 4 + +[Preset] +name = "Ground weapons - Gatling Guns" +$type = 2 +$sub = 5 + +[Preset] +name = "Ground weapons - Rayguns" +$type = 2 +$sub = 6 + +[Preset] +name = "Ground weapons - Psycho Launchers" +$type = 2 +$sub = 7 + +[Preset] +name = "Ground weapons - Longswords" +$type = 2 +$sub = 8 + +[Preset] +name = "Ground weapons - Javelins" +$type = 2 +$sub = 9 + +[Preset] +name = "Ground weapons - Dual Swords" +$type = 2 +$sub = 10 + +[Preset] +name = "Ground weapons - Shields" +$type = 2 +$sub = 11 + +[Preset] +name = "Ground weapons - Knives" +$type = 2 +$sub = 12 + +[Preset] ########################################### +name = "Ground armors - ANY ____________________________________________" +$type = 4 +$sub = 0 + +[Preset] +name = "Ground armors - Head" +$type = 4 +$sub = 1 + +[Preset] +name = "Ground armors - Torso" +$type = 4 +$sub = 2 + +[Preset] +name = "Ground armors - Right arm" +$type = 4 +$sub = 3 + +[Preset] +name = "Ground armors - Left arm" +$type = 4 +$sub = 4 + +[Preset] +name = "Ground armors - Leg" +$type = 4 +$sub = 5 + +[Preset] ########################################### +name = "Skell weapons - ANY ____________________________________________" +$type = 6 +$sub = 0 + +[Preset] ########################################### +name = "Skell armors - ANY ____________________________________________" +$type = 8 +$sub = 0 + +[Preset] +name = "Skell armors - Head" +$type = 8 +$sub = 1 + +[Preset] +name = "Skell armors - Torso" +$type = 8 +$sub = 2 + +[Preset] +name = "Skell armors - Right arm" +$type = 8 +$sub = 3 + +[Preset] +name = "Skell armors - Left arm" +$type = 8 +$sub = 4 + +[Preset] +name = "Skell armors - Leg" +$type = 8 +$sub = 5 + + + diff --git a/Mods/XenobladeX_mod_LootEquipmentsIgnoreBroken/patches.txt b/Mods/XenobladeX_mod_LootEquipmentsIgnoreBroken/patches.txt index c1651d96..1de2a1f1 100644 --- a/Mods/XenobladeX_mod_LootEquipmentsIgnoreBroken/patches.txt +++ b/Mods/XenobladeX_mod_LootEquipmentsIgnoreBroken/patches.txt @@ -1,5 +1,5 @@ [XCX_LOOT_EQUIPMENT_BROKEN] -moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U +moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U ; ---------------------------------------------------------------------------- ; WHO : __CPR129__calcItem__Q2_8ItemDrop16CItemDropManagerFRQ3_J13JJ22J9SDropInfoUcRCQ3_J13JJ22J11SCreateInfo diff --git a/Mods/XenobladeX_mod_LootMaterialsDrop/patches.txt b/Mods/XenobladeX_mod_LootMaterialsDrop/patches.txt index 8a8d795e..87fd7113 100644 --- a/Mods/XenobladeX_mod_LootMaterialsDrop/patches.txt +++ b/Mods/XenobladeX_mod_LootMaterialsDrop/patches.txt @@ -1,5 +1,5 @@ [XCX_LOOT_MATERIALS] -moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U +moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U codeCaveSize = 0x30 diff --git a/Mods/XenobladeX_mod_LootTreasureQuality/patches.txt b/Mods/XenobladeX_mod_LootTreasureQuality/patches.txt index 0f5c6026..5bc3cfd3 100644 --- a/Mods/XenobladeX_mod_LootTreasureQuality/patches.txt +++ b/Mods/XenobladeX_mod_LootTreasureQuality/patches.txt @@ -1,5 +1,5 @@ [XCX_LOOT_FORCECHEST] -moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U +moduleMatches = 0xF882D5CF, 0x30B6E091, 0xAB97DE6B ; 1.0.1E, 1.0.2U, 1.0.1U codeCaveSize = 0x30 diff --git a/Mods/XenobladeX_mod_LootTreasureQuality/readme.txt b/Mods/XenobladeX_mod_LootTreasureQuality/readme.txt new file mode 100644 index 00000000..f4c87647 --- /dev/null +++ b/Mods/XenobladeX_mod_LootTreasureQuality/readme.txt @@ -0,0 +1,9 @@ +About presets with [FORCED]: +It's a bit tough to explain, but here's how the game selects the chest quality: + 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) + --> By default, the mod 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. That means quests which forces a quest quality will not be broken. + +But presets with [FORCED] will always give you the wanted treasure quality. This is very usefule for loot grinding, but can break quests whose need a different quality. \ No newline at end of file diff --git a/Mods/XenobladeX_mod_LootTreasureQuality/rules.txt b/Mods/XenobladeX_mod_LootTreasureQuality/rules.txt index d2a3a5e1..1a235678 100644 --- a/Mods/XenobladeX_mod_LootTreasureQuality/rules.txt +++ b/Mods/XenobladeX_mod_LootTreasureQuality/rules.txt @@ -2,7 +2,7 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 name = "Treasure Quality" path = "Xenoblade Chronicles X/Mods/Loot/Treasure Quality" -description = Select the preferred treasure quality you want to loot (see patches.txt for explanation). Presets with [FORCED] will always give you the wanted treasure but this will break quests whose need a different quality (but is very useful for loot grinding). +description = Select the preferred treasure quality you want to loot (see readme.txt for explanation). version = 3 [Preset] diff --git a/Mods/XenobladeX_mod_MusicOverdriveDisabled/patches.txt b/Mods/XenobladeX_mod_MusicOverdriveDisabled/patches.txt index d19356c4..dd93ea42 100644 --- a/Mods/XenobladeX_mod_MusicOverdriveDisabled/patches.txt +++ b/Mods/XenobladeX_mod_MusicOverdriveDisabled/patches.txt @@ -6,3 +6,8 @@ moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U ; WHAT : Never process this function so that Overdrive music is never played 0x022AB1F4 = blr + +[XCX_BGMNOOVER_1U] ###################################################################### +moduleMatches = 0xAB97DE6B ; 1.0.1U + +0x022AB184 = blr diff --git a/Mods/XenobladeX_mod_MusicSkellFlightDisabled/patches.txt b/Mods/XenobladeX_mod_MusicSkellFlightDisabled/patches.txt index 44d5e687..5a9d23f1 100644 --- a/Mods/XenobladeX_mod_MusicSkellFlightDisabled/patches.txt +++ b/Mods/XenobladeX_mod_MusicSkellFlightDisabled/patches.txt @@ -6,4 +6,10 @@ moduleMatches = 0xF882D5CF, 0x30B6E091 ; 1.0.1E, 1.0.2U ; WHAT : Never call function cfs::CfSoundManager::fbgmChangeNameDoll((bool)) so that Skell Flight music is never played _skip = 0x22A4DD4 -0x022A4DC0 = b _skip \ No newline at end of file +0x022A4DC0 = b _skip + +[XCX_BGMNOFLIGHT_1U] ###################################################################### +moduleMatches = 0xAB97DE6B ; 1.0.1U + +_skip = 0x022A4D64 +0x022A4D50 = b _skip diff --git a/Mods/XenobladeX_mod_PhysicsJumpToTheMoon/patches.txt b/Mods/XenobladeX_mod_PhysicsJumpToTheMoon/patches.txt index c9509d98..a00dfc26 100644 --- a/Mods/XenobladeX_mod_PhysicsJumpToTheMoon/patches.txt +++ b/Mods/XenobladeX_mod_PhysicsJumpToTheMoon/patches.txt @@ -25,3 +25,31 @@ _setHorizVelocity = 0x00000010 # chr::CIL_BaseJump::decideLandingType((void)) 0x024714E0 = li r3, 5 + +[XCX_MOONJUMP_1U] ###################################################################### +moduleMatches = 0xAB97DE6B ; 1.0.1U + +codeCaveSize = 0x28 + +0x00000020 = .float $vert ; vertical velocity (default is 1.00, speedrun is 1.05) +0x00000024 = .float $horz ; horizontal velocity (default is 1.00, speedrun is 2.0) + +_velocity = 0x00000020 +_hvelocity = 0x00000024 + +_setVelocity = 0x00000000 +0x00000000 = lis r3, _velocity@ha +0x00000004 = lfs f30, _velocity@l(r3) +0x00000008 = fdivs f30, f1, f30 +0x0000000C = blr +0x0264A690 = bla _setVelocity + +_setHorizVelocity = 0x00000010 +0x00000010 = lis r12, _hvelocity@ha +0x00000014 = lfs f31, _hvelocity@l(r12) +0x00000018 = fdivs f31, f1, f31 +0x0000001C = blr +0x0264C07C = bla _setHorizVelocity + +# chr::CIL_BaseJump::decideLandingType((void)) +0x02471470 = li r3, 5 \ No newline at end of file diff --git a/Mods/XenobladeX_mod_PhysicsRunForrestRun/patches.txt b/Mods/XenobladeX_mod_PhysicsRunForrestRun/patches.txt index 21fc22a4..26698290 100644 --- a/Mods/XenobladeX_mod_PhysicsRunForrestRun/patches.txt +++ b/Mods/XenobladeX_mod_PhysicsRunForrestRun/patches.txt @@ -16,9 +16,20 @@ _setSpeed = 0x00000004 # chr::CInnerLabelState::applyFieldMoveWeight((float)) 0x02643330 = bla _setSpeed ; SetVariableFloat(0xBD,float) -;0x026431C8 = bla _setSpeed -;0x026431D8 = bla _setSpeed -;0x026431E8 = bla _setSpeed -;0x026431F8 = bla _setSpeed -;0x02643208 = bla _setSpeed -;0x02643218 = bla _setSpeed +[XCX_MOVESPEED_1U] ###################################################################### +moduleMatches = 0xAB97DE6B ; 1.0.1U + +codeCaveSize = 0x18 + +0x00000000 = .float $mod ; dash speed (smallest means fastest, default is 1.0) +_speed = 0x00000000 + +_setSpeed = 0x00000004 +0x00000004 = lis r3, _speed@ha +0x00000008 = lfs f13, _speed@l(r3) +0x0000000C = fdivs f1, f1, f13 +0x00000010 = lwz r3, 0(r31) +0x00000014 = blr + +# chr::CInnerLabelState::applyFieldMoveWeight((float)) +0x026432C0 = bla _setSpeed ; SetVariableFloat(0xBD,float) diff --git a/Mods/XenobladeX_mod_WeatherForceWeather/patches.txt b/Mods/XenobladeX_mod_WeatherForceWeather/patches.txt index a07175d8..d161a4ba 100644 --- a/Mods/XenobladeX_mod_WeatherForceWeather/patches.txt +++ b/Mods/XenobladeX_mod_WeatherForceWeather/patches.txt @@ -16,4 +16,24 @@ _forceWeather = 0x00000004 0x0000000C = blr ; cfs::CfWtrManager::update((float)) -0x022B587C = nop \ No newline at end of file +0x022B587C = nop + +[XCX_CHANGEWEATHER_1U] ###################################################################### +moduleMatches = 0xAB97DE6B ; 1.0.1U + +codeCaveSize = 0x10 + +0x00000000 = .byte $wtr +_weather = 0x00000000 + +; cfs::CfWtrManager::setWeatherID((unsigned int, int)) + +0x0229F08C = bla _forceWeather + +_forceWeather = 0x00000004 +0x00000004 = lis r28, _weather@ha +0x00000008 = lbz r28, _weather@l(r28) +0x0000000C = blr + +; cfs::CfWtrManager::update((float)) +0x022B580C = nop