mirror of https://github.com/stella-emu/stella.git
First pass at implementing a new experimental scheme for a previously unreleased ROM.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3095 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
parent
fb4332a0c7
commit
10fbcdc00c
|
@ -67,6 +67,10 @@ class FBSurfaceSDL2 : public FBSurface
|
||||||
private:
|
private:
|
||||||
void createSurface(uInt32 width, uInt32 height, const uInt32* data);
|
void createSurface(uInt32 width, uInt32 height, const uInt32* data);
|
||||||
|
|
||||||
|
// Copy constructor and assignment operator not supported
|
||||||
|
FBSurfaceSDL2(const FBSurfaceSDL2&);
|
||||||
|
FBSurfaceSDL2& operator = (const FBSurfaceSDL2&);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
FrameBufferSDL2& myFB;
|
FrameBufferSDL2& myFB;
|
||||||
|
|
||||||
|
|
|
@ -57,6 +57,7 @@
|
||||||
#include "CartFE.hxx"
|
#include "CartFE.hxx"
|
||||||
#include "CartMC.hxx"
|
#include "CartMC.hxx"
|
||||||
#include "CartMDM.hxx"
|
#include "CartMDM.hxx"
|
||||||
|
#include "CartPPA.hxx"
|
||||||
#include "CartSB.hxx"
|
#include "CartSB.hxx"
|
||||||
#include "CartUA.hxx"
|
#include "CartUA.hxx"
|
||||||
#include "CartX07.hxx"
|
#include "CartX07.hxx"
|
||||||
|
@ -247,6 +248,8 @@ Cartridge* Cartridge::create(const uInt8* image, uInt32 size, string& md5,
|
||||||
cartridge = new CartridgeMC(image, size, settings);
|
cartridge = new CartridgeMC(image, size, settings);
|
||||||
else if(type == "MDM")
|
else if(type == "MDM")
|
||||||
cartridge = new CartridgeMDM(image, size, settings);
|
cartridge = new CartridgeMDM(image, size, settings);
|
||||||
|
else if(type == "PPA")
|
||||||
|
cartridge = new CartridgePPA(image, size, settings);
|
||||||
else if(type == "UA")
|
else if(type == "UA")
|
||||||
cartridge = new CartridgeUA(image, size, settings);
|
cartridge = new CartridgeUA(image, size, settings);
|
||||||
else if(type == "SB")
|
else if(type == "SB")
|
||||||
|
@ -418,6 +421,10 @@ string Cartridge::autodetectType(const uInt8* image, uInt32 size)
|
||||||
else
|
else
|
||||||
type = "F8";
|
type = "F8";
|
||||||
}
|
}
|
||||||
|
else if(size == 8*1024 + 3) // 8195 byte - Pink Panther Prototype
|
||||||
|
{
|
||||||
|
type = "PPA";
|
||||||
|
}
|
||||||
else if(size >= 10240 && size <= 10496) // ~10K - Pitfall2
|
else if(size >= 10240 && size <= 10496) // ~10K - Pitfall2
|
||||||
{
|
{
|
||||||
type = "DPC";
|
type = "DPC";
|
||||||
|
@ -697,7 +704,7 @@ bool Cartridge::isProbablyCV(const uInt8* image, uInt32 size)
|
||||||
bool Cartridge::isProbablyDASH(const uInt8* image, uInt32 size)
|
bool Cartridge::isProbablyDASH(const uInt8* image, uInt32 size)
|
||||||
{
|
{
|
||||||
// DASH cart is identified key 'TJAD' in the ROM
|
// DASH cart is identified key 'TJAD' in the ROM
|
||||||
uInt8 signature[] = { 0x54, 0x4a, 0x41, 0x44 };
|
uInt8 signature[] = { 'T', 'J', 'A', 'D' };
|
||||||
return searchForBytes(image, size, signature, 4, 1);
|
return searchForBytes(image, size, signature, 4, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -890,7 +897,7 @@ bool Cartridge::isProbablyFE(const uInt8* image, uInt32 size)
|
||||||
bool Cartridge::isProbablyMDM(const uInt8* image, uInt32 size)
|
bool Cartridge::isProbablyMDM(const uInt8* image, uInt32 size)
|
||||||
{
|
{
|
||||||
// MDM cart is identified key 'MDMC' in the first 4K of ROM
|
// MDM cart is identified key 'MDMC' in the first 4K of ROM
|
||||||
uInt8 signature[] = { 0x4D, 0x44, 0x4D, 0x43 };
|
uInt8 signature[] = { 'M', 'D', 'M', 'C' };
|
||||||
return searchForBytes(image, 4096, signature, 4, 1);
|
return searchForBytes(image, 4096, signature, 4, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -990,6 +997,7 @@ Cartridge::BankswitchType Cartridge::ourBSList[] = {
|
||||||
{ "FE", "FE (8K Decathlon)" },
|
{ "FE", "FE (8K Decathlon)" },
|
||||||
{ "MC", "MC (C. Wilkson Megacart)" },
|
{ "MC", "MC (C. Wilkson Megacart)" },
|
||||||
{ "MDM", "MDM (Menu Driven Megacart)" },
|
{ "MDM", "MDM (Menu Driven Megacart)" },
|
||||||
|
{ "PPA", "PPA (Pink Panther Prototype)" },
|
||||||
{ "SB", "SB (128-256K SUPERbank)" },
|
{ "SB", "SB (128-256K SUPERbank)" },
|
||||||
{ "UA", "UA (8K UA Ltd.)" },
|
{ "UA", "UA (8K UA Ltd.)" },
|
||||||
{ "X07", "X07 (64K AtariAge)" }
|
{ "X07", "X07 (64K AtariAge)" }
|
||||||
|
|
|
@ -216,7 +216,7 @@ class Cartridge : public Device
|
||||||
const char* type;
|
const char* type;
|
||||||
const char* desc;
|
const char* desc;
|
||||||
};
|
};
|
||||||
enum { ourNumBSTypes = 44 };
|
enum { ourNumBSTypes = 45 };
|
||||||
static BankswitchType ourBSList[ourNumBSTypes];
|
static BankswitchType ourBSList[ourNumBSTypes];
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
|
@ -0,0 +1,166 @@
|
||||||
|
//============================================================================
|
||||||
|
//
|
||||||
|
// SSSS tt lll lll
|
||||||
|
// SS SS tt ll ll
|
||||||
|
// SS tttttt eeee ll ll aaaa
|
||||||
|
// SSSS tt ee ee ll ll aa
|
||||||
|
// SS tt eeeeee ll ll aaaaa -- "An Atari 2600 VCS Emulator"
|
||||||
|
// SS SS tt ee ll ll aa aa
|
||||||
|
// SSSS ttt eeeee llll llll aaaaa
|
||||||
|
//
|
||||||
|
// Copyright (c) 1995-2014 by Bradford W. Mott, Stephen Anthony
|
||||||
|
// and the Stella Team
|
||||||
|
//
|
||||||
|
// See the file "License.txt" for information on usage and redistribution of
|
||||||
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
|
//
|
||||||
|
// $Id$
|
||||||
|
//============================================================================
|
||||||
|
|
||||||
|
#include <cstring>
|
||||||
|
|
||||||
|
#include "System.hxx"
|
||||||
|
#include "CartPPA.hxx"
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
CartridgePPA::CartridgePPA(const uInt8* image, uInt32 size,
|
||||||
|
const Settings& settings)
|
||||||
|
: Cartridge(settings)
|
||||||
|
{
|
||||||
|
// Copy the ROM image into my buffer
|
||||||
|
memcpy(myImage, image, BSPF_min(8192u, size));
|
||||||
|
createCodeAccessBase(8192);
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
CartridgePPA::~CartridgePPA()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
void CartridgePPA::reset()
|
||||||
|
{
|
||||||
|
// Setup segments to some default slices
|
||||||
|
bank(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
void CartridgePPA::install(System& system)
|
||||||
|
{
|
||||||
|
mySystem = &system;
|
||||||
|
bank(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
uInt8 CartridgePPA::peek(uInt16 address)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
bool CartridgePPA::poke(uInt16 address, uInt8)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
bool CartridgePPA::bank(uInt16 bank)
|
||||||
|
{
|
||||||
|
if(bankLocked() || bank > 15) return false;
|
||||||
|
|
||||||
|
segmentZero(ourBankOrg[bank].zero);
|
||||||
|
segmentOne(ourBankOrg[bank].one);
|
||||||
|
segmentTwo(ourBankOrg[bank].two);
|
||||||
|
segmentThree(ourBankOrg[bank].three, ourBankOrg[bank].map3bytes);
|
||||||
|
|
||||||
|
return myBankChanged = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
void CartridgePPA::segmentZero(uInt8 slice)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
void CartridgePPA::segmentOne(uInt8 slice)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
void CartridgePPA::segmentTwo(uInt8 slice)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
void CartridgePPA::segmentThree(uInt8 slice, bool map3bytes)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
bool CartridgePPA::patch(uInt16 address, uInt8 value)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
const uInt8* CartridgePPA::getImage(int& size) const
|
||||||
|
{
|
||||||
|
size = 8192;
|
||||||
|
return myImage;
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
bool CartridgePPA::save(Serializer& out) const
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
out.putString(name());
|
||||||
|
out.putByteArray(myCurrentSlice, 4);
|
||||||
|
}
|
||||||
|
catch(...)
|
||||||
|
{
|
||||||
|
cerr << "ERROR: CartridgePPA::save" << endl;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
bool CartridgePPA::load(Serializer& in)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if(in.getString() != name())
|
||||||
|
return false;
|
||||||
|
|
||||||
|
in.getByteArray(myCurrentSlice, 4);
|
||||||
|
}
|
||||||
|
catch(...)
|
||||||
|
{
|
||||||
|
cerr << "ERROR: CartridgePPA::load" << endl;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
CartridgePPA::BankOrg CartridgePPA::ourBankOrg[16] = {
|
||||||
|
{ 0, 0, 1, 2, false },
|
||||||
|
{ 0, 1, 3, 2, false },
|
||||||
|
{ 4, 5, 6, 7, false },
|
||||||
|
{ 7, 4, 3, 2, false },
|
||||||
|
{ 0, 0, 6, 7, false },
|
||||||
|
{ 0, 1, 7, 6, false },
|
||||||
|
{ 3, 2, 4, 5, false },
|
||||||
|
{ 6, 0, 5, 1, false },
|
||||||
|
{ 0, 0, 1, 2, false },
|
||||||
|
{ 0, 1, 3, 2, false },
|
||||||
|
{ 4, 5, 6, 8, false },
|
||||||
|
{ 7, 4, 3, 2, false },
|
||||||
|
{ 0, 0, 6, 7, true },
|
||||||
|
{ 0, 1, 7, 6, true },
|
||||||
|
{ 3, 2, 4, 5, true },
|
||||||
|
{ 6, 0, 5, 1, true }
|
||||||
|
};
|
|
@ -0,0 +1,229 @@
|
||||||
|
//============================================================================
|
||||||
|
//
|
||||||
|
// SSSS tt lll lll
|
||||||
|
// SS SS tt ll ll
|
||||||
|
// SS tttttt eeee ll ll aaaa
|
||||||
|
// SSSS tt ee ee ll ll aa
|
||||||
|
// SS tt eeeeee ll ll aaaaa -- "An Atari 2600 VCS Emulator"
|
||||||
|
// SS SS tt ee ll ll aa aa
|
||||||
|
// SSSS ttt eeeee llll llll aaaaa
|
||||||
|
//
|
||||||
|
// Copyright (c) 1995-2014 by Bradford W. Mott, Stephen Anthony
|
||||||
|
// and the Stella Team
|
||||||
|
//
|
||||||
|
// See the file "License.txt" for information on usage and redistribution of
|
||||||
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
|
//
|
||||||
|
// $Id$
|
||||||
|
//============================================================================
|
||||||
|
|
||||||
|
#ifndef CARTRIDGEPPA_HXX
|
||||||
|
#define CARTRIDGEPPA_HXX
|
||||||
|
|
||||||
|
class System;
|
||||||
|
|
||||||
|
#include "bspf.hxx"
|
||||||
|
#include "Cart.hxx"
|
||||||
|
#ifdef DEBUGGER_SUPPORT
|
||||||
|
// #include "CartPPAWidget.hxx"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
This is the cartridge class for the "Pink Panther" prototype cart.
|
||||||
|
The ROM is normally 8K, but sometimes has an extra 3 bytes appended,
|
||||||
|
to be mapped as described below. There is also 64 bytes of RAM.
|
||||||
|
In this bankswitching scheme the 2600's 4K cartridge address space
|
||||||
|
is broken into four 1K segments. The desired arrangement of 1K slices
|
||||||
|
is selected by accessing $30 - $FF of the first segment. The slices
|
||||||
|
are mapped into all 4 segments at once as follows:
|
||||||
|
|
||||||
|
$0030: 0,0,1,2
|
||||||
|
$0031: 0,1,3,2
|
||||||
|
$0032: 4,5,6,7
|
||||||
|
$0033: 7,4,3,2
|
||||||
|
$0034: 0,0,6,7
|
||||||
|
$0035: 0,1,7,6
|
||||||
|
$0036: 3,2,4,5
|
||||||
|
$0037: 6,0,5,1
|
||||||
|
$0038: 0,0,1,2
|
||||||
|
$0039: 0,1,3,2
|
||||||
|
$003A: 4,5,6,8
|
||||||
|
$003B: 7,4,3,2
|
||||||
|
$003C: 0,0,6,7*
|
||||||
|
$003D: 0,1,7,6*
|
||||||
|
$003E: 3,2,4,5*
|
||||||
|
$003F: 6,0,5,1*
|
||||||
|
|
||||||
|
In the last 4 cases, the extra 3 bytes of ROM past the 8K boundary are
|
||||||
|
mapped into $3FC - $3FE of the uppermost (third) segment.
|
||||||
|
|
||||||
|
The 64 bytes of RAM are accessible at $1000 - $103F (read port) and
|
||||||
|
$1040 - $107F (write port). Note that all the hotspots are in the
|
||||||
|
read port of RAM. Because the RAM takes 128 bytes of address space,
|
||||||
|
the range $1000 - $107F of segment 0 ROM will never be available.
|
||||||
|
|
||||||
|
@author Stephen Anthony
|
||||||
|
*/
|
||||||
|
class CartridgePPA : public Cartridge
|
||||||
|
{
|
||||||
|
friend class CartridgePPAWidget;
|
||||||
|
|
||||||
|
public:
|
||||||
|
/**
|
||||||
|
Create a new cartridge using the specified image
|
||||||
|
|
||||||
|
@param image Pointer to the ROM image
|
||||||
|
@param size The size of the ROM image
|
||||||
|
@param settings A reference to the various settings (read-only)
|
||||||
|
*/
|
||||||
|
CartridgePPA(const uInt8* image, uInt32 size, const Settings& settings);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Destructor
|
||||||
|
*/
|
||||||
|
virtual ~CartridgePPA();
|
||||||
|
|
||||||
|
public:
|
||||||
|
/**
|
||||||
|
Reset device to its power-on state
|
||||||
|
*/
|
||||||
|
void reset();
|
||||||
|
|
||||||
|
/**
|
||||||
|
Install cartridge in the specified system. Invoked by the system
|
||||||
|
when the cartridge is attached to it.
|
||||||
|
|
||||||
|
@param system The system the device should install itself in
|
||||||
|
*/
|
||||||
|
void install(System& system);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Patch the cartridge ROM.
|
||||||
|
|
||||||
|
@param address The ROM address to patch
|
||||||
|
@param value The value to place into the address
|
||||||
|
@return Success or failure of the patch operation
|
||||||
|
*/
|
||||||
|
bool patch(uInt16 address, uInt8 value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Access the internal ROM image for this cartridge.
|
||||||
|
|
||||||
|
@param size Set to the size of the internal ROM image data
|
||||||
|
@return A pointer to the internal ROM image data
|
||||||
|
*/
|
||||||
|
const uInt8* getImage(int& size) const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Save the current state of this cart to the given Serializer.
|
||||||
|
|
||||||
|
@param out The Serializer object to use
|
||||||
|
@return False on any errors, else true
|
||||||
|
*/
|
||||||
|
bool save(Serializer& out) const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Load the current state of this cart from the given Serializer.
|
||||||
|
|
||||||
|
@param in The Serializer object to use
|
||||||
|
@return False on any errors, else true
|
||||||
|
*/
|
||||||
|
bool load(Serializer& in);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Get a descriptor for the device name (used in error checking).
|
||||||
|
|
||||||
|
@return The name of the object
|
||||||
|
*/
|
||||||
|
string name() const { return "CartridgePPA"; }
|
||||||
|
|
||||||
|
#ifdef DEBUGGER_SUPPORT
|
||||||
|
/**
|
||||||
|
Get debugger widget responsible for accessing the inner workings
|
||||||
|
of the cart.
|
||||||
|
*/
|
||||||
|
CartDebugWidget* debugWidget(GuiObject* boss, const GUI::Font& lfont,
|
||||||
|
const GUI::Font& nfont, int x, int y, int w, int h)
|
||||||
|
{
|
||||||
|
return nullptr;//new CartridgePPAWidget(boss, lfont, nfont, x, y, w, h, *this);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
public:
|
||||||
|
/**
|
||||||
|
Get the byte at the specified address.
|
||||||
|
|
||||||
|
@return The byte at the specified address
|
||||||
|
*/
|
||||||
|
uInt8 peek(uInt16 address);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Change the byte at the specified address to the given value.
|
||||||
|
|
||||||
|
@param address The address where the value should be stored
|
||||||
|
@param value The value to be stored at the address
|
||||||
|
@return True if the poke changed the device address space, else false
|
||||||
|
*/
|
||||||
|
bool poke(uInt16 address, uInt8 value);
|
||||||
|
|
||||||
|
private:
|
||||||
|
/**
|
||||||
|
Install slices for all four segments according to the bank index.
|
||||||
|
|
||||||
|
@param bank Index into BankOrg structure
|
||||||
|
*/
|
||||||
|
bool bank(uInt16 bank);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Install the specified slice for segment zero.
|
||||||
|
Note that this method also takes care of mapping RAM.
|
||||||
|
|
||||||
|
@param slice The slice to map into the segment
|
||||||
|
*/
|
||||||
|
void segmentZero(uInt8 slice);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Install the specified slice for segment one.
|
||||||
|
|
||||||
|
@param slice The slice to map into the segment
|
||||||
|
*/
|
||||||
|
void segmentOne(uInt8 slice);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Install the specified slice for segment two.
|
||||||
|
|
||||||
|
@param slice The slice to map into the segment
|
||||||
|
*/
|
||||||
|
void segmentTwo(uInt8 slice);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Install the specified slice for segment three.
|
||||||
|
Note that this method also takes care of mapping extra 3 bytes.
|
||||||
|
|
||||||
|
@param slice The slice to map into the segment
|
||||||
|
@param map3bytes Whether to map in an extra 3 bytes
|
||||||
|
*/
|
||||||
|
void segmentThree(uInt8 slice, bool map3bytes);
|
||||||
|
|
||||||
|
private:
|
||||||
|
// Indicates the slice mapped into each of the four segments
|
||||||
|
uInt8 myCurrentSlice[4];
|
||||||
|
|
||||||
|
// The 8K ROM image of the cartridge
|
||||||
|
uInt8 myImage[8192];
|
||||||
|
|
||||||
|
// The 64 bytes RAM of the cartridge
|
||||||
|
uInt8 myRAM[64];
|
||||||
|
|
||||||
|
// The 1K ROM mirror of segment 3 (sometimes contains extra 3 bytes)
|
||||||
|
uInt8 mySegment3[1024];
|
||||||
|
|
||||||
|
// The arrangement of banks to use on each hotspot read
|
||||||
|
struct BankOrg {
|
||||||
|
uInt8 zero, one, two, three;
|
||||||
|
bool map3bytes;
|
||||||
|
};
|
||||||
|
static BankOrg ourBankOrg[16];
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
|
@ -320,6 +320,11 @@ class FBSurface
|
||||||
|
|
||||||
static void setPalette(const uInt32* palette) { myPalette = palette; }
|
static void setPalette(const uInt32* palette) { myPalette = palette; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
// Copy constructor and assignment operator not supported
|
||||||
|
FBSurface(const FBSurface&);
|
||||||
|
FBSurface& operator = (const FBSurface&);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
static const uInt32* myPalette;
|
static const uInt32* myPalette;
|
||||||
uInt32* myPixels;
|
uInt32* myPixels;
|
||||||
|
|
|
@ -38,6 +38,7 @@ MODULE_OBJS := \
|
||||||
src/emucore/CartFE.o \
|
src/emucore/CartFE.o \
|
||||||
src/emucore/CartMC.o \
|
src/emucore/CartMC.o \
|
||||||
src/emucore/CartMDM.o \
|
src/emucore/CartMDM.o \
|
||||||
|
src/emucore/CartPPA.o \
|
||||||
src/emucore/CartSB.o \
|
src/emucore/CartSB.o \
|
||||||
src/emucore/CartUA.o \
|
src/emucore/CartUA.o \
|
||||||
src/emucore/CartX07.o \
|
src/emucore/CartX07.o \
|
||||||
|
|
Loading…
Reference in New Issue