Jump to content

Kof2003b (bootleg) transparencies !


Recommended Posts

  • Replies 54
  • Created
  • Last Reply

Top Posters In This Topic

ok i added the driver and it compiled fine but when i try to load the rom it just gives me a test screen :D

 

edit: nevermind, i changed the dipswitch and it works fine.

 

funny thing i noticed; the cheath print is back when i played it using mvs japan region normal bios

Edited by Prican25
Link to comment
Share on other sites

I have Updated my Kof2003 drivers for FBA.

 

@Prican25 Good news that you have it working.

 

Please note the 271-s1bl.bin for kof2003b is scrambled, Code is needed so if you have a better S rom then use that, If you need the code please PM me thanks

 

// The King of Fighter's 2003 (Bootleg set 1)

static struct BurnRomInfo kof2003bRomDesc[] = {
{"271-p1bl.bin" , 0x400000, 0x92ed6ee3, 0x10}, //  0 68K code
{"271-p2bl.bin"	, 0x400000, 0x5d3d8bb3, 0x10}, //  1 68k code

{"271-s1bl.bin" , 0x020000, 0x3ba05252,    1}, //  2 Text layer tiles

{"271-c1d.bin"  , 0x1000000, 0xc29acd28,    1}, //  3 Sprite data
{"271-c2d.bin"  , 0x1000000, 0x328e80b1,    1}, //  4
{"271-c3d.bin"  , 0x1000000, 0x020a11f1,    1}, //  5
{"271-c4d.bin"  , 0x1000000, 0x991b5ed2,    1}, //  6
{"271-c5d.bin"  , 0x1000000, 0xc2de8b66,    1}, //  7
{"271-c6d.bin"  , 0x1000000, 0x3ff750db,    1}, //  8

{"271-m1d.bin"  , 0x080000, 0x0e86af8f, 0x10}, //  9 Z80 code

{"271-v1d.bin"  , 0x1000000, 0x2058ec5e,    2}, //  10 Sound data
};

STDROMPICKEXT(kof2003b, kof2003b, neogeo);
STD_ROM_FN(kof2003b);

static unsigned short kof2003b_tbl[0x1000];


unsigned char __fastcall kof2003bReadByteBankSwitch(unsigned int sekAddress)
{
return *(((unsigned char *)kof2003b_tbl)+((sekAddress^1)-0x2fe000));
}


unsigned short __fastcall kof2003bReadWordBankSwitch(unsigned int sekAddress)
{
return kof2003b_tbl[(sekAddress-0x2fe000)/2];
}

static void kof2003bWriteBankSwitch(unsigned int sekAddress,unsigned short wordValue,unsigned short valueMask)
{
int address=(sekAddress-0x2fe000)/2,bankaddress;
kof2003b_tbl[address]=(wordValue&valueMask)|(~valueMask&kof2003b_tbl[address]);
if(address!=0xff8 && address!=0xff9 ) return;
bankaddress=(kof2003b_tbl[0xff8]>>8)|(kof2003b_tbl[0xff9]<<8);
*(((unsigned char *)kof2003b_tbl)+0x1ff0)=0xa0;
*(((unsigned char *)kof2003b_tbl)+0x1ff1)&=0xfe;
*(((unsigned char *)kof2003b_tbl)+0x1ff3)&=0x7f;
SekMapMemory(Neo68KROM02+bankaddress,0x200000,0x2fdfff,SM_ROM);
Neo68KROM01[0x58196]=kof2003b_tbl[0xff9]&0xff;
}

void __fastcall kof2003bWriteWordBankSwitch(unsigned int sekAddress, unsigned short wordValue)
{
unsigned short valueMask=0xffff;
kof2003bWriteBankSwitch(sekAddress,wordValue,valueMask);
}

void __fastcall kof2003bWriteByteBankSwitch(unsigned int sekAddress, unsigned char byteValue)
{
unsigned short wordValue=0,valueMask=0xff;
if(!(sekAddress&1)) {
 wordValue=byteValue<<8;
 valueMask<<=8;
}
else{
 wordValue=byteValue;
}
kof2003bWriteBankSwitch(sekAddress,wordValue,valueMask);
}

void kof2003b_RomExchange()
{
memcpy(Neo68KROM01+0x100000,Neo68KROM01,0x600000);
memcpy(Neo68KROM01,Neo68KROM01+0x700000,0x100000);
memset(Neo68KROM01+0x700000,0,0x100000);
}

