Fix Pitfall II not working (fixes #661).

Note that I've refactored all the constructors to prevent this issue from happening again.
It already happened with 3E+/3E, and now DPC/F8.  Also, FA2/FA looked suspicious.
This commit is contained in:
Stephen Anthony 2020-06-10 16:59:27 -02:30
parent b9d0535517
commit 298eea04cf
68 changed files with 183 additions and 126 deletions

View File

@ -14,6 +14,8 @@
6.2 to 6.2.1: (XXX xx, 2020)
* Fixed Pitfall II ROM not working correctly.
* A ROM properties file may now be placed next to the ROM (with the same
name as the ROM, except ending in .pro), and Stella will automatically
apply the properties to the ROM. [NOTE: this was present in 6.2, but

View File

@ -20,8 +20,9 @@
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cartridge0840::Cartridge0840(const ByteBuffer& image, size_t size,
const string& md5, const Settings& settings)
: CartridgeEnhanced(image, size, 8_KB, md5, settings)
const string& md5, const Settings& settings,
size_t bsSize)
: CartridgeEnhanced(image, size, md5, settings, bsSize)
{
}

View File

@ -44,9 +44,10 @@ class Cartridge0840 : public CartridgeEnhanced
@param size The size of the ROM image
@param md5 The md5sum of the ROM image
@param settings A reference to the various settings (read-only)
@param bsSize The size specified by the bankswitching scheme
*/
Cartridge0840(const ByteBuffer& image, size_t size, const string& md5,
const Settings& settings);
const Settings& settings, size_t bsSize = 8_KB);
virtual ~Cartridge0840() = default;
public:

View File

@ -20,7 +20,8 @@
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cartridge2K::Cartridge2K(const ByteBuffer& image, size_t size,
const string& md5, const Settings& settings)
: CartridgeEnhanced(image, size, 2_KB, md5, settings)
const string& md5, const Settings& settings,
size_t bsSize)
: CartridgeEnhanced(image, size, md5, settings, bsSize)
{
}

View File

@ -47,9 +47,10 @@ class Cartridge2K : public CartridgeEnhanced
@param size The size of the ROM image (<= 2048 bytes)
@param md5 The md5sum of the ROM image
@param settings A reference to the various settings (read-only)
@param bsSize The size specified by the bankswitching scheme
*/
Cartridge2K(const ByteBuffer& image, size_t size, const string& md5,
const Settings& settings);
const Settings& settings, size_t bsSize = 2_KB);
virtual ~Cartridge2K() = default;
public:

View File

@ -21,15 +21,10 @@
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cartridge3E::Cartridge3E(const ByteBuffer& image, size_t size,
const string& md5, const Settings& settings)
: Cartridge3E(image, size, BSPF::nextMultipleOf(size, 2_KB), md5, settings)
{
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cartridge3E::Cartridge3E(const ByteBuffer& image, size_t size, size_t bsSize,
const string& md5, const Settings& settings)
: CartridgeEnhanced(image, size, bsSize, md5, settings)
const string& md5, const Settings& settings,
size_t bsSize)
: CartridgeEnhanced(image, size, md5, settings,
bsSize == 0 ? BSPF::nextMultipleOf(size, 2_KB) : bsSize)
{
myBankShift = BANK_SHIFT;
myRamSize = RAM_SIZE;

View File

@ -71,26 +71,13 @@ class Cartridge3E : public CartridgeEnhanced
@param size The size of the ROM image
@param md5 The md5sum of the ROM image
@param settings A reference to the various settings (read-only)
@param bsSize The size specified by the bankswitching scheme
(where 0 means variable-sized ROM)
*/
Cartridge3E(const ByteBuffer& image, size_t size, const string& md5,
const Settings& settings);
const Settings& settings, size_t bsSize = 0);
virtual ~Cartridge3E() = default;
protected:
/**
Create a new cartridge using the specified image and size.
This is an alternate version of the constructor, meant to be used
only by classes inheriting from this class.
@param image Pointer to the ROM image
@param size The size of the ROM image
@param bsSize The size specified by the bankswitching scheme
@param md5 The md5sum of the ROM image
@param settings A reference to the various settings (read-only)
*/
Cartridge3E(const ByteBuffer& image, size_t size, size_t bsSize,
const string& md5, const Settings& settings);
public:
/**

View File

@ -21,8 +21,10 @@
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cartridge3EPlus::Cartridge3EPlus(const ByteBuffer& image, size_t size,
const string& md5, const Settings& settings)
: Cartridge3E(image, size, BSPF::nextMultipleOf(size, 1_KB), md5, settings)
const string& md5, const Settings& settings,
size_t bsSize)
: Cartridge3E(image, size, md5, settings,
bsSize == 0 ? BSPF::nextMultipleOf(size, 1_KB) : bsSize)
{
myBankShift = BANK_SHIFT;
myRamSize = RAM_SIZE;

View File

@ -100,9 +100,11 @@ class Cartridge3EPlus: public Cartridge3E
@param size The size of the ROM image
@param md5 The md5sum of the ROM image
@param settings A reference to the various settings (read-only)
@param bsSize The size specified by the bankswitching scheme
(where 0 means variable-sized ROM)
*/
Cartridge3EPlus(const ByteBuffer& image, size_t size, const string& md5,
const Settings& settings);
const Settings& settings, size_t bsSize = 0);
virtual ~Cartridge3EPlus() = default;
public:

