Big update of PGM protection routines. Quite a lot changed/merged. Some formatting changes in d_pgm.cpp

This commit is contained in:
iq_132 2012-05-24 05:36:51 +00:00
parent 15d5d742b8
commit dbb4e62da6
4 changed files with 1952 additions and 2422 deletions

View File

@ -139,19 +139,6 @@ static struct BurnDIPInfo orlegendDIPList[] = {
{0x2E, 0x01, 0x03, 0x03, "China" },
};
static struct BurnDIPInfo orlegend112cDIPList[] = {
{0x2E, 0xFF, 0xFF, 0x03, NULL },
{0, 0xFE, 0, 2, "Disable Ba-Chieh" },
{0x2E, 0x02, 0x01, 0x00, "Off" },
{0x2E, 0x02, 0x01, 0x01, "On" },
{0, 0xFE, 0, 3, "Region (Fake)" },
{0x2E, 0x01, 0x03, 0x00, "World" },
{0x2E, 0x01, 0x03, 0x02, "Korea" },
{0x2E, 0x01, 0x03, 0x03, "China" },
};
static struct BurnDIPInfo orld111cDIPList[] = {
{0x2E, 0xFF, 0xFF, 0x02, NULL },
@ -164,54 +151,6 @@ static struct BurnDIPInfo orld105kDIPList[] = {
{0x2E, 0xFF, 0xFF, 0x02, NULL },
};
static struct BurnDIPInfo sangoDIPList[] = {
{0x2E, 0xFF, 0xFF, 0x05, NULL },
{0, 0xFE, 0, 6, "Region (Fake)" },
{0x2E, 0x01, 0x0F, 0x00, "China" },
{0x2E, 0x01, 0x0F, 0x01, "Taiwan" },
{0x2E, 0x01, 0x0F, 0x02, "Japan" },
{0x2E, 0x01, 0x0F, 0x03, "Korea" },
{0x2E, 0x01, 0x0F, 0x04, "Hong Kong" },
{0x2E, 0x01, 0x0F, 0x05, "World" },
};
static struct BurnDIPInfo oldsDIPList[] = {
{0x2E, 0xFF, 0xFF, 0x04, NULL },
{0, 0xFE, 0, 6, "Region (Fake)" },
{0x2E, 0x01, 0x0F, 0x01, "Taiwan" },
{0x2E, 0x01, 0x0F, 0x02, "China" },
{0x2E, 0x01, 0x0F, 0x03, "Japan" },
{0x2E, 0x01, 0x0F, 0x04, "Korea" },
{0x2E, 0x01, 0x0F, 0x05, "Hong Kong" },
{0x2E, 0x01, 0x0F, 0x06, "World" },
};
static struct BurnDIPInfo olds100DIPList[] = {
{0x2E, 0xFF, 0xFF, 0x05, NULL },
{0, 0xFE, 0, 6, "Region (Fake)" },
{0x2E, 0x01, 0x0F, 0x01, "Taiwan" },
{0x2E, 0x01, 0x0F, 0x02, "China" },
{0x2E, 0x01, 0x0F, 0x03, "Japan" },
{0x2E, 0x01, 0x0F, 0x04, "Korea" },
{0x2E, 0x01, 0x0F, 0x05, "Hong Kong" },
{0x2E, 0x01, 0x0F, 0x06, "World" },
};
static struct BurnDIPInfo kov100DIPList[] = {
{0x2E, 0xFF, 0xFF, 0x02, NULL },
{0, 0xFE, 0, 6, "Region (Fake)" },
{0x2E, 0x01, 0x0F, 0x00, "China" },
{0x2E, 0x01, 0x0F, 0x01, "Taiwan" },
{0x2E, 0x01, 0x0F, 0x02, "Japan" },
{0x2E, 0x01, 0x0F, 0x03, "Korea" },
{0x2E, 0x01, 0x0F, 0x04, "Hong Kong" },
{0x2E, 0x01, 0x0F, 0x05, "World" },
};
static struct BurnDIPInfo killbldDIPList[] = {
{0x2E, 0xFF, 0xFF, 0x21, NULL },
@ -237,17 +176,16 @@ static struct BurnDIPInfo photoy2kDIPList[] = {
{0x2E, 0x01, 0x0F, 0x06, "Singapore / Malaysia" },
};
static struct BurnDIPInfo raf102jDIPList[] = {
{0x2E, 0xFF, 0xFF, 0x02, NULL },
static struct BurnDIPInfo oldsDIPList[] = {
{0x2E, 0xFF, 0xFF, 0x05, NULL },
{0, 0xFE, 0, 7, "Region (Fake)" },
{0x2E, 0x01, 0x0F, 0x00, "Taiwan" },
{0x2E, 0x01, 0x0F, 0x01, "China" },
{0x2E, 0x01, 0x0F, 0x02, "Japan" },
{0x2E, 0x01, 0x0F, 0x03, "World" },
{0, 0xFE, 0, 6, "Region (Fake)" },
{0x2E, 0x01, 0x0F, 0x01, "Taiwan" },
{0x2E, 0x01, 0x0F, 0x02, "China" },
{0x2E, 0x01, 0x0F, 0x03, "Japan" },
{0x2E, 0x01, 0x0F, 0x04, "Korea" },
{0x2E, 0x01, 0x0F, 0x05, "Hong Kong" },
{0x2E, 0x01, 0x0F, 0x06, "Singapore / Malaysia" },
{0x2E, 0x01, 0x0F, 0x06, "World" },
};
static struct BurnDIPInfo puzzli2DIPList[] = {
@ -262,33 +200,20 @@ static struct BurnDIPInfo puzzli2DIPList[] = {
{0x2E, 0x01, 0x0F, 0x05, "World" },
};
static struct BurnDIPInfo kov2DIPList[] = {
{0x2E, 0xFF, 0xFF, 0x04, NULL },
static struct BurnDIPInfo kovDIPList[] = {
{0x2E, 0xFF, 0xFF, 0x05, NULL },
{0, 0xFE, 0, 6, "Region (Fake)" },
{0x2E, 0x01, 0x07, 0x00, "China" },
{0x2E, 0x01, 0x07, 0x01, "Taiwan" },
{0x2E, 0x01, 0x07, 0x02, "Japan" },
{0x2E, 0x01, 0x07, 0x03, "Korea" },
{0x2E, 0x01, 0x07, 0x04, "Hong Kong" },
{0x2E, 0x01, 0x07, 0x05, "World" },
{0x2E, 0x01, 0x0F, 0x00, "China" },
{0x2E, 0x01, 0x0F, 0x01, "Taiwan" },
{0x2E, 0x01, 0x0F, 0x02, "Japan" },
{0x2E, 0x01, 0x0F, 0x03, "Korea" },
{0x2E, 0x01, 0x0F, 0x04, "Hong Kong" },
{0x2E, 0x01, 0x0F, 0x05, "World" },
};
static struct BurnDIPInfo martmastDIPList[] = {
{0x2E, 0xFF, 0xFF, 0x06, NULL },
{0, 0xFE, 0, 7, "Region (Fake)" },
{0x2E, 0x01, 0x07, 0x00, "China" },
{0x2E, 0x01, 0x07, 0x01, "Taiwan" },
{0x2E, 0x01, 0x07, 0x02, "China" },
{0x2E, 0x01, 0x07, 0x03, "Korea" },
{0x2E, 0x01, 0x07, 0x04, "Hong Kong" },
{0x2E, 0x01, 0x07, 0x05, "World" },
{0x2E, 0x01, 0x07, 0x06, "USA" },
};
static struct BurnDIPInfo martmastcDIPList[] = {
{0x2E, 0xFF, 0xFF, 0x00, NULL },
{0x2E, 0xFF, 0xFF, 0x05, NULL },
{0, 0xFE, 0, 7, "Region (Fake)" },
{0x2E, 0x01, 0x07, 0x00, "China" },
@ -301,7 +226,7 @@ static struct BurnDIPInfo martmastcDIPList[] = {
};
static struct BurnDIPInfo martmastc102DIPList[] = {
{0x2E, 0xFF, 0xFF, 0x00, NULL },
{0x2E, 0xFF, 0xFF, 0x05, NULL },
{0, 0xFE, 0, 6, "Region (Fake)" },
{0x2E, 0x01, 0x07, 0x00, "China" },
@ -310,6 +235,7 @@ static struct BurnDIPInfo martmastc102DIPList[] = {
{0x2E, 0x01, 0x07, 0x03, "Korea" },
{0x2E, 0x01, 0x07, 0x04, "Hong Kong" },
{0x2E, 0x01, 0x07, 0x05, "World" },
// {0x2E, 0x01, 0x07, 0x06, "USA" },
};
static struct BurnDIPInfo ddp2DIPList[] = {
@ -324,18 +250,6 @@ static struct BurnDIPInfo ddp2DIPList[] = {
{0x2E, 0x01, 0x07, 0x05, "World" },
};
static struct BurnDIPInfo dmnfrntDIPList[] = {
{0x2E, 0xFF, 0xFF, 0x05, NULL },
{0, 0xFE, 0, 6, "Region (Fake)" },
{0x2E, 0x01, 0x07, 0x00, "China" },
{0x2E, 0x01, 0x07, 0x01, "Taiwan" },
{0x2E, 0x01, 0x07, 0x02, "Japan" },
{0x2E, 0x01, 0x07, 0x03, "Korea" },
{0x2E, 0x01, 0x07, 0x04, "Hong Kong" },
{0x2E, 0x01, 0x07, 0x05, "World" },
};
static struct BurnDIPInfo kovassgaDIPList[] = {
{0x2E, 0xFF, 0xFF, 0x00, NULL },
@ -349,25 +263,18 @@ static struct BurnDIPInfo kovassgaDIPList[] = {
};
STDDIPINFOEXT(orlegend, pgm, orlegend )
STDDIPINFOEXT(orlegend112c, pgm, orlegend112c )
STDDIPINFOEXT(orld111c, pgm, orld111c )
STDDIPINFOEXT(orld105k, pgm, orld105k )
STDDIPINFOEXT(sango, pgm, sango )
STDDIPINFOEXT(kov, pgm, kov )
STDDIPINFOEXT(kovassga, pgm, kovassga )
STDDIPINFOEXT(kov100, pgm, kov100 )
STDDIPINFOEXT(killbld, pgm, killbld )
STDDIPINFOEXT(photoy2k, pgm, photoy2k )
STDDIPINFOEXT(raf102j, pgm, raf102j )
STDDIPINFOEXT(puzzli2, pgm, puzzli2 )
STDDIPINFOEXT(kov2, pgm, kov2 )
STDDIPINFOEXT(martmast, pgm, martmast )
STDDIPINFOEXT(martmastc, pgm, martmastc )
STDDIPINFOEXT(martmastc102, pgm, martmastc102 )
STDDIPINFOEXT(olds, pgm, olds )
STDDIPINFOEXT(olds100, pgm, olds100 )
STDDIPINFOEXT(ddp2, pgm, ddp2 )
STDDIPINFOEXT(dmnfrnt, pgm, dmnfrnt )
STDDIPINFOEXT(dmnfrntpcb, jamma, dmnfrnt )
STDDIPINFOEXT(dmnfrntpcb, jamma, kov )
// -----------------------------------------------------------------------------
// BIOS
@ -566,7 +473,7 @@ struct BurnDriver BurnDrvOrlegend112c = {
"Oriental Legend - Xi Yo Gi Shi Re Zuang (V112, China)\0", NULL, "IGS", "PolyGameMaster",
L"Oriental Legend\0\u897F\u6E38\u91CA\u5384\u4F20 (V112, China)\0", NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_IGS_PGM, GBF_SCRFIGHT, 0,
NULL, orlegend112cRomInfo, orlegend112cRomName, NULL, NULL, pgmInputInfo, orlegend112cDIPInfo,
NULL, orlegend112cRomInfo, orlegend112cRomName, NULL, NULL, pgmInputInfo, orlegendDIPInfo,
orlegendInit, pgmExit, pgmFrame, pgmDraw, pgmScan, &nPgmPalRecalc, 0x900,
448, 224, 4, 3
};
@ -601,7 +508,7 @@ struct BurnDriver BurnDrvOrlegend112ca = {
"Oriental Legend - Xi Yo Gi Shi Re Zuang (V112 alt, China)\0", NULL, "IGS", "PolyGameMaster",
L"Oriental Legend\0\u897F\u6E38\u91CA\u5384\u4F20 (V112 alt, China)\0", NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_IGS_PGM, GBF_SCRFIGHT, 0,
NULL, orlegend112caRomInfo, orlegend112caRomName, NULL, NULL, pgmInputInfo, orlegend112cDIPInfo,
NULL, orlegend112caRomInfo, orlegend112caRomName, NULL, NULL, pgmInputInfo, orlegendDIPInfo,
orlegendInit, pgmExit, pgmFrame, pgmDraw, pgmScan, &nPgmPalRecalc, 0x900,
448, 224, 4, 3
};
@ -1166,7 +1073,7 @@ struct BurnDriver BurnDrvOlds100 = {
"Oriental Legend Special - Xi Yo Gi Shi Re Zuang Super (V100)\0", "Imperfect Protection Emulation", "IGS", "PolyGameMaster",
L"Oriental Legend Super\0\u897F\u6E38\u91CA\u5384\u4F20 Super (V100)\0", NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_IGS_PGM, GBF_SCRFIGHT, 0,
NULL, olds100RomInfo, olds100RomName, NULL, NULL, pgmInputInfo, olds100DIPInfo,
NULL, olds100RomInfo, olds100RomName, NULL, NULL, pgmInputInfo, oldsDIPInfo,
oldsInit, pgmExit, pgmFrame, pgmDraw, pgmScan, &nPgmPalRecalc, 0x900,
448, 224, 4, 3
};
@ -1196,7 +1103,7 @@ static struct BurnRomInfo olds100aRomDesc[] = {
{ "m0500.rom", 0x200000, 0x37928cdd, 5 | BRF_SND }, // 14 Samples
#if !defined (ROM_VERIFY)
{ "protection_data.u6", 0x010000, 0x00000000, 0 | BRF_PRG | BRF_NODUMP }, // 15 Protection Rom
{ "protection_data.u6", 0x010000, 0x00000000, 0 | BRF_PRG | BRF_ESS | BRF_NODUMP }, // 15 Protection Rom
#else
{ "", 0x000000, 0x00000000, 0 }, // 15
#endif
@ -1212,7 +1119,7 @@ struct BurnDriver BurnDrvOlds100a = {
"Oriental Legend Special - Xi Yo Gi Shi Re Zuang Super (V100 alt)\0", "Imperfect Protection Emulation", "IGS", "PolyGameMaster",
L"Oriental Legend Super\0\u897F\u6E38\u91CA\u5384\u4F20 Super (V100 alt)\0", NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_IGS_PGM, GBF_SCRFIGHT, 0,
NULL, olds100aRomInfo, olds100aRomName, NULL, NULL, pgmInputInfo, olds100DIPInfo,
NULL, olds100aRomInfo, olds100aRomName, NULL, NULL, pgmInputInfo, oldsDIPInfo,
oldsInit, pgmExit, pgmFrame, pgmDraw, pgmScan, &nPgmPalRecalc, 0x900,
448, 224, 4, 3
};
@ -1235,7 +1142,7 @@ static struct BurnRomInfo kovRomDesc[] = {
{ "m0600.rom", 0x400000, 0x3ada4fd6, 5 | BRF_SND }, // 8 Samples
{ "kov_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_NODUMP }, // 9 Internal ARM7 Rom
{ "kov_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_ESS | BRF_NODUMP }, // 9 Internal ARM7 Rom
};
STDROMPICKEXT(kov, kov, pgm)
@ -1254,7 +1161,7 @@ struct BurnDriver BurnDrvKov = {
"Knights of Valour - Sangoku Senki (V117)\0", NULL, "IGS", "PolyGameMaster",
L"Knights of Valour\0\u4E09\u56FD\u6226\u7D00\0\u4E09\u56FD\u6218\u7EAA (V117)\0", NULL, NULL, NULL,
BDF_GAME_WORKING, 4, HARDWARE_IGS_PGM/* | HARDWARE_IGS_USE_ARM_CPU*/, GBF_SCRFIGHT, 0,
NULL, kovRomInfo, kovRomName, NULL, NULL, pgmInputInfo, sangoDIPInfo,
NULL, kovRomInfo, kovRomName, NULL, NULL, pgmInputInfo, kovDIPInfo,
kovInit, pgmExit, pgmFrame, pgmDraw, pgmScan, &nPgmPalRecalc, 0x900,
448, 224, 4, 3
};
@ -1277,7 +1184,7 @@ static struct BurnRomInfo kov115RomDesc[] = {
{ "m0600.rom", 0x400000, 0x3ada4fd6, 5 | BRF_SND }, // 8 Samples
{ "kov_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_NODUMP }, // 9 Internal ARM7 Rom
{ "kov_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_ESS | BRF_NODUMP }, // 9 Internal ARM7 Rom
};
STDROMPICKEXT(kov115, kov115, pgm)
@ -1288,7 +1195,7 @@ struct BurnDriver BurnDrvKov115 = {
"Knights of Valour - Sangoku Senki (V115)\0", NULL, "IGS", "PolyGameMaster",
L"Knights of Valour\0\u4E09\u56FD\u6226\u7D00\0\u4E09\u56FD\u6218\u7EAA (V115)\0", NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_IGS_PGM/* | HARDWARE_IGS_USE_ARM_CPU*/, GBF_SCRFIGHT, 0,
NULL, kov115RomInfo, kov115RomName, NULL, NULL, pgmInputInfo, sangoDIPInfo,
NULL, kov115RomInfo, kov115RomName, NULL, NULL, pgmInputInfo, kovDIPInfo,
kovInit, pgmExit, pgmFrame, pgmDraw, pgmScan, &nPgmPalRecalc, 0x900,
448, 224, 4, 3
};
@ -1315,7 +1222,7 @@ static struct BurnRomInfo kov100RomDesc[] = {
{ "m0600.rom", 0x400000, 0x3ada4fd6, 5 | BRF_SND }, // 12 Samples
{ "kov_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_NODUMP }, // 13 Internal ARM7 Rom
{ "kov_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_ESS | BRF_NODUMP }, // 13 Internal ARM7 Rom
};
STDROMPICKEXT(kov100, kov100, pgm)
@ -1326,7 +1233,7 @@ struct BurnDriver BurnDrvKov100 = {
"Knights of Valour - Sangoku Senki (V100, Japan)\0", NULL, "IGS (Alta Co., LTD License)", "PolyGameMaster",
L"Knights of Valour\0\u4E09\u56FD\u6226\u7D00\0\u4E09\u56FD\u6218\u7EAA (V100, Japan)\0", NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_IGS_PGM/* | HARDWARE_IGS_USE_ARM_CPU*/, GBF_SCRFIGHT, 0,
NULL, kov100RomInfo, kov100RomName, NULL, NULL, pgmInputInfo, kov100DIPInfo,
NULL, kov100RomInfo, kov100RomName, NULL, NULL, pgmInputInfo, kovDIPInfo,
kovInit, pgmExit, pgmFrame, pgmDraw, pgmScan, &nPgmPalRecalc, 0x900,
448, 224, 4, 3
};
@ -1349,7 +1256,7 @@ static struct BurnRomInfo kovplusRomDesc[] = {
{ "m0600.rom", 0x400000, 0x3ada4fd6, 5 | BRF_SND }, // 8 Samples
{ "kov_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_NODUMP }, // 9 Internal ARM7 Rom
{ "kov_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_ESS | BRF_NODUMP }, // 9 Internal ARM7 Rom
};
STDROMPICKEXT(kovplus, kovplus, pgm)
@ -1360,7 +1267,7 @@ struct BurnDriver BurnDrvKovplus = {
"Knights of Valour Plus - Sangoku Senki Plus (V119)\0", NULL, "IGS", "PolyGameMaster",
L"Knights of Valour Plus\0\u4E09\u56FD\u6226\u7D00 Plus\0\u4E09\u56FD\u6218\u7EAA Plus (V119)\0", NULL, NULL, NULL,
BDF_GAME_WORKING, 4, HARDWARE_IGS_PGM/* | HARDWARE_IGS_USE_ARM_CPU*/, GBF_SCRFIGHT, 0,
NULL, kovplusRomInfo, kovplusRomName, NULL, NULL, pgmInputInfo, sangoDIPInfo,
NULL, kovplusRomInfo, kovplusRomName, NULL, NULL, pgmInputInfo, kovDIPInfo,
kovInit, pgmExit, pgmFrame, pgmDraw, pgmScan, &nPgmPalRecalc, 0x900,
448, 224, 4, 3
};
@ -1387,7 +1294,7 @@ static struct BurnRomInfo kovplusaRomDesc[] = {
{ "m0600.rom", 0x400000, 0x3ada4fd6, 5 | BRF_SND }, // 12 Samples
{ "kov_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_NODUMP }, // 13 Internal ARM7 Rom
{ "kov_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_ESS | BRF_NODUMP }, // 13 Internal ARM7 Rom
};
STDROMPICKEXT(kovplusa, kovplusa, pgm)
@ -1398,7 +1305,7 @@ struct BurnDriver BurnDrvKovplusa = {
"Knights of Valour Plus - Sangoku Senki Plus (V119 alt)\0", NULL, "IGS", "PolyGameMaster",
L"Knights of Valour Plus\0\u4E09\u56FD\u6226\u7D00 Plus\0\u4E09\u56FD\u6218\u7EAA Plus (V119 alt)\0", NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_IGS_PGM/* | HARDWARE_IGS_USE_ARM_CPU*/, GBF_SCRFIGHT, 0,
NULL, kovplusaRomInfo, kovplusaRomName, NULL, NULL, pgmInputInfo, sangoDIPInfo,
NULL, kovplusaRomInfo, kovplusaRomName, NULL, NULL, pgmInputInfo, kovDIPInfo,
kovInit, pgmExit, pgmFrame, pgmDraw, pgmScan, &nPgmPalRecalc, 0x900,
448, 224, 4, 3
};
@ -1407,7 +1314,7 @@ struct BurnDriver BurnDrvKovplusa = {
// Knights of Valour Superheroes / Sangoku Senki Superheroes (V104, China)
static struct BurnRomInfo kovshRomDesc[] = {
{ "p0600.322", 0x400000, 0x7c78e5f3, 1 | BRF_ESS | BRF_PRG }, // 0 68K Code
{ "p0600.322", 0x400000, 0x7c78e5f3, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
{ "t0600.rom", 0x800000, 0x4acc1ad6, 2 | BRF_GRA }, // 1 Tile data
@ -1423,7 +1330,7 @@ static struct BurnRomInfo kovshRomDesc[] = {
{ "m0600.rom", 0x400000, 0x3ada4fd6, 5 | BRF_SND }, // 10 Samples
{ "kovsh_v100_china.asic", 0x004000, 0x0f09a5c1, 7 | BRF_ESS | BRF_PRG }, // 11 Internal ARM7 Rom
{ "kovsh_v100_china.asic", 0x004000, 0x0f09a5c1, 7 | BRF_PRG | BRF_ESS }, // 11 Internal ARM7 Rom
};
STDROMPICKEXT(kovsh, kovsh, pgm)
@ -1446,7 +1353,7 @@ struct BurnDriver BurnDrvKovsh = {
"Knights of Valour Superheroes / Sangoku Senki Superheroes (V104, China)\0", NULL, "IGS", "PolyGameMaster",
L"Knights of Valour Superheroes\0\u4E09\u56FD\u6218\u7EAA\0\u98CE\u4E91\u518D\u8D77 (V104, China)\0", NULL, NULL, NULL,
BDF_GAME_WORKING, 4, HARDWARE_IGS_PGM | HARDWARE_IGS_USE_ARM_CPU, GBF_SCRFIGHT, 0,
NULL, kovshRomInfo, kovshRomName, NULL, NULL, pgmInputInfo, sangoDIPInfo,
NULL, kovshRomInfo, kovshRomName, NULL, NULL, pgmInputInfo, kovDIPInfo,
kovshInit, pgmExit, pgmFrame, pgmDraw, pgmScan, &nPgmPalRecalc, 0x900,
448, 224, 4, 3
};
@ -1455,7 +1362,7 @@ struct BurnDriver BurnDrvKovsh = {
// Knights of Valour Superheroes / Sangoku Senki Superheroes (V103)
static struct BurnRomInfo kovsh103RomDesc[] = {
{ "p0600.103", 0x400000, 0xf0b3da82, 1 | BRF_ESS | BRF_PRG }, // 0 68K Code
{ "p0600.103", 0x400000, 0xf0b3da82, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
{ "t0600.rom", 0x800000, 0x4acc1ad6, 2 | BRF_GRA }, // 1 Tile data
@ -1471,7 +1378,7 @@ static struct BurnRomInfo kovsh103RomDesc[] = {
{ "m0600.rom", 0x400000, 0x3ada4fd6, 5 | BRF_SND }, // 10 Samples
{ "kovsh_v100_china.asic", 0x004000, 0x0f09a5c1, 7 | BRF_ESS | BRF_PRG }, // 11 Internal ARM7 Rom
{ "kovsh_v100_china.asic", 0x004000, 0x0f09a5c1, 7 | BRF_PRG | BRF_ESS }, // 11 Internal ARM7 Rom
};
STDROMPICKEXT(kovsh103, kovsh103, pgm)
@ -1482,7 +1389,7 @@ struct BurnDriver BurnDrvKovsh103 = {
"Knights of Valour Superheroes / Sangoku Senki Superheroes (V103)\0", NULL, "IGS", "PolyGameMaster",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_IGS_PGM | HARDWARE_IGS_USE_ARM_CPU, GBF_SCRFIGHT, 0,
NULL, kovsh103RomInfo, kovsh103RomName, NULL, NULL, pgmInputInfo, sangoDIPInfo,
NULL, kovsh103RomInfo, kovsh103RomName, NULL, NULL, pgmInputInfo, kovDIPInfo,
kovshInit, pgmExit, pgmFrame, pgmDraw, pgmScan, &nPgmPalRecalc, 0x900,
448, 224, 4, 3
};
@ -1605,7 +1512,7 @@ struct BurnDriver BurnDrvphotoy2k102 = {
"Real and Fake\0Photo Y2K (V102, Japan)\0", NULL, "IGS", "PolyGameMaster",
L"\u30EA\u30A2\u30EB\u30A2\u30F3\u30C9 \u30D5\u30A7\u30A4\u30AF\0Photo Y2K\0\u5927\u5BB6\u6765 \u627E\u78B4\0\u8D85\u7EA7 \u6BD4\u4E00\u6BD4 (V102, Japan)\0", NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_IGS_PGM | HARDWARE_IGS_USE_ARM_CPU, GBF_PUZZLE, 0,
NULL, photoy2k102RomInfo, photoy2k102RomName, NULL, NULL, pgmInputInfo, raf102jDIPInfo,
NULL, photoy2k102RomInfo, photoy2k102RomName, NULL, NULL, pgmInputInfo, photoy2kDIPInfo,
photoy2kInit, pgmExit, pgmFrame, pgmDraw, pgmScan, &nPgmPalRecalc, 0x900,
448, 224, 4, 3
};
@ -1625,7 +1532,7 @@ static struct BurnRomInfo puzlstarRomDesc[] = {
{ "m0800.u2", 0x400000, 0xe1a46541, 5 | BRF_SND }, // 5 Samples
{ "puzlstar_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_NODUMP }, // 6 Internal ARM7 Rom
{ "puzlstar_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_ESS | BRF_NODUMP }, // 6 Internal ARM7 Rom
};
STDROMPICKEXT(puzlstar, puzlstar, pgm)
@ -1645,7 +1552,7 @@ struct BurnDriver BurnDrvPuzlstar = {
"Puzzle Star (V100MG)\0", "Incomplete dump", "IGS", "PolyGameMaster",
L"Puzzle Star\0\u30D1\u30BA\u30EB\u30B9\u30BF\u30FC\0\u9B54\u5E7B\u661F\u5EA7 (V100MG)\0", NULL, NULL, NULL,
BDF_GAME_WORKING, 4, HARDWARE_IGS_PGM/* | HARDWARE_IGS_USE_ARM_CPU*/, GBF_PUZZLE, 0,
NULL, puzlstarRomInfo, puzlstarRomName, NULL, NULL, pgmInputInfo, sangoDIPInfo,
NULL, puzlstarRomInfo, puzlstarRomName, NULL, NULL, pgmInputInfo, kovDIPInfo,
puzlstarInit, pgmExit, pgmFrame, pgmDraw, pgmScan, &nPgmPalRecalc, 0x900,
448, 224, 4, 3
};
@ -1665,7 +1572,7 @@ static struct BurnRomInfo puzzli2RomDesc[] = {
{ "m0900.u2", 0x400000, 0x9ea7af2e, 5 | BRF_SND }, // 5 Samples
{ "puzzli2_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_NODUMP }, // 6 Internal ARM7 Rom
{ "puzzli2_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_ESS | BRF_NODUMP }, // 6 Internal ARM7 Rom
};
STDROMPICKEXT(puzzli2, puzzli2, pgm)
@ -1774,7 +1681,7 @@ struct BurnDriver BurnDrvmartmastc = {
"Martial Masters (V104, 102, 101, China)\0", NULL, "IGS", "PolyGameMaster",
L"Martial Masters\0\u5f62\u610f\u62f3 (V104, 102, 101, China)\0", NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_IGS_PGM | HARDWARE_IGS_USE_ARM_CPU, GBF_VSFIGHT, 0,
NULL, martmastcRomInfo, martmastcRomName, NULL, NULL, pgmInputInfo, martmastcDIPInfo,
NULL, martmastcRomInfo, martmastcRomName, NULL, NULL, pgmInputInfo, martmastDIPInfo,
martmastInit, pgmExit, pgmFrame, pgmDraw, pgmScan, &nPgmPalRecalc, 0x900,
448, 224, 4, 3
};
@ -1842,6 +1749,7 @@ STD_ROM_FN(py2k2)
static INT32 py2k2Init()
{
pPgmInitCallback = pgm_decrypt_py2k2;
pPgmProtCallback = install_protection_asic27a_py2k2;
// pPgmProtCallback = install_protection_asic27a_kovsh;
return pgmInit();
@ -1901,7 +1809,7 @@ struct BurnDriver BurnDrvKov2 = {
"Knights of Valour 2 (V107, 102, 100, Hong Kong)\0", NULL, "IGS", "PolyGameMaster",
L"Knights of Valour 2\0\u4e09\u56fd\u6218\u7eaa 2 (V107, 102, 100, Hong Kong)\0", NULL, NULL, NULL,
BDF_GAME_WORKING, 4, HARDWARE_IGS_PGM | HARDWARE_IGS_USE_ARM_CPU, GBF_SCRFIGHT, 0,
NULL, kov2RomInfo, kov2RomName, NULL, NULL, pgmInputInfo, kov2DIPInfo,
NULL, kov2RomInfo, kov2RomName, NULL, NULL, pgmInputInfo, kovDIPInfo,
kov2Init, pgmExit, pgmFrame, pgmDraw, pgmScan, &nPgmPalRecalc, 0x900,
448, 224, 4, 3
};
@ -2147,7 +2055,7 @@ struct BurnDriver BurnDrvKov2p = {
"Knights of Valour 2 Plus - Nine Dragons (VM204XX)\0", NULL, "IGS", "PolyGameMaster",
L"Knights of Valour 2 Plus\0\u4e09\u56fd\u6218\u7eaa 2 - \u7fa4\u96c4\u4e89\u9738 (VM204XX)\0", NULL, NULL, NULL,
BDF_GAME_WORKING, 4, HARDWARE_IGS_PGM | HARDWARE_IGS_USE_ARM_CPU, GBF_SCRFIGHT, 0,
NULL, kov2pRomInfo, kov2pRomName, NULL, NULL, pgmInputInfo, kov2DIPInfo,
NULL, kov2pRomInfo, kov2pRomName, NULL, NULL, pgmInputInfo, kovDIPInfo,
kov2pInit, pgmExit, pgmFrame, pgmDraw, pgmScan, &nPgmPalRecalc, 0x900,
448, 224, 4, 3
};
@ -2184,7 +2092,7 @@ struct BurnDriver BurnDrvKov2p205 = {
"Knights of Valour 2 Plus - Nine Dragons (VM205XX, China)\0", NULL, "IGS", "PolyGameMaster",
L"Knights of Valour 2 Plus\0\u4e09\u56fd\u6218\u7eaa 2 - \u7fa4\u96c4\u4e89\u9738 (VM205XX, China)\0", NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_IGS_PGM | HARDWARE_IGS_USE_ARM_CPU, GBF_SCRFIGHT, 0,
NULL, kov2p205RomInfo, kov2p205RomName, NULL, NULL, pgmInputInfo, kov2DIPInfo,
NULL, kov2p205RomInfo, kov2p205RomName, NULL, NULL, pgmInputInfo, kovDIPInfo,
kov2pInit, pgmExit, pgmFrame, pgmDraw, pgmScan, &nPgmPalRecalc, 0x900,
448, 224, 4, 3
};
@ -2328,7 +2236,11 @@ static INT32 dw2001Init()
pPgmInitCallback = pgm_decrypt_martmast;
pPgmProtCallback = install_protection_asic27a_martmast;
return pgmInit();
INT32 nRet = pgmInit();
Arm7SetIdleLoopAddress(0x8000228);
return nRet;
}
struct BurnDriverD BurnDrvDw2001 = {
@ -2391,9 +2303,14 @@ static struct BurnRomInfo dmnfrntRomDesc[] = {
{ "w04501.u5", 0x800000, 0x3ab58137, 5 | BRF_SND }, // 7 Samples
{ "dmnfrnt_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_NODUMP }, // 8 Internal ARM7 Rom
{ "dmnfrnt_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_ESS | BRF_NODUMP }, // 8 Internal ARM7 Rom
#if !defined ROM_VERIFY
{ "v105_32m.u26", 0x400000, 0xc798c2ef, 8 | BRF_PRG | BRF_ESS }, // 9 External ARM7 Rom
#else
{ "chinese-v105.u62", 0x400000, 0xc798c2ef, 8 | BRF_PRG | BRF_ESS }, // 9 External ARM7 Rom
{ "v105_32m.u26", 0x400000, 0xd200ee63, 0 | BRF_PRG | BRF_OPT }, // 9 External ARM7 Rom
#endif
};
STDROMPICKEXT(dmnfrnt, dmnfrnt, pgm)
@ -2441,7 +2358,7 @@ struct BurnDriver BurnDrvDmnfrnt = {
"Demon Front (V105)\0", NULL, "IGS", "PolyGameMaster",
L"Demon Front\0\u9B54\u57DF\u6218\u7EBF\0\u9B54\u57DF\u6230\u7DDA (V105)\0", NULL, NULL, NULL,
BDF_GAME_WORKING, 4, HARDWARE_IGS_PGM | HARDWARE_IGS_USE_ARM_CPU, GBF_PLATFORM, 0,
NULL, dmnfrntRomInfo, dmnfrntRomName, NULL, NULL, pgmInputInfo, dmnfrntDIPInfo,
NULL, dmnfrntRomInfo, dmnfrntRomName, NULL, NULL, pgmInputInfo, kovDIPInfo,
dmnfrntInit, pgmExit, pgmFrame, pgmDraw, pgmScan, &nPgmPalRecalc, 0x900,
448, 224, 4, 3
};
@ -2463,7 +2380,7 @@ static struct BurnRomInfo dmnfrntaRomDesc[] = {
{ "w04501.u5", 0x800000, 0x3ab58137, 5 | BRF_SND }, // 7 Samples
{ "dmnfrnt_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_NODUMP }, // 8 Internal ARM7 Rom
{ "dmnfrnt_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_ESS | BRF_NODUMP }, // 8 Internal ARM7 Rom
{ "v101_32m.u26", 0x400000, 0x93965281, 8 | BRF_PRG | BRF_ESS }, // 9 External ARM7 Rom
};
@ -2476,7 +2393,7 @@ struct BurnDriver BurnDrvdmnfrnta = {
"Demon Front (V102, China)\0", NULL, "IGS", "PolyGameMaster",
L"Demon Front\0\u9B54\u57DF\u6218\u7EBF\0\u9B54\u57DF\u6230\u7DDA (V102, China)\0", NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_IGS_PGM | HARDWARE_IGS_USE_ARM_CPU, GBF_PLATFORM, 0,
NULL, dmnfrntaRomInfo, dmnfrntaRomName, NULL, NULL, pgmInputInfo, dmnfrntDIPInfo,
NULL, dmnfrntaRomInfo, dmnfrntaRomName, NULL, NULL, pgmInputInfo, kovDIPInfo,
dmnfrntInit, pgmExit, pgmFrame, pgmDraw, pgmScan, &nPgmPalRecalc, 0x900,
448, 224, 4, 3
};
@ -2498,7 +2415,7 @@ static struct BurnRomInfo thegladRomDesc[] = {
{ "w04601.u1", 0x800000, 0x5f15ddb3, 5 | BRF_SND }, // 7 Samples
{ "theglad_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_NODUMP }, // 8 Internal ARM7 Rom
{ "theglad_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_ESS | BRF_NODUMP }, // 8 Internal ARM7 Rom
{ "v107.u26", 0x200000, 0xf7c61357, 8 | BRF_PRG | BRF_ESS }, // 9 External ARM7 Rom
};
@ -2541,7 +2458,7 @@ static struct BurnRomInfo thegladaRomDesc[] = {
{ "w04601.u1", 0x800000, 0x5f15ddb3, 5 | BRF_SND }, // 7 Samples
{ "theglad_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_NODUMP }, // 8 Internal ARM7 Rom
{ "theglad_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_ESS | BRF_NODUMP }, // 8 Internal ARM7 Rom
{ "u2.rom", 0x200000, 0xc7bcf2ae, 8 | BRF_PRG | BRF_ESS }, // 9 External ARM7 Rom
@ -2575,7 +2492,7 @@ static struct BurnRomInfo happy6RomDesc[] = {
{ "w01w64m.u17", 0x800000, 0x7e23e2be, 5 | BRF_SND }, // 5 Samples
{ "happy6_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_NODUMP }, // 6 Internal ARM7 Rom
{ "happy6_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_ESS | BRF_NODUMP }, // 6 Internal ARM7 Rom
{ "happy6in1_v101cn.u26", 0x400000, 0x4a48ca1c, 8 | BRF_PRG | BRF_ESS }, // 7 External ARM7 Rom
};
@ -2605,7 +2522,7 @@ struct BurnDriverD BurnDrvhappy6 = {
// Knights of Valour Super Heroes Plus / Sangoku Senki Super Heroes Plus (ver. 100)
static struct BurnRomInfo kovshpRomDesc[] = {
{ "p0600h.rom", 0x400000, 0xe251e8e4, 1 | BRF_ESS | BRF_PRG }, // 0 68K Code
{ "p0600h.rom", 0x400000, 0xe251e8e4, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
{ "t0600.rom", 0x800000, 0x4acc1ad6, 2 | BRF_GRA }, // 1 Tile data
@ -2619,7 +2536,7 @@ static struct BurnRomInfo kovshpRomDesc[] = {
{ "m0600.rom", 0x400000, 0x3ada4fd6, 5 | BRF_SND }, // 8 Samples
{ "kovshp_v100_china.asic", 0x004000, 0x0f09a5c1, 7 | BRF_ESS | BRF_PRG }, // 9 Internal ARM7 Rom
{ "kovshp_v100_china.asic", 0x004000, 0x0f09a5c1, 7 | BRF_PRG | BRF_ESS }, // 9 Internal ARM7 Rom
};
STDROMPICKEXT(kovshp, kovshp, pgm)
@ -2668,7 +2585,7 @@ struct BurnDriver BurnDrvkovshp = {
"Knights of Valour Super Heroes Plus / Sangoku Senki Super Heroes Plus (ver. 100)\0", "Imperfect Protection Emulation", "IGS", "PolyGameMaster",
L"Knights of Valour Super Heroes Plus\0\u4E09\u56FD\u6218\u7EAA\0\u4E71\u4E16\u67AD\u96C4 (ver. 100)\0", NULL, NULL, NULL,
BDF_GAME_WORKING, 4, HARDWARE_IGS_PGM | HARDWARE_IGS_USE_ARM_CPU, GBF_SCRFIGHT, 0,
NULL, kovshpRomInfo, kovshpRomName, NULL, NULL, pgmInputInfo, sangoDIPInfo,
NULL, kovshpRomInfo, kovshpRomName, NULL, NULL, pgmInputInfo, kovDIPInfo,
kovshpInit, pgmExit, pgmFrame, pgmDraw, pgmScan, &nPgmPalRecalc, 0x900,
448, 224, 4, 3
};
@ -2691,7 +2608,7 @@ static struct BurnRomInfo oldsplusRomDesc[] = {
{ "m05301.rom", 0x400000, 0x86ec83bc, 5 | BRF_SND }, // 8 Samples
{ "oldsplus_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_NODUMP }, // 9 Internal ARM7 Rom
{ "oldsplus_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_ESS | BRF_NODUMP }, // 9 Internal ARM7 Rom
};
STDROMPICKEXT(oldsplus, oldsplus, pgm)
@ -2711,7 +2628,7 @@ struct BurnDriver BurnDrvoldsplus = {
"Oriental Legend Special Plus / Xi You Shi E Zhuan Super Plus (ver. 205)\0", "Incomplete Dump", "IGS", "PolyGameMaster",
L"Oriental Legend Special Plus\0\u897F\u6E38\u91CA\u5384\u4F20 Plus\0", NULL, NULL, NULL,
BDF_GAME_WORKING, 4, HARDWARE_IGS_PGM/* | HARDWARE_IGS_USE_ARM_CPU*/, GBF_SCRFIGHT, 0,
NULL, oldsplusRomInfo, oldsplusRomName, NULL, NULL, pgmInputInfo, pgmDIPInfo,
NULL, oldsplusRomInfo, oldsplusRomName, NULL, NULL, pgmInputInfo, puzzli2DIPInfo,
oldsplusInit, pgmExit, pgmFrame, pgmDraw, pgmScan, &nPgmPalRecalc, 0x900,
448, 224, 4, 3
};
@ -2782,7 +2699,7 @@ static struct BurnRomInfo svgRomDesc[] = {
{ "w05601b064.bin", 0x800000, 0xbfe61a71, 5 | BRF_SND }, // 8 Samples
{ "w05602b032.bin", 0x400000, 0x0685166d, 5 | BRF_SND }, // 9
{ "svg_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_NODUMP }, // 10 Internal ARM7 Rom
{ "svg_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_ESS | BRF_NODUMP }, // 10 Internal ARM7 Rom
{ "u26.bin", 0x400000, 0x46826ec8, 8 | BRF_PRG | BRF_ESS }, // 11 External ARM7 Rom
{ "u29.bin", 0x400000, 0xfa5f3901, 8 | BRF_PRG | BRF_ESS }, // 12
@ -2828,12 +2745,12 @@ static struct BurnRomInfo ddp3RomDesc[] = {
{ "m04401b032.u17", 0x400000, 0x5a0dbd76, 5 | BRF_SND }, // 5 Samples
{ "ddp3_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_NODUMP }, // 6 Internal ARM7 Rom
{ "ddp3_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_ESS | BRF_NODUMP }, // 6 Internal ARM7 Rom
{ "ddp3_defaults.nv", 0x020000, 0x571e96c0, 0 | BRF_OPT }, // 7 NV RAM
};
STDROMPICKEXT(ddp3, ddp3, ddp3Bios) /* custom bios */
STDROMPICKEXT(ddp3, ddp3, ddp3Bios) // custom bios
STD_ROM_FN(ddp3)
static INT32 ddp3Init()
@ -2869,12 +2786,12 @@ static struct BurnRomInfo ddp3aRomDesc[] = {
{ "m04401b032.u17", 0x400000, 0x5a0dbd76, 5 | BRF_SND }, // 5 Samples
{ "ddp3_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_NODUMP }, // 6 Internal ARM7 Rom
{ "ddp3_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_ESS | BRF_NODUMP }, // 6 Internal ARM7 Rom
{ "ddp3_defaults.nv", 0x020000, 0x571e96c0, 0 | BRF_OPT }, // 7 NV RAM
};
STDROMPICKEXT(ddp3a, ddp3a, ddp3Bios) /* custom bios */
STDROMPICKEXT(ddp3a, ddp3a, ddp3Bios) // custom bios
STD_ROM_FN(ddp3a)
struct BurnDriver BurnDrvDdp3a = {
@ -2902,12 +2819,12 @@ static struct BurnRomInfo ddp3bRomDesc[] = {
{ "m04401b032.u17", 0x400000, 0x5a0dbd76, 5 | BRF_SND }, // 5 Samples
{ "ddp3_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_NODUMP }, // 6 Internal ARM7 Rom
{ "ddp3_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_ESS | BRF_NODUMP }, // 6 Internal ARM7 Rom
{ "ddp3_defaults.nv", 0x020000, 0x571e96c0, 0 | BRF_OPT }, // 7 NV RAM
};
STDROMPICKEXT(ddp3b, ddp3b, ddp3Bios) /* custom bios */
STDROMPICKEXT(ddp3b, ddp3b, ddp3Bios) // custom bios
STD_ROM_FN(ddp3b)
struct BurnDriver BurnDrvDdp3b = {
@ -2935,12 +2852,12 @@ static struct BurnRomInfo ddp3blkRomDesc[] = {
{ "m04401b032.u17", 0x400000, 0x5a0dbd76, 5 | BRF_SND }, // 5 Samples
{ "ddp3_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_NODUMP }, // 6 Internal ARM7 Rom
{ "ddp3_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_ESS | BRF_NODUMP }, // 6 Internal ARM7 Rom
{ "ddp3blk_defaults.nv", 0x020000, 0xa1651904, 0 | BRF_OPT }, // 7 NV RAM (patch below instead)
};
STDROMPICKEXT(ddp3blk, ddp3blk, ddp3Bios) /* custom bios */
STDROMPICKEXT(ddp3blk, ddp3blk, ddp3Bios) // custom bios
STD_ROM_FN(ddp3blk)
static void ddp3blkPatchRAM()
@ -2993,12 +2910,12 @@ static struct BurnRomInfo ketRomDesc[] = {
{ "m04701b032.u17", 0x400000, 0xb46e22d1, 5 | BRF_SND }, // 5 Samples
{ "ket_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_NODUMP }, // 6 Internal ARM7 Rom
{ "ket_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_ESS | BRF_NODUMP }, // 6 Internal ARM7 Rom
{ "ket_defaults.nv", 0x020000, 0x3ca892d8, 0 | BRF_OPT }, // 7 NV RAM
};
STDROMPICKEXT(ket, ket, ketsuiBios) /* custom bios */
STDROMPICKEXT(ket, ket, ketsuiBios) // custom bios
STD_ROM_FN(ket)
static INT32 ketsuiInit()
@ -3034,12 +2951,12 @@ static struct BurnRomInfo ketaRomDesc[] = {
{ "m04701b032.u17", 0x400000, 0xb46e22d1, 5 | BRF_SND }, // 5 Samples
{ "ket_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_NODUMP },// 6 Internal ARM7 Rom
{ "ket_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_ESS | BRF_NODUMP }, // 6 Internal ARM7 Rom
{ "ket_defaults.nv", 0x020000, 0x3ca892d8, 0 | BRF_OPT }, // 7 NV RAM
};
STDROMPICKEXT(keta, keta, ketsuiBios) /* custom bios */
STDROMPICKEXT(keta, keta, ketsuiBios) // custom bios
STD_ROM_FN(keta)
struct BurnDriver BurnDrvKeta = {
@ -3067,12 +2984,12 @@ static struct BurnRomInfo ketbRomDesc[] = {
{ "m04701b032.u17", 0x400000, 0xb46e22d1, 5 | BRF_SND }, // 5 Samples
{ "ket_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_NODUMP },// 6 Internal ARM7 Rom
{ "ket_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_ESS | BRF_NODUMP }, // 6 Internal ARM7 Rom
{ "ket_defaults.nv", 0x020000, 0x3ca892d8, 0 | BRF_OPT }, // 7 NV RAM
};
STDROMPICKEXT(ketb, ketb, ketsuiBios) /* custom bios */
STDROMPICKEXT(ketb, ketb, ketsuiBios) // custom bios
STD_ROM_FN(ketb)
struct BurnDriver BurnDrvKetb = {
@ -3100,12 +3017,12 @@ static struct BurnRomInfo kethRomDesc[] = {
{ "m04701b032.u17", 0x400000, 0xb46e22d1, 5 | BRF_SND }, // 5 Samples
{ "ket_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_NODUMP },// 6 Internal ARM7 Rom
{ "ket_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_ESS | BRF_NODUMP }, // 6 Internal ARM7 Rom
{ "ket_defaults.nv", 0x020000, 0x3ca892d8, 0 | BRF_OPT }, // 7 NV RAM
};
STDROMPICKEXT(keth, keth, ketsuiBios) /* custom bios */
STDROMPICKEXT(keth, keth, ketsuiBios) // custom bios
STD_ROM_FN(keth)
struct BurnDriver BurnDrvketh = {
@ -3133,10 +3050,10 @@ static struct BurnRomInfo espgalRomDesc[] = {
{ "w04801b032.u17", 0x400000, 0x60298536, 5 | BRF_SND }, // 5 Samples
{ "espgal_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_NODUMP },// 6 Internal ARM7 Rom
{ "espgal_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_ESS | BRF_NODUMP }, // 6 Internal ARM7 Rom
};
STDROMPICKEXT(espgal, espgal, espgalBios) /* custom bios */
STDROMPICKEXT(espgal, espgal, espgalBios) // custom bios
STD_ROM_FN(espgal)
static INT32 espgalInit()
@ -3174,12 +3091,12 @@ static struct BurnRomInfo thegladpcbRomDesc[] = {
{ "w04601.u1", 0x800000, 0x5f15ddb3, 5 | BRF_SND }, // 7 Samples
{ "theglad_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_NODUMP }, // 8 Internal ARM7 Rom
{ "theglad_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_ESS | BRF_NODUMP }, // 8 Internal ARM7 Rom
{ "igs.62", 0x200000, 0x0f3f511e, 8 | BRF_PRG | BRF_ESS }, // 9 External ARM7 Rom
};
STDROMPICKEXT(thegladpcb, thegladpcb, thegladBIOS) /* custom bios */
STDROMPICKEXT(thegladpcb, thegladpcb, thegladBIOS) // custom bios
STD_ROM_FN(thegladpcb)
static INT32 thegladpcbInit()
@ -3222,12 +3139,12 @@ static struct BurnRomInfo dmnfrntpcbRomDesc[] = {
{ "w04501.u5", 0x800000, 0x3ab58137, 5 | BRF_SND }, // 7 Samples
{ "dmnfrnt_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_NODUMP }, // 8 Internal ARM7 Rom
{ "dmnfrnt_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_ESS | BRF_NODUMP }, // 8 Internal ARM7 Rom
{ "demonfront_v107-u62.bin", 0x400000, 0xcb94772e, 8 | BRF_PRG | BRF_ESS }, // 9 External ARM7 Rom
};
STDROMPICKEXT(dmnfrntpcb, dmnfrntpcb, dmnfrntBIOS) /* custom bios */
STDROMPICKEXT(dmnfrntpcb, dmnfrntpcb, dmnfrntBIOS) // custom bios
STD_ROM_FN(dmnfrntpcb)
struct BurnDriverD BurnDrvDmnfrntpcb = {
@ -3259,13 +3176,13 @@ static struct BurnRomInfo svgpcbRomDesc[] = {
{ "w05601b064.bin", 0x800000, 0xbfe61a71, 5 | BRF_SND }, // 8 Samples
{ "w05602b032.bin", 0x400000, 0x0685166d, 5 | BRF_SND }, // 9
{ "svg_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_NODUMP }, // 10 Internal ARM7 Rom
{ "svg_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_ESS | BRF_NODUMP }, // 10 Internal ARM7 Rom
{ "svg_v100jp.u64", 0x400000, 0x399d4a8b, 8 | BRF_PRG | BRF_ESS }, // 11 External ARM7 Rom
{ "svg_v100jp.u65", 0x400000, 0x6e1c33b1, 8 | BRF_PRG | BRF_ESS }, // 12
};
STDROMPICKEXT(svgpcb, svgpcb, svgpcbBIOS) /* custom bios */
STDROMPICKEXT(svgpcb, svgpcb, svgpcbBIOS) // custom bios
STD_ROM_FN(svgpcb)
static INT32 svgpcbInit()
@ -3382,7 +3299,7 @@ struct BurnDriver BurnDrvPgemeni = {
// Knights of Valour: Quan Huang San Guo Special / Sangoku Senki: Quan Huang San Guo Special (ver. 303CN)
static struct BurnRomInfo kovqhsgsRomDesc[] = {
{ "qhsg_c51.rom", 0x0400000, 0xe5cbac85, 1 | BRF_ESS | BRF_PRG }, // 0 68K Code
{ "qhsg_c51.rom", 0x0400000, 0xe5cbac85, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
{ "lsqh2_t01.rom", 0x1000000, 0xd498d97f, 2 | BRF_GRA }, // 1 Tile data
@ -3394,7 +3311,7 @@ static struct BurnRomInfo kovqhsgsRomDesc[] = {
{ "lsqh2_m01.rom", 0x1000000, 0x01af1b65, 5 | BRF_SND }, // 6 Samples
{ "qhsg_prot.c51", 0x0004000, 0x0f09a5c1, 7 | BRF_ESS | BRF_PRG }, // 7 Internal ARM7 Rom
{ "qhsg_prot.c51", 0x0004000, 0x0f09a5c1, 7 | BRF_PRG | BRF_ESS }, // 7 Internal ARM7 Rom
};
STDROMPICKEXT(kovqhsgs, kovqhsgs, pgm)
@ -3417,7 +3334,7 @@ struct BurnDriver BurnDrvkovqhsgs = {
"Knights of Valour: Quan Huang San Guo Special / Sangoku Senki: Quan Huang San Guo Special (ver. 303CN)\0", NULL, "IGS", "PolyGameMaster",
L"Knights of Valour: Quan Huang San Guo Special\0\u4E09\u56FD\u6218\u7EAA\0\u62F3\u7687\u4E09\u56FD\u7279\u522B\u7248 (ver. 303CN)\0", NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 4, HARDWARE_IGS_PGM | HARDWARE_IGS_USE_ARM_CPU, GBF_SCRFIGHT, 0,
NULL, kovqhsgsRomInfo, kovqhsgsRomName, NULL, NULL, pgmInputInfo, sangoDIPInfo,
NULL, kovqhsgsRomInfo, kovqhsgsRomName, NULL, NULL, pgmInputInfo, kovDIPInfo,
kovqhsgsInit, pgmExit, pgmFrame, pgmDraw, pgmScan, &nPgmPalRecalc, 0x900,
448, 224, 4, 3
};
@ -3426,7 +3343,7 @@ struct BurnDriver BurnDrvkovqhsgs = {
// Knights of Valour: Luan Shi Quan Huang 2 / Sangoku Senki: Luan Shi Quan Huang 2 (ver. 200CN)
static struct BurnRomInfo kovlsqh2RomDesc[] = {
{ "lsqh2_prg.rom", 0x0400000, 0xd71e3d50, 1 | BRF_ESS | BRF_PRG }, // 0 68K Code
{ "lsqh2_prg.rom", 0x0400000, 0xd71e3d50, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
{ "lsqh2_t01.rom", 0x1000000, 0xd498d97f, 2 | BRF_GRA }, // 1 Tile data
@ -3438,7 +3355,11 @@ static struct BurnRomInfo kovlsqh2RomDesc[] = {
{ "lsqh2_m01.rom", 0x1000000, 0x01af1b65, 5 | BRF_SND }, // 6 Samples
{ "lsqh2_prot.c51", 0x0010000, 0x00000000, 7 | BRF_PRG | BRF_NODUMP }, // 7 Internal ARM7 Rom
#if !defined ROM_VERIFY
{ "lsqh2_prot.c51", 0x0010000, 0x00000000, 7 | BRF_PRG | BRF_ESS | BRF_NODUMP }, // 7 Internal ARM7 Rom
#else
{ "kovsh_v100_china.asic", 0x0004000, 0x0f09a5c1, 7 | BRF_PRG | BRF_ESS }, // 7 Internal ARM7 Rom
#endif
};
STDROMPICKEXT(kovlsqh2, kovlsqh2, pgm)
@ -3461,7 +3382,7 @@ struct BurnDriverD BurnDrvkovlsqh2 = {
"Knights of Valour: Luan Shi Quan Huang 2 / Sangoku Senki: Luan Shi Quan Huang 2 (ver. 200CN)\0", "Incomplete dump", "IGS", "PolyGameMaster",
NULL, NULL, NULL, NULL,
BDF_CLONE | BDF_BOOTLEG, 4, HARDWARE_IGS_PGM/* | HARDWARE_IGS_USE_ARM_CPU */, GBF_SCRFIGHT, 0,
NULL, kovlsqh2RomInfo, kovlsqh2RomName, NULL, NULL, pgmInputInfo, sangoDIPInfo,
NULL, kovlsqh2RomInfo, kovlsqh2RomName, NULL, NULL, pgmInputInfo, kovDIPInfo,
kovlsqh2Init, pgmExit, pgmFrame, pgmDraw, pgmScan, &nPgmPalRecalc, 0x900,
448, 224, 4, 3
};
@ -3470,7 +3391,7 @@ struct BurnDriverD BurnDrvkovlsqh2 = {
// Knights of Valour: Luan Shi Quan Huang 2 / Sangoku Senki: Luan Shi Quan Huang (ver. 200CN)
static struct BurnRomInfo kovlsqhRomDesc[] = {
{ "lsqh_v200cn.rom", 0x0400000, 0x9935a27a, 1 | BRF_ESS | BRF_PRG }, // 0 68K Code
{ "lsqh_v200cn.rom", 0x0400000, 0x9935a27a, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
{ "lsqh2_t01.rom", 0x1000000, 0xd498d97f, 2 | BRF_GRA }, // 1 Tile data
@ -3482,7 +3403,11 @@ static struct BurnRomInfo kovlsqhRomDesc[] = {
{ "lsqh2_m01.rom", 0x1000000, 0x01af1b65, 5 | BRF_SND }, // 6 Samples
{ "lsqh_prot.c51", 0x0010000, 0x00000000, 7 | BRF_PRG | BRF_NODUMP }, // 7 Internal ARM7 Rom
#if !defined ROM_VERIFY
{ "lsqh_prot.c51", 0x0010000, 0x00000000, 7 | BRF_PRG | BRF_ESS | BRF_NODUMP }, // 7 Internal ARM7 Rom
#else
{ "kovsh_v100_china.asic", 0x0004000, 0x0f09a5c1, 7 | BRF_PRG | BRF_ESS }, // 7 Internal ARM7 Rom
#endif
};
STDROMPICKEXT(kovlsqh, kovlsqh, pgm)
@ -3505,7 +3430,7 @@ struct BurnDriverD BurnDrvkovlsqh = {
"Knights of Valour: Luan Shi Quan Huang / Sangoku Senki: Luan Shi Quan Huang (ver. 200CN)\0", "Incomplete dump", "IGS", "PolyGameMaster",
NULL, NULL, NULL, NULL,
BDF_CLONE | BDF_BOOTLEG, 4, HARDWARE_IGS_PGM/* | HARDWARE_IGS_USE_ARM_CPU */, GBF_SCRFIGHT, 0,
NULL, kovlsqhRomInfo, kovlsqhRomName, NULL, NULL, pgmInputInfo, sangoDIPInfo,
NULL, kovlsqhRomInfo, kovlsqhRomName, NULL, NULL, pgmInputInfo, kovDIPInfo,
kovlsqhInit, pgmExit, pgmFrame, pgmDraw, pgmScan, &nPgmPalRecalc, 0x900,
448, 224, 4, 3
};
@ -3514,7 +3439,7 @@ struct BurnDriverD BurnDrvkovlsqh = {
// Knights of Valour: Luan Shi Jie Ba / Sangoku Senki: Luan Shi Jie Ba (ver. 200CN)
static struct BurnRomInfo kovlsjbRomDesc[] = {
{ "lsjb_prg.rom", 0x0400000, 0xadf06b37, 1 | BRF_ESS | BRF_PRG }, // 0 68K Code
{ "lsjb_prg.rom", 0x0400000, 0xadf06b37, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
{ "lsqh2_t01.rom", 0x1000000, 0xd498d97f, 2 | BRF_GRA }, // 1 Tile data
@ -3526,7 +3451,11 @@ static struct BurnRomInfo kovlsjbRomDesc[] = {
{ "lsqh2_m01.rom", 0x1000000, 0x01af1b65, 5 | BRF_SND }, // 6 Samples
{ "lsjb_prot.c51", 0x0010000, 0x00000000, 7 | BRF_PRG | BRF_NODUMP }, // 7 Internal ARM7 Rom
#if !defined ROM_VERIFY
{ "lsjb_prot.c51", 0x0010000, 0x00000000, 7 | BRF_PRG | BRF_ESS | BRF_NODUMP }, // 7 Internal ARM7 Rom
#else
{ "kovsh_v100_china.asic", 0x0004000, 0x0f09a5c1, 7 | BRF_PRG | BRF_ESS }, // 7 Internal ARM7 Rom
#endif
};
STDROMPICKEXT(kovlsjb, kovlsjb, pgm)
@ -3537,7 +3466,7 @@ struct BurnDriverD BurnDrvkovlsjb = {
"Knights of Valour: Luan Shi Jie Ba / Sangoku Senki: Luan Shi Jie Ba (ver. 200CN)\0", NULL, "IGS", "PolyGameMaster",
NULL, NULL, NULL, NULL,
BDF_CLONE | BDF_BOOTLEG, 4, HARDWARE_IGS_PGM/* | HARDWARE_IGS_USE_ARM_CPU*/, GBF_SCRFIGHT, 0,
NULL, kovlsjbRomInfo, kovlsjbRomName, NULL, NULL, pgmInputInfo, sangoDIPInfo,
NULL, kovlsjbRomInfo, kovlsjbRomName, NULL, NULL, pgmInputInfo, kovDIPInfo,
kovlsqh2Init, pgmExit, pgmFrame, pgmDraw, pgmScan, &nPgmPalRecalc, 0x900,
448, 224, 4, 3
};
@ -3546,7 +3475,7 @@ struct BurnDriverD BurnDrvkovlsjb = {
// Knights of Valour: Luan Shi Jie Ba / Sangoku Senki: Luan Shi Jie Ba (alt ver. 200CN)
static struct BurnRomInfo kovlsjbaRomDesc[] = {
{ "lsjba_prg.rom", 0x0400000, 0x8b42f456, 1 | BRF_ESS | BRF_PRG }, // 0 68K Code
{ "lsjba_prg.rom", 0x0400000, 0x8b42f456, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
{ "lsqh2_t01.rom", 0x1000000, 0xd498d97f, 2 | BRF_GRA }, // 1 Tile data
@ -3558,7 +3487,11 @@ static struct BurnRomInfo kovlsjbaRomDesc[] = {
{ "lsqh2_m01.rom", 0x1000000, 0x01af1b65, 5 | BRF_SND }, // 6 Samples
{ "lsjba_prot.c51", 0x0010000, 0x00000000, 7 | BRF_PRG | BRF_NODUMP }, // 7 Internal ARM7 Rom
#if !defined ROM_VERIFY
{ "lsjba_prot.c51", 0x0010000, 0x00000000, 7 | BRF_PRG | BRF_ESS | BRF_NODUMP }, // 7 Internal ARM7 Rom
#else
{ "kovsh_v100_china.asic", 0x0004000, 0x0f09a5c1, 7 | BRF_PRG | BRF_ESS }, // 7 Internal ARM7 Rom
#endif
};
STDROMPICKEXT(kovlsjba, kovlsjba, pgm)
@ -3569,7 +3502,7 @@ struct BurnDriverD BurnDrvkovlsjba = {
"Knights of Valour: Luan Shi Jie Ba / Sangoku Senki: Luan Shi Jie Ba (alt ver. 200CN)\0", "Incomplete dump", "IGS", "PolyGameMaster",
NULL, NULL, NULL, NULL,
BDF_CLONE | BDF_BOOTLEG, 4, HARDWARE_IGS_PGM/* | HARDWARE_IGS_USE_ARM_CPU*/, GBF_SCRFIGHT, 0,
NULL, kovlsjbaRomInfo, kovlsjbaRomName, NULL, NULL, pgmInputInfo, sangoDIPInfo,
NULL, kovlsjbaRomInfo, kovlsjbaRomName, NULL, NULL, pgmInputInfo, kovDIPInfo,
kovlsqh2Init, pgmExit, pgmFrame, pgmDraw, pgmScan, &nPgmPalRecalc, 0x900,
448, 224, 4, 3
};
@ -3578,7 +3511,7 @@ struct BurnDriverD BurnDrvkovlsjba = {
// Knights of Valour: Ao Shi San Guo / Sangoku Senki: Ao Shi San Guo (ver. 315CN)
static struct BurnRomInfo kovassgRomDesc[] = {
{ "assg_v315cn.rom", 0x0400000, 0xb9885d5c, 1 | BRF_ESS | BRF_PRG }, // 0 68K Code
{ "assg_v315cn.rom", 0x0400000, 0xb9885d5c, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
{ "lsqh2_t01.rom", 0x1000000, 0xd498d97f, 2 | BRF_GRA }, // 1 Tile data
@ -3590,7 +3523,7 @@ static struct BurnRomInfo kovassgRomDesc[] = {
{ "lsqh2_m01.rom", 0x1000000, 0x01af1b65, 5 | BRF_SND }, // 6 Samples
{ "assg_prot.c51", 0x0010000, 0x00000000, 7 | BRF_PRG | BRF_NODUMP }, // 7 Internal ARM7 Rom
{ "assg_prot.c51", 0x0010000, 0x00000000, 7 | BRF_PRG | BRF_ESS | BRF_NODUMP }, // 7 Internal ARM7 Rom
};
STDROMPICKEXT(kovassg, kovassg, pgm)
@ -3613,7 +3546,7 @@ struct BurnDriverD BurnDrvkovassg = {
"Knights of Valour: Ao Shi San Guo / Sangoku Senki: Ao Shi San Guo (ver. 315CN)\0", "Incomplete dump", "IGS", "PolyGameMaster",
NULL, NULL, NULL, NULL,
BDF_CLONE | BDF_BOOTLEG, 4, HARDWARE_IGS_PGM /* | HARDWARE_IGS_USE_ARM_CPU */, GBF_SCRFIGHT, 0,
NULL, kovassgRomInfo, kovassgRomName, NULL, NULL, pgmInputInfo, sangoDIPInfo,
NULL, kovassgRomInfo, kovassgRomName, NULL, NULL, pgmInputInfo, kovDIPInfo,
kovassgInit, pgmExit, pgmFrame, pgmDraw, pgmScan, &nPgmPalRecalc, 0x900,
448, 224, 4, 3
};
@ -3622,7 +3555,7 @@ struct BurnDriverD BurnDrvkovassg = {
// Knights of Valour: Ao Shi San Guo / Sangoku Senki: Ao Shi San Guo (ver. 202CN)
static struct BurnRomInfo kovassgaRomDesc[] = {
{ "assg_v202cn.rom", 0x400000, 0x3b7b627f, 1 | BRF_ESS | BRF_PRG }, // 0 68K Code
{ "assg_v202cn.rom", 0x400000, 0x3b7b627f, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
{ "t0600.rom", 0x800000, 0x4acc1ad6, 2 | BRF_GRA }, // 1 Tile data
@ -3636,7 +3569,7 @@ static struct BurnRomInfo kovassgaRomDesc[] = {
{ "m0600.rom", 0x400000, 0x3ada4fd6, 5 | BRF_SND }, // 8 Samples
{ "kovassga_v100_china.asic", 0x004000, 0x0f09a5c1, 7 | BRF_ESS | BRF_PRG }, // 9 Internal ARM7 Rom
{ "kovassga_v100_china.asic", 0x004000, 0x0f09a5c1, 7 | BRF_PRG | BRF_ESS }, // 9 Internal ARM7 Rom
};
STDROMPICKEXT(kovassga, kovassga, pgm)
@ -3682,7 +3615,7 @@ static struct BurnRomInfo kovsgqyzRomDesc[] = {
{ "m0600.rom", 0x400000, 0x3ada4fd6, 5 | BRF_SND }, // 12 Samples
{ "kovsgqyz_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_NODUMP }, // 13 Internal ARM7 Rom
{ "kovsgqyz_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_ESS | BRF_NODUMP }, // 13 Internal ARM7 Rom
};
STDROMPICKEXT(kovsgqyz, kovsgqyz, pgm)
@ -3723,7 +3656,7 @@ static struct BurnRomInfo kovsgqyzaRomDesc[] = {
{ "m0600.rom", 0x400000, 0x3ada4fd6, 5 | BRF_SND }, // 12 Samples
{ "kovsgqyza_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_NODUMP }, // 13 Internal ARM7 Rom
{ "kovsgqyza_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_ESS | BRF_NODUMP }, // 13 Internal ARM7 Rom
};
STDROMPICKEXT(kovsgqyza, kovsgqyza, pgm)
@ -3757,7 +3690,7 @@ static struct BurnRomInfo kovsgqyzbRomDesc[] = {
{ "m0600.rom", 0x400000, 0x3ada4fd6, 5 | BRF_SND }, // 12 Samples
{ "kovsgqyzb_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_NODUMP }, // 13 Internal ARM7 Rom
{ "kovsgqyzb_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_ESS | BRF_NODUMP }, // 13 Internal ARM7 Rom
};
STDROMPICKEXT(kovsgqyzb, kovsgqyzb, pgm)
@ -3791,7 +3724,7 @@ static struct BurnRomInfo kovsgqyzcRomDesc[] = {
{ "m0600.rom", 0x400000, 0x3ada4fd6, 5 | BRF_SND }, // 12 Samples
{ "kovsgqyzb_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_NODUMP }, // 13 Internal ARM7 Rom
{ "kovsgqyzb_igs027a.bin", 0x004000, 0x00000000, 7 | BRF_PRG | BRF_ESS | BRF_NODUMP }, // 13 Internal ARM7 Rom
};
STDROMPICKEXT(kovsgqyzc, kovsgqyzc, pgm)

View File

@ -77,6 +77,7 @@ void install_protection_asic27a_ketsui();
void install_protection_asic27a_ddp3();
void install_protection_asic27a_puzzli2();
void install_protection_asic27a_kovshp();
void install_protection_asic27a_py2k2();
// pgm_crypt
void pgm_decrypt_kov();

View File

@ -1,4 +1,4 @@
/* IGS PGM System Encryptions */
// IGS PGM System Encryptions
#include "pgm.h"
#include "bitswap.h"
@ -134,7 +134,7 @@ void pgm_decrypt_kovsh()
}
}
static const UINT8 kovshp_tab[256] = { // IGS0009rd1040219
static const UINT8 kovshp_tab[256] = {
0x49, 0x47, 0x53, 0x30, 0x30, 0x30, 0x39, 0x72, 0x64, 0x31, 0x30, 0x34, 0x30, 0x32, 0x31, 0x39,
0xf9, 0x8c, 0xbd, 0x87, 0x16, 0x07, 0x39, 0xeb, 0x29, 0x9e, 0x17, 0xef, 0x4f, 0x64, 0x7c, 0xe0,
0x5f, 0x73, 0x5b, 0xa1, 0x5e, 0x95, 0x0d, 0xf1, 0x40, 0x36, 0x2f, 0x00, 0xe2, 0x8a, 0xbc, 0x32,
@ -297,7 +297,7 @@ void pgm_decrypt_puzzli2()
}
}
static const UINT8 oldsplus_tab[256] = { // IGS0013RD1040727
static const UINT8 oldsplus_tab[256] = {
0x49, 0x47, 0x53, 0x30, 0x30, 0x31, 0x33, 0x52, 0x44, 0x31, 0x30, 0x34, 0x30, 0x37, 0x32, 0x37,
0xf5, 0x79, 0x6d, 0xab, 0x04, 0x22, 0x51, 0x96, 0xf2, 0x72, 0xe8, 0x3a, 0x96, 0xd2, 0x9a, 0xcc,
0x3f, 0x47, 0x3c, 0x09, 0xf2, 0xd9, 0x72, 0x41, 0xe6, 0x44, 0x43, 0xa7, 0x3e, 0xe2, 0xfd, 0xd8,
@ -379,7 +379,7 @@ void pgm_decrypt_py2k2() // and ddp3
}
}
static const UINT8 ketsui_tab[256] = { // IGS0004RD1021015
static const UINT8 ketsui_tab[256] = {
0x49, 0x47, 0x53, 0x30, 0x30, 0x30, 0x34, 0x52, 0x44, 0x31, 0x30, 0x32, 0x31, 0x30, 0x31, 0x35,
0x7c, 0x49, 0x27, 0xa5, 0xff, 0xf6, 0x98, 0x2d, 0x0f, 0x3d, 0x12, 0x23, 0xe2, 0x30, 0x50, 0xcf,
0xf1, 0x82, 0xf0, 0xce, 0x48, 0x44, 0x5b, 0xf3, 0x0d, 0xdf, 0xf8, 0x5d, 0x50, 0x53, 0x91, 0xd9,
@ -407,7 +407,7 @@ void pgm_decrypt_ketsui()
if ((i & 0x040480) != 0x000080) x ^= 0x0001;
if ((i & 0x004008) == 0x004008) x ^= 0x0002;
if ((i & 0x080030) == 0x000010) x ^= 0x0004; // due to address starting at 0 and not 100000/2!
if ((i & 0x080030) == 0x000010) x ^= 0x0004; // address starts at 0 and not 100000/2!
if ((i & 0x000042) != 0x000042) x ^= 0x0008;
if ((i & 0x008100) == 0x008000) x ^= 0x0010;
if ((i & 0x002004) != 0x000004) x ^= 0x0020;
@ -420,7 +420,7 @@ void pgm_decrypt_ketsui()
}
}
static const UINT8 espgal_tab[256] = { // IGS0007RD1030909
static const UINT8 espgal_tab[256] = {
0x49, 0x47, 0x53, 0x30, 0x30, 0x30, 0x37, 0x52, 0x44, 0x31, 0x30, 0x33, 0x30, 0x39, 0x30, 0x39,
0xa7, 0xf1, 0x0a, 0xca, 0x69, 0xb2, 0xce, 0x86, 0xec, 0x3d, 0xa2, 0x5a, 0x03, 0xe9, 0xbf, 0xba,
0xf7, 0xd5, 0xec, 0x68, 0x03, 0x90, 0x15, 0xcc, 0x0d, 0x08, 0x2d, 0x76, 0xa5, 0xb5, 0x41, 0xf1,
@ -508,12 +508,12 @@ void pgm_decrypt_svgpcb()
UINT16 x = BURN_ENDIAN_SWAP_INT16(src[i]);
// preliminary!
if ((i & 0x040080) != 0x000080) x ^= 0x0001; // ok?
if ((i & 0x040080) != 0x000080) x ^= 0x0001;
if ((i & 0x084008) == 0x084008) x ^= 0x0002;
if ((i & 0x080030) == 0x080010) x ^= 0x0004;
if ((i & 0x000242) != 0x000042) x ^= 0x0008; // ok?
if ((i & 0x048100) == 0x048000) x ^= 0x0010; //
if ((i & 0x022004) != 0x000004) x ^= 0x0020; // ok?
if ((i & 0x000242) != 0x000042) x ^= 0x0008;
if ((i & 0x048100) == 0x048000) x ^= 0x0010;
if ((i & 0x022004) != 0x000004) x ^= 0x0020;
if ((i & 0x011800) != 0x010000) x ^= 0x0040;
if ((i & 0x000820) == 0x000820) x ^= 0x0080;
@ -725,7 +725,7 @@ void pgm_decrypt_kov2p()
}
}
static const UINT8 theglad_tab[256] = { // IGS0005RD1021203
static const UINT8 theglad_tab[256] = {
0x49, 0x47, 0x53, 0x30, 0x30, 0x30, 0x35, 0x52, 0x44, 0x31, 0x30, 0x32, 0x31, 0x32, 0x30, 0x33,
0xc4, 0xa3, 0x46, 0x78, 0x30, 0xb3, 0x8b, 0xd5, 0x2f, 0xc4, 0x44, 0xbf, 0xdb, 0x76, 0xdb, 0xea,
0xb4, 0xeb, 0x95, 0x4d, 0x15, 0x21, 0x99, 0xa1, 0xd7, 0x8c, 0x40, 0x1d, 0x43, 0xf3, 0x9f, 0x71,
@ -766,7 +766,7 @@ void pgm_decrypt_theglad()
}
}
static const UINT8 killbldp_tab[] = { // IGS0024RD1050908
static const UINT8 killbldp_tab[] = {
0x49, 0x47, 0x53, 0x30, 0x30, 0x32, 0x34, 0x52, 0x44, 0x31, 0x30, 0x35, 0x30, 0x39, 0x30, 0x38,
0x12, 0xa0, 0xd1, 0x9e, 0xb1, 0x8a, 0xfb, 0x1f, 0x50, 0x51, 0x4b, 0x81, 0x28, 0xda, 0x5f, 0x41,
0x78, 0x6c, 0x7a, 0xf0, 0xcd, 0x6b, 0x69, 0x14, 0x94, 0x55, 0xb6, 0x42, 0xdf, 0xfe, 0x10, 0x79,
@ -807,7 +807,7 @@ void pgm_decrypt_killbldp()
}
}
static const UINT8 happy6in1_tab[256] = { // IGS0008RD1031215
static const UINT8 happy6in1_tab[256] = {
0x49, 0x47, 0x53, 0x30, 0x30, 0x30, 0x38, 0x52, 0x44, 0x31, 0x30, 0x33, 0x31, 0x32, 0x31, 0x35,
0x14, 0xd6, 0x37, 0x5c, 0x5e, 0xc3, 0xd3, 0x62, 0x96, 0x3d, 0xfb, 0x47, 0xf0, 0xcb, 0xbf, 0xb0,
0x60, 0xa1, 0xc2, 0x3d, 0x90, 0xd0, 0x58, 0x56, 0x22, 0xac, 0xdd, 0x39, 0x27, 0x7e, 0x58, 0x44,

File diff suppressed because it is too large Load Diff