Add more tilemap documentation

This commit is contained in:
octorock 2024-01-06 18:12:53 +01:00
parent 06dc158598
commit 560dfa45b1
39 changed files with 4306 additions and 4280 deletions

View File

@ -8,7 +8,7 @@
@ custom libgcc implementation
.code 16
_08000ED8:
_divide_by_zero:
movs r0, #0
movs r1, #0
movs r2, #0
@ -17,14 +17,14 @@ _08000ED8:
thumb_func_start __divsi3
__divsi3: @ 0x08000EE0
cmp r1, #0
beq _08000ED8
beq _divide_by_zero
svc #6
bx lr
thumb_func_start __modsi3
__modsi3: @ 0x08000EE8
cmp r1, #0
beq _08000ED8
beq _divide_by_zero
svc #6
adds r0, r1, #0
bx lr

View File

@ -126,12 +126,12 @@
.2byte \paramB, \paramC, \paramD
.endm
.macro chest type, id, item, subnum, tileset_id
.macro chest type, id, item, subnum, tileSet_id
.2byte (\map_x) << 4
.2byte (\map_y) << 4
.2byte \pixel_width
.2byte \pixel_height
.2byte \tileset_id
.2byte \tileSet_id
.endm
.macro delayed_entity_raw subtype:req, paramA=0, paramB=0, layer=0, x=0, y=0, paramC=0, paramD=0, conditions=0

View File

@ -16,12 +16,12 @@
.set BOTTOM_TILES, gMapBottom+0x7004
.set BOTTOM_ACTTILES, gMapBottom+0xb004
.macro room_header map_x, map_y, pixel_width, pixel_height, tileset_id
.macro room_header map_x, map_y, pixel_width, pixel_height, tileSet_id
.2byte (\map_x) << 4
.2byte (\map_y) << 4
.2byte \pixel_width
.2byte \pixel_height
.2byte \tileset_id
.2byte \tileSet_id
.endm
@ -31,11 +31,11 @@
.4byte (\compressed << 0x1F) | (\size)
.endm
.macro tileset_tiles src_offset, dest, size, compressed, terminator=0
.macro tileSet_tiles src_offset, dest, size, compressed, terminator=0
map_data \src_offset, \dest, \size, \compressed, \terminator
.endm
.macro tileset_palette_set id, terminator=0
.macro tileSet_palette_set id, terminator=0
.4byte (!(\terminator) << 0x1F) | (\id)
.4byte 0x0
.4byte 0x0

View File

@ -30,7 +30,7 @@ FindValueForKey: @ 0x08007DD6
adds r0, r3, #0 // move the found value into r0
pop {pc}
thumb_func_start FindEntryForKey // TODO rename
thumb_func_start FindEntryForKey
FindEntryForKey: @ 0x08007DE0
subs r1, #4
_08007DE2:

View File