View File

@ -21,8 +21,10 @@
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cartridge3F::Cartridge3F(const ByteBuffer& image, size_t size,
const string& md5, const Settings& settings)
: CartridgeEnhanced(image, size, BSPF::nextPowerOfTwo(size), md5, settings)
const string& md5, const Settings& settings,
size_t bsSize)
: CartridgeEnhanced(image, size, md5, settings,
bsSize == 0 ? BSPF::nextPowerOfTwo(size) : bsSize)
{
myBankShift = BANK_SHIFT;
}

View File

@ -50,9 +50,11 @@ class Cartridge3F : public CartridgeEnhanced
@param size The size of the ROM image
@param md5 The md5sum of the ROM image
@param settings A reference to the various settings (read-only)
@param bsSize The size specified by the bankswitching scheme
(where 0 means variable-sized ROM)
*/
Cartridge3F(const ByteBuffer& image, size_t size, const string& md5,
const Settings& settings);
const Settings& settings, size_t bsSize = 0);
virtual ~Cartridge3F() = default;
public:

View File

@ -20,7 +20,8 @@
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cartridge4K::Cartridge4K(const ByteBuffer& image, size_t size,
const string& md5, const Settings& settings)
: CartridgeEnhanced(image, size, 4_KB, md5, settings)
const string& md5, const Settings& settings,
size_t bsSize)
: CartridgeEnhanced(image, size, md5, settings, bsSize)
{
}

View File

@ -44,9 +44,10 @@ class Cartridge4K : public CartridgeEnhanced
@param size The size of the ROM image
@param md5 The md5sum of the ROM image
@param settings A reference to the various settings (read-only)
@param bsSize The size specified by the bankswitching scheme
*/
Cartridge4K(const ByteBuffer& image, size_t size, const string& md5,
const Settings& settings);
const Settings& settings, size_t bsSize = 4_KB);
virtual ~Cartridge4K() = default;
public:

View File

@ -20,8 +20,9 @@
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cartridge4KSC::Cartridge4KSC(const ByteBuffer& image, size_t size,
const string& md5, const Settings& settings)
: Cartridge4K(image, size, md5, settings)
const string& md5, const Settings& settings,
size_t bsSize)
: Cartridge4K(image, size, md5, settings, bsSize)
{
myRamSize = RAM_SIZE;
}

View File

@ -45,9 +45,10 @@ class Cartridge4KSC : public Cartridge4K
@param size The size of the ROM image
@param md5 The md5sum of the ROM image
@param settings A reference to the various settings (read-only)
@param bsSize The size specified by the bankswitching scheme
*/
Cartridge4KSC(const ByteBuffer& image, size_t size, const string& md5,
const Settings& settings);
const Settings& settings, size_t bsSize = 4_KB);
virtual ~Cartridge4KSC() = default;
public:

