add z3_load arg to Rom::LoadFromPointer
This commit is contained in:
@@ -219,7 +219,7 @@ absl::Status Rom::LoadFromFile(const std::string& filename, bool z3_load) {
|
||||
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)
|
||||
return absl::InvalidArgumentError(
|
||||
"Could not load ROM: parameter `data` is empty.");
|
||||
@@ -228,17 +228,19 @@ absl::Status Rom::LoadFromPointer(uchar* data, size_t length) {
|
||||
|
||||
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;
|
||||
if (z3_load) {
|
||||
// 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();
|
||||
}
|
||||
RETURN_IF_ERROR(gfx::LoadAllPalettes(rom_data_, palette_groups_));
|
||||
LoadGfxGroups();
|
||||
|
||||
// Set is_loaded_ flag and return success
|
||||
is_loaded_ = true;
|
||||
|
||||
@@ -171,7 +171,7 @@ class Rom : public core::ExperimentFlags {
|
||||
*
|
||||
*/
|
||||
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);
|
||||
|
||||
/**
|
||||
|
||||
@@ -33,7 +33,7 @@ using ::testing::TypedEq;
|
||||
namespace {
|
||||
|
||||
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());
|
||||
auto compression_status = CompressV3(rom.vector(), 0, in_size);
|
||||
EXPECT_TRUE(compression_status.ok());
|
||||
@@ -51,7 +51,7 @@ Bytes ExpectDecompressBytesOk(Rom& rom, Bytes& in) {
|
||||
}
|
||||
|
||||
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());
|
||||
auto decompression_status = DecompressV2(rom.data(), 0, in_size);
|
||||
EXPECT_TRUE(decompression_status.ok());
|
||||
|
||||
Reference in New Issue
Block a user