add ROM::SaveToFile
This commit is contained in:
@@ -570,6 +570,7 @@ absl::StatusOr<Bytes> ROM::SNES3bppTo8bppSheet(Bytes sheet, int size) {
|
||||
}
|
||||
|
||||
absl::Status ROM::LoadFromFile(const absl::string_view& filename) {
|
||||
filename_ = filename;
|
||||
std::ifstream file(filename.data(), std::ios::binary);
|
||||
if (!file.is_open()) {
|
||||
return absl::InternalError(
|
||||
@@ -607,6 +608,18 @@ absl::Status ROM::LoadFromBytes(Bytes data) {
|
||||
return absl::OkStatus();
|
||||
}
|
||||
|
||||
absl::Status ROM::SaveToFile() {
|
||||
std::fstream file(filename_.data(), std::ios::binary | std::ios::out);
|
||||
if (!file.is_open()) {
|
||||
return absl::InternalError(
|
||||
absl::StrCat("Could not open ROM file: ", filename_));
|
||||
}
|
||||
for (auto i = 0; i < size_; ++i) {
|
||||
file << rom_data_[i];
|
||||
}
|
||||
return absl::OkStatus();
|
||||
}
|
||||
|
||||
// 0-112 -> compressed 3bpp bgr -> (decompressed each) 0x600 chars
|
||||
// 113-114 -> compressed 2bpp -> (decompressed each) 0x800 chars
|
||||
// 115-126 -> uncompressed 3bpp sprites -> (each) 0x600 chars
|
||||
|
||||
Reference in New Issue
Block a user