diff --git a/Changes.txt b/Changes.txt index 366a15a29..46da64b24 100644 --- a/Changes.txt +++ b/Changes.txt @@ -55,6 +55,10 @@ * Added ROM properties for D.K. VCS homebrew ROM, thanks to Andreas Dietrich. + * Added slight improvement for auto-detecting Superchip bankswitching; + the new implementation now works for the NTSC 'Dig Dug' ROM. Special + thanks for SpiceWare for the idea and modified implementation. + * For the Linux/UNIX port: - The settings directory now uses the XDG Base Directory Specification. In most cases, this means that your files will now be stored in diff --git a/src/emucore/Cart.cxx b/src/emucore/Cart.cxx index 8212f498a..64acbb368 100644 --- a/src/emucore/Cart.cxx +++ b/src/emucore/Cart.cxx @@ -574,16 +574,14 @@ bool Cartridge::searchForBytes(const uInt8* image, uInt32 imagesize, // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - bool Cartridge::isProbablySC(const uInt8* image, uInt32 size) { - // We assume a Superchip cart contains the same bytes for its entire - // RAM area; obviously this test will fail if it doesn't - // The RAM area will be the first 256 bytes of each 4K bank + // We assume a Superchip cart repeats the first 128 bytes for the second + // 128 bytes in the RAM area, which is the first 256 bytes of each 4K bank uInt32 banks = size / 4096; for(uInt32 i = 0; i < banks; ++i) { - uInt8 first = image[i*4096]; - for(uInt32 j = 0; j < 256; ++j) + for(uInt32 j = 0; j < 128; ++j) { - if(image[i*4096+j] != first) + if(image[i*4096+j] != image[i*4096+j + 128]) return false; } } diff --git a/src/emucore/DefProps.hxx b/src/emucore/DefProps.hxx index b2ba4810e..8f0092d8d 100644 --- a/src/emucore/DefProps.hxx +++ b/src/emucore/DefProps.hxx @@ -1452,7 +1452,7 @@ static const char* DefProps[DEF_PROPS_SIZE][21] = { { "6d842c96d5a01967be9680080dd5be54", "Activision, David Crane", "AB-035-04", "Pitfall II (1983) (Activision)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }, { "6d8a04ee15951480cb7c466e5951eee0", "Zirok", "", "Kanguru (1983) (Zirok)", "AKA Kangaroo", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }, { "6d9afd70e9369c2a6bff96c4964413b7", "", "", "Time Warp (Unknown) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }, - { "6dda84fb8e442ecf34241ac0d1d91d69", "Atari - GCC, Douglas B. Macrae", "CX2677", "Dig Dug (1983) (Atari)", "", "", "", "F6SC", "", "", "", "", "", "", "", "", "", "", "", "", "" }, + { "6dda84fb8e442ecf34241ac0d1d91d69", "Atari - GCC, Douglas B. Macrae", "CX2677", "Dig Dug (1983) (Atari)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }, { "6de924c2297c8733524952448d54a33c", "CCE", "C-1006", "Moon Patrol (1983) (CCE)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }, { "6dfad2dd2c7c16ac0fa257b6ce0be2f0", "Parker Brothers, Larry Gelberg, Gary Goltz", "PB5065", "Star Wars - Ewok Adventure (1983) (Parker Bros) (Prototype) (PAL)", "", "Prototype", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }, { "6e179eee3d4631a7434d40cf7aeea6e8", "Wizard Video Games, Robert Barber, Tim Martin", "007", "Halloween (1983) (Wizard Video Games) (Prototype)", "", "Prototype", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }, diff --git a/src/emucore/stella.pro b/src/emucore/stella.pro index e771835e0..f1d4e0d3b 100644 --- a/src/emucore/stella.pro +++ b/src/emucore/stella.pro @@ -8760,7 +8760,6 @@ "Cartridge.Manufacturer" "Atari - GCC, Douglas B. Macrae" "Cartridge.ModelNo" "CX2677" "Cartridge.Name" "Dig Dug (1983) (Atari)" -"Cartridge.Type" "F6SC" "" "Cartridge.MD5" "6de924c2297c8733524952448d54a33c"