diff --git a/src/burn/drv/capcom/cps.cpp b/src/burn/drv/capcom/cps.cpp index 1be5937eb..ab450a5d8 100644 --- a/src/burn/drv/capcom/cps.cpp +++ b/src/burn/drv/capcom/cps.cpp @@ -1472,6 +1472,39 @@ INT32 Cps2LoadTilesSIM(UINT8* Tile, INT32 nStart) return 0; } +INT32 Cps2LoadTiles19xxjr(UINT8* Tile, INT32 nStart) +{ + // left + Cps2LoadOne(Tile + 0x000000, nStart + 0, 1, 0); + Cps2LoadOne(Tile + 0x000000, nStart + 1, 1, 2); + + // right + Cps2LoadOne(Tile + 0x000004, nStart + 2, 1, 0); + Cps2LoadOne(Tile + 0x000004, nStart + 3, 1, 2); + + // left + Cps2LoadOne(Tile + 0x800000, nStart + 4, 1, 0); + Cps2LoadOne(Tile + 0xa00000, nStart + 5, 1, 0); + Cps2LoadOne(Tile + 0xc00000, nStart + 6, 1, 0); + Cps2LoadOne(Tile + 0xe00000, nStart + 7, 1, 0); + Cps2LoadOne(Tile + 0x800000, nStart + 8, 1, 2); + Cps2LoadOne(Tile + 0xa00000, nStart + 9, 1, 2); + Cps2LoadOne(Tile + 0xc00000, nStart + 10, 1, 2); + Cps2LoadOne(Tile + 0xe00000, nStart + 11, 1, 2); + + // right + Cps2LoadOne(Tile + 0x800004, nStart + 12, 1, 0); + Cps2LoadOne(Tile + 0xa00004, nStart + 13, 1, 0); + Cps2LoadOne(Tile + 0xc00004, nStart + 14, 1, 0); + Cps2LoadOne(Tile + 0xe00004, nStart + 15, 1, 0); + Cps2LoadOne(Tile + 0x800004, nStart + 16, 1, 2); + Cps2LoadOne(Tile + 0xa00004, nStart + 17, 1, 2); + Cps2LoadOne(Tile + 0xc00004, nStart + 18, 1, 2); + Cps2LoadOne(Tile + 0xe00004, nStart + 19, 1, 2); + + return 0; +} + INT32 Cps2LoadTilesGigaman2(UINT8 *Tile, UINT8 *pSrc) { UINT8 *pt = Tile; @@ -1649,6 +1682,19 @@ static INT32 CpsGetROMs(bool bLoad) i++; } } + + if ((ri.nType & 0x0f) == CPS2_GFX_19XXJR) { + if (bLoad) { + Cps2LoadTiles19xxjr(CpsGfxLoad, i); + CpsGfxLoad += (nGfxMaxSize == ~0U ? ri.nLen : nGfxMaxSize) * 20; + i += 20; + } else { + nGfxMaxSize = 0xcd000; + nCpsGfxLen += ri.nLen; + nGfxNum++; + i++; + } + } if ((ri.nType & 0x0f) == CPS2_PRG_Z80) { if (bLoad) { @@ -1708,7 +1754,7 @@ static INT32 CpsGetROMs(bool bLoad) if (nGfxMaxSize != ~0U) { nCpsGfxLen = nGfxNum * nGfxMaxSize; } - + #if 1 && defined FBA_DEBUG if (!nCpsCodeLen) { bprintf(PRINT_IMPORTANT, _T(" - 68K ROM size:\t0x%08X (Decrypted with key)\n"), nCpsRomLen); diff --git a/src/burn/drv/capcom/cps.h b/src/burn/drv/capcom/cps.h index 3cc1ab3fd..c6be9c87f 100644 --- a/src/burn/drv/capcom/cps.h +++ b/src/burn/drv/capcom/cps.h @@ -480,6 +480,7 @@ INT32 Sf2mdtScanSound(INT32 nAction, INT32 *pnMin); #define CPS2_GFX_SIMM 6 #define CPS2_GFX_SPLIT4 7 #define CPS2_GFX_SPLIT8 8 +#define CPS2_GFX_19XXJR 9 #define CPS2_PRG_Z80 10 #define CPS2_QSND 12 #define CPS2_QSND_SIMM 13 diff --git a/src/burn/drv/capcom/cps2_crpt.cpp b/src/burn/drv/capcom/cps2_crpt.cpp index a96b9f12f..2a0125db8 100644 --- a/src/burn/drv/capcom/cps2_crpt.cpp +++ b/src/burn/drv/capcom/cps2_crpt.cpp @@ -892,6 +892,7 @@ static const struct game_keys keys_table[] = { "19xxa", { 0xcce74cf5,0xb7da3711 }, 0x200000 }, // 0C81 0095 1101 cmpi.l #$00951101,D1 { "19xxj", { 0x00115df8,0x000ff87e }, 0x200000 }, // 0C81 0095 1101 cmpi.l #$00951101,D1 { "19xxjr1", { 0x00115df8,0x000ff87e }, 0x200000 }, // 0C81 0095 1101 cmpi.l #$00951101,D1 + { "19xxjr", { 0x00115df8,0x000ff87e }, 0x200000 }, // 0C81 0095 1101 cmpi.l #$00951101,D1 { "19xxh", { 0x5d49bafa,0xf7216c9f }, 0x200000 }, // 0C81 0095 1101 cmpi.l #$00951101,D1 { "19xxb", { 0xe5f9476a,0x2dfb623f }, 0x200000 }, // 0C81 0095 1101 cmpi.l #$00951101,D1 { "ddsom", { 0x87889abc,0xd81f5f63 }, 0x100000 }, // 0C81 1966 0419 cmpi.l #$19660419,D1 diff --git a/src/burn/drv/capcom/d_cps2.cpp b/src/burn/drv/capcom/d_cps2.cpp index 4daefcc09..87da1f7a6 100644 --- a/src/burn/drv/capcom/d_cps2.cpp +++ b/src/burn/drv/capcom/d_cps2.cpp @@ -1,7 +1,5 @@ #include "cps.h" -// Input Definitions - INT32 Cps2Volume = 39; INT32 Cps2DisableDigitalVolume = 0; UINT8 Cps2VolUp; @@ -14,6 +12,8 @@ UINT16 Cps2VolumeStates[40] = { 0xe050, 0xe048, 0xe044, 0xe042, 0xe041, 0xe030, 0xe028, 0xe024, 0xe022, 0xe021 }; +// Input Definitions + static struct BurnInputInfo Cps2FightingInputList[] = { {"P1 Coin" , BIT_DIGITAL , CpsInp020+4, "p1 coin" }, {"P1 Start" , BIT_DIGITAL , CpsInp020+0, "p1 start" }, @@ -978,6 +978,49 @@ static struct BurnRomInfo Ninexxjr1RomDesc[] = { STD_ROM_PICK(Ninexxjr1) STD_ROM_FN(Ninexxjr1) +static struct BurnRomInfo NinexxjrRomDesc[] = { + { "19xj.03b", 0x080000, 0xbcad93dd, CPS2_PRG_68K | BRF_ESS | BRF_PRG }, + { "19xj.04b", 0x080000, 0x931882a1, CPS2_PRG_68K | BRF_ESS | BRF_PRG }, + { "19xj.05b", 0x080000, 0xe7eeddc4, CPS2_PRG_68K | BRF_ESS | BRF_PRG }, + { "19xj.06b", 0x080000, 0xf27cd6b8, CPS2_PRG_68K | BRF_ESS | BRF_PRG }, + { "19xj.07", 0x080000, 0x61c0296c, CPS2_PRG_68K | BRF_ESS | BRF_PRG }, // 19x.07 + + { "19x-69.4j", 0x080000, 0x427aeb18, CPS2_GFX_19XXJR | BRF_GRA }, // 19x.13m + { "19x-59.4d", 0x080000, 0x63bdbf54, CPS2_GFX_19XXJR | BRF_GRA }, // 19x.15m + { "19x-79.4m", 0x080000, 0x2dfe18b5, CPS2_GFX_19XXJR | BRF_GRA }, // 19x.17m + { "19x-89.4p", 0x080000, 0xcbef9579, CPS2_GFX_19XXJR | BRF_GRA }, // 19x.19m + { "19x-73.8j", 0x080000, 0x8e81f595, CPS2_GFX_19XXJR | BRF_GRA }, // 19x.14m + { "19x-74.9j", 0x080000, 0x6d7ad22e, CPS2_GFX_19XXJR | BRF_GRA }, // 19x.14m + { "19x-75.10j", 0x080000, 0xcb1a1b6a, CPS2_GFX_19XXJR | BRF_GRA }, // 19x.14m + { "19x-76.11j", 0x080000, 0x26fc2b08, CPS2_GFX_19XXJR | BRF_GRA }, // 19x.14m + { "19x-63.8d", 0x080000, 0x6f8b045e, CPS2_GFX_19XXJR | BRF_GRA }, // 19x.16m + { "19x-64.9d", 0x080000, 0xccd5725a, CPS2_GFX_19XXJR | BRF_GRA }, // 19x.16m + { "19x-65.10d", 0x080000, 0x6cf6db35, CPS2_GFX_19XXJR | BRF_GRA }, // 19x.16m + { "19x-66.11d", 0x080000, 0x16115dd3, CPS2_GFX_19XXJR | BRF_GRA }, // 19x.16m + { "19x-83.8m", 0x080000, 0xc11f88c1, CPS2_GFX_19XXJR | BRF_GRA }, // 19x.18m + { "19x-84.9m", 0x080000, 0x68cc9cd8, CPS2_GFX_19XXJR | BRF_GRA }, // 19x.18m + { "19x-85.10m", 0x080000, 0xf213666b, CPS2_GFX_19XXJR | BRF_GRA }, // 19x.18m + { "19x-86.11m", 0x080000, 0x574e0473, CPS2_GFX_19XXJR | BRF_GRA }, // 19x.18m + { "19x-93.8p", 0x080000, 0x9fad3c55, CPS2_GFX_19XXJR | BRF_GRA }, // 19x.20m + { "19x-94.9p", 0x080000, 0xe10e252c, CPS2_GFX_19XXJR | BRF_GRA }, // 19x.20m + { "19x-95.10p", 0x080000, 0x2b86fa67, CPS2_GFX_19XXJR | BRF_GRA }, // 19x.20m + { "19x-96.11p", 0x080000, 0xae6eb692, CPS2_GFX_19XXJR | BRF_GRA }, // 19x.20m + + { "19x-01.1a", 0x020000, 0xef55195e, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG }, // 19x.01 + + { "19x-51.6a", 0x080000, 0xe9cd7780, CPS2_QSND | BRF_SND }, // 19x.11m + { "19x-52.7a", 0x080000, 0xb27b91a8, CPS2_QSND | BRF_SND }, // 19x.11m + { "19x-53.8a", 0x080000, 0x2e563ee2, CPS2_QSND | BRF_SND }, // 19x.11m + { "19x-54.9a", 0x080000, 0xf47c1f24, CPS2_QSND | BRF_SND }, // 19x.11m + { "19x-55.10a", 0x080000, 0x0b1af6e0, CPS2_QSND | BRF_SND }, // 19x.12m + { "19x-56.11a", 0x080000, 0xdfa8819f, CPS2_QSND | BRF_SND }, // 19x.12m + { "19x-57.12a", 0x080000, 0x229ba777, CPS2_QSND | BRF_SND }, // 19x.12m + { "19x-58.13a", 0x080000, 0xc7dceba4, CPS2_QSND | BRF_SND }, // 19x.12m +}; + +STD_ROM_PICK(Ninexxjr) +STD_ROM_FN(Ninexxjr) + static struct BurnRomInfo Nine44RomDesc[] = { { "nffu.03", 0x080000, 0x9693cf8f, CPS2_PRG_68K | BRF_ESS | BRF_PRG }, { "nff.04", 0x080000, 0xdba1c66e, CPS2_PRG_68K | BRF_ESS | BRF_PRG }, @@ -7367,7 +7410,7 @@ static INT32 DrvExit() Ssf2t = 0; Ssf2tb = 0; Xmcota = 0; - + Cps2Volume = 39; Cps2DisableDigitalVolume = 0; @@ -7443,6 +7486,16 @@ struct BurnDriver BurnDrvCps19xxjr1 = { &CpsRecalcPal, 0x1000, 224, 384, 3, 4 }; +struct BurnDriver BurnDrvCps19xxjr = { + "19xxjr", "19xx", NULL, NULL, "1996", + "19XX - the war against destiny (960104 Japan, Rent version)\0", NULL, "Capcom", "CPS2", + NULL, NULL, NULL, NULL, + BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_CAPCOM_CPS2, GBF_VERSHOOT, FBF_19XX, + NULL, NinexxjrRomInfo, NinexxjrRomName, NULL, NULL, NineXXInputInfo, NULL, + Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan, + &CpsRecalcPal, 0x1000, 224, 384, 3, 4 +}; + struct BurnDriver BurnDrvCps1944 = { "1944", NULL, NULL, NULL, "2000", "1944 - the loop master (000620 USA)\0", NULL, "Capcom / 8ing / Raizing", "CPS2",