diff --git a/code/mm.ld b/code/mm.ld index 157a77b8..a9abbbca 100644 --- a/code/mm.ld +++ b/code/mm.ld @@ -327,26 +327,6 @@ SECTIONS{ *(.patch_RemoveGoronMaskCheckDarmani) } - .patch_CheckOshExtData 0x3BF224 : { - *(.patch_CheckOshExtData) - } - - .patch_OverrideQuiverArcheryTown 0x3E50E4 : { - *(.patch_OverrideQuiverArchery) - } - - .patch_OverrideQuiverArcherySwamp 0x3EA2B0 : { - *(.patch_OverrideQuiverArcheryTwo) - } - - .patch_OverrideFairyGiveItem 0x3BECAC : { - *(.patch_OverrideFairyGiveItem) - } - - .patch_OverrideGreatFairySpawn 0x3BEC84 : { - *(.patch_OverrideGreatFairySpawn) - } - .patch_SaveExtDataOnOwl 0x317004 : { *(.patch_SaveExtDataOnOwl) } @@ -379,6 +359,30 @@ SECTIONS{ *(.patch_CheckMoTRequirement) } + .patch_TingleCheckClocktownMapTwo 0x3F5F00 : { + *(.patch_TingleCheckClocktownMapTwo) + } + + .patch_TingleCheckWoodfallMapTwo 0x3F5F10 : { + *(.patch_TingleCheckWoodfallMapTwo) + } + + .patch_TingleCheckSnowheadMapTwo 0x3F5F20 : { + *(.patch_TingleCheckSnowheadMapTwo) + } + + .patch_TingleCheckRomaniMapTwo 0x3F5F30 : { + *(.patch_TingleCheckRomaniMapTwo) + } + + .patch_TingleCheckGreatBayMapTwo 0x3F5F40 : { + *(.patch_TingleCheckGreatBayMapTwo) + } + + .patch_TingleCheckStoneTowerMapTwo 0x3F5F50 : { + *(.patch_TingleCheckStoneTowerMapTwo) + } + .patch_TradeItemDeleteMoonsTear 0x3B5214 : { *(.patch_TradeItemDeleteMoonsTear) } @@ -387,10 +391,30 @@ SECTIONS{ *(.patch_OverrideWalletSpiderHouseTwo) } + .patch_CheckOshExtData 0x3BF224 : { + *(.patch_CheckOshExtData) + } + .patch_OverrideWalletSpiderHouse 0x3BF2A8 : { *(.patch_OverrideWalletSpiderHouse) } + .patch_OverrideQuiverArcheryTown 0x3E50E4 : { + *(.patch_OverrideQuiverArchery) + } + + .patch_OverrideQuiverArcherySwamp 0x3EA2B0 : { + *(.patch_OverrideQuiverArcheryTwo) + } + + .patch_OverrideFairyGiveItem 0x3BECAC : { + *(.patch_OverrideFairyGiveItem) + } + + .patch_OverrideGreatFairySpawn 0x3BEC84 : { + *(.patch_OverrideGreatFairySpawn) + } + .patch_HMSGiveItem 0x41D018 : { *(.patch_HMSGiveItem) } diff --git a/code/source/asm/tingle_hooks.s b/code/source/asm/tingle_hooks.s index 4d6f6ab6..250e0cb3 100644 --- a/code/source/asm/tingle_hooks.s +++ b/code/source/asm/tingle_hooks.s @@ -15,4 +15,20 @@ hook_CheckTingle: pop {r0} bx lr doNotGiveItem: - b 0x2DAC3C \ No newline at end of file + b 0x2DAC3C + +.global hook_CheckTingleTwo +hook_CheckTingleTwo: + push {r0-r12,lr} + cpy r1,r6 + bl ItemOverride_CheckTingleMaps + cmp r0,#0x1 + pop {r0-r12,lr} + bne doNotGiveItemTwo + push {r0} + mov r0,#0x0 + cmp r0,#0x0 + pop {r0} + bx lr +doNotGiveItemTwo: + b 0x3F6038 \ No newline at end of file diff --git a/code/source/asm/tingle_patches.s b/code/source/asm/tingle_patches.s index 9188434a..66da0312 100644 --- a/code/source/asm/tingle_patches.s +++ b/code/source/asm/tingle_patches.s @@ -34,4 +34,40 @@ patch_TingleCheckGreatBayMap: .global patch_TingleCheckStoneTowerMap patch_TingleCheckStoneTowerMap: mov r0,#0x20 - bl hook_CheckTingle \ No newline at end of file + bl hook_CheckTingle + +.section .patch_TingleCheckClocktownMapTwo +.global patch_TingleCheckClocktownMapTwo +patch_TingleCheckClocktownMapTwo: + mov r0,#0x1 + bl hook_CheckTingleTwo + +.section .patch_TingleCheckWoodfallMapTwo +.global patch_TingleCheckWoodfallMapTwo +patch_TingleCheckWoodfallMapTwo: + mov r0,#0x2 + bl hook_CheckTingleTwo + +.section .patch_TingleCheckSnowheadMapTwo +.global patch_TingleCheckSnowheadMapTwo +patch_TingleCheckSnowheadMapTwo: + mov r0,#0x4 + bl hook_CheckTingleTwo + +.section .patch_TingleCheckRomaniMapTwo +.global patch_TingleCheckRomaniMapTwo +patch_TingleCheckRomaniMapTwo: + mov r0,#0x8 + bl hook_CheckTingleTwo + +.section .patch_TingleCheckGreatBayMapTwo +.global patch_TingleCheckGreatBayMapTwo +patch_TingleCheckGreatBayMapTwo: + mov r0,#0x10 + bl hook_CheckTingleTwo + +.section .patch_TingleCheckStoneTowerMapTwo +.global patch_TingleCheckStoneTowerMapTwo +patch_TingleCheckStoneTowerMapTwo: + mov r0,#0x20 + bl hook_CheckTingleTwo \ No newline at end of file diff --git a/code/source/rnd/item_override.cpp b/code/source/rnd/item_override.cpp index 6b4f5b99..29215d73 100644 --- a/code/source/rnd/item_override.cpp +++ b/code/source/rnd/item_override.cpp @@ -45,8 +45,8 @@ namespace rnd { rItemOverrides[0].value.looksLikeItemId = 0x26; rItemOverrides[1].key.scene = 0x6F; rItemOverrides[1].key.type = ItemOverride_Type::OVR_COLLECTABLE; - rItemOverrides[1].value.getItemId = 0x6E; - rItemOverrides[1].value.looksLikeItemId = 0x6E; + rItemOverrides[1].value.getItemId = 0xB4; + rItemOverrides[1].value.looksLikeItemId = 0xB4; rItemOverrides[2].key.scene = 0x12; rItemOverrides[2].key.type = ItemOverride_Type::OVR_COLLECTABLE; rItemOverrides[2].value.getItemId = 0x37; diff --git a/code/source/rnd/savefile.cpp b/code/source/rnd/savefile.cpp index b877fc9d..cd5d3f75 100644 --- a/code/source/rnd/savefile.cpp +++ b/code/source/rnd/savefile.cpp @@ -121,7 +121,7 @@ namespace rnd { gSettingsContext.skipBombersMinigame = 1; gSettingsContext.freeScarecrow = 1; saveData.activate_dungeon_skip_portal_0xF0_for_all = 0xF0; - SaveFile_FillOverWorldMapData(); + // SaveFile_FillOverWorldMapData(); saveData.inventory.collect_register.oath_to_order = 1; // Boss Remains