add z3_load arg to Rom::LoadFromPointer

This commit is contained in:
scawful
2024-08-07 15:22:27 -04:00
parent 69f1286f2b
commit 47461a567d
3 changed files with 16 additions and 14 deletions

View File

@@ -219,7 +219,7 @@ absl::Status Rom::LoadFromFile(const std::string& filename, bool z3_load) {
return absl::OkStatus(); return absl::OkStatus();
} }
absl::Status Rom::LoadFromPointer(uchar* data, size_t length) { absl::Status Rom::LoadFromPointer(uchar* data, size_t length, bool z3_load) {
if (!data) if (!data)
return absl::InvalidArgumentError( return absl::InvalidArgumentError(
"Could not load ROM: parameter `data` is empty."); "Could not load ROM: parameter `data` is empty.");
@@ -228,6 +228,7 @@ absl::Status Rom::LoadFromPointer(uchar* data, size_t length) {
size_ = length; size_ = length;
if (z3_load) {
// Copy ROM title // Copy ROM title
constexpr uint32_t kTitleStringOffset = 0x7FC0; constexpr uint32_t kTitleStringOffset = 0x7FC0;
constexpr uint32_t kTitleStringLength = 20; constexpr uint32_t kTitleStringLength = 20;
@@ -239,6 +240,7 @@ absl::Status Rom::LoadFromPointer(uchar* data, size_t length) {
} }
RETURN_IF_ERROR(gfx::LoadAllPalettes(rom_data_, palette_groups_)); RETURN_IF_ERROR(gfx::LoadAllPalettes(rom_data_, palette_groups_));
LoadGfxGroups(); LoadGfxGroups();
}
// Set is_loaded_ flag and return success // Set is_loaded_ flag and return success
is_loaded_ = true; is_loaded_ = true;

View File

@@ -171,7 +171,7 @@ class Rom : public core::ExperimentFlags {
* *
*/ */
absl::Status LoadFromFile(const std::string& filename, bool z3_load = true); absl::Status LoadFromFile(const std::string& filename, bool z3_load = true);
absl::Status LoadFromPointer(uchar* data, size_t length); absl::Status LoadFromPointer(uchar* data, size_t length, bool z3_load = true);
absl::Status LoadFromBytes(const Bytes& data); absl::Status LoadFromBytes(const Bytes& data);
/** /**

View File

@@ -33,7 +33,7 @@ using ::testing::TypedEq;
namespace { namespace {
Bytes ExpectCompressOk(Rom& rom, uchar* in, int in_size) { Bytes ExpectCompressOk(Rom& rom, uchar* in, int in_size) {
auto load_status = rom.LoadFromPointer(in, in_size); auto load_status = rom.LoadFromPointer(in, in_size, false);
EXPECT_TRUE(load_status.ok()); EXPECT_TRUE(load_status.ok());
auto compression_status = CompressV3(rom.vector(), 0, in_size); auto compression_status = CompressV3(rom.vector(), 0, in_size);
EXPECT_TRUE(compression_status.ok()); EXPECT_TRUE(compression_status.ok());
@@ -51,7 +51,7 @@ Bytes ExpectDecompressBytesOk(Rom& rom, Bytes& in) {
} }
Bytes ExpectDecompressOk(Rom& rom, uchar* in, int in_size) { Bytes ExpectDecompressOk(Rom& rom, uchar* in, int in_size) {
auto load_status = rom.LoadFromPointer(in, in_size); auto load_status = rom.LoadFromPointer(in, in_size, false);
EXPECT_TRUE(load_status.ok()); EXPECT_TRUE(load_status.ok());
auto decompression_status = DecompressV2(rom.data(), 0, in_size); auto decompression_status = DecompressV2(rom.data(), 0, in_size);
EXPECT_TRUE(decompression_status.ok()); EXPECT_TRUE(decompression_status.ok());