Calculate offsets for map and gfx

This commit is contained in:
octorock 2021-11-19 12:41:03 +01:00
parent deb7f39279
commit 02d9bda5db
16 changed files with 2820 additions and 2763 deletions

View File

@ -1,26 +1,8 @@
.ifndef GUARD_ASM_MACROS_GFX_INC
.set GUARD_ASM_MACROS_GFX_INC, 1
@ TODO workaround because we cannot substract two extern pointers
@ Will need to find a different solution when wanting to modify assets.
.ifdef USA
.equiv ptr_gGlobalGfxAndPalettes, 0x85A2E80
.endif
.ifdef EU
.equiv ptr_gGlobalGfxAndPalettes, 0x85A23D0
.endif
.ifdef JP
.equiv ptr_gGlobalGfxAndPalettes, 0x85A2B20
.endif
.ifdef DEMO_USA
.equiv ptr_gGlobalGfxAndPalettes, 0x85A38B0
.endif
.ifdef DEMO_JP
.equiv ptr_gGlobalGfxAndPalettes, 0x85A2B18
.endif
.macro gfx_raw src:req, unknown=0, dest=0, size=0, compressed=0, terminator=0
.4byte (!(\terminator) << 0x1F) + (\src - ptr_gGlobalGfxAndPalettes)+ \unknown * 0x1000000, \dest, \size + (\compressed << 0x1F)
.4byte (!(\terminator) << 0x1F) + \src+ \unknown * 0x1000000, \dest, \size + (\compressed << 0x1F)
.endm
.macro palette_set palette:req, offset=0, count=0, terminator=0
@ -38,7 +20,7 @@
.endm
.macro fixed_gfx src:req, size=0, compressed=0
.4byte (\src - ptr_gGlobalGfxAndPalettes) + \compressed + (\size/0x200 << 24)
.4byte \src + \compressed + (\size/0x200 << 24)
.endm
.macro extra_offset x:req, y:req

View File

@ -10,26 +10,8 @@
.endm
@ TODO workaround because we cannot substract two extern pointers
@ Will need to find a different solution when wanting to modify assets.
.ifdef USA
.equiv ptr_gMapData, 0x8324AE4
.endif
.ifdef EU
.equiv ptr_gMapData, 0x8323FEC
.endif
.ifdef JP
.equiv ptr_gMapData, 0x8324710
.endif
.ifdef DEMO_USA
.equiv ptr_gMapData, 0x8325514
.endif
.ifdef DEMO_JP
.equiv ptr_gMapData, 0x8324708
.endif
.macro map_data src_offset, dest, size, compressed, terminator=0
.4byte (!(\terminator) << 0x1F) + (\src_offset - ptr_gMapData)
.4byte (!(\terminator) << 0x1F) + \src_offset
.4byte \dest
.4byte (\compressed << 0x1F) | (\size)
.endm

View File

