Fixed region heuristics for the one Scandanavian SNES game release
This commit is contained in:
byuu
2019-12-28 13:41:57 +09:00
parent 5b29ddbcaa
commit 2551f20f3a
3 changed files with 12 additions and 5 deletions

View File

@@ -29,7 +29,7 @@ using namespace nall;
namespace Emulator { namespace Emulator {
static const string Name = "bsnes"; static const string Name = "bsnes";
static const string Version = "113.2"; static const string Version = "113.3";
static const string Author = "byuu"; static const string Author = "byuu";
static const string License = "GPLv3"; static const string License = "GPLv3";
static const string Website = "https://byuu.org"; static const string Website = "https://byuu.org";

View File

@@ -169,7 +169,7 @@ auto SuperFamicom::region() const -> string {
if(D == 'P') region = {"SNSP-", code, "-EUR"}; if(D == 'P') region = {"SNSP-", code, "-EUR"};
if(D == 'S') region = {"SNSP-", code, "-ESP"}; if(D == 'S') region = {"SNSP-", code, "-ESP"};
if(D == 'U') region = {"SNSP-", code, "-AUS"}; if(D == 'U') region = {"SNSP-", code, "-AUS"};
if(D == 'W') region = {"SNSP-", code, "-SCN"}; if(D == 'X') region = {"SNSP-", code, "-SCN"};
} }
if(!region) { if(!region) {
@@ -187,6 +187,7 @@ auto SuperFamicom::region() const -> string {
if(E == 0x0f) region = {"CAN"}; if(E == 0x0f) region = {"CAN"};
if(E == 0x10) region = {"BRA"}; if(E == 0x10) region = {"BRA"};
if(E == 0x11) region = {"AUS"}; if(E == 0x11) region = {"AUS"};
if(E == 0x12) region = {"SCN"};
} }
return region ? region : "NTSC"; return region ? region : "NTSC";
@@ -194,7 +195,13 @@ auto SuperFamicom::region() const -> string {
auto SuperFamicom::videoRegion() const -> string { auto SuperFamicom::videoRegion() const -> string {
auto region = data[headerAddress + 0x29]; auto region = data[headerAddress + 0x29];
return (region <= 0x01 || region >= 0x0c) ? "NTSC" : "PAL"; if(region == 0x00) return "NTSC"; //JPN
if(region == 0x01) return "NTSC"; //USA
if(region == 0x0b) return "NTSC"; //ROC
if(region == 0x0d) return "NTSC"; //KOR
if(region == 0x0f) return "NTSC"; //CAN
if(region == 0x10) return "NTSC"; //BRA
return "PAL";
} }
auto SuperFamicom::revision() const -> string { auto SuperFamicom::revision() const -> string {
@@ -223,7 +230,7 @@ auto SuperFamicom::revision() const -> string {
if(D == 'P') revision = {"SNSP-", code, "-", F}; if(D == 'P') revision = {"SNSP-", code, "-", F};
if(D == 'S') revision = {"SNSP-", code, "-", F}; if(D == 'S') revision = {"SNSP-", code, "-", F};
if(D == 'U') revision = {"SNSP-", code, "-", F}; if(D == 'U') revision = {"SNSP-", code, "-", F};
if(D == 'W') revision = {"SNSP-", code, "-", F}; if(D == 'X') revision = {"SNSP-", code, "-", F};
} }
if(!revision) { if(!revision) {

View File

@@ -214,7 +214,7 @@ auto CPU::joypadEdge() -> void {
controllerPort1.device->latch(0); controllerPort1.device->latch(0);
controllerPort2.device->latch(0); controllerPort2.device->latch(0);
//shift registers are cleared at start of auto joypad polling //shift registers are flushed at start of auto joypad polling
io.joy1 = ~0; io.joy1 = ~0;
io.joy2 = ~0; io.joy2 = ~0;
io.joy3 = ~0; io.joy3 = ~0;