diff --git a/src/XenobladeChroniclesX/Mods/BattleDamageModGround/patch_dmg.asm b/src/XenobladeChroniclesX/Mods/BattleDamageModGround/patch_dmg.asm index af575e4b..a537834d 100644 --- a/src/XenobladeChroniclesX/Mods/BattleDamageModGround/patch_dmg.asm +++ b/src/XenobladeChroniclesX/Mods/BattleDamageModGround/patch_dmg.asm @@ -8,8 +8,9 @@ divw r4, r31, r4 blr _mult_or_divide: -cmpwi r0, $multOrDivision -bne- _divide_dmg +li r4, $multOrDivision +cmpwi r4, 0 +bne _divide_dmg mulli r4, r31, $mult blr diff --git a/src/XenobladeChroniclesX/Mods/BattleEnemyStats/patch_stats.asm b/src/XenobladeChroniclesX/Mods/BattleEnemyStats/patch_stats.asm index 837808e1..fb4cdaac 100644 --- a/src/XenobladeChroniclesX/Mods/BattleEnemyStats/patch_stats.asm +++ b/src/XenobladeChroniclesX/Mods/BattleEnemyStats/patch_stats.asm @@ -1,20 +1,117 @@ -; ------------------------------------------------------------------------ -; WHO : calcEnParam__3cfsFPQ2_3cfs7SChrPrmUiT2 -; WHAT : Apply modificator on enemies stats (HP, Melee Attack, Melee Accuracy, Ranged Attack, Ranged Accuracy, Potential and Evasion) +[XCX_EnemyStats] +moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J +.origin = codecave -; 100% = 0.001 - default value -; 70% = 0.0007 -; 50% = 0.0005 -; 1% = 0.00001 ; GAME CRASH (enemis are too weak) +float_EnemyMeleeAttackMult: +.float $meleeatk +float_EnemyRangedAttackMult: +.float $rangedatk +float_EnemyPotentialMult: +.float $potential +float_EnemyEvasionMult: +.float $evasion +float_EnemyMeleeAccuracyMult: +.float $meleeacc +float_EnemyRangedAccuracyMult: +.float $rangedacc +float_EnemyHPMult: +.float $hp +float_EnemyOtherMult: +.float $other -[XCX_ENEMIESTATS_V101E_V102U_V100U] -moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07, 0xAB97DE6B, 0x676EB33E ; 1.0.1E, 1.0.2U, 1.0.0E, 1.0.1U, 1.0.0U -0x1003206C = .float $mod +EnemyStatsMultMeleeAttack: +lis r3, float_EnemyMeleeAttackMult@ha +lfs f31, float_EnemyMeleeAttackMult@l(r3) +or r3, r24, r24 +blr -[XCX_ENEMIESTATS_V102J] +EnemyStatsMultRangedAttack: +lis r3, float_EnemyRangedAttackMult@ha +lfs f31, float_EnemyRangedAttackMult@l(r3) +or r3, r24, r24 +blr + +EnemyStatsMultPotential: +lis r3, float_EnemyPotentialMult@ha +lfs f31, float_EnemyPotentialMult@l(r3) +or r3, r24, r24 +blr + +EnemyStatsMultEvasion: +lis r3, float_EnemyEvasionMult@ha +lfs f31, float_EnemyEvasionMult@l(r3) +or r3, r24, r24 +blr + +EnemyStatsMultMeleeAccuracy: +lis r3, float_EnemyMeleeAccuracyMult@ha +lfs f31, float_EnemyMeleeAccuracyMult@l(r3) +or r3, r24, r24 +blr + +EnemyStatsMultRangedAccuracy: +lis r3, float_EnemyRangedAccuracyMult@ha +lfs f31, float_EnemyRangedAccuracyMult@l(r3) +or r3, r23, r23 +blr + +EnemyStatsMultHP: +lis r3, float_EnemyHPMult@ha +lfs f31, float_EnemyHPMult@l(r3) +or r3, r24, r24 +blr + +EnemyStatsMultOther: +lis r9, float_EnemyOtherMult@ha +lfs f31, float_EnemyOtherMult@l(r9) +lis r9, 0x1003 +blr + +[XCX_EnemyStats_v101E_v102U] +moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E +;calcEnParam__3cfsFPQ2_3cfs7SChrPrmUiT2 +0x1003206C = .float $other +0x025D7280 = bla EnemyStatsMultHP +0x025D72C4 = bla EnemyStatsMultMeleeAttack +0x025D7300 = bla EnemyStatsMultRangedAttack +0x025D7344 = bla EnemyStatsMultPotential +0x025D7384 = bla EnemyStatsMultEvasion +0x025D73C0 = bla EnemyStatsMultMeleeAccuracy +0x025D73FC = bla EnemyStatsMultRangedAccuracy +0x025D7414 = bla EnemyStatsMultOther + +[XCX_EnemyStats_v102J] moduleMatches = 0x7672271D ; 1.0.2J -0x1003202C = .float $mod +0x1003202C = .float $other +0x025D685C = bla EnemyStatsMultHP +0x025D68A0 = bla EnemyStatsMultMeleeAttack +0x025D68DC = bla EnemyStatsMultRangedAttack +0x025D6920 = bla EnemyStatsMultPotential +0x025D6960 = bla EnemyStatsMultEvasion +0x025D699C = bla EnemyStatsMultMeleeAccuracy +0x025D69D8 = bla EnemyStatsMultRangedAccuracy +0x025D69F0 = bla EnemyStatsMultOther -[XCX_ENEMIESTATS_V100J] +[XCX_EnemyStats_v100U] +moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U +0x1003206C = .float $other +0x025D7210 = bla EnemyStatsMultHP +0x025D7254 = bla EnemyStatsMultMeleeAttack +0x025D7290 = bla EnemyStatsMultRangedAttack +0x025D72D4 = bla EnemyStatsMultPotential +0x025D7314 = bla EnemyStatsMultEvasion +0x025D7350 = bla EnemyStatsMultMeleeAccuracy +0x025D738C = bla EnemyStatsMultRangedAccuracy +0x025D73A4 = bla EnemyStatsMultOther + +[XCX_EnemyStats_v100J] moduleMatches = 0x785CA8A9 ; 1.0.0J -0x10031FDC = .float $mod +0x10031FDC = .float $other +0x025D5D80 = bla EnemyStatsMultHP +0x025D5DC4 = bla EnemyStatsMultMeleeAttack +0x025D5E00 = bla EnemyStatsMultRangedAttack +0x025D5E44 = bla EnemyStatsMultPotential +0x025D5E84 = bla EnemyStatsMultEvasion +0x025D5EC0 = bla EnemyStatsMultMeleeAccuracy +0x025D5EFC = bla EnemyStatsMultRangedAccuracy +0x025D5F14 = bla EnemyStatsMultOther diff --git a/src/XenobladeChroniclesX/Mods/BattleEnemyStats/rules.txt b/src/XenobladeChroniclesX/Mods/BattleEnemyStats/rules.txt index 250a764d..78254434 100644 --- a/src/XenobladeChroniclesX/Mods/BattleEnemyStats/rules.txt +++ b/src/XenobladeChroniclesX/Mods/BattleEnemyStats/rules.txt @@ -2,44 +2,563 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 name = "Enemy Statistics modificator" path = "Xenoblade Chronicles X/Mods/Battle/Enemy Statistics modificator" -description = Apply a percent modificator on enemies stats (HP, Melee Attack, Melee Accuracy, Ranged Attack, Ranged Accuracy, Potential and Evasion).|You can consult the new values in the Bestiary menu. +description = Apply a percent modificator on enemies stats (HP, Melee Attack, Melee Accuracy, Ranged Attack, Ranged Accuracy, Potential and Evasion).|You can consult the new values in the Bestiary Menu. +#Credits: lanyas3, Intra version = 6 [Default] -$mod = 0.001 +$meleeatk = 0.001 +$rangedatk = 0.001 +$potential = 0.001 +$evasion = 0.001 +$meleeacc = 0.001 +$rangedacc = 0.001 +$hp = 0.001 +$other = 0.001 +$custom = 0 + +# 100% = 0.001 - default value +# 70% = 0.0007 +# 50% = 0.0005 +# 1% = 0.00001 ; GAME CRASH (enemies are too weak) [Preset] +category = All Enemy Stats name = "Set at 25%" -$mod = 0.00025 +$meleeatk = 0.00025 +$rangedatk = 0.00025 +$potential = 0.00025 +$evasion = 0.00025 +$meleeacc = 0.00025 +$rangedacc = 0.00025 +$hp = 0.00025 +$other = 0.00025 [Preset] +category = All Enemy Stats name = "Set at 50%" -$mod = 0.0005 +$meleeatk = 0.0005 +$rangedatk = 0.0005 +$potential = 0.0005 +$evasion = 0.0005 +$meleeacc = 0.0005 +$rangedacc = 0.0005 +$hp = 0.0005 +$other = 0.0005 [Preset] +category = All Enemy Stats name = "Set at 75%" -$mod = 0.00075 +$meleeatk = 0.00075 +$rangedatk = 0.00075 +$potential = 0.00075 +$evasion = 0.00075 +$meleeacc = 0.00075 +$rangedacc = 0.00075 +$hp = 0.00075 +$other = 0.00075 [Preset] +category = All Enemy Stats name = "Set at 100% (default)" default = 1 [Preset] +category = All Enemy Stats name = "Set at 125%" -$mod = 0.00125 +$meleeatk = 0.00125 +$rangedatk = 0.00125 +$potential = 0.00125 +$evasion = 0.00125 +$meleeacc = 0.00125 +$rangedacc = 0.00125 +$hp = 0.00125 +$other = 0.00125 [Preset] +category = All Enemy Stats name = "Set at 150%" -$mod = 0.0015 +$meleeatk = 0.0015 +$rangedatk = 0.0015 +$potential = 0.0015 +$evasion = 0.0015 +$meleeacc = 0.0015 +$rangedacc = 0.0015 +$hp = 0.0015 +$other = 0.0015 [Preset] +category = All Enemy Stats name = "Set at 200%" -$mod = 0.002 +$meleeatk = 0.002 +$rangedatk = 0.002 +$potential = 0.002 +$evasion = 0.002 +$meleeacc = 0.002 +$rangedacc = 0.002 +$hp = 0.002 +$other = 0.002 [Preset] +category = All Enemy Stats name = "Hell: Set at 300%" -$mod = 0.003 +$meleeatk = 0.003 +$rangedatk = 0.003 +$potential = 0.003 +$evasion = 0.003 +$meleeacc = 0.003 +$rangedacc = 0.003 +$hp = 0.003 +$other = 0.003 [Preset] +category = All Enemy Stats name = "Impossible: Set at 1000%" -$mod = 0.01 +$meleeatk = 0.01 +$rangedatk = 0.01 +$potential = 0.01 +$evasion = 0.003 #setting the evasion too high would actually make it impossible +$meleeacc = 0.01 +$rangedacc = 0.01 +$hp = 0.01 +$other = 0.01 + +[Preset] +category = All Enemy Stats +name = "Custom" +$custom = 1 + +[Preset] +category = Enemy HP Stat +condition = $custom == 1 +name = "Set at 25% " +$hp = 0.00025 +$other = 0.00025 + +[Preset] +category = Enemy HP Stat +condition = $custom == 1 +name = "Set at 50% " +$hp = 0.0005 +$other = 0.0005 + +[Preset] +category = Enemy HP Stat +condition = $custom == 1 +name = "Set at 75% " +$hp = 0.00075 +$other = 0.00075 + +[Preset] +category = Enemy HP Stat +condition = $custom == 1 +name = "Set at 100% (default) " +default = 1 + +[Preset] +category = Enemy HP Stat +condition = $custom == 1 +name = "Set at 125% " +$hp = 0.00125 +$other = 0.00125 + +[Preset] +category = Enemy HP Stat +condition = $custom == 1 +name = "Set at 150% " +$hp = 0.0015 +$other = 0.0015 + +[Preset] +category = Enemy HP Stat +condition = $custom == 1 +name = "Set at 200% " +$hp = 0.002 +$other = 0.002 + +[Preset] +category = Enemy HP Stat +condition = $custom == 1 +name = "Hell: Set at 300% " +$hp = 0.003 +$other = 0.003 + +[Preset] +category = Enemy HP Stat +condition = $custom == 1 +name = "Impossible: Set at 1000% " +$hp = 0.01 +$other = 0.01 + +[Preset] +category = Enemy Melee Attack Stat +condition = $custom == 1 +name = "Set at 25% " +$meleeatk = 0.00025 + +[Preset] +category = Enemy Melee Attack Stat +condition = $custom == 1 +name = "Set at 50% " +$meleeatk = 0.0005 + +[Preset] +category = Enemy Melee Attack Stat +condition = $custom == 1 +name = "Set at 75% " +$meleeatk = 0.00075 + +[Preset] +category = Enemy Melee Attack Stat +condition = $custom == 1 +name = "Set at 100% (default) " +default = 1 + +[Preset] +category = Enemy Melee Attack Stat +condition = $custom == 1 +name = "Set at 125% " +$meleeatk = 0.00125 + +[Preset] +category = Enemy Melee Attack Stat +condition = $custom == 1 +name = "Set at 150% " +$meleeatk = 0.0015 + +[Preset] +category = Enemy Melee Attack Stat +condition = $custom == 1 +name = "Set at 200% " +$meleeatk = 0.002 + +[Preset] +category = Enemy Melee Attack Stat +condition = $custom == 1 +name = "Hell: Set at 300% " +$meleeatk = 0.003 + +[Preset] +category = Enemy Melee Attack Stat +condition = $custom == 1 +name = "Impossible: Set at 1000% " +$meleeatk = 0.01 + +[Preset] +category = Enemy Melee Accuracy Stat +condition = $custom == 1 +name = "Set at 25% " +$meleeacc = 0.00025 + +[Preset] +category = Enemy Melee Accuracy Stat +condition = $custom == 1 +name = "Set at 50% " +$meleeacc = 0.0005 + +[Preset] +category = Enemy Melee Accuracy Stat +condition = $custom == 1 +name = "Set at 75% " +$meleeacc = 0.00075 + +[Preset] +category = Enemy Melee Accuracy Stat +condition = $custom == 1 +name = "Set at 100% (default) " +default = 1 + +[Preset] +category = Enemy Melee Accuracy Stat +condition = $custom == 1 +name = "Set at 125% " +$meleeacc = 0.00125 + +[Preset] +category = Enemy Melee Accuracy Stat +condition = $custom == 1 +name = "Set at 150% " +$meleeacc = 0.0015 + +[Preset] +category = Enemy Melee Accuracy Stat +condition = $custom == 1 +name = "Set at 200% " +$meleeacc = 0.002 + +[Preset] +category = Enemy Melee Accuracy Stat +condition = $custom == 1 +name = "Hell: Set at 300% " +$meleeacc = 0.003 + +[Preset] +category = Enemy Melee Accuracy Stat +condition = $custom == 1 +name = "Impossible: Set at 1000% " +$meleeacc = 0.01 + +[Preset] +category = Enemy Ranged Attack Stat +condition = $custom == 1 +name = "Set at 25% " +$rangedatk = 0.00025 + +[Preset] +category = Enemy Ranged Attack Stat +condition = $custom == 1 +name = "Set at 50% " +$rangedatk = 0.0005 + +[Preset] +category = Enemy Ranged Attack Stat +condition = $custom == 1 +name = "Set at 75% " +$rangedatk = 0.00075 + +[Preset] +category = Enemy Ranged Attack Stat +condition = $custom == 1 +name = "Set at 100% (default) " +default = 1 + +[Preset] +category = Enemy Ranged Attack Stat +condition = $custom == 1 +name = "Set at 125% " +$rangedatk = 0.00125 + +[Preset] +category = Enemy Ranged Attack Stat +condition = $custom == 1 +name = "Set at 150% " +$rangedatk = 0.0015 + +[Preset] +category = Enemy Ranged Attack Stat +condition = $custom == 1 +name = "Set at 200% " +$rangedatk = 0.002 + +[Preset] +category = Enemy Ranged Attack Stat +condition = $custom == 1 +name = "Hell: Set at 300% " +$rangedatk = 0.003 + +[Preset] +category = Enemy Ranged Attack Stat +condition = $custom == 1 +name = "Impossible: Set at 1000% " +$rangedatk = 0.01 + +[Preset] +category = Enemy Ranged Accuracy Stat +condition = $custom == 1 +name = "Set at 25% " +$rangedacc = 0.00025 + +[Preset] +category = Enemy Ranged Accuracy Stat +condition = $custom == 1 +name = "Set at 50% " +$rangedacc = 0.0005 + +[Preset] +category = Enemy Ranged Accuracy Stat +condition = $custom == 1 +name = "Set at 75% " +$rangedacc = 0.00075 + +[Preset] +category = Enemy Ranged Accuracy Stat +condition = $custom == 1 +name = "Set at 100% (default) " +default = 1 + +[Preset] +category = Enemy Ranged Accuracy Stat +condition = $custom == 1 +name = "Set at 125% " +$rangedacc = 0.00125 + +[Preset] +category = Enemy Ranged Accuracy Stat +condition = $custom == 1 +name = "Set at 150% " +$rangedacc = 0.0015 + +[Preset] +category = Enemy Ranged Accuracy Stat +condition = $custom == 1 +name = "Set at 200% " +$rangedacc = 0.002 + +[Preset] +category = Enemy Ranged Accuracy Stat +condition = $custom == 1 +name = "Hell: Set at 300% " +$rangedacc = 0.003 + +[Preset] +category = Enemy Ranged Accuracy Stat +condition = $custom == 1 +name = "Impossible: Set at 1000% " +$rangedacc = 0.01 + +[Preset] +category = Enemy Potential Stat +condition = $custom == 1 +name = "Set at 25% " +$potential = 0.00025 + +[Preset] +category = Enemy Potential Stat +condition = $custom == 1 +name = "Set at 50% " +$potential = 0.0005 + +[Preset] +category = Enemy Potential Stat +condition = $custom == 1 +name = "Set at 75% " +$potential = 0.00075 + +[Preset] +category = Enemy Potential Stat +condition = $custom == 1 +name = "Set at 100% (default) " +default = 1 + +[Preset] +category = Enemy Potential Stat +condition = $custom == 1 +name = "Set at 125% " +$potential = 0.00125 + +[Preset] +category = Enemy Potential Stat +condition = $custom == 1 +name = "Set at 150% " +$potential = 0.0015 + +[Preset] +category = Enemy Potential Stat +condition = $custom == 1 +name = "Set at 200% " +$potential = 0.002 + +[Preset] +category = Enemy Potential Stat +condition = $custom == 1 +name = "Hell: Set at 300% " +$potential = 0.003 + +[Preset] +category = Enemy Potential Stat +condition = $custom == 1 +name = "Impossible: Set at 1000% " +$potential = 0.01 + +[Preset] +category = Enemy Evasion Stat +condition = $custom == 1 +name = "Set at 25% " +$evasion = 0.00025 + +[Preset] +category = Enemy Evasion Stat +condition = $custom == 1 +name = "Set at 50% " +$evasion = 0.0005 + +[Preset] +category = Enemy Evasion Stat +condition = $custom == 1 +name = "Set at 75% " +$evasion = 0.00075 + +[Preset] +category = Enemy Evasion Stat +condition = $custom == 1 +name = "Set at 100% (default) " +default = 1 + +[Preset] +category = Enemy Evasion Stat +condition = $custom == 1 +name = "Set at 125% " +$evasion = 0.00125 + +[Preset] +category = Enemy Evasion Stat +condition = $custom == 1 +name = "Set at 150% " +$evasion = 0.0015 + +[Preset] +category = Enemy Evasion Stat +condition = $custom == 1 +name = "Set at 200% " +$evasion = 0.002 + +[Preset] +category = Enemy Evasion Stat +condition = $custom == 1 +name = "Hell: Set at 300% " +$evasion = 0.003 + +#remember to remove the $other from Enemy HP Stats when uncommenting +#[Preset] +#category = Enemy Other Stats +#condition = $custom == 1 +#name = "Set at 25% " +#$other = 0.00025 +# +#[Preset] +#category = Enemy Other Stats +#condition = $custom == 1 +#name = "Set at 50% " +#$other = 0.0005 +# +#[Preset] +#category = Enemy Other Stats +#condition = $custom == 1 +#name = "Set at 75% " +#$other = 0.00075 +# +#[Preset] +#category = Enemy Other Stats +#condition = $custom == 1 +#name = "Set at 100% (default) " +#default = 1 +# +#[Preset] +#category = Enemy Other Stats +#condition = $custom == 1 +#name = "Set at 125% " +#$other = 0.00125 +# +#[Preset] +#category = Enemy Other Stats +#condition = $custom == 1 +#name = "Set at 150% " +#$other = 0.0015 +# +#[Preset] +#category = Enemy Other Stats +#condition = $custom == 1 +#name = "Set at 200% " +#$other = 0.002 +# +#[Preset] +#category = Enemy Other Stats +#condition = $custom == 1 +#name = "Hell: Set at 300% " +#$other = 0.003 +# +#[Preset] +#category = Enemy Other Stats +#condition = $custom == 1 +#name = "Impossible: Set at 1000% " +#$other = 0.01 diff --git a/src/XenobladeChroniclesX/Mods/BladeFieldSkill/rules.txt b/src/XenobladeChroniclesX/Mods/BladeFieldSkill/rules.txt index 05295991..9614c68c 100644 --- a/src/XenobladeChroniclesX/Mods/BladeFieldSkill/rules.txt +++ b/src/XenobladeChroniclesX/Mods/BladeFieldSkill/rules.txt @@ -3,7 +3,7 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 name = Field Skill Level path = "Xenoblade Chronicles X/Mods/BLADE/Field Skill Level" description = "You can change your Mechanical, Archaeological and Biological field skill level." -version = 7 +version = 6 [Default] $meclevel = 5 diff --git a/src/XenobladeChroniclesX/Mods/BladeGainTicketsFromMissions/patch_gainticketsmissions.asm b/src/XenobladeChroniclesX/Mods/BladeGainTicketsFromMissions/patch_gainticketsmissions.asm index 294d7f4c..ba8b079c 100644 --- a/src/XenobladeChroniclesX/Mods/BladeGainTicketsFromMissions/patch_gainticketsmissions.asm +++ b/src/XenobladeChroniclesX/Mods/BladeGainTicketsFromMissions/patch_gainticketsmissions.asm @@ -1,7 +1,6 @@ [XCX_TICKETS_DLC] moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J .origin = codecave -.int $mission VarTicketsAmount: .int 0 diff --git a/src/XenobladeChroniclesX/Mods/BladeGlobalNemesisMissionsOffline/patch_offline_nemesis.asm b/src/XenobladeChroniclesX/Mods/BladeGlobalNemesisMissionsOffline/patch_offline_nemesis.asm index 2ad2aa2f..69580bfa 100644 --- a/src/XenobladeChroniclesX/Mods/BladeGlobalNemesisMissionsOffline/patch_offline_nemesis.asm +++ b/src/XenobladeChroniclesX/Mods/BladeGlobalNemesisMissionsOffline/patch_offline_nemesis.asm @@ -1,10 +1,8 @@ -[XCX_OFFLINEWE] +[XCX_OfflineWorldEnemy] moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J .origin = codecave -.int $ygg ;0x400D | mission ID for ygg -.int $teli ;0x4008 or 0x4009 | mission ID's for teli -.int $nemesiscost ;sets blade medals cost of nemesis mission -.int $minmedals ;sets minimum blade medal count +;0x400D | mission ID for ygg +;0x4008 or 0x4009 | mission ID's for teli ; Manage RPs & Appraisal VarShareRP: @@ -14,8 +12,9 @@ VarShareAP: .int 0 _loadRP: -lis r12, 0x0022 -ori r12, r12, 0x5510 +RPAmmount = $RPAmmount +lis r12, RPAmmount@hi +ori r12, r12, RPAmmount@l blr ; menu::CTerminalMenu_PieceExchange::offline((void)) @@ -24,7 +23,7 @@ _single: li r3, 0 blr -[XCX_OFFLINEWE_V101E_V102U] ; ###################################################################################### +[XCX_OfflineWorldEnemy_v101E_v102U] ; ###################################################################################### moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E ; cfs::CfSocialManager::update((float)) 0x022879D0 = nop ; (network test?) allow call to cfs::CfSocialQuestManager::update((void)) @@ -72,7 +71,7 @@ moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E 0x02888E00 = bge 0x02888E08 ;LAB_02888e08 0x02888E04 = li r3, $minmedals -[XCX_OFFLINEWE_V101E] ; ############################################################################################ +[XCX_OfflineWorldEnemy_v101E] ; ############################################################################################ moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E 0x02AC5C10 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline ; menu::MenuMultiQuestOrder::move((void)) @@ -85,7 +84,7 @@ moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E ; __CPR129__getMultiQuestReward__Q2_3cfs15CfSocialManagerCFUiRQ2_3mtl68fixed_vector__tm__48_Q3_3cfsJ28J11QuestRewardXCUiL_2_46T1 --> OK 0x022CA324 = nop ; always all items? -[XCX_OFFLINEWE_V102U] ; ############################################################################################ +[XCX_OfflineWorldEnemy_v102U] ; ############################################################################################ moduleMatches = 0x30B6E091 ; 1.0.2U 0x02AC5C00 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline 0x02B9B0A0 = li r3, 1 ; Disable call to menu::MenuMultiQuestOrder::canOrderWorldEnemy @@ -93,7 +92,7 @@ moduleMatches = 0x30B6E091 ; 1.0.2U 0x02AC612C = ba _single ; menu::CBladeHomuMenu::single((void)) 0x022CA324 = nop ; always all items? ;; -[XCX_OFFLINEWE_V102J] ; ############################################################################################ +[XCX_OfflineWorldEnemy_v102J] ; ############################################################################################ moduleMatches = 0x7672271D ; 1.0.2J 0x022873E8 = nop ; (network test?) allow call to cfs::CfSocialQuestManager::update((void)) 0x022C7A6C = nop ; network test : lwz r10, 0x1B0(r30) --> rlwinm. r9, r10, 0,30,30 @@ -136,7 +135,7 @@ moduleMatches = 0x7672271D ; 1.0.2J 0x02AC27FC = ba _single ; menu::CBladeHomuMenu::single((void)) 0x022C9D34 = nop ; always all items? -[XCX_OFFLINEWE_V100U] ; ############################################################################################ +[XCX_OfflineWorldEnemy_v100U] ; ############################################################################################ moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U 0x02287960 = nop ; (network test?) allow call to cfs::CfSocialQuestManager::update((void)) 0x022C7FEC = nop ; network test : lwz r10, 0x1B0(r30) --> rlwinm. r9, r10, 0,30,30 @@ -179,7 +178,7 @@ moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U 0x02AC60B0 = ba _single ; menu::CBladeHomuMenu::single((void)) 0x022CA2B4 = nop ; always all items? -[XCX_OFFLINEWE_V100J] ; ############################################################################################ +[XCX_OfflineWorldEnemy_v100J] ; ############################################################################################ moduleMatches = 0x785CA8A9 ; 1.0.0J 0x0228713C = nop ; (network test?) allow call to cfs::CfSocialQuestManager::update((void)) 0x022C78F8 = nop ; network test : lwz r10, 0x1B0(r30) --> rlwinm. r9, r10, 0,30,30 diff --git a/src/XenobladeChroniclesX/Mods/BladeGlobalNemesisMissionsOffline/patch_offline_nemesis.asm.bak b/src/XenobladeChroniclesX/Mods/BladeGlobalNemesisMissionsOffline/patch_offline_nemesis.asm.bak index 7e8523ad..798d9033 100644 --- a/src/XenobladeChroniclesX/Mods/BladeGlobalNemesisMissionsOffline/patch_offline_nemesis.asm.bak +++ b/src/XenobladeChroniclesX/Mods/BladeGlobalNemesisMissionsOffline/patch_offline_nemesis.asm.bak @@ -1,4 +1,3 @@ -; not porting this backup file to JP [XCX_OFFLINEWE_V101E_V102U] moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E .origin = codecave diff --git a/src/XenobladeChroniclesX/Mods/BladeGlobalNemesisMissionsOffline/rules.txt b/src/XenobladeChroniclesX/Mods/BladeGlobalNemesisMissionsOffline/rules.txt index ff1360bf..c41bca19 100644 --- a/src/XenobladeChroniclesX/Mods/BladeGlobalNemesisMissionsOffline/rules.txt +++ b/src/XenobladeChroniclesX/Mods/BladeGlobalNemesisMissionsOffline/rules.txt @@ -8,6 +8,7 @@ version = 6 [Default] $ygg = 0x4EED $teli = 0x4EE9 +$RPAmmount = 2250000 $nemesiscost = 1 $minmedals = 0 @@ -20,6 +21,15 @@ category = "Telethia Bossfight Version" name = "Friday Telethia (thunderstorms - 15:00)" $teli = 0x4EE8 +[Preset] +category = "RP Ammount" +name = 2250000 (default) + +[Preset] +category = "RP Ammount" +name = 1 +$RPAmmount = 1 + [Preset] category = "CHEAT - BLADE Medals not needed" name = "Cheat not enabled" diff --git a/src/XenobladeChroniclesX/Mods/BladeLv60SkellsUnlocked/patch_lv60skells.asm b/src/XenobladeChroniclesX/Mods/BladeLv60SkellsUnlocked/patch_lv60skells.asm index 1dfa0f36..6f21f0c7 100644 --- a/src/XenobladeChroniclesX/Mods/BladeLv60SkellsUnlocked/patch_lv60skells.asm +++ b/src/XenobladeChroniclesX/Mods/BladeLv60SkellsUnlocked/patch_lv60skells.asm @@ -1,9 +1,6 @@ [XCX_UNLOCKPOSTSKELLS] moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J .origin = codecave -.int $miranium -.int $resource -.int $ignoreLevel LbIgnoreLevel: cmpwi r3, $ignoreLevel diff --git a/src/XenobladeChroniclesX/Mods/BladeMoreTickets/patch_moretickets.asm b/src/XenobladeChroniclesX/Mods/BladeMoreTickets/patch_moretickets.asm index 67c6e448..2a60dcf2 100644 --- a/src/XenobladeChroniclesX/Mods/BladeMoreTickets/patch_moretickets.asm +++ b/src/XenobladeChroniclesX/Mods/BladeMoreTickets/patch_moretickets.asm @@ -1,8 +1,6 @@ [XCX_BLADE_MORETICKETS] moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J .origin = codecave -.int $mult -.int $uncap ; ---------------------------------------------------------------------------- ; WHO : cfs::CfSocialManager::addTradeTicket((int, unsigned int)) ; WHAT : Multiply the reward tickets given in many occasions diff --git a/src/XenobladeChroniclesX/Mods/BladeMoreTickets/rules.txt b/src/XenobladeChroniclesX/Mods/BladeMoreTickets/rules.txt index 80a39b1a..fbbe965f 100644 --- a/src/XenobladeChroniclesX/Mods/BladeMoreTickets/rules.txt +++ b/src/XenobladeChroniclesX/Mods/BladeMoreTickets/rules.txt @@ -6,11 +6,15 @@ description = Increase the Tickets gained with Squad tasks and missions.|Uncappe version = 6 [Default] -$mult = 2 +$mult = 1 $uncap = 0 +[Preset] +name = "Gain more Tickets (x1)" + [Preset] name = "Gain more Tickets (x2)" +$mult = 2 [Preset] name = "Gain more Tickets (x3)" @@ -37,8 +41,8 @@ name = "Gain more Tickets (x1000)" $mult = 1000 [Preset] -name = "Respawn Global Nemesis Yggralith Zero (x500000)" -$mult = 500000 +name = "Respawn Global Nemesis Yggralith Zero (x-1)" +$mult = -1 [Preset] name = Yes diff --git a/src/XenobladeChroniclesX/Mods/BladeTasksAndMissionsOffline/rules.txt b/src/XenobladeChroniclesX/Mods/BladeTasksAndMissionsOffline/rules.txt index 79c3c015..e4afc0ef 100644 --- a/src/XenobladeChroniclesX/Mods/BladeTasksAndMissionsOffline/rules.txt +++ b/src/XenobladeChroniclesX/Mods/BladeTasksAndMissionsOffline/rules.txt @@ -2,7 +2,7 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 name = "Squad tasks and missions are available offline" path = "Xenoblade Chronicles X/Mods/BLADE/Offline Squad tasks and missions" -description = Squad tasks and missions are available offline. Presets allow to select a Squad Mission, or you can use [Social > Squad Select] menu for random selection.||Recommended to be combined with More Reward Tickets (x3).||"Enable Online Mode" setting must be OFF for the mod to work!! +description = Squad tasks and missions are available offline. Presets allow to select a Squad Mission, or you can use [Social > Squad Select] menu for random selection.||Cemu's "Enable Online Mode" setting must be OFF for the mod to work!! version = 6 [Default] diff --git a/src/XenobladeChroniclesX/Mods/CharacterLevel/patch_level.asm b/src/XenobladeChroniclesX/Mods/CharacterLevel/patch_level.asm index 91018369..a1bac398 100644 --- a/src/XenobladeChroniclesX/Mods/CharacterLevel/patch_level.asm +++ b/src/XenobladeChroniclesX/Mods/CharacterLevel/patch_level.asm @@ -3,6 +3,7 @@ moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x67 .origin = codecave ; get lv 027e14f ; get exp 027e1504 ; set lv 027e1510 ; set exp 027e151c +; 1b77a520 _levelMemorJP100: ;reads from the static address that stores the address for the start of character info memory section @@ -31,24 +32,29 @@ _charLevelCheat: ; Character Level li r4, $level stb r4, $memoffset (r3) +; Character exp +exp = $exp +lis r4, exp@ha +addi r4, r4, exp@l +stw r4, $memoffset+2 (r3) ;fixes the line we over wrote addi r3,r1,0x8 blr -[XCX_Level_V101E_V102U] +[XCX_Level_v101E_v102U] moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E ; Our code applies when the reqMenuCreateParty function is used 0x023429F0 = bla _levelMemorEU101US102 -[XCX_Level_V102J] +[XCX_Level_v102J] moduleMatches = 0x7672271D ; 1.0.2J 0x02342224 = bla _levelMemorJP102 -[XCX_Level_V100U] +[XCX_Level_v100U] moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U 0x02342980 = bla _levelMemorUS100 -[XCX_Level_V100J] +[XCX_Level_v100J] moduleMatches = 0x785CA8A9 ; 1.0.0J 0x023420B0 = bla _levelMemorJP100 diff --git a/src/XenobladeChroniclesX/Mods/CharacterLevel/readme.txt b/src/XenobladeChroniclesX/Mods/CharacterLevel/readme.txt new file mode 100644 index 00000000..438b4b07 --- /dev/null +++ b/src/XenobladeChroniclesX/Mods/CharacterLevel/readme.txt @@ -0,0 +1,247 @@ +this file is documenting all the data about a character that can be changed. +fell free to use this document to help make your own character mods +document made by googlebonker + +The addresses listed are Wii U addresses. +The exact address in cemu changes from update to update +but in 2.4 is 1B77A5C8 and in other versions will be near that address + +1C38E5C8 AAAAAAAA AAAAAAAA +1C38E5D0 AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA +1C38E5E0 AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA +1C38E5F0 AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA +1C38E600 AAAAAAAA AAAAAAAA AAAABBCC DDDDEEEE +1C38E610 FFFFGGHH IIJJKKKK LLLLMMMM NNNNOOOO +1C38E620 PPPPQQQQ RRRRSSSS TTTTUUUU VVVVWWWW +1C38E630 XXXXXXXX YYYYYYYY ZZZZZZZZ AAAAAAAA +1C38E640 BBCCDDEE FFFFFFFF GGGGHHHH IIIIJJJJ +1C38E650 KKKKLLLL MMMMNNNN OOOOPPPP QQQQRRRR +1C38E660 SSSSTTTT UUUUVVVV WWWWXXXX YYYYZZZZ +1C38E670 AAAABBBB CCCCDDDD EEEEFFFF GGGGHHHH +1C38E680 IIIIJJJJ KKKKLLLL MMMMNNNN OOOOPPPP +1C38E690 QQQQRRRR SSSSTTTT UUUUVVVV WWWWXXXX +1C38E6A0 YYYYZZZZ AAAABBBB CCCCDDDD EEEEFFFF +1C38E6B0 GGGGHHHH IIIIJJJJ KKKKLLLL MMMMNNNN +1C38E6C0 OOOOPPPP QQQQRRRR SSSSTTTT UUUUVVVV +1C38E6D0 WWWWXXXX YYYYZZZZ AAAABBBB CCCCDDDD +1C38E6E0 EEEEFFFF GGGGHHHH IIIIJJJJ KKKKLLLL +1C38E6F0 MMNNOOPP QQQQRRSS TTUUVVWW XXYYZZAA +1C38E700 BBCCDDEE FFGGHHII JJKKLLMM NNOOPPQQ +1C38E710 RRRRSSSS TTTTUUUU VVVVWWWW XXXXYYYY +1C38E720 ZZZZAAAA BBBBCCCC DDDDEEEE FFFFGGG +1C38E730 HHHHIIII JJJJKKKK LLLLLLLL + + +1C38E5C8 +A Avatar name +B A 67th unusable character slot. The game always puts "00" after your avatar's name, but the next slot (CC) that would be used for "00" is used to count the characters in your avatar's name. Anything besides "00" in this space will crash your game and cause it to reload. +C Avatar name character count. This automatically readjusts if you try to change it. +D Base Face +E Hair > Style +F Hair > Special (Hair > Specials only go with the corresponding Hair > Style. If you mismatch these, the game will crash and cause it to reload. 00 is always off.) +G Skin > Moles +H Skin > Freckles +I Skin > Cheeks +J Skin > Scars +K Make up > Face Paint +L Eyes > Pupils +M Body Gender (01 male, 02 female) +N ???? +O Voice +P Skin > Color +Q Makeup > Lips +R Makeup > Eye Shadow +S Eyes > Color 1 (iris) +T Eyes > Color 2 (pupil) +U Hair > Roots Color +V Hair > Tips Color +W ???? +X Height +Y Breast Depth (only works on female bodies) (maximum is 400000000. Setting this value to FF800001 or higher will cause your character's breasts to disappear) +Z Breast Height (only works on female bodies) (maximum is 400000000. Setting +this value to FF800001 or higher will cause your character's breasts to disappear) + +1C38E63C +A Breast Width (only works on female bodies) (maximum is 400000000. Setting this value to FF800001 or higher will cause your character's breasts to disappear) +B Protagonist presence (WARNING! Glitchy!) +C Something about a Skell? +D Character level +E ???? +F Character experience on the level +G Ranged Weapon +H Ranged Weapon Trait 1 +I Ranged Weapon Trait 2 +J Ranged Weapon Trait 3 +K Ranged Weapon Augment 1 +L Ranged Weapon Augment 2 +M Ranged Weapon Augment 3 +N Melee Weapon +O Melee Weapon Trait 1 +P Melee Weapon Trait 2 +Q Melee Weapon Trait 3 +R Melee Weapon Augment 1 +S Melee Weapon Augment 2 +T Melee Weapon Augment 3 +U Body Armor +V Body Armor Trait 1 +W Body Armor Trait 2 +X Body Armor Trait 3 +Y Body Armor Augment 1 +Z Body Armor Augment 2 + +1C38E670 +A Body Armor Augment 3 +B Head Armor +C Head Armor Trait 1 +D Head Armor Trait 2 +E Head Armor Trait 3 +F Head Armor Augment 1 +G Head Armor Augment 2 +H Head Armor Augment 3 +I Arm Armor R +J Arm Armor R Trait 1 +K Arm Armor R Trait 2 +L Arm Armor R Trait 3 +M Arm Armor R Augment 1 +N Arm Armor R Augment 2 +O Arm Armor R Augment 3 +P Arm Armor L +Q Arm Armor L Trait 1 +R Arm Armor L Trait 2 +S Arm Armor L Trait 3 +T Arm Armor L Augment 1 +U Arm Armor L Augment 2 +V Arm Armor L Augment 3 +W Leg Armor +X Leg Armor Trait 1 +Y Leg Armor Trait 2 +Z Leg Armor Trait 3 + +1C38E6A4 +A Leg Armor Augment 1 +B Leg Armor Augment 2 +C Leg Armor Augment 3 +D Body Fashion +E Body Fashion Trait 1 +F Body Fashion Trait 2 +G Body Fashion Trait 3 +H Body Fashion Augment 1 +I Body Fashion Augment 2 +J Body Fashion Augment 3 +K Head Fashion +L Head Fashion Trait 1 +M Head Fashion Trait 2 +N Head Fashion Trait 3 +O Head Fashion Augment 1 +P Head Fashion Augment 2 +Q Head Fashion Augment 3 +R Arm Fashion R +S Arm Fashion R Trait 1 +T Arm Fashion R Trait 2 +U Arm Fashion R Trait 3 +V Arm Fashion R Augment 1 +W Arm Fashion R Augment 2 +X Arm Fashion R Augment 3 +Y Arm Fashion L +Z Arm Fashion L Trait 1 + +1C38E6D8 +A Arm Fashion L Trait 2 +B Arm Fashion L Trait 3 +C Arm Fashion L Augment 1 +D Arm Fashion L Augment 2 +E Arm Fashion L Augment 3 +F Leg Fashion +G Leg Fashion Trait 1 +H Leg Fashion Trait 2 +I Leg Fashion Trait 3 +J Leg Fashion Augment 1 +K Leg Fashion Augment 2 +L Leg Fashion Augment 3 +M Class (invalid Classes will crash the game and cause it to reload) +N ???? +O Class Level +P ???? +Q Class experience on the level +R Arts Palette Slot 4 +S Arts Palette Slot 4 Art Level +T Arts Palette Slot 3 +U Arts Palette Slot 3 Art Level +V Arts Palette Slot 2 +W Arts Palette Slot 2 Art Level +X Arts Palette Slot 1 +Y Arts Palette Slot 1 Art Level +Z Arts Palette Slot 8 + +1C38E703 +A Arts Palette Slot 8 Art Level +B Arts Palette Slot 7 +C Arts Palette Slot 7 Art Level +D Arts Palette Slot 6 +E Arts Palette Slot 6 Art Level +F Arts Palette Slot 5 +G Arts Palette Slot 5 Art Level +H Assigned Skills Slot 1 +I Assigned Skills Slot 1 Skill Level +J Assigned Skills Slot 2 +K Assigned Skills Slot 2 Skill Level +L Assigned Skills Slot 3 +M Assigned Skills Slot 3 Skill Level +N Assigned Skills Slot 4 +O Assigned Skills Slot 4 Skill Level +P Assigned Skills Slot 5 +Q Assigned Skills Slot 5 Skill Level +R Soul Voice Custom Voice 1 Category +S Soul Voice Custom Voice 2 Category +T Soul Voice Custom Voice 3 Category +U Soul Voice Custom Voice 4 Category +V Soul Voice 1 +W Soul Voice 2 +X Soul Voice 3 +Y Soul Voice 4 +Z Soul Voice 5 + +1C38E722 +A Soul Voice 6 +B Soul Voice 8 +C Soul Voice 7 +D Soul Voice 9 +E Soul Voice 10 +F Soul Voice 11 +G Soul Voice 12 +H Soul Voice 13 +I Soul Voice 14 +J Soul Voice 15 +K Soul Voice 16 +L Former HP tracker? + +ASCII Table +A 41 61 a +B 42 62 b +C 43 63 c +D 44 64 d +E 45 65 e +F 46 66 f +G 47 67 g +H 48 68 h +I 49 69 i +J 4A 6A j +K 4B 6B k +L 4C 6C l +M 4D 6D m +N 4E 6E n +O 4F 6F o +P 50 70 p +Q 51 71 q +R 52 72 r +S 53 73 s +T 54 74 t +U 55 75 u +V 56 76 v +W 57 77 w +X 58 78 x +Y 59 79 y +Z 5A 7A z +! 21 CF ? +. 2E 2C , +space 20 diff --git a/src/XenobladeChroniclesX/Mods/CharacterLevel/rules.txt b/src/XenobladeChroniclesX/Mods/CharacterLevel/rules.txt index fc76b373..d517d4b1 100644 --- a/src/XenobladeChroniclesX/Mods/CharacterLevel/rules.txt +++ b/src/XenobladeChroniclesX/Mods/CharacterLevel/rules.txt @@ -8,221 +8,198 @@ version = 7 [Default] $memoffset = 0x122 $level = 1 - +$exp = 0 $characterID = 1 [Preset] -category = "Character:" +category = "Character" name = "Playable Avatar" [Preset] -category = "Character:" +category = "Character" name = "Nagi" $characterID = 2 $memoffset = (($characterID-1)*0x57C)+0x122 [Preset] -category = "Character:" +category = "Character" name = "L" $characterID = 3 $memoffset = (($characterID-1)*0x57C)+0x122 [Preset] -category = "Character:" +category = "Character" name = "Lao" $characterID = 4 $memoffset = (($characterID-1)*0x57C)+0x122 [Preset] -category = "Character:" +category = "Character" name = "H.B." $characterID = 5 $memoffset = (($characterID-1)*0x57C)+0x122 [Preset] -category = "Character:" +category = "Character" name = "Gwin" $characterID = 6 $memoffset = (($characterID-1)*0x57C)+0x122 [Preset] -category = "Character:" +category = "Character" name = "Frye" $characterID = 7 $memoffset = (($characterID-1)*0x57C)+0x122 [Preset] -category = "Character:" +category = "Character" name = "Doug" $characterID = 8 $memoffset = (($characterID-1)*0x57C)+0x122 [Preset] -category = "Character:" +category = "Character" name = "Yelv" $characterID = 9 $memoffset = (($characterID-1)*0x57C)+0x122 [Preset] -category = "Character:" +category = "Character" name = "Boze" $characterID = 10 $memoffset = (($characterID-1)*0x57C)+0x122 [Preset] -category = "Character:" +category = "Character" name = "Phog" $characterID = 11 $memoffset = (($characterID-1)*0x57C)+0x122 [Preset] -category = "Character:" +category = "Character" name = "Elma" $characterID = 12 $memoffset = (($characterID-1)*0x57C)+0x122 [Preset] -category = "Character:" +category = "Character" name = "Lin" $characterID = 13 $memoffset = (($characterID-1)*0x57C)+0x122 [Preset] -category = "Character:" +category = "Character" name = "Celica" $characterID = 14 $memoffset = (($characterID-1)*0x57C)+0x122 [Preset] -category = "Character:" +category = "Character" name = "Irina" $characterID = 15 $memoffset = (($characterID-1)*0x57C)+0x122 [Preset] -category = "Character:" +category = "Character" name = "Murderess" $characterID = 16 $memoffset = (($characterID-1)*0x57C)+0x122 [Preset] -category = "Character:" +category = "Character" name = "Alexa" $characterID = 17 $memoffset = (($characterID-1)*0x57C)+0x122 [Preset] -category = "Character:" +category = "Character" name = "Hope" $characterID = 18 $memoffset = (($characterID-1)*0x57C)+0x122 [Preset] -category = "Character:" +category = "Character" name = "Mia" $characterID = 19 $memoffset = (($characterID-1)*0x57C)+0x122 [Preset] -category = "Level:" +category = "Level" name = lv. 1 [Preset] -category = "Level:" +category = "Level" name = lv. 5 $level = 5 [Preset] -category = "Level:" +category = "Level" name = lv. 10 $level = 10 [Preset] -category = "Level:" +category = "Level" name = lv. 15 $level = 15 [Preset] -category = "Level:" +category = "Level" name = lv. 20 $level = 20 [Preset] -category = "Level:" +category = "Level" name = lv. 25 $level = 25 [Preset] -category = "Level:" +category = "Level" name = lv. 30 $level = 30 [Preset] -category = "Level:" +category = "Level" name = lv. 35 $level = 35 [Preset] -category = "Level:" +category = "Level" name = lv. 40 $level = 40 [Preset] -category = "Level:" +category = "Level" name = lv. 45 $level = 45 [Preset] -category = "Level:" +category = "Level" name = lv. 50 $level = 50 [Preset] -category = "Level:" +category = "Level" name = lv. 55 $level = 55 [Preset] -category = "Level:" +category = "Level" name = lv. 60 $level = 60 +$exp = 23760 [Preset] -category = "Level:" -name = lv. 70 -$level = 70 - -[Preset] -category = "Level:" -name = lv. 80 -$level = 80 - -[Preset] -category = "Level:" -name = lv. 90 -$level = 90 - -[Preset] -category = "Level:" +category = "Level" name = lv. 100 $level = 100 [Preset] -category = "Level:" -name = lv. 150 -$level = 150 - -[Preset] -category = "Level:" -name = lv. 200 -$level = 200 - -[Preset] -category = "Level:" +category = "Level" name = lv. 255 $level = 255 [Preset] -category = "Level:" -name = lv. 0 +category = "Level" +name = lv. 0 (WILL softlock unless you have Max HP Up) $level = 0 +$exp = -1 diff --git a/src/XenobladeChroniclesX/Mods/CharacterUnlockArts/patch_arts.asm b/src/XenobladeChroniclesX/Mods/CharacterUnlockArts/patch_arts.asm index 25a14b8d..e572a7b3 100644 --- a/src/XenobladeChroniclesX/Mods/CharacterUnlockArts/patch_arts.asm +++ b/src/XenobladeChroniclesX/Mods/CharacterUnlockArts/patch_arts.asm @@ -40,7 +40,7 @@ li r12, 0 cmpwi r0, 2 beq _unlockunusedarts cmpwi r0, 3 -beq _whileLoopUseSpecificCharactersArts +beq UseSpecificCharactersArts cmpwi r0, 4 beq _unlockIndividualArts @@ -84,9 +84,10 @@ li r16, $arts addi r17, r31, $memoffset-1 b _unlockIndividualArts - -_whileLoopUseSpecificCharactersArts: +UseSpecificCharactersArts: addi r31, r31, $memoffset+0x9B +li r12, 0 +_whileLoopUseSpecificCharactersArts: stbu r12, 1(r17) cmpw r17, r31 blt+ _whileLoopUseSpecificCharactersArts diff --git a/src/XenobladeChroniclesX/Mods/EquipmentUnlimitedAugmentUpgrades/patch_augup.asm b/src/XenobladeChroniclesX/Mods/EquipmentUnlimitedAugmentUpgrades/patch_augup.asm index c86f7917..cc002884 100644 --- a/src/XenobladeChroniclesX/Mods/EquipmentUnlimitedAugmentUpgrades/patch_augup.asm +++ b/src/XenobladeChroniclesX/Mods/EquipmentUnlimitedAugmentUpgrades/patch_augup.asm @@ -1,8 +1,6 @@ [XCX_UPGRADENOLIMIT] moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J .origin = codecave -.int $checkSelectItem -.int $checkStrengthen VarUpgradeCount: .int 0 diff --git a/src/XenobladeChroniclesX/Mods/EquipmentUnlockAugments/patch_unlockaug.asm b/src/XenobladeChroniclesX/Mods/EquipmentUnlockAugments/patch_unlockaug.asm index 4d4a15ad..e321508b 100644 --- a/src/XenobladeChroniclesX/Mods/EquipmentUnlockAugments/patch_unlockaug.asm +++ b/src/XenobladeChroniclesX/Mods/EquipmentUnlockAugments/patch_unlockaug.asm @@ -1,8 +1,6 @@ [XCX_UNLOCKAUGMENTS] moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J .origin = codecave -.int $checkIgnoreMiranium -.int $checkIgnoreMaterials ChangeMaterialsQuantity: stw r3, 0xC(r1) diff --git a/src/XenobladeChroniclesX/Mods/ExpBattlePointsX/patch_exp_battle.asm b/src/XenobladeChroniclesX/Mods/ExpBattlePointsX/patch_exp_battle.asm index 43c1573f..2ce80892 100644 --- a/src/XenobladeChroniclesX/Mods/ExpBattlePointsX/patch_exp_battle.asm +++ b/src/XenobladeChroniclesX/Mods/ExpBattlePointsX/patch_exp_battle.asm @@ -1,8 +1,6 @@ -[XCX_BATTLEPOINTSX] +[XCX_BattlePointsX] moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J .origin = codecave -.int $mod - ; ---------------------------------------------------------------------------- ; WHO : addClassExpChara__Q2_6Battle14CBattleManagerFUiT1 ; WHAT : Multiply the battle points gained when a new class level is reached @@ -11,7 +9,6 @@ li r3, $mod mullw r0, r0, r3 mulli r0, r0, 3 blr - ; ---------------------------------------------------------------------------- ; WHO : addInnerExpChara__Q2_6Battle14CBattleManagerFUiN21 ; WHAT : Multiply the battle points gained when a new level is reached @@ -20,7 +17,6 @@ li r4, $mod mullw r9, r9, r4 add r11, r11, r9 blr - ; ---------------------------------------------------------------------------- ; WHO : addTreasure__Q2_3cfs10CfTBoxUtilSFUib ; WHAT : Multiply the battle points given by treasures or exploration @@ -29,7 +25,6 @@ li r3, $mod mullw r3, r31, r3 mr r31, r3 blr - ; ---------------------------------------------------------------------------- ; WHO : addReward__Q2_3cfs11CfSquadUtilSFUiT1 ; WHAT : Multiply the experience points given by Squad missions @@ -38,27 +33,25 @@ li r4, $mod mullw r3, r3, r4 stw r3, 0x1C(r1) blr - ; ---------------------------------------------------------------------------- ; WHO : menu::MenuMultiQuestInfoWindow::displayInfo((menu::MenuObject *,bool)) ; WHAT : Multiply the battle points displayed in quest popup information. _dispBefore: -lhz r24, 0x90(r1) -li r25, $mod -mullw r24, r24, r25 +lhz r24, 0x90(r1) +li r25, $mod +mullw r24, r24, r25 blr - ; ---------------------------------------------------------------------------- ; WHO : menu::MenuMultiQuestResult::setup((void)) ; WHAT : Multiply the battle points displayed in quest popup results. _dispAfter: -li r5, $mod -mullw r3, r3, r5 -stw r3, 0x7C(r1) +li r5, $mod +mullw r3, r3, r5 +stw r3, 0x7C(r1) blr -[XCX_BATTLEPOINTSX_V101E] ; ############################################################################ +[XCX_BattlePointsX_v101E] moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E 0x020C4A74 = bla _exp 0x020C1C48 = bla _exp2 @@ -68,7 +61,7 @@ moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E 0x02B94730 = bla _dispBefore 0x02B9FEE0 = bla _dispAfter -[XCX_BATTLEPOINTSX_V102U] ; ############################################################################ +[XCX_BattlePointsX_v102U] moduleMatches = 0x30B6E091 ; 1.0.2U 0x020C4A74 = bla _exp 0x020C1C48 = bla _exp2 @@ -78,7 +71,7 @@ moduleMatches = 0x30B6E091 ; 1.0.2U 0x02B94720 = bla _dispBefore 0x02B9FED0 = bla _dispAfter -[XCX_BATTLEPOINTSX_V102J] ; ############################################################################ +[XCX_BattlePointsX_v102J] moduleMatches = 0x7672271D ; 1.0.2J 0x020C4540 = bla _exp 0x020C1714 = bla _exp2 @@ -88,7 +81,7 @@ moduleMatches = 0x7672271D ; 1.0.2J 0x02B9066C = bla _dispBefore 0x02B9B998 = bla _dispAfter -[XCX_BATTLEPOINTSX_V100U] ; ############################################################################ +[XCX_BattlePointsX_v100U] moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U 0x020C4A74 = bla _exp 0x020C1C48 = bla _exp2 @@ -98,7 +91,7 @@ moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U 0x02B946A4 = bla _dispBefore 0x02B9FDE0 = bla _dispAfter -[XCX_BATTLEPOINTSX_V100J] ; ############################################################################ +[XCX_BattlePointsX_v100J] moduleMatches = 0x785CA8A9 ; 1.0.0J 0x020C42BC = bla _exp 0x020C1490 = bla _exp2 diff --git a/src/XenobladeChroniclesX/Mods/ExpBattlePointsX/rules.txt b/src/XenobladeChroniclesX/Mods/ExpBattlePointsX/rules.txt index 381b4663..e3d09eeb 100644 --- a/src/XenobladeChroniclesX/Mods/ExpBattlePointsX/rules.txt +++ b/src/XenobladeChroniclesX/Mods/ExpBattlePointsX/rules.txt @@ -1,15 +1,24 @@ [Definition] titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 -name = "Battle Points X" +name = "Battle Points Multiplier" path = "Xenoblade Chronicles X/Mods/Experience/Battle Points" description = Change the amount of Battle points gained when a new level (or class level) is reached, when completing missions or exploring. version = 6 [Default] -$mod = 2 +$mod = 1 + +[Preset] +name = "Quantity x0" +$mod = 0 + +[Preset] +name = "Quantity x1" +default = 1 [Preset] name = "Quantity x2" +$mod = 2 [Preset] name = "Quantity x3" diff --git a/src/XenobladeChroniclesX/Mods/ExpBladePointsX/patch_exp_blade.asm b/src/XenobladeChroniclesX/Mods/ExpBladePointsX/patch_exp_blade.asm index ac2e832c..075dd2b2 100644 --- a/src/XenobladeChroniclesX/Mods/ExpBladePointsX/patch_exp_blade.asm +++ b/src/XenobladeChroniclesX/Mods/ExpBladePointsX/patch_exp_blade.asm @@ -1,35 +1,29 @@ -[XCX_BLADEX] -moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J -.origin = codecave -.int $mod -; ---------------------------------------------------------------------------- +[XCX_BLADEX_v101E] +moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E ; WHO : fw::SocialUnion::getUnionBasePoint((int)) ; WHAT : Multiply the BLADE points rewarded - -[XCX_BLADEX_V101E] -moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E 0x0288E610 = nop 0x02E0C5B0 = li r3, -1 0x0288E614 = li r3, $mod -[XCX_BLADEX_V102U] +[XCX_BLADEX_v102U] moduleMatches = 0x30B6E091 ; 1.0.2U 0x0288E610 = nop 0x02E0C550 = li r3, -1 0x0288E614 = li r3, $mod -[XCX_BLADEX_V102J] +[XCX_BLADEX_v102J] moduleMatches = 0x7672271D ; 1.0.2J 0x0288B470 = nop 0x02E07A78 = li r3, -1 0x0288B474 = li r3, $mod -[XCX_BLADEX_V100U] +[XCX_BLADEX_v100U] moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U 0x0288E594 = nop 0x02E0C3D8 = li r3, -1 0x0288E598 = li r3, $mod -;[XCX_BLADEX_V100J] +;[XCX_BLADEX_v100J] ;moduleMatches = 0x785CA8A9 ; 1.0.0J ;;; ;getUnionBasePoint__Q2_2fw11SocialUnionFi does not exist diff --git a/src/XenobladeChroniclesX/Mods/ExpBladePointsX/rules.txt b/src/XenobladeChroniclesX/Mods/ExpBladePointsX/rules.txt index f9a6e62f..d8236bf8 100644 --- a/src/XenobladeChroniclesX/Mods/ExpBladePointsX/rules.txt +++ b/src/XenobladeChroniclesX/Mods/ExpBladePointsX/rules.txt @@ -1,15 +1,24 @@ [Definition] titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 -name = "BLADE Points X" +name = "BLADE Points Multiplier" path = "Xenoblade Chronicles X/Mods/Experience/BLADE Points" description = Change the amount of BLADE points gained in various situations. version = 6 [Default] -$mod = 2 +$mod = 1 + +[Preset] +name = "x0" +$mod = 0 + +[Preset] +name = "x1" +default = 1 [Preset] name = "x2" +$mod = 2 [Preset] name = "x3" diff --git a/src/XenobladeChroniclesX/Mods/ExpClassExpPointsX/patch_exp_class.asm b/src/XenobladeChroniclesX/Mods/ExpClassExpPointsX/patch_exp_class.asm index a80a39d4..0553fe14 100644 --- a/src/XenobladeChroniclesX/Mods/ExpClassExpPointsX/patch_exp_class.asm +++ b/src/XenobladeChroniclesX/Mods/ExpClassExpPointsX/patch_exp_class.asm @@ -1,8 +1,6 @@ -[XCX_CLASSEXPX] +[XCX_ClassEXP] moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J .origin = codecave -.int $mod - ; ---------------------------------------------------------------------------- ; WHO : addClassExpChara__Q2_6Battle14CBattleManagerFUiT1 ; WHAT : Multiply the class experience given during combat @@ -10,7 +8,6 @@ _expBattle: li r12, $mod mullw r31, r3, r12 blr - ; ---------------------------------------------------------------------------- ; WHO : addReward__Q2_3cfs11CfSquadUtilSFUiT1 ; WHAT : Multiply the experience points given by Squad missions @@ -21,22 +18,21 @@ stw r3, 0x18(r1) blr _dispBefore: -li r5, $mod -mullw r3, r3, r5 -stw r3, 0x34(r1) +li r5, $mod +mullw r3, r3, r5 +stw r3, 0x34(r1) blr - ; ---------------------------------------------------------------------------- ; WHO : menu::MenuMultiQuestResult::setup((void)) -; WHAT : +; WHAT : _dispAfter: -li r5, $mod -mullw r3, r3, r5 -stw r3, 0x80(r1) +li r5, $mod +mullw r3, r3, r5 +stw r3, 0x80(r1) blr -[XCX_CLASSEXPX_V101E] ; ############################################################################ +[XCX_ClassEXP_v101E] moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E 0x020C4A28 = bla _expBattle 0x023CC750 = bla _expSquadValue @@ -44,7 +40,7 @@ moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E 0x02B91324 = bla _dispBefore 0x02B9FF44 = bla _dispAfter -[XCX_CLASSEXPX_V102U] ; ############################################################################ +[XCX_ClassEXP_v102U] moduleMatches = 0x30B6E091 ; 1.0.2U 0x020C4A28 = bla _expBattle 0x023CC750 = bla _expSquadValue @@ -52,7 +48,7 @@ moduleMatches = 0x30B6E091 ; 1.0.2U 0x02B91314 = bla _dispBefore 0x02B9FF34 = bla _dispAfter -[XCX_CLASSEXPX_V102J] ; ############################################################################ +[XCX_ClassEXP_v102J] moduleMatches = 0x7672271D ; 1.0.2J 0x020C44F4 = bla _expBattle 0x023CBDB4 = bla _expSquadValue @@ -60,7 +56,7 @@ moduleMatches = 0x7672271D ; 1.0.2J 0x02B8D260 = bla _dispBefore 0x02B9B9FC = bla _dispAfter -[XCX_CLASSEXPX_V100U] ; ############################################################################ +[XCX_ClassEXP_v100U] moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U 0x020C4A28 = bla _expBattle 0x023CC6E0 = bla _expSquadValue @@ -68,7 +64,7 @@ moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U 0x02B91298 = bla _dispBefore 0x02B9FE44 = bla _dispAfter -[XCX_CLASSEXPX_V100J] ; ############################################################################ +[XCX_ClassEXP_v100J] moduleMatches = 0x785CA8A9 ; 1.0.0J 0x020C4270 = bla _expBattle 0x023CB8E4 = bla _expSquadValue diff --git a/src/XenobladeChroniclesX/Mods/ExpClassExpPointsX/rules.txt b/src/XenobladeChroniclesX/Mods/ExpClassExpPointsX/rules.txt index 4df330c6..e41dbe24 100644 --- a/src/XenobladeChroniclesX/Mods/ExpClassExpPointsX/rules.txt +++ b/src/XenobladeChroniclesX/Mods/ExpClassExpPointsX/rules.txt @@ -1,15 +1,24 @@ [Definition] titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 -name = "Class Exp Points X" +name = "Class Exp Points Multiplier" path = "Xenoblade Chronicles X/Mods/Experience/Class Exp Points" description = Change the amount of Class Exp points gained in battle, missions, quests and exploration. version = 6 [Default] -$mod = 2 +$mod = 1 + +[Preset] +name = "x0" +$mod = 0 + +[Preset] +name = "x1" +default = 1 [Preset] name = "x2" +$mod = 2 [Preset] name = "x3" diff --git a/src/XenobladeChroniclesX/Mods/ExpFriendsPointsX/patch_exp_friend.asm b/src/XenobladeChroniclesX/Mods/ExpFriendsPointsX/patch_exp_friend.asm index 7154c4f9..03616511 100644 --- a/src/XenobladeChroniclesX/Mods/ExpFriendsPointsX/patch_exp_friend.asm +++ b/src/XenobladeChroniclesX/Mods/ExpFriendsPointsX/patch_exp_friend.asm @@ -1,20 +1,14 @@ -[XCX_FRIENDPOINTSX] -moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J -.origin = codecave -.int $mod -; ---------------------------------------------------------------------------- +[XCX_FriendPoints_v101E_v102U_v100U] +moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07, 0xAB97DE6B, 0x676EB33E ; 1.0.1E, 1.0.2U, 1.0.0E, 1.0.1U, 1.0.0U ; WHO : RegistDamage_SoulVoiceLink__Q2_12DamageSystem7FactorySFRCQ2_3cfs30CfHandleKey__tm__11_XCUiL_2_12T1Ui ; WHAT : Gives a lot of friend points when activating a Soul Voice Link during combat ; : BEWARE as this can lead to freeze of the emulator when opening the Affinity Chart (not sure if this is related) - -[XCX_FRIENDPOINTSX_V101E_V102U_V100U] -moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07, 0xAB97DE6B, 0x676EB33E ; 1.0.1E, 1.0.2U, 1.0.0E, 1.0.1U, 1.0.0U 0x02179908 = li r31, $mod -[XCX_FRIENDPOINTSX_V102J] +[XCX_FriendPoints_v102J] moduleMatches = 0x7672271D ; 1.0.2J 0x021793D4 = li r31, $mod -[XCX_FRIENDPOINTSX_V100J] +[XCX_FriendPoints_v100J] moduleMatches = 0x785CA8A9 ; 1.0.0J 0x02179150 = li r31, $mod diff --git a/src/XenobladeChroniclesX/Mods/ExpFriendsPointsX/rules.txt b/src/XenobladeChroniclesX/Mods/ExpFriendsPointsX/rules.txt index 04c769ae..bef1f9fe 100644 --- a/src/XenobladeChroniclesX/Mods/ExpFriendsPointsX/rules.txt +++ b/src/XenobladeChroniclesX/Mods/ExpFriendsPointsX/rules.txt @@ -1,8 +1,8 @@ [Definition] titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 -name = "Friends Points X" -path = "Xenoblade Chronicles X/Mods/Experience/Friends Points" -description = More Friends points gained when activating a Soul Voice Link during battle. +name = "More Affinity Points From Soul Voices" +path = "Xenoblade Chronicles X/Mods/Experience/Affinity Points" +description = More Affinity points gained when activating a Soul Voice during battle. version = 6 [Default] diff --git a/src/XenobladeChroniclesX/Mods/ExpInnerExpPointsX/patch_exp.asm b/src/XenobladeChroniclesX/Mods/ExpInnerExpPointsX/patch_exp.asm index 130f3eeb..36f6f58e 100644 --- a/src/XenobladeChroniclesX/Mods/ExpInnerExpPointsX/patch_exp.asm +++ b/src/XenobladeChroniclesX/Mods/ExpInnerExpPointsX/patch_exp.asm @@ -1,8 +1,6 @@ [XCX_EXPX] moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J .origin = codecave -.int $mod - ; ---------------------------------------------------------------------------- ; WHO : cfs::CfCompoCtrlEnemy::execRequestCommon ; WHAT : Multiply the experience points given in battles @@ -12,7 +10,6 @@ mulli r3, r3, $mod stw r3, 0x3184(r28) mr r3, r28 blr - ; ---------------------------------------------------------------------------- ; WHO : addTreasure__Q2_3cfs10CfTBoxUtilSFUib ; WHAT : Multiply the experience points given by treasures or exploration @@ -21,7 +18,6 @@ li r3, $mod lhz r31, 0x1C(r1) mullw r31, r31, r3 blr - ; ---------------------------------------------------------------------------- ; WHO : addReward__Q2_3cfs11CfQuestUtilSFUiQ2_3cfs17CfQuestRewardType ; WHAT : Multiply the experience points given by quests ? @@ -30,7 +26,6 @@ li r4, $mod mullw r3, r3, r4 stw r3, 0x60(r1) blr - ; ---------------------------------------------------------------------------- ; WHO : addReward__Q2_3cfs11CfSquadUtilSFUiT1 ; WHAT : Multiply the experience points given by Squad missions @@ -39,27 +34,25 @@ li r4, $mod mullw r3, r3, r4 stw r3, 0x10(r1) blr - ; ---------------------------------------------------------------------------- ; WHO : menu::MenuMultiQuestInfoWindow::displayInfo((menu::MenuObject *,bool)) -; WHAT : +; WHAT : _dispBefore: -lwz r23, 0x88(r1) -li r24, $mod -mullw r23, r23, r24 +lwz r23, 0x88(r1) +li r24, $mod +mullw r23, r23, r24 blr - ; ---------------------------------------------------------------------------- ; WHO : menu::MenuMultiQuestResult::setup((void)) -; WHAT : +; WHAT : _dispAfter: -li r5, $mod -mullw r3, r3, r5 -stw r3, 0x78(r1) +li r5, $mod +mullw r3, r3, r5 +stw r3, 0x78(r1) blr -[XCX_EXPX_V101E] ; ############################################################################ +[XCX_EXPX_v101E] moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E 0x025624D4 = bla _expBattle 0x022D8E64 = bla _expTreasure @@ -70,7 +63,7 @@ moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E ; unlimited exp (no 9999 limit) loops around 140000 0x020C1BC4 = nop -[XCX_EXPX_V102U] ; ############################################################################ +[XCX_EXPX_v102U] moduleMatches = 0x30B6E091 ; 1.0.2U 0x025624D4 = bla _expBattle 0x022D8E64 = bla _expTreasure @@ -81,7 +74,7 @@ moduleMatches = 0x30B6E091 ; 1.0.2U ; unlimited exp (no 9999 limit) loops around 140000 0x020C1BC4 = nop -[XCX_EXPX_V102J] ; ############################################################################ +[XCX_EXPX_v102J] moduleMatches = 0x7672271D ; 1.0.2J 0x02561AB0 = bla _expBattle 0x022D8694 = bla _expTreasure @@ -92,7 +85,7 @@ moduleMatches = 0x7672271D ; 1.0.2J ; unlimited exp (no 9999 limit) loops around 140000 0x020C1690 = nop -[XCX_EXPX_V100U] ; ############################################################################ +[XCX_EXPX_v100U] moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U 0x02562464 = bla _expBattle 0x022D8DF4 = bla _expTreasure @@ -103,7 +96,7 @@ moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U ; unlimited exp (no 9999 limit) loops around 140000 0x020C1BC4 = nop -[XCX_EXPX_V100J] ; ############################################################################ +[XCX_EXPX_v100J] moduleMatches = 0x785CA8A9 ; 1.0.0J 0x02560FD4 = bla _expBattle 0x022D8520 = bla _expTreasure diff --git a/src/XenobladeChroniclesX/Mods/ExpInnerExpPointsX/rules.txt b/src/XenobladeChroniclesX/Mods/ExpInnerExpPointsX/rules.txt index 77f2b544..d625a2fe 100644 --- a/src/XenobladeChroniclesX/Mods/ExpInnerExpPointsX/rules.txt +++ b/src/XenobladeChroniclesX/Mods/ExpInnerExpPointsX/rules.txt @@ -1,6 +1,6 @@ [Definition] titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 -name = "Lv Exp Points" +name = "Lv Exp Points Multiplier" path = "Xenoblade Chronicles X/Mods/Experience/Lv Exp Points" description = Change the amount of Level Exp points gained in battle, missions, quests and exploration.|Ignores the 9999 exp cap. version = 6 @@ -8,8 +8,13 @@ version = 6 [Default] $mod = 1 +[Preset] +name = "x0" +$mod = 0 + [Preset] name = "x1" +default = 1 [Preset] name = "x2" diff --git a/src/XenobladeChroniclesX/Mods/FrontierNavProbeMiraniumFrequency/patch_miranium_freq.asm b/src/XenobladeChroniclesX/Mods/FrontierNavProbeMiraniumFrequency/patch_miranium_freq.asm index 1fe545a1..640bd237 100644 --- a/src/XenobladeChroniclesX/Mods/FrontierNavProbeMiraniumFrequency/patch_miranium_freq.asm +++ b/src/XenobladeChroniclesX/Mods/FrontierNavProbeMiraniumFrequency/patch_miranium_freq.asm @@ -1,7 +1,6 @@ [XCX_FN_MIR_FREQ] moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J .origin = codecave -.int $mod ; ---------------------------------------------------------------------------- ; WHAT : changeTime__Q2_4fnet9CFnetTaskFUiT1 diff --git a/src/XenobladeChroniclesX/Mods/FrontierNavProbeMiraniumQuantity/patch_miranium_qu.asm b/src/XenobladeChroniclesX/Mods/FrontierNavProbeMiraniumQuantity/patch_miranium_qu.asm index 709c497e..c8e518f3 100644 --- a/src/XenobladeChroniclesX/Mods/FrontierNavProbeMiraniumQuantity/patch_miranium_qu.asm +++ b/src/XenobladeChroniclesX/Mods/FrontierNavProbeMiraniumQuantity/patch_miranium_qu.asm @@ -1,8 +1,6 @@ [XCX_FN_MIR_QTY] moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J .origin = codecave -.int $mod -.int $uncap ; ---------------------------------------------------------------------------- ; WHO : changeTime__Q2_4fnet9CFnetTaskFUiT1 diff --git a/src/XenobladeChroniclesX/Mods/FrontierNavProbeMoneyFrequency/patch_money_freq.asm b/src/XenobladeChroniclesX/Mods/FrontierNavProbeMoneyFrequency/patch_money_freq.asm index f92fd8ed..4ae84775 100644 --- a/src/XenobladeChroniclesX/Mods/FrontierNavProbeMoneyFrequency/patch_money_freq.asm +++ b/src/XenobladeChroniclesX/Mods/FrontierNavProbeMoneyFrequency/patch_money_freq.asm @@ -1,14 +1,9 @@ -[XCX_FN_MNY_FREQ] -moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J -.origin = codecave -.int $mod +[XCX_FN_MNY_FREQ_V101E_V102U] +moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E ; ---------------------------------------------------------------------------- ; WHAT : changeTime__Q2_4fnet9CFnetTaskFUiT1 ; WHY : Affect the frequency of the NavFrontier income for the money ; Frequency unit is 1 minute (so by default income is every 15 minutes) - -[XCX_FN_MNY_FREQ_V101E_V102U] -moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E 0x027D554C = li r12, $mod [XCX_FN_MNY_FREQ_V102J] diff --git a/src/XenobladeChroniclesX/Mods/FrontierNavProbeMoneyQuantity/patch_money_qu.asm b/src/XenobladeChroniclesX/Mods/FrontierNavProbeMoneyQuantity/patch_money_qu.asm index cefb9050..d4fc2807 100644 --- a/src/XenobladeChroniclesX/Mods/FrontierNavProbeMoneyQuantity/patch_money_qu.asm +++ b/src/XenobladeChroniclesX/Mods/FrontierNavProbeMoneyQuantity/patch_money_qu.asm @@ -1,7 +1,6 @@ [XCX_FN_MNY_QTY] moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J .origin = codecave -.int $mod _money: li r31, $mod diff --git a/src/XenobladeChroniclesX/Mods/FrontierNavProbeMoneyQuantity/rules.txt b/src/XenobladeChroniclesX/Mods/FrontierNavProbeMoneyQuantity/rules.txt index c337476b..9f0ef4cc 100644 --- a/src/XenobladeChroniclesX/Mods/FrontierNavProbeMoneyQuantity/rules.txt +++ b/src/XenobladeChroniclesX/Mods/FrontierNavProbeMoneyQuantity/rules.txt @@ -6,10 +6,14 @@ description = Affect the quantity of the FrontierNav income for the Money. version = 6 [Default] -$mod = 2 +$mod = 1 + +[Preset] +name = "x1" [Preset] name = "x2" +$mod = 2 [Preset] name = "x3" diff --git a/src/XenobladeChroniclesX/Mods/FrontierNavProbeResourceFrequency/patch_resource_freq.asm b/src/XenobladeChroniclesX/Mods/FrontierNavProbeResourceFrequency/patch_resource_freq.asm index 760bd6c5..ffc33632 100644 --- a/src/XenobladeChroniclesX/Mods/FrontierNavProbeResourceFrequency/patch_resource_freq.asm +++ b/src/XenobladeChroniclesX/Mods/FrontierNavProbeResourceFrequency/patch_resource_freq.asm @@ -1,14 +1,9 @@ -[XCX_FN_RES_FREQ] -moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J -.origin = codecave -.int $mod +[XCX_FN_RES_FREQ_V101E_V102U] +moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E ; ---------------------------------------------------------------------------- ; WHAT : changeTime__Q2_4fnet9CFnetTaskFUiT1 ; WHY : Affect the frequency of the NavFrontier income for the resources ; Frequency unit is 1 minute (so by default income is every 5 minutes) - -[XCX_FN_RES_FREQ_V101E_V102U] -moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E 0x027D534C = li r12, $mod [XCX_FN_RES_FREQ_V102J] diff --git a/src/XenobladeChroniclesX/Mods/FrontierNavProbeResourceQuantity/patch_resource_qu.asm b/src/XenobladeChroniclesX/Mods/FrontierNavProbeResourceQuantity/patch_resource_qu.asm index d1969e33..1d7f13bc 100644 --- a/src/XenobladeChroniclesX/Mods/FrontierNavProbeResourceQuantity/patch_resource_qu.asm +++ b/src/XenobladeChroniclesX/Mods/FrontierNavProbeResourceQuantity/patch_resource_qu.asm @@ -1,11 +1,10 @@ [XCX_FN_RES_QTY] moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J .origin = codecave -.int $mod ; ---------------------------------------------------------------------------- ; WHAT : changeTime__Q2_4fnet9CFnetTaskFUiT1 -; WHY : +; WHY : _multCount: lbz r0, 6(r31) li r3, $mod diff --git a/src/XenobladeChroniclesX/Mods/FrontierNavProbeResourceQuantity/rules.txt b/src/XenobladeChroniclesX/Mods/FrontierNavProbeResourceQuantity/rules.txt index 31404ff6..7ba2234c 100644 --- a/src/XenobladeChroniclesX/Mods/FrontierNavProbeResourceQuantity/rules.txt +++ b/src/XenobladeChroniclesX/Mods/FrontierNavProbeResourceQuantity/rules.txt @@ -6,10 +6,14 @@ description = Affect the quantity of the FrontierNav income for the resources. version = 6 [Default] -$mod = 2 +$mod = 1 + +[Preset] +name = "x1" [Preset] name = "x2" +$mod = 2 [Preset] name = "x3" diff --git a/src/XenobladeChroniclesX/Mods/GraphicsCameraDistance/rules.txt b/src/XenobladeChroniclesX/Mods/GraphicsCameraDistance/rules.txt index 14f43261..fd739907 100644 --- a/src/XenobladeChroniclesX/Mods/GraphicsCameraDistance/rules.txt +++ b/src/XenobladeChroniclesX/Mods/GraphicsCameraDistance/rules.txt @@ -1,15 +1,16 @@ [Definition] titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00 -name = "Camera distance mod" -path = "Xenoblade Chronicles X/Mods/Graphics/Camera distance mod" +name = "Default Camera Distance Mod" +path = "Xenoblade Chronicles X/Mods/Graphics/Default camera distance" description = Affect the default distance of the camera (Vanilla zoom is 0).|Does not affect max zoom possible. version = 6 [Default] -$mod = 2.0 +$mod = 0.0 [Preset] name = "Zoom 2" +$mod = 2.0 [Preset] name = "Zoom 5" diff --git a/src/XenobladeChroniclesX/Mods/GraphicsNoModelFade/patch_NoModelFade.asm b/src/XenobladeChroniclesX/Mods/GraphicsNoModelFade/patch_NoModelFade.asm index 3849f4fd..4a4a6f00 100644 --- a/src/XenobladeChroniclesX/Mods/GraphicsNoModelFade/patch_NoModelFade.asm +++ b/src/XenobladeChroniclesX/Mods/GraphicsNoModelFade/patch_NoModelFade.asm @@ -1,29 +1,16 @@ [XCX_NoModelFade_V101E_V102U] moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E -; in func setCameraAlphaMount__Q2_3cfs5CfObjFf -0x023EAC38 = nop ;setCameraAlphaMount__Q2_3cfs5CfObjFf -0x023EB5A4 = nop ;setCameraAlphaMount__Q2_3cfs5CfObjFf -; in func updateAlpha__Q2_3cfs17CfCompoAssetActorFv -0x02483E14 = nop ;setCameraAlphaMount__Q2_3cfs5CfObjFf -0x02484018 = nop ;setCameraAlphaMount__Q2_3cfs5CfObjFf +; mod prevents setCameraAlphaMount function from ever being called +0x023EA1F0 = blr [XCX_NoModelFade_V102J] moduleMatches = 0x7672271D ; 1.0.2J -0x023EA278 = nop -0x023EABE4 = nop -0x02483454 = nop -0x02483658 = nop +0x023E9830 = blr [XCX_NoModelFade_V100U] moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U -0x023EABC8 = nop -0x023EB534 = nop -0x02483DA4 = nop -0x02483FA8 = nop +0x023EA180 = blr [XCX_NoModelFade_V100J] moduleMatches = 0x785CA8A9 ; 1.0.0J -0x023E9DA8 = nop -0x023EA714 = nop -0x02482978 = nop -0x02482B7C = nop +0x023E9360 = blr diff --git a/src/XenobladeChroniclesX/Mods/GraphicsRemoveOverdriveBlur/patch_RemoveBlur.asm b/src/XenobladeChroniclesX/Mods/GraphicsRemoveOverdriveBlur/patch_RemoveBlur.asm index 09bc4ea7..1eb59908 100644 --- a/src/XenobladeChroniclesX/Mods/GraphicsRemoveOverdriveBlur/patch_RemoveBlur.asm +++ b/src/XenobladeChroniclesX/Mods/GraphicsRemoveOverdriveBlur/patch_RemoveBlur.asm @@ -1,16 +1,11 @@ [XCX_REMOVEBLUR_V101E_V102U_V100U] moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07, 0xAB97DE6B, 0x676EB33E ; 1.0.1E, 1.0.2U, 1.0.0E, 1.0.1U, 1.0.0U -; in func update__Q2_4Gear5CGearFf +;mod prevents updateBlur, startBlur, endBlur, and IsEndBlur functions from ever being called 0x021BC970 = nop ;_updateBlur__Q2_4Gear5CGearFf -; in func Update__Q2_4Gear5CModeFf 0x021E208C = nop ;_updateBlur__Q2_4Gear5CModeFf -; in func _startDecorate__Q2_4Gear5CGearFUi 0x021BEDAC = nop ;_startBlur__Q2_4Gear5CGearFv -; in func _startDecorate__Q2_4Gear5CModeFUi 0x021CFCCC = nop ;_startBlur__Q2_4Gear5CModeFv -; in func _endDecorate__Q2_4Gear5CGearFUi 0x021B4294 = nop ;_endBlur__Q2_4Gear5CGearFv -; in func _tailStatus__Q2_6Battle14CBattleManagerFv 0x020B6404 = nop ;IsEndBlur__Q2_4Gear5CGearFv [XCX_REMOVEBLUR_V102J]