From 43fc52dec7f087bd48bbd128ed9bc993b1a70004 Mon Sep 17 00:00:00 2001 From: scawful Date: Wed, 22 Jan 2025 13:45:58 -0500 Subject: [PATCH] Refactor SnesToPc and PcToSnes functions for improved readability and consistency; remove redundant core:: namespace usage --- src/app/core/common.cc | 9 -- src/app/core/common.h | 35 ----- src/app/editor/code/memory_editor.h | 2 +- src/app/editor/graphics/screen_editor.cc | 8 +- src/app/editor/message/message_data.cc | 14 +- src/app/editor/message/message_editor.cc | 8 +- src/app/rom.cc | 8 +- src/app/rom.h | 42 ++++++ src/app/zelda3/dungeon/room.cc | 24 +-- src/app/zelda3/overworld/overworld.cc | 178 +++++++++++------------ src/app/zelda3/screen/title_screen.cc | 2 +- src/cli/z3ed.h | 12 +- 12 files changed, 170 insertions(+), 172 deletions(-) diff --git a/src/app/core/common.cc b/src/app/core/common.cc index eb4d34bf..6cd4a7a0 100644 --- a/src/app/core/common.cc +++ b/src/app/core/common.cc @@ -56,15 +56,6 @@ uint32_t ldle3(uint8_t const *const p_arr) { return ldle(p_arr, 3); } } // namespace -uint32_t Get24LocalFromPC(uint8_t *data, int addr, bool pc) { - uint32_t ret = - (PcToSnes(addr) & 0xFF0000) | (data[addr + 1] << 8) | data[addr]; - if (pc) { - return SnesToPc(ret); - } - return ret; -} - void stle16b_i(uint8_t *const p_arr, size_t const p_index, uint16_t const p_val) { stle16b(p_arr + (p_index * 2), p_val); diff --git a/src/app/core/common.h b/src/app/core/common.h index 54c129e6..b36c7d4e 100644 --- a/src/app/core/common.h +++ b/src/app/core/common.h @@ -18,41 +18,6 @@ namespace yaze { */ namespace core { -constexpr uint32_t kFastRomRegion = 0x808000; - -inline uint32_t SnesToPc(uint32_t addr) noexcept { - if (addr >= kFastRomRegion) { - addr -= kFastRomRegion; - } - uint32_t temp = (addr & 0x7FFF) + ((addr / 2) & 0xFF8000); - return (temp + 0x0); -} - -inline uint32_t PcToSnes(uint32_t addr) { - uint8_t *b = reinterpret_cast(&addr); - b[2] = static_cast(b[2] * 2); - - if (b[1] >= 0x80) { - b[2] += 1; - } else { - b[1] += 0x80; - } - - return addr; -} - -inline int AddressFromBytes(uint8_t bank, uint8_t high, uint8_t low) noexcept { - return (bank << 16) | (high << 8) | low; -} - -inline uint32_t MapBankToWordAddress(uint8_t bank, uint16_t addr) noexcept { - uint32_t result = 0; - result = (bank << 16) | addr; - return result; -} - -uint32_t Get24LocalFromPC(uint8_t *data, int addr, bool pc = true); - /** * @brief Store little endian 16-bit value using a byte pointer, offset by an * index before dereferencing diff --git a/src/app/editor/code/memory_editor.h b/src/app/editor/code/memory_editor.h index a0c926b4..ceeca751 100644 --- a/src/app/editor/code/memory_editor.h +++ b/src/app/editor/code/memory_editor.h @@ -31,7 +31,7 @@ struct MemoryEditorWithDiffChecker : public SharedRom { static uint64_t convert_address = 0; gui::InputHex("SNES to PC", (int *)&convert_address, 6, 200.f); SameLine(); - Text("%x", core::SnesToPc(convert_address)); + Text("%x", SnesToPc(convert_address)); // mem_edit.DrawWindow("Memory Editor", (void*)&(*rom()), rom()->size()); BEGIN_TABLE("Memory Comparison", 2, ImGuiTableFlags_Resizable); diff --git a/src/app/editor/graphics/screen_editor.cc b/src/app/editor/graphics/screen_editor.cc index ad738fea..c6cf839b 100644 --- a/src/app/editor/graphics/screen_editor.cc +++ b/src/app/editor/graphics/screen_editor.cc @@ -125,9 +125,9 @@ absl::Status ScreenEditor::LoadDungeonMaps() { rom()->ReadWord(zelda3::kDungeonMapGfxPtr + (d * 2))); ptr |= 0x0A0000; // Add bank to the short ptr ptr_gfx |= 0x0A0000; // Add bank to the short ptr - int pc_ptr = core::SnesToPc(ptr); // Contains data for the next 25 rooms + int pc_ptr = SnesToPc(ptr); // Contains data for the next 25 rooms int pc_ptr_gfx = - core::SnesToPc(ptr_gfx); // Contains data for the next 25 rooms + SnesToPc(ptr_gfx); // Contains data for the next 25 rooms ASSIGN_OR_RETURN(uint16_t boss_room_d, rom()->ReadWord(zelda3::kDungeonMapBossRooms + (d * 2))); @@ -182,8 +182,8 @@ absl::Status ScreenEditor::SaveDungeonMaps() { for (int d = 0; d < 14; d++) { int ptr = zelda3::kDungeonMapRoomsPtr + (d * 2); int ptr_gfx = zelda3::kDungeonMapGfxPtr + (d * 2); - int pc_ptr = core::SnesToPc(ptr); - int pc_ptr_gfx = core::SnesToPc(ptr_gfx); + int pc_ptr = SnesToPc(ptr); + int pc_ptr_gfx = SnesToPc(ptr_gfx); const int nbr_floors = dungeon_maps_[d].nbr_of_floor; const int nbr_basements = dungeon_maps_[d].nbr_of_basement; diff --git a/src/app/editor/message/message_data.cc b/src/app/editor/message/message_data.cc index 8f3fbba7..b488dc8b 100644 --- a/src/app/editor/message/message_data.cc +++ b/src/app/editor/message/message_data.cc @@ -154,14 +154,14 @@ std::vector BuildDictionaryEntries(Rom *rom) { std::vector bytes; std::stringstream stringBuilder; - int address = core::SnesToPc( + int address = SnesToPc( kTextData + (rom->data()[kPointersDictionaries + (i * 2) + 1] << 8) + rom->data()[kPointersDictionaries + (i * 2)]); - int temppush_backress = core::SnesToPc( - kTextData + - (rom->data()[kPointersDictionaries + ((i + 1) * 2) + 1] << 8) + - rom->data()[kPointersDictionaries + ((i + 1) * 2)]); + int temppush_backress = + SnesToPc(kTextData + + (rom->data()[kPointersDictionaries + ((i + 1) * 2) + 1] << 8) + + rom->data()[kPointersDictionaries + ((i + 1) * 2)]); while (address < temppush_backress) { uint8_t uint8_tDictionary = rom->data()[address++]; @@ -233,9 +233,9 @@ absl::StatusOr ParseSingleMessage( current_message_raw.append("]"); auto mutable_rom_data = const_cast(rom_data.data()); - uint32_t address = core::Get24LocalFromPC( + uint32_t address = Get24LocalFromPC( mutable_rom_data, kPointersDictionaries + (dictionary * 2)); - uint32_t address_end = core::Get24LocalFromPC( + uint32_t address_end = Get24LocalFromPC( mutable_rom_data, kPointersDictionaries + ((dictionary + 1) * 2)); for (uint32_t i = address; i < address_end; i++) { diff --git a/src/app/editor/message/message_editor.cc b/src/app/editor/message/message_editor.cc index d38a266d..882faad0 100644 --- a/src/app/editor/message/message_editor.cc +++ b/src/app/editor/message/message_editor.cc @@ -299,9 +299,9 @@ void MessageEditor::ReadAllTextDataV2() { current_raw_message.append(util::HexWord(dictionary)); current_raw_message.append("]"); - uint32_t address = core::Get24LocalFromPC( + uint32_t address = Get24LocalFromPC( rom()->mutable_data(), kPointersDictionaries + (dictionary * 2)); - uint32_t address_end = core::Get24LocalFromPC( + uint32_t address_end = Get24LocalFromPC( rom()->mutable_data(), kPointersDictionaries + ((dictionary + 1) * 2)); @@ -397,9 +397,9 @@ void MessageEditor::ReadAllTextData() { current_message_raw.append(util::HexWord(dictionary)); current_message_raw.append("]"); - uint32_t address = core::Get24LocalFromPC( + uint32_t address = Get24LocalFromPC( rom()->mutable_data(), kPointersDictionaries + (dictionary * 2)); - uint32_t address_end = core::Get24LocalFromPC( + uint32_t address_end = Get24LocalFromPC( rom()->mutable_data(), kPointersDictionaries + ((dictionary + 1) * 2)); diff --git a/src/app/rom.cc b/src/app/rom.cc index d594d1ab..289843e6 100644 --- a/src/app/rom.cc +++ b/src/app/rom.cc @@ -32,8 +32,8 @@ constexpr int Uncompressed3BPPSize = 0x0600; uint32_t GetGraphicsAddress(const uint8_t *data, uint8_t addr, uint32_t ptr1, uint32_t ptr2, uint32_t ptr3) { - return core::SnesToPc(core::AddressFromBytes( - data[ptr1 + addr], data[ptr2 + addr], data[ptr3 + addr])); + return SnesToPc(AddressFromBytes(data[ptr1 + addr], data[ptr2 + addr], + data[ptr3 + addr])); } absl::StatusOr> Load2BppGraphics(const Rom &rom) { @@ -530,7 +530,7 @@ absl::Status Rom::SaveAllPalettes() { absl::Status Rom::LoadGfxGroups() { ASSIGN_OR_RETURN(auto main_blockset_ptr, ReadWord(kGfxGroupsPointer)); - main_blockset_ptr = core::SnesToPc(main_blockset_ptr); + main_blockset_ptr = SnesToPc(main_blockset_ptr); for (uint32_t i = 0; i < kNumMainBlocksets; i++) { for (int j = 0; j < 8; j++) { @@ -563,7 +563,7 @@ absl::Status Rom::LoadGfxGroups() { absl::Status Rom::SaveGroupsToRom() { ASSIGN_OR_RETURN(auto main_blockset_ptr, ReadWord(kGfxGroupsPointer)); - main_blockset_ptr = core::SnesToPc(main_blockset_ptr); + main_blockset_ptr = SnesToPc(main_blockset_ptr); for (uint32_t i = 0; i < kNumMainBlocksets; i++) { for (int j = 0; j < 8; j++) { diff --git a/src/app/rom.h b/src/app/rom.h index eb6e15a4..cb6d5fc0 100644 --- a/src/app/rom.h +++ b/src/app/rom.h @@ -324,6 +324,48 @@ absl::StatusOr> Load2BppGraphics(const Rom& rom); absl::StatusOr> LoadLinkGraphics( const Rom& rom); +constexpr uint32_t kFastRomRegion = 0x808000; + +inline uint32_t SnesToPc(uint32_t addr) noexcept { + if (addr >= kFastRomRegion) { + addr -= kFastRomRegion; + } + uint32_t temp = (addr & 0x7FFF) + ((addr / 2) & 0xFF8000); + return (temp + 0x0); +} + +inline uint32_t PcToSnes(uint32_t addr) { + uint8_t* b = reinterpret_cast(&addr); + b[2] = static_cast(b[2] * 2); + + if (b[1] >= 0x80) { + b[2] += 1; + } else { + b[1] += 0x80; + } + + return addr; +} + +inline uint32_t Get24LocalFromPC(uint8_t* data, int addr, bool pc = true) { + uint32_t ret = + (PcToSnes(addr) & 0xFF0000) | (data[addr + 1] << 8) | data[addr]; + if (pc) { + return SnesToPc(ret); + } + return ret; +} + +inline int AddressFromBytes(uint8_t bank, uint8_t high, uint8_t low) noexcept { + return (bank << 16) | (high << 8) | low; +} + +inline uint32_t MapBankToWordAddress(uint8_t bank, uint16_t addr) noexcept { + uint32_t result = 0; + result = (bank << 16) | addr; + return result; +} + /** * @brief A class to hold a shared pointer to a Rom object. */ diff --git a/src/app/zelda3/dungeon/room.cc b/src/app/zelda3/dungeon/room.cc index 3878db26..15b10e55 100644 --- a/src/app/zelda3/dungeon/room.cc +++ b/src/app/zelda3/dungeon/room.cc @@ -19,13 +19,13 @@ void Room::LoadHeader() { int header_pointer = (rom()->data()[kRoomHeaderPointer + 2] << 16) + (rom()->data()[kRoomHeaderPointer + 1] << 8) + (rom()->data()[kRoomHeaderPointer]); - header_pointer = core::SnesToPc(header_pointer); + header_pointer = SnesToPc(header_pointer); int address = (rom()->data()[kRoomHeaderPointerBank] << 16) + (rom()->data()[(header_pointer + 1) + (room_id_ * 2)] << 8) + rom()->data()[(header_pointer) + (room_id_ * 2)]; - auto header_location = core::SnesToPc(address); + auto header_location = SnesToPc(address); bg2_ = (background2)((rom()->data()[header_location] >> 5) & 0x07); collision_ = (CollisionKey)((rom()->data()[header_location] >> 2) & 0x07); @@ -124,7 +124,7 @@ void Room::CalculateRoomSize() { void Room::LoadRoomFromROM() { auto rom_data = rom()->vector(); - int header_pointer = core::SnesToPc(kRoomHeaderPointer); + int header_pointer = SnesToPc(kRoomHeaderPointer); message_id_ = messages_id_dungeon + (room_id_ * 2); @@ -132,7 +132,7 @@ void Room::LoadRoomFromROM() { (rom()->data()[(header_pointer + 1) + (room_id_ * 2)] << 8) + rom()->data()[(header_pointer) + (room_id_ * 2)]; - int hpos = core::SnesToPc(address); + int hpos = SnesToPc(address); hpos++; uint8_t b = rom_data[hpos]; @@ -182,14 +182,14 @@ void Room::LoadRoomFromROM() { hpos++; // Load room objects - int object_pointer = core::SnesToPc(room_object_pointer); + int object_pointer = SnesToPc(room_object_pointer); int room_address = object_pointer + (room_id_ * 3); - int objects_location = core::SnesToPc(room_address); + int objects_location = SnesToPc(room_address); // Load sprites // int spr_ptr = 0x040000 | rooms_sprite_pointer; // int sprite_address = - // core::SnesToPc(dungeon_spr_ptrs | spr_ptr + (room_id_ * 2)); + // SnesToPc(dungeon_spr_ptrs | spr_ptr + (room_id_ * 2)); } void Room::LoadRoomGraphics(uint8_t entrance_blockset) { @@ -253,7 +253,7 @@ void Room::CopyRoomGraphicsToBuffer() { } void Room::LoadAnimatedGraphics() { - int gfx_ptr = core::SnesToPc(rom()->version_constants().kGfxAnimatedPointer); + int gfx_ptr = SnesToPc(rom()->version_constants().kGfxAnimatedPointer); auto gfx_buffer_data = rom()->graphics_buffer(); auto rom_data = rom()->vector(); @@ -277,13 +277,13 @@ void Room::LoadObjects() { int object_pointer = (rom_data[room_object_pointer + 2] << 16) + (rom_data[room_object_pointer + 1] << 8) + (rom_data[room_object_pointer]); - object_pointer = core::SnesToPc(object_pointer); + object_pointer = SnesToPc(object_pointer); int room_address = object_pointer + (room_id_ * 3); int tile_address = (rom_data[room_address + 2] << 16) + (rom_data[room_address + 1] << 8) + rom_data[room_address]; - int objects_location = core::SnesToPc(tile_address); + int objects_location = SnesToPc(tile_address); if (objects_location == 0x52CA2) { std::cout << "Room ID : " << room_id_ << std::endl; @@ -422,7 +422,7 @@ void Room::LoadSprites() { (0x09 << 16) + (rom_data[sprite_pointer + (room_id_ * 2) + 1] << 8) + rom_data[sprite_pointer + (room_id_ * 2)]; - int sprite_address = core::SnesToPc(sprite_address_snes); + int sprite_address = SnesToPc(sprite_address_snes); bool sortsprites = rom_data[sprite_address] == 1; sprite_address += 1; @@ -462,7 +462,7 @@ void Room::LoadSprites() { void Room::LoadChests() { auto rom_data = rom()->vector(); - uint32_t cpos = core::SnesToPc((rom_data[chests_data_pointer1 + 2] << 16) + + uint32_t cpos = SnesToPc((rom_data[chests_data_pointer1 + 2] << 16) + (rom_data[chests_data_pointer1 + 1] << 8) + (rom_data[chests_data_pointer1])); size_t clength = (rom_data[chests_length_pointer + 1] << 8) + diff --git a/src/app/zelda3/overworld/overworld.cc b/src/app/zelda3/overworld/overworld.cc index 7ba8a2e9..f0adc2ad 100644 --- a/src/app/zelda3/overworld/overworld.cc +++ b/src/app/zelda3/overworld/overworld.cc @@ -224,7 +224,7 @@ void Overworld::DecompressAllMapTiles() { int p = (rom()->data()[map_ptr + 2 + (3 * index)] << 16) + (rom()->data()[map_ptr + 1 + (3 * index)] << 8) + (rom()->data()[map_ptr + (3 * index)]); - return core::SnesToPc(p); + return SnesToPc(p); }; constexpr uint32_t kBaseLowest = 0x0FFFFF; @@ -416,12 +416,12 @@ absl::Status Overworld::LoadExits() { absl::Status Overworld::LoadItems() { ASSIGN_OR_RETURN(uint32_t pointer, rom()->ReadLong(zelda3::kOverworldItemsAddress)); - uint32_t pointer_pc = core::SnesToPc(pointer); // 1BC2F9 -> 0DC2F9 + uint32_t pointer_pc = SnesToPc(pointer); // 1BC2F9 -> 0DC2F9 for (int i = 0; i < 128; i++) { ASSIGN_OR_RETURN(uint16_t word_address, rom()->ReadWord(pointer_pc + i * 2)); uint32_t addr = (pointer & 0xFF0000) | word_address; // 1B F9 3C - addr = core::SnesToPc(addr); + addr = SnesToPc(addr); if (overworld_maps_[i].is_large_map()) { if (overworld_maps_[i].parent() != (uint8_t)i) { @@ -490,7 +490,7 @@ absl::Status Overworld::LoadSpritesFromMap(int sprites_per_gamestate_ptr, int current_spr_ptr = sprites_per_gamestate_ptr + (i * 2); ASSIGN_OR_RETURN(auto word_addr, rom()->ReadWord(current_spr_ptr)); - int sprite_address = core::SnesToPc((0x09 << 0x10) | word_addr); + int sprite_address = SnesToPc((0x09 << 0x10) | word_addr); while (true) { ASSIGN_OR_RETURN(uint8_t b1, rom()->ReadByte(sprite_address)); ASSIGN_OR_RETURN(uint8_t b2, rom()->ReadByte(sprite_address + 1)); @@ -609,7 +609,7 @@ absl::Status Overworld::SaveOverworldMaps() { if (map_pointers1_id[i] == -1) { // Save compressed data and pointer for map1 std::copy(a.begin(), a.end(), map_data_p1[i].begin()); - int snes_pos = core::PcToSnes(pos); + int snes_pos = PcToSnes(pos); map_pointers1[i] = snes_pos; util::logf("Saving map pointers1 and compressed data for map %s at %s", util::HexByte(i), util::HexLong(snes_pos)); @@ -641,7 +641,7 @@ absl::Status Overworld::SaveOverworldMaps() { if (map_pointers2_id[i] == -1) { // Save compressed data and pointer for map2 std::copy(b.begin(), b.end(), map_data_p2[i].begin()); - int snes_pos = core::PcToSnes(pos); + int snes_pos = PcToSnes(pos); map_pointers2[i] = snes_pos; util::logf("Saving map pointers2 and compressed data for map %s at %s", util::HexByte(i), util::HexLong(snes_pos)); @@ -1107,45 +1107,45 @@ absl::Status Overworld::SaveMap32Expanded() { // Updates the pointers too for the tile32 // Top Right RETURN_IF_ERROR( - rom()->WriteLong(0x0176EC, core::PcToSnes(kMap32TileTRExpanded))); + rom()->WriteLong(0x0176EC, PcToSnes(kMap32TileTRExpanded))); RETURN_IF_ERROR( - rom()->WriteLong(0x0176F3, core::PcToSnes(kMap32TileTRExpanded + 1))); + rom()->WriteLong(0x0176F3, PcToSnes(kMap32TileTRExpanded + 1))); RETURN_IF_ERROR( - rom()->WriteLong(0x0176FA, core::PcToSnes(kMap32TileTRExpanded + 2))); + rom()->WriteLong(0x0176FA, PcToSnes(kMap32TileTRExpanded + 2))); RETURN_IF_ERROR( - rom()->WriteLong(0x017701, core::PcToSnes(kMap32TileTRExpanded + 3))); + rom()->WriteLong(0x017701, PcToSnes(kMap32TileTRExpanded + 3))); RETURN_IF_ERROR( - rom()->WriteLong(0x017708, core::PcToSnes(kMap32TileTRExpanded + 4))); + rom()->WriteLong(0x017708, PcToSnes(kMap32TileTRExpanded + 4))); RETURN_IF_ERROR( - rom()->WriteLong(0x01771A, core::PcToSnes(kMap32TileTRExpanded + 5))); + rom()->WriteLong(0x01771A, PcToSnes(kMap32TileTRExpanded + 5))); // BottomLeft RETURN_IF_ERROR( - rom()->WriteLong(0x01772C, core::PcToSnes(kMap32TileBLExpanded))); + rom()->WriteLong(0x01772C, PcToSnes(kMap32TileBLExpanded))); RETURN_IF_ERROR( - rom()->WriteLong(0x017733, core::PcToSnes(kMap32TileBLExpanded + 1))); + rom()->WriteLong(0x017733, PcToSnes(kMap32TileBLExpanded + 1))); RETURN_IF_ERROR( - rom()->WriteLong(0x01773A, core::PcToSnes(kMap32TileBLExpanded + 2))); + rom()->WriteLong(0x01773A, PcToSnes(kMap32TileBLExpanded + 2))); RETURN_IF_ERROR( - rom()->WriteLong(0x017741, core::PcToSnes(kMap32TileBLExpanded + 3))); + rom()->WriteLong(0x017741, PcToSnes(kMap32TileBLExpanded + 3))); RETURN_IF_ERROR( - rom()->WriteLong(0x017748, core::PcToSnes(kMap32TileBLExpanded + 4))); + rom()->WriteLong(0x017748, PcToSnes(kMap32TileBLExpanded + 4))); RETURN_IF_ERROR( - rom()->WriteLong(0x01775A, core::PcToSnes(kMap32TileBLExpanded + 5))); + rom()->WriteLong(0x01775A, PcToSnes(kMap32TileBLExpanded + 5))); // BottomRight RETURN_IF_ERROR( - rom()->WriteLong(0x01776C, core::PcToSnes(kMap32TileBRExpanded))); + rom()->WriteLong(0x01776C, PcToSnes(kMap32TileBRExpanded))); RETURN_IF_ERROR( - rom()->WriteLong(0x017773, core::PcToSnes(kMap32TileBRExpanded + 1))); + rom()->WriteLong(0x017773, PcToSnes(kMap32TileBRExpanded + 1))); RETURN_IF_ERROR( - rom()->WriteLong(0x01777A, core::PcToSnes(kMap32TileBRExpanded + 2))); + rom()->WriteLong(0x01777A, PcToSnes(kMap32TileBRExpanded + 2))); RETURN_IF_ERROR( - rom()->WriteLong(0x017781, core::PcToSnes(kMap32TileBRExpanded + 3))); + rom()->WriteLong(0x017781, PcToSnes(kMap32TileBRExpanded + 3))); RETURN_IF_ERROR( - rom()->WriteLong(0x017788, core::PcToSnes(kMap32TileBRExpanded + 4))); + rom()->WriteLong(0x017788, PcToSnes(kMap32TileBRExpanded + 4))); RETURN_IF_ERROR( - rom()->WriteLong(0x01779A, core::PcToSnes(kMap32TileBRExpanded + 5))); + rom()->WriteLong(0x01779A, PcToSnes(kMap32TileBRExpanded + 5))); return absl::OkStatus(); } @@ -1279,79 +1279,79 @@ absl::Status Overworld::SaveMap32Tiles() { } absl::Status Overworld::SaveMap16Expanded() { - RETURN_IF_ERROR(rom()->WriteLong(core::SnesToPc(0x008865), - core::PcToSnes(kMap16TilesExpanded))); - RETURN_IF_ERROR(rom()->WriteLong(core::SnesToPc(0x0EDE4F), - core::PcToSnes(kMap16TilesExpanded))); - RETURN_IF_ERROR(rom()->WriteLong(core::SnesToPc(0x0EDEE9), - core::PcToSnes(kMap16TilesExpanded))); + RETURN_IF_ERROR(rom()->WriteLong(SnesToPc(0x008865), + PcToSnes(kMap16TilesExpanded))); + RETURN_IF_ERROR(rom()->WriteLong(SnesToPc(0x0EDE4F), + PcToSnes(kMap16TilesExpanded))); + RETURN_IF_ERROR(rom()->WriteLong(SnesToPc(0x0EDEE9), + PcToSnes(kMap16TilesExpanded))); - RETURN_IF_ERROR(rom()->WriteLong(core::SnesToPc(0x1BBC2D), - core::PcToSnes(kMap16TilesExpanded + 2))); - RETURN_IF_ERROR(rom()->WriteLong(core::SnesToPc(0x1BBC4C), - core::PcToSnes(kMap16TilesExpanded))); - RETURN_IF_ERROR(rom()->WriteLong(core::SnesToPc(0x1BBCC2), - core::PcToSnes(kMap16TilesExpanded + 4))); - RETURN_IF_ERROR(rom()->WriteLong(core::SnesToPc(0x1BBCCB), - core::PcToSnes(kMap16TilesExpanded + 6))); + RETURN_IF_ERROR(rom()->WriteLong(SnesToPc(0x1BBC2D), + PcToSnes(kMap16TilesExpanded + 2))); + RETURN_IF_ERROR(rom()->WriteLong(SnesToPc(0x1BBC4C), + PcToSnes(kMap16TilesExpanded))); + RETURN_IF_ERROR(rom()->WriteLong(SnesToPc(0x1BBCC2), + PcToSnes(kMap16TilesExpanded + 4))); + RETURN_IF_ERROR(rom()->WriteLong(SnesToPc(0x1BBCCB), + PcToSnes(kMap16TilesExpanded + 6))); - RETURN_IF_ERROR(rom()->WriteLong(core::SnesToPc(0x1BBEF6), - core::PcToSnes(kMap16TilesExpanded))); - RETURN_IF_ERROR(rom()->WriteLong(core::SnesToPc(0x1BBF23), - core::PcToSnes(kMap16TilesExpanded))); - RETURN_IF_ERROR(rom()->WriteLong(core::SnesToPc(0x1BC041), - core::PcToSnes(kMap16TilesExpanded))); - RETURN_IF_ERROR(rom()->WriteLong(core::SnesToPc(0x1BC9B3), - core::PcToSnes(kMap16TilesExpanded))); + RETURN_IF_ERROR(rom()->WriteLong(SnesToPc(0x1BBEF6), + PcToSnes(kMap16TilesExpanded))); + RETURN_IF_ERROR(rom()->WriteLong(SnesToPc(0x1BBF23), + PcToSnes(kMap16TilesExpanded))); + RETURN_IF_ERROR(rom()->WriteLong(SnesToPc(0x1BC041), + PcToSnes(kMap16TilesExpanded))); + RETURN_IF_ERROR(rom()->WriteLong(SnesToPc(0x1BC9B3), + PcToSnes(kMap16TilesExpanded))); - RETURN_IF_ERROR(rom()->WriteLong(core::SnesToPc(0x1BC9BA), - core::PcToSnes(kMap16TilesExpanded + 2))); - RETURN_IF_ERROR(rom()->WriteLong(core::SnesToPc(0x1BC9C1), - core::PcToSnes(kMap16TilesExpanded + 4))); - RETURN_IF_ERROR(rom()->WriteLong(core::SnesToPc(0x1BC9C8), - core::PcToSnes(kMap16TilesExpanded + 6))); + RETURN_IF_ERROR(rom()->WriteLong(SnesToPc(0x1BC9BA), + PcToSnes(kMap16TilesExpanded + 2))); + RETURN_IF_ERROR(rom()->WriteLong(SnesToPc(0x1BC9C1), + PcToSnes(kMap16TilesExpanded + 4))); + RETURN_IF_ERROR(rom()->WriteLong(SnesToPc(0x1BC9C8), + PcToSnes(kMap16TilesExpanded + 6))); - RETURN_IF_ERROR(rom()->WriteLong(core::SnesToPc(0x1BCA40), - core::PcToSnes(kMap16TilesExpanded))); - RETURN_IF_ERROR(rom()->WriteLong(core::SnesToPc(0x1BCA47), - core::PcToSnes(kMap16TilesExpanded + 2))); - RETURN_IF_ERROR(rom()->WriteLong(core::SnesToPc(0x1BCA4E), - core::PcToSnes(kMap16TilesExpanded + 4))); - RETURN_IF_ERROR(rom()->WriteLong(core::SnesToPc(0x1BCA55), - core::PcToSnes(kMap16TilesExpanded + 6))); + RETURN_IF_ERROR(rom()->WriteLong(SnesToPc(0x1BCA40), + PcToSnes(kMap16TilesExpanded))); + RETURN_IF_ERROR(rom()->WriteLong(SnesToPc(0x1BCA47), + PcToSnes(kMap16TilesExpanded + 2))); + RETURN_IF_ERROR(rom()->WriteLong(SnesToPc(0x1BCA4E), + PcToSnes(kMap16TilesExpanded + 4))); + RETURN_IF_ERROR(rom()->WriteLong(SnesToPc(0x1BCA55), + PcToSnes(kMap16TilesExpanded + 6))); - RETURN_IF_ERROR(rom()->WriteLong(core::SnesToPc(0x02F457), - core::PcToSnes(kMap16TilesExpanded))); - RETURN_IF_ERROR(rom()->WriteLong(core::SnesToPc(0x02F45E), - core::PcToSnes(kMap16TilesExpanded + 2))); - RETURN_IF_ERROR(rom()->WriteLong(core::SnesToPc(0x02F467), - core::PcToSnes(kMap16TilesExpanded + 4))); - RETURN_IF_ERROR(rom()->WriteLong(core::SnesToPc(0x02F46E), - core::PcToSnes(kMap16TilesExpanded + 6))); - RETURN_IF_ERROR(rom()->WriteLong(core::SnesToPc(0x02F51F), - core::PcToSnes(kMap16TilesExpanded))); - RETURN_IF_ERROR(rom()->WriteLong(core::SnesToPc(0x02F526), - core::PcToSnes(kMap16TilesExpanded + 4))); - RETURN_IF_ERROR(rom()->WriteLong(core::SnesToPc(0x02F52F), - core::PcToSnes(kMap16TilesExpanded + 2))); - RETURN_IF_ERROR(rom()->WriteLong(core::SnesToPc(0x02F536), - core::PcToSnes(kMap16TilesExpanded + 6))); + RETURN_IF_ERROR(rom()->WriteLong(SnesToPc(0x02F457), + PcToSnes(kMap16TilesExpanded))); + RETURN_IF_ERROR(rom()->WriteLong(SnesToPc(0x02F45E), + PcToSnes(kMap16TilesExpanded + 2))); + RETURN_IF_ERROR(rom()->WriteLong(SnesToPc(0x02F467), + PcToSnes(kMap16TilesExpanded + 4))); + RETURN_IF_ERROR(rom()->WriteLong(SnesToPc(0x02F46E), + PcToSnes(kMap16TilesExpanded + 6))); + RETURN_IF_ERROR(rom()->WriteLong(SnesToPc(0x02F51F), + PcToSnes(kMap16TilesExpanded))); + RETURN_IF_ERROR(rom()->WriteLong(SnesToPc(0x02F526), + PcToSnes(kMap16TilesExpanded + 4))); + RETURN_IF_ERROR(rom()->WriteLong(SnesToPc(0x02F52F), + PcToSnes(kMap16TilesExpanded + 2))); + RETURN_IF_ERROR(rom()->WriteLong(SnesToPc(0x02F536), + PcToSnes(kMap16TilesExpanded + 6))); - RETURN_IF_ERROR(rom()->WriteShort(core::SnesToPc(0x02FE1C), - core::PcToSnes(kMap16TilesExpanded))); - RETURN_IF_ERROR(rom()->WriteShort(core::SnesToPc(0x02FE23), - core::PcToSnes(kMap16TilesExpanded + 4))); - RETURN_IF_ERROR(rom()->WriteShort(core::SnesToPc(0x02FE2C), - core::PcToSnes(kMap16TilesExpanded + 2))); - RETURN_IF_ERROR(rom()->WriteShort(core::SnesToPc(0x02FE33), - core::PcToSnes(kMap16TilesExpanded + 6))); + RETURN_IF_ERROR(rom()->WriteShort(SnesToPc(0x02FE1C), + PcToSnes(kMap16TilesExpanded))); + RETURN_IF_ERROR(rom()->WriteShort(SnesToPc(0x02FE23), + PcToSnes(kMap16TilesExpanded + 4))); + RETURN_IF_ERROR(rom()->WriteShort(SnesToPc(0x02FE2C), + PcToSnes(kMap16TilesExpanded + 2))); + RETURN_IF_ERROR(rom()->WriteShort(SnesToPc(0x02FE33), + PcToSnes(kMap16TilesExpanded + 6))); RETURN_IF_ERROR(rom()->WriteByte( - core::SnesToPc(0x02FD28), - static_cast(core::PcToSnes(kMap16TilesExpanded) >> 16))); + SnesToPc(0x02FD28), + static_cast(PcToSnes(kMap16TilesExpanded) >> 16))); RETURN_IF_ERROR(rom()->WriteByte( - core::SnesToPc(0x02FD39), - static_cast(core::PcToSnes(kMap16TilesExpanded) >> 16))); + SnesToPc(0x02FD39), + static_cast(PcToSnes(kMap16TilesExpanded) >> 16))); return absl::OkStatus(); } @@ -1537,7 +1537,7 @@ absl::Status Overworld::SaveItems() { item_pointers[i] = item_pointers[item_pointers_reuse[i]]; } - int snesaddr = core::PcToSnes(item_pointers[i]); + int snesaddr = PcToSnes(item_pointers[i]); RETURN_IF_ERROR( rom()->WriteWord(kOverworldItemsPointers + (i * 2), snesaddr)); } diff --git a/src/app/zelda3/screen/title_screen.cc b/src/app/zelda3/screen/title_screen.cc index 89839f02..bad20d93 100644 --- a/src/app/zelda3/screen/title_screen.cc +++ b/src/app/zelda3/screen/title_screen.cc @@ -67,7 +67,7 @@ void TitleScreen::LoadTitleScreen() { tilesBG2Buffer[i] = 492; } - pos = core::SnesToPc(pos); + pos = SnesToPc(pos); while ((rom_[pos] & 0x80) != 0x80) { int dest_addr = pos; // $03 and $04 diff --git a/src/cli/z3ed.h b/src/cli/z3ed.h index 2c338d1e..20f4692e 100644 --- a/src/cli/z3ed.h +++ b/src/cli/z3ed.h @@ -115,14 +115,14 @@ class Decompress : public CommandHandler { * @param arg_vec `-s
` * @return absl::Status */ -class SnesToPc : public CommandHandler { +class SnesToPcCommand : public CommandHandler { public: absl::Status handle(const std::vector& arg_vec) override { auto arg = arg_vec[0]; std::stringstream ss(arg.data()); uint32_t snes_address; ss >> std::hex >> snes_address; - uint32_t pc_address = core::SnesToPc(snes_address); + uint32_t pc_address = SnesToPc(snes_address); std::cout << std::hex << pc_address << std::endl; return absl::OkStatus(); } @@ -134,14 +134,14 @@ class SnesToPc : public CommandHandler { * @param arg_vec `-p
` * @return absl::Status */ -class PcToSnes : public CommandHandler { +class PcToSnesCommand : public CommandHandler { public: absl::Status handle(const std::vector& arg_vec) override { auto arg = arg_vec[0]; std::stringstream ss(arg.data()); uint32_t pc_address; ss >> std::hex >> pc_address; - uint32_t snes_address = core::PcToSnes(pc_address); + uint32_t snes_address = PcToSnes(pc_address); ColorModifier blue(ColorCode::FG_BLUE); std::cout << "SNES LoROM Address: "; std::cout << blue << "$" << std::uppercase << std::hex << snes_address @@ -225,8 +225,8 @@ struct Commands { {"-x", std::make_shared()}, {"-i", std::make_shared()}, // Import {"-e", std::make_shared()}, // Export - {"-s", std::make_shared()}, - {"-p", std::make_shared()}, + {"-s", std::make_shared()}, + {"-p", std::make_shared()}, {"-t", std::make_shared()}, {"-r", std::make_shared()} // Read from Rom };