Started to add support for optionally playing games on 'CMOS EPROM'. When the game is stored on a CMOS EPROM, the six unused bits in TIA reads will not be floating freely. Instead they all will be pulled high. Programmers might use this to help finding the commom problem where they intend to read an immediate value, but are reading from zero-page instead, because they forgot the '#'.

To test this feature set 'myFloatTIAOutputPins' to 'false' in TIA::reset() and play the old version of Reindeer Rescue where you can see how Santa gets stuck in the background.

TODO: add a command line switch to control this feature. Steve can you help?


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1417 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
estolberg 2008-03-03 17:51:55 +00:00
parent 9e23fa3c72
commit 9e8e2fac6c
2 changed files with 17 additions and 3 deletions

View File

@ -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: TIA.cxx,v 1.84 2008-02-19 12:33:05 stephena Exp $
// $Id: TIA.cxx,v 1.85 2008-03-03 17:51:55 estolberg Exp $
//============================================================================
#include <cassert>
@ -191,6 +191,10 @@ void TIA::reset()
myAllowHMOVEBlanks =
(myConsole.properties().get(Emulation_HmoveBlanks) == "YES");
myFloatTIAOutputPins = true;
// (myConsole.properties().get(Emulation_FloatOutputPins) == "YES");
// TODO: add an actual command line switch to set this
if(myConsole.getFramerate() > 55) // NTSC
{
myColorLossEnabled = false;
@ -1969,6 +1973,13 @@ uInt8 TIA::peek(uInt16 addr)
updateFrame(mySystem->cycles() * 3);
uInt8 noise = mySystem->getDataBusState() & 0x3F;
/*
On certain CMOS EPROM chips the unused TIA pins on a read are not
floating but pulled high. Programmers might want to check their
games for compatibility, so we make this optional.
*/
if(myFloatTIAOutputPins == false) noise = 0x3F;
switch(addr & 0x000f)
{

View File

@ -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: TIA.hxx,v 1.45 2008-02-19 12:33:05 stephena Exp $
// $Id: TIA.hxx,v 1.46 2008-03-03 17:51:55 estolberg Exp $
//============================================================================
#ifndef TIA_HXX
@ -40,7 +40,7 @@ class Settings;
be displayed on screen.
@author Bradford W. Mott
@version $Id: TIA.hxx,v 1.45 2008-02-19 12:33:05 stephena Exp $
@version $Id: TIA.hxx,v 1.46 2008-03-03 17:51:55 estolberg Exp $
*/
class TIA : public Device , public MediaSource
{
@ -506,6 +506,9 @@ class TIA : public Device , public MediaSource
// Indicates if we're allowing HMOVE blanks to be enabled
bool myAllowHMOVEBlanks;
// Indicates if unused TIA pins are floating on a peek
bool myFloatTIAOutputPins;
// TIA M0 "bug" used for stars in Cosmic Ark flag
bool myM0CosmicArkMotionEnabled;