From 19baed50d77e5ef3f424ece6691c29ff08c80fdb Mon Sep 17 00:00:00 2001 From: scawful Date: Fri, 2 Aug 2024 18:44:06 -0400 Subject: [PATCH] add z3 load to Rom::LoadFromPointer --- src/app/rom.cc | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/app/rom.cc b/src/app/rom.cc index b0007665..d64fa41c 100644 --- a/src/app/rom.cc +++ b/src/app/rom.cc @@ -207,6 +207,23 @@ absl::Status Rom::LoadFromPointer(uchar* data, size_t length) { "Could not load ROM: parameter `data` is empty."); for (int i = 0; i < length; ++i) rom_data_.push_back(data[i]); + + size_ = length; + + // Copy ROM title + constexpr uint32_t kTitleStringOffset = 0x7FC0; + constexpr uint32_t kTitleStringLength = 20; + memcpy(title_, rom_data_.data() + kTitleStringOffset, kTitleStringLength); + if (rom_data_[kTitleStringOffset + 0x19] == 0) { + version_ = Z3_Version::JP; + } else { + version_ = Z3_Version::US; + } + RETURN_IF_ERROR(gfx::LoadAllPalettes(rom_data_, palette_groups_)); + LoadGfxGroups(); + + // Set is_loaded_ flag and return success + is_loaded_ = true; return absl::OkStatus(); } @@ -423,4 +440,4 @@ void Rom::SaveGroupsToRom() { std::shared_ptr SharedRom::shared_rom_ = nullptr; } // namespace app -} // namespace yaze \ No newline at end of file +} // namespace yaze