@ -51961,9 +51961,31 @@
"type": "gfx"
},
{
"path": "sprites/gSprite_081FF1B4/unk_3.4bpp",
"path": "sprites/gSprite_081FF1B4/unk_3_0.4bpp",
"start": 2235828,
"size": 17888,
"size": 6656,
"type": "gfx"
},
{
"path": "sprites/gSprite_081FF1B4/config_0.txt",
"start": 2242484,
"size": 1024
},
{
"path": "sprites/gSprite_081FF1B4/unk_3_1.4bpp",
"start": 2243508,
"size": 4986,
"type": "gfx"
},
{
"path": "sprites/gSprite_081FF1B4/config_1.txt",
"start": 2248494,
"size": 1024
},
{
"path": "sprites/gSprite_081FF1B4/unk_3_2.4bpp",
"start": 2249518,
"size": 4198,
"type": "gfx"
},
{

View File

@ -7,6 +7,10 @@
"DEMO_JP": -872
}
},
{
"calculateOffsets": "gfx_offsets.inc",
"start": 5910144
},
{
"path": "palettes/gPalette_0.gbapal",
"start": 5910144,

View File

@ -7,6 +7,10 @@
"EU": -2808
}
},
{
"calculateOffsets": "map_offsets.inc",
"start": 3295972
},
{
"path": "assets/gAreaRoomMap_TownMinishHoles_8_0.bin",
"start": 3295972,

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -56,7 +56,11 @@ gSprite_081FF1B4:: @ 081FF1B4
.incbin "sprites/gSprite_081FF1B4/npc_MILK_CART.4bpp"
.incbin "sprites/gSprite_081FF1B4/npc_SMITH.4bpp"
.incbin "sprites/gSprite_081FF1B4/npc_TPWNSPERSON.4bpp"
.incbin "sprites/gSprite_081FF1B4/unk_3.4bpp"
.incbin "sprites/gSprite_081FF1B4/unk_3_0.4bpp"
.incbin "sprites/gSprite_081FF1B4/config_0.txt"
.incbin "sprites/gSprite_081FF1B4/unk_3_1.4bpp"
.incbin "sprites/gSprite_081FF1B4/config_1.txt"
.incbin "sprites/gSprite_081FF1B4/unk_3_2.4bpp"
.incbin "sprites/gSprite_081FF1B4/npc_KID.4bpp"
.incbin "sprites/gSprite_081FF1B4/unk_4.4bpp"
.incbin "sprites/gSprite_081FF1B4/npc_MAILBOX.4bpp"

File diff suppressed because it is too large Load Diff

View File

@ -4,327 +4,329 @@
.section .rodata
.align 2
.include "map_offsets.inc"
gAreaMetatiles_MinishWoods:: @ 081026AC
metatiles_bottom gAreaMetatiles_MinishWoods_0, 0x4000, 1
metatiles_top gAreaMetatiles_MinishWoods_1, 0x3FF0, 1
metatile_types_bottom gAreaMetatiles_MinishWoods_2, 0x1000, 1
metatile_types_top gAreaMetatiles_MinishWoods_3, 0xFFC, 1, 1
metatiles_bottom offset_gAreaMetatiles_MinishWoods_0, 0x4000, 1
metatiles_top offset_gAreaMetatiles_MinishWoods_1, 0x3FF0, 1
metatile_types_bottom offset_gAreaMetatiles_MinishWoods_2, 0x1000, 1
metatile_types_top offset_gAreaMetatiles_MinishWoods_3, 0xFFC, 1, 1
gAreaMetatiles_LakeHylia:: @ 081026DC
metatiles_bottom gAreaMetatiles_LakeHylia_0, 0x4000, 1
metatiles_top gAreaMetatiles_LakeHylia_1, 0x3FF0, 1
metatile_types_bottom gAreaMetatiles_LakeHylia_2, 0x1000, 1
metatile_types_top gAreaMetatiles_LakeHylia_3, 0xFFC, 1, 1
metatiles_bottom offset_gAreaMetatiles_LakeHylia_0, 0x4000, 1
metatiles_top offset_gAreaMetatiles_LakeHylia_1, 0x3FF0, 1
metatile_types_bottom offset_gAreaMetatiles_LakeHylia_2, 0x1000, 1
metatile_types_top offset_gAreaMetatiles_LakeHylia_3, 0xFFC, 1, 1
gAreaMetatiles_CastorWilds:: @ 0810270C
metatiles_bottom gAreaMetatiles_CastorWilds_0, 0x4000, 1
metatiles_top gAreaMetatiles_CastorWilds_1, 0x3FF0, 1
metatile_types_bottom gAreaMetatiles_CastorWilds_2, 0x1000, 1
metatile_types_top gAreaMetatiles_CastorWilds_3, 0xFFC, 1, 1
metatiles_bottom offset_gAreaMetatiles_CastorWilds_0, 0x4000, 1
metatiles_top offset_gAreaMetatiles_CastorWilds_1, 0x3FF0, 1
metatile_types_bottom offset_gAreaMetatiles_CastorWilds_2, 0x1000, 1
metatile_types_top offset_gAreaMetatiles_CastorWilds_3, 0xFFC, 1, 1
gAreaMetatiles_HyruleTown:: @ 0810273C
metatiles_bottom gAreaMetatiles_HyruleTown_0, 0x4000, 1
metatiles_top gAreaMetatiles_HyruleTown_1, 0x3FF0, 1
metatile_types_bottom gAreaMetatiles_HyruleTown_2, 0x1000, 1
metatile_types_top gAreaMetatiles_HyruleTown_3, 0xFFC, 1, 1
metatiles_bottom offset_gAreaMetatiles_HyruleTown_0, 0x4000, 1
metatiles_top offset_gAreaMetatiles_HyruleTown_1, 0x3FF0, 1
metatile_types_bottom offset_gAreaMetatiles_HyruleTown_2, 0x1000, 1
metatile_types_top offset_gAreaMetatiles_HyruleTown_3, 0xFFC, 1, 1
gAreaMetatiles_MtCrenel:: @ 0810276C
metatiles_bottom gAreaMetatiles_MtCrenel_0, 0x4000, 1
metatiles_top gAreaMetatiles_MtCrenel_1, 0x3FF0, 1
metatile_types_bottom gAreaMetatiles_MtCrenel_2, 0x1000, 1
metatile_types_top gAreaMetatiles_MtCrenel_3, 0xFFC, 1, 1
metatiles_bottom offset_gAreaMetatiles_MtCrenel_0, 0x4000, 1
metatiles_top offset_gAreaMetatiles_MtCrenel_1, 0x3FF0, 1
metatile_types_bottom offset_gAreaMetatiles_MtCrenel_2, 0x1000, 1
metatile_types_top offset_gAreaMetatiles_MtCrenel_3, 0xFFC, 1, 1
gAreaMetatiles_HyruleField:: @ 0810279C
metatiles_bottom gAreaMetatiles_HyruleField_0, 0x4000, 1
metatiles_top gAreaMetatiles_HyruleField_1, 0x3FF0, 1
metatile_types_bottom gAreaMetatiles_HyruleField_2, 0x1000, 1
metatile_types_top gAreaMetatiles_HyruleField_3, 0xFFC, 1, 1
metatiles_bottom offset_gAreaMetatiles_HyruleField_0, 0x4000, 1
metatiles_top offset_gAreaMetatiles_HyruleField_1, 0x3FF0, 1
metatile_types_bottom offset_gAreaMetatiles_HyruleField_2, 0x1000, 1
metatile_types_top offset_gAreaMetatiles_HyruleField_3, 0xFFC, 1, 1
gAreaMetatiles_CastleGarden:: @ 081027CC
metatiles_bottom gAreaMetatiles_CastleGarden_0, 0x3000, 1
metatiles_top gAreaMetatiles_CastleGarden_1, 0x3FF0, 1
metatile_types_bottom gAreaMetatiles_CastleGarden_2, 0xC00, 1
metatile_types_top gAreaMetatiles_CastleGarden_3, 0xFFC, 1, 1
metatiles_bottom offset_gAreaMetatiles_CastleGarden_0, 0x3000, 1
metatiles_top offset_gAreaMetatiles_CastleGarden_1, 0x3FF0, 1
metatile_types_bottom offset_gAreaMetatiles_CastleGarden_2, 0xC00, 1
metatile_types_top offset_gAreaMetatiles_CastleGarden_3, 0xFFC, 1, 1
gAreaMetatiles_CloudTops:: @ 081027FC
metatiles_bottom gAreaMetatiles_CloudTops_0, 0x3FB0, 1
metatiles_top gAreaMetatiles_CloudTops_1, 0x3FF0, 1
metatile_types_bottom gAreaMetatiles_CloudTops_2, 0xFEC, 1
metatile_types_top gAreaMetatiles_CloudTops_3, 0xFFC, 1, 1
metatiles_bottom offset_gAreaMetatiles_CloudTops_0, 0x3FB0, 1
metatiles_top offset_gAreaMetatiles_CloudTops_1, 0x3FF0, 1
metatile_types_bottom offset_gAreaMetatiles_CloudTops_2, 0xFEC, 1
metatile_types_top offset_gAreaMetatiles_CloudTops_3, 0xFFC, 1, 1
gAreaMetatiles_RoyalValley:: @ 0810282C
metatiles_bottom gAreaMetatiles_RoyalValley_0, 0x4000, 1
metatiles_top gAreaMetatiles_RoyalValley_1, 0x3FF0, 1
metatile_types_bottom gAreaMetatiles_RoyalValley_2, 0x1000, 1
metatile_types_top gAreaMetatiles_RoyalValley_3, 0xFFC, 1, 1
metatiles_bottom offset_gAreaMetatiles_RoyalValley_0, 0x4000, 1
metatiles_top offset_gAreaMetatiles_RoyalValley_1, 0x3FF0, 1
metatile_types_bottom offset_gAreaMetatiles_RoyalValley_2, 0x1000, 1
metatile_types_top offset_gAreaMetatiles_RoyalValley_3, 0xFFC, 1, 1
gAreaMetatiles_Beanstalks:: @ 0810285C
metatiles_bottom gAreaMetatiles_Beanstalks_0, 0x5A8, 1
metatile_types_bottom gAreaMetatiles_Beanstalks_1, 0x16A, 1, 1
metatiles_bottom offset_gAreaMetatiles_Beanstalks_0, 0x5A8, 1
metatile_types_bottom offset_gAreaMetatiles_Beanstalks_1, 0x16A, 1, 1
gAreaMetatiles_CrenelCaves:: @ 08102874
metatiles_bottom gAreaMetatiles_CrenelCaves_0, 0x3F80, 1
metatiles_top gAreaMetatiles_CrenelCaves_1, 0x3F40, 1
metatile_types_bottom gAreaMetatiles_CrenelCaves_2, 0xFE0, 1
metatile_types_top gAreaMetatiles_CrenelCaves_3, 0xFD0, 1, 1
metatiles_bottom offset_gAreaMetatiles_CrenelCaves_0, 0x3F80, 1
metatiles_top offset_gAreaMetatiles_CrenelCaves_1, 0x3F40, 1
metatile_types_bottom offset_gAreaMetatiles_CrenelCaves_2, 0xFE0, 1
metatile_types_top offset_gAreaMetatiles_CrenelCaves_3, 0xFD0, 1, 1
gAreaMetatiles_GreatFairies:: @ 081028A4
metatiles_bottom gAreaMetatiles_GreatFairies_0, 0x17A8, 1
metatiles_top gAreaMetatiles_GreatFairies_1, 0x1070, 1
metatile_types_bottom gAreaMetatiles_GreatFairies_2, 0x5EA, 1
metatile_types_top gAreaMetatiles_GreatFairies_3, 0x41C, 1, 1
metatiles_bottom offset_gAreaMetatiles_GreatFairies_0, 0x17A8, 1
metatiles_top offset_gAreaMetatiles_GreatFairies_1, 0x1070, 1
metatile_types_bottom offset_gAreaMetatiles_GreatFairies_2, 0x5EA, 1
metatile_types_top offset_gAreaMetatiles_GreatFairies_3, 0x41C, 1, 1
gAreaMetatiles_MinishVillage:: @ 081028D4
metatiles_bottom gAreaMetatiles_MinishVillage_0, 0x35A8, 1
metatiles_top gAreaMetatiles_MinishVillage_1, 0x3228, 1
metatile_types_bottom gAreaMetatiles_MinishVillage_2, 0xD6A, 1
metatile_types_top gAreaMetatiles_MinishVillage_3, 0xC8A, 1, 1
metatiles_bottom offset_gAreaMetatiles_MinishVillage_0, 0x35A8, 1
metatiles_top offset_gAreaMetatiles_MinishVillage_1, 0x3228, 1
metatile_types_bottom offset_gAreaMetatiles_MinishVillage_2, 0xD6A, 1
metatile_types_top offset_gAreaMetatiles_MinishVillage_3, 0xC8A, 1, 1
gAreaMetatiles_MelarisMine:: @ 08102904
metatiles_bottom gAreaMetatiles_MelarisMine_0, 0x27C0, 1
metatiles_top gAreaMetatiles_MelarisMine_1, 0x308, 1
metatile_types_bottom gAreaMetatiles_MelarisMine_2, 0x9F0, 1
metatile_types_top gAreaMetatiles_MelarisMine_3, 0xC2, 1, 1
metatiles_bottom offset_gAreaMetatiles_MelarisMine_0, 0x27C0, 1
metatiles_top offset_gAreaMetatiles_MelarisMine_1, 0x308, 1
metatile_types_bottom offset_gAreaMetatiles_MelarisMine_2, 0x9F0, 1
metatile_types_top offset_gAreaMetatiles_MelarisMine_3, 0xC2, 1, 1
gAreaMetatiles_MnishPaths1:: @ 08102934
metatiles_bottom gAreaMetatiles_MnishPaths1_0, 0x1420, 1
metatile_types_bottom gAreaMetatiles_MnishPaths1_1, 0x508, 1, 1
metatiles_bottom offset_gAreaMetatiles_MnishPaths1_0, 0x1420, 1
metatile_types_bottom offset_gAreaMetatiles_MnishPaths1_1, 0x508, 1, 1
gAreaMetatiles_CrenelMinishPaths:: @ 0810294C
metatiles_bottom gAreaMetatiles_CrenelMinishPaths_0, 0x1EB8, 1
metatile_types_bottom gAreaMetatiles_CrenelMinishPaths_1, 0x7AE, 1, 1
metatiles_bottom offset_gAreaMetatiles_CrenelMinishPaths_0, 0x1EB8, 1
metatile_types_bottom offset_gAreaMetatiles_CrenelMinishPaths_1, 0x7AE, 1, 1
gAreaMetatiles_MinishHouseInteriors:: @ 08102964
metatiles_bottom gAreaMetatiles_CrenelCaves_0, 0x3F80, 1
metatiles_top gAreaMetatiles_CrenelCaves_1, 0x3F40, 1
metatile_types_bottom gAreaMetatiles_CrenelCaves_2, 0xFE0, 1
metatile_types_top gAreaMetatiles_CrenelCaves_3, 0xFD0, 1, 1
metatiles_bottom offset_gAreaMetatiles_CrenelCaves_0, 0x3F80, 1
metatiles_top offset_gAreaMetatiles_CrenelCaves_1, 0x3F40, 1
metatile_types_bottom offset_gAreaMetatiles_CrenelCaves_2, 0xFE0, 1
metatile_types_top offset_gAreaMetatiles_CrenelCaves_3, 0xFD0, 1, 1
gAreaMetatiles_HouseInteriors1:: @ 08102994
metatiles_bottom gAreaMetatiles_HouseInteriors1_0, 0x3188, 1
metatiles_top gAreaMetatiles_EzloCutscene_1, 0x3FF0, 1
metatile_types_bottom gAreaMetatiles_HouseInteriors1_2, 0xC62, 1
metatile_types_top gAreaMetatiles_EzloCutscene_3, 0xFFC, 1, 1
metatiles_bottom offset_gAreaMetatiles_HouseInteriors1_0, 0x3188, 1
metatiles_top offset_gAreaMetatiles_EzloCutscene_1, 0x3FF0, 1
metatile_types_bottom offset_gAreaMetatiles_HouseInteriors1_2, 0xC62, 1
metatile_types_top offset_gAreaMetatiles_EzloCutscene_3, 0xFFC, 1, 1
gAreaMetatiles_HouseInteriors2:: @ 081029C4
metatiles_bottom gAreaMetatiles_HouseInteriors2_0, 0x33A0, 1
metatiles_top gAreaMetatiles_EzloCutscene_1, 0x3FF0, 1
metatile_types_bottom gAreaMetatiles_HouseInteriors2_2, 0xCE8, 1
metatile_types_top gAreaMetatiles_EzloCutscene_3, 0xFFC, 1, 1
metatiles_bottom offset_gAreaMetatiles_HouseInteriors2_0, 0x33A0, 1
metatiles_top offset_gAreaMetatiles_EzloCutscene_1, 0x3FF0, 1
metatile_types_bottom offset_gAreaMetatiles_HouseInteriors2_2, 0xCE8, 1
metatile_types_top offset_gAreaMetatiles_EzloCutscene_3, 0xFFC, 1, 1
gAreaMetatiles_HouseInteriors4:: @ 081029F4
metatiles_bottom gAreaMetatiles_HouseInteriors4_0, 0x33A0, 1
metatiles_top gAreaMetatiles_EzloCutscene_1, 0x3FF0, 1
metatile_types_bottom gAreaMetatiles_HouseInteriors4_2, 0xCE8, 1
metatile_types_top gAreaMetatiles_EzloCutscene_3, 0xFFC, 1, 1
metatiles_bottom offset_gAreaMetatiles_HouseInteriors4_0, 0x33A0, 1
metatiles_top offset_gAreaMetatiles_EzloCutscene_1, 0x3FF0, 1
metatile_types_bottom offset_gAreaMetatiles_HouseInteriors4_2, 0xCE8, 1
metatile_types_top offset_gAreaMetatiles_EzloCutscene_3, 0xFFC, 1, 1
gAreaMetatiles_HouseInteriors3:: @ 08102A24
metatiles_bottom gAreaMetatiles_HouseInteriors3_0, 0x2F20, 1
metatiles_top gAreaMetatiles_EzloCutscene_1, 0x3FF0, 1
metatile_types_bottom gAreaMetatiles_HouseInteriors3_2, 0xBC8, 1
metatile_types_top gAreaMetatiles_EzloCutscene_3, 0xFFC, 1, 1
metatiles_bottom offset_gAreaMetatiles_HouseInteriors3_0, 0x2F20, 1
metatiles_top offset_gAreaMetatiles_EzloCutscene_1, 0x3FF0, 1
metatile_types_bottom offset_gAreaMetatiles_HouseInteriors3_2, 0xBC8, 1
metatile_types_top offset_gAreaMetatiles_EzloCutscene_3, 0xFFC, 1, 1
gAreaMetatiles_TreeInteriors:: @ 08102A54
metatiles_bottom gAreaMetatiles_TreeInteriors_0, 0x3000, 1
metatiles_top gAreaMetatiles_EzloCutscene_1, 0x3FF0, 1
metatile_types_bottom gAreaMetatiles_TreeInteriors_2, 0xC00, 1
metatile_types_top gAreaMetatiles_EzloCutscene_3, 0xFFC, 1, 1
metatiles_bottom offset_gAreaMetatiles_TreeInteriors_0, 0x3000, 1
metatiles_top offset_gAreaMetatiles_EzloCutscene_1, 0x3FF0, 1
metatile_types_bottom offset_gAreaMetatiles_TreeInteriors_2, 0xC00, 1
metatile_types_top offset_gAreaMetatiles_EzloCutscene_3, 0xFFC, 1, 1
gAreaMetatiles_Dojos:: @ 08102A84
metatiles_bottom gAreaMetatiles_Dojos_0, 0x33A0, 1
metatiles_top gAreaMetatiles_EzloCutscene_1, 0x3FF0, 1
metatile_types_bottom gAreaMetatiles_Dojos_2, 0xCE8, 1
metatile_types_top gAreaMetatiles_EzloCutscene_3, 0xFFC, 1, 1
metatiles_bottom offset_gAreaMetatiles_Dojos_0, 0x33A0, 1
metatiles_top offset_gAreaMetatiles_EzloCutscene_1, 0x3FF0, 1
metatile_types_bottom offset_gAreaMetatiles_Dojos_2, 0xCE8, 1
metatile_types_top offset_gAreaMetatiles_EzloCutscene_3, 0xFFC, 1, 1
gAreaMetatiles_MinishCracks:: @ 08102AB4
metatiles_bottom gAreaMetatiles_MinishCracks_0, 0x3180, 1
metatiles_top gAreaMetatiles_EzloCutscene_1, 0x3FF0, 1
metatile_types_bottom gAreaMetatiles_MinishCracks_2, 0xC60, 1
metatile_types_top gAreaMetatiles_EzloCutscene_3, 0xFFC, 1, 1
metatiles_bottom offset_gAreaMetatiles_MinishCracks_0, 0x3180, 1
metatiles_top offset_gAreaMetatiles_EzloCutscene_1, 0x3FF0, 1
metatile_types_bottom offset_gAreaMetatiles_MinishCracks_2, 0xC60, 1
metatile_types_top offset_gAreaMetatiles_EzloCutscene_3, 0xFFC, 1, 1
gAreaMetatiles_ArmosInteriors:: @ 08102AE4
metatiles_bottom gAreaMetatiles_ArmosInteriors_0, 0xC50, 1
metatiles_top gAreaMetatiles_ArmosInteriors_1, 0xC50, 1
metatile_types_bottom gAreaMetatiles_ArmosInteriors_2, 0x314, 1
metatile_types_top gAreaMetatiles_ArmosInteriors_3, 0x314, 1, 1
metatiles_bottom offset_gAreaMetatiles_ArmosInteriors_0, 0xC50, 1
metatiles_top offset_gAreaMetatiles_ArmosInteriors_1, 0xC50, 1
metatile_types_bottom offset_gAreaMetatiles_ArmosInteriors_2, 0x314, 1
metatile_types_top offset_gAreaMetatiles_ArmosInteriors_3, 0x314, 1, 1
gAreaMetatiles_MinishRafters:: @ 08102B14
metatiles_bottom gAreaMetatiles_MinishRafters_0, 0x1A30, 1
metatiles_top gAreaMetatiles_EzloCutscene_1, 0x3FF0, 1
metatile_types_bottom gAreaMetatiles_MinishRafters_2, 0x68C, 1
metatile_types_top gAreaMetatiles_EzloCutscene_3, 0xFFC, 1, 1
metatiles_bottom offset_gAreaMetatiles_MinishRafters_0, 0x1A30, 1
metatiles_top offset_gAreaMetatiles_EzloCutscene_1, 0x3FF0, 1
metatile_types_bottom offset_gAreaMetatiles_MinishRafters_2, 0x68C, 1
metatile_types_top offset_gAreaMetatiles_EzloCutscene_3, 0xFFC, 1, 1
gAreaMetatiles_GoronCave:: @ 08102B44
metatiles_bottom gAreaMetatiles_GoronCave_0, 0x3F80, 1
metatiles_top gAreaMetatiles_GoronCave_1, 0x3400, 1
metatile_types_bottom gAreaMetatiles_GoronCave_2, 0xFE0, 1
metatile_types_top gAreaMetatiles_GoronCave_3, 0xD00, 1, 1
metatiles_bottom offset_gAreaMetatiles_GoronCave_0, 0x3F80, 1
metatiles_top offset_gAreaMetatiles_GoronCave_1, 0x3400, 1
metatile_types_bottom offset_gAreaMetatiles_GoronCave_2, 0xFE0, 1
metatile_types_top offset_gAreaMetatiles_GoronCave_3, 0xD00, 1, 1
gAreaMetatiles_WindTribeTower:: @ 08102B74
metatiles_bottom gAreaMetatiles_WindTribeTower_0, 0x2EB0, 1
metatiles_top gAreaMetatiles_EzloCutscene_1, 0x3FF0, 1
metatile_types_bottom gAreaMetatiles_WindTribeTower_2, 0xBAC, 1
metatile_types_top gAreaMetatiles_EzloCutscene_3, 0xFFC, 1, 1
metatiles_bottom offset_gAreaMetatiles_WindTribeTower_0, 0x2EB0, 1
metatiles_top offset_gAreaMetatiles_EzloCutscene_1, 0x3FF0, 1
metatile_types_bottom offset_gAreaMetatiles_WindTribeTower_2, 0xBAC, 1
metatile_types_top offset_gAreaMetatiles_EzloCutscene_3, 0xFFC, 1, 1
gAreaMetatiles_WindTribeTowerRoof:: @ 08102BA4
metatiles_bottom gAreaMetatiles_WindTribeTowerRoof_0, 0xBC0, 1
metatiles_top gAreaMetatiles_WindTribeTowerRoof_1, 0xBC0, 1
metatile_types_bottom gAreaMetatiles_WindTribeTowerRoof_2, 0x2F0, 1
metatile_types_top gAreaMetatiles_WindTribeTowerRoof_3, 0x2F0, 1, 1
metatiles_bottom offset_gAreaMetatiles_WindTribeTowerRoof_0, 0xBC0, 1
metatiles_top offset_gAreaMetatiles_WindTribeTowerRoof_1, 0xBC0, 1
metatile_types_bottom offset_gAreaMetatiles_WindTribeTowerRoof_2, 0x2F0, 1
metatile_types_top offset_gAreaMetatiles_WindTribeTowerRoof_3, 0x2F0, 1, 1
gAreaMetatiles_MinishCaves:: @ 08102BD4
metatiles_bottom gAreaMetatiles_MinishCaves_0, 0x3F80, 1
metatiles_top gAreaMetatiles_MinishCaves_1, 0x3F80, 1
metatile_types_bottom gAreaMetatiles_MinishCaves_2, 0xFE0, 1
metatile_types_top gAreaMetatiles_MinishCaves_3, 0xFE0, 1, 1
metatiles_bottom offset_gAreaMetatiles_MinishCaves_0, 0x3F80, 1
metatiles_top offset_gAreaMetatiles_MinishCaves_1, 0x3F80, 1
metatile_types_bottom offset_gAreaMetatiles_MinishCaves_2, 0xFE0, 1
metatile_types_top offset_gAreaMetatiles_MinishCaves_3, 0xFE0, 1, 1
gAreaMetatiles_CastleGardenMinishHoles:: @ 08102C04
metatiles_bottom gAreaMetatiles_CastleGardenMinishHoles_0, 0x13A8, 1
metatiles_top gAreaMetatiles_CastleGardenMinishHoles_1, 0x1680, 1
metatile_types_bottom gAreaMetatiles_CastleGardenMinishHoles_2, 0x4EA, 1
metatile_types_top gAreaMetatiles_CastleGardenMinishHoles_3, 0x5A0, 1, 1
metatiles_bottom offset_gAreaMetatiles_CastleGardenMinishHoles_0, 0x13A8, 1
metatiles_top offset_gAreaMetatiles_CastleGardenMinishHoles_1, 0x1680, 1
metatile_types_bottom offset_gAreaMetatiles_CastleGardenMinishHoles_2, 0x4EA, 1
metatile_types_top offset_gAreaMetatiles_CastleGardenMinishHoles_3, 0x5A0, 1, 1
gAreaMetatiles_EzloCutscene:: @ 08102C34
metatiles_bottom gAreaMetatiles_EzloCutscene_0, 0x1A20, 1
metatiles_top gAreaMetatiles_EzloCutscene_1, 0x3FF0, 1
metatile_types_bottom gAreaMetatiles_EzloCutscene_2, 0x688, 1
metatile_types_top gAreaMetatiles_EzloCutscene_3, 0xFFC, 1, 1
metatiles_bottom offset_gAreaMetatiles_EzloCutscene_0, 0x1A20, 1
metatiles_top offset_gAreaMetatiles_EzloCutscene_1, 0x3FF0, 1
metatile_types_bottom offset_gAreaMetatiles_EzloCutscene_2, 0x688, 1
metatile_types_top offset_gAreaMetatiles_EzloCutscene_3, 0xFFC, 1, 1
gAreaMetatiles_HyruleTownUnderground:: @ 08102C64
metatiles_bottom gAreaMetatiles_HyruleTownUnderground_0, 0x3E80, 1
metatiles_top gAreaMetatiles_HyruleTownUnderground_1, 0x3610, 1
metatile_types_bottom gAreaMetatiles_HyruleTownUnderground_2, 0xFA0, 1
metatile_types_top gAreaMetatiles_HyruleTownUnderground_3, 0xD84, 1, 1
metatiles_bottom offset_gAreaMetatiles_HyruleTownUnderground_0, 0x3E80, 1
metatiles_top offset_gAreaMetatiles_HyruleTownUnderground_1, 0x3610, 1
metatile_types_bottom offset_gAreaMetatiles_HyruleTownUnderground_2, 0xFA0, 1
metatile_types_top offset_gAreaMetatiles_HyruleTownUnderground_3, 0xD84, 1, 1
gAreaMetatiles_DeepwoodShrine:: @ 08102C94
metatiles_bottom gAreaMetatiles_DeepwoodShrine_0, 0x3B28, 1
metatiles_top gAreaMetatiles_DeepwoodShrine_1, 0x3620, 1
metatile_types_bottom gAreaMetatiles_DeepwoodShrine_2, 0xECA, 1
metatile_types_top gAreaMetatiles_DeepwoodShrine_3, 0xD88, 1, 1
metatiles_bottom offset_gAreaMetatiles_DeepwoodShrine_0, 0x3B28, 1
metatiles_top offset_gAreaMetatiles_DeepwoodShrine_1, 0x3620, 1
metatile_types_bottom offset_gAreaMetatiles_DeepwoodShrine_2, 0xECA, 1
metatile_types_top offset_gAreaMetatiles_DeepwoodShrine_3, 0xD88, 1, 1
gAreaMetatiles_DeepwoodShrineBoss:: @ 08102CC4
metatiles_bottom gAreaMetatiles_DeepwoodShrineBoss_0, 0x3620, 1
metatiles_top gAreaMetatiles_DeepwoodShrineBoss_1, 0x11F8, 1
metatile_types_bottom gAreaMetatiles_DeepwoodShrineBoss_2, 0xD88, 1
metatile_types_top gAreaMetatiles_DeepwoodShrineBoss_3, 0x47E, 1, 1
metatiles_bottom offset_gAreaMetatiles_DeepwoodShrineBoss_0, 0x3620, 1
metatiles_top offset_gAreaMetatiles_DeepwoodShrineBoss_1, 0x11F8, 1
metatile_types_bottom offset_gAreaMetatiles_DeepwoodShrineBoss_2, 0xD88, 1
metatile_types_top offset_gAreaMetatiles_DeepwoodShrineBoss_3, 0x47E, 1, 1
gAreaMetatiles_DeepwoodShrineEntry:: @ 08102CF4
metatiles_bottom gAreaMetatiles_DeepwoodShrineEntry_0, 0xD08, 1
metatiles_top gAreaMetatiles_DeepwoodShrineEntry_1, 0x9F8, 1
metatile_types_bottom gAreaMetatiles_DeepwoodShrineEntry_2, 0x342, 1
metatile_types_top gAreaMetatiles_DeepwoodShrineEntry_3, 0x27E, 1, 1
metatiles_bottom offset_gAreaMetatiles_DeepwoodShrineEntry_0, 0xD08, 1
metatiles_top offset_gAreaMetatiles_DeepwoodShrineEntry_1, 0x9F8, 1
metatile_types_bottom offset_gAreaMetatiles_DeepwoodShrineEntry_2, 0x342, 1
metatile_types_top offset_gAreaMetatiles_DeepwoodShrineEntry_3, 0x27E, 1, 1
gAreaMetatiles_CaveOfFlames:: @ 08102D24
metatiles_bottom gAreaMetatiles_CaveOfFlames_0, 0x3B08, 1
metatiles_top gAreaMetatiles_CaveOfFlames_1, 0x3F28, 1
metatile_types_bottom gAreaMetatiles_CaveOfFlames_2, 0xEC2, 1
metatile_types_top gAreaMetatiles_CaveOfFlames_3, 0xFCA, 1, 1
metatiles_bottom offset_gAreaMetatiles_CaveOfFlames_0, 0x3B08, 1
metatiles_top offset_gAreaMetatiles_CaveOfFlames_1, 0x3F28, 1
metatile_types_bottom offset_gAreaMetatiles_CaveOfFlames_2, 0xEC2, 1
metatile_types_top offset_gAreaMetatiles_CaveOfFlames_3, 0xFCA, 1, 1
gAreaMetatiles_CaveOfFlamesBoss:: @ 08102D54
metatiles_bottom gAreaMetatiles_CaveOfFlamesBoss_0, 0x3B08, 1
metatiles_top gAreaMetatiles_CaveOfFlamesBoss_1, 0x3610, 1
metatile_types_bottom gAreaMetatiles_CaveOfFlamesBoss_2, 0xEC2, 1
metatile_types_top gAreaMetatiles_CaveOfFlamesBoss_3, 0xD84, 1, 1
metatiles_bottom offset_gAreaMetatiles_CaveOfFlamesBoss_0, 0x3B08, 1
metatiles_top offset_gAreaMetatiles_CaveOfFlamesBoss_1, 0x3610, 1
metatile_types_bottom offset_gAreaMetatiles_CaveOfFlamesBoss_2, 0xEC2, 1
metatile_types_top offset_gAreaMetatiles_CaveOfFlamesBoss_3, 0xD84, 1, 1
gAreaMetatiles_FortressOfWinds:: @ 08102D84
metatiles_bottom gAreaMetatiles_FortressOfWinds_0, 0x3868, 1
metatiles_top gAreaMetatiles_FortressOfWinds_1, 0x3850, 1
metatile_types_bottom gAreaMetatiles_FortressOfWinds_2, 0xE1A, 1
metatile_types_top gAreaMetatiles_FortressOfWinds_3, 0xE14, 1, 1
metatiles_bottom offset_gAreaMetatiles_FortressOfWinds_0, 0x3868, 1
metatiles_top offset_gAreaMetatiles_FortressOfWinds_1, 0x3850, 1
metatile_types_bottom offset_gAreaMetatiles_FortressOfWinds_2, 0xE1A, 1
metatile_types_top offset_gAreaMetatiles_FortressOfWinds_3, 0xE14, 1, 1
gAreaMetatiles_FortressOfWindsTop:: @ 08102DB4
metatiles_bottom gAreaMetatiles_FortressOfWindsTop_0, 0x1440, 1
metatiles_top gAreaMetatiles_FortressOfWindsTop_1, 0x1368, 1
metatile_types_bottom gAreaMetatiles_FortressOfWindsTop_2, 0x510, 1
metatile_types_top gAreaMetatiles_FortressOfWindsTop_3, 0x4DA, 1, 1
metatiles_bottom offset_gAreaMetatiles_FortressOfWindsTop_0, 0x1440, 1
metatiles_top offset_gAreaMetatiles_FortressOfWindsTop_1, 0x1368, 1
metatile_types_bottom offset_gAreaMetatiles_FortressOfWindsTop_2, 0x510, 1
metatile_types_top offset_gAreaMetatiles_FortressOfWindsTop_3, 0x4DA, 1, 1
gAreaMetatiles_InnerMazaal:: @ 08102DE4
metatiles_bottom gAreaMetatiles_InnerMazaal_0, 0x3C00, 1
metatiles_top gAreaMetatiles_InnerMazaal_1, 0x3E70, 1
metatile_types_bottom gAreaMetatiles_InnerMazaal_2, 0xF00, 1
metatile_types_top gAreaMetatiles_InnerMazaal_3, 0xF9C, 1, 1
metatiles_bottom offset_gAreaMetatiles_InnerMazaal_0, 0x3C00, 1
metatiles_top offset_gAreaMetatiles_InnerMazaal_1, 0x3E70, 1
metatile_types_bottom offset_gAreaMetatiles_InnerMazaal_2, 0xF00, 1
metatile_types_top offset_gAreaMetatiles_InnerMazaal_3, 0xF9C, 1, 1
gAreaMetatiles_TempleOfDroplets:: @ 08102E14
metatiles_bottom gAreaMetatiles_TempleOfDroplets_0, 0x3D68, 1
metatiles_top gAreaMetatiles_TempleOfDroplets_1, 0x4000, 1
metatile_types_bottom gAreaMetatiles_TempleOfDroplets_2, 0xF5A, 1
metatile_types_top gAreaMetatiles_TempleOfDroplets_3, 0x1000, 1, 1
metatiles_bottom offset_gAreaMetatiles_TempleOfDroplets_0, 0x3D68, 1
metatiles_top offset_gAreaMetatiles_TempleOfDroplets_1, 0x4000, 1
metatile_types_bottom offset_gAreaMetatiles_TempleOfDroplets_2, 0xF5A, 1
metatile_types_top offset_gAreaMetatiles_TempleOfDroplets_3, 0x1000, 1, 1
gAreaMetatiles_61:: @ 08102E44
metatiles_bottom gAreaMetatiles_61_0, 0x600, 1
metatiles_top gAreaMetatiles_61_1, 0x398, 1
metatile_types_bottom gAreaMetatiles_61_2, 0x180, 1
metatile_types_top gAreaMetatiles_61_3, 0xE6, 1, 1
metatiles_bottom offset_gAreaMetatiles_61_0, 0x600, 1
metatiles_top offset_gAreaMetatiles_61_1, 0x398, 1
metatile_types_bottom offset_gAreaMetatiles_61_2, 0x180, 1
metatile_types_top offset_gAreaMetatiles_61_3, 0xE6, 1, 1
gAreaMetatiles_RoyalCrypt:: @ 08102E74
metatiles_bottom gAreaMetatiles_RoyalCrypt_0, 0x3610, 1
metatiles_top gAreaMetatiles_RoyalCrypt_1, 0x3610, 1
metatile_types_bottom gAreaMetatiles_RoyalCrypt_2, 0xD84, 1
metatile_types_top gAreaMetatiles_RoyalCrypt_3, 0xD84, 1, 1
metatiles_bottom offset_gAreaMetatiles_RoyalCrypt_0, 0x3610, 1
metatiles_top offset_gAreaMetatiles_RoyalCrypt_1, 0x3610, 1
metatile_types_bottom offset_gAreaMetatiles_RoyalCrypt_2, 0xD84, 1
metatile_types_top offset_gAreaMetatiles_RoyalCrypt_3, 0xD84, 1, 1
gAreaMetatiles_PalaceOfWinds:: @ 08102EA4
metatiles_bottom gAreaMetatiles_PalaceOfWinds_0, 0x3620, 1
metatiles_top gAreaMetatiles_PalaceOfWinds_1, 0x3620, 1
metatile_types_bottom gAreaMetatiles_PalaceOfWinds_2, 0xD88, 1
metatile_types_top gAreaMetatiles_PalaceOfWinds_3, 0xD88, 1, 1
metatiles_bottom offset_gAreaMetatiles_PalaceOfWinds_0, 0x3620, 1
metatiles_top offset_gAreaMetatiles_PalaceOfWinds_1, 0x3620, 1
metatile_types_bottom offset_gAreaMetatiles_PalaceOfWinds_2, 0xD88, 1
metatile_types_top offset_gAreaMetatiles_PalaceOfWinds_3, 0xD88, 1, 1
gAreaMetatiles_PalaceOfWindsBoss:: @ 08102ED4
metatiles_top gAreaMetatiles_PalaceOfWindsBoss_0, 0x108, 1
metatile_types_top gAreaMetatiles_PalaceOfWindsBoss_1, 0x42, 1, 1
metatiles_top offset_gAreaMetatiles_PalaceOfWindsBoss_0, 0x108, 1
metatile_types_top offset_gAreaMetatiles_PalaceOfWindsBoss_1, 0x42, 1, 1
gAreaMetatiles_Sanctuary:: @ 08102EEC
metatiles_bottom gAreaMetatiles_Sanctuary_0, 0x3620, 1
metatiles_top gAreaMetatiles_Sanctuary_1, 0x3620, 1
metatile_types_bottom gAreaMetatiles_Sanctuary_2, 0xD88, 1
metatile_types_top gAreaMetatiles_Sanctuary_3, 0xD88, 1, 1
metatiles_bottom offset_gAreaMetatiles_Sanctuary_0, 0x3620, 1
metatiles_top offset_gAreaMetatiles_Sanctuary_1, 0x3620, 1
metatile_types_bottom offset_gAreaMetatiles_Sanctuary_2, 0xD88, 1
metatile_types_top offset_gAreaMetatiles_Sanctuary_3, 0xD88, 1, 1
gAreaMetatiles_HyruleCastle:: @ 08102F1C
metatiles_bottom gAreaMetatiles_HyruleCastle_0, 0x37C0, 1
metatiles_top gAreaMetatiles_HyruleCastle_1, 0x3610, 1
metatile_types_bottom gAreaMetatiles_HyruleCastle_2, 0xDF0, 1
metatile_types_top gAreaMetatiles_HyruleCastle_3, 0xD84, 1, 1
metatiles_bottom offset_gAreaMetatiles_HyruleCastle_0, 0x37C0, 1
metatiles_top offset_gAreaMetatiles_HyruleCastle_1, 0x3610, 1
metatile_types_bottom offset_gAreaMetatiles_HyruleCastle_2, 0xDF0, 1
metatile_types_top offset_gAreaMetatiles_HyruleCastle_3, 0xD84, 1, 1
gAreaMetatiles_SanctuaryEntrance:: @ 08102F4C
metatiles_bottom gAreaMetatiles_SanctuaryEntrance_0, 0x1478, 1
metatiles_top gAreaMetatiles_SanctuaryEntrance_1, 0xFF0, 1
metatile_types_bottom gAreaMetatiles_SanctuaryEntrance_2, 0x51E, 1
metatile_types_top gAreaMetatiles_SanctuaryEntrance_3, 0x3FC, 1, 1
metatiles_bottom offset_gAreaMetatiles_SanctuaryEntrance_0, 0x1478, 1
metatiles_top offset_gAreaMetatiles_SanctuaryEntrance_1, 0xFF0, 1
metatile_types_bottom offset_gAreaMetatiles_SanctuaryEntrance_2, 0x51E, 1
metatile_types_top offset_gAreaMetatiles_SanctuaryEntrance_3, 0x3FC, 1, 1
gAreaMetatiles_DarkHyruleCastle:: @ 08102F7C
metatiles_bottom gAreaMetatiles_DarkHyruleCastle_0, 0x3FD8, 1
metatiles_top gAreaMetatiles_DarkHyruleCastle_1, 0x37C0, 1
metatile_types_bottom gAreaMetatiles_DarkHyruleCastle_2, 0xFF6, 1
metatile_types_top gAreaMetatiles_DarkHyruleCastle_3, 0xDF0, 1, 1
metatiles_bottom offset_gAreaMetatiles_DarkHyruleCastle_0, 0x3FD8, 1
metatiles_top offset_gAreaMetatiles_DarkHyruleCastle_1, 0x37C0, 1
metatile_types_bottom offset_gAreaMetatiles_DarkHyruleCastle_2, 0xFF6, 1
metatile_types_top offset_gAreaMetatiles_DarkHyruleCastle_3, 0xDF0, 1, 1
gAreaMetatiles_DarkHyruleCastleOutside:: @ 08102FAC
metatiles_bottom gAreaMetatiles_DarkHyruleCastleOutside_0, 0x3340, 1
metatiles_top gAreaMetatiles_DarkHyruleCastleOutside_1, 0x1EF0, 1
metatile_types_bottom gAreaMetatiles_DarkHyruleCastleOutside_2, 0xCD0, 1
metatile_types_top gAreaMetatiles_DarkHyruleCastleOutside_3, 0x7BC, 1, 1
metatiles_bottom offset_gAreaMetatiles_DarkHyruleCastleOutside_0, 0x3340, 1
metatiles_top offset_gAreaMetatiles_DarkHyruleCastleOutside_1, 0x1EF0, 1
metatile_types_bottom offset_gAreaMetatiles_DarkHyruleCastleOutside_2, 0xCD0, 1
metatile_types_top offset_gAreaMetatiles_DarkHyruleCastleOutside_3, 0x7BC, 1, 1
gAreaMetatiles_DarkHyruleCastleBridge:: @ 08102FDC
metatiles_bottom gAreaMetatiles_DarkHyruleCastleBridge_0, 0x3610, 1
metatiles_top gAreaMetatiles_DarkHyruleCastleBridge_1, 0x3610, 1
metatile_types_bottom gAreaMetatiles_DarkHyruleCastleBridge_2, 0xD84, 1
metatile_types_top gAreaMetatiles_DarkHyruleCastleBridge_3, 0xD84, 1, 1
metatiles_bottom offset_gAreaMetatiles_DarkHyruleCastleBridge_0, 0x3610, 1
metatiles_top offset_gAreaMetatiles_DarkHyruleCastleBridge_1, 0x3610, 1
metatile_types_bottom offset_gAreaMetatiles_DarkHyruleCastleBridge_2, 0xD84, 1
metatile_types_top offset_gAreaMetatiles_DarkHyruleCastleBridge_3, 0xD84, 1, 1
gAreaMetatiles_VaatisArms:: @ 0810300C
metatiles_bottom gAreaMetatiles_VaatisArms_0, 0x17C8, 1
metatiles_top gAreaMetatiles_VaatisArms_1, 0xBC0, 1
metatile_types_bottom gAreaMetatiles_VaatisArms_2, 0x5F2, 1
metatile_types_top gAreaMetatiles_VaatisArms_3, 0x2F0, 1, 1
metatiles_bottom offset_gAreaMetatiles_VaatisArms_0, 0x17C8, 1
metatiles_top offset_gAreaMetatiles_VaatisArms_1, 0xBC0, 1
metatile_types_bottom offset_gAreaMetatiles_VaatisArms_2, 0x5F2, 1
metatile_types_top offset_gAreaMetatiles_VaatisArms_3, 0x2F0, 1, 1
gAreaMetatiles_Vaati3:: @ 0810303C
metatiles_bottom gAreaMetatiles_Vaati3_0, 0xE80, 1
metatiles_top gAreaMetatiles_Vaati3_1, 0x9B8, 1
metatile_types_bottom gAreaMetatiles_Vaati3_2, 0x3A0, 1
metatile_types_top gAreaMetatiles_Vaati3_3, 0x26E, 1, 1
metatiles_bottom offset_gAreaMetatiles_Vaati3_0, 0xE80, 1
metatiles_top offset_gAreaMetatiles_Vaati3_1, 0x9B8, 1
metatile_types_bottom offset_gAreaMetatiles_Vaati3_2, 0x3A0, 1
metatile_types_top offset_gAreaMetatiles_Vaati3_3, 0x26E, 1, 1
gAreaMetatiles_Vaati2:: @ 0810306C
metatiles_bottom gAreaMetatiles_Vaati2_0, 0x850, 1
metatiles_top gAreaMetatiles_Vaati2_1, 0x298, 1
metatile_types_bottom gAreaMetatiles_Vaati2_2, 0x214, 1
metatile_types_top gAreaMetatiles_Vaati2_3, 0xA6, 1, 1
metatiles_bottom offset_gAreaMetatiles_Vaati2_0, 0x850, 1
metatiles_top offset_gAreaMetatiles_Vaati2_1, 0x298, 1
metatile_types_bottom offset_gAreaMetatiles_Vaati2_2, 0x214, 1
metatile_types_top offset_gAreaMetatiles_Vaati2_3, 0xA6, 1, 1
gAreaMetatiles:: @ 0810309C

File diff suppressed because it is too large Load Diff

View File

@ -163,14 +163,13 @@ void sub_08061E70(Entity* this) {
}
}
// FIXME this is actually (Entity* this, ScriptExecutionContext* context)
void sub_08061E90(Entity* this, ScriptExecutionContext* arg1) {
void sub_08061E90(Entity* this, ScriptExecutionContext* context) {
u32 animIndex;
s32 iVar4;
if (arg1->unk_18 == 0) {
arg1->unk_18++;
arg1->unk_12 = (Random() & 0x3f) + 0x20;
if (context->unk_18 == 0) {
context->unk_18++;
context->unk_12 = (Random() & 0x3f) + 0x20;
animIndex = DirectionRound(Random());
switch (this->direction) {
case 0x0:
@ -205,23 +204,23 @@ void sub_08061E90(Entity* this, ScriptExecutionContext* arg1) {
iVar4 = this->x.HALF.HI - *(s16*)&this->field_0x6a.HWORD;
if (0x10 < iVar4) {
this->x.HALF.HI = this->field_0x6a.HWORD + 0x10;
arg1->unk_12 = 1;
context->unk_12 = 1;
}
if (iVar4 < -0x10) {
this->x.HALF.HI = *(s16*)&this->field_0x6a.HWORD - 0x10;
arg1->unk_12 = 1;
context->unk_12 = 1;
}
iVar4 = this->y.HALF.HI - *(s16*)&this->field_0x6c;
if (0x10 < iVar4) {
this->y.HALF.HI = *(s16*)&this->field_0x6c + 0x10;
arg1->unk_12 = 1;
context->unk_12 = 1;
}
if (iVar4 < -0x10) {
this->y.HALF.HI = *(s16*)&this->field_0x6c - 0x10;
arg1->unk_12 = 1;
context->unk_12 = 1;
}
if (--arg1->unk_12 != 0) {
if (--context->unk_12 != 0) {
gActiveScriptInfo.commandSize = 0;
}
}

View File

@ -44,6 +44,18 @@ class BaseAsset {
return buildPath;
}
// Returns the base of the filename of the asset.
std::string getSymbol() const {
// Need to get the stem twice to remove both of the .4bpp.lz extensions.
return (this->path.stem()).stem();
}
// Returns the start address of this asset.
int getStart() const {
return start;
}
protected:
std::filesystem::path path;
std::filesystem::path assetPath;

View File

@ -8,6 +8,7 @@
#include "assets/palette.h"
#include "assets/spriteframe.h"
#include "assets/tileset.h"
#include "offsets.h"
#include <filesystem>
#include <fstream>
#include <iostream>
@ -133,12 +134,19 @@ int main(int argc, char** argv) {
std::filesystem::file_time_type configModified = std::filesystem::last_write_time(config);
std::unique_ptr<OffsetCalculator> offsetCalculator;
uint currentOffset = 0;
for (const auto& asset : assets) {
if (asset.contains("offsets")) { // Offset definition
if (asset["offsets"].contains(gVariant)) {
currentOffset = asset["offsets"][gVariant];
}
} else if (asset.contains("calculateOffsets")) { // Start offset calculation
std::filesystem::path path = gAssetsFolder;
path = path / asset["calculateOffsets"];
int baseOffset = asset["start"].get<int>() + currentOffset;
offsetCalculator = std::make_unique<OffsetCalculator>(path, baseOffset);
} else if (asset.contains("path")) { // Asset definition
if (asset.contains("variants")) {
@ -153,14 +161,17 @@ int main(int argc, char** argv) {
switch (gMode) {
case EXTRACT: {
std::unique_ptr<BaseAsset> assetHandler = getAssetHandlerByType(path, asset, currentOffset);
if (shouldExtractAsset(path, configModified)) {
if (gVerbose) {
std::cout << "Extracting " << path << "..." << std::endl;
}
std::unique_ptr<BaseAsset> assetHandler = getAssetHandlerByType(path, asset, currentOffset);
extractAsset(assetHandler, baserom);
}
if (offsetCalculator != nullptr) {
offsetCalculator->addAsset(assetHandler->getStart(), assetHandler->getSymbol());
}
break;
}
case CONVERT: {

View File

@ -0,0 +1,9 @@
#include "offsets.h"
OffsetCalculator::OffsetCalculator(std::filesystem::path outputFile, int baseOffset): baseOffset(baseOffset) {
output = std::ofstream(outputFile);
}
void OffsetCalculator::addAsset(int start, std::string symbol) {
this->output << "\t.equiv offset_" << symbol << ", " << start - this->baseOffset << std::endl;
}

View File

@ -0,0 +1,18 @@
#ifndef OFFSETS_H
#define OFFSETS_H
#include <filesystem>
#include <fstream>
#include <string>
class OffsetCalculator {
public:
OffsetCalculator(std::filesystem::path offsetsFile, int baseOffset);
void addAsset(int start, std::string symbol);
private:
std::ofstream output;
int baseOffset;
};
#endif