mirror of https://github.com/stella-emu/stella.git
Some cleanups for moviecart code.
- Compiles in Linux now, and without any warnings or errors - Converted some code to use that already in Stella - Formatting cleanups to match Stella style
This commit is contained in:
parent
8873ffd0b7
commit
9f12d5c16c
|
@ -456,7 +456,7 @@ bool CartDetector::isProbablyCDF(const ByteBuffer& image, size_t size)
|
||||||
// 0x10adab1e (LOADABLE) if needed for future improvement
|
// 0x10adab1e (LOADABLE) if needed for future improvement
|
||||||
uInt8 cdf[] = { 'C', 'D', 'F' };
|
uInt8 cdf[] = { 'C', 'D', 'F' };
|
||||||
uInt8 cdfjplus[] = { 'P', 'L', 'U', 'S', 'C', 'D', 'F', 'J' };
|
uInt8 cdfjplus[] = { 'P', 'L', 'U', 'S', 'C', 'D', 'F', 'J' };
|
||||||
return (searchForBytes(image, size, cdf, 3, 3) ||
|
return (searchForBytes(image, size, cdf, 3, 3) ||
|
||||||
searchForBytes(image, size, cdfjplus, 8, 1));
|
searchForBytes(image, size, cdfjplus, 8, 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -704,11 +704,11 @@ bool CartDetector::isProbablyMVC(const ByteBuffer& image, size_t size)
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
size_t CartDetector::isProbablyMVC(std::istream &in, size_t maxSize)
|
size_t CartDetector::isProbablyMVC(std::istream &in, size_t maxSize)
|
||||||
{
|
{
|
||||||
const size_t frameSize = 2 * MVC_FIELD_PAD_SIZE;
|
const size_t frameSize = 2 * CartridgeMVC::MVC_FIELD_PAD_SIZE;
|
||||||
bool found = false;
|
bool found = false;
|
||||||
|
|
||||||
// Returns size of field if stream is probably an MVC movie cartridge
|
// Returns size of field if stream is probably an MVC movie cartridge
|
||||||
|
|
||||||
if (maxSize >= frameSize)
|
if (maxSize >= frameSize)
|
||||||
{
|
{
|
||||||
auto pos = in.tellg();
|
auto pos = in.tellg();
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -33,26 +33,26 @@ class MovieCart;
|
||||||
|
|
||||||
@author Rob Bairos
|
@author Rob Bairos
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define MVC_FIELD_SIZE 2560 // round field to nearest 512 byte boundary
|
|
||||||
#define MVC_FIELD_PAD_SIZE 4096 // round to nearest 4K
|
|
||||||
|
|
||||||
class CartridgeMVC : public Cartridge
|
class CartridgeMVC : public Cartridge
|
||||||
{
|
{
|
||||||
|
public:
|
||||||
|
static constexpr uInt32
|
||||||
|
MVC_FIELD_SIZE = 2560, // round field to nearest 512 byte boundary
|
||||||
|
MVC_FIELD_PAD_SIZE = 4096; // round to nearest 4K
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
Create a new cartridge using the specified image
|
Create a new cartridge using the specified image
|
||||||
|
|
||||||
@param image Pointer to the ROM image
|
@param path Path to the ROM image file
|
||||||
@param size The size of the ROM image (<= 2048 bytes)
|
@param size The size of the ROM image (<= 2048 bytes)
|
||||||
@param md5 The md5sum of the ROM image
|
@param md5 The md5sum of the ROM image
|
||||||
@param settings A reference to the various settings (read-only)
|
@param settings A reference to the various settings (read-only)
|
||||||
@param bsSize The size specified by the bankswitching scheme
|
@param bsSize The size specified by the bankswitching scheme
|
||||||
*/
|
*/
|
||||||
CartridgeMVC(const string& path, size_t size, const string& md5,
|
CartridgeMVC(const string& path, size_t size, const string& md5,
|
||||||
const Settings& settings, size_t bsSize = 2_KB);
|
const Settings& settings, size_t bsSize = 1_KB);
|
||||||
~CartridgeMVC() override = default;
|
~CartridgeMVC() override;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Reset device to its power-on state
|
Reset device to its power-on state
|
||||||
|
@ -73,7 +73,7 @@ class CartridgeMVC : public Cartridge
|
||||||
@param size Set to the size of the internal ROM image data
|
@param size Set to the size of the internal ROM image data
|
||||||
@return A reference to the internal ROM image data
|
@return A reference to the internal ROM image data
|
||||||
*/
|
*/
|
||||||
virtual const ByteBuffer& getImage(size_t& size) const;
|
const ByteBuffer& getImage(size_t& size) const override;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Patch the cartridge ROM.
|
Patch the cartridge ROM.
|
||||||
|
@ -82,7 +82,7 @@ class CartridgeMVC : public Cartridge
|
||||||
@param value The value to place into the address
|
@param value The value to place into the address
|
||||||
@return Success or failure of the patch operation
|
@return Success or failure of the patch operation
|
||||||
*/
|
*/
|
||||||
virtual bool patch(uInt16 address, uInt8 value);
|
bool patch(uInt16 address, uInt8 value) override;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Get the byte at the specified address.
|
Get the byte at the specified address.
|
||||||
|
@ -113,10 +113,7 @@ class CartridgeMVC : public Cartridge
|
||||||
@param out The Serializer object to use
|
@param out The Serializer object to use
|
||||||
@return False on any errors, else true
|
@return False on any errors, else true
|
||||||
*/
|
*/
|
||||||
bool save(Serializer& out) const override
|
bool save(Serializer& out) const override { return false; }
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Load the current state of this cart from the given Serializer.
|
Load the current state of this cart from the given Serializer.
|
||||||
|
@ -124,49 +121,17 @@ class CartridgeMVC : public Cartridge
|
||||||
@param in The Serializer object to use
|
@param in The Serializer object to use
|
||||||
@return False on any errors, else true
|
@return False on any errors, else true
|
||||||
*/
|
*/
|
||||||
bool load(Serializer& in) override
|
bool load(Serializer& in) override { return false; }
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
Install pages for the specified bank in the system.
|
|
||||||
|
|
||||||
@param bank The bank that should be installed in the system
|
|
||||||
@param segment The segment the bank should be using
|
|
||||||
|
|
||||||
@return true, if bank has changed
|
|
||||||
*/
|
|
||||||
bool bank(uInt16 bank, uInt16 segment = 0) override
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
Get the current bank.
|
|
||||||
|
|
||||||
@param address The address to use when querying the bank
|
|
||||||
*/
|
|
||||||
uInt16 getBank(uInt16 address = 0) const override
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
Query the number of banks supported by the cartridge.
|
|
||||||
*/
|
|
||||||
uInt16 romBankCount() const override
|
|
||||||
{
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
// Currently not used:
|
||||||
// Currently not used:
|
|
||||||
// Pointer to a dynamically allocated ROM image of the cartridge
|
// Pointer to a dynamically allocated ROM image of the cartridge
|
||||||
ByteBuffer myImage{nullptr};
|
ByteBuffer myImage{nullptr};
|
||||||
size_t mySize{0};
|
size_t mySize{0};
|
||||||
|
|
||||||
|
unique_ptr<MovieCart> myMovie;
|
||||||
|
string myPath;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Following constructors and assignment operators not supported
|
// Following constructors and assignment operators not supported
|
||||||
CartridgeMVC() = delete;
|
CartridgeMVC() = delete;
|
||||||
|
@ -174,12 +139,6 @@ class CartridgeMVC : public Cartridge
|
||||||
CartridgeMVC(CartridgeMVC&&) = delete;
|
CartridgeMVC(CartridgeMVC&&) = delete;
|
||||||
CartridgeMVC& operator=(const CartridgeMVC&) = delete;
|
CartridgeMVC& operator=(const CartridgeMVC&) = delete;
|
||||||
CartridgeMVC& operator=(CartridgeMVC&&) = delete;
|
CartridgeMVC& operator=(CartridgeMVC&&) = delete;
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
unique_ptr<MovieCart> myMovie;
|
|
||||||
string myPath;
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -77,6 +77,14 @@ Serializer::Serializer()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
void Serializer::setPosition(size_t pos)
|
||||||
|
{
|
||||||
|
myStream->clear();
|
||||||
|
myStream->seekg(pos);
|
||||||
|
myStream->seekp(pos);
|
||||||
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void Serializer::rewind()
|
void Serializer::rewind()
|
||||||
{
|
{
|
||||||
|
|
|
@ -59,6 +59,11 @@ class Serializer
|
||||||
*/
|
*/
|
||||||
explicit operator bool() const { return myStream != nullptr; }
|
explicit operator bool() const { return myStream != nullptr; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
Sets the read/write location to the given offset in the stream.
|
||||||
|
*/
|
||||||
|
void setPosition(size_t pos);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Resets the read/write location to the beginning of the stream.
|
Resets the read/write location to the beginning of the stream.
|
||||||
*/
|
*/
|
||||||
|
@ -220,13 +225,6 @@ class Serializer
|
||||||
unique_ptr<iostream> myStream;
|
unique_ptr<iostream> myStream;
|
||||||
|
|
||||||
static constexpr uInt8 TruePattern = 0xfe, FalsePattern = 0x01;
|
static constexpr uInt8 TruePattern = 0xfe, FalsePattern = 0x01;
|
||||||
|
|
||||||
private:
|
|
||||||
// Following constructors and assignment operators not supported
|
|
||||||
Serializer(const Serializer&) = delete;
|
|
||||||
Serializer(Serializer&&) = delete;
|
|
||||||
Serializer& operator=(const Serializer&) = delete;
|
|
||||||
Serializer& operator=(Serializer&&) = delete;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -47,6 +47,7 @@ MODULE_OBJS := \
|
||||||
src/emucore/CartFC.o \
|
src/emucore/CartFC.o \
|
||||||
src/emucore/CartFE.o \
|
src/emucore/CartFE.o \
|
||||||
src/emucore/CartMDM.o \
|
src/emucore/CartMDM.o \
|
||||||
|
src/emucore/CartMVC.o \
|
||||||
src/emucore/CartSB.o \
|
src/emucore/CartSB.o \
|
||||||
src/emucore/CartTVBoy.o \
|
src/emucore/CartTVBoy.o \
|
||||||
src/emucore/CartUA.o \
|
src/emucore/CartUA.o \
|
||||||
|
|
Loading…
Reference in New Issue