View File

@ -20,8 +20,9 @@
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CartridgeBF::CartridgeBF(const ByteBuffer& image, size_t size,
const string& md5, const Settings& settings)
: CartridgeEnhanced(image, size, 256_KB, md5, settings)
const string& md5, const Settings& settings,
size_t bsSize)
: CartridgeEnhanced(image, size, md5, settings, bsSize)
{
}

View File

@ -45,9 +45,10 @@ class CartridgeBF : public CartridgeEnhanced
@param size The size of the ROM image
@param md5 The md5sum of the ROM image
@param settings A reference to the various settings (read-only)
@param bsSize The size specified by the bankswitching scheme
*/
CartridgeBF(const ByteBuffer& image, size_t size, const string& md5,
const Settings& settings);
const Settings& settings, size_t bsSize = 256_KB);
virtual ~CartridgeBF() = default;
public:

View File

@ -20,8 +20,9 @@
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CartridgeBFSC::CartridgeBFSC(const ByteBuffer& image, size_t size,
const string& md5, const Settings& settings)
: CartridgeBF(image, size, md5, settings)
const string& md5, const Settings& settings,
size_t bsSize)
: CartridgeBF(image, size, md5, settings, bsSize)
{
myRamSize = RAM_SIZE;
}

View File

@ -45,9 +45,10 @@ class CartridgeBFSC : public CartridgeBF
@param size The size of the ROM image
@param md5 The md5sum of the ROM image
@param settings A reference to the various settings (read-only)
@param bsSize The size specified by the bankswitching scheme
*/
CartridgeBFSC(const ByteBuffer& image, size_t size, const string& md5,
const Settings& settings);
const Settings& settings, size_t bsSize = 256_KB);
virtual ~CartridgeBFSC() = default;
/**

View File

@ -20,8 +20,9 @@
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CartridgeCV::CartridgeCV(const ByteBuffer& image, size_t size,
const string& md5, const Settings& settings)
: CartridgeEnhanced(image, size, 2_KB, md5, settings)
const string& md5, const Settings& settings,
size_t bsSize)
: CartridgeEnhanced(image, size, md5, settings, bsSize)
{
myBankShift = BANK_SHIFT;
myRamSize = RAM_SIZE;

View File

@ -47,9 +47,10 @@ class CartridgeCV : public CartridgeEnhanced
@param size The size of the ROM image
@param md5 The md5sum of the ROM image
@param settings A reference to the various settings (read-only)
@param bsSize The size specified by the bankswitching scheme
*/
CartridgeCV(const ByteBuffer& image, size_t size, const string& md5,
const Settings& settings);
const Settings& settings, size_t bsSize = 2_KB);
virtual ~CartridgeCV() = default;
public:

View File

@ -20,8 +20,9 @@
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CartridgeDF::CartridgeDF(const ByteBuffer& image, size_t size,
const string& md5, const Settings& settings)
: CartridgeEnhanced(image, size, 128_KB, md5, settings)
const string& md5, const Settings& settings,
size_t bsSize)
: CartridgeEnhanced(image, size, md5, settings, bsSize)
{
}

View File

@ -45,9 +45,10 @@ class CartridgeDF : public CartridgeEnhanced
@param size The size of the ROM image
@param md5 The md5sum of the ROM image
@param settings A reference to the various settings (read-only)
@param bsSize The size specified by the bankswitching scheme
*/
CartridgeDF(const ByteBuffer& image, size_t size, const string& md5,
const Settings& settings);
const Settings& settings, size_t bsSize = 128_KB);
virtual ~CartridgeDF() = default;
public:

View File

@ -20,8 +20,9 @@
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CartridgeDFSC::CartridgeDFSC(const ByteBuffer& image, size_t size,
const string& md5, const Settings& settings)
: CartridgeDF(image, size, md5, settings)
const string& md5, const Settings& settings,
size_t bsSize)
: CartridgeDF(image, size, md5, settings, bsSize)
{
myRamSize = RAM_SIZE;
}

