mirror of https://github.com/stella-emu/stella.git
more types for partial fix for issue #537 (RAM writes to read port)
This commit is contained in:
parent
15426a31e0
commit
4b0f255b8d
|
@ -98,8 +98,19 @@ bool CartridgeDFSC::poke(uInt16 address, uInt8 value)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
pokeRAM(myRAM[address & 0x007F], pokeAddress, value);
|
if(!(address & 0x080))
|
||||||
return true;
|
{
|
||||||
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
|
|
@ -128,8 +128,19 @@ bool CartridgeFA::poke(uInt16 address, uInt8 value)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
pokeRAM(myRAM[address & 0x00FF], address, value);
|
if (!(address & 0x100))
|
||||||
return true;
|
{
|
||||||
|
pokeRAM(myRAM[address & 0x00FF], 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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
|
|
@ -195,8 +195,19 @@ bool CartridgeFA2::poke(uInt16 address, uInt8 value)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
pokeRAM(myRAM[address & 0x00FF], address, value);
|
if(!(address & 0x100))
|
||||||
return true;
|
{
|
||||||
|
pokeRAM(myRAM[address & 0x00FF], 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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
|
|
@ -129,9 +129,21 @@ bool CartridgeWD::poke(uInt16 address, uInt8 value)
|
||||||
if(!(address & 0x1000)) // TIA addresses
|
if(!(address & 0x1000)) // TIA addresses
|
||||||
return mySystem->tia().poke(address, value);
|
return mySystem->tia().poke(address, value);
|
||||||
else
|
else
|
||||||
pokeRAM(myRAM[address & 0x003F], address, value);
|
{
|
||||||
|
if(address & 0x040)
|
||||||
|
{
|
||||||
|
pokeRAM(myRAM[address & 0x003F], address, value);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Writing to the read port should be ignored, but (TODO) trigger a break if option enabled
|
||||||
|
uInt8 dummy;
|
||||||
|
|
||||||
return true;
|
pokeRAM(dummy, address, value);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
|
Loading…
Reference in New Issue