From 782534fa493f1f352ab821a174f3a8f8598a06b1 Mon Sep 17 00:00:00 2001 From: Miquel Sabaté Solà Date: Sat, 19 Sep 2026 22:06:00 +0200 Subject: header: add more information on unkown mappers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In particular, allow to optionally add the mapper and submapper ID that was found, so it can be displayed to the user. Signed-off-by: Miquel Sabaté Solà --- lib/header/src/lib.rs | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'lib') diff --git a/lib/header/src/lib.rs b/lib/header/src/lib.rs index 7f561a1..4a42685 100644 --- a/lib/header/src/lib.rs +++ b/lib/header/src/lib.rs @@ -57,7 +57,7 @@ pub enum Mapper { Mmc6, Nina001, Nrom, - Unknown, + Unknown(Option, Option), Unrom512, Uxrom, } @@ -81,7 +81,17 @@ impl std::fmt::Display for Mapper { Mapper::Mmc6 => write!(f, "MMC6"), Mapper::Nina001 => write!(f, "NINA 001"), Mapper::Nrom => write!(f, "NROM"), - Mapper::Unknown => write!(f, "unknown"), + Mapper::Unknown(mapper, sub) => match mapper { + Some(mid) => match sub { + Some(sid) => write!( + f, + " (mapper ID: 0x{:02X} - submapper ID: 0x{:02X})", + mid, sid + ), + None => write!(f, " (mapper ID: 0x{:02X})", mid), + }, + None => write!(f, ""), + }, Mapper::Unrom512 => write!(f, "UNROM 512"), Mapper::Uxrom => write!( f, @@ -334,7 +344,7 @@ fn parse_mapper(sixth: Option<&u8>, seventh: Option<&u8>, eighth: Option<&u8>) - get_mapper_from_id(result as usize, 0) } } - None => Mapper::Unknown, + None => Mapper::Unknown(None, None), } } @@ -351,7 +361,7 @@ fn get_mapper_from_id(mapper_id: usize, submapper_id: u8) -> Mapper { 3 => Mapper::Mmc3Acc, 4 => Mapper::Mmc3Nec, 5 => Mapper::Mmc3T9552, - _ => Mapper::Unknown, + _ => Mapper::Unknown(Some(4), Some(submapper_id as usize)), }, 5 => Mapper::Mmc5, 7 => Mapper::Axrom, @@ -362,9 +372,9 @@ fn get_mapper_from_id(mapper_id: usize, submapper_id: u8) -> Mapper { 0 => Mapper::BnromCombo, 1 => Mapper::BnromOnly, 2 => Mapper::Nina001, - _ => Mapper::Unknown, + _ => Mapper::Unknown(Some(34), Some(submapper_id as usize)), }, - _ => Mapper::Unknown, + _ => Mapper::Unknown(Some(mapper_id), Some(submapper_id as usize)), } } -- cgit v1.2.3