View File

@ -45,9 +45,10 @@ class CartridgeDFSC : public CartridgeDF
@param size The size of the ROM image
@param md5 The md5sum of the ROM image
@param settings A reference to the various settings (read-only)
@param bsSize The size specified by the bankswitching scheme
*/
CartridgeDFSC(const ByteBuffer& image, size_t size, const string& md5,
const Settings& settings);
const Settings& settings, size_t bsSize = 128_KB);
virtual ~CartridgeDFSC() = default;
public:

View File

@ -22,8 +22,9 @@
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CartridgeDPC::CartridgeDPC(const ByteBuffer& image, size_t size,
const string& md5, const Settings& settings)
: CartridgeF8(image, size, md5, settings)
const string& md5, const Settings& settings,
size_t bsSize)
: CartridgeF8(image, size, md5, settings, bsSize)
{
}

View File

@ -46,9 +46,10 @@ class CartridgeDPC : public CartridgeF8
@param size The size of the ROM image
@param md5 The md5sum of the ROM image
@param settings A reference to the various settings (read-only)
@param bsSize The size specified by the bankswitching scheme
*/
CartridgeDPC(const ByteBuffer& image, size_t size, const string& md5,
const Settings& settings);
const Settings& settings, size_t bsSize = 10_KB);
virtual ~CartridgeDPC() = default;
public:

View File

@ -20,8 +20,9 @@
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CartridgeE0::CartridgeE0(const ByteBuffer& image, size_t size,
const string& md5, const Settings& settings)
: CartridgeEnhanced(image, size, 8_KB, md5, settings)
const string& md5, const Settings& settings,
size_t bsSize)
: CartridgeEnhanced(image, size, md5, settings, bsSize)
{
myBankShift = BANK_SHIFT;
}

View File

@ -53,9 +53,10 @@ class CartridgeE0 : public CartridgeEnhanced
@param size The size of the ROM image
@param md5 The md5sum of the ROM image
@param settings A reference to the various settings (read-only)
@param bsSize The size specified by the bankswitching scheme
*/
CartridgeE0(const ByteBuffer& image, size_t size, const string& md5,
const Settings& settings);
const Settings& settings, size_t bsSize = 8_KB);
virtual ~CartridgeE0() = default;
public:

View File

@ -20,8 +20,9 @@
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CartridgeEF::CartridgeEF(const ByteBuffer& image, size_t size,
const string& md5, const Settings& settings)
: CartridgeEnhanced(image, size, 64_KB, md5, settings)
const string& md5, const Settings& settings,
size_t bsSize)
: CartridgeEnhanced(image, size, md5, settings, bsSize)
{
}

View File

@ -45,9 +45,10 @@ class CartridgeEF : public CartridgeEnhanced
@param size The size of the ROM image
@param md5 The md5sum of the ROM image
@param settings A reference to the various settings (read-only)
@param bsSize The size specified by the bankswitching scheme
*/
CartridgeEF(const ByteBuffer& image, size_t size, const string& md5,
const Settings& settings);
const Settings& settings, size_t bsSize = 64_KB);
virtual ~CartridgeEF() = default;
public:

View File

@ -20,8 +20,9 @@
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CartridgeEFSC::CartridgeEFSC(const ByteBuffer& image, size_t size,
const string& md5, const Settings& settings)
: CartridgeEF(image, size, md5, settings)
const string& md5, const Settings& settings,
size_t bsSize)
: CartridgeEF(image, size, md5, settings, bsSize)
{
myRamSize = RAM_SIZE;
}

View File

@ -46,9 +46,10 @@ class CartridgeEFSC : public CartridgeEF
@param size The size of the ROM image
@param md5 The md5sum of the ROM image
@param settings A reference to the various settings (read-only)
@param bsSize The size specified by the bankswitching scheme
*/
CartridgeEFSC(const ByteBuffer& image, size_t size, const string& md5,
const Settings& settings);
const Settings& settings, size_t bsSize = 64_KB);
virtual ~CartridgeEFSC() = default;
public:

