Skip to content

Commit 712ed9b

Browse files
committed
Fix detection of the Sufami Turbo base cartridge.
The Sufami Turbo base cartridge is listed in the Super Famicom verified dump database, so it did not use the heuristics. It turns out the heuristic detection wouldn't have worked anyway - although the game's header does contain the serial A9PJ, the heuristic revision() method does not report that serial at all. Meanwhile, the serial A9PJ is *also* used by the game Bishoujo Senshi Sailor Moon SuperS - Fuwafuwa Panic, so loading this game would prompt for Sufami Turbo mini-cartridges even though the game could not make use of them. Fixes #323
1 parent 79770f6 commit 712ed9b

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

bsnes/heuristics/super-famicom.cpp

+8-4
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,13 @@ auto SuperFamicom::board() const -> string {
266266
if(headerAddress == 0x40ffb0) mode = "EXHIROM-";
267267
}
268268

269+
//the Sufami Turbo has the non-descriptive label "ADD-ON BASE CASSETE"
270+
//(yes, missing a T), and its serial "A9PJ" is shared with
271+
//Bishoujo Senshi Sailor Moon SuperS - Fuwafuwa Panic (Japan)
272+
//so we identify it with this embedded string
273+
string sufamiSignature = "BANDAI SFC-ADX";
274+
if (string(data.view(0, sufamiSignature.length())) == sufamiSignature) board.append("ST-", mode);
275+
269276
//this game's title ovewrites the map mode with '!' (0x21), but is a LOROM game
270277
if(title() == "YUYU NO QUIZ DE GO!GO") mode = "LOROM-";
271278

@@ -274,10 +281,7 @@ auto SuperFamicom::board() const -> string {
274281
bool epsonRTC = false;
275282
bool sharpRTC = false;
276283

277-
if(serial() == "A9PJ") {
278-
//Sufami Turbo (JPN)
279-
board.append("ST-", mode);
280-
} else if(serial() == "ZBSJ") {
284+
if(serial() == "ZBSJ") {
281285
//BS-X: Sore wa Namae o Nusumareta Machi no Monogatari (JPN)
282286
board.append("BS-MCC-");
283287
} else if(serial() == "042J") {

0 commit comments

Comments
 (0)