mirror of
https://github.com/TomHarte/CLK.git
synced 2024-08-26 06:29:04 +00:00
Merge pull request #108 from TomHarte/PitfallIIDetection
Adds tested detection of the Pitfall II and MegaBoy paging schemes.
This commit is contained in:
commit
8a659e3117
@ -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
|
||||
@ -347,9 +348,9 @@ static NSDictionary<NSString *, AtariROMRecord *> *romRecordsBySHA1 = @{
|
||||
Record(@"483fc907471c5c358fb3e624097861a2fc9c1e45", None, NO) // Picnic
|
||||
Record(@"57774193081acea010bd935a0449bc8f53157128", None, NO) // Piece o' Cake
|
||||
Record(@"d08b30ca2e5e351cac3bd3fb760b87a1a30aa300", Atari8k, NO) // Pigs in Space
|
||||
Record(@"920cfbd517764ad3fa6a7425c031bd72dc7d927c", None, NO) // Pitfall II
|
||||
Record(@"d0ec08b88d032627701ad72337524d91b26c656b", None, NO) // Pitfall! (1982) (Activision) (PAL) [!]
|
||||
Record(@"8d525480445d48cc48460dc666ebad78c8fb7b73", None, NO) // Pitfall!
|
||||
Record(@"920cfbd517764ad3fa6a7425c031bd72dc7d927c", Pitfall2, NO) // Pitfall II
|
||||
Record(@"d0ec08b88d032627701ad72337524d91b26c656b", None, NO) // Pitfall! (PAL)
|
||||
Record(@"8d525480445d48cc48460dc666ebad78c8fb7b73", None, NO) // Pitfall! (NTSC)
|
||||
Record(@"dcca30e4ae58c85a070f0c6cfaa4d27be2970d61", None, NO) // Planet of the Apes
|
||||
Record(@"ccfcbf52815a441158977292b719f7c5ed80c515", None, NO) // Planet Patrol
|
||||
Record(@"103398dd35ebd39450c5cac760fa332aac3f9458", None, NO) // Plaque Attack
|
||||
|
@ -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)
|
||||
@ -142,6 +150,9 @@ static void DeterminePagingForCartridge(StaticAnalyser::Target &target, const St
|
||||
case 8192:
|
||||
DeterminePagingFor8kCartridge(target, segment, disassembly);
|
||||
break;
|
||||
case 10495:
|
||||
target.atari.paging_model = StaticAnalyser::Atari2600PagingModel::Pitfall2;
|
||||
break;
|
||||
case 12288:
|
||||
target.atari.paging_model = StaticAnalyser::Atari2600PagingModel::CBSRamPlus;
|
||||
break;
|
||||
@ -151,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;
|
||||
}
|
||||
|
@ -36,7 +36,8 @@ enum class Atari2600PagingModel {
|
||||
Tigervision,
|
||||
CBSRamPlus,
|
||||
MNetwork,
|
||||
Megaboy
|
||||
MegaBoy,
|
||||
Pitfall2
|
||||
};
|
||||
|
||||
/*!
|
||||
|
Loading…
Reference in New Issue
Block a user