1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-12-25 03:32:01 +00:00

Added an attempt to distinguish the MegaBoy (now with proper capitalisation) and a test for it.

This commit is contained in:
Thomas Harte 2017-03-13 20:43:12 -04:00
parent 582da14a14
commit a6897ebde0
3 changed files with 13 additions and 1 deletions

View File

@ -287,6 +287,7 @@ static NSDictionary<NSString *, AtariROMRecord *> *romRecordsBySHA1 = @{
Record(@"18fac606400c08a0469aebd9b071ae3aec2a3cf2", None, NO) // Math Gran Prix
Record(@"aba25089d87cd6fee8d206b880baa5d938aae255", None, NO) // Maze Craze
Record(@"0ae118373c7bda97da2f8d9c113e1e09ea7e49e1", None, NO) // Mega Force
Record(@"46977baf0e1ee6124b524258879c46f80d624fae", MegaBoy, NO) // MegaBoy
Record(@"9c5748b38661dbadcbc9cd1ec6a6b0c550b0e3da", None, NO) // MegaMania
Record(@"debb1572eadb20beb0e4cd2df8396def8eb02098", None, NO) // Meltdown
Record(@"7fcf95459ea597a332bf5b6f56c8f891307b45b4", Atari16k, NO) // Midnight Magic

View File

@ -116,6 +116,14 @@ static void DeterminePagingFor16kCartridge(StaticAnalyser::Target &target, const
if(mnetwork_access_count > atari_access_count) target.atari.paging_model = StaticAnalyser::Atari2600PagingModel::MNetwork;
}
static void DeterminePagingFor64kCartridge(StaticAnalyser::Target &target, const Storage::Cartridge::Cartridge::Segment &segment, const StaticAnalyser::MOS6502::Disassembly &disassembly)
{
// make an assumption that this is a Tigervision if there is a write to 3F
target.atari.paging_model =
(disassembly.external_stores.find(0x3f) != disassembly.external_stores.end()) ?
StaticAnalyser::Atari2600PagingModel::Tigervision : StaticAnalyser::Atari2600PagingModel::MegaBoy;
}
static void DeterminePagingForCartridge(StaticAnalyser::Target &target, const Storage::Cartridge::Cartridge::Segment &segment)
{
if(segment.data.size() == 2048)
@ -154,6 +162,9 @@ static void DeterminePagingForCartridge(StaticAnalyser::Target &target, const St
case 32768:
target.atari.paging_model = StaticAnalyser::Atari2600PagingModel::Atari32k;
break;
case 65536:
DeterminePagingFor64kCartridge(target, segment, disassembly);
break;
default:
break;
}

View File

@ -36,7 +36,7 @@ enum class Atari2600PagingModel {
Tigervision,
CBSRamPlus,
MNetwork,
Megaboy,
MegaBoy,
Pitfall2
};