diff --git a/assets/map.json b/assets/map.json index d737fa0e..108a75d6 100644 --- a/assets/map.json +++ b/assets/map.json @@ -506,10 +506,10 @@ "type": "map_layer1" }, { - "path": "assets/gAreaRoomMap_HyruleField_7_0.bin.lz", + "path": "tilesets/gAreaTileset_HyruleField_7_0.4bpp.lz", "start": 3597384, "size": 10191, - "type": "map_gfx" + "type": "tileset" }, { "path": "tilesets/gAreaTileset_DigCaves1_0_1.4bpp.lz", @@ -518,16 +518,16 @@ "type": "tileset" }, { - "path": "assets/gAreaRoomMap_HyruleField_7_1.bin.lz", + "path": "tilesets/gAreaTileset_HyruleField_7_1.4bpp.lz", "start": 3618032, "size": 7733, - "type": "map_gfx" + "type": "tileset" }, { - "path": "assets/gAreaRoomMap_HyruleField_6_0.bin.lz", + "path": "tilesets/gAreaTileset_HyruleField_6_0.4bpp.lz", "start": 3625768, "size": 8748, - "type": "map_gfx" + "type": "tileset" }, { "path": "tilesets/gAreaTileset_HyruleField_2_1.4bpp.lz", @@ -536,16 +536,16 @@ "type": "tileset" }, { - "path": "assets/gAreaRoomMap_HyruleField_6_1.bin.lz", + "path": "tilesets/gAreaTileset_HyruleField_6_1.4bpp.lz", "start": 3644972, "size": 5768, - "type": "map_gfx" + "type": "tileset" }, { - "path": "assets/gAreaRoomMap_HyruleField_5_0.bin.lz", + "path": "tilesets/gAreaTileset_HyruleField_5_0.4bpp.lz", "start": 3650740, "size": 9895, - "type": "map_gfx" + "type": "tileset" }, { "path": "tilesets/gAreaTileset_HyruleField_1_1.4bpp.lz", @@ -554,10 +554,10 @@ "type": "tileset" }, { - "path": "assets/gAreaRoomMap_HyruleField_5_1.bin.lz", + "path": "tilesets/gAreaTileset_HyruleField_5_1.4bpp.lz", "start": 3671092, "size": 6760, - "type": "map_gfx" + "type": "tileset" }, { "path": "assets/gAreaMetatiles_HyruleField_0.bin.lz", @@ -584,7 +584,7 @@ "type": "metatiles_tile_types1" }, { - "path": "assets/gAreaTileset_HyruleField_2_3.bin.lz", + "path": "tilesets/gAreaTileset_HyruleField_2_3.bin.lz", "start": 3693132, "size": 354, "type": "tileset_mapping3" @@ -860,7 +860,7 @@ "type": "map_layer1" }, { - "path": "assets/gAreaTileset_CloudTops_0_3.bin.lz", + "path": "tilesets/gAreaTileset_CloudTops_0_3.bin.lz", "start": 3783800, "size": 530, "type": "tileset_mapping3" @@ -1022,7 +1022,7 @@ "type": "metatiles_tile_types2" }, { - "path": "assets/gAreaTileset_Beanstalks_0_3.bin.lz", + "path": "tilesets/gAreaTileset_Beanstalks_0_3.bin.lz", "start": 3867784, "size": 439, "type": "tileset_mapping3" @@ -5924,7 +5924,7 @@ "type": "metatiles_tile_types1" }, { - "path": "assets/gAreaTileset_CaveOfFlames_0_3.bin.lz", + "path": "tilesets/gAreaTileset_CaveOfFlames_0_3.bin.lz", "start": 5221452, "size": 749, "type": "tileset_mapping3" @@ -8064,7 +8064,7 @@ "type": "metatiles_tile_types1" }, { - "path": "assets/gAreaTileset_PalaceOfWinds_GyorgTornado_3.bin.lz", + "path": "tilesets/gAreaTileset_PalaceOfWinds_GyorgTornado_3.bin.lz", "start": 5528540, "size": 548, "type": "tileset_mapping3" @@ -8122,7 +8122,7 @@ "type": "unknown" }, { - "path": "assets/gAreaTileset_PalaceOfWindsBoss_0_2.bin.lz", + "path": "tilesets/gAreaTileset_PalaceOfWindsBoss_0_2.bin.lz", "start": 5541760, "size": 548, "type": "tileset_mapping3" @@ -10717,7 +10717,7 @@ "type": "map_layer1" }, { - "path": "assets/gAreaTileset_Vaati2_0_3.bin.lz", + "path": "tilesets/gAreaTileset_Vaati2_0_3.bin.lz", "start": 5843884, "size": 754, "type": "tileset_mapping3" diff --git a/data/map/map_data.s b/data/map/map_data.s index d313eadf..e11c597f 100644 --- a/data/map/map_data.s +++ b/data/map/map_data.s @@ -222,30 +222,30 @@ gAreaRoomMap_MtCrenel_4_0:: gAreaRoomMap_MtCrenel_4_1:: .incbin "assets/gAreaRoomMap_MtCrenel_4_1.bin.lz" .align 2 -gAreaRoomMap_HyruleField_7_0:: - .incbin "assets/gAreaRoomMap_HyruleField_7_0.bin.lz" +gAreaTileset_HyruleField_7_0:: + .incbin "tilesets/gAreaTileset_HyruleField_7_0.4bpp.lz" .align 2 gAreaTileset_DigCaves1_0_1:: .incbin "tilesets/gAreaTileset_DigCaves1_0_1.4bpp.lz" .align 2 -gAreaRoomMap_HyruleField_7_1:: - .incbin "assets/gAreaRoomMap_HyruleField_7_1.bin.lz" +gAreaTileset_HyruleField_7_1:: + .incbin "tilesets/gAreaTileset_HyruleField_7_1.4bpp.lz" .align 2 -gAreaRoomMap_HyruleField_6_0:: - .incbin "assets/gAreaRoomMap_HyruleField_6_0.bin.lz" +gAreaTileset_HyruleField_6_0:: + .incbin "tilesets/gAreaTileset_HyruleField_6_0.4bpp.lz" gAreaTileset_HyruleField_2_1:: .incbin "tilesets/gAreaTileset_HyruleField_2_1.4bpp.lz" .align 2 -gAreaRoomMap_HyruleField_6_1:: - .incbin "assets/gAreaRoomMap_HyruleField_6_1.bin.lz" -gAreaRoomMap_HyruleField_5_0:: - .incbin "assets/gAreaRoomMap_HyruleField_5_0.bin.lz" +gAreaTileset_HyruleField_6_1:: + .incbin "tilesets/gAreaTileset_HyruleField_6_1.4bpp.lz" +gAreaTileset_HyruleField_5_0:: + .incbin "tilesets/gAreaTileset_HyruleField_5_0.4bpp.lz" .align 2 gAreaTileset_HyruleField_1_1:: .incbin "tilesets/gAreaTileset_HyruleField_1_1.4bpp.lz" .align 2 -gAreaRoomMap_HyruleField_5_1:: - .incbin "assets/gAreaRoomMap_HyruleField_5_1.bin.lz" +gAreaTileset_HyruleField_5_1:: + .incbin "tilesets/gAreaTileset_HyruleField_5_1.4bpp.lz" gAreaMetatiles_HyruleField_0:: .incbin "assets/gAreaMetatiles_HyruleField_0.bin.lz" .align 2 @@ -257,7 +257,7 @@ gAreaMetatiles_HyruleField_2:: gAreaMetatiles_HyruleField_3:: .incbin "assets/gAreaMetatiles_HyruleField_3.bin.lz" gAreaTileset_HyruleField_2_3:: - .incbin "assets/gAreaTileset_HyruleField_2_3.bin.lz" + .incbin "tilesets/gAreaTileset_HyruleField_2_3.bin.lz" .align 2 gAreaRoomMap_HyruleField_0_0:: .incbin "assets/gAreaRoomMap_HyruleField_0_0.bin.lz" @@ -378,7 +378,7 @@ gAreaRoomMap_CloudTops_2_1:: .incbin "assets/gAreaRoomMap_CloudTops_2_1.bin.lz" .align 2 gAreaTileset_CloudTops_0_3:: - .incbin "assets/gAreaTileset_CloudTops_0_3.bin.lz" + .incbin "tilesets/gAreaTileset_CloudTops_0_3.bin.lz" .align 2 gAreaTileset_RoyalValley_0_0:: .incbin "tilesets/gAreaTileset_RoyalValley_0_0.4bpp.lz" @@ -450,7 +450,7 @@ gAreaMetatiles_Beanstalks_1:: .incbin "assets/gAreaMetatiles_Beanstalks_1.bin.lz" .align 2 gAreaTileset_Beanstalks_0_3:: - .incbin "assets/gAreaTileset_Beanstalks_0_3.bin.lz" + .incbin "tilesets/gAreaTileset_Beanstalks_0_3.bin.lz" .align 2 gAreaRoomMap_Beanstalks_5_1:: .incbin "assets/gAreaRoomMap_Beanstalks_5_1.bin.lz" @@ -2633,7 +2633,7 @@ gAreaMetatiles_CaveOfFlamesBoss_3:: .incbin "assets/gAreaMetatiles_CaveOfFlamesBoss_3.bin.lz" .align 2 gAreaTileset_CaveOfFlames_0_3:: - .incbin "assets/gAreaTileset_CaveOfFlames_0_3.bin.lz" + .incbin "tilesets/gAreaTileset_CaveOfFlames_0_3.bin.lz" .align 2 gAreaRoomMap_CaveOfFlames_0_0:: .incbin "assets/gAreaRoomMap_CaveOfFlames_0_0.bin.lz" @@ -3546,7 +3546,7 @@ gAreaMetatiles_PalaceOfWinds_GyorgBossDoor:: .incbin "assets/gAreaMetatiles_PalaceOfWinds_GyorgBossDoor.bin.lz" .align 2 gAreaTileset_PalaceOfWinds_GyorgTornado_3:: - .incbin "assets/gAreaTileset_PalaceOfWinds_GyorgTornado_3.bin.lz" + .incbin "tilesets/gAreaTileset_PalaceOfWinds_GyorgTornado_3.bin.lz" gAreaTileset_PalaceOfWindsBoss_0_0:: .incbin "tilesets/gAreaTileset_PalaceOfWindsBoss_0_0.4bpp.lz" .align 2 @@ -3562,7 +3562,7 @@ gAreaMetatiles_PalaceOfWindsBoss_1:: unknown_134:: .incbin "assets/unknown_134.bin" gAreaTileset_PalaceOfWindsBoss_0_2:: - .incbin "assets/gAreaTileset_PalaceOfWindsBoss_0_2.bin.lz" + .incbin "tilesets/gAreaTileset_PalaceOfWindsBoss_0_2.bin.lz" gAreaRoomMap_PalaceOfWinds_GyorgTornado_0:: .incbin "assets/gAreaRoomMap_PalaceOfWinds_GyorgTornado_0.bin.lz" .align 2 @@ -4696,7 +4696,7 @@ gAreaRoomMap_VaatisArms_2_1:: .incbin "assets/gAreaRoomMap_VaatisArms_2_1.bin.lz" .align 2 gAreaTileset_Vaati2_0_3:: - .incbin "assets/gAreaTileset_Vaati2_0_3.bin.lz" + .incbin "tilesets/gAreaTileset_Vaati2_0_3.bin.lz" .align 2 gAreaTileset_DarkHyruleCastleOutside_0_0:: .incbin "tilesets/gAreaTileset_DarkHyruleCastleOutside_0_0.4bpp.lz" diff --git a/data/map/map_headers.s b/data/map/map_headers.s index 7bc429f1..0df32e45 100755 --- a/data/map/map_headers.s +++ b/data/map/map_headers.s @@ -110,8 +110,8 @@ gAreaRoomMap_HyruleField_0:: @ 081034B8 map_top offset_gAreaRoomMap_HyruleField_0_1, 0x30C, 1, 1 gAreaRoomMap_HyruleField_1:: @ 081034D0 - map_data offset_gAreaRoomMap_HyruleField_7_0, 0x6000000, 0x4000, 1 - map_data offset_gAreaRoomMap_HyruleField_7_1, 0x6008000, 0x4000, 1 + tileset_tiles offset_gAreaTileset_HyruleField_7_0, 0x6000000, 0x4000, 1 + tileset_tiles offset_gAreaTileset_HyruleField_7_1, 0x6008000, 0x4000, 1 .4byte 0x80000010, 0x0, 0x0 map_bottom offset_gAreaRoomMap_HyruleField_1_3, 0x152A, 1 map_top offset_gAreaRoomMap_HyruleField_1_4, 0x152A, 1, 1 @@ -121,36 +121,36 @@ gAreaRoomMap_HyruleField_2:: @ 0810350C map_top offset_gAreaRoomMap_HyruleField_2_1, 0x30C, 1, 1 gAreaRoomMap_HyruleField_3:: @ 08103524 - map_data offset_gAreaRoomMap_HyruleField_7_0, 0x6000000, 0x4000, 1 - map_data offset_gAreaRoomMap_HyruleField_7_1, 0x6008000, 0x4000, 1 + tileset_tiles offset_gAreaTileset_HyruleField_7_0, 0x6000000, 0x4000, 1 + tileset_tiles offset_gAreaTileset_HyruleField_7_1, 0x6008000, 0x4000, 1 .4byte 0x80000010, 0x0, 0x0 map_bottom offset_gAreaRoomMap_HyruleField_3_3, 0x3C0, 1 map_top offset_gAreaRoomMap_HyruleField_3_4, 0x3C0, 1, 1 gAreaRoomMap_HyruleField_4:: @ 08103560 - map_data offset_gAreaRoomMap_HyruleField_5_0, 0x6000000, 0x4000, 1 - map_data offset_gAreaRoomMap_HyruleField_5_1, 0x6008000, 0x4000, 1 + tileset_tiles offset_gAreaTileset_HyruleField_5_0, 0x6000000, 0x4000, 1 + tileset_tiles offset_gAreaTileset_HyruleField_5_1, 0x6008000, 0x4000, 1 .4byte 0x80000043, 0x0, 0x0 map_bottom offset_gAreaRoomMap_HyruleField_4_3, 0x7F8, 1 map_top offset_gAreaRoomMap_HyruleField_4_4, 0x7F8, 1, 1 gAreaRoomMap_HyruleField_5:: @ 0810359C - map_data offset_gAreaRoomMap_HyruleField_5_0, 0x6000000, 0x4000, 1 - map_data offset_gAreaRoomMap_HyruleField_5_1, 0x6008000, 0x4000, 1 + tileset_tiles offset_gAreaTileset_HyruleField_5_0, 0x6000000, 0x4000, 1 + tileset_tiles offset_gAreaTileset_HyruleField_5_1, 0x6008000, 0x4000, 1 .4byte 0x80000043, 0x0, 0x0 map_bottom offset_gAreaRoomMap_HyruleField_5_3, 0x1518, 1 map_top offset_gAreaRoomMap_HyruleField_5_4, 0x1518, 1, 1 gAreaRoomMap_HyruleField_6:: @ 081035D8 - map_data offset_gAreaRoomMap_HyruleField_6_0, 0x6000000, 0x4000, 1 - map_data offset_gAreaRoomMap_HyruleField_6_1, 0x6008000, 0x4000, 1 + tileset_tiles offset_gAreaTileset_HyruleField_6_0, 0x6000000, 0x4000, 1 + tileset_tiles offset_gAreaTileset_HyruleField_6_1, 0x6008000, 0x4000, 1 .4byte 0x8000002E, 0x0, 0x0 map_bottom offset_gAreaRoomMap_HyruleField_6_3, 0x189C, 1 map_top offset_gAreaRoomMap_HyruleField_6_4, 0x189C, 1, 1 gAreaRoomMap_HyruleField_7:: @ 08103614 - map_data offset_gAreaRoomMap_HyruleField_7_0, 0x6000000, 0x4000, 1 - map_data offset_gAreaRoomMap_HyruleField_7_1, 0x6008000, 0x4000, 1 + tileset_tiles offset_gAreaTileset_HyruleField_7_0, 0x6000000, 0x4000, 1 + tileset_tiles offset_gAreaTileset_HyruleField_7_1, 0x6008000, 0x4000, 1 .4byte 0x80000010, 0x0, 0x0 map_bottom offset_gAreaRoomMap_HyruleField_7_3, 0xE10, 1 map_top offset_gAreaRoomMap_HyruleField_7_4, 0xE10, 1, 1 diff --git a/data/map/tileset_headers.s b/data/map/tileset_headers.s index fb5255bb..2e220697 100755 --- a/data/map/tileset_headers.s +++ b/data/map/tileset_headers.s @@ -85,23 +85,23 @@ gAreaTilesets_MtCrenel:: @ 08100E84 .4byte gAreaTileset_MtCrenel_0 gAreaTileset_HyruleField_0:: @ 08100E88 - tileset_tiles offset_gAreaRoomMap_HyruleField_7_0, 0x6000000, 0x4000, 1 + tileset_tiles offset_gAreaTileset_HyruleField_7_0, 0x6000000, 0x4000, 1 tileset_tiles offset_gAreaTileset_DigCaves1_0_1, 0x6004000, 0x4000, 1 - tileset_tiles offset_gAreaRoomMap_HyruleField_7_1, 0x6008000, 0x4000, 1 + tileset_tiles offset_gAreaTileset_HyruleField_7_1, 0x6008000, 0x4000, 1 tileset_tiles offset_gAreaTileset_HyruleField_2_3, 0x600F000, 0x800, 1 tileset_palette_set 16, 1 gAreaTileset_HyruleField_1:: @ 08100EC4 - tileset_tiles offset_gAreaRoomMap_HyruleField_5_0, 0x6000000, 0x4000, 1 + tileset_tiles offset_gAreaTileset_HyruleField_5_0, 0x6000000, 0x4000, 1 tileset_tiles offset_gAreaTileset_HyruleField_1_1, 0x6004000, 0x4000, 1 - tileset_tiles offset_gAreaRoomMap_HyruleField_5_1, 0x6008000, 0x4000, 1 + tileset_tiles offset_gAreaTileset_HyruleField_5_1, 0x6008000, 0x4000, 1 tileset_tiles offset_gAreaTileset_HyruleField_2_3, 0x600F000, 0x800, 1 tileset_palette_set 67, 1 gAreaTileset_HyruleField_2:: @ 08100F00 - tileset_tiles offset_gAreaRoomMap_HyruleField_6_0, 0x6000000, 0x4000, 1 + tileset_tiles offset_gAreaTileset_HyruleField_6_0, 0x6000000, 0x4000, 1 tileset_tiles offset_gAreaTileset_HyruleField_2_1, 0x6004000, 0x4000, 1 - tileset_tiles offset_gAreaRoomMap_HyruleField_6_1, 0x6008000, 0x4000, 1 + tileset_tiles offset_gAreaTileset_HyruleField_6_1, 0x6008000, 0x4000, 1 tileset_tiles offset_gAreaTileset_HyruleField_2_3, 0x600F000, 0x800, 1 tileset_palette_set 46, 1 @@ -221,9 +221,9 @@ gAreaTilesets_HyruleDigCaves:: @ 081011FC .4byte gAreaTileset_HyruleDigCaves_0 gAreaTileset_DigCaves1_0:: @ 08101200 - tileset_tiles offset_gAreaRoomMap_HyruleField_7_0, 0x6000000, 0x4000, 1 + tileset_tiles offset_gAreaTileset_HyruleField_7_0, 0x6000000, 0x4000, 1 tileset_tiles offset_gAreaTileset_DigCaves1_0_1, 0x6004000, 0x4000, 1 - tileset_tiles offset_gAreaRoomMap_HyruleField_7_1, 0x6008000, 0x4000, 1 + tileset_tiles offset_gAreaTileset_HyruleField_7_1, 0x6008000, 0x4000, 1 tileset_tiles offset_gAreaTileset_DigCaves1_0_3, 0x6001000, 0x2000, 1 tileset_tiles offset_gAreaTileset_DigCaves1_0_4, 0x6009000, 0x2000, 1 tileset_palette_set 85, 1 diff --git a/tools/src/asset_processor/assets/tileset.cpp b/tools/src/asset_processor/assets/tileset.cpp index cf921653..56a9bb72 100644 --- a/tools/src/asset_processor/assets/tileset.cpp +++ b/tools/src/asset_processor/assets/tileset.cpp @@ -31,8 +31,9 @@ void TilesetAsset::convertToHumanReadable(const std::vector& baserom) { cmd.push_back(toolsPath / "bin" / "gbagfx"); cmd.push_back(decompressedPath); cmd.push_back(assetPath); - cmd.push_back("-mwidth"); - cmd.push_back("32"); + // 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); } diff --git a/tools/src/asset_processor/main.cpp b/tools/src/asset_processor/main.cpp index db472e6e..195c6939 100644 --- a/tools/src/asset_processor/main.cpp +++ b/tools/src/asset_processor/main.cpp @@ -279,7 +279,7 @@ std::unique_ptr getAssetHandlerByType(const std::filesystem::path& pa assetHandler = std::make_unique(path, start, size, asset); } else if (type == "palette") { assetHandler = std::make_unique(path, start, size, asset); - } else if (type == "map_gfx" || type == "map_layer1" || type == "map_layer2" || type == "metatiles_tile_types1" || + } else if (type == "map_layer1" || type == "map_layer2" || type == "metatiles_tile_types1" || type == "metatiles_tile_types2" || type == "metatiles_tileset1" || type == "metatiles_tileset2" || type == "map_mapping1" || type == "map_mapping2" || type == "tileset_mapping3" || type == "map_collision") {