Final Burn Neo > FBN Development

kof2003 PCB BIOS support.

<< < (2/5) > >>

Shoometsu:

--- Quote from: BisonSAS ---in neo_run.cpp
find:

--- Code: --- uPD4990AInit(12000000);
--- End code ---


replace:

--- Code: --- uPD4990AInit((int)((long long)12000000 * nBurnCPUSpeedAdjust / 256)); // This is used to avoid calendar errors while overclockng a neogeo game
--- End code ---



See ya! :D
--- End quote ---


thnkx, working XD

bms888:

--- Quote from: FerchogtX ---thanks a lot man!!! this is great... Only a question: this patches the calendar and the booting green screen?

--- Code: --- // Implemented PCB BIOS by BisonSAS
// Patch out the BIOS NEO-GEO MVS SYSTEM (JAPAN/J3) Ver. 6
if (nBIOS == 3) {
/* PCB BIOS patch */
*((unsigned short*)(Neo68KBIOS + 0x010AA4)) = 0x4E71;
*((unsigned short*)(Neo68KBIOS + 0x010AA6)) = 0x4E71;
*((unsigned short*)(Neo68KBIOS + 0x010D86)) = 0x4E71;
*((unsigned short*)(Neo68KBIOS + 0x010D88)) = 0x4E71;
}
--- End code ---
Just for know, great work man
See ya!!!!! :D
--- End quote ---

patches the calendar and the booting green screen? ^_^


in old mame (ex: mame32K),you just change your src code from this


--- Code: ---DRIVER_INIT( kof2003 )
{
kof2003_px_decrypt();
kof2003_sx_decrypt();

[COLOR=Blue] neogeo_fix_bank_type = 2;
init_neogeo();[/COLOR]

install_mem_read16_handler(0, 0x2fe000, 0x2fffff, MRA16_RAM );
install_mem_write16_handler(0, 0x2fe000, 0x2fffff, MWA16_RAM );

install_mem_read16_handler(0, 0x2fffe0, 0x2fffef, mv0_prot_r );
install_mem_write16_handler(0, 0x2fffe0, 0x2fffef, mv0_prot_w );

install_mem_read16_handler(0, 0x2ffff0, 0x2ffff3, mv0_bankswitch_r );
install_mem_write16_handler(0, 0x2ffff0, 0x2ffff3, mv0_bankswitch_w );

install_mem_read16_handler(0, 0xc00000, 0xc3ffff, MRA16_BANK3 );  // 256k bios
}
--- End code ---


to this:

--- Code: ---DRIVER_INIT( kof2003 )
{
kof2003_px_decrypt();
kof2003_sx_decrypt();

install_mem_read16_handler(0, 0x2fe000, 0x2fffff, MRA16_RAM );
install_mem_write16_handler(0, 0x2fe000, 0x2fffff, MWA16_RAM );

install_mem_read16_handler(0, 0x2fffe0, 0x2fffef, mv0_prot_r );
install_mem_write16_handler(0, 0x2fffe0, 0x2fffef, mv0_prot_w );

install_mem_read16_handler(0, 0x2ffff0, 0x2ffff3, mv0_bankswitch_r );
install_mem_write16_handler(0, 0x2ffff0, 0x2ffff3, mv0_bankswitch_w );

install_mem_read16_handler(0, 0xc00000, 0xc3ffff, MRA16_BANK3 );  // 256k bios

[COLOR=Red] neogeo_fix_bank_type = 2;
init_neogeo();[/COLOR]
}
--- End code ---

bms888:

--- Quote from: BisonSAS ---Here's the PCB BIOS support for kof2003. :)

in neo_run.cpp
find:

--- Code: --- Neo68KBIOS = Next; Next += 0x020000; // 68K boardROM
--- End code ---


replace:

--- Code: --- Neo68KBIOS = Next; Next += nCodeSize; // 68K boardROM
--- End code ---



find:

--- Code: ---neogeoDIPInfo
--- End code ---


replace:

--- Code: ---neopcbDIPInfo
--- End code ---



Tested using kof2k3ba ;)
 
See ya!! :D
--- End quote ---


maybe not add neopcbDIPInfo,^_^

JiMMy_PaGe:
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)


--- Code: ---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"},
};
--- End code ---



--- Code: ---
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);
--- End code ---


Now we just have to wait until the encrypted c and m come out (it will be easy)

James33:
Yes I allready knew that .

Nice job on the code :)

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version