From 83bac91872a2c4211e4f4ee62e5fefd769c00cdf Mon Sep 17 00:00:00 2001 From: Kelly Rauchenberger Date: Sun, 31 Jan 2021 20:14:00 -0500 Subject: Map dumper gets map width/height --- tools/sprite_dumper/tileset_dumper.cpp | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) (limited to 'tools/sprite_dumper/tileset_dumper.cpp') diff --git a/tools/sprite_dumper/tileset_dumper.cpp b/tools/sprite_dumper/tileset_dumper.cpp index 10e46fa..c0cea76 100644 --- a/tools/sprite_dumper/tileset_dumper.cpp +++ b/tools/sprite_dumper/tileset_dumper.cpp @@ -2,8 +2,32 @@ #include #include #include +#include #include "common.h" +const int NUM_ROOMS = 1000; + +struct RoomInfo { + int width; + int height; + + static std::map ReadFromRom(BufferView m3) { + const int BASE_ADDR = 0xD2E1D8 + 12; + const int ENTRY_LEN = 28; + + std::map output; + + for (int i=0; i> 3) + 1) << 4; + } + + return output; + } +}; + int main(int argc, char** argv) { if (argc < 3) { std::cout << "Usage: ./tileset_dumper [path to rom] {map ID}" << std::endl; @@ -15,7 +39,9 @@ int main(int argc, char** argv) { Rom m3(argv[1]); int roomNum = std::stoi(argv[2]); - const unsigned long ROOM_TILES_BASE = 0x104D9CC; + auto roomInfos = RoomInfo::ReadFromRom(m3.buffer()); + std::cout << roomInfos[roomNum].width << "," << roomInfos[roomNum].height << std::endl; + /*const unsigned long ROOM_TILES_BASE = 0x104D9CC; unsigned long metatilesInfoAddr = ROOM_TILES_BASE + 4 + (roomNum << 2); unsigned long metatilesOffset = m3.buffer().ReadFourBytes(metatilesInfoAddr); unsigned long metatilesAddr = metatilesOffset + ROOM_TILES_BASE; @@ -35,5 +61,5 @@ int main(int argc, char** argv) { if ((mask & 0x8) == 0) tile11 = -1; std::cout << tile00 << "," << tile01 << "," << tile10 << "," << tile11 << std::endl; - } + }*/ } \ No newline at end of file -- cgit 1.4.1