mirror of
https://github.com/RetroDECK/Supermodel.git
synced 2025-04-10 19:15:14 +00:00
Added encryption keys, converted to cstdint types, fixed whitespace
This commit is contained in:
parent
c7ad13fb31
commit
0d989831ed
|
@ -49,7 +49,8 @@ const struct GameInfo g_Model3GameList[] =
|
|||
0x800000, // 8 MB of sample ROMs
|
||||
GAME_INPUT_COMMON|GAME_INPUT_JOYSTICK1,
|
||||
0, // no MPEG board
|
||||
false, // no drive board
|
||||
false, // no drive board,
|
||||
0, // no security board
|
||||
|
||||
{
|
||||
// Fixed CROM
|
||||
|
@ -118,6 +119,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_VEHICLE|GAME_INPUT_SHIFT4|GAME_INPUT_VR4,
|
||||
2, // DSB2 MPEG board
|
||||
true, // drive board
|
||||
0x29250e16, // security board encryption key
|
||||
|
||||
{
|
||||
// Fixed CROM
|
||||
|
@ -202,6 +204,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_VEHICLE|GAME_INPUT_SHIFT4|GAME_INPUT_VR4,
|
||||
2, // DSB2 MPEG board
|
||||
true, // drive board
|
||||
0x29222cc4, // security board encryption key
|
||||
|
||||
{
|
||||
// Fixed CROM
|
||||
|
@ -286,6 +289,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_VEHICLE|GAME_INPUT_SHIFTUPDOWN|GAME_INPUT_HANDBRAKE|GAME_INPUT_VIEWCHANGE,
|
||||
0, // no MPEG board
|
||||
false, // no drive board
|
||||
0x29290f17, // security board encryption key
|
||||
|
||||
{
|
||||
// Fixed CROM
|
||||
|
@ -349,6 +353,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_VEHICLE|GAME_INPUT_SHIFTUPDOWN|GAME_INPUT_HANDBRAKE|GAME_INPUT_VIEWCHANGE,
|
||||
0, // no MPEG board
|
||||
false, // no drive board
|
||||
0x29290f17, // security board encryption key
|
||||
|
||||
{
|
||||
// Fixed CROM
|
||||
|
@ -412,6 +417,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_VEHICLE|GAME_INPUT_SHIFTUPDOWN|GAME_INPUT_VIEWCHANGE,
|
||||
0, // no MPEG board
|
||||
false, // no drive board
|
||||
0x2923aa91, // security board encryption key
|
||||
|
||||
{
|
||||
// Fixed CROM
|
||||
|
@ -482,6 +488,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_VEHICLE|GAME_INPUT_SHIFTUPDOWN|GAME_INPUT_VIEWCHANGE,
|
||||
0, // no MPEG board
|
||||
false, // no drive board
|
||||
0x2923aa91, // security board encryption key
|
||||
|
||||
{
|
||||
// Fixed CROM
|
||||
|
@ -552,6 +559,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_JOYSTICK1|GAME_INPUT_JOYSTICK2|GAME_INPUT_FIGHTING,
|
||||
0, // no MPEG board
|
||||
false, // no drive board
|
||||
0x29260e96, // security board encryption key
|
||||
|
||||
{
|
||||
// Fixed CROM
|
||||
|
@ -603,7 +611,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
{ "VROM", false, "mpr-20595.41", 0x1D4A2CAD, 0x400000, 2, 30, 32, false },
|
||||
|
||||
// Sound ROMs
|
||||
{ "SndProg", false, "epr-20600a.21", 0xF0E7DB7E, 0x80000, 2, 0, 2, true },
|
||||
{ "SndProg", false, "epr-20600a.21",0xF0E7DB7E, 0x80000, 2, 0, 2, true },
|
||||
{ "Samples", false, "mpr-20576", 0x1EEB540B, 0x400000, 2, 0x000000, 2, true },
|
||||
{ "Samples", false, "mpr-20578", 0xD222F2D4, 0x400000, 2, 0x400000, 2, true },
|
||||
{ "Samples", false, "mpr-20577", 0x3B236187, 0x400000, 2, 0x800000, 2, true },
|
||||
|
@ -628,6 +636,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_JOYSTICK1,
|
||||
0, // no MPEG board
|
||||
false, // no drive board
|
||||
0, // no security board
|
||||
|
||||
{
|
||||
// Fixed CROM
|
||||
|
@ -696,6 +705,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_VEHICLE|GAME_INPUT_SHIFTUPDOWN|GAME_INPUT_HARLEY|GAME_INPUT_VIEWCHANGE,
|
||||
0, // no MPEG board
|
||||
false, // no drive board
|
||||
0, // no security board
|
||||
|
||||
{
|
||||
// Fixed CROM
|
||||
|
@ -766,6 +776,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_VEHICLE|GAME_INPUT_SHIFTUPDOWN|GAME_INPUT_HARLEY|GAME_INPUT_VIEWCHANGE,
|
||||
0, // no MPEG board
|
||||
false, // no drive board
|
||||
0, // no security board
|
||||
|
||||
{
|
||||
// Fixed CROM
|
||||
|
@ -836,6 +847,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_ANALOG_GUN1|GAME_INPUT_ANALOG_GUN2,
|
||||
0, // no MPEG board
|
||||
false, // no drive board
|
||||
0x292a2bc5, // security board encryption device
|
||||
|
||||
{
|
||||
// Fixed CROM
|
||||
|
@ -906,6 +918,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_VEHICLE|GAME_INPUT_VR4|GAME_INPUT_SHIFTUPDOWN,
|
||||
0, // no MPEG board
|
||||
false, // no drive board
|
||||
0, // no security board
|
||||
|
||||
{
|
||||
// Fixed CROM
|
||||
|
@ -974,6 +987,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_GUN1|GAME_INPUT_GUN2,
|
||||
0, // no MPEG board
|
||||
false, // no drive board
|
||||
0, // no security board
|
||||
|
||||
{
|
||||
// Fixed CROM
|
||||
|
@ -1048,6 +1062,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_VEHICLE,
|
||||
0, // no MPEG board
|
||||
false, // no drive board
|
||||
0x29266e45, // securiry board encryption key
|
||||
|
||||
{
|
||||
// Fixed CROM
|
||||
|
@ -1106,6 +1121,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_ANALOG_GUN1|GAME_INPUT_ANALOG_GUN2,
|
||||
0, // no MPEG board
|
||||
false, // no drive board
|
||||
0x292b6a01, // security board encryption key
|
||||
|
||||
{
|
||||
// Fixed CROM
|
||||
|
@ -1176,6 +1192,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_VEHICLE|GAME_INPUT_SHIFT4|GAME_INPUT_VR4,
|
||||
1, // DSB1 MPEG board
|
||||
true, // drive board
|
||||
0, // no security board
|
||||
|
||||
{
|
||||
// Fixed CROM (mirroring behavior here is special and handled manually by CModel3)
|
||||
|
@ -1252,6 +1269,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_VEHICLE|GAME_INPUT_SHIFT4|GAME_INPUT_VR4,
|
||||
1, // DSB1 MPEG board
|
||||
true, // drive board
|
||||
0, // no security board
|
||||
|
||||
{
|
||||
// Fixed CROM (mirroring behavior here is special and handled manually by CModel3)
|
||||
|
@ -1328,6 +1346,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_VEHICLE|GAME_INPUT_SHIFT4|GAME_INPUT_VR4,
|
||||
1, // DSB1 MPEG board
|
||||
true, // drive board
|
||||
0, // no security board
|
||||
|
||||
{
|
||||
// Fixed CROM (mirroring behavior here is special and handled manually by CModel3)
|
||||
|
@ -1404,6 +1423,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_VEHICLE|GAME_INPUT_SHIFT4|GAME_INPUT_VR4,
|
||||
1, // DSB1 MPEG board
|
||||
true, // drive board
|
||||
0, // no security board
|
||||
|
||||
{
|
||||
// Fixed CROM (mirroring behavior here is special and handled manually by CModel3)
|
||||
|
@ -1486,6 +1506,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_VEHICLE|GAME_INPUT_SHIFT4|GAME_INPUT_VR4,
|
||||
1, // DSB1 MPEG board
|
||||
true, // drive board
|
||||
0, // no security board
|
||||
|
||||
{
|
||||
// Fixed CROM (mirroring behavior here is special and handled manually by CModel3)
|
||||
|
@ -1568,6 +1589,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_SKI,
|
||||
0, // no MPEG board
|
||||
false, // no drive board
|
||||
0, // no security board
|
||||
|
||||
{
|
||||
// Fixed CROM
|
||||
|
@ -1642,6 +1664,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_JOYSTICK1|GAME_INPUT_SPIKEOUT,
|
||||
2, // DSB2 MPEG board
|
||||
false, // no drive board
|
||||
0x29236fc8, // securiy board encryption key
|
||||
|
||||
{
|
||||
// Fixed CROM
|
||||
|
@ -1723,6 +1746,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_JOYSTICK1|GAME_INPUT_SPIKEOUT,
|
||||
2, // DSB2 MPEG board
|
||||
false, // no drive board
|
||||
0x292f2b04, // securiy board encryption key
|
||||
|
||||
{
|
||||
// Fixed CROM
|
||||
|
@ -1804,6 +1828,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_VEHICLE|GAME_INPUT_SHIFT4|GAME_INPUT_HANDBRAKE|GAME_INPUT_VIEWCHANGE,
|
||||
2, // DSB2 MPEG board
|
||||
true, // drive board
|
||||
0, // no security board
|
||||
|
||||
{
|
||||
// Fixed CROM
|
||||
|
@ -1880,6 +1905,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_VEHICLE|GAME_INPUT_SHIFT4|GAME_INPUT_HANDBRAKE|GAME_INPUT_VIEWCHANGE,
|
||||
0, // no MPEG board
|
||||
true, // drive board
|
||||
0, // no security board
|
||||
|
||||
{
|
||||
// Fixed CROM
|
||||
|
@ -1951,6 +1977,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_ANALOG_JOYSTICK,
|
||||
2, // DSB2 MPEG board
|
||||
false, // no drive board
|
||||
0x31272a01, // security board encryption key
|
||||
|
||||
{
|
||||
// Fixed CROM
|
||||
|
@ -2024,6 +2051,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_ANALOG_JOYSTICK,
|
||||
2, // DSB2 MPEG board
|
||||
false, // no drive board
|
||||
0x31272a01, // security board encryption key
|
||||
|
||||
{
|
||||
// Fixed CROM
|
||||
|
@ -2097,6 +2125,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_JOYSTICK1|GAME_INPUT_JOYSTICK2|GAME_INPUT_FIGHTING,
|
||||
0, // no MPEG board
|
||||
false, // no drive board
|
||||
0, // no security board
|
||||
|
||||
{
|
||||
// Fixed CROM
|
||||
|
@ -2171,6 +2200,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_JOYSTICK1|GAME_INPUT_JOYSTICK2|GAME_INPUT_FIGHTING,
|
||||
0, // no MPEG board
|
||||
false, // no drive board
|
||||
0, // no security board
|
||||
|
||||
{
|
||||
// Fixed CROM
|
||||
|
@ -2245,6 +2275,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_JOYSTICK1|GAME_INPUT_JOYSTICK2|GAME_INPUT_FIGHTING,
|
||||
0, // no MPEG board
|
||||
false, // no drive board
|
||||
0, // no security board
|
||||
|
||||
{
|
||||
// Fixed CROM
|
||||
|
@ -2319,6 +2350,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_TWIN_JOYSTICKS,
|
||||
0, // no MPEG board
|
||||
false, // no drive board
|
||||
0x292a0e97, // security board encryption key
|
||||
|
||||
{
|
||||
// Fixed CROM
|
||||
|
@ -2395,6 +2427,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_TWIN_JOYSTICKS,
|
||||
0, // no MPEG board
|
||||
false, // no drive board
|
||||
0x292a0e97, // security board encryption key
|
||||
|
||||
{
|
||||
// Fixed CROM
|
||||
|
@ -2471,6 +2504,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_JOYSTICK1|GAME_INPUT_JOYSTICK2|GAME_INPUT_SOCCER,
|
||||
0, // no MPEG board
|
||||
false, // no drive board
|
||||
0, // no security board
|
||||
|
||||
{
|
||||
// Fixed CROM
|
||||
|
@ -2545,6 +2579,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_JOYSTICK1|GAME_INPUT_JOYSTICK2|GAME_INPUT_SOCCER,
|
||||
0, // no MPEG board
|
||||
false, // no drive board
|
||||
0, // no security board
|
||||
|
||||
{
|
||||
// Fixed CROM
|
||||
|
@ -2619,6 +2654,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_JOYSTICK1|GAME_INPUT_JOYSTICK2|GAME_INPUT_SOCCER,
|
||||
0, // no MPEG board
|
||||
false, // no drive board
|
||||
0, // no security board
|
||||
|
||||
{
|
||||
// Fixed CROM
|
||||
|
@ -2693,6 +2729,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_JOYSTICK1|GAME_INPUT_JOYSTICK2|GAME_INPUT_SOCCER,
|
||||
0, // no MPEG board
|
||||
false, // no drive board
|
||||
0x29234e96, // security board encryption key
|
||||
|
||||
{
|
||||
// Fixed CROM
|
||||
|
@ -2767,6 +2804,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_JOYSTICK1|GAME_INPUT_JOYSTICK2|GAME_INPUT_SOCCER,
|
||||
0, // no MPEG board
|
||||
false, // no drive board
|
||||
0, // no security board
|
||||
|
||||
{
|
||||
// Fixed CROM
|
||||
|
@ -2841,6 +2879,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_JOYSTICK1|GAME_INPUT_JOYSTICK2|GAME_INPUT_SOCCER,
|
||||
0, // no MPEG board
|
||||
false, // no drive board
|
||||
0x29222ac8, // security board encryption key
|
||||
|
||||
{
|
||||
// Fixed CROM
|
||||
|
@ -2915,6 +2954,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_JOYSTICK1|GAME_INPUT_JOYSTICK2|GAME_INPUT_SOCCER,
|
||||
0, // no MPEG board
|
||||
false, // no drive board
|
||||
0x09222ac8, // security board encryption key
|
||||
|
||||
{
|
||||
// Fixed CROM
|
||||
|
@ -2989,6 +3029,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_JOYSTICK1|GAME_INPUT_JOYSTICK2|GAME_INPUT_SOCCER,
|
||||
0, // no MPEG board
|
||||
false, // no drive board
|
||||
0x29222ac8, // security board encryption key
|
||||
|
||||
{
|
||||
// Fixed CROM
|
||||
|
@ -3063,6 +3104,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_JOYSTICK1|GAME_INPUT_JOYSTICK2|GAME_INPUT_SOCCER,
|
||||
0, // no MPEG board
|
||||
false, // no drive board
|
||||
0x29222ac8, // security board encryption key
|
||||
|
||||
{
|
||||
// Fixed CROM
|
||||
|
@ -3137,6 +3179,7 @@ const struct GameInfo g_Model3GameList[] =
|
|||
0,
|
||||
0,
|
||||
false,
|
||||
0,
|
||||
|
||||
{
|
||||
{ NULL, false, NULL, 0, 0, 0, 0, 0, false },
|
||||
|
|
|
@ -85,6 +85,7 @@ struct GameInfo
|
|||
unsigned inputFlags; // game input types
|
||||
int mpegBoard; // MPEG music board type: 0 = none, 1 = DSB1 (Z80), 2 = DSB2 (68K).
|
||||
bool driveBoard; // drive board (supported if true)
|
||||
uint32_t encryptionKey; // security board encryption device key (or 0 if not applicable)
|
||||
|
||||
// ROM files
|
||||
struct ROMInfo ROM[48];
|
||||
|
|
|
@ -30,14 +30,13 @@
|
|||
#include "Supermodel.h"
|
||||
#include "Pkgs/unzip.h"
|
||||
|
||||
static bool isPowerOfTwo(long x)
|
||||
static bool IsPowerOfTwo(long x)
|
||||
{
|
||||
while (((x & 1) == 0) && x > 1) // while x is even and > 1
|
||||
x >>= 1;
|
||||
return (x == 1);
|
||||
}
|
||||
|
||||
// Sega Bass Fishing
|
||||
static struct GameInfo cromInfo =
|
||||
{
|
||||
"crom.bin",
|
||||
|
@ -53,6 +52,7 @@ static struct GameInfo cromInfo =
|
|||
GAME_INPUT_COMMON|GAME_INPUT_JOYSTICK1,
|
||||
0, // no MPEG board
|
||||
false, // no drive board
|
||||
0, // no security board
|
||||
{
|
||||
{ NULL, false, NULL, 0, 0, 0, 0, 0, false }
|
||||
}
|
||||
|
@ -75,7 +75,7 @@ static GameInfo * LoadCROMDirect(const struct ROMMap *Map, const char *file)
|
|||
fclose(fp);
|
||||
return NULL;
|
||||
}
|
||||
if (!isPowerOfTwo(fileSize))
|
||||
if (!IsPowerOfTwo(fileSize))
|
||||
{
|
||||
ErrorLog("CROM image size is not a power of 2.");
|
||||
fclose(fp);
|
||||
|
|
|
@ -28,6 +28,8 @@
|
|||
#ifndef INCLUDED_ROMLOAD_H
|
||||
#define INCLUDED_ROMLOAD_H
|
||||
|
||||
#include <cstdint>
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Data Structures
|
||||
|
@ -46,7 +48,7 @@ struct ROMInfo
|
|||
|
||||
// Information used to identify files
|
||||
const char *fileName; // file name
|
||||
UINT32 crc; // CRC-32 checksum (same as zip format)
|
||||
uint32_t crc; // CRC-32 checksum (same as zip format)
|
||||
unsigned fileSize; // file size in bytes (must be the same as all other ROMs with same region ID)
|
||||
|
||||
// Interleaving information
|
||||
|
@ -69,7 +71,7 @@ struct ROMInfo
|
|||
struct ROMMap
|
||||
{
|
||||
const char *region; // ROM region identifier
|
||||
UINT8 *ptr; // pointer to memory region
|
||||
uint8_t *ptr; // pointer to memory region
|
||||
};
|
||||
|
||||
|
||||
|
@ -90,7 +92,7 @@ struct ROMMap
|
|||
* src Source region to copy from.
|
||||
* srcSize Size of region to copy from.
|
||||
*/
|
||||
extern void CopyRegion(UINT8 *dest, unsigned destOffset, unsigned destSize, UINT8 *src, unsigned srcSize);
|
||||
extern void CopyRegion(uint8_t *dest, unsigned destOffset, unsigned destSize, uint8_t *src, unsigned srcSize);
|
||||
|
||||
/*
|
||||
* LoadROMSetFromZIPFile(Map, GameList, zipFile):
|
||||
|
@ -112,8 +114,7 @@ extern void CopyRegion(UINT8 *dest, unsigned destOffset, unsigned destSize, UINT
|
|||
* Pointer to GameInfo struct for loaded game if successful, NULL
|
||||
* otherwise. Prints errors.
|
||||
*/
|
||||
extern const struct GameInfo * LoadROMSetFromZIPFile(const struct ROMMap *Map, const struct GameInfo *GameList, const char *zipFile,
|
||||
bool loadAll);
|
||||
extern const struct GameInfo * LoadROMSetFromZIPFile(const struct ROMMap *Map, const struct GameInfo *GameList, const char *zipFile, bool loadAll);
|
||||
|
||||
|
||||
#endif // INCLUDED_ROMLOAD_H
|
||||
|
|
Loading…
Reference in a new issue