diff --git a/stella/src/common/FrameBufferGL.cxx b/stella/src/common/FrameBufferGL.cxx index ccaa89538..46de9ea86 100644 --- a/stella/src/common/FrameBufferGL.cxx +++ b/stella/src/common/FrameBufferGL.cxx @@ -13,11 +13,9 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: FrameBufferGL.cxx,v 1.45 2006-01-10 02:22:38 stephena Exp $ +// $Id: FrameBufferGL.cxx,v 1.46 2006-01-10 20:37:00 stephena Exp $ //============================================================================ -//#define USE_PHOSPHOR - #ifdef DISPLAY_OPENGL #include @@ -222,37 +220,60 @@ void FrameBufferGL::drawMediaSource() uInt32 height = mediasrc.height(); uInt16* buffer = (uInt16*) myTexture->pixels; - register uInt32 y; - for(y = 0; y < height; ++y ) + // TODO - is this fast enough? + register uInt32 x, y; + switch((int)myUsePhosphor) // use switch/case, since we'll eventually have filters { - const uInt32 bufofsY = y * width; - const uInt32 screenofsY = y * myTexture->w; - - register uInt32 x; - for(x = 0; x < width; ++x ) - { - const uInt32 bufofs = bufofsY + x; - uInt8 v = currentFrame[bufofs]; - uInt8 w = previousFrame[bufofs]; - -#ifndef USE_PHOSPHOR - if(v != w || theRedrawTIAIndicator) -#endif + case 0: + for(y = 0; y < height; ++y ) { - // If we ever get to this point, we know the current and previous - // buffers differ. In that case, make sure the changes are - // are drawn in postFrameUpdate() - theRedrawTIAIndicator = true; + const uInt32 bufofsY = y * width; + const uInt32 screenofsY = y * myTexture->w; - // x << 1 is times 2 ( doubling width ) - const uInt32 pos = screenofsY + (x << 1); -#ifdef USE_PHOSPHOR - buffer[pos] = buffer[pos+1] = (uInt16) myAvgPalette[v][w]; -#else - buffer[pos] = buffer[pos+1] = (uInt16) myPalette[v]; -#endif + for(x = 0; x < width; ++x ) + { + const uInt32 bufofs = bufofsY + x; + uInt8 v = currentFrame[bufofs]; + uInt8 w = previousFrame[bufofs]; + + if(v != w || theRedrawTIAIndicator) + { + // If we ever get to this point, we know the current and previous + // buffers differ. In that case, make sure the changes are + // are drawn in postFrameUpdate() + theRedrawTIAIndicator = true; + + // x << 1 is times 2 ( doubling width ) + const uInt32 pos = screenofsY + (x << 1); + buffer[pos] = buffer[pos+1] = (uInt16) myPalette[v]; + } + } } - } + break; + + case 1: // TODO - profile this, maybe we can get rid of mult's? + for(y = 0; y < height; ++y ) + { + const uInt32 bufofsY = y * width; + const uInt32 screenofsY = y * myTexture->w; + + for(x = 0; x < width; ++x ) + { + const uInt32 bufofs = bufofsY + x; + uInt8 v = currentFrame[bufofs]; + uInt8 w = previousFrame[bufofs]; + + // If we ever get to this point, we know the current and previous + // buffers differ. In that case, make sure the changes are + // are drawn in postFrameUpdate() + theRedrawTIAIndicator = true; + + // x << 1 is times 2 ( doubling width ) + const uInt32 pos = screenofsY + (x << 1); + buffer[pos] = buffer[pos+1] = (uInt16) myAvgPalette[v][w]; + } + } + break; } } @@ -444,6 +465,18 @@ void FrameBufferGL::addDirtyRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h) myDirtyFlag = true; } +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void FrameBufferGL::enablePhosphor(bool enable) +{ + myUsePhosphor = enable; + myPhosphorBlend = myOSystem->settings().getInt("ppblend"); + +cerr << "phosphor effect: " << (myUsePhosphor ? "yes" : "no") << endl + << "phosphor amount: " << myPhosphorBlend << endl << endl; + + // FIXME - change rendering method +} + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - bool FrameBufferGL::createTextures() { diff --git a/stella/src/common/FrameBufferGL.hxx b/stella/src/common/FrameBufferGL.hxx index 3ef30c205..ccb34d345 100644 --- a/stella/src/common/FrameBufferGL.hxx +++ b/stella/src/common/FrameBufferGL.hxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: FrameBufferGL.hxx,v 1.25 2005-10-09 17:31:47 stephena Exp $ +// $Id: FrameBufferGL.hxx,v 1.26 2006-01-10 20:37:00 stephena Exp $ //============================================================================ #ifndef FRAMEBUFFER_GL_HXX @@ -37,7 +37,7 @@ class GUI::Font; This class implements an SDL OpenGL framebuffer. @author Stephen Anthony - @version $Id: FrameBufferGL.hxx,v 1.25 2005-10-09 17:31:47 stephena Exp $ + @version $Id: FrameBufferGL.hxx,v 1.26 2006-01-10 20:37:00 stephena Exp $ */ class FrameBufferGL : public FrameBuffer { @@ -188,6 +188,11 @@ class FrameBufferGL : public FrameBuffer */ virtual void addDirtyRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h); + /** + Enable/disable phosphor effect + */ + virtual void enablePhosphor(bool enable); + private: bool createTextures(); diff --git a/stella/src/common/FrameBufferSoft.cxx b/stella/src/common/FrameBufferSoft.cxx index a183bae37..27d8a2580 100644 --- a/stella/src/common/FrameBufferSoft.cxx +++ b/stella/src/common/FrameBufferSoft.cxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: FrameBufferSoft.cxx,v 1.39 2005-10-18 18:49:46 stephena Exp $ +// $Id: FrameBufferSoft.cxx,v 1.40 2006-01-10 20:37:00 stephena Exp $ //============================================================================ #include @@ -482,6 +482,15 @@ void FrameBufferSoft::addDirtyRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h) // << "x=" << temp.x << ", y=" << temp.y << ", w=" << temp.w << ", h=" << temp.h << endl; } +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void FrameBufferSoft::enablePhosphor(bool enable) +{ + // FIXME - implement for software mode +// myUsePhosphor = enable; +// myPhosphorBlend = blend; +} + + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - RectList::RectList(Uint32 size) { diff --git a/stella/src/common/FrameBufferSoft.hxx b/stella/src/common/FrameBufferSoft.hxx index 0f558a3f2..8cf083033 100644 --- a/stella/src/common/FrameBufferSoft.hxx +++ b/stella/src/common/FrameBufferSoft.hxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: FrameBufferSoft.hxx,v 1.25 2005-10-09 17:31:47 stephena Exp $ +// $Id: FrameBufferSoft.hxx,v 1.26 2006-01-10 20:37:00 stephena Exp $ //============================================================================ #ifndef FRAMEBUFFER_SOFT_HXX @@ -35,7 +35,7 @@ class RectList; This class implements an SDL software framebuffer. @author Stephen Anthony - @version $Id: FrameBufferSoft.hxx,v 1.25 2005-10-09 17:31:47 stephena Exp $ + @version $Id: FrameBufferSoft.hxx,v 1.26 2006-01-10 20:37:00 stephena Exp $ */ class FrameBufferSoft : public FrameBuffer { @@ -186,6 +186,11 @@ class FrameBufferSoft : public FrameBuffer */ virtual void addDirtyRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h); + /** + Enable/disable phosphor effect + */ + virtual void enablePhosphor(bool enable); + protected: // Used in the dirty update of the SDL surface RectList* myRectList; diff --git a/stella/src/emucore/Console.cxx b/stella/src/emucore/Console.cxx index 5c3b23cc0..6ef790cfb 100644 --- a/stella/src/emucore/Console.cxx +++ b/stella/src/emucore/Console.cxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: Console.cxx,v 1.79 2006-01-08 02:28:03 stephena Exp $ +// $Id: Console.cxx,v 1.80 2006-01-10 20:37:00 stephena Exp $ //============================================================================ #include @@ -385,6 +385,8 @@ void Console::initializeVideo() myOSystem->frameBuffer().initialize(title, myMediaSource->width() << 1, myMediaSource->height()); + bool enable = myProperties.get("Display.Phosphor", true) == "YES"; + myOSystem->frameBuffer().enablePhosphor(enable); setPalette(); } @@ -669,6 +671,10 @@ void Console::setDeveloperProperties() if(s != "") myProperties.set("Display.Height", s); + s = settings.getString("pp"); + if(s != "") + myProperties.set("Display.Phosphor", s); + s = settings.getString("hmove"); if(s != "") myProperties.set("Emulation.HmoveBlanks", s); diff --git a/stella/src/emucore/FrameBuffer.cxx b/stella/src/emucore/FrameBuffer.cxx index 73ce448c3..63bcd6224 100644 --- a/stella/src/emucore/FrameBuffer.cxx +++ b/stella/src/emucore/FrameBuffer.cxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: FrameBuffer.cxx,v 1.70 2006-01-10 02:09:34 stephena Exp $ +// $Id: FrameBuffer.cxx,v 1.71 2006-01-10 20:37:00 stephena Exp $ //============================================================================ #include @@ -50,6 +50,8 @@ FrameBuffer::FrameBuffer(OSystem* osystem) theZoomLevel(2), theMaxZoomLevel(2), theAspectRatio(1.0), + myUsePhosphor(false), + myPhosphorBlend(77), myFrameRate(0), myPauseStatus(false), myMessageTime(0), @@ -120,8 +122,14 @@ void FrameBuffer::initialize(const string& title, uInt32 width, uInt32 height, initSubsystem(); // Set emulation palette if a console exists + // Used when entering/exiting debugger +#ifdef DEVELOPER_SUPPORT if(&myOSystem->console()) + { + enablePhosphor(myOSystem->console().properties().get("Display.Phosphor", true) == "YES"); setPalette(myOSystem->console().mediaSource().palette()); + } +#endif // Enable unicode so we can see translated key events // (lowercase vs. uppercase characters) @@ -269,22 +277,25 @@ void FrameBuffer::setPalette(const uInt32* palette) } // Set palette for phosphor effect - for(i = 0; i < 256; ++i) + if(myUsePhosphor) { - for(j = 0; j < 256; ++j) + for(i = 0; i < 256; ++i) { - uInt8 ri = (uInt8) ((palette[i] & 0x00ff0000) >> 16); - uInt8 gi = (uInt8) ((palette[i] & 0x0000ff00) >> 8); - uInt8 bi = (uInt8) (palette[i] & 0x000000ff); - uInt8 rj = (uInt8) ((palette[j] & 0x00ff0000) >> 16); - uInt8 gj = (uInt8) ((palette[j] & 0x0000ff00) >> 8); - uInt8 bj = (uInt8) (palette[j] & 0x000000ff); + for(j = 0; j < 256; ++j) + { + uInt8 ri = (uInt8) ((palette[i] & 0x00ff0000) >> 16); + uInt8 gi = (uInt8) ((palette[i] & 0x0000ff00) >> 8); + uInt8 bi = (uInt8) (palette[i] & 0x000000ff); + uInt8 rj = (uInt8) ((palette[j] & 0x00ff0000) >> 16); + uInt8 gj = (uInt8) ((palette[j] & 0x0000ff00) >> 8); + uInt8 bj = (uInt8) (palette[j] & 0x000000ff); - Uint8 r = (Uint8) getPhosphor(ri, rj); - Uint8 g = (Uint8) getPhosphor(gi, gj); - Uint8 b = (Uint8) getPhosphor(bi, bj); + Uint8 r = (Uint8) getPhosphor(ri, rj); + Uint8 g = (Uint8) getPhosphor(gi, gj); + Uint8 b = (Uint8) getPhosphor(bi, bj); - myAvgPalette[i][j] = mapRGB(r, g, b); + myAvgPalette[i][j] = mapRGB(r, g, b); + } } } @@ -650,12 +661,10 @@ void FrameBuffer::drawString(const GUI::Font* font, const string& s, // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - uInt8 FrameBuffer::getPhosphor(uInt8 c1, uInt8 c2) { -int PHOSPHOR = 77; // FIXME - make this configurable - if(c2 > c1) SWAP(c1, c2); - return ((c1 - c2) * PHOSPHOR)/100 + c2; + return ((c1 - c2) * myPhosphorBlend)/100 + c2; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/stella/src/emucore/FrameBuffer.hxx b/stella/src/emucore/FrameBuffer.hxx index 487b11a58..267d1aa9a 100644 --- a/stella/src/emucore/FrameBuffer.hxx +++ b/stella/src/emucore/FrameBuffer.hxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: FrameBuffer.hxx,v 1.61 2006-01-10 02:09:34 stephena Exp $ +// $Id: FrameBuffer.hxx,v 1.62 2006-01-10 20:37:00 stephena Exp $ //============================================================================ #ifndef FRAMEBUFFER_HXX @@ -51,7 +51,7 @@ enum FrameStyle { All GUI elements (ala ScummVM) are drawn here as well. @author Stephen Anthony - @version $Id: FrameBuffer.hxx,v 1.61 2006-01-10 02:09:34 stephena Exp $ + @version $Id: FrameBuffer.hxx,v 1.62 2006-01-10 20:37:00 stephena Exp $ */ class FrameBuffer { @@ -393,6 +393,11 @@ class FrameBuffer */ virtual void addDirtyRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h) = 0; + /** + Enable/disable phosphor effect + */ + virtual void enablePhosphor(bool enable) = 0; + protected: // The parent system for the framebuffer OSystem* myOSystem; @@ -439,6 +444,12 @@ class FrameBuffer // Use dirty updates (SDL_UpdateRects instead of SDL_UpdateRect) bool myUseDirtyRects; + // Use phosphor effect (aka no flicker on 30Hz screens) + bool myUsePhosphor; + + // Amount to blend when using phosphor effect + int myPhosphorBlend; + // Table of RGB values for GUI elements static const uInt8 ourGUIColors[kNumColors-256][3]; diff --git a/stella/src/emucore/PropsSet.cxx b/stella/src/emucore/PropsSet.cxx index a7ebdff4a..861f7cbca 100644 --- a/stella/src/emucore/PropsSet.cxx +++ b/stella/src/emucore/PropsSet.cxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: PropsSet.cxx,v 1.15 2006-01-08 02:28:03 stephena Exp $ +// $Id: PropsSet.cxx,v 1.16 2006-01-10 20:37:00 stephena Exp $ //============================================================================ #include @@ -232,8 +232,8 @@ const Properties& PropertiesSet::defaultProperties() ourDefaultProperties.set("Display.Width", "160"); ourDefaultProperties.set("Display.YStart", "34"); ourDefaultProperties.set("Display.Height", "210"); + ourDefaultProperties.set("Display.Phosphor", "No"); - ourDefaultProperties.set("Emulation.CPU", "Auto-detect"); ourDefaultProperties.set("Emulation.HmoveBlanks", "Yes"); return ourDefaultProperties; diff --git a/stella/src/emucore/Settings.cxx b/stella/src/emucore/Settings.cxx index 0c9035164..e12b00479 100644 --- a/stella/src/emucore/Settings.cxx +++ b/stella/src/emucore/Settings.cxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: Settings.cxx,v 1.73 2006-01-09 16:50:01 stephena Exp $ +// $Id: Settings.cxx,v 1.74 2006-01-10 20:37:00 stephena Exp $ //============================================================================ #include @@ -40,6 +40,7 @@ Settings::Settings(OSystem* osystem) // Now fill it with options that are common to all versions of Stella set("video", "soft"); set("dirtyrects", "true"); + set("ppblend", "77"); set("gl_filter", "nearest"); set("gl_aspect", "2.0"); @@ -252,6 +253,10 @@ void Settings::validate() if(s != "standard" && s != "original" && s != "z26") set("palette", "standard"); + i = getInt("ppblend"); + if(i < 0) set("ppblend", "0"); + if(i > 100) set("ppblend", "100"); + s = getString("romname"); if(s != "romname" && s != "md5sum") set("ssname", "romname"); @@ -289,6 +294,7 @@ void Settings::usage() << " standard|\n" << " z26>\n" << " -framerate Display the given number of frames per second\n" + << " -ppblend Set blending for phosphor effect, if enabled (0-100)\n" << endl #ifdef SOUND_SUPPORT << " -sound <1|0> Enable sound generation\n" @@ -345,6 +351,7 @@ void Settings::usage() << " -ystart Sets the 'Display.YStart' property\n" << " -width Sets the 'Display.Width' property\n" << " -height Sets the 'Display.Height' property\n" + << " -pp Sets the 'Display.Phosphor' property\n" << " -hmove Sets the 'Emulation.HmoveBlanks' property\n" #endif << endl; diff --git a/stella/src/emucore/stella.pro b/stella/src/emucore/stella.pro index b7f01a4fa..7ff422717 100644 --- a/stella/src/emucore/stella.pro +++ b/stella/src/emucore/stella.pro @@ -177,7 +177,6 @@ "Controller.Left" "Paddles" "Controller.Right" "Paddles" "Display.Height" "192" -"Emulation.CPU" "High" "" "Cartridge.MD5" "01297d9b450455dd716db9658efb2fae" @@ -383,7 +382,6 @@ "Cartridge.Rarity" "Rare" "Cartridge.Type" "AR" "Display.YStart" "30" -"Emulation.CPU" "High" "Emulation.HmoveBlanks" "No" "" @@ -808,7 +806,6 @@ "Controller.Right" "Paddles" "Display.Format" "PAL" "Display.Height" "205" -"Emulation.CPU" "High" "Display.YStart" "55" "" @@ -1089,7 +1086,6 @@ "Display.Width" "152" "Display.XStart" "8" "Display.YStart" "33" -"Emulation.CPU" "High" "" "Cartridge.MD5" "0b577e63b0c64f9779f315dca8967587" @@ -1381,7 +1377,6 @@ "Controller.Left" "Paddles" "Controller.Right" "Paddles" "Display.Format" "PAL" -"Emulation.CPU" "High" "Display.YStart" "50" "" @@ -1686,7 +1681,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "39" -"Emulation.CPU" "High" "" "Cartridge.MD5" "12bca8305d5ab8ea51fe1cfd95d7ab0e" @@ -2595,7 +2589,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "35" -"Emulation.CPU" "High" "" "Cartridge.MD5" "1e1817d9cbcc3ba75043b7db4e6c228f" @@ -2671,7 +2664,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "36" -"Emulation.CPU" "High" "Emulation.HmoveBlanks" "No" "" @@ -3320,7 +3312,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "56" -"Emulation.CPU" "High" "" "Cartridge.MD5" "26f4f8b098609164effef7809e0121e1" @@ -3390,7 +3381,6 @@ "Display.Format" "PAL" "Display.Height" "200" "Display.YStart" "38" -"Emulation.CPU" "High" "Emulation.HmoveBlanks" "No" "" @@ -3813,7 +3803,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "38" -"Emulation.CPU" "High" "" "Cartridge.MD5" "2c9fadd510509cc7f28f1ccba931855f" @@ -3873,7 +3862,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "39" -"Emulation.CPU" "High" "" "Cartridge.MD5" "2d9e5d8d083b6367eda880e80dfdfaeb" @@ -3961,7 +3949,6 @@ "Display.Height" "198" "Display.Width" "152" "Display.XStart" "8" -"Emulation.CPU" "High" "" "Cartridge.MD5" "2e82a1628ef6c735c0ab8fa92927e9b0" @@ -4328,7 +4315,6 @@ "Cartridge.Manufacturer" "CCE" "Display.Height" "190" "Display.YStart" "39" -"Emulation.CPU" "High" "" "Cartridge.MD5" "32ecb5a652eb73d287e883eea751d99c" @@ -4512,7 +4498,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "36" -"Emulation.CPU" "High" "Emulation.HmoveBlanks" "No" "" @@ -4676,7 +4661,6 @@ "Controller.Left" "Paddles" "Controller.Right" "Paddles" "Display.Height" "192" -"Emulation.CPU" "High" "" "Cartridge.MD5" "36edef446ab4c2395666efc672b92ed0" @@ -4777,7 +4761,6 @@ "Display.Width" "136" "Display.XStart" "8" "Display.YStart" "32" -"Emulation.CPU" "High" "" "Cartridge.MD5" "3856b9425cc0185ed770376a62af0282" @@ -5884,7 +5867,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "38" -"Emulation.CPU" "High" "" "Cartridge.MD5" "468f2dec984f3d4114ea84f05edf82b6" @@ -6285,7 +6267,6 @@ "Cartridge.Type" "AR" "Display.Height" "200" "Display.YStart" "38" -"Emulation.CPU" "High" "Emulation.HmoveBlanks" "No" "" @@ -6340,7 +6321,6 @@ "Cartridge.ModelNo" "AR-4302" "Cartridge.Rarity" "Extremely Rare" "Cartridge.Type" "AR" -"Emulation.CPU" "High" "Display.YStart" "25" "" @@ -6371,7 +6351,6 @@ "Cartridge.Rarity" "Rare" "Cartridge.Type" "AR" "Display.YStart" "30" -"Emulation.CPU" "High" "Emulation.HmoveBlanks" "No" "" @@ -6859,7 +6838,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "35" -"Emulation.CPU" "High" "" "Cartridge.MD5" "52b448757081fd9fabf859f4e2f91f6b" @@ -7011,7 +6989,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "35" -"Emulation.CPU" "High" "" "Cartridge.MD5" "5494b9ee403d9757f0fd1f749e80214a" @@ -7127,7 +7104,6 @@ "Cartridge.Rarity" "Common" "Display.Height" "190" "Display.YStart" "39" -"Emulation.CPU" "High" "" "Cartridge.MD5" "568371fbae6f5e5b936af80031cd8888" @@ -7413,7 +7389,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "39" -"Emulation.CPU" "High" "" "Cartridge.MD5" "5b6f5bcbbde42fc77d0bdb3146693565" @@ -7654,7 +7629,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "39" -"Emulation.CPU" "High" "" "Cartridge.MD5" "5eeb81292992e057b290a5cd196f155d" @@ -7737,7 +7711,6 @@ "Cartridge.Rarity" "Common" "Display.Height" "190" "Display.YStart" "39" -"Emulation.CPU" "High" "" "Cartridge.MD5" "5f708ca39627697e859d1c53f8d8d7d2" @@ -7794,7 +7767,6 @@ "Display.Width" "152" "Display.XStart" "4" "Display.YStart" "32" -"Emulation.CPU" "High" "Emulation.HmoveBlanks" "No" "" @@ -8108,7 +8080,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "36" -"Emulation.CPU" "High" "Emulation.HmoveBlanks" "No" "" @@ -8364,7 +8335,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "39" -"Emulation.CPU" "High" "" "Cartridge.MD5" "66bc1bef269ea59033928bac2d1d81e6" @@ -8380,7 +8350,6 @@ "Display.Width" "136" "Display.XStart" "8" "Display.YStart" "32" -"Emulation.CPU" "High" "" "Cartridge.MD5" "66b92ede655b73b402ecd1f4d8cd9c50" @@ -8465,7 +8434,6 @@ "Display.Width" "136" "Display.XStart" "8" "Display.YStart" "32" -"Emulation.CPU" "High" "" "Cartridge.MD5" "67cf913d1df0bf2d7ae668060d0b6694" @@ -8608,7 +8576,6 @@ "Cartridge.Rarity" "Rare" "Cartridge.Type" "AR" "Display.YStart" "30" -"Emulation.CPU" "High" "Emulation.HmoveBlanks" "No" "" @@ -9024,7 +8991,6 @@ "Cartridge.Type" "AR" "Controller.Left" "Paddles" "Controller.Right" "Paddles" -"Emulation.CPU" "High" "" "Cartridge.MD5" "6e7ed74082f39ad4166c823765a59909" @@ -9229,7 +9195,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "38" -"Emulation.CPU" "High" "" "Cartridge.MD5" "71464c54da46adae9447926fdbfc1abe" @@ -9361,7 +9326,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "56" -"Emulation.CPU" "High" "" "Cartridge.MD5" "724613effaf7743cbcd695fab469c2a8" @@ -9551,7 +9515,6 @@ "Display.Width" "152" "Display.XStart" "8" "Display.YStart" "56" -"Emulation.CPU" "High" "" "Cartridge.MD5" "74f623833429d35341b7a84bc09793c0" @@ -9595,7 +9558,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "38" -"Emulation.CPU" "High" "" "Cartridge.MD5" "75511bb694662301c9e71df645f4b5a7" @@ -9659,7 +9621,6 @@ "Display.Width" "152" "Display.XStart" "8" "Display.YStart" "52" -"Emulation.CPU" "High" "" "Cartridge.MD5" "75b22fdf632d76e246433db1ebccd3c4" @@ -9750,7 +9711,6 @@ "Display.Format" "PAL" "Display.Height" "200" "Display.YStart" "38" -"Emulation.CPU" "High" "Emulation.HmoveBlanks" "No" "" @@ -9828,7 +9788,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "39" -"Emulation.CPU" "High" "" "Cartridge.MD5" "77cd9a9dd810ce8042bdb9d40e256dfe" @@ -10016,7 +9975,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "36" -"Emulation.CPU" "High" "Emulation.HmoveBlanks" "No" "" @@ -10045,7 +10003,6 @@ "Display.Width" "152" "Display.XStart" "8" "Display.YStart" "36" -"Emulation.CPU" "High" "" "Cartridge.MD5" "7a64b5a6e90619c6aacf244cdd7502f8" @@ -10173,7 +10130,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "64" -"Emulation.CPU" "High" "" "Cartridge.MD5" "7b79beb378d1b4471def90ceccf413de" @@ -10330,7 +10286,6 @@ "Cartridge.Rarity" "Extremely Rare" "Cartridge.Type" "AR" "Display.Format" "PAL" -"Emulation.CPU" "High" "Display.YStart" "50" "" @@ -10350,7 +10305,6 @@ "Cartridge.Type" "AR" "Display.Width" "144" "Display.XStart" "8" -"Emulation.CPU" "High" "" "Cartridge.MD5" "7e464186ba384069582d9f0c141f7491" @@ -10591,7 +10545,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "36" -"Emulation.CPU" "High" "Emulation.HmoveBlanks" "No" "" @@ -11404,7 +11357,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "60" -"Emulation.CPU" "High" "" "Cartridge.MD5" "8c103a79b007a2fd5af602334937b4e1" @@ -11812,7 +11764,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "39" -"Emulation.CPU" "High" "" "Cartridge.MD5" "90b1799dddb8bf748ee286d22e609480" @@ -12584,7 +12535,6 @@ "Display.Width" "152" "Display.XStart" "8" "Display.YStart" "36" -"Emulation.CPU" "High" "" "Cartridge.MD5" "a5b7f420ca6cc1384da0fed523920d8e" @@ -12989,7 +12939,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "36" -"Emulation.CPU" "High" "Emulation.HmoveBlanks" "No" "" @@ -13213,7 +13162,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "39" -"Emulation.CPU" "High" "" "Cartridge.MD5" "a2eb84cfeed55acd7fece7fefdc83fbb" @@ -13246,7 +13194,6 @@ "Display.Width" "136" "Display.XStart" "8" "Display.YStart" "52" -"Emulation.CPU" "High" "" "Cartridge.MD5" "a3b9d2be822eab07e7f4b10593fb5eaa" @@ -13293,7 +13240,6 @@ "Cartridge.Type" "AR" "Display.Width" "144" "Display.XStart" "8" -"Emulation.CPU" "High" "" "Cartridge.MD5" "a47878a760f5fa3aa99f95c3fdc70a0b" @@ -13453,7 +13399,6 @@ "Display.Width" "152" "Display.XStart" "8" "Display.YStart" "53" -"Emulation.CPU" "High" "" "Cartridge.MD5" "a68a396ff1f3b311712f6bdf05dcefab" @@ -13513,7 +13458,6 @@ "Display.Height" "198" "Display.Width" "152" "Display.XStart" "8" -"Emulation.CPU" "High" "" "Cartridge.MD5" "a7cf2b9afdbb3a161bf418dbcf0321dc" @@ -13766,7 +13710,6 @@ "Controller.Left" "Paddles" "Controller.Right" "Paddles" "Display.Height" "192" -"Emulation.CPU" "High" "" "Cartridge.MD5" "aad91be0bf78d33d29758876d999848a" @@ -14178,7 +14121,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "39" -"Emulation.CPU" "High" "" "Cartridge.MD5" "afe88aae81d99e0947c0cfb687b16251" @@ -14481,7 +14423,6 @@ "Cartridge.Type" "AR" "Display.Height" "200" "Display.YStart" "38" -"Emulation.CPU" "High" "Emulation.HmoveBlanks" "No" "" @@ -14530,7 +14471,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "64" -"Emulation.CPU" "High" "" "Cartridge.MD5" "b59417d083b0be2d49a7d93769880a4b" @@ -14548,7 +14488,6 @@ "Display.Format" "PAL" "Display.Height" "190" "Display.YStart" "43" -"Emulation.CPU" "High" "" "Cartridge.MD5" "b6812eaf87127f043e78f91f2028f9f4" @@ -14662,7 +14601,6 @@ "Cartridge.Type" "AR" "Display.Format" "PAL" "Display.YStart" "40" -"Emulation.CPU" "High" "Emulation.HmoveBlanks" "No" "" @@ -15612,7 +15550,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "38" -"Emulation.CPU" "High" "" "Cartridge.MD5" "c47244f5557ae12c61e8e01c140e2173" @@ -15843,7 +15780,6 @@ "Display.Width" "152" "Display.XStart" "8" "Display.YStart" "33" -"Emulation.CPU" "High" "" "Cartridge.MD5" "c745487828a1a6a743488ecebc55ad44" @@ -16263,7 +16199,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "36" -"Emulation.CPU" "High" "Emulation.HmoveBlanks" "No" "" @@ -16368,7 +16303,6 @@ "Display.Height" "198" "Display.Width" "152" "Display.XStart" "8" -"Emulation.CPU" "High" "" "Cartridge.MD5" "cd6b3dff86a55a4a6d23007ee360ea0e" @@ -16396,7 +16330,6 @@ "Display.Width" "136" "Display.XStart" "8" "Display.YStart" "52" -"Emulation.CPU" "High" "" "Cartridge.MD5" "cd9fea12051e414a6dfe17052067da8e" @@ -16741,7 +16674,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "36" -"Emulation.CPU" "High" "Emulation.HmoveBlanks" "No" "" @@ -17018,7 +16950,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "38" -"Emulation.CPU" "High" "" "Cartridge.MD5" "d536a84d4e1f170305e17f7078296a50" @@ -17031,7 +16962,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "39" -"Emulation.CPU" "High" "" "Cartridge.MD5" "d4aa89e96d2902692f5c45f36903d336" @@ -17712,7 +17642,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "39" -"Emulation.CPU" "High" "" "Cartridge.MD5" "ddd1efc1862cd3eb3baf4cba81ff5050" @@ -18148,7 +18077,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "64" -"Emulation.CPU" "High" "" "Cartridge.MD5" "e2b682f6e6d76b35c180c7d847e93b4f" @@ -18352,7 +18280,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "38" -"Emulation.CPU" "High" "" "Cartridge.MD5" "e505bd8e59e31aaed20718d47b15c61b" @@ -18389,7 +18316,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "39" -"Emulation.CPU" "High" "" "Cartridge.MD5" "e556e07cc06c803f2955986f53ef63ed" @@ -18646,7 +18572,6 @@ "Display.Width" "152" "Display.XStart" "8" "Display.YStart" "33" -"Emulation.CPU" "High" "" "Cartridge.MD5" "e88340f5bd2f03e2e9ce5ecfa9c644f5" @@ -18921,7 +18846,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "64" -"Emulation.CPU" "High" "" "Cartridge.MD5" "eb9f8b84c193d9d93a58fca112aa39ed" @@ -19225,7 +19149,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "36" -"Emulation.CPU" "High" "Emulation.HmoveBlanks" "No" "" @@ -19360,7 +19283,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "39" -"Emulation.CPU" "High" "" "Cartridge.MD5" "f1127ade54037236e75a133b1dfc389d" @@ -19373,7 +19295,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "36" -"Emulation.CPU" "High" "" "Cartridge.MD5" "f10e3f45fb01416c87e5835ab270b53a" @@ -19734,7 +19655,6 @@ "Display.Width" "152" "Display.XStart" "8" "Display.YStart" "33" -"Emulation.CPU" "High" "" "Cartridge.MD5" "f5a2f6efa33a3e5541bc680e9dc31d5b" @@ -20339,7 +20259,6 @@ "Display.Height" "198" "Display.Width" "152" "Display.XStart" "8" -"Emulation.CPU" "High" "" "Cartridge.MD5" "fb27afe896e7c928089307b32e5642ee" @@ -20374,7 +20293,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "59" -"Emulation.CPU" "High" "" "Cartridge.MD5" "fb91dfc36cddaa54b09924ae8fd96199" @@ -20526,7 +20444,6 @@ "Display.Width" "144" "Display.XStart" "8" "Display.YStart" "36" -"Emulation.CPU" "High" "Emulation.HmoveBlanks" "No" "" @@ -20664,7 +20581,6 @@ "Controller.Left" "Paddles" "Controller.Right" "Paddles" "Display.Format" "PAL" -"Emulation.CPU" "High" "Display.YStart" "50" ""