View File

@ -21,8 +21,8 @@
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CartridgeEnhanced::CartridgeEnhanced(const ByteBuffer& image, size_t size,
size_t bsSize, const string& md5,
const Settings& settings)
const string& md5, const Settings& settings,
size_t bsSize)
: Cartridge(settings, md5)
{
// ROMs are not always at the 'legal' size for their associated

View File

@ -41,12 +41,13 @@ class CartridgeEnhanced : public Cartridge
@param image Pointer to the ROM image
@param size The size of the ROM image
@param bsSize The size specified by the bankswitching scheme
@param md5 The md5sum of the ROM image
@param settings A reference to the various settings (read-only)
@param bsSize The size specified by the bankswitching scheme
*/
CartridgeEnhanced(const ByteBuffer& image, size_t size, size_t bsSize,
const string& md5, const Settings& settings);
CartridgeEnhanced(const ByteBuffer& image, size_t size,
const string& md5, const Settings& settings,
size_t bsSize);
virtual ~CartridgeEnhanced() = default;
public:

View File

@ -19,8 +19,9 @@
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CartridgeF0::CartridgeF0(const ByteBuffer& image, size_t size,
const string& md5, const Settings& settings)
: CartridgeEnhanced(image, size, 64_KB, md5, settings)
const string& md5, const Settings& settings,
size_t bsSize)
: CartridgeEnhanced(image, size, md5, settings, bsSize)
{
}

View File

@ -42,9 +42,10 @@ class CartridgeF0 : public CartridgeEnhanced
@param size The size of the ROM image
@param md5 The md5sum of the ROM image
@param settings A reference to the various settings (read-only)
@param bsSize The size specified by the bankswitching scheme
*/
CartridgeF0(const ByteBuffer& image, size_t size, const string& md5,
const Settings& settings);
const Settings& settings, size_t bsSize = 64_KB);
virtual ~CartridgeF0() = default;
public:

View File

@ -19,8 +19,9 @@
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CartridgeF4::CartridgeF4(const ByteBuffer& image, size_t size,
const string& md5, const Settings& settings)
: CartridgeEnhanced(image, size, 32_KB, md5, settings)
const string& md5, const Settings& settings,
size_t bsSize)
: CartridgeEnhanced(image, size, md5, settings, bsSize)
{
}

View File

@ -41,9 +41,10 @@ class CartridgeF4 : public CartridgeEnhanced
@param size The size of the ROM image
@param md5 The md5sum of the ROM image
@param settings A reference to the various settings (read-only)
@param bsSize The size specified by the bankswitching scheme
*/
CartridgeF4(const ByteBuffer& image, size_t size, const string& md5,
const Settings& settings);
const Settings& settings, size_t bsSize = 32_KB);
virtual ~CartridgeF4() = default;
public:

View File

@ -19,8 +19,9 @@
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CartridgeF4SC::CartridgeF4SC(const ByteBuffer& image, size_t size,
const string& md5, const Settings& settings)
: CartridgeF4(image, size, md5, settings)
const string& md5, const Settings& settings,
size_t bsSize)
: CartridgeF4(image, size, md5, settings, bsSize)
{
myRamSize = RAM_SIZE;
myRamMask = RAM_SIZE - 1;

View File

@ -42,9 +42,10 @@ class CartridgeF4SC : public CartridgeF4
@param size The size of the ROM image
@param md5 The md5sum of the ROM image
@param settings A reference to the various settings (read-only)
@param bsSize The size specified by the bankswitching scheme
*/
CartridgeF4SC(const ByteBuffer& image, size_t size, const string& md5,
const Settings& settings);
const Settings& settings, size_t bsSize = 32_KB);
virtual ~CartridgeF4SC() = default;
public:

View File

@ -19,8 +19,9 @@
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CartridgeF6::CartridgeF6(const ByteBuffer& image, size_t size,
const string& md5, const Settings& settings)
: CartridgeEnhanced(image, size, 16_KB, md5, settings)
const string& md5, const Settings& settings,
size_t bsSize)
: CartridgeEnhanced(image, size, md5, settings, bsSize)
{
}

