mirror of https://github.com/stella-emu/stella.git
switched high score checksum calculations to md5
added high score properties for a few more games updated docs
This commit is contained in:
parent
18d2dc5321
commit
b990bf2f68
Binary file not shown.
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 4.0 KiB |
112
docs/index.html
112
docs/index.html
|
@ -2294,9 +2294,9 @@
|
|||
<p>This dialog can be opened by pressing 'Insert' any time while a game is
|
||||
played. It will provide the current variation and score and allow the user
|
||||
to add this as a new high score. Of course this makes most sense when a game
|
||||
is over.
|
||||
|
||||
The dialog items are explained in the following two tables.</p>
|
||||
is over. Note: In multiplayer games, only the score of the first player can be
|
||||
saved.</p>
|
||||
<p>The dialog items are explained in the following two tables.</p>
|
||||
|
||||
<table border="1" cellpadding="4">
|
||||
<tr><th>Item</th><th>Description</th></tr>
|
||||
|
@ -2325,7 +2325,6 @@
|
|||
</td></tr>
|
||||
<tr><td>Cancel</td><td>Closes the dialog without saving.</td></tr>
|
||||
</table>
|
||||
|
||||
<p>For details how to configure high scores definintions for a game see
|
||||
<a href="#HighScoreProps"><b>High Scores Properties</b></a></h2>.</p>
|
||||
</blockquote></br>
|
||||
|
@ -4851,59 +4850,64 @@ Ms Pac-Man (Stella extended codes):
|
|||
|
||||
<h3>Classic games</h3>
|
||||
<ul>
|
||||
<li>Asteroids (Atari)</li>
|
||||
<li>Atlantis (Imagic)</li>
|
||||
<li>Barnstorming (Activision)</li>
|
||||
<li>Beamrider (Activision)</li>
|
||||
<li>Berzerk (Atari)</li>
|
||||
<li>Breakout (Atari)</li>
|
||||
<li>Centipede (Atari)</li>
|
||||
<li>Chopper Comand (Activision)</li>
|
||||
<li>Circus Atari (Atari)</li>
|
||||
<li>Cosmic Ark (Imagic)</li>
|
||||
<li>Decathlon (Activision)</li>
|
||||
<li>Demon Attack (Imagic)</li>
|
||||
<li>Defender 2/Stargate (Atari)</li>
|
||||
<li>Dig Dug (Atari)</li>
|
||||
<li>Donkey Kong (Coleco)</li>
|
||||
<li>Dragster (Activision)</li>
|
||||
<li>Enduro (Activision)</li>
|
||||
<li>Frogger (Parker Bros)</li>
|
||||
<li>Frostbite (Activision)</li>
|
||||
<li>Galaxian (Atari)</li>
|
||||
<li>Grand Prix (Activision)</li>
|
||||
<li>H.E.R.O. (Activision)</li>
|
||||
<li>Jr. Pac-Man (Atari)</li>
|
||||
<li>Jungle Hunt (Atari)</li>
|
||||
<li>Kaboom! (Activision)</li>
|
||||
<li>Keystone Kapers (Activision)</li>
|
||||
<li>Mario Bros. (Atari)</li>
|
||||
<li>MegaMania (Activision)</li>
|
||||
<li>Millipede (Atari)</li>
|
||||
<li>Missile Command (Atari)</li>
|
||||
<li>Moon Patrol (Atari)</li>
|
||||
<li>Ms. Pac-Man (Atari)</li>
|
||||
<li>Phoenix (Atari)</li>
|
||||
<li>Pitfall! (Activision)</li>
|
||||
<li>Pitfall II (Activision)</li>
|
||||
<li>Q-Bert (Atari)</li>
|
||||
<li>Seaquest (Activision)</li>
|
||||
<li>Sky Jinks (Activision)</li>
|
||||
<li>Space Invaders (Atari)</li>
|
||||
<li>StarMaster (Activision)</li>
|
||||
<li>Super Breakout (Atari)</li>
|
||||
<li>Vanguard (Atari)</li>
|
||||
<li>Yars' Revenge (Atari)</li>
|
||||
<li>Asteroids (Atari)</li>
|
||||
<li>Atlantis (Imagic)</li>
|
||||
<li>Barnstorming (Activision)</li>
|
||||
<li>Beamrider (Activision)</li>
|
||||
<li>Berzerk (Atari)</li>
|
||||
<li>Breakout (Atari)</li>
|
||||
<li>Centipede (Atari)</li>
|
||||
<li>Chopper Comand (Activision)</li>
|
||||
<li>Circus Atari (Atari)</li>
|
||||
<li>Cosmic Ark (Imagic)</li>
|
||||
<li>Decathlon (Activision)</li>
|
||||
<li>Defender 2/Stargate (Atari)</li>
|
||||
<li>Demon Attack (Imagic)</li>
|
||||
<li>Dig Dug (Atari)</li>
|
||||
<li>Donkey Kong (Coleco)</li>
|
||||
<li>Dragster (Activision)</li>
|
||||
<li>Enduro (Activision)</li>
|
||||
<li>Frogger (Parker Bros)</li>
|
||||
<li>Frostbite (Activision)</li>
|
||||
<li>Galaxian (Atari)</li>
|
||||
<li>Grand Prix (Activision)</li>
|
||||
<li>H.E.R.O. (Activision)</li>
|
||||
<li>Jr. Pac-Man (Atari)</li>
|
||||
<li>Jungle Hunt (Atari)</li>
|
||||
<li>Kaboom! (Activision)</li>
|
||||
<li>Keystone Kapers (Activision)</li>
|
||||
<li>Mario Bros. (Atari)</li>
|
||||
<li>MegaMania (Activision)</li>
|
||||
<li>Millipede (Atari)</li>
|
||||
<li>Missile Command (Atari)</li>
|
||||
<li>Moon Patrol (Atari)</li>
|
||||
<li>Ms. Pac-Man (Atari)</li>
|
||||
<li>Phoenix (Atari)</li>
|
||||
<li>Pitfall! (Activision)</li>
|
||||
<li>Pitfall II (Activision)</li>
|
||||
<li>Q-Bert (Atari)</li>
|
||||
<li>Seaquest (Activision)</li>
|
||||
<li>Sky Jinks (Activision)</li>
|
||||
<li>Solaris (Atari)</li>
|
||||
<li>Space Invaders (Atari)</li>
|
||||
<li>Star Wars - The Empire Strikes Back (Parker Bros)</li>
|
||||
<li>StarMaster (Activision)</li>
|
||||
<li>Super Breakout (Atari)</li>
|
||||
<li>Vanguard (Atari)</li>
|
||||
<li>Yars' Revenge (Atari)</li>
|
||||
</ul>
|
||||
<h3>Homebrews</h3>
|
||||
<ul>
|
||||
<li>Draconian (SpiceWare, Darrell Spice Jr.)</li>
|
||||
<li>Lady Bug (ChampGames, John W. Champeau)</li>
|
||||
<li>Oystron (Piero Cavina)</li>
|
||||
<li>Seawolf (Manuel Rotschkar)</li>
|
||||
<li>Stay Frosty 2 (SpiceWare, Darrell Spice Jr.)</li>
|
||||
<li>SWOOPS! (Thomas Jentzsch)</li>
|
||||
<li>Ultra SCSIcide (Joe Grand)</li>
|
||||
<li>Conquest of Mars (ChampGames, John W. Champeau)</li>
|
||||
<li>Draconian (SpiceWare, Darrell Spice Jr.)</li>
|
||||
<li>Lady Bug (ChampGames, John W. Champeau)</li>
|
||||
<li>Oystron (Piero Cavina)</li>
|
||||
<li>Qb (Andrew Davie)</li>
|
||||
<li>Seawolf (Manuel Rotschkar)</li>
|
||||
<li>Star Fire (Manuel Rotschkar)</li>
|
||||
<li>Stay Frosty 2 (SpiceWare, Darrell Spice Jr.)</li>
|
||||
<li>SWOOPS! (Thomas Jentzsch)</li>
|
||||
<li>Ultra SCSIcide (Joe Grand)</li>
|
||||
</ul>
|
||||
<p>Everyone is more than welcome to help us to fill the gaps by defining more
|
||||
games.</p>
|
||||
|
|
|
@ -49,6 +49,7 @@
|
|||
#include "Console.hxx"
|
||||
#include "Launcher.hxx"
|
||||
#include "Base.hxx"
|
||||
#include "MD5.hxx"
|
||||
|
||||
#include "HighScoresManager.hxx"
|
||||
|
||||
|
@ -130,7 +131,6 @@ bool HighScoresManager::get(const Properties& props, uInt32& numVariationsR,
|
|||
|
||||
numVariationsR = numVariations(jprops);
|
||||
|
||||
//info.armRAM = armRAM(jprops);
|
||||
info.numDigits = numDigits(jprops);
|
||||
info.trailingZeroes = trailingZeroes(jprops);
|
||||
info.scoreBCD = scoreBCD(jprops);
|
||||
|
@ -196,9 +196,6 @@ void HighScoresManager::set(Properties& props, uInt32 numVariations,
|
|||
if(!info.notes.empty())
|
||||
jprops[NOTES] = info.notes;
|
||||
|
||||
//if(info.armRAM != DEFAULT_ARM_RAM)
|
||||
// jprops[""] = info.armRAM;
|
||||
|
||||
props.set(PropType::Cart_Highscore, jprops.dump());
|
||||
}
|
||||
|
||||
|
@ -262,12 +259,6 @@ const string HighScoresManager::notes(const json& jprops) const
|
|||
return getPropStr(jprops, NOTES);
|
||||
}
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
/*bool HighScoresManager::armRAM(const json& jprops) const
|
||||
{
|
||||
return getPropStr(jprops, ARM_RAM);
|
||||
}*/
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
uInt16 HighScoresManager::varAddress(const json& jprops) const
|
||||
{
|
||||
|
@ -406,64 +397,26 @@ const string HighScoresManager::formattedScore(Int32 score, Int32 width) const
|
|||
return buf.str();
|
||||
}
|
||||
|
||||
void HighScoresManager::addCheckByte(uInt32& sum, uInt16& r, uInt8 value) const
|
||||
{
|
||||
constexpr uInt16 C1 = 52845, C2 = 22719;
|
||||
|
||||
uInt8 cipher = (value ^ (r >> 8));
|
||||
r = (cipher + r) * C1 + C2;
|
||||
sum += cipher;
|
||||
}
|
||||
|
||||
void HighScoresManager::addCheckWord(uInt32& sum, uInt16& r, uInt16 value) const
|
||||
{
|
||||
addCheckByte(sum, r, value >> 8);
|
||||
addCheckByte(sum, r, value & 0xff);
|
||||
}
|
||||
|
||||
string HighScoresManager::checkSumProps() const
|
||||
string HighScoresManager::md5Props() const
|
||||
{
|
||||
json jprops;
|
||||
properties(jprops);
|
||||
ostringstream buf;
|
||||
|
||||
uInt32 sum = 0;
|
||||
uInt16 r = 55665;
|
||||
|
||||
addCheckWord(sum, r, varAddress(jprops));
|
||||
addCheckByte(sum, r, numVariations());
|
||||
//addCheckByte(sum, r, variation());
|
||||
addCheckByte(sum, r, varBCD(jprops));
|
||||
addCheckByte(sum, r, varZeroBased(jprops));
|
||||
buf << varAddress(jprops) << numVariations() << varBCD(jprops)
|
||||
<< varZeroBased(jprops);
|
||||
|
||||
uInt32 addrBytes = numAddrBytes(jprops);
|
||||
HSM::ScoreAddresses addr = getPropScoreAddr(jprops);
|
||||
for(uInt32 a = 0; a < addrBytes; ++a)
|
||||
addCheckWord(sum, r, addr[a]);
|
||||
addCheckByte(sum, r, numDigits(jprops));
|
||||
addCheckByte(sum, r, trailingZeroes(jprops));
|
||||
addCheckByte(sum, r, scoreBCD(jprops));
|
||||
addCheckWord(sum, r, scoreInvert(jprops));
|
||||
buf << addr[a];
|
||||
buf << numDigits(jprops) << trailingZeroes(jprops) << scoreBCD(jprops)
|
||||
<< scoreInvert(jprops) << specialAddress(jprops) << specialBCD(jprops)
|
||||
<< specialZeroBased(jprops);
|
||||
|
||||
addCheckWord(sum, r, specialAddress(jprops));
|
||||
addCheckByte(sum, r, specialBCD(jprops));
|
||||
addCheckByte(sum, r, specialZeroBased(jprops));
|
||||
buf << specialAddress(jprops) << specialBCD(jprops) << specialZeroBased(jprops);
|
||||
|
||||
ostringstream ss;
|
||||
ss << Base::HEX4 << (sum & 0xffff ^ (sum >> 16) ^ r);
|
||||
return ss.str();
|
||||
}
|
||||
|
||||
string HighScoresManager::checkSumScores(const string& data) const
|
||||
{
|
||||
uInt32 sum = 0;
|
||||
uInt16 r = 55665;
|
||||
|
||||
for(auto& c : data)
|
||||
addCheckByte(sum, r, c);
|
||||
|
||||
ostringstream ss;
|
||||
ss << Base::HEX4 << (sum & 0xffff ^ (sum >> 16) ^ r);
|
||||
return ss.str();
|
||||
return MD5::hash(buf.str());
|
||||
}
|
||||
|
||||
bool HighScoresManager::scoreInvert() const
|
||||
|
@ -511,7 +464,8 @@ const string HighScoresManager::notes() const
|
|||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Int32 HighScoresManager::convert(Int32 val, uInt32 maxVal, bool isBCD, bool zeroBased) const
|
||||
{
|
||||
maxVal += zeroBased ? 0 : 1;
|
||||
//maxVal += zeroBased ? 0 : 1;
|
||||
maxVal -= zeroBased ? 1 : 0;
|
||||
Int32 bits = isBCD
|
||||
? ceil(log(maxVal) / log(10) * 4)
|
||||
: ceil(log(maxVal) / log(2));
|
||||
|
@ -680,15 +634,13 @@ void HighScoresManager::loadHighScores(const string& cartName, ScoresData& data)
|
|||
<< data.variation << ".";
|
||||
else
|
||||
{
|
||||
if(load(hsData, data))
|
||||
if(!load(hsData, data)
|
||||
|| !hsData.contains(PROPCHECK) || hsData.at(PROPCHECK) != md5Props()
|
||||
|| !hsObject.contains(CHECKSUM) || hsObject.at(CHECKSUM) != MD5::hash(hsData.dump()))
|
||||
invalid = true;
|
||||
else
|
||||
return;
|
||||
invalid = true;
|
||||
}
|
||||
if(!hsData.contains(PROPCHECK)
|
||||
|| hsData.at(PROPCHECK) != checkSumProps()
|
||||
|| !hsObject.contains(CHECKSUM)
|
||||
|| hsObject.at(CHECKSUM) != checkSumScores(hsData.dump()))
|
||||
invalid = true;
|
||||
}
|
||||
else
|
||||
invalid = true;
|
||||
|
@ -729,10 +681,10 @@ bool HighScoresManager::save(FilesystemNode& node, const ScoresData& data) const
|
|||
jScores.push_back(jScore);
|
||||
}
|
||||
hsData[SCORES] = jScores;
|
||||
hsData[PROPCHECK] = checkSumProps();
|
||||
hsData[PROPCHECK] = md5Props();
|
||||
|
||||
hsObject[DATA] = hsData;
|
||||
hsObject[CHECKSUM] = checkSumScores(hsData.dump());
|
||||
hsObject[CHECKSUM] = MD5::hash(hsData.dump());
|
||||
|
||||
stringstream ss(hsObject.dump());
|
||||
node.write(ss);
|
||||
|
|
|
@ -29,7 +29,7 @@ class OSystem;
|
|||
using json = nlohmann::json;
|
||||
|
||||
/**
|
||||
This class provides an interface to all things related to high myScores.
|
||||
This class provides an interface to all things related to high scores.
|
||||
|
||||
@author Thomas Jentzsch
|
||||
*/
|
||||
|
@ -62,7 +62,6 @@ namespace HSM {
|
|||
bool specialBCD;
|
||||
bool specialZeroBased;
|
||||
string notes;
|
||||
//bool armRAM;
|
||||
// Addresses
|
||||
ScoreAddresses scoreAddr;
|
||||
uInt16 varsAddr;
|
||||
|
@ -84,7 +83,7 @@ namespace HSM {
|
|||
} // namespace HSM
|
||||
|
||||
/**
|
||||
This class provides an interface to define, load and save myScores. It is meant
|
||||
This class provides an interface to define, load and save scores. It is meant
|
||||
for games which do not support saving highscores.
|
||||
|
||||
@author Thomas Jentzsch
|
||||
|
@ -145,10 +144,8 @@ class HighScoresManager
|
|||
Int32 special() const;
|
||||
const string notes() const;
|
||||
|
||||
// Get simple property definition checksum
|
||||
string checkSumProps() const;
|
||||
// Get simple highscores data checksum
|
||||
string checkSumScores(const string& data) const;
|
||||
// Get md5 property definition checksum
|
||||
string md5Props() const;
|
||||
|
||||
// Peek into memory
|
||||
Int16 peek(uInt16 addr) const;
|
||||
|
@ -175,7 +172,6 @@ class HighScoresManager
|
|||
static constexpr uInt32 MAX_VARIATIONS = 256;
|
||||
|
||||
static constexpr uInt32 MAX_TRAILING = 3;
|
||||
static constexpr bool DEFAULT_ARM_RAM = false;
|
||||
static constexpr uInt32 DEFAULT_DIGITS = 4;
|
||||
static constexpr uInt32 DEFAULT_TRAILING = 0;
|
||||
static constexpr bool DEFAULT_SCORE_BCD = true;
|
||||
|
@ -215,7 +211,6 @@ class HighScoresManager
|
|||
bool specialBCD(const json& jprops) const;
|
||||
bool specialZeroBased(const json& jprops) const;
|
||||
const string notes(const json& jprops) const;
|
||||
//bool armRAM(const json& jprops) const;
|
||||
|
||||
// Calculate the number of bytes for one player's score from property parameters
|
||||
uInt32 numAddrBytes(const json& jprops) const;
|
||||
|
@ -238,12 +233,8 @@ class HighScoresManager
|
|||
uInt16 fromHexStr(const string& addr) const;
|
||||
Int32 fromBCD(uInt8 bcd) const;
|
||||
|
||||
// Add new value to checksum
|
||||
void addCheckByte(uInt32& sum, uInt16& r, uInt8 value) const;
|
||||
void addCheckWord(uInt32& sum, uInt16& r, uInt16 value) const;
|
||||
|
||||
/**
|
||||
Saves the current high myScores for this game and variation to the given file system node.
|
||||
Saves the current high scores for this game and variation to the given file system node.
|
||||
|
||||
@param node The file system node to save to.
|
||||
@param scores The saved high score data
|
||||
|
@ -253,7 +244,7 @@ class HighScoresManager
|
|||
bool save(FilesystemNode& node, const HSM::ScoresData& scores) const;
|
||||
|
||||
/**
|
||||
Loads the current high myScores for this game and variation from the given JSON object.
|
||||
Loads the current high scores for this game and variation from the given JSON object.
|
||||
|
||||
@param hsData The JSON to parse
|
||||
@param scores The loaded high score data
|
||||
|
|
|
@ -173,7 +173,7 @@ static const BSPF::array2D<const char*, DEF_PROPS_SIZE, 28> DefProps = {{
|
|||
{ "0acaf71e60b89f6b6eab63db6ab84510", "", "", "This Planet Sucks (Greg Troutman) [a2]", "", "New Release", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "0aceb7c3bd13fe048b77a1928ed4267d", "Imagic, Bob Smith", "720102-2B, IA3201P, EIX-011-04I", "Star Voyager (1982) (Imagic) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "0ad9a358e361256b94f3fb4f2fa5a3b1", "Atari, Carol Shaw, Nick 'Sandy Maiwald' Turner - Sears", "CX2608 - 49-75165", "Super Breakout (1982 - 1981) (Atari) [a]", "Uses the Paddle Controllers (left only)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "01 45", "", "", "", "", "{\"score_addresses\":[\"0xdc\",\"0xdd\"],\"variations_address\":\"0xc0\",\"variations_count\":9}" },
|
||||
{ "0adb21206de92e8aec5ef295805ebb90", "", "", "Solaris (Genesis)", "Genesis controller (C switches to map mode)", "Hack of Solaris", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "0adb21206de92e8aec5ef295805ebb90", "", "", "Solaris (Genesis)", "Genesis controller (C switches to map mode)", "Hack of Solaris", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "{\"score_addresses\":[\"0xde\",\"0xdd\",\"0xdc\"],\"score_digits\":6,\"score_trailing_zeroes\":1,\"variations_count\":1}" },
|
||||
{ "0ae3497e731ca0bf6a77b23441d9d9f9", "", "", "Analog Clock (V0.0) (20-01-2003) (AD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "0af51ceb4aecc7a8fc89781ac44a1973", "Barry Laws Jr.", "", "Face Invaders Deluxe (Barry Laws Jr.) (Hack)", "Hack of Space Invaders", "Hack", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "{\"notes\":\"Only player 1 supported\",\"score_addresses\":[\"0xe6\",\"0xe8\"],\"variations_address\":\"0xdc\",\"variations_bcd\":false,\"variations_bcd_A\":false,\"variations_count\":112,\"variations_zero_based\":true}" },
|
||||
{ "0afe6ae18966795b89314c3797dd2b1e", "Atari - GCC, Mark Ackerman, Noellie Alito", "CX2692, CX2692P", "Moon Patrol (1983) (Atari) (PAL) [a]", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "{\"score_addresses\":[\"0xea\",\"0xeb\",\"0xec\"],\"score_digits\":6,\"variations_address\":\"0xf9\",\"variations_count\":6,\"variations_zero_based\":true}" },
|
||||
|
@ -239,7 +239,7 @@ static const BSPF::array2D<const char*, DEF_PROPS_SIZE, 28> DefProps = {{
|
|||
{ "0f2e09c71cc216f79d22a804152ba24b", "Bob Colbert", "", "Scroller Demo (Bob Colbert) (PD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "" },
|
||||
{ "0f341d1f4e144e3163d9a5fc5a662b79", "", "", "RUN Platform Demo (PD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "" },
|
||||
{ "0f39fc03d579d0d93a6b729a3746843e", "Atari, Sam Comstock, Richard Dobbis, Nick 'Sandy Maiwald' Turner", "CX26111", "Snoopy and the Red Baron (05-27-1983) (Atari) (Prototype)", "", "Prototype", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "0f604cd4c9d2795cf5746e8af7948064", "Champ Games", "CG-02-N", "Conquest Of Mars (2010) (NTSC)", "Rev 2 release", "Homebrew", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "0f604cd4c9d2795cf5746e8af7948064", "Champ Games", "CG-02-N", "Conquest Of Mars (2010) (NTSC)", "Rev 2 release", "Homebrew", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "{\"score_addresses\":[\"0x92\",\"0x94\",\"0x96\"],\"score_digits\":6,\"special_address\":\"0x9a\",\"special_label\":\"Level\",\"special_zero_based\":true,\"variations_address\":\"0x89\",\"variations_count\":4,\"variations_zero_based\":true}" },
|
||||
{ "0f643c34e40e3f1daafd9c524d3ffe64", "Atari, Robert C. Polaro, Alan J. Murphy - Sears", "CX2609 - 49-75186", "Defender (1982) (Atari)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "0f6676b05621f80c670966e2995b227a", "", "", "Globe Trotter Demo 1 (24-03-2003) (Weston)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "0f738dc44437557624eb277ed7ad91c9", "", "", "Grand Prix (Unknown) (PAL)", "AKA Grand Prix", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "{\"notes\":\"Time/score shows extra digit\",\"score_addresses\":[\"0xeb\",\"0xec\",\"0xed\"],\"score_digits\":5,\"score_inverted\":true,\"variations_address\":\"0x80\",\"variations_count\":4,\"variations_zero_based\":true}" },
|
||||
|
@ -755,7 +755,7 @@ static const BSPF::array2D<const char*, DEF_PROPS_SIZE, 28> DefProps = {{
|
|||
{ "34b269387fa1aa5a396636f5ecdd63dd", "", "", "Marble Craze (mc7_23) (Paul Slocum)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "34c808ad6577dbfa46169b73171585a3", "Apollo", "AP-2012", "Squoosh (1983) (Apollo) (Prototype)", "AKA Vat's Incredible!, The Grape Escape", "Prototype", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "34ca2fcbc8ba4a0b544acd94991cfb50", "Atari, Robert C. Polaro", "", "Dukes of Hazzard (1980) (Atari) (Prototype) (4K)", "AKA Stunt Cycle", "Prototype", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "34e37eaffc0d34e05e40ed883f848b40", "Retroactive", "", "Qb (2.15) (Retroactive) (Stella)", "", "New Release", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "" },
|
||||
{ "34e37eaffc0d34e05e40ed883f848b40", "Retroactive", "", "Qb (2.15) (Retroactive) (Stella)", "", "New Release", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "{\"score_addresses\":[\"0xe6\",\"0xe5\",\"0xe4\"],\"score_digits\":6,\"variations_count\":1}" },
|
||||
{ "34f4b1d809aa705ace6e46b13253fd3b", "Aaron Bergstrom", "", "Nothern Alliance (Aaron Bergstrom) (Hack)", "Hack of Space Invaders", "Hack", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "{\"notes\":\"Only player 1 supported\",\"score_addresses\":[\"0xe6\",\"0xe8\"],\"variations_address\":\"0xdc\",\"variations_bcd\":false,\"variations_bcd_A\":false,\"variations_count\":112,\"variations_zero_based\":true}" },
|
||||
{ "34fd4fcb40ff5babce67f8b806d5969c", "", "", "Boxing (Dactari) (4K)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "350e0f7b562ec5e457b3f5af013648db", "Atari, Jerome Domurat, Howard Scott Warshaw", "CX26119", "Saboteur (06-09-1983) (Atari) (Prototype)", "", "Prototype", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
|
@ -866,7 +866,7 @@ static const BSPF::array2D<const char*, DEF_PROPS_SIZE, 28> DefProps = {{
|
|||
{ "3c7a96978f52b2b15426cdd50f2c4048", "", "", "Overhead Adventure Demo 3 (PD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "3c82e808fe0e6a006dc0c4e714d36209", "Activision, David Crane", "AG-004", "Fishing Derby (1980) (Activision) (16K)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "3c853d864a1d5534ed0d4b325347f131", "Telesys, Don 'Donyo' Ruffcorn", "1002", "Cosmic Creeps (1982) (Telesys)", "AKA Space Maze, Spaze Maze", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "" },
|
||||
{ "3c8e57a246742fa5d59e517134c0b4e6", "Parker Brothers, Rex Bradford, Sam Kjellman", "PB5050", "Star Wars - The Empire Strikes Back (1982) (Parker Bros)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "3c8e57a246742fa5d59e517134c0b4e6", "Parker Brothers, Rex Bradford, Sam Kjellman", "PB5050", "Star Wars - The Empire Strikes Back (1982) (Parker Bros)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "{\"score_addresses\":[\"0xe0\",\"0xe1\"],\"variations_address\":\"0xea\",\"variations_bcd\":false,\"variations_count\":32,\"variations_zero_based\":true}" },
|
||||
{ "3ca51b5c08f5a0ecfb17d0c1ec6d0942", "Atari, James Andreasen - Sears", "CX2654 - 49-75141", "Haunted House (09-28-81) (Atari) (Prototype)", "AKA Mystery Mansion, Graves' Manor, Nightmare Manor", "Prototype", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "3caa902ac0ce4509308990645876426a", "Atari - GCC, Dave Payne", "CX2669, CX2669P", "Vanguard (1983) (Atari) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "{\"notes\":\"Score is for current player\",\"score_addresses\":[\"0x99\",\"0x98\",\"0x97\"],\"score_digits\":6,\"variations_count\":1}" },
|
||||
{ "3cbdf71bb9fd261fbc433717f547d738", "CCE", "C-803", "Bobby Is Going Home (1983) (CCE) (PAL)", "AKA Bobby Vai Para Casa", "Rare", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
|
@ -901,7 +901,7 @@ static const BSPF::array2D<const char*, DEF_PROPS_SIZE, 28> DefProps = {{
|
|||
{ "3ec12372ca3e870b11ca70edc7ec26a4", "CommaVid, John Bronstein", "CM-002", "Video Life (1981) (CommaVid) (4K)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "" },
|
||||
{ "3eccf9f363f5c5de0c8b174a535dc83b", "", "", "Plaque Attack (Unknown) (PAL)", "", "Rare", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "3ef9573536730dcd6d9c20b6822dbdc4", "Atari, Larry Wagner, Bob Whitehead", "CX2645, CX2645P", "Video Chess (1979) (Atari) (PAL)", "AKA Computer Chess", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "3f01bd6d059396f495a4cde7de0ab180", "", "", "Qb (Special Edition) (NTSC) (Retroactive)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "" },
|
||||
{ "3f01bd6d059396f495a4cde7de0ab180", "", "", "Qb (Special Edition) (NTSC) (Retroactive)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "{\"score_addresses\":[\"0xe6\",\"0xe5\",\"0xe4\"],\"score_digits\":6,\"variations_count\":1}" },
|
||||
{ "3f039981255691d3859d04ef813a1264", "Xonox, John Perkins", "6230, 7210, 06004, 99004", "Artillery Duel (1983) (Xonox) [a]", "", "Extremely Rare", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "3f251c50aa7237e61a38ab42315ebed4", "Thomas Jentzsch", "", "Ikari Warriors (1990) (Thomas Jentzsch)", "NTSC Conversion", "Homebrew", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "3f3ad2765c874ca13c015ca6a44a40a1", "CCE", "C-862", "Crackpots (1983) (CCE)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
|
@ -1129,7 +1129,7 @@ static const BSPF::array2D<const char*, DEF_PROPS_SIZE, 28> DefProps = {{
|
|||
{ "4f7b07ec2bef5ccffe06403a142f80db", "Apollo - Games by Apollo, Ed Salvo, Byron Parks", "AP-2003", "Racquetball (1982) (Apollo) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "" },
|
||||
{ "4f82d8d78099dd71e8e169646e799d05", "", "", "Miniature Golf (Unknown) (PAL) (4K)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "4f89b897444e7c3b36aed469b8836839", "Atari", "CX26190", "BMX Air Master (1989) (Atari) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "4fae08027365d31c558e400b687adf21", "", "", "Qb (V2.17) (NTSC) (2001) (Retroactive)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "" },
|
||||
{ "4fae08027365d31c558e400b687adf21", "", "", "Qb (V2.17) (NTSC) (2001) (Retroactive)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "{\"score_addresses\":[\"0xe6\",\"0xe5\",\"0xe4\"],\"score_digits\":6,\"variations_count\":1}" },
|
||||
{ "4faeb04b1b7fb0fa25db05753182a898", "", "", "2600 Digital Clock (V x.xx) (PD) [a1]", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "4fbe0f10a6327a76f83f83958c3cbeff", "CCE", "C-816", "Keystone Kappers (1983) (CCE)", "AKA Keystone Kapers", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "{\"score_addresses\":[\"0x9a\",\"0x9b\",\"0x9c\"],\"score_digits\":6,\"variations_count\":1}" },
|
||||
{ "4fc1b85b8074b4b9436d097900e34f29", "John K. Harvey", "", "John K. Harvey's Equalizer (John K. Harvey)", "", "New Release", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "" },
|
||||
|
@ -1664,7 +1664,7 @@ static const BSPF::array2D<const char*, DEF_PROPS_SIZE, 28> DefProps = {{
|
|||
{ "7574480ae2ab0d282c887e9015fdb54c", "Atari, Jerome Domurat, Steve Woita", "CX2699", "Taz (1984) (Atari)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "7576dd46c2f8d8ab159d97e3a3f2052f", "Goliath - Hot Shot", "83-112", "Time Machine (1983) (Goliath) (PAL)", "AKA Asteroid Fire", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "757f529026696e13838364dea382a4ed", "Activision, David Crane - Ariola", "EAX-014, PAX-014, EAX-014-04B, EAX-014-04I - 711 014-720", "Grand Prix (1982) (Activision) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "{\"notes\":\"Time/score shows extra digit\",\"score_addresses\":[\"0xeb\",\"0xec\",\"0xed\"],\"score_digits\":5,\"score_inverted\":true,\"variations_address\":\"0x80\",\"variations_count\":4,\"variations_zero_based\":true}" },
|
||||
{ "75893a9dc5de4b91cc426959b82a1da0", "Champ Games", "CG-02-P", "Conquest Of Mars (2010) (PAL60)", "Rev 2 release", "Homebrew", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "75893a9dc5de4b91cc426959b82a1da0", "Champ Games", "CG-02-P", "Conquest Of Mars (2010) (PAL60)", "Rev 2 release", "Homebrew", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "{\"score_addresses\":[\"0x92\",\"0x94\",\"0x96\"],\"score_digits\":6,\"special_address\":\"0x9a\",\"special_label\":\"Level\",\"special_zero_based\":true,\"variations_address\":\"0x89\",\"variations_count\":4,\"variations_zero_based\":true}" },
|
||||
{ "75a303fd46ad12457ed8e853016815a0", "ZiMAG - Emag - Vidco", "715-111 - GN-060", "Immies & Aggies (1983) (ZiMAG) (Prototype)", "", "Prototype", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "75b22fdf632d76e246433db1ebccd3c4", "", "", "Skeleton+ (05-05-2003) (Eric Ball) (PAL)", "", "", "STEREO", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "75b557be7f08db84ec5b242207b9f241", "", "", "Space Treat (30-12-2002) (Fabrizio Zavagli) [a1]", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
|
@ -1895,7 +1895,7 @@ static const BSPF::array2D<const char*, DEF_PROPS_SIZE, 28> DefProps = {{
|
|||
{ "8597f66dd37d9c855663804669d69d7a", "Tigervision, Warren Schwader", "7-003", "Threshold (1982) (Tigervision) (Prototype)", "", "Prototype", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "85a4133f6dcf4180e36e70ad0fca0921", "CCE", "C-827", "Chopper Command (1983) (CCE)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "{\"score_addresses\":[\"0xec\",\"0xee\",\"0xf0\"],\"score_digits\":6,\"variations_address\":\"0xe0\",\"variations_count\":4,\"variations_zero_based\":true}" },
|
||||
{ "85b1bca93e69f13905107cc802a02470", "Atari, Craig Nelson", "CX2617, CX2617P", "Backgammon (1979) (Atari) (PAL)", "Uses the Paddle Controllers", "Extremely Rare", "", "", "", "", "", "", "", "PADDLES_IAXDR", "", "", "", "", "", "", "", "", "AUTO 80", "", "", "", "", "" },
|
||||
{ "85bbefb90e16bf386b304c1e9a1f6084", "Champ Games", "CG-02-P", "Conquest Of Mars (PAL60)", "", "Homebrew", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "85bbefb90e16bf386b304c1e9a1f6084", "Champ Games", "CG-02-P", "Conquest Of Mars (PAL60)", "", "Homebrew", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "{\"score_addresses\":[\"0x92\",\"0x94\",\"0x96\"],\"score_digits\":6,\"special_address\":\"0x9a\",\"special_label\":\"Level\",\"special_zero_based\":true,\"variations_address\":\"0x89\",\"variations_count\":4,\"variations_zero_based\":true}" },
|
||||
{ "85e48d68c8d802e3ba9d494a47d6e016", "", "", "Ship Demo (V 15) (PD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "85e564dae5687e431955056fbda10978", "Milton Bradley Company - Renaissance Technology, Ty Roberts", "4362", "Survival Run (1983) (Milton Bradley)", "AKA Cosmic Commander", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "" },
|
||||
{ "86128001e69ab049937f265911ce7e8a", "Apollo - Games by Apollo, Steve Stringfellow", "AP-2005", "Lochjaw (1982) (Apollo)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
|
@ -2047,7 +2047,7 @@ static const BSPF::array2D<const char*, DEF_PROPS_SIZE, 28> DefProps = {{
|
|||
{ "9222b25a0875022b412e8da37e7f6887", "Panda", "106", "Dice Puzzle (1983) (Panda)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "" },
|
||||
{ "9245a84e9851565d565cb6c9fac5802b", "Bomb - Onbase", "CA282", "Great Escape (1983) (Bomb)", "AKA Asteroid Fire", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "927d422d6335018da469a9a07cd80390", "Activision, Carol Shaw - Ariola", "EAX-020, EAX-020-04B, EAX-020-04I - 711 020-720", "River Raid (1982) (Activision) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "9281eccd7f6ef4b3ebdcfd2204c9763a", "Retroactive", "", "Qb (2.15) (Retroactive) (PAL)", "", "New Release", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "" },
|
||||
{ "9281eccd7f6ef4b3ebdcfd2204c9763a", "Retroactive", "", "Qb (2.15) (Retroactive) (PAL)", "", "New Release", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "{\"score_addresses\":[\"0xe6\",\"0xe5\",\"0xe4\"],\"score_digits\":6,\"variations_count\":1}" },
|
||||
{ "9295570a141cdec18074c55dc7229d08", "Telegames", "7045 A015", "Bump 'n' Jump (1988) (Telegames) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "929e8a84ed50601d9af8c49b0425c7ea", "Bit Corporation", "PG205", "Dancing Plate (1982) (BitCorp) (PAL)", "AKA Dishaster, Dancing Plates, Tanzende Teller", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "" },
|
||||
{ "92a1a605b7ad56d863a56373a866761b", "U.S. Games Corporation - Western Technologies, Dave Hampton", "VC2006", "Raft Rider (1983) (U.S. Games)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
|
@ -2382,7 +2382,7 @@ static const BSPF::array2D<const char*, DEF_PROPS_SIZE, 28> DefProps = {{
|
|||
{ "ac0ddbcff34d064009591607746e33b8", "Thomas Jentzsch", "", "Atlantis FH (2003) (TJ) (Hack)", "Hack of Atlantis", "Hack", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "{\"score_addresses\":[\"0xa3\",\"0xa2\"],\"score_digits\":6,\"score_trailing_zeroes\":2,\"variations_address\":\"0x8d\",\"variations_count\":4,\"variations_zero_based\":true}" },
|
||||
{ "ac26d7d37248d1d8eac5eccacdbef8db", "", "", "Snail Against Squirrel (Unknown) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "ac3dd22dd945724be705ddd2785487c2", "Atari - GCC, Mark Ackerman, Noellie Alito", "CX2692", "Moon Patrol (06-15-1983) (Atari) (Prototype)", "", "Prototype", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "ac53b83e1b57a601eeae9d3ce1b4a458", "Retroactive", "", "Qb (2.15) (Retroactive) (NTSC)", "", "New Release", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "" },
|
||||
{ "ac53b83e1b57a601eeae9d3ce1b4a458", "Retroactive", "", "Qb (2.15) (Retroactive) (NTSC)", "", "New Release", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "{\"score_addresses\":[\"0xe6\",\"0xe5\",\"0xe4\"],\"score_digits\":6,\"variations_count\":1}" },
|
||||
{ "ac5f78bae0638cf3f2a0c8d07eb4df69", "", "", "Minesweeper (V.99) (Soren Gust) (PD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "ac7c2260378975614192ca2bc3d20e0b", "Activision, David Crane", "AG-930-04, AZ-030", "Decathlon (1983) (Activision)", "", "Rare", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "{\"notes\":\"Decathlon & 100m dash share variation 1\",\"score_addresses\":[\"0x95\",\"0x96\"],\"variations_address\":\"0x80\",\"variations_bcd\":false,\"variations_count\":10,\"variations_zero_based\":true}" },
|
||||
{ "ac9adbd6de786a242e19d4bec527982b", "Activision, Alan Miller - Ariola", "EAG-012-04I, EAX-012, EAX-012-04B - 711 012-720", "Ice Hockey (1981) (Activision) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
|
@ -2567,7 +2567,7 @@ static const BSPF::array2D<const char*, DEF_PROPS_SIZE, 28> DefProps = {{
|
|||
{ "bc24440b59092559a1ec26055fd1270e", "", "", "Private Eye (1984) (Activision) [a]", "", "", "", "0", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "bc3057a35319aae3a5cd87a203736abe", "CCE", "C-845", "Time Warp (1983) (CCE)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "bc33c685e6ffced83abe7a43f30df7f9", "Dynacom", "", "Seaquest (1983) (Dynacom)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "{\"notes\":\"High score is from current player\",\"score_addresses\":[\"0xb8\",\"0xb9\",\"0xba\"],\"score_digits\":6,\"variations_count\":1}" },
|
||||
{ "bc4cf38a4bee45752dc466c98ed7ad09", "Atari, Douglas Neubauer, Mimi Nyden", "CX26136", "Solaris (1986) (Atari) (PAL)", "AKA Universe, Star Raiders II, The Last Starfighter", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "bc4cf38a4bee45752dc466c98ed7ad09", "Atari, Douglas Neubauer, Mimi Nyden", "CX26136", "Solaris (1986) (Atari) (PAL)", "AKA Universe, Star Raiders II, The Last Starfighter", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "{\"score_addresses\":[\"0xde\",\"0xdd\",\"0xdc\"],\"score_digits\":6,\"score_trailing_zeroes\":1,\"variations_count\":1}" },
|
||||
{ "bc526185ad324241782dc68ba5d0540b", "", "", "Dodge Demo 1 (PD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "bc5389839857612cfabeb810ba7effdc", "Atari, Tod Frye", "CX2671", "SwordQuest - WaterWorld (1983) (Atari)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "bc703ea6afb20bc089f04d8c9d79a2bd", "", "", "Gunfight 2600 - Not mergeable with Colbert wizardry... (2001) (MP)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
|
@ -2588,7 +2588,7 @@ static const BSPF::array2D<const char*, DEF_PROPS_SIZE, 28> DefProps = {{
|
|||
{ "bdc381baf7c252c63739c5e9ed087a5c", "", "", "Vertical Ship Demo 1 (PD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "bdecc81f740200780db04a107c3a1eba", "Quelle", "874.254 6", "Super-Cowboy beim Rodeo (1983) (Quelle) (PAL)", "AKA Stampede", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "bdf1996e2dd64baf8eff5511811ca6ca", "Tron", "", "H.E.R.O. (Tron)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "{\"score_addresses\":[\"0xb7\",\"0xb8\",\"0xb9\"],\"score_digits\":6,\"special_address\":\"0xf5\",\"special_bcd\":false,\"special_label\":\"Level\",\"special_zero_based\":true,\"variations_address\":\"0x80\",\"variations_count\":5,\"variations_zero_based\":true}" },
|
||||
{ "be060a704803446c02e6f039ab12eb91", "Parker Brothers, Rex Bradford, Sam Kjellman", "931501", "Star Wars - The Empire Strikes Back (1982) (Parker Bros) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "be060a704803446c02e6f039ab12eb91", "Parker Brothers, Rex Bradford, Sam Kjellman", "931501", "Star Wars - The Empire Strikes Back (1982) (Parker Bros) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "{\"score_addresses\":[\"0xe0\",\"0xe1\"],\"variations_address\":\"0xea\",\"variations_bcd\":false,\"variations_count\":32,\"variations_zero_based\":true}" },
|
||||
{ "be1922bd8e09d74da471287e1e968653", "Cropsy", "", "Hangman Pacman Demo (Cropsy) (Hack)", "Hack of Hangman", "Hack", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "be2870a0120fd28d25284e9ccdcbdc99", "", "", "Tomb Raider 2600 [REV 01] (Montezuma's Revenge Hack)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "be35d8b37bbc03848a5f020662a99909", "Atari, Joe Decuir, Steve Mayer, Larry Wagner - Sears", "CX2601 - 99801, 6-99801, 49-75124", "Combat (1977) (Atari) (4K) [a]", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
|
@ -2653,7 +2653,7 @@ static const BSPF::array2D<const char*, DEF_PROPS_SIZE, 28> DefProps = {{
|
|||
{ "c2c7a11717e255593e54d0acaf653ee5", "", "", "Chopper Command (208 in 1) (Unknown) (PAL) (Hack)", "", "Hack", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "{\"score_addresses\":[\"0xec\",\"0xee\",\"0xf0\"],\"score_digits\":6,\"variations_address\":\"0xe0\",\"variations_count\":4,\"variations_zero_based\":true}" },
|
||||
{ "c2c8eb642765137bb82b83a65232961f", "Thomas Jentzsch", "", "Challenge of... Nexar, The - Atari Mouse Hack v1.1 (PAL) (TJ)", "Uses Atari Mouse Controller", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "c2dea467f4a02fa1f06d66f52bc12e6e", "Thomas Jentzsch", "", "Missile Command Atari Trak-Ball Hack v1.3 (NTSC) (TJ)", "Uses Atari Trak-Ball Controller", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "{\"score_addresses\":[\"0xf3\",\"0xf1\",\"0xef\"],\"score_digits\":6,\"variations_address\":\"0xe9\",\"variations_count\":34}" },
|
||||
{ "c2fbef02b6eea37d8df3e91107f89950", "Champ Games", "CG-02-N", "Conquest Of Mars (NTSC)", "", "Homebrew", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "c2fbef02b6eea37d8df3e91107f89950", "Champ Games", "CG-02-N", "Conquest Of Mars (NTSC)", "", "Homebrew", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "{\"score_addresses\":[\"0x92\",\"0x94\",\"0x96\"],\"score_digits\":6,\"special_address\":\"0x9a\",\"special_label\":\"Level\",\"special_zero_based\":true,\"variations_address\":\"0x89\",\"variations_count\":4,\"variations_zero_based\":true}" },
|
||||
{ "c31a17942d162b80962cb1f7571cd1d5", "Home Vision - Gem International Corp. - VDI", "VCS83112", "Sky Alien (1983) (Home Vision) (PAL)", "AKA Sky Aliem", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "c3205e3707f646e1a106e09c5c49c1bf", "", "", "Unknown Title (bin00003 (200206)) (PD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "c3472fa98c3b452fa2fd37d1c219fb6f", "Atari, Carla Meninsky - Sears", "CX2637 - 49-75158", "Dodge 'Em (1980) (Atari) [a]", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
|
@ -2974,7 +2974,7 @@ static const BSPF::array2D<const char*, DEF_PROPS_SIZE, 28> DefProps = {{
|
|||
{ "d97fd5e6e1daacd909559a71f189f14b", "M Network, Steve Crandall, Patricia Lewis Du Long", "MT4646", "Rocky & Bullwinkle (04-20-1983) (M Network) (Prototype)", "", "Prototype", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "d9ab6b67a17da51e5ad13717e93fa2e2", "Thomas Jentzsch", "", "Turbo (Coleco) Prototype Fake v0.1 (TJ)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "d9b49f0678776e04916fa5478685a819", "Activision, John Van Ryzin - Ariola", "EAZ-036-04, EAZ-036-04B, EAZ-036-04I - 711 036-720", "H.E.R.O. (1984) (Activision) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "{\"score_addresses\":[\"0xb7\",\"0xb8\",\"0xb9\"],\"score_digits\":6,\"special_address\":\"0xf5\",\"special_bcd\":false,\"special_label\":\"Level\",\"special_zero_based\":true,\"variations_address\":\"0x80\",\"variations_count\":5,\"variations_zero_based\":true}" },
|
||||
{ "d9bd343533b61389b270c0787210943b", "Atari, Douglas 'Solaris' Neubauer", "CX26134", "Last Starfighter (1984) (Atari) (Prototype)", "Genesis controller (C switches to map mode)", "Hack of Last Starfighter (Solaris prototype)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "d9bd343533b61389b270c0787210943b", "Atari, Douglas 'Solaris' Neubauer", "CX26134", "Last Starfighter (1984) (Atari) (Prototype)", "Genesis controller (C switches to map mode)", "Hack of Last Starfighter (Solaris prototype)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "{\"score_addresses\":[\"0xde\",\"0xdd\",\"0xdc\"],\"score_digits\":6,\"score_trailing_zeroes\":1,\"variations_count\":1}" },
|
||||
{ "d9c9cece2e769c7985494b1403a25721", "SOLID Corp. (D. Scott Williamson)", "CX2655*", "Star Castle 2600 (SolidCorp)", "http://starcastle2600.blogspot.com/p/star-castle-2600-story.html", "Homebrew", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "" },
|
||||
{ "d9da2ae7c7894a29b43b3c6b79f3b7a2", "Atari, Rob Fulop", "CX2633, CX2633P", "Night Driver (1980) (Atari) (PAL) (4K)", "Uses the Paddle Controllers (left only)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "AUTO 65", "", "", "YES", "", "" },
|
||||
{ "d9fbf1113114fb3a3c97550a0689f10f", "ZiMAG - Emag - Vidco", "713-111 - GN-050", "Pizza Chef (1983) (ZiMAG) (Prototype)", "AKA Pizza Time", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
|
@ -3113,7 +3113,7 @@ static const BSPF::array2D<const char*, DEF_PROPS_SIZE, 28> DefProps = {{
|
|||
{ "e24d7d879281ffec0641e9c3f52e505a", "Parker Brothers, Mark Lesser", "PB5950", "Lord of the Rings (1983) (Parker Bros) (Prototype)", "Journey to Rivendell (The Lord of the Rings I)", "Prototype", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "e25e173740f7ecc0e23025445c4591f3", "Greg Zumwalt", "", "Comitoid (Greg Zumwalt)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "e275cbe7d4e11e62c3bfcfb38fca3d49", "M Network - INTV - APh Technological Consulting, Ken Smith", "MT5658", "Super Challenge Football (1982) (M Network)", "AKA Pro Football", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "e27d518993b0a010f16e92b971ecdcdd", "Manuel Polik", "", "Star Fire (2003) (XYPE) (PAL)", "", "Homebrew", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "e27d518993b0a010f16e92b971ecdcdd", "Manuel Polik", "", "Star Fire (2003) (XYPE) (PAL)", "", "Homebrew", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "{\"score_addresses\":[\"0x81\",\"0x82\",\"0x83\"],\"score_digits\":6,\"special_address\":\"0x84\",\"special_label\":\"Wave\",\"special_zero_based\":true,\"variations_count\":1}" },
|
||||
{ "e28113d10c0c14cc3b5f430b0d142fcb", "CCE", "C-816", "Keystone Kappers (1983) (CCE) [a]", "AKA Keystone Kapers", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "{\"score_addresses\":[\"0x9a\",\"0x9b\",\"0x9c\"],\"score_digits\":6,\"variations_count\":1}" },
|
||||
{ "e2846af3e4d172b251ab77cbdd01761e", "Steve Engelhardt", "", "Adventure Plus (2003) (Steve Engelhardt) (Hack)", "Hack of Adventure", "Hack", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "e2904748da63dfefc8816652b924b642", "Jone Yuan Telephonic Enterprise Co", "", "Catch Time (Jone Yuan)", "AKA Plaque Attack", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
|
@ -3185,7 +3185,7 @@ static const BSPF::array2D<const char*, DEF_PROPS_SIZE, 28> DefProps = {{
|
|||
{ "e6e5bb0e4f4350da573023256268313d", "Thomas Jentzsch", "", "Missile Control (Thomas Jentzsch)", "NTSC Conversion", "Homebrew", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "e6f49a1053c79211f82be4d90dc9fe3d", "", "", "Gunfight 2600 - Little progress... (2001) (MP)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "e723ad8f406cb258b89681ef4cef0eff", "Thomas Jentzsch", "", "Sadoom (TJ) (PAL) (Hack)", "Hack of Kaboom!", "Hack", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "01 50", "", "", "", "", "{\"score_addresses\":[\"0xa3\",\"0xa4\",\"0xa5\"],\"score_digits\":6,\"special_address\":\"0xa2\",\"special_bcd\":false,\"special_label\":\"Group\",\"variations_count\":1,\"variations_zero_based\":true}" },
|
||||
{ "e72eb8d4410152bdcb69e7fba327b420", "Atari, Douglas Neubauer, Mimi Nyden", "CX26136", "Solaris (1986) (Atari)", "AKA Universe, Star Raiders II, The Last Starfighter", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "e72eb8d4410152bdcb69e7fba327b420", "Atari, Douglas Neubauer, Mimi Nyden", "CX26136", "Solaris (1986) (Atari)", "AKA Universe, Star Raiders II, The Last Starfighter", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "{\"score_addresses\":[\"0xde\",\"0xdd\",\"0xdc\"],\"score_digits\":6,\"score_trailing_zeroes\":1,\"variations_count\":1}" },
|
||||
{ "e72ee2d6e501f07ec5e8a0efbe520bee", "Imagic, Dave Johnson", "720119-2A, 13211, EIX-004-04I", "Quick Step! (1983) (Imagic) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "e73838c43040bcbc83e4204a3e72eef4", "CCE", "", "Apples and Dolls (CCE)", "AKA Open, Sesame!", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "" },
|
||||
{ "e74022cfe31ec8908844718dfbdedf7a", "", "", "Space Treat (30-12-2002) (Fabrizio Zavagli) [a2]", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
|
@ -3329,7 +3329,7 @@ static const BSPF::array2D<const char*, DEF_PROPS_SIZE, 28> DefProps = {{
|
|||
{ "f16c709df0a6c52f47ff52b9d95b7d8d", "Atari, Alan Miller - Sears", "CX2662 - 6-99811", "Hangman (1978) (Atari)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "f16ef574d2042ed8fe877d6541f4dba4", "Spectravision - Spectravideo", "SA-201", "Gangster Alley (1982) (Spectravision)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "f1929bb9b5db22d98dd992aa3fe72920", "", "", "Cube Conquest (Improved Interlace) (Billy Eno) (PD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "" },
|
||||
{ "f19aba18f86e415812480ad2be221425", "Chris Larkin", "", "Solaris Trainer (2002) (Chris Larkin) (Hack)", "Hack of Solaris", "Hack", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "f19aba18f86e415812480ad2be221425", "Chris Larkin", "", "Solaris Trainer (2002) (Chris Larkin) (Hack)", "Hack of Solaris", "Hack", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "{\"score_addresses\":[\"0xde\",\"0xdd\",\"0xdc\"],\"score_digits\":6,\"score_trailing_zeroes\":1,\"variations_count\":1}" },
|
||||
{ "f1a0a23e6464d954e3a9579c4ccd01c8", "20th Century Fox, Douglas 'Dallas North' Neubauer", "11006", "Alien (1982) (20th Century Fox)", "", "Rare", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "" },
|
||||
{ "f1ae6305fa33a948e36deb0ef12af852", "Andreas Dietrich", "", "Donkey Kong VCS (2017) (1.0)", "", "Homebrew", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "" },
|
||||
{ "f1b2ea568b3e156e3f2849dac83591f6", "", "", "Sprite Demo (1997) (Bob Colbert) (PD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
|
@ -3489,7 +3489,7 @@ static const BSPF::array2D<const char*, DEF_PROPS_SIZE, 28> DefProps = {{
|
|||
{ "fb5c8af97bd8ffe88323656f462645a7", "", "", "Interlace Demo (Glenn Saunders)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "" },
|
||||
{ "fb833ed50c865a9a505a125fc9d79a7e", "ITT Family Games", "", "Pumuckl I (1983) (ITT Family Games) (PAL)", "AKA Panda Chase", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "fb884ffd89013331a6f01ae3f6abd214", "Activision, David Crane", "", "Venetian Blinds Demo (1982) (Activision) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "fb88baa01afd34e0e4b601e1d29bc806", "Manuel Polik", "", "Star Fire (2003) (XYPE)", "", "Homebrew", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "fb88baa01afd34e0e4b601e1d29bc806", "Manuel Polik", "", "Star Fire (2003) (XYPE)", "", "Homebrew", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "{\"score_addresses\":[\"0x81\",\"0x82\",\"0x83\"],\"score_digits\":6,\"special_address\":\"0x84\",\"special_label\":\"Wave\",\"special_zero_based\":true,\"variations_count\":1}" },
|
||||
{ "fb88c400d602fe759ae74ef1716ee84e", "20th Century Fox Video Games, Bill Aspromonte", "11031", "Crash Dive (1983) (20th Century Fox)", "AKA Voyage to the Bottom of the Sea", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "fb91da78455d9b1606913fbf8c859772", "", "", "Split Screen (Ballblazer) Demo (PD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "fb91dfc36cddaa54b09924ae8fd96199", "Parker Brothers, Mark Lesser", "PB5590", "Frogger II (1984) (Parker Bros) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "" },
|
||||
|
|
|
@ -306,6 +306,13 @@ static void Decode(uInt32* output, const uInt8* input, uInt32 len)
|
|||
((uInt32(input[j+2])) << 16) | ((uInt32(input[j+3])) << 24);
|
||||
}
|
||||
|
||||
string hash(const string& buffer)
|
||||
{
|
||||
std::vector<uint8_t> vec(buffer.begin(), buffer.end());
|
||||
|
||||
return hash(vec.data(), vec.size());
|
||||
}
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
string hash(const ByteBuffer& buffer, size_t length)
|
||||
{
|
||||
|
|
|
@ -24,30 +24,37 @@ class FilesystemNode;
|
|||
|
||||
namespace MD5 {
|
||||
|
||||
/**
|
||||
Get the MD5 Message-Digest of the specified message with the
|
||||
given length. The digest consists of 32 hexadecimal digits.
|
||||
/**
|
||||
Get the MD5 Message-Digest of the specified message with the
|
||||
given length. The digest consists of 32 hexadecimal digits.
|
||||
|
||||
Note that currently, the length is truncated internally to
|
||||
32 bits, until the MD5 routines are rewritten for 64-bit.
|
||||
Based on the size of data we currently use, this may never
|
||||
actually happen.
|
||||
Note that currently, the length is truncated internally to
|
||||
32 bits, until the MD5 routines are rewritten for 64-bit.
|
||||
Based on the size of data we currently use, this may never
|
||||
actually happen.
|
||||
|
||||
@param buffer The message to compute the digest of
|
||||
@param length The length of the message
|
||||
@return The message-digest
|
||||
*/
|
||||
string hash(const ByteBuffer& buffer, size_t length);
|
||||
string hash(const uInt8* buffer, size_t length);
|
||||
@param buffer The message to compute the digest of
|
||||
@param length The length of the message
|
||||
@return The message-digest
|
||||
*/
|
||||
string hash(const ByteBuffer& buffer, size_t length);
|
||||
string hash(const uInt8* buffer, size_t length);
|
||||
/**
|
||||
Dito.
|
||||
|
||||
/**
|
||||
Get the MD5 Message-Digest of the file contained in 'node'.
|
||||
The digest consists of 32 hexadecimal digits.
|
||||
@param buffer The message to compute the digest of
|
||||
@return The message - digest
|
||||
*/
|
||||
string hash(const string& buffer);
|
||||
|
||||
@param node The file node to compute the digest of
|
||||
@return The message-digest
|
||||
*/
|
||||
string hash(const FilesystemNode& node);
|
||||
/**
|
||||
Get the MD5 Message-Digest of the file contained in 'node'.
|
||||
The digest consists of 32 hexadecimal digits.
|
||||
|
||||
@param node The file node to compute the digest of
|
||||
@return The message-digest
|
||||
*/
|
||||
string hash(const FilesystemNode& node);
|
||||
|
||||
} // Namespace MD5
|
||||
|
||||
|
|
|
@ -909,6 +909,7 @@
|
|||
"Cart.Name" "Solaris (Genesis)"
|
||||
"Cart.Note" "Genesis controller (C switches to map mode)"
|
||||
"Cart.Rarity" "Hack of Solaris"
|
||||
"Cart.Highscore" "{\"score_addresses\":[\"0xde\",\"0xdd\",\"0xdc\"],\"score_digits\":6,\"score_trailing_zeroes\":1,\"variations_count\":1}"
|
||||
""
|
||||
|
||||
"Cart.MD5" "0ae3497e731ca0bf6a77b23441d9d9f9"
|
||||
|
@ -1326,6 +1327,7 @@
|
|||
"Cart.Name" "Conquest Of Mars (2010) (NTSC)"
|
||||
"Cart.Note" "Rev 2 release"
|
||||
"Cart.Rarity" "Homebrew"
|
||||
"Cart.Highscore" "{\"score_addresses\":[\"0x92\",\"0x94\",\"0x96\"],\"score_digits\":6,\"special_address\":\"0x9a\",\"special_label\":\"Level\",\"special_zero_based\":true,\"variations_address\":\"0x89\",\"variations_count\":4,\"variations_zero_based\":true}"
|
||||
""
|
||||
|
||||
"Cart.MD5" "0f643c34e40e3f1daafd9c524d3ffe64"
|
||||
|
@ -4565,6 +4567,7 @@
|
|||
"Cart.Name" "Qb (2.15) (Retroactive) (Stella)"
|
||||
"Cart.Rarity" "New Release"
|
||||
"Display.Phosphor" "YES"
|
||||
"Cart.Highscore" "{\"score_addresses\":[\"0xe6\",\"0xe5\",\"0xe4\"],\"score_digits\":6,\"variations_count\":1}"
|
||||
""
|
||||
|
||||
"Cart.MD5" "34f4b1d809aa705ace6e46b13253fd3b"
|
||||
|
@ -5254,6 +5257,7 @@
|
|||
"Cart.Manufacturer" "Parker Brothers, Rex Bradford, Sam Kjellman"
|
||||
"Cart.ModelNo" "PB5050"
|
||||
"Cart.Name" "Star Wars - The Empire Strikes Back (1982) (Parker Bros)"
|
||||
"Cart.Highscore" "{\"score_addresses\":[\"0xe0\",\"0xe1\"],\"variations_address\":\"0xea\",\"variations_bcd\":false,\"variations_count\":32,\"variations_zero_based\":true}"
|
||||
""
|
||||
|
||||
"Cart.MD5" "3ca51b5c08f5a0ecfb17d0c1ec6d0942"
|
||||
|
@ -5480,6 +5484,7 @@
|
|||
"Cart.MD5" "3f01bd6d059396f495a4cde7de0ab180"
|
||||
"Cart.Name" "Qb (Special Edition) (NTSC) (Retroactive)"
|
||||
"Display.Phosphor" "YES"
|
||||
"Cart.Highscore" "{\"score_addresses\":[\"0xe6\",\"0xe5\",\"0xe4\"],\"score_digits\":6,\"variations_count\":1}"
|
||||
""
|
||||
|
||||
"Cart.MD5" "3f039981255691d3859d04ef813a1264"
|
||||
|
@ -6872,6 +6877,7 @@
|
|||
"Cart.MD5" "4fae08027365d31c558e400b687adf21"
|
||||
"Cart.Name" "Qb (V2.17) (NTSC) (2001) (Retroactive)"
|
||||
"Display.Phosphor" "YES"
|
||||
"Cart.Highscore" "{\"score_addresses\":[\"0xe6\",\"0xe5\",\"0xe4\"],\"score_digits\":6,\"variations_count\":1}"
|
||||
""
|
||||
|
||||
"Cart.MD5" "4faeb04b1b7fb0fa25db05753182a898"
|
||||
|
@ -10222,6 +10228,7 @@
|
|||
"Cart.Name" "Conquest Of Mars (2010) (PAL60)"
|
||||
"Cart.Note" "Rev 2 release"
|
||||
"Cart.Rarity" "Homebrew"
|
||||
"Cart.Highscore" "{\"score_addresses\":[\"0x92\",\"0x94\",\"0x96\"],\"score_digits\":6,\"special_address\":\"0x9a\",\"special_label\":\"Level\",\"special_zero_based\":true,\"variations_address\":\"0x89\",\"variations_count\":4,\"variations_zero_based\":true}"
|
||||
""
|
||||
|
||||
"Cart.MD5" "75a303fd46ad12457ed8e853016815a0"
|
||||
|
@ -11669,6 +11676,7 @@
|
|||
"Cart.ModelNo" "CG-02-P"
|
||||
"Cart.Name" "Conquest Of Mars (PAL60)"
|
||||
"Cart.Rarity" "Homebrew"
|
||||
"Cart.Highscore" "{\"score_addresses\":[\"0x92\",\"0x94\",\"0x96\"],\"score_digits\":6,\"special_address\":\"0x9a\",\"special_label\":\"Level\",\"special_zero_based\":true,\"variations_address\":\"0x89\",\"variations_count\":4,\"variations_zero_based\":true}"
|
||||
""
|
||||
|
||||
"Cart.MD5" "85e48d68c8d802e3ba9d494a47d6e016"
|
||||
|
@ -12603,6 +12611,7 @@
|
|||
"Cart.Name" "Qb (2.15) (Retroactive) (PAL)"
|
||||
"Cart.Rarity" "New Release"
|
||||
"Display.Phosphor" "YES"
|
||||
"Cart.Highscore" "{\"score_addresses\":[\"0xe6\",\"0xe5\",\"0xe4\"],\"score_digits\":6,\"variations_count\":1}"
|
||||
""
|
||||
|
||||
"Cart.MD5" "9295570a141cdec18074c55dc7229d08"
|
||||
|
@ -14661,6 +14670,7 @@
|
|||
"Cart.Name" "Qb (2.15) (Retroactive) (NTSC)"
|
||||
"Cart.Rarity" "New Release"
|
||||
"Display.Phosphor" "YES"
|
||||
"Cart.Highscore" "{\"score_addresses\":[\"0xe6\",\"0xe5\",\"0xe4\"],\"score_digits\":6,\"variations_count\":1}"
|
||||
""
|
||||
|
||||
"Cart.MD5" "ac5f78bae0638cf3f2a0c8d07eb4df69"
|
||||
|
@ -15823,6 +15833,7 @@
|
|||
"Cart.ModelNo" "CX26136"
|
||||
"Cart.Name" "Solaris (1986) (Atari) (PAL)"
|
||||
"Cart.Note" "AKA Universe, Star Raiders II, The Last Starfighter"
|
||||
"Cart.Highscore" "{\"score_addresses\":[\"0xde\",\"0xdd\",\"0xdc\"],\"score_digits\":6,\"score_trailing_zeroes\":1,\"variations_count\":1}"
|
||||
""
|
||||
|
||||
"Cart.MD5" "bc526185ad324241782dc68ba5d0540b"
|
||||
|
@ -15941,6 +15952,7 @@
|
|||
"Cart.Manufacturer" "Parker Brothers, Rex Bradford, Sam Kjellman"
|
||||
"Cart.ModelNo" "931501"
|
||||
"Cart.Name" "Star Wars - The Empire Strikes Back (1982) (Parker Bros) (PAL)"
|
||||
"Cart.Highscore" "{\"score_addresses\":[\"0xe0\",\"0xe1\"],\"variations_address\":\"0xea\",\"variations_bcd\":false,\"variations_count\":32,\"variations_zero_based\":true}"
|
||||
""
|
||||
|
||||
"Cart.MD5" "be1922bd8e09d74da471287e1e968653"
|
||||
|
@ -16347,6 +16359,7 @@
|
|||
"Cart.ModelNo" "CG-02-N"
|
||||
"Cart.Name" "Conquest Of Mars (NTSC)"
|
||||
"Cart.Rarity" "Homebrew"
|
||||
"Cart.Highscore" "{\"score_addresses\":[\"0x92\",\"0x94\",\"0x96\"],\"score_digits\":6,\"special_address\":\"0x9a\",\"special_label\":\"Level\",\"special_zero_based\":true,\"variations_address\":\"0x89\",\"variations_count\":4,\"variations_zero_based\":true}"
|
||||
""
|
||||
|
||||
"Cart.MD5" "c31a17942d162b80962cb1f7571cd1d5"
|
||||
|
@ -18344,6 +18357,7 @@
|
|||
"Cart.Name" "Last Starfighter (1984) (Atari) (Prototype)"
|
||||
"Cart.Note" "Genesis controller (C switches to map mode)"
|
||||
"Cart.Rarity" "Hack of Last Starfighter (Solaris prototype)"
|
||||
"Cart.Highscore" "{\"score_addresses\":[\"0xde\",\"0xdd\",\"0xdc\"],\"score_digits\":6,\"score_trailing_zeroes\":1,\"variations_count\":1}"
|
||||
""
|
||||
|
||||
"Cart.MD5" "d9c9cece2e769c7985494b1403a25721"
|
||||
|
@ -19199,6 +19213,7 @@
|
|||
"Cart.Manufacturer" "Manuel Polik"
|
||||
"Cart.Name" "Star Fire (2003) (XYPE) (PAL)"
|
||||
"Cart.Rarity" "Homebrew"
|
||||
"Cart.Highscore" "{\"score_addresses\":[\"0x81\",\"0x82\",\"0x83\"],\"score_digits\":6,\"special_address\":\"0x84\",\"special_label\":\"Wave\",\"special_zero_based\":true,\"variations_count\":1}"
|
||||
""
|
||||
|
||||
"Cart.MD5" "e28113d10c0c14cc3b5f430b0d142fcb"
|
||||
|
@ -19655,6 +19670,7 @@
|
|||
"Cart.ModelNo" "CX26136"
|
||||
"Cart.Name" "Solaris (1986) (Atari)"
|
||||
"Cart.Note" "AKA Universe, Star Raiders II, The Last Starfighter"
|
||||
"Cart.Highscore" "{\"score_addresses\":[\"0xde\",\"0xdd\",\"0xdc\"],\"score_digits\":6,\"score_trailing_zeroes\":1,\"variations_count\":1}"
|
||||
""
|
||||
|
||||
"Cart.MD5" "e72ee2d6e501f07ec5e8a0efbe520bee"
|
||||
|
@ -20538,6 +20554,7 @@
|
|||
"Cart.Name" "Solaris Trainer (2002) (Chris Larkin) (Hack)"
|
||||
"Cart.Note" "Hack of Solaris"
|
||||
"Cart.Rarity" "Hack"
|
||||
"Cart.Highscore" "{\"score_addresses\":[\"0xde\",\"0xdd\",\"0xdc\"],\"score_digits\":6,\"score_trailing_zeroes\":1,\"variations_count\":1}"
|
||||
""
|
||||
|
||||
"Cart.MD5" "f1a0a23e6464d954e3a9579c4ccd01c8"
|
||||
|
@ -21523,6 +21540,7 @@
|
|||
"Cart.Manufacturer" "Manuel Polik"
|
||||
"Cart.Name" "Star Fire (2003) (XYPE)"
|
||||
"Cart.Rarity" "Homebrew"
|
||||
"Cart.Highscore" "{\"score_addresses\":[\"0x81\",\"0x82\",\"0x83\"],\"score_digits\":6,\"special_address\":\"0x84\",\"special_label\":\"Wave\",\"special_zero_based\":true,\"variations_count\":1}"
|
||||
""
|
||||
|
||||
"Cart.MD5" "fb88c400d602fe759ae74ef1716ee84e"
|
||||
|
|
|
@ -1283,7 +1283,7 @@ void GameInfoDialog::updateHighScoresWidgets()
|
|||
setAddressVal(mySpecialAddress, mySpecialAddressVal, mySpecialBCD->getState(),
|
||||
mySpecialZeroBased->getState());
|
||||
|
||||
// update score RAM values and resulting myScores
|
||||
// update score RAM values and resulting scores
|
||||
HSM::ScoreAddresses scoreAddr;
|
||||
|
||||
for(uInt32 a = 0; a < HSM::MAX_SCORE_ADDR; ++a)
|
||||
|
|
|
@ -186,18 +186,19 @@ HighScoresDialog::HighScoresDialog(OSystem& osystem, DialogContainer& parent,
|
|||
ypos += VGAP;
|
||||
|
||||
_w = std::max(myDeleteButtons[0]->getRight() + HBORDER,
|
||||
HBORDER * 2 + ifont.getMaxCharWidth() * (5 + 32 + 2 + 11));
|
||||
HBORDER * 2 + ifont.getMaxCharWidth() * (5 + 17 + 2 + 7 + 17));
|
||||
myNotesWidget = new StaticTextWidget(this, ifont, xpos, ypos + 1, _w - HBORDER * 2,
|
||||
infoLineHeight, "Note: ");
|
||||
|
||||
ypos += infoLineHeight + VGAP;
|
||||
|
||||
// Note: Only display the first 16 md5 chars + "..."
|
||||
myMD5Widget = new StaticTextWidget(this, ifont, xpos, ypos + 1,
|
||||
"MD5: 12345678901234567890123456789012");
|
||||
"MD5: 1234567890123456.");
|
||||
|
||||
myCheckSumWidget = new StaticTextWidget(this, ifont,
|
||||
_w - HBORDER - ifont.getStringWidth("Props: 1234"),
|
||||
ypos + 1, "Props: 1234");
|
||||
_w - HBORDER - ifont.getStringWidth("Props: 1234567890123456."),
|
||||
ypos + 1, "Props: 1234567890123456.");
|
||||
|
||||
_h = myMD5Widget->getBottom() + VBORDER + buttonHeight + VBORDER;
|
||||
|
||||
|
@ -276,7 +277,7 @@ void HighScoresDialog::loadConfig()
|
|||
myScores.md5 = instance().launcher().selectedRomMD5();
|
||||
|
||||
myMD5Widget->setLabel("MD5: " + myScores.md5);
|
||||
myCheckSumWidget->setLabel("Props: " + instance().highScores().checkSumProps());
|
||||
myCheckSumWidget->setLabel("Props: " + instance().highScores().md5Props());
|
||||
|
||||
// requires the current MD5
|
||||
myGameNameWidget->setLabel(cartName());
|
||||
|
|
|
@ -37,7 +37,7 @@ using json = nlohmann::json;
|
|||
|
||||
|
||||
/**
|
||||
The dialog for displaying high myScores in Stella.
|
||||
The dialog for displaying high scores in Stella.
|
||||
|
||||
@author Thomas Jentzsch
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue