Fixed Caveman Ninja and Edward Randy - promoted all sets to working

This commit is contained in:
Barry Harris 2012-01-16 16:42:08 +00:00
parent ac5bd4fe4f
commit 8e08e0c4be
1 changed files with 65 additions and 59 deletions

View File

@ -488,12 +488,12 @@ void __fastcall cninja_main_write_word(UINT32 address, UINT16 data)
switch (address) switch (address)
{ {
case 0x190000: case 0x190000:
//case 0x1a4000: case 0x1a4000:
irq_mask = data & 0xff; irq_mask = data & 0xff;
return; return;
case 0x190002: case 0x190002:
//case 0x1a4002: case 0x1a4002:
{ {
scanline = data & 0xff; scanline = data & 0xff;
@ -505,13 +505,14 @@ void __fastcall cninja_main_write_word(UINT32 address, UINT16 data)
} }
return; return;
// case 0x1ac000: case 0x1ac000:
case 0x1b4000: case 0x1b4000:
memcpy (DrvSprBuf, DrvSprRAM, 0x800); memcpy (DrvSprBuf, DrvSprRAM, 0x800);
return; return;
case 0x17ff2a: case 0x17ff2a:
// case 0x1bc0a8: case 0x198064:
case 0x1bc0a8:
if (has_z80) { if (has_z80) {
*soundlatch = data & 0xff; *soundlatch = data & 0xff;
ZetNmi(); ZetNmi();
@ -522,16 +523,16 @@ void __fastcall cninja_main_write_word(UINT32 address, UINT16 data)
break; break;
} }
////if ((address & 0xfffff800) == 0x198000) { if ((address & 0xfffff800) == 0x198000) {
// deco16_66_prot_w(address, data, 0xffff); deco16_66_prot_w(address, data, 0xffff);
// return; return;
//} }
//if ((address & 0xffffff00) == 0x1bc000) { if ((address & 0xffffff00) == 0x1bc000) {
// deco16_prot_ram[(address & 0xff) / 2] = data; UINT16 *ProtRam = (UINT16*)deco16_prot_ram;
ProtRam[(address - 0x1bc000) >> 1] = data;
// return; return;
//} }
} }
void __fastcall cninja_main_write_byte(UINT32 address, UINT8 data) void __fastcall cninja_main_write_byte(UINT32 address, UINT8 data)
@ -541,14 +542,14 @@ void __fastcall cninja_main_write_byte(UINT32 address, UINT8 data)
// case 0x190000: // case 0x190000:
case 0x190001: case 0x190001:
// case 0x1a4000: // case 0x1a4000:
// case 0x1a4001: case 0x1a4001:
irq_mask = data & 0xff; irq_mask = data & 0xff;
return; return;
// case 0x190002: // case 0x190002:
case 0x190003: case 0x190003:
// case 0x1a4002: // case 0x1a4002:
// case 0x1a4003: case 0x1a4003:
{ {
scanline = data & 0xff; scanline = data & 0xff;
if ((~irq_mask & 0x02) && (scanline > 0) && (scanline < 240)) { if ((~irq_mask & 0x02) && (scanline > 0) && (scanline < 240)) {
@ -560,13 +561,13 @@ void __fastcall cninja_main_write_byte(UINT32 address, UINT8 data)
return; return;
// case 0x1ac000: // case 0x1ac000:
// case 0x1ac001: case 0x1ac001:
// case 0x1b4000: // case 0x1b4000:
case 0x1b4001: case 0x1b4001:
memcpy (DrvSprBuf, DrvSprRAM, 0x800); memcpy (DrvSprBuf, DrvSprRAM, 0x800);
return; return;
case 0x1bc0a8: case 0x198065:
case 0x1bc0a9: case 0x1bc0a9:
if (has_z80) { if (has_z80) {
*soundlatch = data; *soundlatch = data;
@ -578,16 +579,18 @@ void __fastcall cninja_main_write_byte(UINT32 address, UINT8 data)
break; break;
} }
//if ((address & 0xfffff800) == 0x198000) { if ((address & 0xfffff800) == 0x198000) {
// deco16_66_prot_w(address, data, 0x00ff << ((address & 1) << 3)); deco16_66_prot_w(address, data, 0x00ff << ((address & 1) << 3));
// return; return;
//} }
//if ((address & 0xffffff00) == 0x1bc000) { if ((address & 0xffffff00) == 0x1bc000) {
// DrvPrtRAM[(address & 0xff)^1] = data; DrvPrtRAM[(address & 0xff)^1] = data;
//
// return; return;
//} }
bprintf(PRINT_NORMAL, _T("Write Byte %x, %x\n"), address, data);
} }
UINT16 __fastcall cninja_main_read_word(UINT32 address) UINT16 __fastcall cninja_main_read_word(UINT32 address)
@ -603,24 +606,26 @@ UINT16 __fastcall cninja_main_read_word(UINT32 address)
case 0x17ff2c: case 0x17ff2c:
return DrvInputs[0]; return DrvInputs[0];
// case 0x1a4002: case 0x1a4002:
case 0x190002: case 0x190002:
return scanline; return scanline;
// case 0x1a4004: case 0x1a4004:
case 0x190004: case 0x190004:
SekSetIRQLine(3, SEK_IRQSTATUS_NONE); SekSetIRQLine(3, SEK_IRQSTATUS_NONE);
SekSetIRQLine(4, SEK_IRQSTATUS_NONE); SekSetIRQLine(4, SEK_IRQSTATUS_NONE);
return 0; return 0;
} }
//if ((address & 0xfffffc00) == 0x1bc000) { if ((address & 0xfffffc00) == 0x1bc000) {
// return deco16_104_cninja_prot_r(address); return deco16_104_cninja_prot_r(address);
//} }
//if ((address & 0xfffff800) == 0x198000) { if ((address & 0xfffff800) == 0x198000) {
// return deco16_60_prot_r(address); return deco16_60_prot_r(address);
//} }
bprintf(PRINT_NORMAL, _T("Read Word %x, %x\n"), address);
return 0; return 0;
} }
@ -646,7 +651,7 @@ UINT8 __fastcall cninja_main_read_byte(UINT32 address)
return DrvInputs[0]; return DrvInputs[0];
// case 0x1a4002: // case 0x1a4002:
// case 0x1a4003: case 0x1a4003:
// case 0x190002: // case 0x190002:
case 0x190003: case 0x190003:
return scanline; return scanline;
@ -660,13 +665,15 @@ UINT8 __fastcall cninja_main_read_byte(UINT32 address)
return 0; return 0;
} }
//if ((address & 0xfffff800) == 0x198000) { if ((address & 0xfffff800) == 0x198000) {
// return deco16_60_prot_r(address) >> ((~address & 1) << 3); return deco16_60_prot_r(address) >> ((~address & 1) << 3);
//} }
//if ((address & 0xfffffc00) == 0x1bc000) { if ((address & 0xfffffc00) == 0x1bc000) {
// return deco16_104_cninja_prot_r(address) >> ((~address & 1) << 3); return deco16_104_cninja_prot_r(address) >> ((~address & 1) << 3);
//} }
bprintf(PRINT_NORMAL, _T("Read Byte %x, %x\n"), address);
return 0; return 0;
} }
@ -1724,7 +1731,6 @@ static INT32 DrvExit()
MSM6295Exit(0); MSM6295Exit(0);
MSM6295Exit(1); MSM6295Exit(1);
BurnYM2151Exit(); BurnYM2151Exit();
BurnYM2203Exit();
} else { } else {
deco16SoundExit(); deco16SoundExit();
} }
@ -2450,7 +2456,7 @@ struct BurnDriver BurnDrvCninja = {
"cninja", NULL, NULL, NULL, "1991", "cninja", NULL, NULL, NULL, "1991",
"Caveman Ninja (World ver 4)\0", NULL, "Data East Corporation", "Miscellaneous", "Caveman Ninja (World ver 4)\0", NULL, "Data East Corporation", "Miscellaneous",
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
0, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM, 0, BDF_GAME_WORKING, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM, 0,
NULL, cninjaRomInfo, cninjaRomName, NULL, NULL, DrvInputInfo, CninjaDIPInfo, NULL, cninjaRomInfo, cninjaRomName, NULL, NULL, DrvInputInfo, CninjaDIPInfo,
CninjaInit, DrvExit, CninjaFrame, CninjaDraw, DrvScan, &DrvRecalc, 0x800, CninjaInit, DrvExit, CninjaFrame, CninjaDraw, DrvScan, &DrvRecalc, 0x800,
256, 240, 4, 3 256, 240, 4, 3
@ -2492,11 +2498,11 @@ static struct BurnRomInfo cninja1RomDesc[] = {
STD_ROM_PICK(cninja1) STD_ROM_PICK(cninja1)
STD_ROM_FN(cninja1) STD_ROM_FN(cninja1)
struct BurnDriverD BurnDrvCninja1 = { struct BurnDriver BurnDrvCninja1 = {
"cninja1", "cninja", NULL, NULL, "1991", "cninja1", "cninja", NULL, NULL, "1991",
"Caveman Ninja (World ver 1)\0", NULL, "Data East Corporation", "Miscellaneous", "Caveman Ninja (World ver 1)\0", NULL, "Data East Corporation", "Miscellaneous",
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM, 0, BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM, 0,
NULL, cninja1RomInfo, cninja1RomName, NULL, NULL, DrvInputInfo, CninjaDIPInfo, NULL, cninja1RomInfo, cninja1RomName, NULL, NULL, DrvInputInfo, CninjaDIPInfo,
CninjaInit, DrvExit, CninjaFrame, CninjaDraw, DrvScan, &DrvRecalc, 0x800, CninjaInit, DrvExit, CninjaFrame, CninjaDraw, DrvScan, &DrvRecalc, 0x800,
256, 240, 4, 3 256, 240, 4, 3
@ -2538,11 +2544,11 @@ static struct BurnRomInfo cninjauRomDesc[] = {
STD_ROM_PICK(cninjau) STD_ROM_PICK(cninjau)
STD_ROM_FN(cninjau) STD_ROM_FN(cninjau)
struct BurnDriverD BurnDrvCninjau = { struct BurnDriver BurnDrvCninjau = {
"cninjau", "cninja", NULL, NULL, "1991", "cninjau", "cninja", NULL, NULL, "1991",
"Caveman Ninja (US ver 4)\0", NULL, "Data East Corporation", "Miscellaneous", "Caveman Ninja (US ver 4)\0", NULL, "Data East Corporation", "Miscellaneous",
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM, 0, BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM, 0,
NULL, cninjauRomInfo, cninjauRomName, NULL, NULL, DrvInputInfo, CninjauDIPInfo, NULL, cninjauRomInfo, cninjauRomName, NULL, NULL, DrvInputInfo, CninjauDIPInfo,
CninjaInit, DrvExit, CninjaFrame, CninjaDraw, DrvScan, &DrvRecalc, 0x800, CninjaInit, DrvExit, CninjaFrame, CninjaDraw, DrvScan, &DrvRecalc, 0x800,
256, 240, 4, 3 256, 240, 4, 3
@ -2584,11 +2590,11 @@ static struct BurnRomInfo joemacRomDesc[] = {
STD_ROM_PICK(joemac) STD_ROM_PICK(joemac)
STD_ROM_FN(joemac) STD_ROM_FN(joemac)
struct BurnDriverD BurnDrvJoemac = { struct BurnDriver BurnDrvJoemac = {
"joemac", "cninja", NULL, NULL, "1991", "joemac", "cninja", NULL, NULL, "1991",
"Tatakae Genshizin Joe & Mac (Japan ver 1)\0", NULL, "Data East Corporation", "Miscellaneous", "Tatakae Genshizin Joe & Mac (Japan ver 1)\0", NULL, "Data East Corporation", "Miscellaneous",
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM, 0, BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM, 0,
NULL, joemacRomInfo, joemacRomName, NULL, NULL, DrvInputInfo, CninjaDIPInfo, NULL, joemacRomInfo, joemacRomName, NULL, NULL, DrvInputInfo, CninjaDIPInfo,
CninjaInit, DrvExit, CninjaFrame, CninjaDraw, DrvScan, &DrvRecalc, 0x800, CninjaInit, DrvExit, CninjaFrame, CninjaDraw, DrvScan, &DrvRecalc, 0x800,
256, 240, 4, 3 256, 240, 4, 3
@ -2626,11 +2632,11 @@ static struct BurnRomInfo stoneageRomDesc[] = {
STD_ROM_PICK(stoneage) STD_ROM_PICK(stoneage)
STD_ROM_FN(stoneage) STD_ROM_FN(stoneage)
struct BurnDriverD BurnDrvStoneage = { struct BurnDriver BurnDrvStoneage = {
"stoneage", "cninja", NULL, NULL, "1991", "stoneage", "cninja", NULL, NULL, "1991",
"Stoneage (bootleg of Caveman Ninja)\0", NULL, "bootleg", "Miscellaneous", "Stoneage (bootleg of Caveman Ninja)\0", NULL, "bootleg", "Miscellaneous",
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM, 0, BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM, 0,
NULL, stoneageRomInfo, stoneageRomName, NULL, NULL, DrvInputInfo, CninjaDIPInfo, NULL, stoneageRomInfo, stoneageRomName, NULL, NULL, DrvInputInfo, CninjaDIPInfo,
StoneageInit, DrvExit, StoneageFrame, CninjaDraw, DrvScan, &DrvRecalc, 0x800, StoneageInit, DrvExit, StoneageFrame, CninjaDraw, DrvScan, &DrvRecalc, 0x800,
256, 240, 4, 3 256, 240, 4, 3
@ -2904,11 +2910,11 @@ static struct BurnRomInfo edrandyRomDesc[] = {
STD_ROM_PICK(edrandy) STD_ROM_PICK(edrandy)
STD_ROM_FN(edrandy) STD_ROM_FN(edrandy)
struct BurnDriverD BurnDrvEdrandy = { struct BurnDriver BurnDrvEdrandy = {
"edrandy", NULL, NULL, NULL, "1990", "edrandy", NULL, NULL, NULL, "1990",
"The Cliffhanger - Edward Randy (World ver 3)\0", NULL, "Data East Corporation", "Miscellaneous", "The Cliffhanger - Edward Randy (World ver 3)\0", NULL, "Data East Corporation", "Miscellaneous",
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
0, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0, BDF_GAME_WORKING, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0,
NULL, edrandyRomInfo, edrandyRomName, NULL, NULL, DrvInputInfo, EdrandyDIPInfo, NULL, edrandyRomInfo, edrandyRomName, NULL, NULL, DrvInputInfo, EdrandyDIPInfo,
EdrandyInit, DrvExit, CninjaFrame, EdrandyDraw, DrvScan, &DrvRecalc, 0x800, EdrandyInit, DrvExit, CninjaFrame, EdrandyDraw, DrvScan, &DrvRecalc, 0x800,
256, 240, 4, 3 256, 240, 4, 3
@ -2958,11 +2964,11 @@ static struct BurnRomInfo edrandy2RomDesc[] = {
STD_ROM_PICK(edrandy2) STD_ROM_PICK(edrandy2)
STD_ROM_FN(edrandy2) STD_ROM_FN(edrandy2)
struct BurnDriverD BurnDrvEdrandy2 = { struct BurnDriver BurnDrvEdrandy2 = {
"edrandy2", "edrandy", NULL, NULL, "1990", "edrandy2", "edrandy", NULL, NULL, "1990",
"The Cliffhanger - Edward Randy (World ver 2)\0", NULL, "Data East Corporation", "Miscellaneous", "The Cliffhanger - Edward Randy (World ver 2)\0", NULL, "Data East Corporation", "Miscellaneous",
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0, BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0,
NULL, edrandy2RomInfo, edrandy2RomName, NULL, NULL, DrvInputInfo, EdrandcDIPInfo, NULL, edrandy2RomInfo, edrandy2RomName, NULL, NULL, DrvInputInfo, EdrandcDIPInfo,
EdrandyInit, DrvExit, CninjaFrame, EdrandyDraw, DrvScan, &DrvRecalc, 0x800, EdrandyInit, DrvExit, CninjaFrame, EdrandyDraw, DrvScan, &DrvRecalc, 0x800,
256, 240, 4, 3 256, 240, 4, 3
@ -3012,11 +3018,11 @@ static struct BurnRomInfo edrandy1RomDesc[] = {
STD_ROM_PICK(edrandy1) STD_ROM_PICK(edrandy1)
STD_ROM_FN(edrandy1) STD_ROM_FN(edrandy1)
struct BurnDriverD BurnDrvEdrandy1 = { struct BurnDriver BurnDrvEdrandy1 = {
"edrandy1", "edrandy", NULL, NULL, "1990", "edrandy1", "edrandy", NULL, NULL, "1990",
"The Cliffhanger - Edward Randy (World ver 1)\0", NULL, "Data East Corporation", "Miscellaneous", "The Cliffhanger - Edward Randy (World ver 1)\0", NULL, "Data East Corporation", "Miscellaneous",
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0, BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0,
NULL, edrandy1RomInfo, edrandy1RomName, NULL, NULL, DrvInputInfo, EdrandcDIPInfo, NULL, edrandy1RomInfo, edrandy1RomName, NULL, NULL, DrvInputInfo, EdrandcDIPInfo,
EdrandyInit, DrvExit, CninjaFrame, EdrandyDraw, DrvScan, &DrvRecalc, 0x800, EdrandyInit, DrvExit, CninjaFrame, EdrandyDraw, DrvScan, &DrvRecalc, 0x800,
256, 240, 4, 3 256, 240, 4, 3
@ -3066,11 +3072,11 @@ static struct BurnRomInfo edrandyjRomDesc[] = {
STD_ROM_PICK(edrandyj) STD_ROM_PICK(edrandyj)
STD_ROM_FN(edrandyj) STD_ROM_FN(edrandyj)
struct BurnDriverD BurnDrvEdrandyj = { struct BurnDriver BurnDrvEdrandyj = {
"edrandyj", "edrandy", NULL, NULL, "1990", "edrandyj", "edrandy", NULL, NULL, "1990",
"The Cliffhanger - Edward Randy (Japan ver 3)\0", NULL, "Data East Corporation", "Miscellaneous", "The Cliffhanger - Edward Randy (Japan ver 3)\0", NULL, "Data East Corporation", "Miscellaneous",
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0, BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0,
NULL, edrandyjRomInfo, edrandyjRomName, NULL, NULL, DrvInputInfo, EdrandcDIPInfo, NULL, edrandyjRomInfo, edrandyjRomName, NULL, NULL, DrvInputInfo, EdrandcDIPInfo,
EdrandyInit, DrvExit, CninjaFrame, EdrandyDraw, DrvScan, &DrvRecalc, 0x800, EdrandyInit, DrvExit, CninjaFrame, EdrandyDraw, DrvScan, &DrvRecalc, 0x800,
256, 240, 4, 3 256, 240, 4, 3