static void kof2003bMapHandler()
{
// Install BankSwitch handler
SekMapHandler(5,	0x2fe000, 0x2fffff, SM_READ);
SekSetReadWordHandler(5,  kof2003bReadWordBankSwitch);
SekSetReadByteHandler(5,  kof2003bReadByteBankSwitch);

SekMapHandler(5,	0x2fe000, 0x2fffff, SM_WRITE);
SekSetWriteWordHandler(5, kof2003bWriteWordBankSwitch);
SekSetWriteByteHandler(5, kof2003bWriteByteBankSwitch);
}

static int kof2003bInit()
{
int nRet;

memset(kof2003b_tbl,0,0x2000);

nTextBankswitch=1;
pNeoInitCallback=kof2003b_RomExchange;

nRet=NeoInit();
if(!nRet)
kof2003bMapHandler();
return nRet;
}

struct BurnDriver BurnDrvkof2003b = {
{"kof2003b", "The King of Fighters 2003 ( Bootleg Set 1)", "SNK", "SNK Playmore Corporation", "Neo Geo", "2003", NULL, "neogeo"},
BDF_GAME_WORKING, 2, HARDWARE_SNK_NEOGEO | HARDWARE_SNK_NEWBANKSYSTEM,
NULL, kof2003bRomInfo, kof2003bRomName, neogeoInputInfo, neogeoDIPInfo,
kof2003bInit, NeoExit, NeoFrame, NeoRender, NeoScan, &NeoRecalcPalette,
nNeoScreenWidth, 224, 4, 3
};

// The King of Fighter's 2003 (Bootleg Set 2)

static struct BurnRomInfo kof2003aRomDesc[] = {
{"271-p1bl.bin" , 0x400000, 0x92ed6ee3, 0x10}, //  0 68K code
{"271-p2bl.bin"	, 0x400000, 0x5d3d8bb3, 0x10}, //  1 68k code

{"271t-s1.bin"  , 0x080000, 0x4fb43ddf,    1}, //  2 Text layer tiles

{"271-c1d.bin"  , 0x1000000, 0xc29acd28,    1}, //  3 Sprite data
{"271-c2d.bin"  , 0x1000000, 0x328e80b1,    1}, //  4
{"271-c3d.bin"  , 0x1000000, 0x020a11f1,    1}, //  5
{"271-c4d.bin"  , 0x1000000, 0x991b5ed2,    1}, //  6
{"271-c5d.bin"  , 0x1000000, 0xc2de8b66,    1}, //  7
{"271-c6d.bin"  , 0x1000000, 0x3ff750db,    1}, //  8

{"271-m1d.bin"  , 0x080000, 0x0e86af8f, 0x10}, //  9 Z80 code

{"271-v1d.bin"  , 0x1000000, 0x2058ec5e,    2}, //  10 Sound data
};

STDROMPICKEXT(kof2003a, kof2003a, neogeo);
STD_ROM_FN(kof2003a);

static int kof2003aInit()
{
int nRet;

memset(kof2003b_tbl,0,0x2000);

nTextBankswitch=0;
pNeoInitCallback=kof2003b_RomExchange;

nRet=NeoInit();
if(!nRet)
kof2003bMapHandler();
return nRet;
}

struct BurnDriver BurnDrvkof2003a = {
{"kof2003a", "The King of Fighters 2003 ( Bootleg Set 2 )", "SNK", "SNK Playmore Corporation", "Neo Geo", "2003", "kof2003b", "neogeo"},
BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_SNK_NEOGEO | HARDWARE_SNK_NEWBANKSYSTEM | HARDWARE_SNK_ALTERNATE_TEXT,
NULL, kof2003aRomInfo, kof2003aRomName, neogeoInputInfo, neogeoDIPInfo,
kof2003aInit, NeoExit, NeoFrame, NeoRender, NeoScan, &NeoRecalcPalette,
nNeoScreenWidth, 224, 4, 3
};

Edited by James
Link to comment
Share on other sites

thx for the updated driver james but got a quick question: since compiling this driver and even with the one before it, fba will load the game to a test screen and i have to change a dipswitch in order to get it running; is there something i can do to fix that from happening?

Link to comment
Share on other sites

thx for the updated driver james but got a quick question:  since compiling this driver and even with the one before it, fba will load the game to a test screen and i have to change a dipswitch in order to get it running; is there something i can do to fix that from happening?

In what way does the dip have to be changed ?

Link to comment
Share on other sites

I'm going to assassinate my FBA, won't fscking complie.

No doubt you are missing code thats needed for kof2003b (FBA)

or hes missing components essential to compile FBA (commonly missed is Perl).

Link to comment
Share on other sites

Ok , Maybe he should post the exact error he is getting when he tries to compile FBA. So please K`dash what are the errors you get when you try to compile.

Edited by James
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...