View File

@ -41,9 +41,10 @@ class CartridgeF6 : public CartridgeEnhanced
@param size The size of the ROM image
@param md5 The md5sum of the ROM image
@param settings A reference to the various settings (read-only)
@param bsSize The size specified by the bankswitching scheme
*/
CartridgeF6(const ByteBuffer& image, size_t size, const string& md5,
const Settings& settings);
const Settings& settings, size_t bsSize = 16_KB);
virtual ~CartridgeF6() = default;
public:

View File

@ -19,8 +19,9 @@
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CartridgeF6SC::CartridgeF6SC(const ByteBuffer& image, size_t size,
const string& md5, const Settings& settings)
: CartridgeF6(image, size, md5, settings)
const string& md5, const Settings& settings,
size_t bsSize)
: CartridgeF6(image, size, md5, settings, bsSize)
{
myRamSize = RAM_SIZE;
myRamMask = RAM_SIZE - 1;

View File

@ -42,9 +42,10 @@ class CartridgeF6SC : public CartridgeF6
@param size The size of the ROM image
@param md5 The md5sum of the ROM image
@param settings A reference to the various settings (read-only)
@param bsSize The size specified by the bankswitching scheme
*/
CartridgeF6SC(const ByteBuffer& image, size_t size, const string& md5,
const Settings& settings);
const Settings& settings, size_t bsSize = 16_KB);
virtual ~CartridgeF6SC() = default;
public:

View File

@ -19,8 +19,9 @@
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CartridgeF8::CartridgeF8(const ByteBuffer& image, size_t size,
const string& md5, const Settings& settings)
: CartridgeEnhanced(image, size, 8_KB, md5, settings)
const string& md5, const Settings& settings,
size_t bsSize)
: CartridgeEnhanced(image, size, md5, settings, bsSize)
{
}

View File

@ -41,9 +41,10 @@ class CartridgeF8 : public CartridgeEnhanced
@param size The size of the ROM image
@param md5 The md5sum of the ROM image
@param settings A reference to the various settings (read-only)
@param bsSize The size specified by the bankswitching scheme
*/
CartridgeF8(const ByteBuffer& image, size_t size, const string& md5,
const Settings& settings);
const Settings& settings, size_t bsSize = 8_KB);
virtual ~CartridgeF8() = default;
public:

View File

@ -19,8 +19,9 @@
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CartridgeF8SC::CartridgeF8SC(const ByteBuffer& image, size_t size,
const string& md5, const Settings& settings)
: CartridgeF8(image, size, md5, settings)
const string& md5, const Settings& settings,
size_t bsSize)
: CartridgeF8(image, size, md5, settings, bsSize)
{
myRamSize = RAM_SIZE;
}

View File

@ -42,9 +42,10 @@ class CartridgeF8SC : public CartridgeF8
@param size The size of the ROM image
@param md5 The md5sum of the ROM image
@param settings A reference to the various settings (read-only)
@param bsSize The size specified by the bankswitching scheme
*/
CartridgeF8SC(const ByteBuffer& image, size_t size, const string& md5,
const Settings& settings);
const Settings& settings, size_t bsSize = 8_KB);
virtual ~CartridgeF8SC() = default;
public:

View File

@ -20,8 +20,9 @@
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CartridgeFA::CartridgeFA(const ByteBuffer& image, size_t size,
const string& md5, const Settings& settings)
: CartridgeEnhanced(image, size, 12_KB, md5, settings)
const string& md5, const Settings& settings,
size_t bsSize)
: CartridgeEnhanced(image, size, md5, settings, bsSize)
{
myRamSize = RAM_SIZE;
}

View File

@ -45,9 +45,10 @@ class CartridgeFA : public CartridgeEnhanced
@param size The size of the ROM image
@param md5 The md5sum of the ROM image
@param settings A reference to the various settings (read-only)
@param bsSize The size specified by the bankswitching scheme
*/
CartridgeFA(const ByteBuffer& image, size_t size, const string& md5,
const Settings& settings);
const Settings& settings, size_t bsSize = 12_KB);
virtual ~CartridgeFA() = default;
public:

