And again wth mslug5b (Real bootleg??)
// Metal Slug 5 (Bootleg)
static struct BurnRomInfo mslug5bRomDesc[] = {
{ "268-p1b.bin", 0x800000, 0x3f1cf3d2, 1 | BRF_ESS | BRF_PRG }, // 0 68K code
{ "268-c1b.bin", 0x800000, 0x969c0d62, 3 | BRF_GRA }, // 1 Sprite data
{ "268-c2b.bin", 0x800000, 0xc69ae867, 3 | BRF_GRA }, // 2
{ "268-c3b.bin", 0x800000, 0xd7beaeaf, 3 | BRF_GRA }, // 3
{ "268-c4b.bin", 0x800000, 0xe1b1131b, 3 | BRF_GRA }, // 4
{ "268-c5b.bin", 0x800000, 0x2fa1a5ad, 3 | BRF_GRA }, // 5
{ "268-c6b.bin", 0x800000, 0x6de89589, 3 | BRF_GRA }, // 6
{ "268-c7b.bin", 0x800000, 0x97bd0c0a, 3 | BRF_GRA }, // 7
{ "268-c8b.bin", 0x800000, 0xc0d5bc20, 3 | BRF_GRA }, // 8
{ "268-m1b.bin", 0x020000, 0x6FA01C9A, 4 | BRF_ESS | BRF_PRG }, // 9 Z80 code
{ "268-v1b.bin", 0x400000, 0xc3540e0d, 5 | BRF_SND }, // 10 Sound data
{ "268-v2b.bin", 0x400000, 0x077bd2f4, 5 | BRF_SND }, // 11
{ "268-v3b.bin", 0x400000, 0x39b14567, 5 | BRF_SND }, // 12
{ "268-v4b.bin", 0x400000, 0x969ff3b2, 5 | BRF_SND }, // 13
};
STDROMPICKEXT(mslug5b, mslug5b, neogeo);
STD_ROM_FN(mslug5b);
// Based on code provided by BMS888 and Neoaethyr, ported by IQ_132
void __fastcall mslug5b_bankswitch_w(unsigned int offset, unsigned short data)
{
if (offset == 0x2ffff2)
{
data = (data >> 12);
if (data == 2)
data = 3;
else
if (data == 3)
data = 2;
SekMapMemory(Neo68KROM+data*0x100000, 0x200000, 0x2fdfff, SM_ROM);
}
}
static int mslug5bInit()
{
int nRet = NeoInit();
if (nRet == 0)
{
SekMapHandler(5, 0x2ffff0, 0x2fffff, SM_WRITE);
SekSetWriteWordHandler(5, mslug5b_bankswitch_w);
}
return nRet;
}
struct BurnDriver BurnDrvmslug5b = {
"mslug5b", "mslug5", "neogeo", "2003",
"Metal Slug 5 (Bootleg)\0", NULL, "SNK Playmore Corporation", "Neo Geo",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_BOOTLEG | BDF_CLONE, 2, HARDWARE_SNK_NEOGEO,
NULL, mslug5bRomInfo, mslug5bRomName, neogeoInputInfo, neogeoDIPInfo,
mslug5bInit, NeoExit, NeoFrame, NeoRender, NeoScan, &NeoRecalcPalette,
nNeoScreenWidth, 224, 4, 3
};