I've discovered some intersting thing on kof2k3 bios:
If u split 271-bios.bin in two parts u will see:
Part 1 128kb crc 5172FF3B = jap version 6 bios
Part 2 128kb crc B5C742B2 = part of kof2003 68k rom
So if the first part its a bios, u just have to change it for bios u want:
like:
sp-e.sp1 + part 2 = 271-osuh.bin crc C6ED9E25
vs-bios.rom + part2 = 271-osah.bin crc BBAA398F
uni-bios.20 + part2 = 271-unibios.bin crc CECAD563
So now theres no need to use that whole code to run just one bios, u can use juse it (i renamed the bios name, just to make it not confused, but u can change it whatever u want)
static struct BurnDIPInfo neopcbDIPList[] = {
// Offset
{0x19, 0xF0, 0x00, 0x00, NULL},
// Defaults
{0x00, 0xFF, 0xFF, 0x00, NULL},
{0x01, 0xFF, 0x7F, 0x00, NULL},
// Fake DIPs
{0x02, 0xFF, 0xFF, 0x86, NULL},
{0, 0xFE, 0, 2, "Autofire"},
{0x00, 0x01, 0x04, 0x00, "Off"},
{0x00, 0x01, 0x04, 0x04, "On"},
// DIP 1
{0, 0xFE, 0, 2, "Setting mode"},
{0x00, 0x01, 0x01, 0x00, "Off"},
{0x00, 0x01, 0x01, 0x01, "On"},
// 1 or 2 coin slots
{0, 0xFE, 0, 2, "Coin chutes"},
{0x00, 0x02, 0x02, 0x00, "1"},
{0x02, 0x00, 0x3F, 0x06, NULL},
{0x00, 0x02, 0x02, 0x02, "2"},
{0x02, 0x00, 0x3F, 0x06, NULL},
// 2 or 4 coin slots
{0, 0xFE, 0, 2, "Coin chutes"},
{0x00, 0x82, 0x02, 0x00, "2"},
{0x02, 0x00, 0x3F, 0x06, NULL},
{0x00, 0x82, 0x02, 0x02, "4"},
{0x02, 0x00, 0x3F, 0x06, NULL},
{0, 0xFE, 0, 5, "Commmunicaton"},
{0x00, 0x01, 0x38, 0x00, "Disabled"},
{0x00, 0x01, 0x38, 0x08, "Setting 1"},
{0x00, 0x01, 0x38, 0x10, "Setting 2"},
{0x00, 0x01, 0x38, 0x18, "Setting 3"},
{0x00, 0x01, 0x38, 0x20, "Setting 4"},
{0x00, 0x01, 0x38, 0x28, "Setting 5"},
{0x00, 0x01, 0x38, 0x30, "Setting 6"},
{0x00, 0x01, 0x38, 0x38, "Setting 7"},
{0, 0xFE, 0, 2, "Free play"},
{0x00, 0x01, 0x40, 0x00, "Off"},
{0x00, 0x01, 0x40, 0x40, "On"},
{0, 0xFE, 0, 2, "Stop mode"},
{0x00, 0x01, 0x80, 0x00, "Off"},
{0x00, 0x01, 0x80, 0x80, "On"},
// Fake DIPs
// Memory card
{0, 0xFD, 0, 2, "Memory card"},
{0x02, 0x01, 0x80, 0x80, "Writable"},
{0x02, 0x01, 0x80, 0x00, "Write-protected"},
// MVS/AES system
{0, 0xFD, 0, 2, NULL},
{0x02, 0x02, 0x04, 0x04, "MVS system"},
{0x02, 0x00, 0x30, 0x00, NULL},
{0x02, 0x02, 0x04, 0x00, "AES system"},
{0x02, 0x00, 0x30, 0x00, NULL},
// Region
{0, 0xFD, 0, 3, "Region"},
{0x02, 0x02, 0x03, 0x00, "Japan"},
{0x02, 0x00, 0x30, 0x00, NULL},
{0x02, 0x02, 0x03, 0x01, "USA"},
{0x02, 0x00, 0x30, 0x00, NULL},
{0x02, 0x02, 0x03, 0x02, "Asia / Europe"},
{0x02, 0x00, 0x30, 0x00, NULL},
{0x02, 0x02, 0x03, 0x03, "Japan"},
{0x02, 0x00, 0x30, 0x00, NULL},
// Custom BIOS
{0, 0xFD, 0, 3, NULL},
{0x02, 0x01, 0x30, 0x00, "Normal BIOS"},
{0x02, 0x01, 0x30, 0x10, "Debug BIOS"},
{0x02, 0x01, 0x30, 0x20, "Universe BIOS"},
};
static struct BurnRomInfo neopcbRomDesc[] = {
{"271-osjd.bin", 0x040000, 0xc521b5bc, 0xD0}, // 68K BIOS (JP, MVS, 3 slot, version 6, supports kof2003 PCB)
{"271-osuh.bin", 0x040000, 0xC6ED9E25, 0xD0}, // 68K BIOS (US, MVS, 6 slot, version 1, supports kof2003 PCB)
{"271-osah.bin", 0x040000, 0xBBAA398F, 0x50}, // 68K BIOS (AS, MVS, ? slot, version 3, supports kof2003 PCB)
{"", 0, 0, 0},
{"", 0, 0, 0},
{"", 0, 0, 0},
{"271-aes.bin",0x040000, 0xE8B1F6F4, 0xD0}, // 6 68K BIOS (AS, AES)
{"", 0, 0, 0},
{"271-debug.bin",0x040000, 0x31413A92, 0xD0}, // 8 68K BIOS (JP, devkit)
{"", 0, 0, 0},
{"", 0, 0, 0},
{"", 0, 0, 0},
{"271-unibios.bin",0x040000, 0xCECAD563, 0xD0}, // C Universe BIOS (v2.0)
{"", 0, 0, 0},
{"", 0, 0, 0},
{"", 0, 0, 0},
{"sm1.sm1", 0x020000, 0x97Cf998B, 0x10}, // 10 Z80 program
{"", 0, 0, 0},
{"", 0, 0, 0},
{"", 0, 0, 0},
{"sfix.sfx", 0x020000, 0x354029FC, 1}, // 14 Text layer tiles
{"", 0, 0, 0},
{"", 0, 0, 0},
{"", 0, 0, 0},
{"000-lo.lo", 0x010000, 0xE09E253C, 1}, // 18 Zoom table
};
STD_ROM_PICK(neopcb);
STD_ROM_FN(neopcb);
Now we just have to wait until the encrypted c and m come out (it will be easy)