mirror of https://github.com/stella-emu/stella.git
Major update to the palette support. Internally, all palette info
now belongs to the Console class. A single user definable palette can now be automatically loaded. This new palette file must be named 'stella.pal', and located in the app base directory ($HOME/.stella for Linux, installation dir for Win32). The new palette file must be at least 768 bytes (only the first 768 bytes are used). The first 384 bytes are 128 red-green-blue 8-bit values, or 24-bits per pixel for NTSC. The next 384 bytes/128 colours are the same, except for PAL. The PAL colour-loss palette is automatically calculated from these, so it's not necessary to do so in the palette file. Added 'user' to the list of options that can be specified for '-palette', and also added the option to the VideoDialog. git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1154 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
parent
d5ecdd6f66
commit
d536cb06ea
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: Console.cxx,v 1.100 2006-11-19 20:59:29 stephena Exp $
|
// $Id: Console.cxx,v 1.101 2006-11-25 01:34:34 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
@ -65,7 +65,10 @@
|
||||||
Console::Console(const uInt8* image, uInt32 size, const string& md5,
|
Console::Console(const uInt8* image, uInt32 size, const string& md5,
|
||||||
OSystem* osystem)
|
OSystem* osystem)
|
||||||
: myOSystem(osystem),
|
: myOSystem(osystem),
|
||||||
myIsInitializedFlag(false)
|
myIsInitializedFlag(false),
|
||||||
|
myUserPaletteDefined(false),
|
||||||
|
ourUserNTSCPalette(NULL),
|
||||||
|
ourUserPALPalette(NULL)
|
||||||
{
|
{
|
||||||
myControllers[0] = 0;
|
myControllers[0] = 0;
|
||||||
myControllers[1] = 0;
|
myControllers[1] = 0;
|
||||||
|
@ -83,6 +86,9 @@ Console::Console(const uInt8* image, uInt32 size, const string& md5,
|
||||||
// A developer can override properties from the commandline
|
// A developer can override properties from the commandline
|
||||||
setDeveloperProperties();
|
setDeveloperProperties();
|
||||||
|
|
||||||
|
// Load user-defined palette for this ROM
|
||||||
|
loadUserPalette();
|
||||||
|
|
||||||
// Make sure height is set properly for PAL ROM
|
// Make sure height is set properly for PAL ROM
|
||||||
if(myProperties.get(Display_Format).compare(0, 3, "PAL") == 0)
|
if(myProperties.get(Display_Format).compare(0, 3, "PAL") == 0)
|
||||||
if(myProperties.get(Display_Height) == "210")
|
if(myProperties.get(Display_Height) == "210")
|
||||||
|
@ -227,14 +233,6 @@ Console::Console(const uInt8* image, uInt32 size, const string& md5,
|
||||||
mySystem->reset();
|
mySystem->reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
Console::Console(const Console& console)
|
|
||||||
: myOSystem(console.myOSystem)
|
|
||||||
{
|
|
||||||
// TODO: Write this method
|
|
||||||
assert(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
Console::~Console()
|
Console::~Console()
|
||||||
{
|
{
|
||||||
|
@ -246,6 +244,9 @@ Console::~Console()
|
||||||
delete mySwitches;
|
delete mySwitches;
|
||||||
delete myControllers[0];
|
delete myControllers[0];
|
||||||
delete myControllers[1];
|
delete myControllers[1];
|
||||||
|
|
||||||
|
delete[] ourUserNTSCPalette;
|
||||||
|
delete[] ourUserPALPalette;
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
@ -254,15 +255,6 @@ const Properties& Console::properties() const
|
||||||
return myProperties;
|
return myProperties;
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
Console& Console::operator = (const Console&)
|
|
||||||
{
|
|
||||||
// TODO: Write this method
|
|
||||||
assert(false);
|
|
||||||
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void Console::toggleFormat()
|
void Console::toggleFormat()
|
||||||
{
|
{
|
||||||
|
@ -291,58 +283,80 @@ void Console::toggleFormat()
|
||||||
framerate = 60;
|
framerate = 60;
|
||||||
}
|
}
|
||||||
|
|
||||||
setPalette();
|
setPalette(myOSystem->settings().getString("palette"));
|
||||||
myOSystem->setFramerate(framerate);
|
myOSystem->setFramerate(framerate);
|
||||||
myOSystem->sound().setFrameRate(framerate);
|
myOSystem->sound().setFrameRate(framerate);
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void Console::togglePalette(const string& palette)
|
void Console::togglePalette()
|
||||||
{
|
{
|
||||||
string message, type;
|
string palette, message;
|
||||||
|
palette = myOSystem->settings().getString("palette");
|
||||||
// Since the toggle cycles in order, if we know which palette to switch
|
|
||||||
// to we set the 'type' to the previous one in the sequence
|
|
||||||
if(palette != "")
|
|
||||||
{
|
|
||||||
if(palette == "Standard")
|
|
||||||
type = "z26";
|
|
||||||
else if(palette == "Original")
|
|
||||||
type = "standard";
|
|
||||||
else if(palette == "Z26")
|
|
||||||
type = "original";
|
|
||||||
else
|
|
||||||
type = "";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
type = myOSystem->settings().getString("palette");
|
|
||||||
|
|
||||||
|
|
||||||
if(type == "standard") // switch to original
|
if(palette == "standard") // switch to original
|
||||||
{
|
{
|
||||||
type = "original";
|
palette = "original";
|
||||||
message = "Original Stella colors";
|
message = "Original Stella colors";
|
||||||
}
|
}
|
||||||
else if(type == "original") // switch to z26
|
else if(palette == "original") // switch to z26
|
||||||
{
|
{
|
||||||
type = "z26";
|
palette = "z26";
|
||||||
message = "Z26 colors";
|
message = "Z26 colors";
|
||||||
}
|
}
|
||||||
else if(type == "z26") // switch to standard
|
else if(palette == "z26") // switch to user or standard
|
||||||
{
|
{
|
||||||
type = "standard";
|
// If we have a user-defined palette, it will come next in
|
||||||
|
// the sequence; otherwise loop back to the standard one
|
||||||
|
if(myUserPaletteDefined)
|
||||||
|
{
|
||||||
|
palette = "user";
|
||||||
|
message = "User-defined Stella colors";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
palette = "standard";
|
||||||
|
message = "Standard Stella colors";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(palette == "user") // switch to standard
|
||||||
|
{
|
||||||
|
palette = "standard";
|
||||||
message = "Standard Stella colors";
|
message = "Standard Stella colors";
|
||||||
}
|
}
|
||||||
else // switch to standard mode if we get this far
|
else // switch to standard mode if we get this far
|
||||||
{
|
{
|
||||||
type = "standard";
|
palette = "standard";
|
||||||
message = "Standard Stella colors";
|
message = "Standard Stella colors";
|
||||||
}
|
}
|
||||||
|
|
||||||
myOSystem->settings().setString("palette", type);
|
myOSystem->settings().setString("palette", palette);
|
||||||
myOSystem->frameBuffer().showMessage(message);
|
myOSystem->frameBuffer().showMessage(message);
|
||||||
|
|
||||||
setPalette();
|
setPalette(palette);
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
void Console::setPalette(const string& type)
|
||||||
|
{
|
||||||
|
// See which format we should be using
|
||||||
|
const string& format = myProperties.get(Display_Format);
|
||||||
|
|
||||||
|
const uInt32* palette = NULL;
|
||||||
|
if(type == "standard")
|
||||||
|
palette = (format.compare(0, 3, "PAL") == 0) ? ourPALPalette : ourNTSCPalette;
|
||||||
|
else if(type == "original")
|
||||||
|
palette = (format.compare(0, 3, "PAL") == 0) ? ourPALPalette11 : ourNTSCPalette11;
|
||||||
|
else if(type == "z26")
|
||||||
|
palette = (format.compare(0, 3, "PAL") == 0) ? ourPALPaletteZ26 : ourNTSCPaletteZ26;
|
||||||
|
else if(type == "user" && myUserPaletteDefined)
|
||||||
|
palette = (format.compare(0, 3, "PAL") == 0) ? ourUserPALPalette : ourUserNTSCPalette;
|
||||||
|
else // return normal palette by default
|
||||||
|
palette = (format.compare(0, 3, "PAL") == 0) ? ourPALPalette : ourNTSCPalette;
|
||||||
|
|
||||||
|
myOSystem->frameBuffer().setPalette(palette);
|
||||||
|
|
||||||
|
// FIXME - maybe add an error message that requested palette not available?
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
@ -365,7 +379,7 @@ void Console::togglePhosphor()
|
||||||
}
|
}
|
||||||
|
|
||||||
myOSystem->frameBuffer().enablePhosphor(enable, blend);
|
myOSystem->frameBuffer().enablePhosphor(enable, blend);
|
||||||
setPalette();
|
// setPalette();
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
@ -460,7 +474,7 @@ void Console::initializeVideo()
|
||||||
bool enable = myProperties.get(Display_Phosphor) == "YES";
|
bool enable = myProperties.get(Display_Phosphor) == "YES";
|
||||||
int blend = atoi(myProperties.get(Display_PPBlend).c_str());
|
int blend = atoi(myProperties.get(Display_PPBlend).c_str());
|
||||||
myOSystem->frameBuffer().enablePhosphor(enable, blend);
|
myOSystem->frameBuffer().enablePhosphor(enable, blend);
|
||||||
setPalette();
|
setPalette(myOSystem->settings().getString("palette"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
@ -469,12 +483,6 @@ void Console::initializeAudio()
|
||||||
myMediaSource->setSound(myOSystem->sound());
|
myMediaSource->setSound(myOSystem->sound());
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
void Console::setPalette()
|
|
||||||
{
|
|
||||||
myOSystem->frameBuffer().setPalette(myMediaSource->palette());
|
|
||||||
}
|
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void Console::setChannels(int channels)
|
void Console::setChannels(int channels)
|
||||||
{
|
{
|
||||||
|
@ -764,3 +772,477 @@ void Console::setDeveloperProperties()
|
||||||
if(s != "")
|
if(s != "")
|
||||||
myProperties.set(Emulation_HmoveBlanks, s);
|
myProperties.set(Emulation_HmoveBlanks, s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
void Console::loadUserPalette()
|
||||||
|
{
|
||||||
|
const string& palette = myOSystem->baseDir() +
|
||||||
|
BSPF_PATH_SEPARATOR + "stella.pal";
|
||||||
|
|
||||||
|
ifstream in(palette.c_str(), ios::binary);
|
||||||
|
if(!in)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// Make sure the contains enough data for both the NTSC and PAL palettes
|
||||||
|
// This means 128 colours each, at 3 bytes per pixel = 768 bytes
|
||||||
|
in.seekg(0, ios::end);
|
||||||
|
streampos length = in.tellg();
|
||||||
|
in.seekg(0, ios::beg);
|
||||||
|
if(length < 128 * 3 * 2)
|
||||||
|
{
|
||||||
|
in.close();
|
||||||
|
cerr << "ERROR: invalid palette file " << palette << endl;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Now that we have valid data, create the user-defined buffers
|
||||||
|
ourUserNTSCPalette = new uInt32[256];
|
||||||
|
ourUserPALPalette = new uInt32[256];
|
||||||
|
uInt8 pixbuf[3]; // Temporary buffer for a palette
|
||||||
|
|
||||||
|
for(int i = 0; i < 128; i++) // NTSC palette
|
||||||
|
{
|
||||||
|
in.read((char*)pixbuf, 3);
|
||||||
|
uInt32 pixel = ((int)pixbuf[0] << 16) + ((int)pixbuf[1] << 8) + (int)pixbuf[2];
|
||||||
|
ourUserNTSCPalette[(i<<1)] = ourUserNTSCPalette[(i<<1)+1] = pixel;
|
||||||
|
}
|
||||||
|
for(int i = 0; i < 128; i++) // PAL palette
|
||||||
|
{
|
||||||
|
in.read((char*)pixbuf, 3);
|
||||||
|
uInt32 pixel1 = ((int)pixbuf[0] << 16) + ((int)pixbuf[1] << 8) + (int)pixbuf[2];
|
||||||
|
int r = (int)((float)pixbuf[0] * 0.2989);
|
||||||
|
int g = (int)((float)pixbuf[1] * 0.5870);
|
||||||
|
int b = (int)((float)pixbuf[2] * 0.1140);
|
||||||
|
uInt32 pixel2 = (r << 16) + (g << 8) + b;
|
||||||
|
ourUserPALPalette[(i<<1)] = pixel1;
|
||||||
|
ourUserPALPalette[(i<<1)+1] = pixel2; // calculated colour-loss effect
|
||||||
|
}
|
||||||
|
|
||||||
|
in.close();
|
||||||
|
myUserPaletteDefined = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
const uInt32 Console::ourNTSCPalette[256] = {
|
||||||
|
0x000000, 0x000000, 0x4a4a4a, 0x4a4a4a,
|
||||||
|
0x6f6f6f, 0x6f6f6f, 0x8e8e8e, 0x8e8e8e,
|
||||||
|
0xaaaaaa, 0xaaaaaa, 0xc0c0c0, 0xc0c0c0,
|
||||||
|
0xd6d6d6, 0xd6d6d6, 0xececec, 0xececec,
|
||||||
|
0x484800, 0x484800, 0x69690f, 0x69690f,
|
||||||
|
0x86861d, 0x86861d, 0xa2a22a, 0xa2a22a,
|
||||||
|
0xbbbb35, 0xbbbb35, 0xd2d240, 0xd2d240,
|
||||||
|
0xe8e84a, 0xe8e84a, 0xfcfc54, 0xfcfc54,
|
||||||
|
0x7c2c00, 0x7c2c00, 0x904811, 0x904811,
|
||||||
|
0xa26221, 0xa26221, 0xb47a30, 0xb47a30,
|
||||||
|
0xc3903d, 0xc3903d, 0xd2a44a, 0xd2a44a,
|
||||||
|
0xdfb755, 0xdfb755, 0xecc860, 0xecc860,
|
||||||
|
0x901c00, 0x901c00, 0xa33915, 0xa33915,
|
||||||
|
0xb55328, 0xb55328, 0xc66c3a, 0xc66c3a,
|
||||||
|
0xd5824a, 0xd5824a, 0xe39759, 0xe39759,
|
||||||
|
0xf0aa67, 0xf0aa67, 0xfcbc74, 0xfcbc74,
|
||||||
|
0x940000, 0x940000, 0xa71a1a, 0xa71a1a,
|
||||||
|
0xb83232, 0xb83232, 0xc84848, 0xc84848,
|
||||||
|
0xd65c5c, 0xd65c5c, 0xe46f6f, 0xe46f6f,
|
||||||
|
0xf08080, 0xf08080, 0xfc9090, 0xfc9090,
|
||||||
|
0x840064, 0x840064, 0x97197a, 0x97197a,
|
||||||
|
0xa8308f, 0xa8308f, 0xb846a2, 0xb846a2,
|
||||||
|
0xc659b3, 0xc659b3, 0xd46cc3, 0xd46cc3,
|
||||||
|
0xe07cd2, 0xe07cd2, 0xec8ce0, 0xec8ce0,
|
||||||
|
0x500084, 0x500084, 0x68199a, 0x68199a,
|
||||||
|
0x7d30ad, 0x7d30ad, 0x9246c0, 0x9246c0,
|
||||||
|
0xa459d0, 0xa459d0, 0xb56ce0, 0xb56ce0,
|
||||||
|
0xc57cee, 0xc57cee, 0xd48cfc, 0xd48cfc,
|
||||||
|
0x140090, 0x140090, 0x331aa3, 0x331aa3,
|
||||||
|
0x4e32b5, 0x4e32b5, 0x6848c6, 0x6848c6,
|
||||||
|
0x7f5cd5, 0x7f5cd5, 0x956fe3, 0x956fe3,
|
||||||
|
0xa980f0, 0xa980f0, 0xbc90fc, 0xbc90fc,
|
||||||
|
0x000094, 0x000094, 0x181aa7, 0x181aa7,
|
||||||
|
0x2d32b8, 0x2d32b8, 0x4248c8, 0x4248c8,
|
||||||
|
0x545cd6, 0x545cd6, 0x656fe4, 0x656fe4,
|
||||||
|
0x7580f0, 0x7580f0, 0x8490fc, 0x8490fc,
|
||||||
|
0x001c88, 0x001c88, 0x183b9d, 0x183b9d,
|
||||||
|
0x2d57b0, 0x2d57b0, 0x4272c2, 0x4272c2,
|
||||||
|
0x548ad2, 0x548ad2, 0x65a0e1, 0x65a0e1,
|
||||||
|
0x75b5ef, 0x75b5ef, 0x84c8fc, 0x84c8fc,
|
||||||
|
0x003064, 0x003064, 0x185080, 0x185080,
|
||||||
|
0x2d6d98, 0x2d6d98, 0x4288b0, 0x4288b0,
|
||||||
|
0x54a0c5, 0x54a0c5, 0x65b7d9, 0x65b7d9,
|
||||||
|
0x75cceb, 0x75cceb, 0x84e0fc, 0x84e0fc,
|
||||||
|
0x004030, 0x004030, 0x18624e, 0x18624e,
|
||||||
|
0x2d8169, 0x2d8169, 0x429e82, 0x429e82,
|
||||||
|
0x54b899, 0x54b899, 0x65d1ae, 0x65d1ae,
|
||||||
|
0x75e7c2, 0x75e7c2, 0x84fcd4, 0x84fcd4,
|
||||||
|
0x004400, 0x004400, 0x1a661a, 0x1a661a,
|
||||||
|
0x328432, 0x328432, 0x48a048, 0x48a048,
|
||||||
|
0x5cba5c, 0x5cba5c, 0x6fd26f, 0x6fd26f,
|
||||||
|
0x80e880, 0x80e880, 0x90fc90, 0x90fc90,
|
||||||
|
0x143c00, 0x143c00, 0x355f18, 0x355f18,
|
||||||
|
0x527e2d, 0x527e2d, 0x6e9c42, 0x6e9c42,
|
||||||
|
0x87b754, 0x87b754, 0x9ed065, 0x9ed065,
|
||||||
|
0xb4e775, 0xb4e775, 0xc8fc84, 0xc8fc84,
|
||||||
|
0x303800, 0x303800, 0x505916, 0x505916,
|
||||||
|
0x6d762b, 0x6d762b, 0x88923e, 0x88923e,
|
||||||
|
0xa0ab4f, 0xa0ab4f, 0xb7c25f, 0xb7c25f,
|
||||||
|
0xccd86e, 0xccd86e, 0xe0ec7c, 0xe0ec7c,
|
||||||
|
0x482c00, 0x482c00, 0x694d14, 0x694d14,
|
||||||
|
0x866a26, 0x866a26, 0xa28638, 0xa28638,
|
||||||
|
0xbb9f47, 0xbb9f47, 0xd2b656, 0xd2b656,
|
||||||
|
0xe8cc63, 0xe8cc63, 0xfce070, 0xfce070
|
||||||
|
};
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
const uInt32 Console::ourPALPalette[256] = {
|
||||||
|
0x000000, 0x000000, 0x2b2b2b, 0x2a2a2a,
|
||||||
|
0x525252, 0x515151, 0x767676, 0x757575,
|
||||||
|
0x979797, 0x969696, 0xb6b6b6, 0xb5b5b5,
|
||||||
|
0xd2d2d2, 0xd1d1d1, 0xececec, 0xebebeb,
|
||||||
|
0x000000, 0x000000, 0x2b2b2b, 0x2a2a2a,
|
||||||
|
0x525252, 0x515151, 0x767676, 0x757575,
|
||||||
|
0x979797, 0x969696, 0xb6b6b6, 0xb5b5b5,
|
||||||
|
0xd2d2d2, 0xd1d1d1, 0xececec, 0xebebeb,
|
||||||
|
0x805800, 0x595959, 0x96711a, 0x727272,
|
||||||
|
0xab8732, 0x888888, 0xbe9c48, 0x9c9c9c,
|
||||||
|
0xcfaf5c, 0xafafaf, 0xdfc06f, 0xc0c0c0,
|
||||||
|
0xeed180, 0xd0d0d0, 0xfce090, 0xdfdfdf,
|
||||||
|
0x445c00, 0x4a4a4a, 0x5e791a, 0x666666,
|
||||||
|
0x769332, 0x7f7f7f, 0x8cac48, 0x979797,
|
||||||
|
0xa0c25c, 0xacacac, 0xb3d76f, 0xc0c0c0,
|
||||||
|
0xc4ea80, 0xd2d2d2, 0xd4fc90, 0xe3e3e3,
|
||||||
|
0x703400, 0x404040, 0x89511a, 0x5b5b5b,
|
||||||
|
0xa06b32, 0x747474, 0xb68448, 0x8c8c8c,
|
||||||
|
0xc99a5c, 0xa0a0a0, 0xdcaf6f, 0xb5b5b5,
|
||||||
|
0xecc280, 0xc7c7c7, 0xfcd490, 0xd8d8d8,
|
||||||
|
0x006414, 0x3c3c3c, 0x1a8035, 0x585858,
|
||||||
|
0x329852, 0x717171, 0x48b06e, 0x898989,
|
||||||
|
0x5cc587, 0x9e9e9e, 0x6fd99e, 0xb2b2b2,
|
||||||
|
0x80ebb4, 0xc4c4c4, 0x90fcc8, 0xd5d5d5,
|
||||||
|
0x700014, 0x232323, 0x891a35, 0x3e3e3e,
|
||||||
|
0xa03252, 0x565656, 0xb6486e, 0x6d6d6d,
|
||||||
|
0xc95c87, 0x818181, 0xdc6f9e, 0x949494,
|
||||||
|
0xec80b4, 0xa6a6a6, 0xfc90c8, 0xb6b6b6,
|
||||||
|
0x005c5c, 0x404040, 0x1a7676, 0x5a5a5a,
|
||||||
|
0x328e8e, 0x727272, 0x48a4a4, 0x888888,
|
||||||
|
0x5cb8b8, 0x9c9c9c, 0x6fcbcb, 0xafafaf,
|
||||||
|
0x80dcdc, 0xc0c0c0, 0x90ecec, 0xd0d0d0,
|
||||||
|
0x70005c, 0x2b2b2b, 0x841a74, 0x434343,
|
||||||
|
0x963289, 0x595959, 0xa8489e, 0x6e6e6e,
|
||||||
|
0xb75cb0, 0x808080, 0xc66fc1, 0x929292,
|
||||||
|
0xd380d1, 0xa2a2a2, 0xe090e0, 0xb1b1b1,
|
||||||
|
0x003c70, 0x2f2f2f, 0x195a89, 0x4b4b4b,
|
||||||
|
0x2f75a0, 0x646464, 0x448eb6, 0x7c7c7c,
|
||||||
|
0x57a5c9, 0x919191, 0x68badc, 0xa5a5a5,
|
||||||
|
0x79ceec, 0xb7b7b7, 0x88e0fc, 0xc8c8c8,
|
||||||
|
0x580070, 0x272727, 0x6e1a89, 0x3f3f3f,
|
||||||
|
0x8332a0, 0x565656, 0x9648b6, 0x6b6b6b,
|
||||||
|
0xa75cc9, 0x7e7e7e, 0xb76fdc, 0x909090,
|
||||||
|
0xc680ec, 0xa1a1a1, 0xd490fc, 0xb0b0b0,
|
||||||
|
0x002070, 0x1f1f1f, 0x193f89, 0x3c3c3c,
|
||||||
|
0x2f5aa0, 0x555555, 0x4474b6, 0x6d6d6d,
|
||||||
|
0x578bc9, 0x828282, 0x68a1dc, 0x969696,
|
||||||
|
0x79b5ec, 0xa9a9a9, 0x88c8fc, 0xbababa,
|
||||||
|
0x340080, 0x1e1e1e, 0x4a1a96, 0x363636,
|
||||||
|
0x5f32ab, 0x4d4d4d, 0x7248be, 0x616161,
|
||||||
|
0x835ccf, 0x747474, 0x936fdf, 0x868686,
|
||||||
|
0xa280ee, 0x969696, 0xb090fc, 0xa5a5a5,
|
||||||
|
0x000088, 0x0f0f0f, 0x1a1a9d, 0x282828,
|
||||||
|
0x3232b0, 0x404040, 0x4848c2, 0x555555,
|
||||||
|
0x5c5cd2, 0x696969, 0x6f6fe1, 0x7b7b7b,
|
||||||
|
0x8080ef, 0x8c8c8c, 0x9090fc, 0x9c9c9c,
|
||||||
|
0x000000, 0x000000, 0x2b2b2b, 0x2a2a2a,
|
||||||
|
0x525252, 0x515151, 0x767676, 0x757575,
|
||||||
|
0x979797, 0x969696, 0xb6b6b6, 0xb5b5b5,
|
||||||
|
0xd2d2d2, 0xd1d1d1, 0xececec, 0xebebeb,
|
||||||
|
0x000000, 0x000000, 0x2b2b2b, 0x2a2a2a,
|
||||||
|
0x525252, 0x515151, 0x767676, 0x757575,
|
||||||
|
0x979797, 0x969696, 0xb6b6b6, 0xb5b5b5,
|
||||||
|
0xd2d2d2, 0xd1d1d1, 0xececec, 0xebebeb
|
||||||
|
};
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
const uInt32 Console::ourNTSCPalette11[256] = {
|
||||||
|
0x000000, 0x000000, 0x393939, 0x393939,
|
||||||
|
0x797979, 0x797979, 0xababab, 0xababab,
|
||||||
|
0xcdcdcd, 0xcdcdcd, 0xe6e6e6, 0xe6e6e6,
|
||||||
|
0xf2f2f2, 0xf2f2f2, 0xffffff, 0xffffff,
|
||||||
|
0x391701, 0x391701, 0x833008, 0x833008,
|
||||||
|
0xc85f24, 0xc85f24, 0xff911d, 0xff911d,
|
||||||
|
0xffc51d, 0xffc51d, 0xffd84c, 0xffd84c,
|
||||||
|
0xfff456, 0xfff456, 0xffff98, 0xffff98,
|
||||||
|
0x451904, 0x451904, 0x9f241e, 0x9f241e,
|
||||||
|
0xc85122, 0xc85122, 0xff811e, 0xff811e,
|
||||||
|
0xff982c, 0xff982c, 0xffc545, 0xffc545,
|
||||||
|
0xffc66d, 0xffc66d, 0xffe4a1, 0xffe4a1,
|
||||||
|
0x4a1704, 0x4a1704, 0xb21d17, 0xb21d17,
|
||||||
|
0xdf251c, 0xdf251c, 0xfa5255, 0xfa5255,
|
||||||
|
0xff706e, 0xff706e, 0xff8f8f, 0xff8f8f,
|
||||||
|
0xffabad, 0xffabad, 0xffc7ce, 0xffc7ce,
|
||||||
|
0x050568, 0x050568, 0x712272, 0x712272,
|
||||||
|
0xa532a6, 0xa532a6, 0xcd3ecf, 0xcd3ecf,
|
||||||
|
0xea51eb, 0xea51eb, 0xfe6dff, 0xfe6dff,
|
||||||
|
0xff87fb, 0xff87fb, 0xffa4ff, 0xffa4ff,
|
||||||
|
0x280479, 0x280479, 0x590f90, 0x590f90,
|
||||||
|
0x8839aa, 0x8839aa, 0xc04adc, 0xc04adc,
|
||||||
|
0xe05eff, 0xe05eff, 0xf27cff, 0xf27cff,
|
||||||
|
0xff98ff, 0xff98ff, 0xfeabff, 0xfeabff,
|
||||||
|
0x35088a, 0x35088a, 0x500cd0, 0x500cd0,
|
||||||
|
0x7945d0, 0x7945d0, 0xa251d9, 0xa251d9,
|
||||||
|
0xbe60ff, 0xbe60ff, 0xcc77ff, 0xcc77ff,
|
||||||
|
0xd790ff, 0xd790ff, 0xdfaaff, 0xdfaaff,
|
||||||
|
0x051e81, 0x051e81, 0x082fca, 0x082fca,
|
||||||
|
0x444cde, 0x444cde, 0x5a68ff, 0x5a68ff,
|
||||||
|
0x7183ff, 0x7183ff, 0x90a0ff, 0x90a0ff,
|
||||||
|
0x9fb2ff, 0x9fb2ff, 0xc0cbff, 0xc0cbff,
|
||||||
|
0x0c048b, 0x0c048b, 0x382db5, 0x382db5,
|
||||||
|
0x584fda, 0x584fda, 0x6b64ff, 0x6b64ff,
|
||||||
|
0x8a84ff, 0x8a84ff, 0x9998ff, 0x9998ff,
|
||||||
|
0xb1aeff, 0xb1aeff, 0xc0c2ff, 0xc0c2ff,
|
||||||
|
0x1d295a, 0x1d295a, 0x1d4892, 0x1d4892,
|
||||||
|
0x1c71c6, 0x1c71c6, 0x489bd9, 0x489bd9,
|
||||||
|
0x55b6ff, 0x55b6ff, 0x8cd8ff, 0x8cd8ff,
|
||||||
|
0x9bdfff, 0x9bdfff, 0xc3e9ff, 0xc3e9ff,
|
||||||
|
0x2f4302, 0x2f4302, 0x446103, 0x446103,
|
||||||
|
0x3e9421, 0x3e9421, 0x57ab3b, 0x57ab3b,
|
||||||
|
0x61d070, 0x61d070, 0x72f584, 0x72f584,
|
||||||
|
0x87ff97, 0x87ff97, 0xadffb6, 0xadffb6,
|
||||||
|
0x0a4108, 0x0a4108, 0x10680d, 0x10680d,
|
||||||
|
0x169212, 0x169212, 0x1cb917, 0x1cb917,
|
||||||
|
0x21d91b, 0x21d91b, 0x6ef040, 0x6ef040,
|
||||||
|
0x83ff5b, 0x83ff5b, 0xb2ff9a, 0xb2ff9a,
|
||||||
|
0x04410b, 0x04410b, 0x066611, 0x066611,
|
||||||
|
0x088817, 0x088817, 0x0baf1d, 0x0baf1d,
|
||||||
|
0x86d922, 0x86d922, 0x99f927, 0x99f927,
|
||||||
|
0xb7ff5b, 0xb7ff5b, 0xdcff81, 0xdcff81,
|
||||||
|
0x02350f, 0x02350f, 0x0c4a1c, 0x0c4a1c,
|
||||||
|
0x4f7420, 0x4f7420, 0x649228, 0x649228,
|
||||||
|
0xa1b034, 0xa1b034, 0xb2d241, 0xb2d241,
|
||||||
|
0xd6e149, 0xd6e149, 0xf2ff53, 0xf2ff53,
|
||||||
|
0x263001, 0x263001, 0x234005, 0x234005,
|
||||||
|
0x806931, 0x806931, 0xaf993a, 0xaf993a,
|
||||||
|
0xd5b543, 0xd5b543, 0xe1cb38, 0xe1cb38,
|
||||||
|
0xe3e534, 0xe3e534, 0xfbff7d, 0xfbff7d,
|
||||||
|
0x401a02, 0x401a02, 0x702408, 0x702408,
|
||||||
|
0xab511f, 0xab511f, 0xbf7730, 0xbf7730,
|
||||||
|
0xe19344, 0xe19344, 0xf9ad58, 0xf9ad58,
|
||||||
|
0xffc160, 0xffc160, 0xffcb83, 0xffcb83
|
||||||
|
};
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
const uInt32 Console::ourPALPalette11[256] = {
|
||||||
|
0x000000, 0x000000, 0x242424, 0x232323,
|
||||||
|
0x484848, 0x474747, 0x6d6d6d, 0x6c6c6c,
|
||||||
|
0x919191, 0x909090, 0xb6b6b6, 0xb5b5b5,
|
||||||
|
0xdadada, 0xd9d9d9, 0xffffff, 0xfefefe,
|
||||||
|
0x000000, 0x000000, 0x242424, 0x232323,
|
||||||
|
0x484848, 0x474747, 0x6d6d6d, 0x6c6c6c,
|
||||||
|
0x919191, 0x909090, 0xb6b6b6, 0xb5b5b5,
|
||||||
|
0xdadada, 0xd9d9d9, 0xffffff, 0xfefefe,
|
||||||
|
0x4a3700, 0x363636, 0x705813, 0x575757,
|
||||||
|
0x8c732a, 0x727272, 0xa68d46, 0x8c8c8c,
|
||||||
|
0xbea767, 0xa6a6a6, 0xd4c18b, 0xc0c0c0,
|
||||||
|
0xeadcb3, 0xdbdbdb, 0xfff6de, 0xf5f5f5,
|
||||||
|
0x284a00, 0x373737, 0x44700f, 0x575757,
|
||||||
|
0x5c8c21, 0x717171, 0x74a638, 0x8a8a8a,
|
||||||
|
0x8cbe51, 0xa2a2a2, 0xa6d46e, 0xbababa,
|
||||||
|
0xc0ea8e, 0xd2d2d2, 0xdbffb0, 0xebebeb,
|
||||||
|
0x4a1300, 0x212121, 0x70280f, 0x3a3a3a,
|
||||||
|
0x8c3d21, 0x515151, 0xa65438, 0x696969,
|
||||||
|
0xbe6d51, 0x828282, 0xd4886e, 0x9b9b9b,
|
||||||
|
0xeaa58e, 0xb6b6b6, 0xffc4b0, 0xd3d3d3,
|
||||||
|
0x004a22, 0x2f2f2f, 0x0f703b, 0x4c4c4c,
|
||||||
|
0x218c52, 0x656565, 0x38a66a, 0x7e7e7e,
|
||||||
|
0x51be83, 0x969696, 0x6ed49d, 0xafafaf,
|
||||||
|
0x8eeab8, 0xc8c8c8, 0xb0ffd4, 0xe2e2e2,
|
||||||
|
0x4a0028, 0x1a1a1a, 0x700f44, 0x323232,
|
||||||
|
0x8c215c, 0x474747, 0xa63874, 0x5f5f5f,
|
||||||
|
0xbe518c, 0x787878, 0xd46ea6, 0x929292,
|
||||||
|
0xea8ec0, 0xafafaf, 0xffb0db, 0xcccccc,
|
||||||
|
0x00404a, 0x2e2e2e, 0x0f6370, 0x4b4b4b,
|
||||||
|
0x217e8c, 0x636363, 0x3897a6, 0x7c7c7c,
|
||||||
|
0x51afbe, 0x949494, 0x6ec7d4, 0xadadad,
|
||||||
|
0x8edeea, 0xc7c7c7, 0xb0f4ff, 0xe0e0e0,
|
||||||
|
0x43002c, 0x191919, 0x650f4b, 0x2f2f2f,
|
||||||
|
0x7e2165, 0x444444, 0x953880, 0x5c5c5c,
|
||||||
|
0xa6519a, 0x727272, 0xbf6eb7, 0x8e8e8e,
|
||||||
|
0xd38ed3, 0xaaaaaa, 0xe5b0f1, 0xc7c7c7,
|
||||||
|
0x001d4a, 0x191919, 0x0f3870, 0x323232,
|
||||||
|
0x21538c, 0x4a4a4a, 0x386ea6, 0x646464,
|
||||||
|
0x518dbe, 0x808080, 0x6ea8d4, 0x9b9b9b,
|
||||||
|
0x8ec8ea, 0xbababa, 0xb0e9ff, 0xdadada,
|
||||||
|
0x37004a, 0x181818, 0x570f70, 0x2f2f2f,
|
||||||
|
0x70218c, 0x444444, 0x8938a6, 0x5c5c5c,
|
||||||
|
0xa151be, 0x757575, 0xba6ed4, 0x909090,
|
||||||
|
0xd28eea, 0xacacac, 0xeab0ff, 0xcacaca,
|
||||||
|
0x00184a, 0x161616, 0x0f2e70, 0x2c2c2c,
|
||||||
|
0x21448c, 0x414141, 0x385ba6, 0x595959,
|
||||||
|
0x5174be, 0x717171, 0x6e8fd4, 0x8c8c8c,
|
||||||
|
0x8eabea, 0xa9a9a9, 0xb0c9ff, 0xc7c7c7,
|
||||||
|
0x13004a, 0x0e0e0e, 0x280f70, 0x212121,
|
||||||
|
0x3d218c, 0x353535, 0x5438a6, 0x4c4c4c,
|
||||||
|
0x6d51be, 0x656565, 0x886ed4, 0x818181,
|
||||||
|
0xa58eea, 0x9f9f9f, 0xc4b0ff, 0xbebebe,
|
||||||
|
0x00014a, 0x090909, 0x0f1170, 0x1b1b1b,
|
||||||
|
0x21248c, 0x2e2e2e, 0x383aa6, 0x454545,
|
||||||
|
0x5153be, 0x5e5e5e, 0x6e70d4, 0x7a7a7a,
|
||||||
|
0x8e8fea, 0x999999, 0xb0b2ff, 0xbababa,
|
||||||
|
0x000000, 0x000000, 0x242424, 0x232323,
|
||||||
|
0x484848, 0x474747, 0x6d6d6d, 0x6c6c6c,
|
||||||
|
0x919191, 0x909090, 0xb6b6b6, 0xb5b5b5,
|
||||||
|
0xdadada, 0xd9d9d9, 0xffffff, 0xfefefe,
|
||||||
|
0x000000, 0x000000, 0x242424, 0x232323,
|
||||||
|
0x484848, 0x474747, 0x6d6d6d, 0x6c6c6c,
|
||||||
|
0x919191, 0x909090, 0xb6b6b6, 0xb5b5b5,
|
||||||
|
0xdadada, 0xd9d9d9, 0xffffff, 0xfefefe
|
||||||
|
};
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
const uInt32 Console::ourNTSCPaletteZ26[256] = {
|
||||||
|
0x000000, 0x000000, 0x505050, 0x505050,
|
||||||
|
0x646464, 0x646464, 0x787878, 0x787878,
|
||||||
|
0x8c8c8c, 0x8c8c8c, 0xa0a0a0, 0xa0a0a0,
|
||||||
|
0xb4b4b4, 0xb4b4b4, 0xc8c8c8, 0xc8c8c8,
|
||||||
|
0x445400, 0x445400, 0x586800, 0x586800,
|
||||||
|
0x6c7c00, 0x6c7c00, 0x809000, 0x809000,
|
||||||
|
0x94a414, 0x94a414, 0xa8b828, 0xa8b828,
|
||||||
|
0xbccc3c, 0xbccc3c, 0xd0e050, 0xd0e050,
|
||||||
|
0x673900, 0x673900, 0x7b4d00, 0x7b4d00,
|
||||||
|
0x8f6100, 0x8f6100, 0xa37513, 0xa37513,
|
||||||
|
0xb78927, 0xb78927, 0xcb9d3b, 0xcb9d3b,
|
||||||
|
0xdfb14f, 0xdfb14f, 0xf3c563, 0xf3c563,
|
||||||
|
0x7b2504, 0x7b2504, 0x8f3918, 0x8f3918,
|
||||||
|
0xa34d2c, 0xa34d2c, 0xb76140, 0xb76140,
|
||||||
|
0xcb7554, 0xcb7554, 0xdf8968, 0xdf8968,
|
||||||
|
0xf39d7c, 0xf39d7c, 0xffb190, 0xffb190,
|
||||||
|
0x7d122c, 0x7d122c, 0x912640, 0x912640,
|
||||||
|
0xa53a54, 0xa53a54, 0xb94e68, 0xb94e68,
|
||||||
|
0xcd627c, 0xcd627c, 0xe17690, 0xe17690,
|
||||||
|
0xf58aa4, 0xf58aa4, 0xff9eb8, 0xff9eb8,
|
||||||
|
0x730871, 0x730871, 0x871c85, 0x871c85,
|
||||||
|
0x9b3099, 0x9b3099, 0xaf44ad, 0xaf44ad,
|
||||||
|
0xc358c1, 0xc358c1, 0xd76cd5, 0xd76cd5,
|
||||||
|
0xeb80e9, 0xeb80e9, 0xff94fd, 0xff94fd,
|
||||||
|
0x5d0b92, 0x5d0b92, 0x711fa6, 0x711fa6,
|
||||||
|
0x8533ba, 0x8533ba, 0x9947ce, 0x9947ce,
|
||||||
|
0xad5be2, 0xad5be2, 0xc16ff6, 0xc16ff6,
|
||||||
|
0xd583ff, 0xd583ff, 0xe997ff, 0xe997ff,
|
||||||
|
0x401599, 0x401599, 0x5429ad, 0x5429ad,
|
||||||
|
0x683dc1, 0x683dc1, 0x7c51d5, 0x7c51d5,
|
||||||
|
0x9065e9, 0x9065e9, 0xa479fd, 0xa479fd,
|
||||||
|
0xb88dff, 0xb88dff, 0xcca1ff, 0xcca1ff,
|
||||||
|
0x252593, 0x252593, 0x3939a7, 0x3939a7,
|
||||||
|
0x4d4dbb, 0x4d4dbb, 0x6161cf, 0x6161cf,
|
||||||
|
0x7575e3, 0x7575e3, 0x8989f7, 0x8989f7,
|
||||||
|
0x9d9dff, 0x9d9dff, 0xb1b1ff, 0xb1b1ff,
|
||||||
|
0x0f3480, 0x0f3480, 0x234894, 0x234894,
|
||||||
|
0x375ca8, 0x375ca8, 0x4b70bc, 0x4b70bc,
|
||||||
|
0x5f84d0, 0x5f84d0, 0x7398e4, 0x7398e4,
|
||||||
|
0x87acf8, 0x87acf8, 0x9bc0ff, 0x9bc0ff,
|
||||||
|
0x04425a, 0x04425a, 0x18566e, 0x18566e,
|
||||||
|
0x2c6a82, 0x2c6a82, 0x407e96, 0x407e96,
|
||||||
|
0x5492aa, 0x5492aa, 0x68a6be, 0x68a6be,
|
||||||
|
0x7cbad2, 0x7cbad2, 0x90cee6, 0x90cee6,
|
||||||
|
0x044f30, 0x044f30, 0x186344, 0x186344,
|
||||||
|
0x2c7758, 0x2c7758, 0x408b6c, 0x408b6c,
|
||||||
|
0x549f80, 0x549f80, 0x68b394, 0x68b394,
|
||||||
|
0x7cc7a8, 0x7cc7a8, 0x90dbbc, 0x90dbbc,
|
||||||
|
0x0f550a, 0x0f550a, 0x23691e, 0x23691e,
|
||||||
|
0x377d32, 0x377d32, 0x4b9146, 0x4b9146,
|
||||||
|
0x5fa55a, 0x5fa55a, 0x73b96e, 0x73b96e,
|
||||||
|
0x87cd82, 0x87cd82, 0x9be196, 0x9be196,
|
||||||
|
0x1f5100, 0x1f5100, 0x336505, 0x336505,
|
||||||
|
0x477919, 0x477919, 0x5b8d2d, 0x5b8d2d,
|
||||||
|
0x6fa141, 0x6fa141, 0x83b555, 0x83b555,
|
||||||
|
0x97c969, 0x97c969, 0xabdd7d, 0xabdd7d,
|
||||||
|
0x344600, 0x344600, 0x485a00, 0x485a00,
|
||||||
|
0x5c6e14, 0x5c6e14, 0x708228, 0x708228,
|
||||||
|
0x84963c, 0x84963c, 0x98aa50, 0x98aa50,
|
||||||
|
0xacbe64, 0xacbe64, 0xc0d278, 0xc0d278,
|
||||||
|
0x463e00, 0x463e00, 0x5a5205, 0x5a5205,
|
||||||
|
0x6e6619, 0x6e6619, 0x827a2d, 0x827a2d,
|
||||||
|
0x968e41, 0x968e41, 0xaaa255, 0xaaa255,
|
||||||
|
0xbeb669, 0xbeb669, 0xd2ca7d, 0xd2ca7d
|
||||||
|
};
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
const uInt32 Console::ourPALPaletteZ26[256] = {
|
||||||
|
0x000000, 0x000000, 0x4c4c4c, 0x4b4b4b,
|
||||||
|
0x606060, 0x5f5f5f, 0x747474, 0x737373,
|
||||||
|
0x888888, 0x878787, 0x9c9c9c, 0x9b9b9b,
|
||||||
|
0xb0b0b0, 0xafafaf, 0xc4c4c4, 0xc3c3c3,
|
||||||
|
0x000000, 0x000000, 0x4c4c4c, 0x4b4b4b,
|
||||||
|
0x606060, 0x5f5f5f, 0x747474, 0x737373,
|
||||||
|
0x888888, 0x878787, 0x9c9c9c, 0x9b9b9b,
|
||||||
|
0xb0b0b0, 0xafafaf, 0xc4c4c4, 0xc3c3c3,
|
||||||
|
0x533a00, 0x3a3a3a, 0x674e00, 0x4c4c4c,
|
||||||
|
0x7b6203, 0x5e5e5e, 0x8f7617, 0x727272,
|
||||||
|
0xa38a2b, 0x868686, 0xb79e3f, 0x9a9a9a,
|
||||||
|
0xcbb253, 0xaeaeae, 0xdfc667, 0xc2c2c2,
|
||||||
|
0x1b5800, 0x3b3b3b, 0x2f6c00, 0x4d4d4d,
|
||||||
|
0x438001, 0x5f5f5f, 0x579415, 0x737373,
|
||||||
|
0x6ba829, 0x878787, 0x7fbc3d, 0x9b9b9b,
|
||||||
|
0x93d051, 0xafafaf, 0xa7e465, 0xc3c3c3,
|
||||||
|
0x6a2900, 0x373737, 0x7e3d12, 0x4b4b4b,
|
||||||
|
0x925126, 0x5f5f5f, 0xa6653a, 0x737373,
|
||||||
|
0xba794e, 0x878787, 0xce8d62, 0x9b9b9b,
|
||||||
|
0xe2a176, 0xafafaf, 0xf6b58a, 0xc3c3c3,
|
||||||
|
0x075b00, 0x373737, 0x1b6f11, 0x4b4b4b,
|
||||||
|
0x2f8325, 0x5f5f5f, 0x439739, 0x737373,
|
||||||
|
0x57ab4d, 0x878787, 0x6bbf61, 0x9b9b9b,
|
||||||
|
0x7fd375, 0xafafaf, 0x93e789, 0xc3c3c3,
|
||||||
|
0x741b2f, 0x373737, 0x882f43, 0x4b4b4b,
|
||||||
|
0x9c4357, 0x5f5f5f, 0xb0576b, 0x737373,
|
||||||
|
0xc46b7f, 0x878787, 0xd87f93, 0x9b9b9b,
|
||||||
|
0xec93a7, 0xafafaf, 0xffa7bb, 0xc3c3c3,
|
||||||
|
0x00572e, 0x383838, 0x106b42, 0x4b4b4b,
|
||||||
|
0x247f56, 0x5f5f5f, 0x38936a, 0x737373,
|
||||||
|
0x4ca77e, 0x878787, 0x60bb92, 0x9b9b9b,
|
||||||
|
0x74cfa6, 0xafafaf, 0x88e3ba, 0xc3c3c3,
|
||||||
|
0x6d165f, 0x383838, 0x812a73, 0x4c4c4c,
|
||||||
|
0x953e87, 0x606060, 0xa9529b, 0x747474,
|
||||||
|
0xbd66af, 0x888888, 0xd17ac3, 0x9c9c9c,
|
||||||
|
0xe58ed7, 0xb0b0b0, 0xf9a2eb, 0xc4c4c4,
|
||||||
|
0x014c5e, 0x373737, 0x156072, 0x4b4b4b,
|
||||||
|
0x297486, 0x5f5f5f, 0x3d889a, 0x737373,
|
||||||
|
0x519cae, 0x878787, 0x65b0c2, 0x9b9b9b,
|
||||||
|
0x79c4d6, 0xafafaf, 0x8dd8ea, 0xc3c3c3,
|
||||||
|
0x5f1588, 0x383838, 0x73299c, 0x4c4c4c,
|
||||||
|
0x873db0, 0x606060, 0x9b51c4, 0x747474,
|
||||||
|
0xaf65d8, 0x888888, 0xc379ec, 0x9c9c9c,
|
||||||
|
0xd78dff, 0xb0b0b0, 0xeba1ff, 0xc1c1c1,
|
||||||
|
0x123b87, 0x373737, 0x264f9b, 0x4b4b4b,
|
||||||
|
0x3a63af, 0x5f5f5f, 0x4e77c3, 0x737373,
|
||||||
|
0x628bd7, 0x878787, 0x769feb, 0x9b9b9b,
|
||||||
|
0x8ab3ff, 0xafafaf, 0x9ec7ff, 0xc1c1c1,
|
||||||
|
0x451e9d, 0x383838, 0x5932b1, 0x4c4c4c,
|
||||||
|
0x6d46c5, 0x606060, 0x815ad9, 0x747474,
|
||||||
|
0x956eed, 0x888888, 0xa982ff, 0x9b9b9b,
|
||||||
|
0xbd96ff, 0xadadad, 0xd1aaff, 0xbfbfbf,
|
||||||
|
0x2a2b9e, 0x373737, 0x3e3fb2, 0x4b4b4b,
|
||||||
|
0x5253c6, 0x5f5f5f, 0x6667da, 0x737373,
|
||||||
|
0x7a7bee, 0x878787, 0x8e8fff, 0x9b9b9b,
|
||||||
|
0xa2a3ff, 0xadadad, 0xb6b7ff, 0xbebebe,
|
||||||
|
0x000000, 0x000000, 0x4c4c4c, 0x4b4b4b,
|
||||||
|
0x606060, 0x5f5f5f, 0x747474, 0x737373,
|
||||||
|
0x888888, 0x878787, 0x9c9c9c, 0x9b9b9b,
|
||||||
|
0xb0b0b0, 0xafafaf, 0xc4c4c4, 0xc3c3c3,
|
||||||
|
0x000000, 0x000000, 0x4c4c4c, 0x4b4b4b,
|
||||||
|
0x606060, 0x5f5f5f, 0x747474, 0x737373,
|
||||||
|
0x888888, 0x878787, 0x9c9c9c, 0x9b9b9b,
|
||||||
|
0xb0b0b0, 0xafafaf, 0xc4c4c4, 0xc3c3c3
|
||||||
|
};
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Console::Console(const Console& console)
|
||||||
|
: myOSystem(console.myOSystem)
|
||||||
|
{
|
||||||
|
// TODO: Write this method
|
||||||
|
assert(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Console& Console::operator = (const Console&)
|
||||||
|
{
|
||||||
|
// TODO: Write this method
|
||||||
|
assert(false);
|
||||||
|
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: Console.hxx,v 1.47 2006-10-22 18:58:46 stephena Exp $
|
// $Id: Console.hxx,v 1.48 2006-11-25 01:34:35 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#ifndef CONSOLE_HXX
|
#ifndef CONSOLE_HXX
|
||||||
|
@ -38,7 +38,7 @@ class System;
|
||||||
This class represents the entire game console.
|
This class represents the entire game console.
|
||||||
|
|
||||||
@author Bradford W. Mott
|
@author Bradford W. Mott
|
||||||
@version $Id: Console.hxx,v 1.47 2006-10-22 18:58:46 stephena Exp $
|
@version $Id: Console.hxx,v 1.48 2006-11-25 01:34:35 stephena Exp $
|
||||||
*/
|
*/
|
||||||
class Console
|
class Console
|
||||||
{
|
{
|
||||||
|
@ -130,21 +130,22 @@ class Console
|
||||||
Console& operator = (const Console& console);
|
Console& operator = (const Console& console);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Toggle between NTSC and PAL mode. The frontends will need to
|
Toggle between NTSC and PAL mode.
|
||||||
reload their palette.
|
|
||||||
*/
|
*/
|
||||||
void toggleFormat();
|
void toggleFormat();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Toggle between the available palettes. The frontends will need to
|
Toggle between the available palettes.
|
||||||
reload their palette.
|
|
||||||
|
|
||||||
@param palette The palette to switch to, or just switch in order
|
|
||||||
if no palette is specified.
|
|
||||||
*/
|
*/
|
||||||
void togglePalette(const string& palette = "");
|
void togglePalette();
|
||||||
|
|
||||||
|
/**
|
||||||
|
Sets the palette according to the given palette name.
|
||||||
|
|
||||||
|
@param palette The palette to switch to.
|
||||||
|
*/
|
||||||
|
void setPalette(const string& palette);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Toggles phosphor effect.
|
Toggles phosphor effect.
|
||||||
|
@ -183,11 +184,6 @@ class Console
|
||||||
*/
|
*/
|
||||||
void initializeAudio();
|
void initializeAudio();
|
||||||
|
|
||||||
/**
|
|
||||||
Sets the palette to that specified in the mediasource
|
|
||||||
*/
|
|
||||||
void setPalette();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Sets the number of sound channels
|
Sets the number of sound channels
|
||||||
|
|
||||||
|
@ -252,6 +248,18 @@ class Console
|
||||||
void toggleTIABit(TIA::TIABit bit, const string& bitname, bool show = true);
|
void toggleTIABit(TIA::TIABit bit, const string& bitname, bool show = true);
|
||||||
void setDeveloperProperties();
|
void setDeveloperProperties();
|
||||||
|
|
||||||
|
/**
|
||||||
|
Loads a user-defined palette file from 'stella.pal', filling the
|
||||||
|
appropriate user-defined palette arrays.
|
||||||
|
*/
|
||||||
|
void loadUserPalette();
|
||||||
|
|
||||||
|
/**
|
||||||
|
Returns a pointer to the palette data for the palette currently defined
|
||||||
|
by the ROM properties.
|
||||||
|
*/
|
||||||
|
const uInt32* getPalette(int direction) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Pointer to the osystem object
|
// Pointer to the osystem object
|
||||||
OSystem* myOSystem;
|
OSystem* myOSystem;
|
||||||
|
@ -288,6 +296,34 @@ class Console
|
||||||
// Indicates whether the console was correctly initialized
|
// Indicates whether the console was correctly initialized
|
||||||
// We don't really care why it wasn't initialized ...
|
// We don't really care why it wasn't initialized ...
|
||||||
bool myIsInitializedFlag;
|
bool myIsInitializedFlag;
|
||||||
|
|
||||||
|
// Indicates whether an external palette was found and
|
||||||
|
// successfully loaded
|
||||||
|
bool myUserPaletteDefined;
|
||||||
|
|
||||||
|
// User-defined NTSC and PAL RGB values
|
||||||
|
uInt32* ourUserNTSCPalette;
|
||||||
|
uInt32* ourUserPALPalette;
|
||||||
|
|
||||||
|
// Table of RGB values for NTSC
|
||||||
|
static const uInt32 ourNTSCPalette[256];
|
||||||
|
|
||||||
|
// Table of RGB values for PAL. NOTE: The odd numbered entries in
|
||||||
|
// this array are always shades of grey. This is used to implement
|
||||||
|
// the PAL color loss effect.
|
||||||
|
static const uInt32 ourPALPalette[256];
|
||||||
|
|
||||||
|
// Table of RGB values for NTSC - Stella 1.1 version
|
||||||
|
static const uInt32 ourNTSCPalette11[256];
|
||||||
|
|
||||||
|
// Table of RGB values for PAL - Stella 1.1 version
|
||||||
|
static const uInt32 ourPALPalette11[256];
|
||||||
|
|
||||||
|
// Table of RGB values for NTSC - Z26 version
|
||||||
|
static const uInt32 ourNTSCPaletteZ26[256];
|
||||||
|
|
||||||
|
// Table of RGB values for PAL - Z26 version
|
||||||
|
static const uInt32 ourPALPaletteZ26[256];
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: FrameBuffer.cxx,v 1.97 2006-11-18 13:29:11 stephena Exp $
|
// $Id: FrameBuffer.cxx,v 1.98 2006-11-25 01:34:35 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
@ -311,13 +311,6 @@ inline void FrameBuffer::drawMessage()
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void FrameBuffer::pause(bool status)
|
void FrameBuffer::pause(bool status)
|
||||||
{
|
{
|
||||||
if(&myOSystem->console() && myOSystem->console().isInitialized())
|
|
||||||
{
|
|
||||||
bool enable = myOSystem->console().properties().get(Display_Phosphor) == "YES";
|
|
||||||
int blend = atoi(myOSystem->console().properties().get(Display_PPBlend).c_str());
|
|
||||||
enablePhosphor(enable, blend);
|
|
||||||
setPalette(myOSystem->console().mediaSource().palette());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: MediaSrc.hxx,v 1.13 2005-10-11 19:38:10 stephena Exp $
|
// $Id: MediaSrc.hxx,v 1.14 2006-11-25 01:34:35 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#ifndef MEDIASOURCE_HXX
|
#ifndef MEDIASOURCE_HXX
|
||||||
|
@ -30,7 +30,7 @@ class Sound;
|
||||||
This class provides an interface for accessing graphics and audio data.
|
This class provides an interface for accessing graphics and audio data.
|
||||||
|
|
||||||
@author Bradford W. Mott
|
@author Bradford W. Mott
|
||||||
@version $Id: MediaSrc.hxx,v 1.13 2005-10-11 19:38:10 stephena Exp $
|
@version $Id: MediaSrc.hxx,v 1.14 2006-11-25 01:34:35 stephena Exp $
|
||||||
*/
|
*/
|
||||||
class MediaSource
|
class MediaSource
|
||||||
{
|
{
|
||||||
|
@ -92,13 +92,6 @@ class MediaSource
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/**
|
|
||||||
Get the palette which maps frame data to RGB values.
|
|
||||||
|
|
||||||
@return Array of integers which represent the palette (RGB)
|
|
||||||
*/
|
|
||||||
virtual const uInt32* palette() const = 0;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Answers the height of the frame buffer
|
Answers the height of the frame buffer
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: Settings.cxx,v 1.91 2006-11-19 00:48:55 stephena Exp $
|
// $Id: Settings.cxx,v 1.92 2006-11-25 01:34:35 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
|
@ -258,7 +258,7 @@ void Settings::validate()
|
||||||
setInternal("pthresh", "800");
|
setInternal("pthresh", "800");
|
||||||
|
|
||||||
s = getString("palette");
|
s = getString("palette");
|
||||||
if(s != "standard" && s != "original" && s != "z26")
|
if(s != "standard" && s != "original" && s != "z26" && s != "user")
|
||||||
setInternal("palette", "standard");
|
setInternal("palette", "standard");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -293,7 +293,8 @@ void Settings::usage()
|
||||||
<< " -grabmouse <1|0> Keeps the mouse in the game window\n"
|
<< " -grabmouse <1|0> Keeps the mouse in the game window\n"
|
||||||
<< " -palette <original| Use the specified color palette\n"
|
<< " -palette <original| Use the specified color palette\n"
|
||||||
<< " standard|\n"
|
<< " standard|\n"
|
||||||
<< " z26>\n"
|
<< " z26|\n"
|
||||||
|
<< " user>\n"
|
||||||
<< " -framerate <number> Display the given number of frames per second\n"
|
<< " -framerate <number> Display the given number of frames per second\n"
|
||||||
<< endl
|
<< endl
|
||||||
#ifdef SOUND_SUPPORT
|
#ifdef SOUND_SUPPORT
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: TIA.cxx,v 1.71 2006-11-22 02:39:31 stephena Exp $
|
// $Id: TIA.cxx,v 1.72 2006-11-25 01:34:35 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
|
@ -684,23 +684,6 @@ void TIA::updateScanlineByTrace(int target)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
const uInt32* TIA::palette() const
|
|
||||||
{
|
|
||||||
// See which palette we should be using
|
|
||||||
const string& type = mySettings.getString("palette");
|
|
||||||
const string& format = myConsole.properties().get(Display_Format);
|
|
||||||
|
|
||||||
if(type == "standard")
|
|
||||||
return (format.compare(0, 3, "PAL") == 0) ? ourPALPalette : ourNTSCPalette;
|
|
||||||
else if(type == "original")
|
|
||||||
return (format.compare(0, 3, "PAL") == 0) ? ourPALPalette11 : ourNTSCPalette11;
|
|
||||||
else if(type == "z26")
|
|
||||||
return (format.compare(0, 3, "PAL") == 0) ? ourPALPaletteZ26 : ourNTSCPaletteZ26;
|
|
||||||
else // return normal palette by default
|
|
||||||
return (format.compare(0, 3, "PAL") == 0) ? ourPALPalette : ourNTSCPalette;
|
|
||||||
}
|
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
uInt32 TIA::width() const
|
uInt32 TIA::width() const
|
||||||
{
|
{
|
||||||
|
@ -3043,414 +3026,6 @@ uInt8 TIA::ourPlayerReflectTable[256];
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
uInt32 TIA::ourPlayfieldTable[2][160];
|
uInt32 TIA::ourPlayfieldTable[2][160];
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
const uInt32 TIA::ourNTSCPalette[256] = {
|
|
||||||
0x000000, 0x000000, 0x4a4a4a, 0x4a4a4a,
|
|
||||||
0x6f6f6f, 0x6f6f6f, 0x8e8e8e, 0x8e8e8e,
|
|
||||||
0xaaaaaa, 0xaaaaaa, 0xc0c0c0, 0xc0c0c0,
|
|
||||||
0xd6d6d6, 0xd6d6d6, 0xececec, 0xececec,
|
|
||||||
0x484800, 0x484800, 0x69690f, 0x69690f,
|
|
||||||
0x86861d, 0x86861d, 0xa2a22a, 0xa2a22a,
|
|
||||||
0xbbbb35, 0xbbbb35, 0xd2d240, 0xd2d240,
|
|
||||||
0xe8e84a, 0xe8e84a, 0xfcfc54, 0xfcfc54,
|
|
||||||
0x7c2c00, 0x7c2c00, 0x904811, 0x904811,
|
|
||||||
0xa26221, 0xa26221, 0xb47a30, 0xb47a30,
|
|
||||||
0xc3903d, 0xc3903d, 0xd2a44a, 0xd2a44a,
|
|
||||||
0xdfb755, 0xdfb755, 0xecc860, 0xecc860,
|
|
||||||
0x901c00, 0x901c00, 0xa33915, 0xa33915,
|
|
||||||
0xb55328, 0xb55328, 0xc66c3a, 0xc66c3a,
|
|
||||||
0xd5824a, 0xd5824a, 0xe39759, 0xe39759,
|
|
||||||
0xf0aa67, 0xf0aa67, 0xfcbc74, 0xfcbc74,
|
|
||||||
0x940000, 0x940000, 0xa71a1a, 0xa71a1a,
|
|
||||||
0xb83232, 0xb83232, 0xc84848, 0xc84848,
|
|
||||||
0xd65c5c, 0xd65c5c, 0xe46f6f, 0xe46f6f,
|
|
||||||
0xf08080, 0xf08080, 0xfc9090, 0xfc9090,
|
|
||||||
0x840064, 0x840064, 0x97197a, 0x97197a,
|
|
||||||
0xa8308f, 0xa8308f, 0xb846a2, 0xb846a2,
|
|
||||||
0xc659b3, 0xc659b3, 0xd46cc3, 0xd46cc3,
|
|
||||||
0xe07cd2, 0xe07cd2, 0xec8ce0, 0xec8ce0,
|
|
||||||
0x500084, 0x500084, 0x68199a, 0x68199a,
|
|
||||||
0x7d30ad, 0x7d30ad, 0x9246c0, 0x9246c0,
|
|
||||||
0xa459d0, 0xa459d0, 0xb56ce0, 0xb56ce0,
|
|
||||||
0xc57cee, 0xc57cee, 0xd48cfc, 0xd48cfc,
|
|
||||||
0x140090, 0x140090, 0x331aa3, 0x331aa3,
|
|
||||||
0x4e32b5, 0x4e32b5, 0x6848c6, 0x6848c6,
|
|
||||||
0x7f5cd5, 0x7f5cd5, 0x956fe3, 0x956fe3,
|
|
||||||
0xa980f0, 0xa980f0, 0xbc90fc, 0xbc90fc,
|
|
||||||
0x000094, 0x000094, 0x181aa7, 0x181aa7,
|
|
||||||
0x2d32b8, 0x2d32b8, 0x4248c8, 0x4248c8,
|
|
||||||
0x545cd6, 0x545cd6, 0x656fe4, 0x656fe4,
|
|
||||||
0x7580f0, 0x7580f0, 0x8490fc, 0x8490fc,
|
|
||||||
0x001c88, 0x001c88, 0x183b9d, 0x183b9d,
|
|
||||||
0x2d57b0, 0x2d57b0, 0x4272c2, 0x4272c2,
|
|
||||||
0x548ad2, 0x548ad2, 0x65a0e1, 0x65a0e1,
|
|
||||||
0x75b5ef, 0x75b5ef, 0x84c8fc, 0x84c8fc,
|
|
||||||
0x003064, 0x003064, 0x185080, 0x185080,
|
|
||||||
0x2d6d98, 0x2d6d98, 0x4288b0, 0x4288b0,
|
|
||||||
0x54a0c5, 0x54a0c5, 0x65b7d9, 0x65b7d9,
|
|
||||||
0x75cceb, 0x75cceb, 0x84e0fc, 0x84e0fc,
|
|
||||||
0x004030, 0x004030, 0x18624e, 0x18624e,
|
|
||||||
0x2d8169, 0x2d8169, 0x429e82, 0x429e82,
|
|
||||||
0x54b899, 0x54b899, 0x65d1ae, 0x65d1ae,
|
|
||||||
0x75e7c2, 0x75e7c2, 0x84fcd4, 0x84fcd4,
|
|
||||||
0x004400, 0x004400, 0x1a661a, 0x1a661a,
|
|
||||||
0x328432, 0x328432, 0x48a048, 0x48a048,
|
|
||||||
0x5cba5c, 0x5cba5c, 0x6fd26f, 0x6fd26f,
|
|
||||||
0x80e880, 0x80e880, 0x90fc90, 0x90fc90,
|
|
||||||
0x143c00, 0x143c00, 0x355f18, 0x355f18,
|
|
||||||
0x527e2d, 0x527e2d, 0x6e9c42, 0x6e9c42,
|
|
||||||
0x87b754, 0x87b754, 0x9ed065, 0x9ed065,
|
|
||||||
0xb4e775, 0xb4e775, 0xc8fc84, 0xc8fc84,
|
|
||||||
0x303800, 0x303800, 0x505916, 0x505916,
|
|
||||||
0x6d762b, 0x6d762b, 0x88923e, 0x88923e,
|
|
||||||
0xa0ab4f, 0xa0ab4f, 0xb7c25f, 0xb7c25f,
|
|
||||||
0xccd86e, 0xccd86e, 0xe0ec7c, 0xe0ec7c,
|
|
||||||
0x482c00, 0x482c00, 0x694d14, 0x694d14,
|
|
||||||
0x866a26, 0x866a26, 0xa28638, 0xa28638,
|
|
||||||
0xbb9f47, 0xbb9f47, 0xd2b656, 0xd2b656,
|
|
||||||
0xe8cc63, 0xe8cc63, 0xfce070, 0xfce070
|
|
||||||
};
|
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
const uInt32 TIA::ourPALPalette[256] = {
|
|
||||||
0x000000, 0x000000, 0x2b2b2b, 0x2a2a2a,
|
|
||||||
0x525252, 0x515151, 0x767676, 0x757575,
|
|
||||||
0x979797, 0x969696, 0xb6b6b6, 0xb5b5b5,
|
|
||||||
0xd2d2d2, 0xd1d1d1, 0xececec, 0xebebeb,
|
|
||||||
0x000000, 0x000000, 0x2b2b2b, 0x2a2a2a,
|
|
||||||
0x525252, 0x515151, 0x767676, 0x757575,
|
|
||||||
0x979797, 0x969696, 0xb6b6b6, 0xb5b5b5,
|
|
||||||
0xd2d2d2, 0xd1d1d1, 0xececec, 0xebebeb,
|
|
||||||
0x805800, 0x595959, 0x96711a, 0x727272,
|
|
||||||
0xab8732, 0x888888, 0xbe9c48, 0x9c9c9c,
|
|
||||||
0xcfaf5c, 0xafafaf, 0xdfc06f, 0xc0c0c0,
|
|
||||||
0xeed180, 0xd0d0d0, 0xfce090, 0xdfdfdf,
|
|
||||||
0x445c00, 0x4a4a4a, 0x5e791a, 0x666666,
|
|
||||||
0x769332, 0x7f7f7f, 0x8cac48, 0x979797,
|
|
||||||
0xa0c25c, 0xacacac, 0xb3d76f, 0xc0c0c0,
|
|
||||||
0xc4ea80, 0xd2d2d2, 0xd4fc90, 0xe3e3e3,
|
|
||||||
0x703400, 0x404040, 0x89511a, 0x5b5b5b,
|
|
||||||
0xa06b32, 0x747474, 0xb68448, 0x8c8c8c,
|
|
||||||
0xc99a5c, 0xa0a0a0, 0xdcaf6f, 0xb5b5b5,
|
|
||||||
0xecc280, 0xc7c7c7, 0xfcd490, 0xd8d8d8,
|
|
||||||
0x006414, 0x3c3c3c, 0x1a8035, 0x585858,
|
|
||||||
0x329852, 0x717171, 0x48b06e, 0x898989,
|
|
||||||
0x5cc587, 0x9e9e9e, 0x6fd99e, 0xb2b2b2,
|
|
||||||
0x80ebb4, 0xc4c4c4, 0x90fcc8, 0xd5d5d5,
|
|
||||||
0x700014, 0x232323, 0x891a35, 0x3e3e3e,
|
|
||||||
0xa03252, 0x565656, 0xb6486e, 0x6d6d6d,
|
|
||||||
0xc95c87, 0x818181, 0xdc6f9e, 0x949494,
|
|
||||||
0xec80b4, 0xa6a6a6, 0xfc90c8, 0xb6b6b6,
|
|
||||||
0x005c5c, 0x404040, 0x1a7676, 0x5a5a5a,
|
|
||||||
0x328e8e, 0x727272, 0x48a4a4, 0x888888,
|
|
||||||
0x5cb8b8, 0x9c9c9c, 0x6fcbcb, 0xafafaf,
|
|
||||||
0x80dcdc, 0xc0c0c0, 0x90ecec, 0xd0d0d0,
|
|
||||||
0x70005c, 0x2b2b2b, 0x841a74, 0x434343,
|
|
||||||
0x963289, 0x595959, 0xa8489e, 0x6e6e6e,
|
|
||||||
0xb75cb0, 0x808080, 0xc66fc1, 0x929292,
|
|
||||||
0xd380d1, 0xa2a2a2, 0xe090e0, 0xb1b1b1,
|
|
||||||
0x003c70, 0x2f2f2f, 0x195a89, 0x4b4b4b,
|
|
||||||
0x2f75a0, 0x646464, 0x448eb6, 0x7c7c7c,
|
|
||||||
0x57a5c9, 0x919191, 0x68badc, 0xa5a5a5,
|
|
||||||
0x79ceec, 0xb7b7b7, 0x88e0fc, 0xc8c8c8,
|
|
||||||
0x580070, 0x272727, 0x6e1a89, 0x3f3f3f,
|
|
||||||
0x8332a0, 0x565656, 0x9648b6, 0x6b6b6b,
|
|
||||||
0xa75cc9, 0x7e7e7e, 0xb76fdc, 0x909090,
|
|
||||||
0xc680ec, 0xa1a1a1, 0xd490fc, 0xb0b0b0,
|
|
||||||
0x002070, 0x1f1f1f, 0x193f89, 0x3c3c3c,
|
|
||||||
0x2f5aa0, 0x555555, 0x4474b6, 0x6d6d6d,
|
|
||||||
0x578bc9, 0x828282, 0x68a1dc, 0x969696,
|
|
||||||
0x79b5ec, 0xa9a9a9, 0x88c8fc, 0xbababa,
|
|
||||||
0x340080, 0x1e1e1e, 0x4a1a96, 0x363636,
|
|
||||||
0x5f32ab, 0x4d4d4d, 0x7248be, 0x616161,
|
|
||||||
0x835ccf, 0x747474, 0x936fdf, 0x868686,
|
|
||||||
0xa280ee, 0x969696, 0xb090fc, 0xa5a5a5,
|
|
||||||
0x000088, 0x0f0f0f, 0x1a1a9d, 0x282828,
|
|
||||||
0x3232b0, 0x404040, 0x4848c2, 0x555555,
|
|
||||||
0x5c5cd2, 0x696969, 0x6f6fe1, 0x7b7b7b,
|
|
||||||
0x8080ef, 0x8c8c8c, 0x9090fc, 0x9c9c9c,
|
|
||||||
0x000000, 0x000000, 0x2b2b2b, 0x2a2a2a,
|
|
||||||
0x525252, 0x515151, 0x767676, 0x757575,
|
|
||||||
0x979797, 0x969696, 0xb6b6b6, 0xb5b5b5,
|
|
||||||
0xd2d2d2, 0xd1d1d1, 0xececec, 0xebebeb,
|
|
||||||
0x000000, 0x000000, 0x2b2b2b, 0x2a2a2a,
|
|
||||||
0x525252, 0x515151, 0x767676, 0x757575,
|
|
||||||
0x979797, 0x969696, 0xb6b6b6, 0xb5b5b5,
|
|
||||||
0xd2d2d2, 0xd1d1d1, 0xececec, 0xebebeb
|
|
||||||
};
|
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
const uInt32 TIA::ourNTSCPalette11[256] = {
|
|
||||||
0x000000, 0x000000, 0x393939, 0x393939,
|
|
||||||
0x797979, 0x797979, 0xababab, 0xababab,
|
|
||||||
0xcdcdcd, 0xcdcdcd, 0xe6e6e6, 0xe6e6e6,
|
|
||||||
0xf2f2f2, 0xf2f2f2, 0xffffff, 0xffffff,
|
|
||||||
0x391701, 0x391701, 0x833008, 0x833008,
|
|
||||||
0xc85f24, 0xc85f24, 0xff911d, 0xff911d,
|
|
||||||
0xffc51d, 0xffc51d, 0xffd84c, 0xffd84c,
|
|
||||||
0xfff456, 0xfff456, 0xffff98, 0xffff98,
|
|
||||||
0x451904, 0x451904, 0x9f241e, 0x9f241e,
|
|
||||||
0xc85122, 0xc85122, 0xff811e, 0xff811e,
|
|
||||||
0xff982c, 0xff982c, 0xffc545, 0xffc545,
|
|
||||||
0xffc66d, 0xffc66d, 0xffe4a1, 0xffe4a1,
|
|
||||||
0x4a1704, 0x4a1704, 0xb21d17, 0xb21d17,
|
|
||||||
0xdf251c, 0xdf251c, 0xfa5255, 0xfa5255,
|
|
||||||
0xff706e, 0xff706e, 0xff8f8f, 0xff8f8f,
|
|
||||||
0xffabad, 0xffabad, 0xffc7ce, 0xffc7ce,
|
|
||||||
0x050568, 0x050568, 0x712272, 0x712272,
|
|
||||||
0xa532a6, 0xa532a6, 0xcd3ecf, 0xcd3ecf,
|
|
||||||
0xea51eb, 0xea51eb, 0xfe6dff, 0xfe6dff,
|
|
||||||
0xff87fb, 0xff87fb, 0xffa4ff, 0xffa4ff,
|
|
||||||
0x280479, 0x280479, 0x590f90, 0x590f90,
|
|
||||||
0x8839aa, 0x8839aa, 0xc04adc, 0xc04adc,
|
|
||||||
0xe05eff, 0xe05eff, 0xf27cff, 0xf27cff,
|
|
||||||
0xff98ff, 0xff98ff, 0xfeabff, 0xfeabff,
|
|
||||||
0x35088a, 0x35088a, 0x500cd0, 0x500cd0,
|
|
||||||
0x7945d0, 0x7945d0, 0xa251d9, 0xa251d9,
|
|
||||||
0xbe60ff, 0xbe60ff, 0xcc77ff, 0xcc77ff,
|
|
||||||
0xd790ff, 0xd790ff, 0xdfaaff, 0xdfaaff,
|
|
||||||
0x051e81, 0x051e81, 0x082fca, 0x082fca,
|
|
||||||
0x444cde, 0x444cde, 0x5a68ff, 0x5a68ff,
|
|
||||||
0x7183ff, 0x7183ff, 0x90a0ff, 0x90a0ff,
|
|
||||||
0x9fb2ff, 0x9fb2ff, 0xc0cbff, 0xc0cbff,
|
|
||||||
0x0c048b, 0x0c048b, 0x382db5, 0x382db5,
|
|
||||||
0x584fda, 0x584fda, 0x6b64ff, 0x6b64ff,
|
|
||||||
0x8a84ff, 0x8a84ff, 0x9998ff, 0x9998ff,
|
|
||||||
0xb1aeff, 0xb1aeff, 0xc0c2ff, 0xc0c2ff,
|
|
||||||
0x1d295a, 0x1d295a, 0x1d4892, 0x1d4892,
|
|
||||||
0x1c71c6, 0x1c71c6, 0x489bd9, 0x489bd9,
|
|
||||||
0x55b6ff, 0x55b6ff, 0x8cd8ff, 0x8cd8ff,
|
|
||||||
0x9bdfff, 0x9bdfff, 0xc3e9ff, 0xc3e9ff,
|
|
||||||
0x2f4302, 0x2f4302, 0x446103, 0x446103,
|
|
||||||
0x3e9421, 0x3e9421, 0x57ab3b, 0x57ab3b,
|
|
||||||
0x61d070, 0x61d070, 0x72f584, 0x72f584,
|
|
||||||
0x87ff97, 0x87ff97, 0xadffb6, 0xadffb6,
|
|
||||||
0x0a4108, 0x0a4108, 0x10680d, 0x10680d,
|
|
||||||
0x169212, 0x169212, 0x1cb917, 0x1cb917,
|
|
||||||
0x21d91b, 0x21d91b, 0x6ef040, 0x6ef040,
|
|
||||||
0x83ff5b, 0x83ff5b, 0xb2ff9a, 0xb2ff9a,
|
|
||||||
0x04410b, 0x04410b, 0x066611, 0x066611,
|
|
||||||
0x088817, 0x088817, 0x0baf1d, 0x0baf1d,
|
|
||||||
0x86d922, 0x86d922, 0x99f927, 0x99f927,
|
|
||||||
0xb7ff5b, 0xb7ff5b, 0xdcff81, 0xdcff81,
|
|
||||||
0x02350f, 0x02350f, 0x0c4a1c, 0x0c4a1c,
|
|
||||||
0x4f7420, 0x4f7420, 0x649228, 0x649228,
|
|
||||||
0xa1b034, 0xa1b034, 0xb2d241, 0xb2d241,
|
|
||||||
0xd6e149, 0xd6e149, 0xf2ff53, 0xf2ff53,
|
|
||||||
0x263001, 0x263001, 0x234005, 0x234005,
|
|
||||||
0x806931, 0x806931, 0xaf993a, 0xaf993a,
|
|
||||||
0xd5b543, 0xd5b543, 0xe1cb38, 0xe1cb38,
|
|
||||||
0xe3e534, 0xe3e534, 0xfbff7d, 0xfbff7d,
|
|
||||||
0x401a02, 0x401a02, 0x702408, 0x702408,
|
|
||||||
0xab511f, 0xab511f, 0xbf7730, 0xbf7730,
|
|
||||||
0xe19344, 0xe19344, 0xf9ad58, 0xf9ad58,
|
|
||||||
0xffc160, 0xffc160, 0xffcb83, 0xffcb83
|
|
||||||
};
|
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
const uInt32 TIA::ourPALPalette11[256] = {
|
|
||||||
0x000000, 0x000000, 0x242424, 0x232323,
|
|
||||||
0x484848, 0x474747, 0x6d6d6d, 0x6c6c6c,
|
|
||||||
0x919191, 0x909090, 0xb6b6b6, 0xb5b5b5,
|
|
||||||
0xdadada, 0xd9d9d9, 0xffffff, 0xfefefe,
|
|
||||||
0x000000, 0x000000, 0x242424, 0x232323,
|
|
||||||
0x484848, 0x474747, 0x6d6d6d, 0x6c6c6c,
|
|
||||||
0x919191, 0x909090, 0xb6b6b6, 0xb5b5b5,
|
|
||||||
0xdadada, 0xd9d9d9, 0xffffff, 0xfefefe,
|
|
||||||
0x4a3700, 0x363636, 0x705813, 0x575757,
|
|
||||||
0x8c732a, 0x727272, 0xa68d46, 0x8c8c8c,
|
|
||||||
0xbea767, 0xa6a6a6, 0xd4c18b, 0xc0c0c0,
|
|
||||||
0xeadcb3, 0xdbdbdb, 0xfff6de, 0xf5f5f5,
|
|
||||||
0x284a00, 0x373737, 0x44700f, 0x575757,
|
|
||||||
0x5c8c21, 0x717171, 0x74a638, 0x8a8a8a,
|
|
||||||
0x8cbe51, 0xa2a2a2, 0xa6d46e, 0xbababa,
|
|
||||||
0xc0ea8e, 0xd2d2d2, 0xdbffb0, 0xebebeb,
|
|
||||||
0x4a1300, 0x212121, 0x70280f, 0x3a3a3a,
|
|
||||||
0x8c3d21, 0x515151, 0xa65438, 0x696969,
|
|
||||||
0xbe6d51, 0x828282, 0xd4886e, 0x9b9b9b,
|
|
||||||
0xeaa58e, 0xb6b6b6, 0xffc4b0, 0xd3d3d3,
|
|
||||||
0x004a22, 0x2f2f2f, 0x0f703b, 0x4c4c4c,
|
|
||||||
0x218c52, 0x656565, 0x38a66a, 0x7e7e7e,
|
|
||||||
0x51be83, 0x969696, 0x6ed49d, 0xafafaf,
|
|
||||||
0x8eeab8, 0xc8c8c8, 0xb0ffd4, 0xe2e2e2,
|
|
||||||
0x4a0028, 0x1a1a1a, 0x700f44, 0x323232,
|
|
||||||
0x8c215c, 0x474747, 0xa63874, 0x5f5f5f,
|
|
||||||
0xbe518c, 0x787878, 0xd46ea6, 0x929292,
|
|
||||||
0xea8ec0, 0xafafaf, 0xffb0db, 0xcccccc,
|
|
||||||
0x00404a, 0x2e2e2e, 0x0f6370, 0x4b4b4b,
|
|
||||||
0x217e8c, 0x636363, 0x3897a6, 0x7c7c7c,
|
|
||||||
0x51afbe, 0x949494, 0x6ec7d4, 0xadadad,
|
|
||||||
0x8edeea, 0xc7c7c7, 0xb0f4ff, 0xe0e0e0,
|
|
||||||
0x43002c, 0x191919, 0x650f4b, 0x2f2f2f,
|
|
||||||
0x7e2165, 0x444444, 0x953880, 0x5c5c5c,
|
|
||||||
0xa6519a, 0x727272, 0xbf6eb7, 0x8e8e8e,
|
|
||||||
0xd38ed3, 0xaaaaaa, 0xe5b0f1, 0xc7c7c7,
|
|
||||||
0x001d4a, 0x191919, 0x0f3870, 0x323232,
|
|
||||||
0x21538c, 0x4a4a4a, 0x386ea6, 0x646464,
|
|
||||||
0x518dbe, 0x808080, 0x6ea8d4, 0x9b9b9b,
|
|
||||||
0x8ec8ea, 0xbababa, 0xb0e9ff, 0xdadada,
|
|
||||||
0x37004a, 0x181818, 0x570f70, 0x2f2f2f,
|
|
||||||
0x70218c, 0x444444, 0x8938a6, 0x5c5c5c,
|
|
||||||
0xa151be, 0x757575, 0xba6ed4, 0x909090,
|
|
||||||
0xd28eea, 0xacacac, 0xeab0ff, 0xcacaca,
|
|
||||||
0x00184a, 0x161616, 0x0f2e70, 0x2c2c2c,
|
|
||||||
0x21448c, 0x414141, 0x385ba6, 0x595959,
|
|
||||||
0x5174be, 0x717171, 0x6e8fd4, 0x8c8c8c,
|
|
||||||
0x8eabea, 0xa9a9a9, 0xb0c9ff, 0xc7c7c7,
|
|
||||||
0x13004a, 0x0e0e0e, 0x280f70, 0x212121,
|
|
||||||
0x3d218c, 0x353535, 0x5438a6, 0x4c4c4c,
|
|
||||||
0x6d51be, 0x656565, 0x886ed4, 0x818181,
|
|
||||||
0xa58eea, 0x9f9f9f, 0xc4b0ff, 0xbebebe,
|
|
||||||
0x00014a, 0x090909, 0x0f1170, 0x1b1b1b,
|
|
||||||
0x21248c, 0x2e2e2e, 0x383aa6, 0x454545,
|
|
||||||
0x5153be, 0x5e5e5e, 0x6e70d4, 0x7a7a7a,
|
|
||||||
0x8e8fea, 0x999999, 0xb0b2ff, 0xbababa,
|
|
||||||
0x000000, 0x000000, 0x242424, 0x232323,
|
|
||||||
0x484848, 0x474747, 0x6d6d6d, 0x6c6c6c,
|
|
||||||
0x919191, 0x909090, 0xb6b6b6, 0xb5b5b5,
|
|
||||||
0xdadada, 0xd9d9d9, 0xffffff, 0xfefefe,
|
|
||||||
0x000000, 0x000000, 0x242424, 0x232323,
|
|
||||||
0x484848, 0x474747, 0x6d6d6d, 0x6c6c6c,
|
|
||||||
0x919191, 0x909090, 0xb6b6b6, 0xb5b5b5,
|
|
||||||
0xdadada, 0xd9d9d9, 0xffffff, 0xfefefe
|
|
||||||
};
|
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
const uInt32 TIA::ourNTSCPaletteZ26[256] = {
|
|
||||||
0x000000, 0x000000, 0x505050, 0x505050,
|
|
||||||
0x646464, 0x646464, 0x787878, 0x787878,
|
|
||||||
0x8c8c8c, 0x8c8c8c, 0xa0a0a0, 0xa0a0a0,
|
|
||||||
0xb4b4b4, 0xb4b4b4, 0xc8c8c8, 0xc8c8c8,
|
|
||||||
0x445400, 0x445400, 0x586800, 0x586800,
|
|
||||||
0x6c7c00, 0x6c7c00, 0x809000, 0x809000,
|
|
||||||
0x94a414, 0x94a414, 0xa8b828, 0xa8b828,
|
|
||||||
0xbccc3c, 0xbccc3c, 0xd0e050, 0xd0e050,
|
|
||||||
0x673900, 0x673900, 0x7b4d00, 0x7b4d00,
|
|
||||||
0x8f6100, 0x8f6100, 0xa37513, 0xa37513,
|
|
||||||
0xb78927, 0xb78927, 0xcb9d3b, 0xcb9d3b,
|
|
||||||
0xdfb14f, 0xdfb14f, 0xf3c563, 0xf3c563,
|
|
||||||
0x7b2504, 0x7b2504, 0x8f3918, 0x8f3918,
|
|
||||||
0xa34d2c, 0xa34d2c, 0xb76140, 0xb76140,
|
|
||||||
0xcb7554, 0xcb7554, 0xdf8968, 0xdf8968,
|
|
||||||
0xf39d7c, 0xf39d7c, 0xffb190, 0xffb190,
|
|
||||||
0x7d122c, 0x7d122c, 0x912640, 0x912640,
|
|
||||||
0xa53a54, 0xa53a54, 0xb94e68, 0xb94e68,
|
|
||||||
0xcd627c, 0xcd627c, 0xe17690, 0xe17690,
|
|
||||||
0xf58aa4, 0xf58aa4, 0xff9eb8, 0xff9eb8,
|
|
||||||
0x730871, 0x730871, 0x871c85, 0x871c85,
|
|
||||||
0x9b3099, 0x9b3099, 0xaf44ad, 0xaf44ad,
|
|
||||||
0xc358c1, 0xc358c1, 0xd76cd5, 0xd76cd5,
|
|
||||||
0xeb80e9, 0xeb80e9, 0xff94fd, 0xff94fd,
|
|
||||||
0x5d0b92, 0x5d0b92, 0x711fa6, 0x711fa6,
|
|
||||||
0x8533ba, 0x8533ba, 0x9947ce, 0x9947ce,
|
|
||||||
0xad5be2, 0xad5be2, 0xc16ff6, 0xc16ff6,
|
|
||||||
0xd583ff, 0xd583ff, 0xe997ff, 0xe997ff,
|
|
||||||
0x401599, 0x401599, 0x5429ad, 0x5429ad,
|
|
||||||
0x683dc1, 0x683dc1, 0x7c51d5, 0x7c51d5,
|
|
||||||
0x9065e9, 0x9065e9, 0xa479fd, 0xa479fd,
|
|
||||||
0xb88dff, 0xb88dff, 0xcca1ff, 0xcca1ff,
|
|
||||||
0x252593, 0x252593, 0x3939a7, 0x3939a7,
|
|
||||||
0x4d4dbb, 0x4d4dbb, 0x6161cf, 0x6161cf,
|
|
||||||
0x7575e3, 0x7575e3, 0x8989f7, 0x8989f7,
|
|
||||||
0x9d9dff, 0x9d9dff, 0xb1b1ff, 0xb1b1ff,
|
|
||||||
0x0f3480, 0x0f3480, 0x234894, 0x234894,
|
|
||||||
0x375ca8, 0x375ca8, 0x4b70bc, 0x4b70bc,
|
|
||||||
0x5f84d0, 0x5f84d0, 0x7398e4, 0x7398e4,
|
|
||||||
0x87acf8, 0x87acf8, 0x9bc0ff, 0x9bc0ff,
|
|
||||||
0x04425a, 0x04425a, 0x18566e, 0x18566e,
|
|
||||||
0x2c6a82, 0x2c6a82, 0x407e96, 0x407e96,
|
|
||||||
0x5492aa, 0x5492aa, 0x68a6be, 0x68a6be,
|
|
||||||
0x7cbad2, 0x7cbad2, 0x90cee6, 0x90cee6,
|
|
||||||
0x044f30, 0x044f30, 0x186344, 0x186344,
|
|
||||||
0x2c7758, 0x2c7758, 0x408b6c, 0x408b6c,
|
|
||||||
0x549f80, 0x549f80, 0x68b394, 0x68b394,
|
|
||||||
0x7cc7a8, 0x7cc7a8, 0x90dbbc, 0x90dbbc,
|
|
||||||
0x0f550a, 0x0f550a, 0x23691e, 0x23691e,
|
|
||||||
0x377d32, 0x377d32, 0x4b9146, 0x4b9146,
|
|
||||||
0x5fa55a, 0x5fa55a, 0x73b96e, 0x73b96e,
|
|
||||||
0x87cd82, 0x87cd82, 0x9be196, 0x9be196,
|
|
||||||
0x1f5100, 0x1f5100, 0x336505, 0x336505,
|
|
||||||
0x477919, 0x477919, 0x5b8d2d, 0x5b8d2d,
|
|
||||||
0x6fa141, 0x6fa141, 0x83b555, 0x83b555,
|
|
||||||
0x97c969, 0x97c969, 0xabdd7d, 0xabdd7d,
|
|
||||||
0x344600, 0x344600, 0x485a00, 0x485a00,
|
|
||||||
0x5c6e14, 0x5c6e14, 0x708228, 0x708228,
|
|
||||||
0x84963c, 0x84963c, 0x98aa50, 0x98aa50,
|
|
||||||
0xacbe64, 0xacbe64, 0xc0d278, 0xc0d278,
|
|
||||||
0x463e00, 0x463e00, 0x5a5205, 0x5a5205,
|
|
||||||
0x6e6619, 0x6e6619, 0x827a2d, 0x827a2d,
|
|
||||||
0x968e41, 0x968e41, 0xaaa255, 0xaaa255,
|
|
||||||
0xbeb669, 0xbeb669, 0xd2ca7d, 0xd2ca7d
|
|
||||||
};
|
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
const uInt32 TIA::ourPALPaletteZ26[256] = {
|
|
||||||
0x000000, 0x000000, 0x4c4c4c, 0x4b4b4b,
|
|
||||||
0x606060, 0x5f5f5f, 0x747474, 0x737373,
|
|
||||||
0x888888, 0x878787, 0x9c9c9c, 0x9b9b9b,
|
|
||||||
0xb0b0b0, 0xafafaf, 0xc4c4c4, 0xc3c3c3,
|
|
||||||
0x000000, 0x000000, 0x4c4c4c, 0x4b4b4b,
|
|
||||||
0x606060, 0x5f5f5f, 0x747474, 0x737373,
|
|
||||||
0x888888, 0x878787, 0x9c9c9c, 0x9b9b9b,
|
|
||||||
0xb0b0b0, 0xafafaf, 0xc4c4c4, 0xc3c3c3,
|
|
||||||
0x533a00, 0x3a3a3a, 0x674e00, 0x4c4c4c,
|
|
||||||
0x7b6203, 0x5e5e5e, 0x8f7617, 0x727272,
|
|
||||||
0xa38a2b, 0x868686, 0xb79e3f, 0x9a9a9a,
|
|
||||||
0xcbb253, 0xaeaeae, 0xdfc667, 0xc2c2c2,
|
|
||||||
0x1b5800, 0x3b3b3b, 0x2f6c00, 0x4d4d4d,
|
|
||||||
0x438001, 0x5f5f5f, 0x579415, 0x737373,
|
|
||||||
0x6ba829, 0x878787, 0x7fbc3d, 0x9b9b9b,
|
|
||||||
0x93d051, 0xafafaf, 0xa7e465, 0xc3c3c3,
|
|
||||||
0x6a2900, 0x373737, 0x7e3d12, 0x4b4b4b,
|
|
||||||
0x925126, 0x5f5f5f, 0xa6653a, 0x737373,
|
|
||||||
0xba794e, 0x878787, 0xce8d62, 0x9b9b9b,
|
|
||||||
0xe2a176, 0xafafaf, 0xf6b58a, 0xc3c3c3,
|
|
||||||
0x075b00, 0x373737, 0x1b6f11, 0x4b4b4b,
|
|
||||||
0x2f8325, 0x5f5f5f, 0x439739, 0x737373,
|
|
||||||
0x57ab4d, 0x878787, 0x6bbf61, 0x9b9b9b,
|
|
||||||
0x7fd375, 0xafafaf, 0x93e789, 0xc3c3c3,
|
|
||||||
0x741b2f, 0x373737, 0x882f43, 0x4b4b4b,
|
|
||||||
0x9c4357, 0x5f5f5f, 0xb0576b, 0x737373,
|
|
||||||
0xc46b7f, 0x878787, 0xd87f93, 0x9b9b9b,
|
|
||||||
0xec93a7, 0xafafaf, 0xffa7bb, 0xc3c3c3,
|
|
||||||
0x00572e, 0x383838, 0x106b42, 0x4b4b4b,
|
|
||||||
0x247f56, 0x5f5f5f, 0x38936a, 0x737373,
|
|
||||||
0x4ca77e, 0x878787, 0x60bb92, 0x9b9b9b,
|
|
||||||
0x74cfa6, 0xafafaf, 0x88e3ba, 0xc3c3c3,
|
|
||||||
0x6d165f, 0x383838, 0x812a73, 0x4c4c4c,
|
|
||||||
0x953e87, 0x606060, 0xa9529b, 0x747474,
|
|
||||||
0xbd66af, 0x888888, 0xd17ac3, 0x9c9c9c,
|
|
||||||
0xe58ed7, 0xb0b0b0, 0xf9a2eb, 0xc4c4c4,
|
|
||||||
0x014c5e, 0x373737, 0x156072, 0x4b4b4b,
|
|
||||||
0x297486, 0x5f5f5f, 0x3d889a, 0x737373,
|
|
||||||
0x519cae, 0x878787, 0x65b0c2, 0x9b9b9b,
|
|
||||||
0x79c4d6, 0xafafaf, 0x8dd8ea, 0xc3c3c3,
|
|
||||||
0x5f1588, 0x383838, 0x73299c, 0x4c4c4c,
|
|
||||||
0x873db0, 0x606060, 0x9b51c4, 0x747474,
|
|
||||||
0xaf65d8, 0x888888, 0xc379ec, 0x9c9c9c,
|
|
||||||
0xd78dff, 0xb0b0b0, 0xeba1ff, 0xc1c1c1,
|
|
||||||
0x123b87, 0x373737, 0x264f9b, 0x4b4b4b,
|
|
||||||
0x3a63af, 0x5f5f5f, 0x4e77c3, 0x737373,
|
|
||||||
0x628bd7, 0x878787, 0x769feb, 0x9b9b9b,
|
|
||||||
0x8ab3ff, 0xafafaf, 0x9ec7ff, 0xc1c1c1,
|
|
||||||
0x451e9d, 0x383838, 0x5932b1, 0x4c4c4c,
|
|
||||||
0x6d46c5, 0x606060, 0x815ad9, 0x747474,
|
|
||||||
0x956eed, 0x888888, 0xa982ff, 0x9b9b9b,
|
|
||||||
0xbd96ff, 0xadadad, 0xd1aaff, 0xbfbfbf,
|
|
||||||
0x2a2b9e, 0x373737, 0x3e3fb2, 0x4b4b4b,
|
|
||||||
0x5253c6, 0x5f5f5f, 0x6667da, 0x737373,
|
|
||||||
0x7a7bee, 0x878787, 0x8e8fff, 0x9b9b9b,
|
|
||||||
0xa2a3ff, 0xadadad, 0xb6b7ff, 0xbebebe,
|
|
||||||
0x000000, 0x000000, 0x4c4c4c, 0x4b4b4b,
|
|
||||||
0x606060, 0x5f5f5f, 0x747474, 0x737373,
|
|
||||||
0x888888, 0x878787, 0x9c9c9c, 0x9b9b9b,
|
|
||||||
0xb0b0b0, 0xafafaf, 0xc4c4c4, 0xc3c3c3,
|
|
||||||
0x000000, 0x000000, 0x4c4c4c, 0x4b4b4b,
|
|
||||||
0x606060, 0x5f5f5f, 0x747474, 0x737373,
|
|
||||||
0x888888, 0x878787, 0x9c9c9c, 0x9b9b9b,
|
|
||||||
0xb0b0b0, 0xafafaf, 0xc4c4c4, 0xc3c3c3
|
|
||||||
};
|
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
TIA::TIA(const TIA& c)
|
TIA::TIA(const TIA& c)
|
||||||
: myConsole(c.myConsole),
|
: myConsole(c.myConsole),
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: TIA.hxx,v 1.35 2006-02-09 15:10:18 stephena Exp $
|
// $Id: TIA.hxx,v 1.36 2006-11-25 01:34:35 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#ifndef TIA_HXX
|
#ifndef TIA_HXX
|
||||||
|
@ -42,7 +42,7 @@ class Settings;
|
||||||
be displayed on screen.
|
be displayed on screen.
|
||||||
|
|
||||||
@author Bradford W. Mott
|
@author Bradford W. Mott
|
||||||
@version $Id: TIA.hxx,v 1.35 2006-02-09 15:10:18 stephena Exp $
|
@version $Id: TIA.hxx,v 1.36 2006-11-25 01:34:35 stephena Exp $
|
||||||
*/
|
*/
|
||||||
class TIA : public Device , public MediaSource
|
class TIA : public Device , public MediaSource
|
||||||
{
|
{
|
||||||
|
@ -143,13 +143,6 @@ class TIA : public Device , public MediaSource
|
||||||
*/
|
*/
|
||||||
uInt8* previousFrameBuffer() const { return myPreviousFrameBuffer; }
|
uInt8* previousFrameBuffer() const { return myPreviousFrameBuffer; }
|
||||||
|
|
||||||
/**
|
|
||||||
Get the palette which maps frame data to RGB values.
|
|
||||||
|
|
||||||
@return Array of integers which represent the palette (RGB)
|
|
||||||
*/
|
|
||||||
virtual const uInt32* palette() const;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Answers the height of the frame buffer
|
Answers the height of the frame buffer
|
||||||
|
|
||||||
|
@ -546,26 +539,6 @@ class TIA : public Device , public MediaSource
|
||||||
// Playfield mask table for reflected and non-reflected playfields
|
// Playfield mask table for reflected and non-reflected playfields
|
||||||
static uInt32 ourPlayfieldTable[2][160];
|
static uInt32 ourPlayfieldTable[2][160];
|
||||||
|
|
||||||
// Table of RGB values for NTSC
|
|
||||||
static const uInt32 ourNTSCPalette[256];
|
|
||||||
|
|
||||||
// Table of RGB values for PAL. NOTE: The odd numbered entries in
|
|
||||||
// this array are always shades of grey. This is used to implement
|
|
||||||
// the PAL color loss effect.
|
|
||||||
static const uInt32 ourPALPalette[256];
|
|
||||||
|
|
||||||
// Table of RGB values for NTSC - Stella 1.1 version
|
|
||||||
static const uInt32 ourNTSCPalette11[256];
|
|
||||||
|
|
||||||
// Table of RGB values for PAL - Stella 1.1 version
|
|
||||||
static const uInt32 ourPALPalette11[256];
|
|
||||||
|
|
||||||
// Table of RGB values for NTSC - Z26 version
|
|
||||||
static const uInt32 ourNTSCPaletteZ26[256];
|
|
||||||
|
|
||||||
// Table of RGB values for PAL - Z26 version
|
|
||||||
static const uInt32 ourPALPaletteZ26[256];
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Copy constructor isn't supported by this class so make it private
|
// Copy constructor isn't supported by this class so make it private
|
||||||
TIA(const TIA&);
|
TIA(const TIA&);
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: VideoDialog.cxx,v 1.32 2006-11-18 13:29:11 stephena Exp $
|
// $Id: VideoDialog.cxx,v 1.33 2006-11-25 01:34:35 stephena Exp $
|
||||||
//
|
//
|
||||||
// Based on code from ScummVM - Scumm Interpreter
|
// Based on code from ScummVM - Scumm Interpreter
|
||||||
// Copyright (C) 2002-2004 The ScummVM project
|
// Copyright (C) 2002-2004 The ScummVM project
|
||||||
|
@ -94,6 +94,7 @@ VideoDialog::VideoDialog(OSystem* osystem, DialogContainer* parent,
|
||||||
myPalettePopup->appendEntry("Standard", 1);
|
myPalettePopup->appendEntry("Standard", 1);
|
||||||
myPalettePopup->appendEntry("Original", 2);
|
myPalettePopup->appendEntry("Original", 2);
|
||||||
myPalettePopup->appendEntry("Z26", 3);
|
myPalettePopup->appendEntry("Z26", 3);
|
||||||
|
myPalettePopup->appendEntry("User", 4);
|
||||||
wid.push_back(myPalettePopup);
|
wid.push_back(myPalettePopup);
|
||||||
ypos += lineHeight + 4;
|
ypos += lineHeight + 4;
|
||||||
|
|
||||||
|
@ -256,6 +257,8 @@ void VideoDialog::loadConfig()
|
||||||
myPalettePopup->setSelectedTag(2);
|
myPalettePopup->setSelectedTag(2);
|
||||||
else if(s == "z26")
|
else if(s == "z26")
|
||||||
myPalettePopup->setSelectedTag(3);
|
myPalettePopup->setSelectedTag(3);
|
||||||
|
else if(s == "user")
|
||||||
|
myPalettePopup->setSelectedTag(4);
|
||||||
|
|
||||||
// Fullscreen
|
// Fullscreen
|
||||||
b = instance()->settings().getBool("fullscreen");
|
b = instance()->settings().getBool("fullscreen");
|
||||||
|
@ -327,14 +330,15 @@ void VideoDialog::saveConfig()
|
||||||
// Palette
|
// Palette
|
||||||
i = myPalettePopup->getSelectedTag();
|
i = myPalettePopup->getSelectedTag();
|
||||||
if(i == 1)
|
if(i == 1)
|
||||||
instance()->settings().setString("palette", "standard");
|
s = "standard";
|
||||||
else if(i == 2)
|
else if(i == 2)
|
||||||
instance()->settings().setString("palette", "original");
|
s = "original";
|
||||||
else if(i == 3)
|
else if(i == 3)
|
||||||
instance()->settings().setString("palette", "z26");
|
s = "z26";
|
||||||
s = myPalettePopup->getSelectedString();
|
else if(i == 4)
|
||||||
|
s = "user";
|
||||||
instance()->settings().setString("palette", s);
|
instance()->settings().setString("palette", s);
|
||||||
instance()->console().togglePalette(s);
|
instance()->console().setPalette(s);
|
||||||
|
|
||||||
// Scaler
|
// Scaler
|
||||||
s = myScalerPopup->getSelectedString();
|
s = myScalerPopup->getSelectedString();
|
||||||
|
|
Loading…
Reference in New Issue