From e0d4532ae72f4f4fddb86441fcd13d828eb54129 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Magalh=C3=A3es?= <joamag@gmail.com> Date: Mon, 22 Jul 2024 11:16:38 +0100 Subject: [PATCH] chore: support for ROM checksum --- src/rom.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/rom.rs b/src/rom.rs index 99890032..98bdcead 100644 --- a/src/rom.rs +++ b/src/rom.rs @@ -864,6 +864,18 @@ impl Cartridge { self.game_shark = None; } + pub fn checksum(&self) -> u8 { + let mut sum: u8 = 0; + for i in 0x0134..=0x014c { + sum = sum.wrapping_sub(self.rom_data[i]).wrapping_sub(1); + } + sum + } + + pub fn valid_checksum(&self) -> bool { + self.rom_data[0x014d] == self.checksum() + } + pub fn description(&self, column_length: usize) -> String { let title_l = format!("{:width$}", "Title", width = column_length); let publisher_l = format!("{:width$}", "Publisher", width = column_length); -- GitLab