diff options
| author | Miquel Sabaté Solà <mssola@mssola.com> | 2026-09-19 22:06:00 +0200 |
|---|---|---|
| committer | Miquel Sabaté Solà <mssola@mssola.com> | 2026-09-19 22:06:00 +0200 |
| commit | 782534fa493f1f352ab821a174f3a8f8598a06b1 (patch) | |
| tree | 1f901e08b1087f7453fed627cba93b8353715e54 | |
| parent | 21489a0a1b465e89d73b86689dc4b8a2a40610f9 (diff) | |
| download | tools.nes-782534fa493f1f352ab821a174f3a8f8598a06b1.tar.gz tools.nes-782534fa493f1f352ab821a174f3a8f8598a06b1.zip | |
header: add more information on unkown mappers
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à <mssola@mssola.com>
| -rw-r--r-- | lib/header/src/lib.rs | 22 |
1 files changed, 16 insertions, 6 deletions
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<usize>, Option<usize>), 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, + "<unknown> (mapper ID: 0x{:02X} - submapper ID: 0x{:02X})", + mid, sid + ), + None => write!(f, "<unknown> (mapper ID: 0x{:02X})", mid), + }, + None => write!(f, "<unknown>"), + }, 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)), } } |
