document what is going on with mF8_sega

This commit is contained in:
adelikat 2016-05-22 15:33:49 -04:00
parent 222d6a3ade
commit 3194e2cdd7
1 changed files with 4 additions and 14 deletions

View File

@ -2,24 +2,14 @@
namespace BizHawk.Emulation.Cores.Atari.Atari2600
{
/*
F8 (Atari style 8K)
/*
F8 Sega
-----
This is the fairly standard way 8K of cartridge ROM was implemented. There are two
4K ROM banks, which get mapped into the 4K of cartridge space. Accessing 1FF8 or
1FF9 selects one of the two 4K banks. When one of these two addresses are accessed,
the banks switch spontaniously.
ANY kind of access will trigger the switching- reading or writing. Usually games use
LDA or BIT on 1FF8/1FF9 to perform the switch.
When the switch occurs, the entire 4K ROM bank switches, including the code that is
reading the 1FF8/1FF9 location. Usually, games put a small stub of code in BOTH banks
so when the switch occurs, the code won't crash.
Apparently some of Sega's games have banks that are physically flipped, so even though this game uses a common mapper, the initial bank that gets pointed to is incorrect.
*/
internal class mF8_sega : MapperBase
internal class mF8_sega : MapperBase
{
private int _bank4K=1;