Initial commit of sf2yyc, works but not looked at extra graphic roms yet (Barry, JacKc, bonky0013)
This commit is contained in:
parent
cbc1e45a29
commit
c9e15427b4
|
@ -450,7 +450,7 @@ static INT32 CpsLoadOneSf2koryu(UINT8* Tile, INT32 nNum, INT32 nWord, INT32 nShi
|
|||
}
|
||||
|
||||
nRomLen &= ~1; // make sure even
|
||||
|
||||
|
||||
for (i = 0, pt = Tile, pr = Rom; i < nRomLen >> 1; pt += 8) {
|
||||
UINT32 Pix; // Eight pixels
|
||||
UINT8 b;
|
||||
|
@ -524,6 +524,80 @@ static INT32 CpsLoadOneSf2stt(UINT8* Tile, INT32 nNum, INT32 nWord, INT32 nShift
|
|||
return 0;
|
||||
}
|
||||
|
||||
static INT32 CpsLoadSf2yyc2Tiles(UINT8* Tile, INT32 nNum)
|
||||
{
|
||||
UINT8 *Rom = (UINT8*)BurnMalloc(0x200000 * sizeof(UINT8));
|
||||
UINT8 *Temp = (UINT8*)BurnMalloc(0x200000 * sizeof(UINT8));
|
||||
UINT8 *pt = NULL, *pr = NULL;
|
||||
INT32 i;
|
||||
|
||||
if (Rom == NULL) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (BurnLoadRom(Temp + 0x000000, nNum + 0, 1)) {
|
||||
BurnFree(Rom);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (BurnLoadRom(Temp + 0x100000, nNum + 1, 1)) {
|
||||
BurnFree(Rom);
|
||||
return 1;
|
||||
}
|
||||
|
||||
for (i = 0; i < 0x100000; i += 2) {
|
||||
Rom[i + 0x000000] = Temp[i + 0x000000];
|
||||
Rom[i + 0x000001] = Temp[i + 0x100000];
|
||||
Rom[i + 0x100000] = Temp[i + 0x000001];
|
||||
Rom[i + 0x100001] = Temp[i + 0x100001];
|
||||
}
|
||||
|
||||
BurnFree(Temp);
|
||||
|
||||
for (i = 0, pt = Tile, pr = Rom; i < 0x80000; pt += 8) {
|
||||
UINT32 Pix; // Eight pixels
|
||||
UINT8 b;
|
||||
b = *pr++; i++; Pix = SepTable[b];
|
||||
b = *pr++; i++; Pix |= SepTable[b] << 1;
|
||||
|
||||
Pix <<= 0;
|
||||
*((UINT32 *)pt) |= Pix;
|
||||
}
|
||||
|
||||
for (i = 0, pt = Tile + 4, pr = Rom + 0x80000; i < 0x80000; pt += 8) {
|
||||
UINT32 Pix; // Eight pixels
|
||||
UINT8 b;
|
||||
b = *pr++; i++; Pix = SepTable[b];
|
||||
b = *pr++; i++; Pix |= SepTable[b] << 1;
|
||||
|
||||
Pix <<= 0;
|
||||
*((UINT32 *)pt) |= Pix;
|
||||
}
|
||||
|
||||
for (i = 0, pt = Tile, pr = Rom + 0x100000; i < 0x80000; pt += 8) {
|
||||
UINT32 Pix; // Eight pixels
|
||||
UINT8 b;
|
||||
b = *pr++; i++; Pix = SepTable[b];
|
||||
b = *pr++; i++; Pix |= SepTable[b] << 1;
|
||||
|
||||
Pix <<= 2;
|
||||
*((UINT32 *)pt) |= Pix;
|
||||
}
|
||||
|
||||
for (i = 0, pt = Tile + 4, pr = Rom + 0x180000; i < 0x80000; pt += 8) {
|
||||
UINT32 Pix; // Eight pixels
|
||||
UINT8 b;
|
||||
b = *pr++; i++; Pix = SepTable[b];
|
||||
b = *pr++; i++; Pix |= SepTable[b] << 1;
|
||||
|
||||
Pix <<= 2;
|
||||
*((UINT32 *)pt) |= Pix;
|
||||
}
|
||||
|
||||
BurnFree(Rom);
|
||||
return 0;
|
||||
}
|
||||
|
||||
INT32 CpsLoadTiles(UINT8* Tile, INT32 nStart)
|
||||
{
|
||||
// left side of 16x16 tiles
|
||||
|
@ -696,6 +770,18 @@ INT32 CpsLoadTilesSf2mdta(INT32 nStart)
|
|||
return 0;
|
||||
}
|
||||
|
||||
INT32 CpsLoadTilesSf2yyc2(INT32 nStart)
|
||||
{
|
||||
CpsLoadOneBootlegType2(CpsGfx + 0x000000, nStart + 0, 0, 0);
|
||||
CpsLoadOneBootlegType2(CpsGfx + 0x000000, nStart + 1, 0, 1);
|
||||
CpsLoadOneBootlegType2(CpsGfx + 0x000000, nStart + 2, 0, 2);
|
||||
CpsLoadOneBootlegType2(CpsGfx + 0x000000, nStart + 3, 0, 3);
|
||||
// The last two roms are a complete pain, handled by this custom function
|
||||
CpsLoadSf2yyc2Tiles(CpsGfx + 0x400000, nStart + 4);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
INT32 CpsLoadTilesFcrash(INT32 nStart)
|
||||
{
|
||||
CpsLoadTilesBootlegType3(CpsGfx + 0x000000, nStart + 0);
|
||||
|
|
|
@ -45,6 +45,7 @@ INT32 CpsLoadTilesSf2koryu(INT32 nStart);
|
|||
INT32 CpsLoadTilesSf2stt(INT32 nStart);
|
||||
INT32 CpsLoadTilesSf2mdt(INT32 nStart);
|
||||
INT32 CpsLoadTilesSf2mdta(INT32 nStart);
|
||||
INT32 CpsLoadTilesSf2yyc2(INT32 nStart);
|
||||
INT32 CpsLoadTilesFcrash(INT32 nStart);
|
||||
INT32 CpsLoadTilesCawingbl(INT32 nStart);
|
||||
INT32 CpsLoadTilesCaptcommb(INT32 nStart);
|
||||
|
|
|
@ -8449,6 +8449,34 @@ static struct BurnRomInfo Sf2yycRomDesc[] = {
|
|||
STD_ROM_PICK(Sf2yyc)
|
||||
STD_ROM_FN(Sf2yyc)
|
||||
|
||||
static struct BurnRomInfo Sf2yyc2RomDesc[] = {
|
||||
{ "yyc-2-020528", 0x0080000, 0xdb567b66, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // same as sf2m3
|
||||
{ "yyc-3-020528", 0x0080000, 0x95ea597e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // same as sf2m3
|
||||
{ "yyc-4-020528", 0x0020000, 0x1073b7b6, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // same as sf2mdt
|
||||
{ "yyc-5-020528", 0x0020000, 0x924c6ce2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // same as sf2mdt
|
||||
|
||||
{ "yyc-a-920413", 0x0100000, 0x8242621f, BRF_GRA | CPS1_TILES },
|
||||
{ "yyc-c-920413", 0x0100000, 0x0793a960, BRF_GRA | CPS1_TILES },
|
||||
{ "yyc-b-920413", 0x0100000, 0xb0159973, BRF_GRA | CPS1_TILES },
|
||||
{ "yyc-d-920413", 0x0100000, 0x92a8b572, BRF_GRA | CPS1_TILES },
|
||||
{ "yyc-e-920413", 0x0100000, 0x61138469, BRF_GRA | CPS1_TILES },
|
||||
{ "yyc-f-920413", 0x0100000, 0xb800dcdb, BRF_GRA | CPS1_TILES },
|
||||
|
||||
{ "a-15", 0x0010000, 0x6f07d2cb, BRF_PRG | CPS1_Z80_PROGRAM },
|
||||
|
||||
{ "b-16", 0x0040000, 0x6cfffb11, BRF_SND | CPS1_OKIM6295_SAMPLES },
|
||||
|
||||
{ "yyc-6-020528", 0x0020000, 0x94778332, BRF_GRA }, // extra graphics
|
||||
{ "yyc-8-020528", 0x0020000, 0xf95bc505, BRF_GRA },
|
||||
{ "yyc-7-020528", 0x0020000, 0xd1e452d3, BRF_GRA },
|
||||
{ "yyc-9-020528", 0x0020000, 0x155824a9, BRF_GRA },
|
||||
|
||||
{ "c-27", 0x0010000, 0x13ea1c44, BRF_OPT }, // unknown
|
||||
};
|
||||
|
||||
STD_ROM_PICK(Sf2yyc2)
|
||||
STD_ROM_FN(Sf2yyc2)
|
||||
|
||||
static struct BurnRomInfo Sf2koryuRomDesc[] = {
|
||||
{ "u222.rom", 0x0080000, 0x9236a79a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
|
||||
{ "u196.rom", 0x0080000, 0xb23a869d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
|
||||
|
@ -10692,6 +10720,7 @@ static const struct GameConfig ConfigTable[] =
|
|||
{ "sf2th" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
|
||||
{ "sf2tha" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
|
||||
{ "sf2yyc" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
|
||||
{ "sf2yyc2" , HACK_B_2 , mapper_S9263B, 0, NULL },
|
||||
{ "sf2koryu" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
|
||||
{ "sf2koryu2" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
|
||||
{ "sf2amf" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
|
||||
|
@ -13285,6 +13314,17 @@ static INT32 Sf2m8Init()
|
|||
return Sf2m3Init();
|
||||
}
|
||||
|
||||
static INT32 Sf2yyc2Init()
|
||||
{
|
||||
INT32 nRet = 0;
|
||||
|
||||
Cps1GfxLoadCallbackFunction = CpsLoadTilesSf2yyc2;
|
||||
|
||||
nRet = Sf2m3Init();
|
||||
|
||||
return nRet;
|
||||
}
|
||||
|
||||
static INT32 SfzchInit()
|
||||
{
|
||||
INT32 nRet = 0;
|
||||
|
@ -15381,7 +15421,7 @@ struct BurnDriver BurnDrvCpsSf2hfjb2 = {
|
|||
|
||||
struct BurnDriver BurnDrvCpsSf2yyc = {
|
||||
"sf2yyc", "sf2ce", NULL, NULL, "1992",
|
||||
"Street Fighter II' - champion edition (YYC bootleg, 920313 etc)\0", NULL, "Capcom", "CPS1",
|
||||
"Street Fighter II' - champion edition (YYC bootleg set 1, 920313 etc)\0", NULL, "Capcom", "CPS1",
|
||||
NULL, NULL, NULL, NULL,
|
||||
BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
|
||||
NULL, Sf2yycRomInfo, Sf2yycRomName, NULL, NULL, Sf2yycInputInfo, Sf2DIPInfo,
|
||||
|
@ -15389,6 +15429,16 @@ struct BurnDriver BurnDrvCpsSf2yyc = {
|
|||
&CpsRecalcPal, 0x1000, 384, 224, 4, 3
|
||||
};
|
||||
|
||||
struct BurnDriver BurnDrvCpsSf2yyc2 = {
|
||||
"sf2yyc2", "sf2ce", NULL, NULL, "1992",
|
||||
"Street Fighter II' - champion edition (YYC bootleg set 2, 920313 USA)\0", NULL, "Capcom", "CPS1",
|
||||
NULL, NULL, NULL, NULL,
|
||||
BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
|
||||
NULL, Sf2yyc2RomInfo, Sf2yyc2RomName, NULL, NULL, Sf2m3InputInfo, Sf2DIPInfo,
|
||||
Sf2yyc2Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
|
||||
&CpsRecalcPal, 0x1000, 384, 224, 4, 3
|
||||
};
|
||||
|
||||
struct BurnDriver BurnDrvCpsSf2koryu = {
|
||||
"sf2koryu", "sf2ce", NULL, NULL, "1992",
|
||||
"Street Fighter II' - Xiang Long (bootleg set 1, 811102 001)\0", NULL, "Capcom", "CPS1",
|
||||
|
|
Loading…
Reference in New Issue