View File

@ -20,8 +20,9 @@
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CartridgeFA2::CartridgeFA2(const ByteBuffer& image, size_t size,
const string& md5, const Settings& settings)
: CartridgeFA(image, size, md5, settings)
const string& md5, const Settings& settings,
size_t bsSize)
: CartridgeFA(image, size, md5, settings, bsSize)
{
// 29/32K version of FA2 has valid data @ 1K - 29K
const uInt8* img_ptr = image.get();

View File

@ -57,9 +57,10 @@ class CartridgeFA2 : public CartridgeFA
@param size The size of the ROM image
@param md5 The md5sum of the ROM image
@param settings A reference to the settings object
@param bsSize The size specified by the bankswitching scheme
*/
CartridgeFA2(const ByteBuffer& image, size_t size, const string& md5,
const Settings& settings);
const Settings& settings, size_t bsSize = 28_KB);
virtual ~CartridgeFA2() = default;
public:

View File

@ -20,8 +20,10 @@
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CartridgeFC::CartridgeFC(const ByteBuffer& image, size_t size,
const string& md5, const Settings& settings)
: CartridgeEnhanced(image, size, BSPF::nextPowerOfTwo(size), md5, settings)
const string& md5, const Settings& settings,
size_t bsSize)
: CartridgeEnhanced(image, size, md5, settings,
bsSize == 0 ? BSPF::nextPowerOfTwo(size) : bsSize)
{
}

View File

@ -47,9 +47,11 @@ class CartridgeFC : public CartridgeEnhanced
@param size The size of the ROM image
@param md5 The md5sum of the ROM image
@param settings A reference to the various settings (read-only)
@param bsSize The size specified by the bankswitching scheme
(where 0 means variable-sized ROM)
*/
CartridgeFC(const ByteBuffer& image, size_t size, const string& md5,
const Settings& settings);
const Settings& settings, size_t bsSize = 0);
virtual ~CartridgeFC() = default;
public:

View File

@ -21,8 +21,9 @@
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CartridgeFE::CartridgeFE(const ByteBuffer& image, size_t size,
const string& md5, const Settings& settings)
: CartridgeEnhanced(image, size, 8_KB, md5, settings)
const string& md5, const Settings& settings,
size_t bsSize)
: CartridgeEnhanced(image, size, md5, settings, bsSize)
{
myDirectPeek = false;
}

View File

@ -87,9 +87,10 @@ class CartridgeFE : public CartridgeEnhanced
@param size The size of the ROM image
@param md5 The md5sum of the ROM image
@param settings A reference to the various settings (read-only)
@param bsSize The size specified by the bankswitching scheme
*/
CartridgeFE(const ByteBuffer& image, size_t size, const string& md5,
const Settings& settings);
const Settings& settings, size_t bsSize = 8_KB);
virtual ~CartridgeFE() = default;
public:

View File

@ -20,8 +20,10 @@
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CartridgeMDM::CartridgeMDM(const ByteBuffer& image, size_t size,
const string& md5, const Settings& settings)
: CartridgeEnhanced(image, size, BSPF::nextPowerOfTwo(size), md5, settings)
const string& md5, const Settings& settings,
size_t bsSize)
: CartridgeEnhanced(image, size, md5, settings,
bsSize == 0 ? BSPF::nextPowerOfTwo(size) : bsSize)
{
}

View File

@ -56,9 +56,11 @@ class CartridgeMDM : public CartridgeEnhanced
@param size The size of the ROM image
@param md5 The md5sum of the ROM image
@param settings A reference to the various settings (read-only)
@param bsSize The size specified by the bankswitching scheme
(where 0 means variable-sized ROM)
*/
CartridgeMDM(const ByteBuffer& image, size_t size, const string& md5,
const Settings& settings);
const Settings& settings, size_t bsSize = 0);
virtual ~CartridgeMDM() = default;
public:

View File