@ -19565,8 +19565,7 @@
"JP",
"DEMO_USA",
"DEMO_JP"
],
"TODO": "which variants?"
]
},
{
"path": "gfx/fixedTypeGfx_502.4bpp",
@ -23255,7 +23254,6 @@
"path": "gfx/gGfx_72_1.4bpp",
"start": 8647424,
"size": 2048,
"TODO": "WHAT WAS ASSET EXTRACTION THINKING HERE?",
"type": "gfx",
"variants": [
"EU"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -110,8 +110,8 @@ gAreaRoomMap_HyruleField_0:: @ 081034B8
map_top offset_gAreaRoomMap_HyruleField_WesternWoodsSouth_top, 0x30C, 1, 1
gAreaRoomMap_HyruleField_1:: @ 081034D0
tileset_tiles offset_gAreaTileset_HyruleField_0_0, 0x6000000, 0x4000, 1
tileset_tiles offset_gAreaTileset_HyruleField_0_2, 0x6008000, 0x4000, 1
tileSet_tiles offset_gAreaTileSet_HyruleField_0_0, 0x6000000, 0x4000, 1
tileSet_tiles offset_gAreaTileSet_HyruleField_0_2, 0x6008000, 0x4000, 1
.4byte 0x80000010, 0x0, 0x0
map_bottom offset_gAreaRoomMap_HyruleField_SouthHyruleField_bottom, 0x152A, 1
map_top offset_gAreaRoomMap_HyruleField_SouthHyruleField_top, 0x152A, 1, 1
@ -121,36 +121,36 @@ gAreaRoomMap_HyruleField_2:: @ 0810350C
map_top offset_gAreaRoomMap_HyruleField_EasternHillsSouth_top, 0x30C, 1, 1
gAreaRoomMap_HyruleField_3:: @ 08103524
tileset_tiles offset_gAreaTileset_HyruleField_0_0, 0x6000000, 0x4000, 1
tileset_tiles offset_gAreaTileset_HyruleField_0_2, 0x6008000, 0x4000, 1
tileSet_tiles offset_gAreaTileSet_HyruleField_0_0, 0x6000000, 0x4000, 1
tileSet_tiles offset_gAreaTileSet_HyruleField_0_2, 0x6008000, 0x4000, 1
.4byte 0x80000010, 0x0, 0x0
map_bottom offset_gAreaRoomMap_HyruleField_EasternHillsCenter_bottom, 0x3C0, 1
map_top offset_gAreaRoomMap_HyruleField_EasternHillsCenter_top, 0x3C0, 1, 1
gAreaRoomMap_HyruleField_4:: @ 08103560
tileset_tiles offset_gAreaTileset_HyruleField_1_0, 0x6000000, 0x4000, 1
tileset_tiles offset_gAreaTileset_HyruleField_1_2, 0x6008000, 0x4000, 1
tileSet_tiles offset_gAreaTileSet_HyruleField_1_0, 0x6000000, 0x4000, 1
tileSet_tiles offset_gAreaTileSet_HyruleField_1_2, 0x6008000, 0x4000, 1
.4byte 0x80000043, 0x0, 0x0
map_bottom offset_gAreaRoomMap_HyruleField_EasternHillsNorth_bottom, 0x7F8, 1
map_top offset_gAreaRoomMap_HyruleField_EasternHillsNorth_top, 0x7F8, 1, 1
gAreaRoomMap_HyruleField_5:: @ 0810359C
tileset_tiles offset_gAreaTileset_HyruleField_1_0, 0x6000000, 0x4000, 1
tileset_tiles offset_gAreaTileset_HyruleField_1_2, 0x6008000, 0x4000, 1
tileSet_tiles offset_gAreaTileSet_HyruleField_1_0, 0x6000000, 0x4000, 1
tileSet_tiles offset_gAreaTileSet_HyruleField_1_2, 0x6008000, 0x4000, 1
.4byte 0x80000043, 0x0, 0x0
map_bottom offset_gAreaRoomMap_HyruleField_LonLonRanch_bottom, 0x1518, 1
map_top offset_gAreaRoomMap_HyruleField_LonLonRanch_top, 0x1518, 1, 1
gAreaRoomMap_HyruleField_6:: @ 081035D8
tileset_tiles offset_gAreaTileset_HyruleField_2_0, 0x6000000, 0x4000, 1
tileset_tiles offset_gAreaTileset_HyruleField_2_2, 0x6008000, 0x4000, 1
tileSet_tiles offset_gAreaTileSet_HyruleField_2_0, 0x6000000, 0x4000, 1
tileSet_tiles offset_gAreaTileSet_HyruleField_2_2, 0x6008000, 0x4000, 1
.4byte 0x8000002E, 0x0, 0x0
map_bottom offset_gAreaRoomMap_HyruleField_NorthHyruleField_bottom, 0x189C, 1
map_top offset_gAreaRoomMap_HyruleField_NorthHyruleField_top, 0x189C, 1, 1
gAreaRoomMap_HyruleField_7:: @ 08103614
tileset_tiles offset_gAreaTileset_HyruleField_0_0, 0x6000000, 0x4000, 1
tileset_tiles offset_gAreaTileset_HyruleField_0_2, 0x6008000, 0x4000, 1
tileSet_tiles offset_gAreaTileSet_HyruleField_0_0, 0x6000000, 0x4000, 1
tileSet_tiles offset_gAreaTileSet_HyruleField_0_2, 0x6008000, 0x4000, 1
.4byte 0x80000010, 0x0, 0x0
map_bottom offset_gAreaRoomMap_HyruleField_TrilbyHighlands_bottom, 0xE10, 1
map_top offset_gAreaRoomMap_HyruleField_TrilbyHighlands_top, 0xE10, 1, 1

View File

@ -5,7 +5,7 @@
.align 2
@ x, y, width, height, tileset_id
@ x, y, width, height, tileSet_id
gAreaRoomHeaders_MinishWoods:: @ 0811C488
room_header 0xBA, 0x87, 0x3F0, 0x3F0, 0

View File

@ -7,326 +7,326 @@
.include "map_offsets.inc"
gAreaTiles_MinishWoods:: @ 081026AC
tiles_bottom offset_gAreaTileset_MinishWoods_bottom, 0x4000, 1
tiles_top offset_gAreaTileset_MinishWoods_top, 0x3FF0, 1
tile_types_bottom offset_gAreaTilesetTypes_MinishWoods_bottom, 0x1000, 1
tile_types_top offset_gAreaTilesetTypes_MinishWoods_top, 0xFFC, 1, 1
tiles_bottom offset_gAreaTileSet_MinishWoods_bottom, 0x4000, 1
tiles_top offset_gAreaTileSet_MinishWoods_top, 0x3FF0, 1
tile_types_bottom offset_gAreaTileSetTypes_MinishWoods_bottom, 0x1000, 1
tile_types_top offset_gAreaTileSetTypes_MinishWoods_top, 0xFFC, 1, 1
gAreaTiles_LakeHylia:: @ 081026DC
tiles_bottom offset_gAreaTileset_LakeHylia_bottom, 0x4000, 1
tiles_top offset_gAreaTileset_LakeHylia_top, 0x3FF0, 1
tile_types_bottom offset_gAreaTilesetTypes_LakeHylia_bottom, 0x1000, 1
tile_types_top offset_gAreaTilesetTypes_LakeHylia_top, 0xFFC, 1, 1
tiles_bottom offset_gAreaTileSet_LakeHylia_bottom, 0x4000, 1
tiles_top offset_gAreaTileSet_LakeHylia_top, 0x3FF0, 1
tile_types_bottom offset_gAreaTileSetTypes_LakeHylia_bottom, 0x1000, 1
tile_types_top offset_gAreaTileSetTypes_LakeHylia_top, 0xFFC, 1, 1
gAreaTiles_CastorWilds:: @ 0810270C
tiles_bottom offset_gAreaTileset_CastorWilds_bottom, 0x4000, 1
tiles_top offset_gAreaTileset_CastorWilds_top, 0x3FF0, 1
tile_types_bottom offset_gAreaTilesetTypes_CastorWilds_bottom, 0x1000, 1
tile_types_top offset_gAreaTilesetTypes_CastorWilds_top, 0xFFC, 1, 1
tiles_bottom offset_gAreaTileSet_CastorWilds_bottom, 0x4000, 1
tiles_top offset_gAreaTileSet_CastorWilds_top, 0x3FF0, 1
tile_types_bottom offset_gAreaTileSetTypes_CastorWilds_bottom, 0x1000, 1
tile_types_top offset_gAreaTileSetTypes_CastorWilds_top, 0xFFC, 1, 1
gAreaTiles_HyruleTown:: @ 0810273C
tiles_bottom offset_gAreaTileset_HyruleTown_bottom, 0x4000, 1
tiles_top offset_gAreaTileset_HyruleTown_top, 0x3FF0, 1
tile_types_bottom offset_gAreaTilesetTypes_HyruleTown_bottom, 0x1000, 1
tile_types_top offset_gAreaTilesetTypes_HyruleTown_top, 0xFFC, 1, 1
tiles_bottom offset_gAreaTileSet_HyruleTown_bottom, 0x4000, 1
tiles_top offset_gAreaTileSet_HyruleTown_top, 0x3FF0, 1
tile_types_bottom offset_gAreaTileSetTypes_HyruleTown_bottom, 0x1000, 1
tile_types_top offset_gAreaTileSetTypes_HyruleTown_top, 0xFFC, 1, 1
gAreaTiles_MtCrenel:: @ 0810276C
tiles_bottom offset_gAreaTileset_MtCrenel_bottom, 0x4000, 1
tiles_top offset_gAreaTileset_MtCrenel_top, 0x3FF0, 1
tile_types_bottom offset_gAreaTilesetTypes_MtCrenel_bottom, 0x1000, 1
tile_types_top offset_gAreaTilesetTypes_MtCrenel_top, 0xFFC, 1, 1
tiles_bottom offset_gAreaTileSet_MtCrenel_bottom, 0x4000, 1
tiles_top offset_gAreaTileSet_MtCrenel_top, 0x3FF0, 1
tile_types_bottom offset_gAreaTileSetTypes_MtCrenel_bottom, 0x1000, 1
tile_types_top offset_gAreaTileSetTypes_MtCrenel_top, 0xFFC, 1, 1
gAreaTiles_HyruleField:: @ 0810279C
tiles_bottom offset_gAreaTileset_HyruleField_bottom, 0x4000, 1
tiles_top offset_gAreaTileset_HyruleField_top, 0x3FF0, 1
tile_types_bottom offset_gAreaTilesetTypes_HyruleField_bottom, 0x1000, 1
tile_types_top offset_gAreaTilesetTypes_HyruleField_top, 0xFFC, 1, 1
tiles_bottom offset_gAreaTileSet_HyruleField_bottom, 0x4000, 1
tiles_top offset_gAreaTileSet_HyruleField_top, 0x3FF0, 1
tile_types_bottom offset_gAreaTileSetTypes_HyruleField_bottom, 0x1000, 1
tile_types_top offset_gAreaTileSetTypes_HyruleField_top, 0xFFC, 1, 1
gAreaTiles_CastleGarden:: @ 081027CC
tiles_bottom offset_gAreaTileset_CastleGarden_bottom, 0x3000, 1
tiles_top offset_gAreaTileset_CastleGarden_top, 0x3FF0, 1
tile_types_bottom offset_gAreaTilesetTypes_CastleGarden_bottom, 0xC00, 1
tile_types_top offset_gAreaTilesetTypes_CastleGarden_top, 0xFFC, 1, 1
tiles_bottom offset_gAreaTileSet_CastleGarden_bottom, 0x3000, 1
tiles_top offset_gAreaTileSet_CastleGarden_top, 0x3FF0, 1
tile_types_bottom offset_gAreaTileSetTypes_CastleGarden_bottom, 0xC00, 1
tile_types_top offset_gAreaTileSetTypes_CastleGarden_top, 0xFFC, 1, 1
gAreaTiles_CloudTops:: @ 081027FC
tiles_bottom offset_gAreaTileset_CloudTops_bottom, 0x3FB0, 1
tiles_top offset_gAreaTileset_CloudTops_top, 0x3FF0, 1
tile_types_bottom offset_gAreaTilesetTypes_CloudTops_bottom, 0xFEC, 1
tile_types_top offset_gAreaTilesetTypes_CloudTops_top, 0xFFC, 1, 1
tiles_bottom offset_gAreaTileSet_CloudTops_bottom, 0x3FB0, 1
tiles_top offset_gAreaTileSet_CloudTops_top, 0x3FF0, 1
tile_types_bottom offset_gAreaTileSetTypes_CloudTops_bottom, 0xFEC, 1
tile_types_top offset_gAreaTileSetTypes_CloudTops_top, 0xFFC, 1, 1
gAreaTiles_RoyalValley:: @ 0810282C
tiles_bottom offset_gAreaTileset_RoyalValley_bottom, 0x4000, 1
tiles_top offset_gAreaTileset_RoyalValley_top, 0x3FF0, 1
tile_types_bottom offset_gAreaTilesetTypes_RoyalValley_bottom, 0x1000, 1
tile_types_top offset_gAreaTilesetTypes_RoyalValley_top, 0xFFC, 1, 1
tiles_bottom offset_gAreaTileSet_RoyalValley_bottom, 0x4000, 1
tiles_top offset_gAreaTileSet_RoyalValley_top, 0x3FF0, 1
tile_types_bottom offset_gAreaTileSetTypes_RoyalValley_bottom, 0x1000, 1
tile_types_top offset_gAreaTileSetTypes_RoyalValley_top, 0xFFC, 1, 1
gAreaTiles_Beanstalks:: @ 0810285C
tiles_bottom offset_gAreaTileset_Beanstalks_bottom, 0x5A8, 1
tile_types_bottom offset_gAreaTilesetTypes_Beanstalks_bottom, 0x16A, 1, 1
tiles_bottom offset_gAreaTileSet_Beanstalks_bottom, 0x5A8, 1
tile_types_bottom offset_gAreaTileSetTypes_Beanstalks_bottom, 0x16A, 1, 1
gAreaTiles_CrenelCaves:: @ 08102874
tiles_bottom offset_gAreaTileset_MinishHouseInteriors_bottom, 0x3F80, 1
tiles_top offset_gAreaTileset_MinishHouseInteriors_top, 0x3F40, 1
tile_types_bottom offset_gAreaTilesetTypes_MinishHouseInteriors_bottom, 0xFE0, 1
tile_types_top offset_gAreaTilesetTypes_MinishHouseInteriors_top, 0xFD0, 1, 1
tiles_bottom offset_gAreaTileSet_MinishHouseInteriors_bottom, 0x3F80, 1
tiles_top offset_gAreaTileSet_MinishHouseInteriors_top, 0x3F40, 1
tile_types_bottom offset_gAreaTileSetTypes_MinishHouseInteriors_bottom, 0xFE0, 1
tile_types_top offset_gAreaTileSetTypes_MinishHouseInteriors_top, 0xFD0, 1, 1
gAreaTiles_GreatFairies:: @ 081028A4
tiles_bottom offset_gAreaTileset_GreatFairies_bottom, 0x17A8, 1
tiles_top offset_gAreaTileset_GreatFairies_top, 0x1070, 1
tile_types_bottom offset_gAreaTilesetTypes_GreatFairies_bottom, 0x5EA, 1
tile_types_top offset_gAreaTilesetTypes_GreatFairies_top, 0x41C, 1, 1
tiles_bottom offset_gAreaTileSet_GreatFairies_bottom, 0x17A8, 1
tiles_top offset_gAreaTileSet_GreatFairies_top, 0x1070, 1
tile_types_bottom offset_gAreaTileSetTypes_GreatFairies_bottom, 0x5EA, 1
tile_types_top offset_gAreaTileSetTypes_GreatFairies_top, 0x41C, 1, 1
gAreaTiles_MinishVillage:: @ 081028D4
tiles_bottom offset_gAreaTileset_MinishVillage_bottom, 0x35A8, 1
tiles_top offset_gAreaTileset_MinishVillage_top, 0x3228, 1
tile_types_bottom offset_gAreaTilesetTypes_MinishVillage_bottom, 0xD6A, 1
tile_types_top offset_gAreaTilesetTypes_MinishVillage_top, 0xC8A, 1, 1
tiles_bottom offset_gAreaTileSet_MinishVillage_bottom, 0x35A8, 1
tiles_top offset_gAreaTileSet_MinishVillage_top, 0x3228, 1
tile_types_bottom offset_gAreaTileSetTypes_MinishVillage_bottom, 0xD6A, 1
tile_types_top offset_gAreaTileSetTypes_MinishVillage_top, 0xC8A, 1, 1
gAreaTiles_MelarisMine:: @ 08102904
tiles_bottom offset_gAreaTileset_MelarisMine_bottom, 0x27C0, 1
tiles_top offset_gAreaTileset_MelarisMine_top, 0x308, 1
tile_types_bottom offset_gAreaTilesetTypes_MelarisMine_bottom, 0x9F0, 1
tile_types_top offset_gAreaTilesetTypes_MelarisMine_top, 0xC2, 1, 1
tiles_bottom offset_gAreaTileSet_MelarisMine_bottom, 0x27C0, 1
tiles_top offset_gAreaTileSet_MelarisMine_top, 0x308, 1
tile_types_bottom offset_gAreaTileSetTypes_MelarisMine_bottom, 0x9F0, 1
tile_types_top offset_gAreaTileSetTypes_MelarisMine_top, 0xC2, 1, 1
gAreaTiles_MnishPaths1:: @ 08102934
tiles_bottom offset_gAreaTileset_MinishPaths_bottom, 0x1420, 1
tile_types_bottom offset_gAreaTilesetTypes_MinishPaths_bottom, 0x508, 1, 1
tiles_bottom offset_gAreaTileSet_MinishPaths_bottom, 0x1420, 1
tile_types_bottom offset_gAreaTileSetTypes_MinishPaths_bottom, 0x508, 1, 1
gAreaTiles_CrenelMinishPaths:: @ 0810294C
tiles_bottom offset_gAreaTileset_CrenelMinishPaths_bottom, 0x1EB8, 1
tile_types_bottom offset_gAreaTilesetTypes_CrenelMinishPaths_bottom, 0x7AE, 1, 1
tiles_bottom offset_gAreaTileSet_CrenelMinishPaths_bottom, 0x1EB8, 1
tile_types_bottom offset_gAreaTileSetTypes_CrenelMinishPaths_bottom, 0x7AE, 1, 1
gAreaTiles_MinishHouseInteriors:: @ 08102964
tiles_bottom offset_gAreaTileset_MinishHouseInteriors_bottom, 0x3F80, 1
tiles_top offset_gAreaTileset_MinishHouseInteriors_top, 0x3F40, 1
tile_types_bottom offset_gAreaTilesetTypes_MinishHouseInteriors_bottom, 0xFE0, 1
tile_types_top offset_gAreaTilesetTypes_MinishHouseInteriors_top, 0xFD0, 1, 1
tiles_bottom offset_gAreaTileSet_MinishHouseInteriors_bottom, 0x3F80, 1
tiles_top offset_gAreaTileSet_MinishHouseInteriors_top, 0x3F40, 1
tile_types_bottom offset_gAreaTileSetTypes_MinishHouseInteriors_bottom, 0xFE0, 1
tile_types_top offset_gAreaTileSetTypes_MinishHouseInteriors_top, 0xFD0, 1, 1
gAreaTiles_HouseInteriors1:: @ 08102994
tiles_bottom offset_gAreaTileset_HouseInteriors1_bottom, 0x3188, 1
tiles_top offset_gAreaTileset_HouseInteriors1_top, 0x3FF0, 1
tile_types_bottom offset_gAreaTilesetTypes_HouseInteriors1_bottom, 0xC62, 1
tile_types_top offset_gAreaTilesetTypes_HouseInteriors1_top, 0xFFC, 1, 1
tiles_bottom offset_gAreaTileSet_HouseInteriors1_bottom, 0x3188, 1
tiles_top offset_gAreaTileSet_HouseInteriors1_top, 0x3FF0, 1
tile_types_bottom offset_gAreaTileSetTypes_HouseInteriors1_bottom, 0xC62, 1
tile_types_top offset_gAreaTileSetTypes_HouseInteriors1_top, 0xFFC, 1, 1
gAreaTiles_HouseInteriors2:: @ 081029C4
tiles_bottom offset_gAreaTileset_HouseInteriors2_bottom, 0x33A0, 1
tiles_top offset_gAreaTileset_HouseInteriors1_top, 0x3FF0, 1
tile_types_bottom offset_gAreaTilesetTypes_HouseInteriors2_bottom, 0xCE8, 1
tile_types_top offset_gAreaTilesetTypes_HouseInteriors1_top, 0xFFC, 1, 1
tiles_bottom offset_gAreaTileSet_HouseInteriors2_bottom, 0x33A0, 1
tiles_top offset_gAreaTileSet_HouseInteriors1_top, 0x3FF0, 1
tile_types_bottom offset_gAreaTileSetTypes_HouseInteriors2_bottom, 0xCE8, 1
tile_types_top offset_gAreaTileSetTypes_HouseInteriors1_top, 0xFFC, 1, 1
gAreaTiles_HouseInteriors4:: @ 081029F4
tiles_bottom offset_gAreaTileset_HouseInteriors4_bottom, 0x33A0, 1
tiles_top offset_gAreaTileset_HouseInteriors1_top, 0x3FF0, 1
tile_types_bottom offset_gAreaTilesetTypes_HouseInteriors4_bottom, 0xCE8, 1
tile_types_top offset_gAreaTilesetTypes_HouseInteriors1_top, 0xFFC, 1, 1
tiles_bottom offset_gAreaTileSet_HouseInteriors4_bottom, 0x33A0, 1
tiles_top offset_gAreaTileSet_HouseInteriors1_top, 0x3FF0, 1
tile_types_bottom offset_gAreaTileSetTypes_HouseInteriors4_bottom, 0xCE8, 1
tile_types_top offset_gAreaTileSetTypes_HouseInteriors1_top, 0xFFC, 1, 1
gAreaTiles_HouseInteriors3:: @ 08102A24
tiles_bottom offset_gAreaTileset_HouseInteriors3_bottom, 0x2F20, 1
tiles_top offset_gAreaTileset_HouseInteriors1_top, 0x3FF0, 1
tile_types_bottom offset_gAreaTilesetTypes_HouseInteriors3_bottom, 0xBC8, 1
tile_types_top offset_gAreaTilesetTypes_HouseInteriors1_top, 0xFFC, 1, 1
tiles_bottom offset_gAreaTileSet_HouseInteriors3_bottom, 0x2F20, 1
tiles_top offset_gAreaTileSet_HouseInteriors1_top, 0x3FF0, 1
tile_types_bottom offset_gAreaTileSetTypes_HouseInteriors3_bottom, 0xBC8, 1
tile_types_top offset_gAreaTileSetTypes_HouseInteriors1_top, 0xFFC, 1, 1
gAreaTiles_TreeInteriors:: @ 08102A54
tiles_bottom offset_gAreaTileset_TreeInteriors_bottom, 0x3000, 1
tiles_top offset_gAreaTileset_HouseInteriors1_top, 0x3FF0, 1
tile_types_bottom offset_gAreaTilesetTypes_TreeInteriors_bottom, 0xC00, 1
tile_types_top offset_gAreaTilesetTypes_HouseInteriors1_top, 0xFFC, 1, 1
tiles_bottom offset_gAreaTileSet_TreeInteriors_bottom, 0x3000, 1
tiles_top offset_gAreaTileSet_HouseInteriors1_top, 0x3FF0, 1
tile_types_bottom offset_gAreaTileSetTypes_TreeInteriors_bottom, 0xC00, 1
tile_types_top offset_gAreaTileSetTypes_HouseInteriors1_top, 0xFFC, 1, 1
gAreaTiles_Dojos:: @ 08102A84
tiles_bottom offset_gAreaTileset_Dojos_bottom, 0x33A0, 1
tiles_top offset_gAreaTileset_HouseInteriors1_top, 0x3FF0, 1
tile_types_bottom offset_gAreaTilesetTypes_Dojos_bottom, 0xCE8, 1
tile_types_top offset_gAreaTilesetTypes_HouseInteriors1_top, 0xFFC, 1, 1
tiles_bottom offset_gAreaTileSet_Dojos_bottom, 0x33A0, 1
tiles_top offset_gAreaTileSet_HouseInteriors1_top, 0x3FF0, 1
tile_types_bottom offset_gAreaTileSetTypes_Dojos_bottom, 0xCE8, 1
tile_types_top offset_gAreaTileSetTypes_HouseInteriors1_top, 0xFFC, 1, 1
gAreaTiles_MinishCracks:: @ 08102AB4
tiles_bottom offset_gAreaTileset_MinishCracks_bottom, 0x3180, 1
tiles_top offset_gAreaTileset_HouseInteriors1_top, 0x3FF0, 1
tile_types_bottom offset_gAreaTilesetTypes_MinishCracks_bottom, 0xC60, 1
tile_types_top offset_gAreaTilesetTypes_HouseInteriors1_top, 0xFFC, 1, 1
tiles_bottom offset_gAreaTileSet_MinishCracks_bottom, 0x3180, 1
tiles_top offset_gAreaTileSet_HouseInteriors1_top, 0x3FF0, 1
tile_types_bottom offset_gAreaTileSetTypes_MinishCracks_bottom, 0xC60, 1
tile_types_top offset_gAreaTileSetTypes_HouseInteriors1_top, 0xFFC, 1, 1
gAreaTiles_ArmosInteriors:: @ 08102AE4
tiles_bottom offset_gAreaTileset_ArmosInteriors_bottom, 0xC50, 1
tiles_top offset_gAreaTileset_ArmosInteriors_top, 0xC50, 1
tile_types_bottom offset_gAreaTilesetTypes_ArmosInteriors_bottom, 0x314, 1
tile_types_top offset_gAreaTilesetTypes_ArmosInteriors_top, 0x314, 1, 1
tiles_bottom offset_gAreaTileSet_ArmosInteriors_bottom, 0xC50, 1
tiles_top offset_gAreaTileSet_ArmosInteriors_top, 0xC50, 1
tile_types_bottom offset_gAreaTileSetTypes_ArmosInteriors_bottom, 0x314, 1
tile_types_top offset_gAreaTileSetTypes_ArmosInteriors_top, 0x314, 1, 1
gAreaTiles_MinishRafters:: @ 08102B14
tiles_bottom offset_gAreaTileset_MinishRafters_bottom, 0x1A30, 1
tiles_top offset_gAreaTileset_HouseInteriors1_top, 0x3FF0, 1
tile_types_bottom offset_gAreaTilesetTypes_MinishRafters_bottom, 0x68C, 1
tile_types_top offset_gAreaTilesetTypes_HouseInteriors1_top, 0xFFC, 1, 1
tiles_bottom offset_gAreaTileSet_MinishRafters_bottom, 0x1A30, 1
tiles_top offset_gAreaTileSet_HouseInteriors1_top, 0x3FF0, 1
tile_types_bottom offset_gAreaTileSetTypes_MinishRafters_bottom, 0x68C, 1
tile_types_top offset_gAreaTileSetTypes_HouseInteriors1_top, 0xFFC, 1, 1
gAreaTiles_GoronCave:: @ 08102B44
tiles_bottom offset_gAreaTileset_GoronCave_bottom, 0x3F80, 1
tiles_top offset_gAreaTileset_GoronCave_top, 0x3400, 1
tile_types_bottom offset_gAreaTilesetTypes_GoronCave_bottom, 0xFE0, 1
tile_types_top offset_gAreaTilesetTypes_GoronCave_top, 0xD00, 1, 1
tiles_bottom offset_gAreaTileSet_GoronCave_bottom, 0x3F80, 1
tiles_top offset_gAreaTileSet_GoronCave_top, 0x3400, 1
tile_types_bottom offset_gAreaTileSetTypes_GoronCave_bottom, 0xFE0, 1
tile_types_top offset_gAreaTileSetTypes_GoronCave_top, 0xD00, 1, 1
gAreaTiles_WindTribeTower:: @ 08102B74
tiles_bottom offset_gAreaTileset_WindTribeTower_bottom, 0x2EB0, 1
tiles_top offset_gAreaTileset_HouseInteriors1_top, 0x3FF0, 1
tile_types_bottom offset_gAreaTilesetTypes_WindTribeTower_bottom, 0xBAC, 1
tile_types_top offset_gAreaTilesetTypes_HouseInteriors1_top, 0xFFC, 1, 1
tiles_bottom offset_gAreaTileSet_WindTribeTower_bottom, 0x2EB0, 1
tiles_top offset_gAreaTileSet_HouseInteriors1_top, 0x3FF0, 1
tile_types_bottom offset_gAreaTileSetTypes_WindTribeTower_bottom, 0xBAC, 1
tile_types_top offset_gAreaTileSetTypes_HouseInteriors1_top, 0xFFC, 1, 1
gAreaTiles_WindTribeTowerRoof:: @ 08102BA4
tiles_bottom offset_gAreaTileset_WindTribeTowerRoof_bottom, 0xBC0, 1
tiles_top offset_gAreaTileset_WindTribeTowerRoof_top, 0xBC0, 1
tile_types_bottom offset_gAreaTilesetTypes_WindTribeTowerRoof_bottom, 0x2F0, 1
tile_types_top offset_gAreaTilesetTypes_WindTribeTowerRoof_top, 0x2F0, 1, 1
tiles_bottom offset_gAreaTileSet_WindTribeTowerRoof_bottom, 0xBC0, 1
tiles_top offset_gAreaTileSet_WindTribeTowerRoof_top, 0xBC0, 1
tile_types_bottom offset_gAreaTileSetTypes_WindTribeTowerRoof_bottom, 0x2F0, 1
tile_types_top offset_gAreaTileSetTypes_WindTribeTowerRoof_top, 0x2F0, 1, 1
gAreaTiles_MinishCaves:: @ 08102BD4
tiles_bottom offset_gAreaTileset_MinishCaves_bottom, 0x3F80, 1
tiles_top offset_gAreaTileset_MinishCaves_top, 0x3F80, 1
tile_types_bottom offset_gAreaTilesetTypes_MinishCaves_bottom, 0xFE0, 1
tile_types_top offset_gAreaTilesetTypes_MinishCaves_top, 0xFE0, 1, 1
tiles_bottom offset_gAreaTileSet_MinishCaves_bottom, 0x3F80, 1
tiles_top offset_gAreaTileSet_MinishCaves_top, 0x3F80, 1
tile_types_bottom offset_gAreaTileSetTypes_MinishCaves_bottom, 0xFE0, 1
tile_types_top offset_gAreaTileSetTypes_MinishCaves_top, 0xFE0, 1, 1
gAreaTiles_CastleGardenMinishHoles:: @ 08102C04
tiles_bottom offset_gAreaTileset_CastleGardenMinishHoles_bottom, 0x13A8, 1
tiles_top offset_gAreaTileset_CastleGardenMinishHoles_top, 0x1680, 1
tile_types_bottom offset_gAreaTilesetTypes_CastleGardenMinishHoles_bottom, 0x4EA, 1
tile_types_top offset_gAreaTilesetTypes_CastleGardenMinishHoles_top, 0x5A0, 1, 1
tiles_bottom offset_gAreaTileSet_CastleGardenMinishHoles_bottom, 0x13A8, 1
tiles_top offset_gAreaTileSet_CastleGardenMinishHoles_top, 0x1680, 1
tile_types_bottom offset_gAreaTileSetTypes_CastleGardenMinishHoles_bottom, 0x4EA, 1
tile_types_top offset_gAreaTileSetTypes_CastleGardenMinishHoles_top, 0x5A0, 1, 1
gAreaTiles_EzloCutscene:: @ 08102C34
tiles_bottom offset_gAreaTileset_EzloCutscene_bottom, 0x1A20, 1
tiles_top offset_gAreaTileset_HouseInteriors1_top, 0x3FF0, 1
tile_types_bottom offset_gAreaTilesetTypes_EzloCutscene_bottom, 0x688, 1
tile_types_top offset_gAreaTilesetTypes_HouseInteriors1_top, 0xFFC, 1, 1
tiles_bottom offset_gAreaTileSet_EzloCutscene_bottom, 0x1A20, 1
tiles_top offset_gAreaTileSet_HouseInteriors1_top, 0x3FF0, 1
tile_types_bottom offset_gAreaTileSetTypes_EzloCutscene_bottom, 0x688, 1
tile_types_top offset_gAreaTileSetTypes_HouseInteriors1_top, 0xFFC, 1, 1
gAreaTiles_HyruleTownUnderground:: @ 08102C64
tiles_bottom offset_gAreaTileset_40_bottom, 0x3E80, 1
tiles_top offset_gAreaTileset_40_top, 0x3610, 1
tile_types_bottom offset_gAreaTilesetTypes_40_bottom, 0xFA0, 1
tile_types_top offset_gAreaTilesetTypes_40_top, 0xD84, 1, 1
tiles_bottom offset_gAreaTileSet_40_bottom, 0x3E80, 1
tiles_top offset_gAreaTileSet_40_top, 0x3610, 1
tile_types_bottom offset_gAreaTileSetTypes_40_bottom, 0xFA0, 1
tile_types_top offset_gAreaTileSetTypes_40_top, 0xD84, 1, 1
gAreaTiles_DeepwoodShrine:: @ 08102C94
tiles_bottom offset_gAreaTileset_DeepwoodShrine_bottom, 0x3B28, 1
tiles_top offset_gAreaTileset_DeepwoodShrine_top, 0x3620, 1
tile_types_bottom offset_gAreaTilesetTypes_DeepwoodShrine_bottom, 0xECA, 1
tile_types_top offset_gAreaTilesetTypes_DeepwoodShrine_top, 0xD88, 1, 1
tiles_bottom offset_gAreaTileSet_DeepwoodShrine_bottom, 0x3B28, 1
tiles_top offset_gAreaTileSet_DeepwoodShrine_top, 0x3620, 1
tile_types_bottom offset_gAreaTileSetTypes_DeepwoodShrine_bottom, 0xECA, 1
tile_types_top offset_gAreaTileSetTypes_DeepwoodShrine_top, 0xD88, 1, 1
gAreaTiles_DeepwoodShrineBoss:: @ 08102CC4
tiles_bottom offset_gAreaTileset_DeepwoodShrineBoss_bottom, 0x3620, 1
tiles_top offset_gAreaTileset_DeepwoodShrineBoss_top, 0x11F8, 1
tile_types_bottom offset_gAreaTilesetTypes_DeepwoodShrineBoss_bottom, 0xD88, 1
tile_types_top offset_gAreaTilesetTypes_DeepwoodShrineBoss_top, 0x47E, 1, 1
tiles_bottom offset_gAreaTileSet_DeepwoodShrineBoss_bottom, 0x3620, 1
tiles_top offset_gAreaTileSet_DeepwoodShrineBoss_top, 0x11F8, 1
tile_types_bottom offset_gAreaTileSetTypes_DeepwoodShrineBoss_bottom, 0xD88, 1
tile_types_top offset_gAreaTileSetTypes_DeepwoodShrineBoss_top, 0x47E, 1, 1
gAreaTiles_DeepwoodShrineEntry:: @ 08102CF4
tiles_bottom offset_gAreaTileset_DeepwoodShrineEntry_bottom, 0xD08, 1
tiles_top offset_gAreaTileset_DeepwoodShrineEntry_top, 0x9F8, 1
tile_types_bottom offset_gAreaTilesetTypes_DeepwoodShrineEntry_bottom, 0x342, 1
tile_types_top offset_gAreaTilesetTypes_DeepwoodShrineEntry_top, 0x27E, 1, 1
tiles_bottom offset_gAreaTileSet_DeepwoodShrineEntry_bottom, 0xD08, 1
tiles_top offset_gAreaTileSet_DeepwoodShrineEntry_top, 0x9F8, 1
tile_types_bottom offset_gAreaTileSetTypes_DeepwoodShrineEntry_bottom, 0x342, 1
tile_types_top offset_gAreaTileSetTypes_DeepwoodShrineEntry_top, 0x27E, 1, 1
gAreaTiles_CaveOfFlames:: @ 08102D24
tiles_bottom offset_gAreaTileset_CaveOfFlames_bottom, 0x3B08, 1
tiles_top offset_gAreaTileset_CaveOfFlames_top, 0x3F28, 1
tile_types_bottom offset_gAreaTilesetTypes_CaveOfFlames_bottom, 0xEC2, 1
tile_types_top offset_gAreaTilesetTypes_CaveOfFlames_top, 0xFCA, 1, 1
tiles_bottom offset_gAreaTileSet_CaveOfFlames_bottom, 0x3B08, 1
tiles_top offset_gAreaTileSet_CaveOfFlames_top, 0x3F28, 1
tile_types_bottom offset_gAreaTileSetTypes_CaveOfFlames_bottom, 0xEC2, 1
tile_types_top offset_gAreaTileSetTypes_CaveOfFlames_top, 0xFCA, 1, 1
gAreaTiles_CaveOfFlamesBoss:: @ 08102D54
tiles_bottom offset_gAreaTileset_CaveOfFlamesBoss_bottom, 0x3B08, 1
tiles_top offset_gAreaTileset_CaveOfFlamesBoss_top, 0x3610, 1
tile_types_bottom offset_gAreaTilesetTypes_CaveOfFlamesBoss_bottom, 0xEC2, 1
tile_types_top offset_gAreaTilesetTypes_CaveOfFlamesBoss_top, 0xD84, 1, 1
tiles_bottom offset_gAreaTileSet_CaveOfFlamesBoss_bottom, 0x3B08, 1
tiles_top offset_gAreaTileSet_CaveOfFlamesBoss_top, 0x3610, 1
tile_types_bottom offset_gAreaTileSetTypes_CaveOfFlamesBoss_bottom, 0xEC2, 1
tile_types_top offset_gAreaTileSetTypes_CaveOfFlamesBoss_top, 0xD84, 1, 1
gAreaTiles_FortressOfWinds:: @ 08102D84
tiles_bottom offset_gAreaTileset_CastorDarknut_bottom, 0x3868, 1
tiles_top offset_gAreaTileset_CastorDarknut_top, 0x3850, 1
tile_types_bottom offset_gAreaTilesetTypes_CastorDarknut_bottom, 0xE1A, 1
tile_types_top offset_gAreaTilesetTypes_CastorDarknut_top, 0xE14, 1, 1
tiles_bottom offset_gAreaTileSet_CastorDarknut_bottom, 0x3868, 1
tiles_top offset_gAreaTileSet_CastorDarknut_top, 0x3850, 1
tile_types_bottom offset_gAreaTileSetTypes_CastorDarknut_bottom, 0xE1A, 1
tile_types_top offset_gAreaTileSetTypes_CastorDarknut_top, 0xE14, 1, 1
gAreaTiles_FortressOfWindsTop:: @ 08102DB4
tiles_bottom offset_gAreaTileset_FortressOfWindsTop_bottom, 0x1440, 1
tiles_top offset_gAreaTileset_FortressOfWindsTop_top, 0x1368, 1
tile_types_bottom offset_gAreaTilesetTypes_FortressOfWindsTop_bottom, 0x510, 1
tile_types_top offset_gAreaTilesetTypes_FortressOfWindsTop_top, 0x4DA, 1, 1
tiles_bottom offset_gAreaTileSet_FortressOfWindsTop_bottom, 0x1440, 1
tiles_top offset_gAreaTileSet_FortressOfWindsTop_top, 0x1368, 1
tile_types_bottom offset_gAreaTileSetTypes_FortressOfWindsTop_bottom, 0x510, 1
tile_types_top offset_gAreaTileSetTypes_FortressOfWindsTop_top, 0x4DA, 1, 1
gAreaTiles_InnerMazaal:: @ 08102DE4
tiles_bottom offset_gAreaTileset_InnerMazaal_bottom, 0x3C00, 1
tiles_top offset_gAreaTileset_InnerMazaal_top, 0x3E70, 1
tile_types_bottom offset_gAreaTilesetTypes_InnerMazaal_bottom, 0xF00, 1
tile_types_top offset_gAreaTilesetTypes_InnerMazaal_top, 0xF9C, 1, 1
tiles_bottom offset_gAreaTileSet_InnerMazaal_bottom, 0x3C00, 1
tiles_top offset_gAreaTileSet_InnerMazaal_top, 0x3E70, 1
tile_types_bottom offset_gAreaTileSetTypes_InnerMazaal_bottom, 0xF00, 1
tile_types_top offset_gAreaTileSetTypes_InnerMazaal_top, 0xF9C, 1, 1
gAreaTiles_TempleOfDroplets:: @ 08102E14
tiles_bottom offset_gAreaTileset_TempleOfDroplets_bottom, 0x3D68, 1
tiles_top offset_gAreaTileset_TempleOfDroplets_top, 0x4000, 1
tile_types_bottom offset_gAreaTilesetTypes_TempleOfDroplets_bottom, 0xF5A, 1
tile_types_top offset_gAreaTilesetTypes_TempleOfDroplets_top, 0x1000, 1, 1
tiles_bottom offset_gAreaTileSet_TempleOfDroplets_bottom, 0x3D68, 1
tiles_top offset_gAreaTileSet_TempleOfDroplets_top, 0x4000, 1
tile_types_bottom offset_gAreaTileSetTypes_TempleOfDroplets_bottom, 0xF5A, 1
tile_types_top offset_gAreaTileSetTypes_TempleOfDroplets_top, 0x1000, 1, 1
gAreaTiles_61:: @ 08102E44
tiles_bottom offset_gAreaTileset_Null61_bottom, 0x600, 1
tiles_top offset_gAreaTileset_Null61_top, 0x398, 1
tile_types_bottom offset_gAreaTilesetTypes_Null61_bottom, 0x180, 1
tile_types_top offset_gAreaTilesetTypes_Null61_top, 0xE6, 1, 1
tiles_bottom offset_gAreaTileSet_Null61_bottom, 0x600, 1
tiles_top offset_gAreaTileSet_Null61_top, 0x398, 1
tile_types_bottom offset_gAreaTileSetTypes_Null61_bottom, 0x180, 1
tile_types_top offset_gAreaTileSetTypes_Null61_top, 0xE6, 1, 1
gAreaTiles_RoyalCrypt:: @ 08102E74
tiles_bottom offset_gAreaTileset_RoyalCrypt_bottom, 0x3610, 1
tiles_top offset_gAreaTileset_RoyalCrypt_top, 0x3610, 1
tile_types_bottom offset_gAreaTilesetTypes_RoyalCrypt_bottom, 0xD84, 1
tile_types_top offset_gAreaTilesetTypes_RoyalCrypt_top, 0xD84, 1, 1
tiles_bottom offset_gAreaTileSet_RoyalCrypt_bottom, 0x3610, 1
tiles_top offset_gAreaTileSet_RoyalCrypt_top, 0x3610, 1
tile_types_bottom offset_gAreaTileSetTypes_RoyalCrypt_bottom, 0xD84, 1
tile_types_top offset_gAreaTileSetTypes_RoyalCrypt_top, 0xD84, 1, 1
gAreaTiles_PalaceOfWinds:: @ 08102EA4
tiles_bottom offset_gAreaTileset_PalaceOfWinds_bottom, 0x3620, 1
tiles_top offset_gAreaTileset_PalaceOfWinds_top, 0x3620, 1
tile_types_bottom offset_gAreaTilesetTypes_PalaceOfWinds_bottom, 0xD88, 1
tile_types_top offset_gAreaTilesetTypes_PalaceOfWinds_top, 0xD88, 1, 1
tiles_bottom offset_gAreaTileSet_PalaceOfWinds_bottom, 0x3620, 1
tiles_top offset_gAreaTileSet_PalaceOfWinds_top, 0x3620, 1
tile_types_bottom offset_gAreaTileSetTypes_PalaceOfWinds_bottom, 0xD88, 1
tile_types_top offset_gAreaTileSetTypes_PalaceOfWinds_top, 0xD88, 1, 1
gAreaTiles_PalaceOfWindsBoss:: @ 08102ED4
tiles_top offset_gAreaTileset_PalaceOfWindsBoss_top, 0x108, 1
tile_types_top offset_gAreaTilesetTypes_PalaceOfWindsBoss_top, 0x42, 1, 1
tiles_top offset_gAreaTileSet_PalaceOfWindsBoss_top, 0x108, 1
tile_types_top offset_gAreaTileSetTypes_PalaceOfWindsBoss_top, 0x42, 1, 1
gAreaTiles_Sanctuary:: @ 08102EEC
tiles_bottom offset_gAreaTileset_Sanctuary_bottom, 0x3620, 1
tiles_top offset_gAreaTileset_Sanctuary_top, 0x3620, 1
tile_types_bottom offset_gAreaTilesetTypes_Sanctuary_bottom, 0xD88, 1
tile_types_top offset_gAreaTilesetTypes_Sanctuary_top, 0xD88, 1, 1
tiles_bottom offset_gAreaTileSet_Sanctuary_bottom, 0x3620, 1
tiles_top offset_gAreaTileSet_Sanctuary_top, 0x3620, 1
tile_types_bottom offset_gAreaTileSetTypes_Sanctuary_bottom, 0xD88, 1
tile_types_top offset_gAreaTileSetTypes_Sanctuary_top, 0xD88, 1, 1
gAreaTiles_HyruleCastle:: @ 08102F1C
tiles_bottom offset_gAreaTileset_HyruleCastle_bottom, 0x37C0, 1
tiles_top offset_gAreaTileset_HyruleCastle_top, 0x3610, 1
tile_types_bottom offset_gAreaTilesetTypes_HyruleCastle_bottom, 0xDF0, 1
tile_types_top offset_gAreaTilesetTypes_HyruleCastle_top, 0xD84, 1, 1
tiles_bottom offset_gAreaTileSet_HyruleCastle_bottom, 0x37C0, 1
tiles_top offset_gAreaTileSet_HyruleCastle_top, 0x3610, 1
tile_types_bottom offset_gAreaTileSetTypes_HyruleCastle_bottom, 0xDF0, 1
tile_types_top offset_gAreaTileSetTypes_HyruleCastle_top, 0xD84, 1, 1
gAreaTiles_SanctuaryEntrance:: @ 08102F4C
tiles_bottom offset_gAreaTileset_SanctuaryEntrance_bottom, 0x1478, 1
tiles_top offset_gAreaTileset_SanctuaryEntrance_top, 0xFF0, 1
tile_types_bottom offset_gAreaTilesetTypes_SanctuaryEntrance_bottom, 0x51E, 1
tile_types_top offset_gAreaTilesetTypes_SanctuaryEntrance_top, 0x3FC, 1, 1
tiles_bottom offset_gAreaTileSet_SanctuaryEntrance_bottom, 0x1478, 1
tiles_top offset_gAreaTileSet_SanctuaryEntrance_top, 0xFF0, 1
tile_types_bottom offset_gAreaTileSetTypes_SanctuaryEntrance_bottom, 0x51E, 1
tile_types_top offset_gAreaTileSetTypes_SanctuaryEntrance_top, 0x3FC, 1, 1
gAreaTiles_DarkHyruleCastle:: @ 08102F7C
tiles_bottom offset_gAreaTileset_DarkHyruleCastle_bottom, 0x3FD8, 1
tiles_top offset_gAreaTileset_DarkHyruleCastle_top, 0x37C0, 1
tile_types_bottom offset_gAreaTilesetTypes_DarkHyruleCastle_bottom, 0xFF6, 1
tile_types_top offset_gAreaTilesetTypes_DarkHyruleCastle_top, 0xDF0, 1, 1
tiles_bottom offset_gAreaTileSet_DarkHyruleCastle_bottom, 0x3FD8, 1
tiles_top offset_gAreaTileSet_DarkHyruleCastle_top, 0x37C0, 1
tile_types_bottom offset_gAreaTileSetTypes_DarkHyruleCastle_bottom, 0xFF6, 1
tile_types_top offset_gAreaTileSetTypes_DarkHyruleCastle_top, 0xDF0, 1, 1
gAreaTiles_DarkHyruleCastleOutside:: @ 08102FAC
tiles_bottom offset_gAreaTileset_DarkHyruleCastleOutside_bottom, 0x3340, 1
tiles_top offset_gAreaTileset_DarkHyruleCastleOutside_top, 0x1EF0, 1
tile_types_bottom offset_gAreaTilesetTypes_DarkHyruleCastleOutside_bottom, 0xCD0, 1
tile_types_top offset_gAreaTilesetTypes_DarkHyruleCastleOutside_top, 0x7BC, 1, 1
tiles_bottom offset_gAreaTileSet_DarkHyruleCastleOutside_bottom, 0x3340, 1
tiles_top offset_gAreaTileSet_DarkHyruleCastleOutside_top, 0x1EF0, 1
tile_types_bottom offset_gAreaTileSetTypes_DarkHyruleCastleOutside_bottom, 0xCD0, 1
tile_types_top offset_gAreaTileSetTypes_DarkHyruleCastleOutside_top, 0x7BC, 1, 1
gAreaTiles_DarkHyruleCastleBridge:: @ 08102FDC
tiles_bottom offset_gAreaTileset_DarkHyruleCastleBridge_bottom, 0x3610, 1
tiles_top offset_gAreaTileset_DarkHyruleCastleBridge_top, 0x3610, 1
tile_types_bottom offset_gAreaTilesetTypes_DarkHyruleCastleBridge_bottom, 0xD84, 1
tile_types_top offset_gAreaTilesetTypes_DarkHyruleCastleBridge_top, 0xD84, 1, 1
tiles_bottom offset_gAreaTileSet_DarkHyruleCastleBridge_bottom, 0x3610, 1
tiles_top offset_gAreaTileSet_DarkHyruleCastleBridge_top, 0x3610, 1
tile_types_bottom offset_gAreaTileSetTypes_DarkHyruleCastleBridge_bottom, 0xD84, 1
tile_types_top offset_gAreaTileSetTypes_DarkHyruleCastleBridge_top, 0xD84, 1, 1
gAreaTiles_VaatisArms:: @ 0810300C
tiles_bottom offset_gAreaTileset_VaatisArms_bottom, 0x17C8, 1
tiles_top offset_gAreaTileset_VaatisArms_top, 0xBC0, 1
tile_types_bottom offset_gAreaTilesetTypes_VaatisArms_bottom, 0x5F2, 1
tile_types_top offset_gAreaTilesetTypes_VaatisArms_top, 0x2F0, 1, 1
tiles_bottom offset_gAreaTileSet_VaatisArms_bottom, 0x17C8, 1
tiles_top offset_gAreaTileSet_VaatisArms_top, 0xBC0, 1
tile_types_bottom offset_gAreaTileSetTypes_VaatisArms_bottom, 0x5F2, 1
tile_types_top offset_gAreaTileSetTypes_VaatisArms_top, 0x2F0, 1, 1
gAreaTiles_Vaati3:: @ 0810303C
tiles_bottom offset_gAreaTileset_Vaati3_bottom, 0xE80, 1
tiles_top offset_gAreaTileset_Vaati3_top, 0x9B8, 1
tile_types_bottom offset_gAreaTilesetTypes_Vaati3_bottom, 0x3A0, 1
tile_types_top offset_gAreaTilesetTypes_Vaati3_top, 0x26E, 1, 1
tiles_bottom offset_gAreaTileSet_Vaati3_bottom, 0xE80, 1
tiles_top offset_gAreaTileSet_Vaati3_top, 0x9B8, 1
tile_types_bottom offset_gAreaTileSetTypes_Vaati3_bottom, 0x3A0, 1
tile_types_top offset_gAreaTileSetTypes_Vaati3_top, 0x26E, 1, 1
gAreaTiles_Vaati2:: @ 0810306C
tiles_bottom offset_gAreaTileset_Vaati2_bottom, 0x850, 1
tiles_top offset_gAreaTileset_Vaati2_top, 0x298, 1
tile_types_bottom offset_gAreaTilesetTypes_Vaati2_bottom, 0x214, 1
tile_types_top offset_gAreaTilesetTypes_Vaati2_top, 0xA6, 1, 1
tiles_bottom offset_gAreaTileSet_Vaati2_bottom, 0x850, 1
tiles_top offset_gAreaTileSet_Vaati2_top, 0x298, 1
tile_types_bottom offset_gAreaTileSetTypes_Vaati2_bottom, 0x214, 1
tile_types_top offset_gAreaTileSetTypes_Vaati2_top, 0xA6, 1, 1
gAreaTiles:: @ 0810309C

File diff suppressed because it is too large Load Diff

View File

@ -8,7 +8,7 @@ SCRIPT_START script_IntroCameraTarget
SetFadeTime 0x0002
@ Fade in
SetFade4
WaitForFadeFinish @ TODO wait for fade to be finished
WaitForFadeFinish
Wait 0x0078
SetSyncFlag 0x00000004
Call sub_08053648

View File

@ -22,7 +22,7 @@ typedef struct {
u16 pixel_height;
u16 map_x;
u16 map_y;
MapDataDefinition* tileset;
MapDataDefinition* tileSet;
MapDataDefinition* map;
MapDataDefinition* tiles;
void* bg_anim;
@ -82,7 +82,7 @@ typedef struct {
u16 map_y;
u16 pixel_width;
u16 pixel_height;
u16 tileset_id;
u16 tileSet_id;
} FORCE_WORD_ALIGNED RoomHeader;
static_assert(sizeof(RoomHeader) == 0xa);
extern RoomHeader* gAreaRoomHeaders[];

View File

@ -49,11 +49,11 @@ typedef struct {
/*0x0b*/ SaveFile saves[3];
} struct_02019EE0;
extern struct_02019EE0 gMapDataBottomSpecial;
// TODO size: 0x8000 from ClearTilemaps?
// TODO size: 0x8000 from ClearTileMaps?
extern void sub_08056FEC(u32, struct_020227E8*);
extern u32 ShowTextBox(u32 textIndexOrPtr, const Font* font);
extern void ClearTilemaps(void);
extern void ClearTileMaps(void);
extern void ResetSaveFile(u32);
extern WStruct* sub_0805F2C8(void);
extern u32 sub_0805F7DC(u32, WStruct*);

View File

@ -96,7 +96,7 @@ extern void MinishPortalManager_Main();
extern void DiggingCaveEntranceManager_Main();
extern void BridgeManager_Main();
extern void SpecialWarpManager_Main();
extern void MinishVillageTilesetManager_Main();
extern void MinishVillageTileSetManager_Main();
extern void HorizontalMinishPathBackgroundManager_Main();
extern void MinishRaftersBackgroundManager_Main();
extern void EzloHintManager_Main();
@ -107,7 +107,7 @@ extern void EntitySpawnManager_Main();
extern void MiscManager_Main();
extern void WeatherChangeManager_Main();
extern void FlagAndOperatorManager_Main();
extern void HyruleTownTilesetManager_Main();
extern void HyruleTownTileSetManager_Main();
extern void HouseSignManager_Main();
extern void SteamOverlayManager_Main();
extern void TempleOfDropletsManager_Main();

View File

@ -8,6 +8,6 @@ typedef struct {
u8 field_0x20;
u8 field_0x21;
u8 field_0x22;
} HyruleTownTilesetManager;
} HyruleTownTileSetManager;
#endif // HYRULETOWNTILESETMANAGER_H

View File

@ -7,6 +7,6 @@ typedef struct {
Manager base;
u8 unk_20;
u8 unk_21[0x1F];
} MinishVillageTilesetManager;
} MinishVillageTileSetManager;
#endif // MINISHVILLAGETILESETMANAGER_H

View File

@ -4,20 +4,33 @@
#include "screen.h"
/**
* @page TileMap TileMap
* @page TileMap Tile Map
* @brief The map consists of tiles to create the world.
*
* 16x16 tiles
* 8x8 subTiles
* GBA graphics are made out of tiles with a size of 8px by 8px. We call those tiles *subTiles*.
* Four of those subTiles are combined together to form a bigger 16px by 16px tile (usually called metaTile). We call these *tiles*.
*
* tileIndex index into the tile set
* 0 to 0x800, special tiles at 0x4000 to 0x4096
* tilePos index into the current map
* tileType
* collisionData
*
* Each map can be up to 64 * 64 tiles big. The map consists of two layers of tiles gMapTop and gMapBottom.
* To access the map array the tilePos index can be used which goes from 0 to 64 * 64 = 4096.
* Each value in the MapLayer.mapData is a tileIndex which defined which tile of the tileSet should be used.
* The tileSet contains tiles from 0 to 2048. Special tileIndex from 0x4000 to 0x4096 can be used to denote special tiles.
*
* A tile is created from four subTiles. The subTiles for each tile in the tileSet are stored in MapLayer.subTiles. This is loaded for the current area from gAreaTileSets_*.
* The subTiles can also be flipped or the palette changed. This is stored in bits 0xa to 0xf, see https://www.coranac.com/tonc/text/regbg.htm#sec-map.
*
* Each tile in the tileSet also has a tileType defined. This is stored in MapLayer.tileTypes and loaded from gAreaTileSetTypes_*.
* The inverse dictionary from tileType to tileIndex is stored in MapLayer.tileIndices.
*
* The map also stores the collision for each tile in the tileMap layer in MapLayer.collisionData. By default this is filled from gMapTileTypeToCollisionData based on the tileType of the tiles.
* But it can also be loaded from gRoomCollisionMap_*.
* In MapLayer.actTiles some additional type for each tile is stored which is filled from gMapTileTypeToActTile based on the tileType of the tiles.
*/
// Maximum width or height of a map in tiles.
#define MAX_MAP_SIZE 64
// Maximum amount of tiles in a tileSet.
#define TILESET_SIZE 2048
/**
* @brief Layer of the TileMap.
* @ingroup TileMap
@ -27,62 +40,80 @@ typedef struct {
/**
* tileIndex for each tile on the current layer.
*/
/*0x0004*/ u16 mapData[0x40 * 0x40];
/*0x0004*/ u16 mapData[MAX_MAP_SIZE * MAX_MAP_SIZE];
/**
* Collision data for each tile on the current layer.
* @see CollisionData
*/
/*0x2004*/ u8 collisionData[0x40 * 0x40];
/*0x2004*/ u8 collisionData[MAX_MAP_SIZE * MAX_MAP_SIZE];
/**
* Copy of the map data.
* @see mapData
*/
/*0x3004*/ u16 mapDataOriginal[0x40 * 0x40];
/*0x3004*/ u16 mapDataOriginal[MAX_MAP_SIZE * MAX_MAP_SIZE];
/**
* Maps from the tileIndex to the tileType.
* @see TileType
*/
/*0x5004*/ u16 tileTypes[0x800];
/*0x5004*/ u16 tileTypes[TILESET_SIZE];
/**
* Maps from a tileType to a tileIndex. Inverse of @see tileTypes.
* @see TileType
*/
/*0x6004*/ u16 tileIndices[0x800];
/*0x6004*/ u16 tileIndices[TILESET_SIZE];
/**
* Maps from a tile index to the four sub tiles (with attributes) it consists of.
* @see https://www.coranac.com/tonc/text/regbg.htm#sec-map
*/
/*0x7004*/ u16 subTiles[0x800 * 4];
/*0x7004*/ u16 subTiles[TILESET_SIZE * 4];
/**
* Some sort of special behavior for tiles? Falling into holes or jumping off walls does not work when this is all zero.
* @see ActTile
*/
/*0xb004*/ u8 actTiles[0x40*0x40];
/*0xb004*/ u8 actTiles[MAX_MAP_SIZE * MAX_MAP_SIZE];
} MapLayer;
extern MapLayer gMapTop;
extern MapLayer gMapBottom;
extern MapLayer* GetLayerByIndex(u32 layer);
/*
Definition where some map data is found and where it should be copied to.
Defined using the map_data asm macro, e.g. in map_headers.s
*/
typedef struct {
u32 src;
void* dest;
u32 size;
} MapDataDefinition;
// There is another map data definition following.
#define MAP_MULTIPLE 0x80000000
// The src is compressed.
#define MAP_COMPRESSED 0x80000000
typedef enum {
LAYER_BOTTOM = 1,
LAYER_TOP = 2,
} LayerIndex;
/**
* Returns the MapLayer for a layer of the map.
*
* @param layer @see LayerIndex
*/
extern MapLayer* GetLayerByIndex(u32 layer);
// There is another map data definition following.
#define MAP_MULTIPLE 0x80000000
// The src is compressed.
#define MAP_COMPRESSED 0x80000000
/**
* Definition where some map data is found and where it should be copied to.
* Defined using the map_data asm macro, e.g. in map_headers.s
*/
typedef struct {
/**
* @brief Source offset from gMapData.
*
* MAP_MULTIPLE bit is set if there is another MapDataDefinition following.
*/
u32 src;
/**
* Target pointer where to load or decompress the map data to.
*/
void* dest;
/**
* @brief Size of the map data in bytes.
*
* MAP_COMPRESSED bit is set if the map data is compressed.
*/
u32 size;
} MapDataDefinition;
#endif // MAP_H

