add z3 load to Rom::LoadFromPointer

This commit is contained in:
scawful
2024-08-02 18:44:06 -04:00
parent 633015d9bb
commit 19baed50d7

View File

@@ -207,6 +207,23 @@ absl::Status Rom::LoadFromPointer(uchar* data, size_t length) {
"Could not load ROM: parameter `data` is empty."); "Could not load ROM: parameter `data` is empty.");
for (int i = 0; i < length; ++i) rom_data_.push_back(data[i]); 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(); return absl::OkStatus();
} }
@@ -423,4 +440,4 @@ void Rom::SaveGroupsToRom() {
std::shared_ptr<Rom> SharedRom::shared_rom_ = nullptr; std::shared_ptr<Rom> SharedRom::shared_rom_ = nullptr;
} // namespace app } // namespace app
} // namespace yaze } // namespace yaze