This isn't picking up at all.
What I'm doing wrong?
This part already added.
Add this to d_neogeo.cpp
// Power Instinct Matrimelee
static struct BurnRomInfo matrimRomDesc[] = {
{"266-p1.bin", 0x100000, 0x5D4C2DC7, 0x10}, // 0 68K code
{"266-p2.bin", 0x400000, 0xa14b1906, 0x10}, // 1
{"266-c1.bin", 0x800000, 0x505f4e30, 1}, // 2 Sprite data
{"266-c2.bin", 0x800000, 0x3cb57482, 1}, // 3
{"266-c3.bin", 0x800000, 0xf1cc6ad0, 1}, // 4
{"266-c4.bin", 0x800000, 0x45b806b7, 1}, // 5
{"266-c5.bin", 0x800000, 0x2584945b, 1}, // 6
{"266-c6.bin", 0x800000, 0x281cb939, 1}, // 7
{"266-c7.bin", 0x800000, 0x4b71f780, 1}, // 8
{"266-c8.bin", 0x800000, 0x29873d33, 1}, // 9
//{"266-m1d.bin", 0x020000, 0x456C3E6C, 0x10}, // 10 Z80 code (correct dump?)
{"266-m1d.bin", 0x020000, 0x0, 0x10}, // 10 Z80 code
{"266-v1d.bin", 0x400000, 0x352B0A07, 2}, // 11 Sound data
{"266-v2dd.bin", 0x400000, 0x1e9bd59e, 2}, // 12
{"266-v3d.bin", 0x400000, 0xE8362FCC, 2}, // 13
{"266-v4dd.bin", 0x400000, 0xc8c79b19, 2}, // 14
};
STDROMPICKEXT(matrim, matrim, neogeo);
STD_ROM_FN(matrim);
static void matrimDecrypt() // Converted to FBA code by IQ_132 (bbs.romshare.net)
{
unsigned char* src = Neo68KROM01+0x100000;
unsigned char* dst = (unsigned char*)malloc(0x400000);
int sec[] = {0x100000,0x280000,0x300000,0x180000,0x000000,0x380000,0x200000,0x080000};
if (dst)
{
memcpy(dst,src,0x400000);
for(int i = 0; i < 8; ++i)
{
memcpy(src+i*0x80000,dst+sec[i],0x80000);
}
free(dst);
}
*((unsigned short*)(Neo68KROM01 + 0x01050)) = 0x4E75; // AES Patch
}
static int matrimInit()
{
nNeoTextROMSize = 0x080000;
nNeoProtectionXor = 0x6a;
pNeoInitCallback = matrimDecrypt;
return NeoInit();
}
struct BurnDriver BurnDrvmatrim = {
{"matrim", "Matrimelee", NULL, "Noise Factory", "Neo Geo", "2002", NULL, "neogeo"},
BDF_GAME_WORKING | BDF_LOCKED, 2, HARDWARE_SNK_NEOGEO | HARDWARE_SNK_ENCRYPTED_B | HARDWARE_SNK_ALTERNATE_TEXT,
NULL, matrimRomInfo, matrimRomName, neogeoInputInfo, neogeoDIPInfo,
matrimInit, NeoExit, NeoFrame, NeoRender, NeoScan, &NeoRecalcPalette,
nNeoScreenWidth, 224, 4, 3
};
This part might be wrong or can't go after.
src/burn/neogeo/neo_run.cpp
Find this:
if (BurnDrvGetHardwareCode() & HARDWARE_SNK_SWAPV) {
for (int i = 0; i < 0x00200000; i++) {
unsigned char n = YM2610ADPCMAROM[i];
YM2610ADPCMAROM[i] = YM2610ADPCMAROM[0x00200000 + i];
YM2610ADPCMAROM[0x00200000 + i] = n;
}
}
}
Add this after
// Descramble matrimelee's V roms
if (!strcmp(BurnDrvText(0), "matrim")) {
BurnByteswap(YM2610ADPCMAROM+0x400000, 0x400000); // byteswap V2
BurnByteswap(YM2610ADPCMAROM+0xc00000, 0x400000); // byteswap V4
}
I already try though.