View File

@ -56,7 +56,7 @@ typedef struct {
/*0x28*/ union SplitWord bg3OffsetX;
/*0x2C*/ union SplitWord bg3OffsetY;
/*0x30*/ Entity* camera_target;
/*0x34*/ u32 tileset; // TODO Should be MapDataDefinition*, but then SetupTileSet does not match.
/*0x34*/ u32 tileSet; // TODO Should be MapDataDefinition*, but then LoadRoomTileSet does not match.
} RoomControls;
extern RoomControls gRoomControls;

View File

@ -3,10 +3,10 @@
#include "global.h"
// gMapDataTopSpecial and gMapDataBottomSpecial are tilemaps of 8x8 pixels. But they are also reused for other data in
// gMapDataTopSpecial and gMapDataBottomSpecial are tileMaps of 8x8 pixels. But they are also reused for other data in
// other parts of the game.
// Rendered tilemaps https://www.coranac.com/tonc/text/regbg.htm#sec-map
// Rendered tileMaps https://www.coranac.com/tonc/text/regbg.htm#sec-map
extern u16 gMapDataTopSpecial[0x4000];
extern u16 gMapDataBottomSpecial[0x4000];

View File

@ -430,7 +430,7 @@ SECTIONS {
src/manager/diggingCaveEntranceManager.o(.text);
src/manager/bridgeManager.o(.text);
src/manager/specialWarpManager.o(.text);
src/manager/minishVillageTilesetManager.o(.text);
src/manager/minishVillageTileSetManager.o(.text);
src/manager/horizontalMinishPathBackgroundManager.o(.text);
src/manager/minishRaftersBackgroundManager.o(.text);
src/manager/ezloHintManager.o(.text);
@ -441,7 +441,7 @@ SECTIONS {
src/manager/miscManager.o(.text);
src/manager/weatherChangeManager.o(.text);
src/manager/flagAndOperatorManager.o(.text);
src/manager/hyruleTownTilesetManager.o(.text);
src/manager/hyruleTownTileSetManager.o(.text);
src/manager/houseSignManager.o(.text);
src/manager/steamOverlayManager.o(.text);
src/manager/templeOfDropletsManager.o(.text);
@ -599,7 +599,7 @@ SECTIONS {
src/playerUtils.o(.text);
src/flags.o(.text);
src/save.o(.text);
src/screenTilemap.o(.text);
src/screenTileMap.o(.text);
src/script.o(.text);
src/scroll.o(.text);
/* objects */
@ -1130,7 +1130,7 @@ SECTIONS {
src/manager/minishPortalManager.o(.rodata);
src/manager/diggingCaveEntranceManager.o(.rodata);
src/manager/bridgeManager.o(.rodata);
src/manager/minishVillageTilesetManager.o(.rodata);
src/manager/minishVillageTileSetManager.o(.rodata);
. = ALIGN(4);
src/manager/minishRaftersBackgroundManager.o(.rodata);
src/manager/ezloHintManager.o(.rodata);
@ -1139,7 +1139,7 @@ SECTIONS {
src/manager/tileChangeObserveManager.o(.rodata);
src/manager/miscManager.o(.rodata);
src/manager/weatherChangeManager.o(.rodata);
src/manager/hyruleTownTilesetManager.o(.rodata);
src/manager/hyruleTownTileSetManager.o(.rodata);
src/manager/houseSignManager.o(.rodata);
src/manager/steamOverlayManager.o(.rodata);
src/manager/templeOfDropletsManager.o(.rodata);

View File

@ -20,7 +20,7 @@
extern void sub_0807C898(void);
extern void sub_0805BB74(s32);
extern void LoadRoomGfx(void);
extern void SetupTileSet(void);
extern void LoadRoomTileSet(void);
extern void sub_0807C4F8(void);
extern void gMapData;
@ -1014,7 +1014,7 @@ void RenderMapLayerToSubTileMap(u16* subTileMap, MapLayer* mapLayer) {
u16 tileX;
u32 tilePosAndLayer;
u32 layerIndex;
// Index into the tileset at MapLayer.tiles
// Index into the tileSet at MapLayer.tiles
u32 tileSetIndex;
if (mapLayer == &gMapBottom) {
@ -1187,8 +1187,8 @@ u32 sub_0801AE34(void) {
void sub_0801AE44(bool32 loadGfx) {
void (*func)(void);
gRoomControls.tileset = (u32)NULL;
SetupTileSet();
gRoomControls.tileSet = (u32)NULL;
LoadRoomTileSet();
if (loadGfx != 0) {
LoadRoomGfx();
}

View File

@ -3,9 +3,9 @@
/*
Tiles for the borders of the cave that are loaded during the transition.
When the player goes inside a cave during the start of the enter transition the border tilemap is loaded and at the
end the tilemap for the cave is loaded. When the player goes out of a cave during the start of the leave transition
the border tilemap is loaded and at the end the tilemap for the outside is loaded.
When the player goes inside a cave during the start of the enter transition the border tileMap is loaded and at the
end the tileMap for the cave is loaded. When the player goes out of a cave during the start of the leave transition
the border tileMap is loaded and at the end the tileMap for the outside is loaded.
*/
const MapDataDefinition gCaveBorder_LakeWoods_enter_start[] = {

View File

@ -1115,7 +1115,6 @@ void sub_08036998(OctorokBossEntity* this) {
s32 tmp3;
s32 a, b;
// TODO regalloc in this awful structure here
tmp2 = &this->timer;
tmp = super->subtimer + (tmp3 = (u8)*tmp2);
*tmp2 = tmp;

View File

@ -401,14 +401,14 @@ void sub_080256B4(PuffstoolEntity* this) {
bool32 sub_0802571C(PuffstoolEntity* this) {
RoomControls* ctrl = &gRoomControls;
u16 xDiff = (super->x.HALF.HI - ctrl->origin_x + 8) & -0x10;
u16 yDiff = (super->y.HALF.HI - ctrl->origin_y + 8) & -0x10;
u16 roomX = (super->x.HALF.HI - ctrl->origin_x + 8) & -0x10;
u16 roomY = (super->y.HALF.HI - ctrl->origin_y + 8) & -0x10;
u16 unk = this->unk_7a;
u16 i;
for (i = 0; i < 4; i++) {
u16 sVar3 = xDiff + gUnk_080CC020[unk + 0];
u16 sVar4 = yDiff + gUnk_080CC020[unk + 1];
u16 sVar3 = roomX + gUnk_080CC020[unk + 0];
u16 sVar4 = roomY + gUnk_080CC020[unk + 1];
if (sub_080257EC(this, sVar3, sVar4)) {
this->unk_7c = sVar3 + ctrl->origin_x;
@ -429,25 +429,25 @@ bool32 sub_0802571C(PuffstoolEntity* this) {
bool32 sub_080257EC(PuffstoolEntity* this, u32 x, u32 y) {
u16 tileType = GetTileTypeAtRoomCoords(x - 0x00, y - 0x00, super->collisionLayer);
if (tileType != 0x312 && gMapTileTypeToActTile[tileType] != ACT_TILE_22 &&
if (tileType != TILE_TYPE_786 && gMapTileTypeToActTile[tileType] != ACT_TILE_22 &&
gMapTileTypeToCollisionData[tileType] == 0) {
return TRUE;
}
tileType = GetTileTypeAtRoomCoords(x - 0x10, y - 0x00, super->collisionLayer);
if (tileType != 0x312 && gMapTileTypeToActTile[tileType] != ACT_TILE_22 &&
if (tileType != TILE_TYPE_786 && gMapTileTypeToActTile[tileType] != ACT_TILE_22 &&
gMapTileTypeToCollisionData[tileType] == 0) {
return TRUE;
}
tileType = GetTileTypeAtRoomCoords(x - 0x00, y - 0x10, super->collisionLayer);
if (tileType != 0x312 && gMapTileTypeToActTile[tileType] != ACT_TILE_22 &&
if (tileType != TILE_TYPE_786 && gMapTileTypeToActTile[tileType] != ACT_TILE_22 &&
gMapTileTypeToCollisionData[tileType] == 0) {
return TRUE;
}
tileType = GetTileTypeAtRoomCoords(x - 0x10, y - 0x10, super->collisionLayer);
if (tileType != 0x312 && gMapTileTypeToActTile[tileType] != ACT_TILE_22 &&
if (tileType != TILE_TYPE_786 && gMapTileTypeToActTile[tileType] != ACT_TILE_22 &&
gMapTileTypeToCollisionData[tileType] == 0) {
return TRUE;
}
@ -482,11 +482,10 @@ bool32 sub_080258C4(PuffstoolEntity* this) {
}
}
// regalloc
bool32 sub_0802594C(PuffstoolEntity* this, u32 param_2) {
s16 xDiff;
s16 yDiff;
s16 iVar9;
s16 x;
u32 layer;
const s8* unk = gUnk_080CC090[param_2];
layer = super->collisionLayer;
@ -495,24 +494,24 @@ bool32 sub_0802594C(PuffstoolEntity* this, u32 param_2) {
do {
u8 bVar7;
u8 bVar4;
s16 iVar11;
s16 y;
u8 bVar5;
u8 bVar6;
iVar9 = xDiff + unk[0];
iVar11 = yDiff + unk[1];
bVar4 = GetCollisionDataAtWorldCoords(iVar9 - 0x00, iVar11 - 0x00, layer);
bVar5 = GetCollisionDataAtWorldCoords(iVar9 - 0x10, iVar11 - 0x00, layer);
bVar6 = GetCollisionDataAtWorldCoords(iVar9 - 0x00, iVar11 - 0x10, layer);
bVar7 = GetCollisionDataAtWorldCoords(iVar9 - 0x10, iVar11 - 0x10, layer);
x = xDiff + unk[0];
y = yDiff + unk[1];
bVar4 = GetCollisionDataAtWorldCoords(x - 0x00, y - 0x00, layer);
bVar5 = GetCollisionDataAtWorldCoords(x - 0x10, y - 0x00, layer);
bVar6 = GetCollisionDataAtWorldCoords(x - 0x00, y - 0x10, layer);
bVar7 = GetCollisionDataAtWorldCoords(x - 0x10, y - 0x10, layer);
if ((bVar4 | bVar5 | bVar6 | bVar7) == 0) {
this->unk_7c = gRoomControls.origin_x + iVar9;
this->unk_7e = gRoomControls.origin_y + iVar11;
this->unk_7c = gRoomControls.origin_x + x;
this->unk_7e = gRoomControls.origin_y + y;
return TRUE;
}
unk += 2;
} while (unk[0] != 0x7f);
return 0;
return FALSE;
}
void sub_08025A54(PuffstoolEntity* this) {

View File

@ -400,7 +400,7 @@ static void HandleFileScreenEnter(void) {
MemClear((void*)VRAM, 0x80); // clear palettes
MessageInitialize();
EraseAllEntities();
ClearTilemaps();
ClearTileMaps();
ResetPalettes();
ResetPaletteTable(0);
MemClear(&gHUD, sizeof(gHUD));

View File

@ -138,7 +138,7 @@ static void GameTask_Init(void) {
MemClear(&gUI, sizeof(gUI));
EraseAllEntities();
SetBGDefaults();
ClearTilemaps();
ClearTileMaps();
ResetPalettes();
ResetPaletteTable(1);
sub_0806FD8C();

View File

@ -33,7 +33,7 @@ void InitRoomResInfo(RoomResInfo* info, RoomHeader* hdr, u32 area, u32 room);
void sub_080532E4(void);
void ResetTimerFlags(void);
extern void** gAreaTilesets[];
extern void** gAreaTileSets[];
extern void** gAreaRoomMaps[];
extern void* gAreaTiles[];
extern void** gAreaTable[];
@ -544,7 +544,7 @@ void InitAllRoomResInfo(void) {
RoomResInfo* info = gArea.roomResInfos;
u32 i;
for (i = 0; i < MAX_ROOMS && *(u16*)r_hdr != 0xFFFF; i++, r_hdr++) {
if (r_hdr->tileset_id != 0xFFFF)
if (r_hdr->tileSet_id != 0xFFFF)
InitRoomResInfo(info, r_hdr, gRoomControls.area, i);
info++;
}
@ -556,7 +556,7 @@ void InitRoomResInfo(RoomResInfo* info, RoomHeader* r_hdr, u32 area, u32 room) {
info->map_y = r_hdr->map_y;
info->pixel_width = r_hdr->pixel_width;
info->pixel_height = r_hdr->pixel_height;
info->tileset = *(gAreaTilesets[area] + r_hdr->tileset_id);
info->tileSet = *(gAreaTileSets[area] + r_hdr->tileSet_id);
info->map = *(gAreaRoomMaps[area] + room);
info->tiles = gAreaTiles[area];
info->bg_anim = (void*)gUnk_080B755C[area];
@ -648,7 +648,7 @@ void LoadAuxiliaryRoom(u32 area, u32 room) {
void sub_08052FF4(u32 area, u32 room) {
RoomHeader* r_hdr = NULL;
ClearTilemaps();
ClearTileMaps();
SetBGDefaults();
gRoomControls.area = area;
gRoomControls.room = room;
@ -660,7 +660,7 @@ void sub_08052FF4(u32 area, u32 room) {
gArea.currentRoomInfo.map_y = r_hdr->map_y;
gArea.currentRoomInfo.pixel_width = r_hdr->pixel_width;
gArea.currentRoomInfo.pixel_height = r_hdr->pixel_height;
gArea.currentRoomInfo.tileset = *(gAreaTilesets[area] + r_hdr->tileset_id);
gArea.currentRoomInfo.tileSet = *(gAreaTileSets[area] + r_hdr->tileSet_id);
gArea.currentRoomInfo.map = *(gAreaRoomMaps[area] + room);
gArea.currentRoomInfo.tiles = gAreaTiles[area];
gArea.currentRoomInfo.bg_anim = (void*)gUnk_080B755C[area];

View File

@ -9,7 +9,7 @@ void (*const gMiscManagerunctions[])() = {
DiggingCaveEntranceManager_Main,
BridgeManager_Main,
SpecialWarpManager_Main,
MinishVillageTilesetManager_Main,
MinishVillageTileSetManager_Main,
HorizontalMinishPathBackgroundManager_Main,
MinishRaftersBackgroundManager_Main,
EzloHintManager_Main,
@ -20,7 +20,7 @@ void (*const gMiscManagerunctions[])() = {
MiscManager_Main,
WeatherChangeManager_Main,
FlagAndOperatorManager_Main,
HyruleTownTilesetManager_Main,
HyruleTownTileSetManager_Main,
HouseSignManager_Main,
SteamOverlayManager_Main,
TempleOfDropletsManager_Main,

View File

@ -1,10 +1,10 @@
/**
* @file hyruleTownTilesetManager.c
* @file hyruleTownTileSetManager.c
* @ingroup Managers
*
* @brief Swap tileset data in hyrule town depending on the position.
* @brief Swap tileSet data in hyrule town depending on the position.
*/
#include "manager/hyruleTownTilesetManager.h"
#include "manager/hyruleTownTileSetManager.h"
#include "area.h"
#include "asm.h"
#include "flags.h"
@ -13,8 +13,8 @@
#include "room.h"
#include "tiles.h"
void sub_08059A58(HyruleTownTilesetManager*);
void sub_08059A2C(HyruleTownTilesetManager*);
void sub_08059A58(HyruleTownTileSetManager*);
void sub_08059A2C(HyruleTownTileSetManager*);
static const u16 gUnk_08108398[] = { 0x0, 0x0, 0x0, 0x3f0, 0x200, 0x1, 0x0, 0x280, 0x3f0, 0x140, 0xff };
static const u16 gUnk_081083AE[] = { 0x2, 0x0, 0x0, 0x180, 0x3c0, 0x3, 0x280, 0x0, 0x170, 0x3c0, 0xff };
@ -25,7 +25,7 @@ static const u16 gUnk_081083F2[] = { 0x5, 0x0, 0x1b0, 0x190, 0x140, 0x4, 0x0, 0x
void sub_08059CC0(u32, u32);
void sub_08059B18(void);
bool32 sub_08059C8C(HyruleTownTilesetManager*, u32, u8*, const u16*);
bool32 sub_08059C8C(HyruleTownTileSetManager*, u32, u8*, const u16*);
extern u32 gUnk_086E8460;
@ -60,7 +60,7 @@ static const Unknown gUnk_08108468[] = {
};
extern const u8 gGlobalGfxAndPalettes[];
void HyruleTownTilesetManager_Main(HyruleTownTilesetManager* this) {
void HyruleTownTileSetManager_Main(HyruleTownTileSetManager* this) {
if (super->action == 0) {
super->action = 1;
this->field_0x22 = 0xff;
@ -72,7 +72,7 @@ void HyruleTownTilesetManager_Main(HyruleTownTilesetManager* this) {
sub_08059A58(this);
}
void sub_08059A2C(HyruleTownTilesetManager* this) {
void sub_08059A2C(HyruleTownTileSetManager* this) {
gRoomVars.graphicsGroups[2] = 0xff;
gRoomVars.graphicsGroups[1] = 0xff;
gRoomVars.graphicsGroups[0] = 0xff;
@ -82,7 +82,7 @@ void sub_08059A2C(HyruleTownTilesetManager* this) {
sub_08059A58(this);
}
void sub_08059A58(HyruleTownTilesetManager* this) {
void sub_08059A58(HyruleTownTileSetManager* this) {
if (gRoomControls.area != AREA_FESTIVAL_TOWN) {
if (sub_08059C8C(this, 0, &this->field_0x20, gUnk_08108398) != 0) {
sub_08059CC0(0, (u32)this->field_0x20);
@ -144,7 +144,7 @@ void sub_08059B18(void) {
}
}
bool32 sub_08059C8C(HyruleTownTilesetManager* this, u32 param_2, u8* param_3, const u16* param_4) {
bool32 sub_08059C8C(HyruleTownTileSetManager* this, u32 param_2, u8* param_3, const u16* param_4) {
bool32 bVar2;
*param_3 = CheckRegionsOnScreen(param_4);

View File

@ -1,17 +1,17 @@
/**
* @file minishVillageTilesetManager.c
* @file minishVillageTileSetManager.c
* @ingroup Managers
*
* @brief Swap tileset data in minish village depending on the position
* @brief Swap tileSet data in minish village depending on the position
*/
#include "manager/minishVillageTilesetManager.h"
#include "manager/minishVillageTileSetManager.h"
#include "asm.h"
#include "common.h"
#include "functions.h"
#include "main.h"
void sub_08057E30(void*);
bool32 sub_08057E40(MinishVillageTilesetManager*);
bool32 sub_08057E40(MinishVillageTileSetManager*);
void sub_08057E7C(u32);
extern const u8 gGlobalGfxAndPalettes[];
@ -54,7 +54,7 @@ const u32 gUnk_081080A4[0x50] = {
const u8 gUnk_081081E4[] = { 0x16, 0x17, 0x17, 0x18, 0x18 };
#ifdef EU
void MinishVillageTilesetManager_Main(MinishVillageTilesetManager* this) {
void MinishVillageTileSetManager_Main(MinishVillageTileSetManager* this) {
u32 tmp;
const u32* tmp2;
s32 tmp3;
@ -103,7 +103,7 @@ void MinishVillageTilesetManager_Main(MinishVillageTilesetManager* this) {
}
}
#else
void MinishVillageTilesetManager_Main(MinishVillageTilesetManager* this) {
void MinishVillageTileSetManager_Main(MinishVillageTileSetManager* this) {
u32 tmp;
const u32* tmp2;
if (super->action == 0) {
@ -156,7 +156,7 @@ void sub_08057E30(void* this) {
sub_08057E7C(gRoomVars.graphicsGroups[0]);
}
bool32 sub_08057E40(MinishVillageTilesetManager* this) {
bool32 sub_08057E40(MinishVillageTileSetManager* this) {
u32 tmp = CheckRegionsOnScreen(gUnk_08108050);
if (tmp != 0xFF) {
gRoomVars.graphicsGroups[0] = tmp;

View File

@ -18,7 +18,7 @@
#include "save.h"
#include "screen.h"
#include "screenTransitions.h"
#include "tilemap.h"
#include "tileMap.h"
#include "tiles.h"
static void sub_08077E54(ItemBehavior* beh);
@ -69,7 +69,7 @@ extern u8 gUpdateVisibleTiles;
bool32 sub_0807BF88(u32, u32, RoomResInfo*);
void SetupTileSet(void);
void LoadRoomTileSet(void);
void ForceSetPlayerState(u32 framestate);
InteractableObject* sub_080784E4(void);
@ -3309,7 +3309,7 @@ void SetTileType(u32 tileType, u32 tilePos, u32 layer) {
dest = gMapDataTopSpecial + offset;
}
subTiles = mapLayer->subTiles + tileIndex * 4;
// Copy over the tilemap entries (tile_attrs) to the special map data but in a different order.
// Copy over the tileMap entries (tile_attrs) to the special map data but in a different order.
dest[0] = subTiles[0];
dest[1] = subTiles[1];
dest[0x80] = subTiles[2];
@ -3813,7 +3813,7 @@ void sub_0807BFA8(void) {
gRoomControls.height = (gArea.pCurrentRoomInfo)->pixel_height;
}
void SetupTileSet(void) {
void LoadRoomTileSet(void) {
s32 index;
u16* tileTypes;
u16* tileIndices;
@ -3826,9 +3826,9 @@ void SetupTileSet(void) {
MemFill16(0xffff, gMapTop.tileTypes, 0x1000);
gMapTop.tileTypes[0] = 0;
if ((void*)gRoomControls.tileset != (gArea.pCurrentRoomInfo)->tileset) {
gRoomControls.tileset = (u32)(gArea.pCurrentRoomInfo)->tileset;
LoadMapData((gArea.pCurrentRoomInfo)->tileset);
if ((void*)gRoomControls.tileSet != (gArea.pCurrentRoomInfo)->tileSet) {
gRoomControls.tileSet = (u32)(gArea.pCurrentRoomInfo)->tileSet;
LoadMapData((gArea.pCurrentRoomInfo)->tileSet);
}
LoadMapData((gArea.pCurrentRoomInfo)->tiles);
@ -3912,7 +3912,7 @@ void LoadRoomGfx(void) {
FillActTileForLayer(&gMapBottom);
FillActTileForLayer(&gMapTop);
if (!clearBottomMap) {
// Render the complete bottom and top tilemaps into the tilemaps.
// Render the complete bottom and top tileMaps into the tileMaps.
RenderMapLayerToSubTileMap(gMapDataBottomSpecial, &gMapBottom);
RenderMapLayerToSubTileMap(gMapDataTopSpecial, &gMapTop);
} else {
@ -4152,7 +4152,7 @@ void InitializeCamera() {
u32 tmp1;
u32 tmp2;
SetupTileSet();
LoadRoomTileSet();
LoadRoomGfx();
roomControls = &gRoomControls;
target = gRoomControls.camera_target;
@ -4212,7 +4212,7 @@ void sub_0807C810(void) {
DiggingCaveEntranceTransition* ptr;
Entity* player;
RoomControls* ctrls;
SetupTileSet();
LoadRoomTileSet();
ptr = &gDiggingCaveEntranceTransition;
player = &gPlayerEntity.base;
ctrls = &gRoomControls;

View File

@ -300,7 +300,6 @@ void sub_080AA320(MandiblesProjectileEntity* this) {
parent->unk_80 = 0x50;
parent->base.speed = 0;
parent->base.direction = sub_08049F84(&parent->base, 0);
// TODO regalloc
uVar2 = Direction8Round(parent->base.direction + 4);
super->animationState = uVar2 >> 2;
parent->base.animationState = DirectionRound(uVar2) >> 2;

View File

@ -14,7 +14,7 @@
#include "object.h"
#include "screen.h"
#include "structures.h"
#include "tilemap.h"
#include "tileMap.h"
#include "tiles.h"
extern void UpdateScreenShake(void);
@ -582,7 +582,7 @@ void UpdateIsDiggingCave(void) {
gDiggingCaveEntranceTransition.isDiggingCave = 0;
}
void ClearTilemaps(void) {
void ClearTileMaps(void) {
MemClear(&gRoomControls, sizeof(gRoomControls));
MemClear(&gDiggingCaveEntranceTransition, sizeof(gDiggingCaveEntranceTransition));
gRoomControls.unk_22 = 0xffff;

View File

@ -31,7 +31,7 @@ void SubTileSetAsset::convertToHumanReadable(const std::vector<char>& baserom) {
cmd.push_back(toolsPath / "bin" / "gbagfx");
cmd.push_back(decompressedPath);
cmd.push_back(assetPath);
// This creates a better looking tilemap but in some cases not all tiles are used, so it adds additional data when converting back to binary.
// This creates a better looking tileMap but in some cases not all tiles are used, so it adds additional data when converting back to binary.
//cmd.push_back("-mwidth");
//cmd.push_back("32");
check_call(cmd);

View File

@ -264,7 +264,7 @@ std::unique_ptr<BaseAsset> getAssetHandlerByType(const std::filesystem::path& pa
}
std::unique_ptr<BaseAsset> assetHandler;
if (type == "subtileset") {
if (type == "subTileSet") {
assetHandler = std::make_unique<SubTileSetAsset>(path, start, size, asset);
} else if (type == "animation") {
assetHandler = std::make_unique<AnimationAsset>(path, start, size, asset);
@ -280,8 +280,8 @@ std::unique_ptr<BaseAsset> getAssetHandlerByType(const std::filesystem::path& pa
assetHandler = std::make_unique<GfxAsset>(path, start, size, asset);
} else if (type == "palette") {
assetHandler = std::make_unique<PaletteAsset>(path, start, size, asset);
} else if (type == "tilemap" ||
type == "tileset_types" || type == "tileset" ||
} else if (type == "tileMap" ||
type == "tileSet_types" || type == "tileSet" ||
type == "map_mapping1" || type == "map_mapping2" ||
type == "map_collision") {
assetHandler = std::make_unique<MapAsset>(path, start, size, asset);

View File

@ -37,7 +37,7 @@ unsigned char* LZDecompress(unsigned char* src, int srcSize, int* uncompressedSi
int blockPos = destPos - blockDistance;
// Some Ruby/Sapphire tilesets overflow.
// Some Ruby/Sapphire tileSets overflow.
if (destPos + blockSize > destSize) {
blockSize = destSize - destPos;
fprintf(stderr, "Destination buffer overflow.\n");

View File

@ -312,7 +312,7 @@ void HandleLZCompressCommand(char* inputPath, char* outputPath, int argc, char**
}
}
// The overflow option allows a quirk in some of Ruby/Sapphire's tilesets
// The overflow option allows a quirk in some of Ruby/Sapphire's tileSets
// to be reproduced. It works by appending a number of zeros to the data
// before compressing it and then amending the LZ header's size field to
// reflect the expected size. This will cause an overflow when decompressing