From 48ee66665690ab141107238f4ee62a158493788f Mon Sep 17 00:00:00 2001 From: Justin Scofield <47263509+scawful@users.noreply.github.com> Date: Mon, 8 Aug 2022 15:16:20 -0400 Subject: [PATCH] chore: made ROM title offset a constant --- src/app/rom.cc | 6 +++++- src/app/rom.h | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/app/rom.cc b/src/app/rom.cc index c53f32c6..0369b4bd 100644 --- a/src/app/rom.cc +++ b/src/app/rom.cc @@ -576,6 +576,7 @@ absl::Status ROM::LoadFromFile(const absl::string_view& filename) { return absl::InternalError( absl::StrCat("Could not open ROM file: ", filename)); } + size_ = std::filesystem::file_size(filename); rom_data_.resize(size_); for (auto i = 0; i < size_; ++i) { @@ -583,9 +584,12 @@ absl::Status ROM::LoadFromFile(const absl::string_view& filename) { file.read(&byte_to_read, sizeof(char)); rom_data_[i] = byte_to_read; } + + // copy ROM title + memcpy(title, rom_data_.data() + kTitleStringOffset, kTitleStringLength); + file.close(); is_loaded_ = true; - memcpy(title, rom_data_.data() + 32704, 20); // copy ROM title return absl::OkStatus(); } diff --git a/src/app/rom.h b/src/app/rom.h index 9f95f8a2..c0976072 100644 --- a/src/app/rom.h +++ b/src/app/rom.h @@ -36,6 +36,8 @@ constexpr int kMaxLengthCompression = 1024; constexpr int kNintendoMode1 = 0; constexpr int kNintendoMode2 = 1; constexpr int kTile32Num = 4432; +constexpr int kTitleStringOffset = 0x7FC0; +constexpr int kTitleStringLength = 20; constexpr uchar kGraphicsBitmap[8] = {0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01};