From 3bc8b1ff7c03d4dfe1503d8114a86ed78e93e0e6 Mon Sep 17 00:00:00 2001 From: Rangi42 Date: Sat, 26 Jul 2025 14:15:05 -0400 Subject: [PATCH] Handle unknown MBCs, since raw numeric values are accepted --- src/fix/mbc.cpp | 6 ++++-- test/fix/bad-mbc-number.err | 2 ++ test/fix/bad-mbc-number.flags | 1 + 3 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 test/fix/bad-mbc-number.err create mode 100644 test/fix/bad-mbc-number.flags diff --git a/src/fix/mbc.cpp b/src/fix/mbc.cpp index edefe990..8ba0a1c2 100644 --- a/src/fix/mbc.cpp +++ b/src/fix/mbc.cpp @@ -96,11 +96,13 @@ static void fatalWithMBCNames(char const *fmt, ...) { } char const *mbc_Name(MbcType type) { - return mbcData[type].first; + auto search = mbcData.find(type); + return search != mbcData.end() ? search->second.first : "(unknown)"; } bool mbc_HasRAM(MbcType type) { - return mbcData[type].second; + auto search = mbcData.find(type); + return search != mbcData.end() && search->second.second; } static void skipWhitespace(char const *&ptr) { diff --git a/test/fix/bad-mbc-number.err b/test/fix/bad-mbc-number.err new file mode 100644 index 00000000..6ae693f5 --- /dev/null +++ b/test/fix/bad-mbc-number.err @@ -0,0 +1,2 @@ +warning: [-Wmbc] + MBC "(unknown)" has no RAM, but RAM size was set to 2 diff --git a/test/fix/bad-mbc-number.flags b/test/fix/bad-mbc-number.flags new file mode 100644 index 00000000..64e444ed --- /dev/null +++ b/test/fix/bad-mbc-number.flags @@ -0,0 +1 @@ +-r 2 -m 42