mirror of https://github.com/stella-emu/stella.git
initial commit
defines properties for Asteroids, Chopper Command and Frooger add new properties parser add reading score etc. from RAM add test hotkeys (CTRL+SHIFT S/V) display current score and variation
This commit is contained in:
parent
ae43b33c7b
commit
4f100b0fce
|
@ -505,6 +505,8 @@ PhysicalKeyboardHandler::EventMappingArray PhysicalKeyboardHandler::DefaultCommo
|
|||
{Event::Unwind1Menu, KBDK_RIGHT, MOD3},
|
||||
{Event::Unwind10Menu, KBDK_RIGHT, KBDM_SHIFT | MOD3},
|
||||
{Event::UnwindAllMenu, KBDK_UP, MOD3},
|
||||
{Event::ShowScore, KBDK_S, KBDM_SHIFT | KBDM_CTRL},
|
||||
{Event::ShowVariation, KBDK_V, KBDM_SHIFT | KBDM_CTRL},
|
||||
|
||||
#if defined(RETRON77)
|
||||
{Event::ConsoleColorToggle, KBDK_F4}, // back ("COLOR","B/W")
|
||||
|
|
|
@ -1145,6 +1145,144 @@ void Console::stateChanged(EventHandlerState state)
|
|||
// only the CompuMate used to care about state changes
|
||||
}
|
||||
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Int32 Console::numVariations()
|
||||
{
|
||||
string numVariations = myProperties.get(PropType::Cart_Variations);
|
||||
|
||||
return (numVariations == EmptyString) ? 1 : std::min(stoi(numVariations), 256);
|
||||
}
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Int32 Console::numPlayers()
|
||||
{
|
||||
string numPlayers = myProperties.get(PropType::Cart_Players);
|
||||
|
||||
return (numPlayers == EmptyString) ? 1 : std::min(stoi(numPlayers), 4);
|
||||
}
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
bool Console::parseAdresses(Int32& variation, Int32& player, Int32 scores[])
|
||||
{
|
||||
// format:
|
||||
// b, ; variation format (BCD, HEX)
|
||||
// 0, ; add to variation
|
||||
// 80, ; variation address in hex
|
||||
// 81, ; player address in hex
|
||||
// b, ; score format (BCD, HEX)
|
||||
// 10, ; score multiplier
|
||||
// 2, ; score addresses per player
|
||||
// n-times 82, ; score addresses player 1 in hex, high to low
|
||||
// n-times 83, ; score addresses player 2 in hex, high to low
|
||||
// ...
|
||||
/*
|
||||
Frogger
|
||||
"Cart.Players" "2"
|
||||
"Cart.Variations" "6"
|
||||
"Cart.Addresses" "b,0,dd,e6,b,1,2,cc,ce,cd,cf"
|
||||
|
||||
Chopper Command:
|
||||
"Cart.Variations" "4"
|
||||
"Cart.Players" "2"
|
||||
"Cart.Addresses" "b,1,e0,eb,b,1,3,ec,ee,f0,ed,ef,f1"
|
||||
|
||||
Asteroids
|
||||
"Cart.Players" "2"
|
||||
"Cart.Variations" "66"
|
||||
"Cart.Addresses" "h,1,80,c7,b,10,2,bd,be,c0,c1"
|
||||
|
||||
*/
|
||||
string addresses = myProperties.get(PropType::Cart_Addresses);
|
||||
char format;
|
||||
Int16 addr;
|
||||
Int32 varAdd, numScoreAddr, scoreMult;
|
||||
|
||||
// Since istringstream swallows whitespace, we have to make the
|
||||
// delimiters be spaces
|
||||
std::replace(addresses.begin(), addresses.end(), ',', ' ');
|
||||
std::replace(addresses.begin(), addresses.end(), '|', ' ');
|
||||
istringstream buf(addresses);
|
||||
|
||||
// 1. retrieve current variation (0..255)
|
||||
if (!(buf >> format && buf >> varAdd && buf >> std::hex >> addr))
|
||||
return false;
|
||||
|
||||
variation = mySystem->peek(addr);
|
||||
if (format == 'b')
|
||||
variation = (variation >> 4) * 10 + variation % 16;
|
||||
variation += varAdd;
|
||||
variation = std::min(variation, numVariations());
|
||||
|
||||
// 2. retrieve current player (0..3)
|
||||
string playerFormat;
|
||||
|
||||
if (!(buf >> std::hex >> addr))
|
||||
return false;
|
||||
|
||||
player = mySystem->peek(addr);
|
||||
player = std::min(player, numPlayers());
|
||||
|
||||
// 3. retrieve current scores for all players
|
||||
if (!(buf >> format && buf >> std::dec >> scoreMult && buf >> std::hex >> numScoreAddr))
|
||||
return false;
|
||||
|
||||
for (int i = 0; i < numPlayers(); ++i)
|
||||
{
|
||||
Int32 totalScore = 0;
|
||||
|
||||
for (int j = 0; j < numScoreAddr; ++j)
|
||||
{
|
||||
Int32 score;
|
||||
|
||||
if (!(buf >> std::hex >> addr))
|
||||
return false;
|
||||
|
||||
totalScore *= (format == 'b') ? 100 : 256;
|
||||
|
||||
score = mySystem->peek(addr);
|
||||
if (format == 'b')
|
||||
score = (score >> 4) * 10 + score % 16;
|
||||
totalScore += score;
|
||||
}
|
||||
scores[i] = totalScore * scoreMult;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Int32 Console::variation()
|
||||
{
|
||||
Int32 variation, player, scores[4];
|
||||
|
||||
if (parseAdresses(variation, player, scores))
|
||||
return variation;
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Int32 Console::player()
|
||||
{
|
||||
Int32 variation, player, scores[4];
|
||||
|
||||
if (parseAdresses(variation, player, scores))
|
||||
return player;
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Int32 Console::score()
|
||||
{
|
||||
Int32 variation, player, scores[4];
|
||||
|
||||
if (parseAdresses(variation, player, scores))
|
||||
return scores[std::min(player, Int32(3))];
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
PaletteArray Console::ourNTSCPalette = {
|
||||
0x000000, 0, 0x4a4a4a, 0, 0x6f6f6f, 0, 0x8e8e8e, 0,
|
||||
|
|
|
@ -326,6 +326,16 @@ class Console : public Serializable, public ConsoleIO
|
|||
*/
|
||||
void setTIAProperties();
|
||||
|
||||
/*
|
||||
Methods for returning high score related variables
|
||||
Return -1 if undefined
|
||||
*/
|
||||
Int32 numVariations();
|
||||
Int32 numPlayers();
|
||||
Int32 variation();
|
||||
Int32 player();
|
||||
Int32 score();
|
||||
|
||||
private:
|
||||
/**
|
||||
* Define console timing based on current display format
|
||||
|
@ -442,6 +452,8 @@ class Console : public Serializable, public ConsoleIO
|
|||
// The audio settings
|
||||
AudioSettings& myAudioSettings;
|
||||
|
||||
bool parseAdresses(Int32& variation, Int32& player, Int32 scores[]);
|
||||
|
||||
// Table of RGB values for NTSC, PAL and SECAM
|
||||
static PaletteArray ourNTSCPalette;
|
||||
static PaletteArray ourPALPalette;
|
||||
|
|
|
@ -120,6 +120,7 @@ class Event
|
|||
ToggleFrameStats, ToggleSAPortOrder, ExitGame,
|
||||
|
||||
// add new events from here to avoid that user remapped events get overwritten
|
||||
ShowScore, ShowVariation,
|
||||
|
||||
LastType
|
||||
};
|
||||
|
|
|
@ -717,6 +717,24 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated)
|
|||
if(pressed && !repeated) myOSystem.frameBuffer().tiaSurface().saveSnapShot();
|
||||
return;
|
||||
|
||||
case Event::ShowScore:
|
||||
if (pressed)
|
||||
{
|
||||
ostringstream msg;
|
||||
msg << "Score: " << myOSystem.console().score();
|
||||
myOSystem.frameBuffer().showMessage(msg.str());
|
||||
}
|
||||
return;
|
||||
|
||||
case Event::ShowVariation:
|
||||
if (pressed)
|
||||
{
|
||||
ostringstream msg;
|
||||
msg << "Variation: " << myOSystem.console().variation();
|
||||
myOSystem.frameBuffer().showMessage(msg.str());
|
||||
}
|
||||
return;
|
||||
|
||||
case Event::ExitMode:
|
||||
// Special handling for Escape key
|
||||
// Basically, exit whichever mode we're currently in
|
||||
|
@ -1987,7 +2005,9 @@ EventHandler::EmulActionList EventHandler::ourEmulActionList = { {
|
|||
{ Event::Combo13, "Combo 13", "" },
|
||||
{ Event::Combo14, "Combo 14", "" },
|
||||
{ Event::Combo15, "Combo 15", "" },
|
||||
{ Event::Combo16, "Combo 16", "" }
|
||||
{ Event::Combo16, "Combo 16", "" },
|
||||
{ Event::ShowScore, "Display current score", "" },
|
||||
{ Event::ShowVariation, "Display current variation", "" },
|
||||
} };
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
@ -2026,6 +2046,7 @@ const Event::EventSet EventHandler::MiscEvents = {
|
|||
// Event::MouseButtonLeftValue, Event::MouseButtonRightValue,
|
||||
Event::HandleMouseControl, Event::ToggleGrabMouse,
|
||||
Event::ToggleSAPortOrder,
|
||||
Event::ShowScore, Event::ShowVariation,
|
||||
};
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
|
|
@ -468,7 +468,7 @@ class EventHandler
|
|||
#else
|
||||
PNG_SIZE = 0,
|
||||
#endif
|
||||
EMUL_ACTIONLIST_SIZE = 144 + PNG_SIZE + COMBO_SIZE,
|
||||
EMUL_ACTIONLIST_SIZE = 144 + 2 + PNG_SIZE + COMBO_SIZE,
|
||||
MENU_ACTIONLIST_SIZE = 18
|
||||
;
|
||||
|
||||
|
|
|
@ -255,7 +255,10 @@ void Properties::print() const
|
|||
<< get(PropType::Display_Format) << "|"
|
||||
<< get(PropType::Display_VCenter) << "|"
|
||||
<< get(PropType::Display_Phosphor) << "|"
|
||||
<< get(PropType::Display_PPBlend)
|
||||
<< get(PropType::Display_PPBlend) << "|"
|
||||
<< get(PropType::Cart_Players) << "|"
|
||||
<< get(PropType::Cart_Variations) << "|"
|
||||
<< get(PropType::Cart_Addresses)
|
||||
<< endl;
|
||||
}
|
||||
|
||||
|
@ -300,7 +303,10 @@ void Properties::printHeader()
|
|||
<< "Display_Format|"
|
||||
<< "Display_VCenter|"
|
||||
<< "Display_Phosphor|"
|
||||
<< "Display_PPBlend"
|
||||
<< "Display_PPBlend|"
|
||||
<< "Cart_Players|"
|
||||
<< "Cart_Variations|"
|
||||
<< "Cart_Addresses"
|
||||
<< endl;
|
||||
}
|
||||
|
||||
|
@ -327,7 +333,10 @@ std::array<string, Properties::NUM_PROPS> Properties::ourDefaultProperties =
|
|||
"AUTO", // Display.Format
|
||||
"0", // Display.VCenter
|
||||
"NO", // Display.Phosphor
|
||||
"0" // Display.PPBlend
|
||||
"0", // Display.PPBlend
|
||||
"1", // Cart.Players
|
||||
"1", // Cart.Variations
|
||||
"" // Cart.Addresses
|
||||
};
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
@ -353,5 +362,8 @@ std::array<string, Properties::NUM_PROPS> Properties::ourPropertyNames =
|
|||
"Display.Format",
|
||||
"Display.VCenter",
|
||||
"Display.Phosphor",
|
||||
"Display.PPBlend"
|
||||
"Display.PPBlend",
|
||||
"Cart.Players",
|
||||
"Cart.Variations",
|
||||
"Cart.Addresses"
|
||||
};
|
||||
|
|
|
@ -42,6 +42,9 @@ enum class PropType : uInt8 {
|
|||
Display_VCenter,
|
||||
Display_Phosphor,
|
||||
Display_PPBlend,
|
||||
Cart_Players,
|
||||
Cart_Variations,
|
||||
Cart_Addresses,
|
||||
NumTypes
|
||||
};
|
||||
|
||||
|
|
|
@ -210,6 +210,10 @@
|
|||
"Cart.Manufacturer" "Parker Brothers, Ed English, David Lamkins"
|
||||
"Cart.ModelNo" "931502"
|
||||
"Cart.Name" "Frogger (1982) (Parker Bros) (PAL)"
|
||||
"Display.Phosphor" "YES"
|
||||
"Cart.Players" "2"
|
||||
"Cart.Variations" "6"
|
||||
"Cart.Addresses" "b,0,dd,e6,b,1,2,cc,ce,cd,cf"
|
||||
""
|
||||
|
||||
"Cart.MD5" "02cee0b140d2f1a1efcfb1d482a5c392"
|
||||
|
@ -638,6 +642,10 @@
|
|||
"Cart.Manufacturer" "Parker Brothers, Ed English, David Lamkins"
|
||||
"Cart.ModelNo" "PB5300"
|
||||
"Cart.Name" "Frogger (1982) (Parker Bros)"
|
||||
"Display.Phosphor" "YES"
|
||||
"Cart.Players" "2"
|
||||
"Cart.Variations" "6"
|
||||
"Cart.Addresses" "b,0,dd,e6,b,1,2,cc,ce,cd,cf"
|
||||
""
|
||||
|
||||
"Cart.MD5" "082fdc8bd47fef01482ce5883c4ffdb8"
|
||||
|
@ -1501,6 +1509,9 @@
|
|||
"Cart.Manufacturer" "Activision, Bob Whitehead - Ariola"
|
||||
"Cart.ModelNo" "EAX-015, EAX-015-04I - 711 015-725"
|
||||
"Cart.Name" "Chopper Command (1982) (Activision) (PAL)"
|
||||
"Cart.Players" "2"
|
||||
"Cart.Variations" "4"
|
||||
"Cart.Addresses" "b,1,e0,eb,b,1,3,ec,ee,f0,ed,ef,f1"
|
||||
""
|
||||
|
||||
"Cart.MD5" "11bcf5c752088b5aaf86d6c7a6a11e8d"
|
||||
|
@ -2209,6 +2220,9 @@
|
|||
"Cart.ModelNo" "CX2649, CX2649P"
|
||||
"Cart.Name" "Asteroids (1981) (Atari) (PAL) [a2]"
|
||||
"Display.Phosphor" "YES"
|
||||
"Cart.Players" "2"
|
||||
"Cart.Variations" "66"
|
||||
"Cart.Addresses" "h,1,80,c7,b,10,2,bd,be,c0,c1"
|
||||
""
|
||||
|
||||
"Cart.MD5" "19b3b807507653516985ba95da92499d"
|
||||
|
@ -2380,6 +2394,9 @@
|
|||
"Cart.Manufacturer" "Jone Yuan Telephonic Enterprise Co"
|
||||
"Cart.Name" "Chopper Command (Jone Yuan)"
|
||||
"Cart.Note" "2600 Screen Search Console"
|
||||
"Cart.Players" "2"
|
||||
"Cart.Variations" "4"
|
||||
"Cart.Addresses" "b,1,e0,eb,b,1,3,ec,ee,f0,ed,ef,f1"
|
||||
""
|
||||
|
||||
"Cart.MD5" "1cafa9f3f9a2fce4af6e4b85a2bbd254"
|
||||
|
@ -3138,6 +3155,9 @@
|
|||
"Cart.Manufacturer" "Activision, Bob Whitehead"
|
||||
"Cart.ModelNo" "AX-015, AX-015-04"
|
||||
"Cart.Name" "Chopper Command (1982) (Activision) (16K)"
|
||||
"Cart.Players" "2"
|
||||
"Cart.Variations" "4"
|
||||
"Cart.Addresses" "b,1,e0,eb,b,1,3,ec,ee,f0,ed,ef,f1"
|
||||
""
|
||||
|
||||
"Cart.MD5" "25e73efb9a6edf119114718bd2f646ba"
|
||||
|
@ -3553,6 +3573,9 @@
|
|||
"Cart.ModelNo" "PGP213"
|
||||
"Cart.Name" "Spy Vs. Spy (4 Game in One) (1983) (BitCorp) (PAL)"
|
||||
"Cart.Note" "AKA Chopper Command"
|
||||
"Cart.Players" "2"
|
||||
"Cart.Variations" "4"
|
||||
"Cart.Addresses" "b,1,e0,eb,b,1,3,ec,ee,f0,ed,ef,f1"
|
||||
""
|
||||
|
||||
"Cart.MD5" "2a9f9001540c55a302befd8e9d54b47b"
|
||||
|
@ -3877,6 +3900,9 @@
|
|||
"Controller.Right" "DRIVING"
|
||||
"Controller.MouseAxis" "58"
|
||||
"Display.Phosphor" "YES"
|
||||
"Cart.Players" "2"
|
||||
"Cart.Variations" "66"
|
||||
"Cart.Addresses" "h,1,80,c7,b,10,2,bd,be,c0,c1"
|
||||
""
|
||||
|
||||
"Cart.MD5" "2dcf9ce486393cd36ca0928cd53b96cb"
|
||||
|
@ -4262,6 +4288,9 @@
|
|||
"Cart.Note" "Hack of Asteroids"
|
||||
"Cart.Rarity" "Hack"
|
||||
"Display.Phosphor" "YES"
|
||||
"Cart.Players" "2"
|
||||
"Cart.Variations" "66"
|
||||
"Cart.Addresses" "h,1,80,c7,b,10,2,bd,be,c0,c1"
|
||||
""
|
||||
|
||||
"Cart.MD5" "3276c777cbe97cdd2b4a63ffc16b7151"
|
||||
|
@ -4727,6 +4756,9 @@
|
|||
"Cart.Name" "Pyramid War (1983) (Rainbow Vision) (PAL) [a2]"
|
||||
"Cart.Note" "AKA Chopper Command"
|
||||
"Display.Format" "PAL"
|
||||
"Cart.Players" "2"
|
||||
"Cart.Variations" "4"
|
||||
"Cart.Addresses" "b,1,e0,eb,b,1,3,ec,ee,f0,ed,ef,f1"
|
||||
""
|
||||
|
||||
"Cart.MD5" "384db97670817103dd8c0bbdef132445"
|
||||
|
@ -5097,6 +5129,9 @@
|
|||
"Cart.Manufacturer" "Dismac"
|
||||
"Cart.Name" "Comando Suicida (Dismac)"
|
||||
"Cart.Note" "AKA Chopper Command"
|
||||
"Cart.Players" "2"
|
||||
"Cart.Variations" "4"
|
||||
"Cart.Addresses" "b,1,e0,eb,b,1,3,ec,ee,f0,ed,ef,f1"
|
||||
""
|
||||
|
||||
"Cart.MD5" "3c7a7b3a0a7e6319b2fa0f923ef6c9af"
|
||||
|
@ -5270,6 +5305,9 @@
|
|||
"Cart.Note" "Genesis controller (C is hyperspace)"
|
||||
"Cart.Rarity" "Hack of Asteroids"
|
||||
"Display.Phosphor" "YES"
|
||||
"Cart.Players" "2"
|
||||
"Cart.Variations" "66"
|
||||
"Cart.Addresses" "h,1,80,c7,b,10,2,bd,be,c0,c1"
|
||||
""
|
||||
|
||||
"Cart.MD5" "3e5ca1afaa27c5da3c54c9942fec528b"
|
||||
|
@ -6022,6 +6060,9 @@
|
|||
"Cart.Note" "Hack of Asteroids"
|
||||
"Cart.Rarity" "Hack"
|
||||
"Display.Phosphor" "YES"
|
||||
"Cart.Players" "2"
|
||||
"Cart.Variations" "66"
|
||||
"Cart.Addresses" "h,1,80,c7,b,10,2,bd,be,c0,c1"
|
||||
""
|
||||
|
||||
"Cart.MD5" "47cd61f83457a0890de381e478f5cf5f"
|
||||
|
@ -6879,6 +6920,9 @@
|
|||
"Cart.Manufacturer" "Activision, Bob Whitehead"
|
||||
"Cart.ModelNo" "AX-015, AX-015-04"
|
||||
"Cart.Name" "Chopper Command (1982) (Activision) (8K)"
|
||||
"Cart.Players" "2"
|
||||
"Cart.Variations" "4"
|
||||
"Cart.Addresses" "b,1,e0,eb,b,1,3,ec,ee,f0,ed,ef,f1"
|
||||
""
|
||||
|
||||
"Cart.MD5" "521f4dd1eb84a09b2b19959a41839aad"
|
||||
|
@ -7677,6 +7721,9 @@
|
|||
"Cart.Note" "Hack of Asteroids"
|
||||
"Cart.Rarity" "Hack"
|
||||
"Display.Phosphor" "YES"
|
||||
"Cart.Players" "2"
|
||||
"Cart.Variations" "66"
|
||||
"Cart.Addresses" "h,1,80,c7,b,10,2,bd,be,c0,c1"
|
||||
""
|
||||
|
||||
"Cart.MD5" "5bcc83677d68f7ef74c1b4a0697ba2a8"
|
||||
|
@ -7711,6 +7758,9 @@
|
|||
"Cart.ModelNo" "SS-004"
|
||||
"Cart.Name" "Pyramid War (1983) (Rainbow Vision) (PAL) [a1]"
|
||||
"Cart.Note" "AKA Chopper Command"
|
||||
"Cart.Players" "2"
|
||||
"Cart.Variations" "4"
|
||||
"Cart.Addresses" "b,1,e0,eb,b,1,3,ec,ee,f0,ed,ef,f1"
|
||||
""
|
||||
|
||||
"Cart.MD5" "5c19f6da638c4c7c1f98d09e63df43e4"
|
||||
|
@ -9458,6 +9508,9 @@
|
|||
"Cart.ModelNo" "SS-004"
|
||||
"Cart.Name" "Pyramid War (1983) (Rainbow Vision) (PAL)"
|
||||
"Cart.Note" "AKA Chopper Command"
|
||||
"Cart.Players" "2"
|
||||
"Cart.Variations" "4"
|
||||
"Cart.Addresses" "b,1,e0,eb,b,1,3,ec,ee,f0,ed,ef,f1"
|
||||
""
|
||||
|
||||
"Cart.MD5" "6fc27a9233fc69d28d3f190b4ff80f03"
|
||||
|
@ -11366,6 +11419,9 @@
|
|||
"Cart.Manufacturer" "CCE"
|
||||
"Cart.ModelNo" "C-827"
|
||||
"Cart.Name" "Chopper Command (1983) (CCE)"
|
||||
"Cart.Players" "2"
|
||||
"Cart.Variations" "4"
|
||||
"Cart.Addresses" "b,1,e0,eb,b,1,3,ec,ee,f0,ed,ef,f1"
|
||||
""
|
||||
|
||||
"Cart.MD5" "85b1bca93e69f13905107cc802a02470"
|
||||
|
@ -11927,6 +11983,9 @@
|
|||
"Cart.Name" "Asteroids (1981) (Atari) (PAL)"
|
||||
"Cart.Rarity" "Common"
|
||||
"Display.Phosphor" "YES"
|
||||
"Cart.Players" "2"
|
||||
"Cart.Variations" "66"
|
||||
"Cart.Addresses" "h,1,80,c7,b,10,2,bd,be,c0,c1"
|
||||
""
|
||||
|
||||
"Cart.MD5" "8d00a38f4c8f8800f1c237215ac243fc"
|
||||
|
@ -11966,6 +12025,9 @@
|
|||
"Cart.Note" "Hack of Asteroids"
|
||||
"Cart.Rarity" "Hack"
|
||||
"Display.Phosphor" "YES"
|
||||
"Cart.Players" "2"
|
||||
"Cart.Variations" "66"
|
||||
"Cart.Addresses" "h,1,80,c7,b,10,2,bd,be,c0,c1"
|
||||
""
|
||||
|
||||
"Cart.MD5" "8e0ab801b1705a740b476b7f588c6d16"
|
||||
|
@ -14070,6 +14132,9 @@
|
|||
"Cart.ModelNo" "CX2649, CX2649P"
|
||||
"Cart.Name" "Asteroids (1981) (Atari) (PAL) [a1]"
|
||||
"Display.Phosphor" "YES"
|
||||
"Cart.Players" "2"
|
||||
"Cart.Variations" "66"
|
||||
"Cart.Addresses" "h,1,80,c7,b,10,2,bd,be,c0,c1"
|
||||
""
|
||||
|
||||
"Cart.MD5" "a97733b0852ee3096300102cb0689175"
|
||||
|
@ -14752,6 +14817,9 @@
|
|||
"Cart.Name" "Asteroids (1981) (Atari) [a1]"
|
||||
"Cart.Rarity" "Common"
|
||||
"Display.Phosphor" "YES"
|
||||
"Cart.Players" "2"
|
||||
"Cart.Variations" "66"
|
||||
"Cart.Addresses" "h,1,80,c7,b,10,2,bd,be,c0,c1"
|
||||
""
|
||||
|
||||
"Cart.MD5" "b23ebf427713dd0198b7ef47dbd07ef4"
|
||||
|
@ -15326,6 +15394,9 @@
|
|||
"Cart.Manufacturer" "SuperVision"
|
||||
"Cart.ModelNo" "405, 427, 806, 808, 813, 816"
|
||||
"Cart.Name" "Chopper Command (SuperVision) (PAL)"
|
||||
"Cart.Players" "2"
|
||||
"Cart.Variations" "4"
|
||||
"Cart.Addresses" "b,1,e0,eb,b,1,3,ec,ee,f0,ed,ef,f1"
|
||||
""
|
||||
|
||||
"Cart.MD5" "ba257438f8a78862a9e014d831143690"
|
||||
|
@ -15399,6 +15470,9 @@
|
|||
"Cart.ModelNo" "CX2649, CX2649P"
|
||||
"Cart.Name" "Asteroids (1981) (Atari) (PAL) [no copyright]"
|
||||
"Display.Phosphor" "YES"
|
||||
"Cart.Players" "2"
|
||||
"Cart.Variations" "66"
|
||||
"Cart.Addresses" "h,1,80,c7,b,10,2,bd,be,c0,c1"
|
||||
""
|
||||
|
||||
"Cart.MD5" "bb579404924c40ca378b4aff6ccf302d"
|
||||
|
@ -15835,6 +15909,9 @@
|
|||
"Cart.Manufacturer" "Activision, Bob Whitehead"
|
||||
"Cart.ModelNo" "AX-015, AX-015-04"
|
||||
"Cart.Name" "Chopper Command (1982) (Activision)"
|
||||
"Cart.Players" "2"
|
||||
"Cart.Variations" "4"
|
||||
"Cart.Addresses" "b,1,e0,eb,b,1,3,ec,ee,f0,ed,ef,f1"
|
||||
""
|
||||
|
||||
"Cart.MD5" "c1e6e4e7ef5f146388a090f1c469a2fa"
|
||||
|
@ -15946,6 +16023,9 @@
|
|||
"Cart.MD5" "c2c7a11717e255593e54d0acaf653ee5"
|
||||
"Cart.Name" "Chopper Command (208 in 1) (Unknown) (PAL) (Hack)"
|
||||
"Cart.Rarity" "Hack"
|
||||
"Cart.Players" "2"
|
||||
"Cart.Variations" "4"
|
||||
"Cart.Addresses" "b,1,e0,eb,b,1,3,ec,ee,f0,ed,ef,f1"
|
||||
""
|
||||
|
||||
"Cart.MD5" "c2c8eb642765137bb82b83a65232961f"
|
||||
|
@ -16780,6 +16860,9 @@
|
|||
"Cart.Name" "Asteroids (1981) (Atari) [no copyright]"
|
||||
"Cart.Rarity" "Common"
|
||||
"Display.Phosphor" "YES"
|
||||
"Cart.Players" "2"
|
||||
"Cart.Variations" "66"
|
||||
"Cart.Addresses" "h,1,80,c7,b,10,2,bd,be,c0,c1"
|
||||
""
|
||||
|
||||
"Cart.MD5" "cccfe9e9a11b1dad04beba46eefb7351"
|
||||
|
@ -17595,6 +17678,9 @@
|
|||
"Cart.ModelNo" "CX2649, 49-75163"
|
||||
"Cart.Name" "Asteroids (1981) (Atari) [a2]"
|
||||
"Display.Phosphor" "YES"
|
||||
"Cart.Players" "2"
|
||||
"Cart.Variations" "66"
|
||||
"Cart.Addresses" "h,1,80,c7,b,10,2,bd,be,c0,c1"
|
||||
""
|
||||
|
||||
"Cart.MD5" "d573089534ca596e64efef474be7b6bc"
|
||||
|
@ -17983,6 +18069,9 @@
|
|||
"Cart.MD5" "da66d75e4b47fab99733529743f86f4f"
|
||||
"Cart.Manufacturer" "Digitel"
|
||||
"Cart.Name" "Chopper Command (1983) (Digitel)"
|
||||
"Cart.Players" "2"
|
||||
"Cart.Variations" "4"
|
||||
"Cart.Addresses" "b,1,e0,eb,b,1,3,ec,ee,f0,ed,ef,f1"
|
||||
""
|
||||
|
||||
"Cart.MD5" "da732c57697ad7d7af414998fa527e75"
|
||||
|
@ -18279,6 +18368,9 @@
|
|||
"Cart.ModelNo" "CX2649, 49-75163"
|
||||
"Cart.Name" "Asteroids (1981) (Atari)"
|
||||
"Display.Phosphor" "YES"
|
||||
"Cart.Players" "2"
|
||||
"Cart.Variations" "66"
|
||||
"Cart.Addresses" "h,1,80,c7,b,10,2,bd,be,c0,c1"
|
||||
""
|
||||
|
||||
"Cart.MD5" "dd8a2124d4eda200df715c698a6ea887"
|
||||
|
@ -18435,6 +18527,9 @@
|
|||
"Cart.Note" "Hack of Asteroids"
|
||||
"Cart.Rarity" "Hack"
|
||||
"Display.Phosphor" "YES"
|
||||
"Cart.Players" "2"
|
||||
"Cart.Variations" "66"
|
||||
"Cart.Addresses" "h,1,80,c7,b,10,2,bd,be,c0,c1"
|
||||
""
|
||||
|
||||
"Cart.MD5" "df5cc5cccdc140eb7107f5b8adfacda1"
|
||||
|
@ -20717,6 +20812,9 @@
|
|||
"Cart.Name" "Chopper Command (Jone Yuan) (Hack)"
|
||||
"Cart.Note" "2600 Screen Search Console"
|
||||
"Cart.Rarity" "Hack"
|
||||
"Cart.Players" "2"
|
||||
"Cart.Variations" "4"
|
||||
"Cart.Addresses" "b,1,e0,eb,b,1,3,ec,ee,f0,ed,ef,f1"
|
||||
""
|
||||
|
||||
"Cart.MD5" "f8b2a6a4d73ebff10d805a9b59041986"
|
||||
|
@ -21381,6 +21479,9 @@
|
|||
"Cart.Manufacturer" "CCE"
|
||||
"Cart.ModelNo" "C-827"
|
||||
"Cart.Name" "Chopper Command (1983) (CCE) [a]"
|
||||
"Cart.Players" "2"
|
||||
"Cart.Variations" "4"
|
||||
"Cart.Addresses" "b,1,e0,eb,b,1,3,ec,ee,f0,ed,ef,f1"
|
||||
""
|
||||
|
||||
"Cart.MD5" "ffe51989ba6da2c6ae5a12d277862e16"
|
||||
|
|
Loading…
Reference in New Issue