mirror of https://github.com/stella-emu/stella.git
partial fix for issue #537 (RAM writes to read port)
This commit is contained in:
parent
4e8d7a2d5b
commit
77c00f0f68
|
@ -113,10 +113,23 @@ bool Cartridge3E::poke(uInt16 address, uInt8 value)
|
|||
return mySystem->tia().poke(address, value);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(address & 0x0400)
|
||||
{
|
||||
pokeRAM(myRAM[(address & 0x03FF) + ((myCurrentBank - 256) << 10)], pokeAddress, value);
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Writing to the read port should be ignored, but (TODO) trigger a break if option enabled
|
||||
uInt8 dummy;
|
||||
|
||||
pokeRAM(dummy, pokeAddress, value);
|
||||
return false;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
bool Cartridge3E::bank(uInt16 bank)
|
||||
|
|
|
@ -82,10 +82,21 @@ uInt8 Cartridge4KSC::peek(uInt16 address)
|
|||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
bool Cartridge4KSC::poke(uInt16 address, uInt8 value)
|
||||
{
|
||||
if(address & 0x080)
|
||||
{
|
||||
pokeRAM(myRAM[address & 0x007F], address, value);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Writing to the read port should be ignored, but (TODO) trigger a break if option enabled
|
||||
uInt8 dummy;
|
||||
|
||||
pokeRAM(dummy, address, value);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
bool Cartridge4KSC::patch(uInt16 address, uInt8 value)
|
||||
|
|
|
@ -98,9 +98,20 @@ bool CartridgeBFSC::poke(uInt16 address, uInt8 value)
|
|||
return false;
|
||||
}
|
||||
|
||||
if(address & 0x080)
|
||||
{
|
||||
pokeRAM(myRAM[address & 0x007F], pokeAddress, value);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Writing to the read port should be ignored, but (TODO) trigger a break if option enabled
|
||||
uInt8 dummy;
|
||||
|
||||
pokeRAM(dummy, pokeAddress, value);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
bool CartridgeBFSC::bank(uInt16 bank)
|
||||
|
|
|
@ -98,9 +98,20 @@ bool CartridgeEFSC::poke(uInt16 address, uInt8 value)
|
|||
return false;
|
||||
}
|
||||
|
||||
if(address & 0x080)
|
||||
{
|
||||
pokeRAM(myRAM[address & 0x007F], pokeAddress, value);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Writing to the read port should be ignored, but (TODO) trigger a break if option enabled
|
||||
uInt8 dummy;
|
||||
|
||||
pokeRAM(dummy, pokeAddress, value);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
bool CartridgeEFSC::bank(uInt16 bank)
|
||||
|
|
|
@ -98,9 +98,20 @@ bool CartridgeF4SC::poke(uInt16 address, uInt8 value)
|
|||
return false;
|
||||
}
|
||||
|
||||
if(address & 0x080)
|
||||
{
|
||||
pokeRAM(myRAM[address & 0x007F], pokeAddress, value);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Writing to the read port should be ignored, but (TODO) trigger a break if option enabled
|
||||
uInt8 dummy;
|
||||
|
||||
pokeRAM(dummy, pokeAddress, value);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
bool CartridgeF4SC::bank(uInt16 bank)
|
||||
|
|
|
@ -138,9 +138,20 @@ bool CartridgeF6SC::poke(uInt16 address, uInt8 value)
|
|||
break;
|
||||
}
|
||||
|
||||
if(address & 0x080)
|
||||
{
|
||||
pokeRAM(myRAM[address & 0x007F], address, value);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Writing to the read port should be ignored, but (TODO) trigger a break if option enabled
|
||||
uInt8 dummy;
|
||||
|
||||
pokeRAM(dummy, address, value);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
bool CartridgeF6SC::bank(uInt16 bank)
|
||||
|
|
|
@ -118,9 +118,20 @@ bool CartridgeF8SC::poke(uInt16 address, uInt8 value)
|
|||
break;
|
||||
}
|
||||
|
||||
if(address & 0x080)
|
||||
{
|
||||
pokeRAM(myRAM[address & 0x007F], address, value);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Writing to the read port should be ignored, but (TODO) trigger a break if option enabled
|
||||
uInt8 dummy;
|
||||
|
||||
pokeRAM(dummy, address, value);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
bool CartridgeF8SC::bank(uInt16 bank)
|
||||
|
|
Loading…
Reference in New Issue