From 0cd59168ccc76e60ea85830262aa74f765da0a0f Mon Sep 17 00:00:00 2001 From: sorgelig Date: Wed, 15 May 2019 22:57:50 +0800 Subject: [PATCH] SNES: detect OBC1 chip. --- support/snes/snes.cpp | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/support/snes/snes.cpp b/support/snes/snes.cpp index bb75f24..734cebd 100644 --- a/support/snes/snes.cpp +++ b/support/snes/snes.cpp @@ -177,25 +177,28 @@ uint8_t* snes_get_header(fileTYPE *f) { //DSP1 hdr[1] |= 0x80; } - else if (buf[addr + Mapper] == 0x20 && buf[addr + RomType] == 0x05) - { //DSP2 - hdr[1] |= 0x90; - } - else if (buf[addr + Mapper] == 0x30 && buf[addr + RomType] == 0x05 && buf[addr + Company] == 0xb2) - { //DSP3 - hdr[1] |= 0xA0; - } - else if (buf[addr + Mapper] == 0x30 && buf[addr + RomType] == 0x03) - { //DSP4 - hdr[1] |= 0xB0; - } + else if (buf[addr + Mapper] == 0x20 && buf[addr + RomType] == 0x05) + { //DSP2 + hdr[1] |= 0x90; + } + else if (buf[addr + Mapper] == 0x30 && buf[addr + RomType] == 0x05 && buf[addr + Company] == 0xb2) + { //DSP3 + hdr[1] |= 0xA0; + } + else if (buf[addr + Mapper] == 0x30 && buf[addr + RomType] == 0x03) + { //DSP4 + hdr[1] |= 0xB0; + } else if (buf[addr + Mapper] == 0x30 && buf[addr + RomType] == 0xf6) - { - //ST010 + { //ST010 hdr[1] |= 0x88; if(buf[addr + RomSize] < 10) hdr[1] |= 0x20; // ST011 //ramsz = 2; } + else if (buf[addr + Mapper] == 0x30 && buf[addr + RomType] == 0x25) + { //OBC1 + hdr[1] |= 0xC0; + } //CX4 4 if (buf[addr + Mapper] == 0x20 && buf[addr + RomType] == 0xf3) @@ -224,7 +227,7 @@ uint8_t* snes_get_header(fileTYPE *f) hdr[1] |= 0x70; } - //1..3,C..F - reserved for other mappers. + //1..3,D..F - reserved for other mappers. hdr[2] = 0;