@ -20,8 +20,10 @@
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CartridgeSB::CartridgeSB(const ByteBuffer& image, size_t size,
const string& md5, const Settings& settings)
: CartridgeEnhanced(image, size, BSPF::nextPowerOfTwo(size), md5, settings)
const string& md5, const Settings& settings,
size_t bsSize)
: CartridgeEnhanced(image, size, md5, settings,
bsSize == 0 ? BSPF::nextPowerOfTwo(size) : bsSize)
{
}

View File

@ -45,9 +45,11 @@ class CartridgeSB : public CartridgeEnhanced
@param size The size of the ROM image
@param md5 The md5sum of the ROM image
@param settings A reference to the various settings (read-only)
@param bsSize The size specified by the bankswitching scheme
(where 0 means variable-sized ROM)
*/
CartridgeSB(const ByteBuffer& image, size_t size, const string& md5,
const Settings& settings);
const Settings& settings, size_t bsSize = 0);
virtual ~CartridgeSB() = default;
public:

View File

@ -20,8 +20,9 @@
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CartridgeTVBoy::CartridgeTVBoy(const ByteBuffer& image, size_t size,
const string& md5, const Settings& settings)
: CartridgeEnhanced(image, size, 512_KB, md5, settings)
const string& md5, const Settings& settings,
size_t bsSize)
: CartridgeEnhanced(image, size, md5, settings, bsSize)
{
}

View File

@ -44,9 +44,10 @@ class CartridgeTVBoy : public CartridgeEnhanced
@param size The size of the ROM image
@param md5 The md5sum of the ROM image
@param settings A reference to the various settings (read-only)
@param bsSize The size specified by the bankswitching scheme
*/
CartridgeTVBoy(const ByteBuffer& image, size_t size, const string& md5,
const Settings& settings);
const Settings& settings, size_t bsSize = 512_KB);
virtual ~CartridgeTVBoy() = default;
public:

View File

@ -22,7 +22,7 @@
CartridgeUA::CartridgeUA(const ByteBuffer& image, size_t size,
const string& md5, const Settings& settings,
bool swapHotspots)
: CartridgeEnhanced(image, size, 8_KB, md5, settings),
: CartridgeEnhanced(image, size, md5, settings, 8_KB),
mySwappedHotspots(swapHotspots)
{
}

View File

@ -22,8 +22,9 @@
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CartridgeWD::CartridgeWD(const ByteBuffer& image, size_t size,
const string& md5, const Settings& settings)
: CartridgeEnhanced(image, size, 8_KB, md5, settings)
const string& md5, const Settings& settings,
size_t bsSize)
: CartridgeEnhanced(image, size, md5, settings, bsSize)
{
// Copy the ROM image into my buffer
if(size == 8_KB + 3)

View File

@ -65,9 +65,10 @@ class CartridgeWD : public CartridgeEnhanced
@param size The size of the ROM image
@param md5 The md5sum of the ROM image
@param settings A reference to the various settings (read-only)
@param bsSize The size specified by the bankswitching scheme
*/
CartridgeWD(const ByteBuffer& image, size_t size, const string& md5,
const Settings& settings);
const Settings& settings, size_t bsSize = 8_KB);
virtual ~CartridgeWD() = default;
public:

View File

@ -22,8 +22,9 @@
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CartridgeX07::CartridgeX07(const ByteBuffer& image, size_t size,
const string& md5, const Settings& settings)
: CartridgeEnhanced(image, size, 64_KB, md5, settings)
const string& md5, const Settings& settings,
size_t bsSize)
: CartridgeEnhanced(image, size, md5, settings, bsSize)
{
}

View File

@ -54,9 +54,10 @@ class CartridgeX07 : public CartridgeEnhanced
@param size The size of the ROM image
@param md5 The md5sum of the ROM image
@param settings A reference to the various settings (read-only)
@param bsSize The size specified by the bankswitching scheme
*/
CartridgeX07(const ByteBuffer& image, size_t size, const string& md5,
const Settings& settings);
const Settings& settings, size_t bsSize = 64_KB);
virtual ~CartridgeX07() = default;
public: