Jump to content

Recommended Posts

Posted

Today, I found the missing 269-m1d rom and confirmed that svcchaos and svchaosa are working. Then, sorted out the mess with kof2k4se various versions, and kept 2 of them. Then, fixed a mistake with kof2k4ex and it now works.

 

Currently battling with some obscure supposedly decrypted kof2003 variant.

  • Replies 70
  • Created
  • Last Reply

Top Posters In This Topic

Posted
While watching kof10th attract mode, I discovered that the neogeo/snk screen is corrupted. Since my new kf10thud uses exactly the same c roms without problems, the fault must lie either in the p1-program, or in the driver. This needs to be investigated.

 

That's actually a problem with the S data for those games. The S data that is called during the bios loading is used for the power bars (I think ^^).

Posted

Yes of course, I wasn't thinking straight, the "NEOGEO" comes from C and the rest from S. In kof10th there is no S rom, the data has to be pulled out of the P roms. I've been experimenting, and the power bars are definitely mixed up with the problem. On your forum I've left a request if you can help me. It will quickly let me know if this problem can be fixed.

Posted

Yes, it is the same set. There are no corruptions in Kawaks.

 

In Kawaks, the demo fight sequence goes for 14 seconds (on the counter); in Mame it lasts 30 seconds. Weird.

Posted

yay! that's one game I'm kinda up to date with

 

what about kof2k4spe? are you using the kawaks version of that too?

Posted

I have two versions that use completely different rom sets, they run exactly the same without problems.

 

One of the sets is the same as Kawaks except for the V roms.

Posted

Progress report:

 

Found lotr (Jonas Indiana & the Lost Temple of Ra), added, working (its a buggy beta).

 

Found a completely decrypted Pochi & Nyaa, working. After renaming the roms, it also works in NRX.

 

After some searching and shuffling, got kof2003b working.

 

Found the missing roms for kof10thu, it works.

 

Used tiger1020x's kof2k1rp driver, works well.

 

Got kof2k4ex and kof2k4mp working.

 

Decided it was too hard to fix kof10th, either the code needs lots of patches or the memory needs banking. This is beyond my capabilities.

 

kf2k2pls, runs but the flashing PLUS is corrupted. Help!

 

kf2k2sp (Super, not sure of the driver name), has encryption and I'm stumped. Help!

 

ct2k3sp runs, but the screen is obscured by lots of green and yellow things. The gfx are perfect but mostly are covered over by these things. Help again! Please!

Posted (edited)
Decided it was too hard to fix kof10th, either the code needs lots of patches or the memory needs banking. This is beyond my capabilities.

 

I'm working on that a little, maybe I'll get it ^^

 

kf2k2pls, runs but the flashing PLUS is corrupted. Help!

 

The text (s) rom is encrypted, I'll look for that code later.

 

kf2k2sp (Super, not sure of the driver name), has encryption and I'm stumped. Help!

 

Are you using these roms?

"265-p1sr.bin", 0x100000, CRC(ebedae17)?

"265-s1sr.bin", 0x020000, CRC(fecbb589)?

 

If so, this code should work for you:

 

DRIVER_INIT( kof2k2sr )
{
int i;
UINT8 *rom = memory_region( REGION_GFX1 );
int rom_size = memory_region_length( REGION_GFX1 );

for( i = 0; i < rom_size; i++ )
{
 rom[ i ] = BITSWAP8( rom[ i ], 7, 6, 0, 4, 3, 2, 1, 5 );
}

init_neogeo();
}

 

ct2k3sp runs, but the screen is obscured by lots of green and yellow things. The gfx are perfect but mostly are covered over by these things. Help again! Please!

 

That game requires some patches if I remember correctly, try using the ones from regular cthd2003

Edited by iq_132
Posted

Added the remaining homebrews (frogfest, npong10, poknight, columnsn, beast) and they all ran. Frogfest and Beast don't appear to do anything useful; Poknight and Npong10 worked but are boring; and Columnsn was the best of the lot, once I worked out the rules. Its only problem is when it's game over you can't see your score.

 

kf2k2sp (Super, not sure of the driver name), has encryption and I'm stumped. Help!

 

Are you using these roms?

"265-p1sr.bin", 0x100000, CRC(ebedae17)?

"265-s1sr.bin", 0x020000, CRC(fecbb589)?

 

If so, this code should work for you:

 

DRIVER_INIT( kof2k2sr )
{
int i;
UINT8 *rom = memory_region( REGION_GFX1 );
int rom_size = memory_region_length( REGION_GFX1 );

for( i = 0; i < rom_size; i++ )
{
 rom[ i ] = BITSWAP8( rom[ i ], 7, 6, 0, 4, 3, 2, 1, 5 );
}

init_neogeo();
}

I should have said, the p1 rom was encrypted. I used "265-p1super", CRC (ab683690). I changed over to what you suggested, then realised almost all the roms were wrong. After fixing that, and using your driver_init, it worked like a charm.

 

ct2k3sp runs, but the screen is obscured by lots of green and yellow things. The gfx are perfect but mostly are covered over by these things. Help again! Please!

 

That game requires some patches if I remember correctly, try using the ones from regular cthd2003

Still struggling with this, I'm sure it's something wrong in the "text", perhaps I've got the wrong roms again.

 

Now, something that might be handy in the future, I've created a crude "generic" sx_decrypter routine:

//-------------------------------------------common sx decrypter
static void sx_decrypt( int value )
{
int sx_size = memory_region_length( REGION_GFX1 );
UINT8 *rom = memory_region( REGION_GFX1 );
int i;
if (value == 1)
{
 UINT8 *buf = malloc( sx_size );
 memcpy( buf, rom, sx_size );

 for( i = 0; i < sx_size; i += 0x10 )
 {
	 memcpy( &rom[ i        ], &buf[ i + 0x08 ], 0x08 );
	 memcpy( &rom[ i + 0x08 ], &buf[ i        ], 0x08 );
 }
 free( buf );
}
if (value == 2)
{
 for( i = 0; i < sx_size; i++ )
 {
	 rom[ i ] = BITSWAP8( rom[ i ], 7, 6, 0, 4, 3, 2, 1, 5 );
 }
}
}

Call it either by:

sx_decrypt(1) [used by samsh5bl, svcplus, kof2003b and kog], or

sx_decrypt(2) [used by svcsplus, kof2k2mp, kof2k2sr and kof10thu].

 

I hope to improve on it later.

Posted

I find it very funny to be useing fully decrypted sets in Mame.

 

My kf2k2pls uses a decrypted S rom NEO_SFIX_128K( "265-s1p.bin", CRC(595e0006) SHA1(ff086bdaa6f40e9ad963e1100a27f44618d684ed) )

I never knew it used a encrypted one ( or did I ? )

 

ROM_START( ct2k3sp )
ROM_REGION( 0x500000, REGION_CPU1, 0 )
ROM_LOAD16_WORD_SWAP( "5003-p1sp.bin", 0x000000, 0x100000, CRC(ab5c4de0) SHA1(ca9a6bfd4c32d791ecabb34ccbf2cbf0e84f97d5) )
ROM_LOAD16_WORD_SWAP( "5003-p2.bin", 0x100000, 0x400000, CRC(adc1c22b) SHA1(271e0629989257a0d21d280c05df53df259414b1) )

ROM_REGION( 0x40000, REGION_GFX1, 0 )
ROM_LOAD( "5003-s1sp.bin", 0x00000, 0x40000, CRC(6c355ab4) SHA1(71ac2bcd3dbda8402baecc56dabc2297b148a900) )
ROM_REGION( 0x20000, REGION_GFX2, 0 )
ROM_LOAD( "sfix.sfx",  0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) )

NEO_BIOS_SOUND_128K( "5003-m1.bin", CRC(23772b2a) SHA1(96cda2551bd45c6df90c5f6899606e8c044ccc65) )

/* sound roms are identical to kof2001 */
ROM_REGION( 0x1000000, REGION_SOUND1, ROMREGION_SOUNDONLY )
ROM_LOAD( "262-v1.bin", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
ROM_LOAD( "262-v2.bin", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
ROM_LOAD( "262-v3.bin", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
ROM_LOAD( "262-v4.bin", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )

NO_DELTAT_REGION

ROM_REGION( 0x4000000, REGION_GFX3, 0 )
/* Encrypted */
ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) ) /* Plane 2,3 */
ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) ) /* Plane 2,3 */
ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) ) /* Plane 2,3 */
ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) ) /* Plane 2,3 */
ROM_END




/* descrambling information from razoola */
/* descrambling S rom for cthd2003 Super Plus */
static void ct2k3sp_sx_decrypt( void )
{
int rom_size = memory_region_length( REGION_GFX1 );
UINT8 *rom = memory_region( REGION_GFX1 );
UINT8 *buf = malloc( rom_size );
int i;
int ofst;

memcpy( buf, rom, rom_size );

for( i = 0; i < rom_size; i++ ){
 ofst = BITSWAP24( (i & 0x1ffff), 23, 22, 21, 20, 19, 18, 17,  3,
           0,  1,  4,  2, 13, 14, 16, 15,
           5,  6, 11, 10,  9,  8,  7, 12 );

 ofst += (i >> 17) << 17;

 rom[ i ] = buf[ ofst ];
}

memcpy( buf, rom, rom_size );

memcpy( &rom[ 0x08000 ], &buf[ 0x10000 ], 0x8000 );
memcpy( &rom[ 0x10000 ], &buf[ 0x08000 ], 0x8000 );
memcpy( &rom[ 0x28000 ], &buf[ 0x30000 ], 0x8000 );
memcpy( &rom[ 0x30000 ], &buf[ 0x28000 ], 0x8000 );

free( buf );
}

static void cthd2003_neogeo_gfx_address_fix_do(int start, int end, int bit3shift, int bit2shift, int bit1shift, int bit0shift)
{
int i,j;
int tilesize=128;

UINT8* rom = (UINT8*)malloc(16*tilesize);	// 16 tiles buffer
UINT8* realrom = memory_region(REGION_GFX3) + start*tilesize;

for (i = 0; i < (end-start)/16; i++) {
 for (j = 0; j < 16; j++) {
	 int offset = (((j&1)>>0)<<bit0shift)
           +(((j&2)>>1)<<bit1shift)
           +(((j&4)>>2)<<bit2shift)
     +(((j&8)>>3)<<bit3shift);

	 memcpy(rom+j*tilesize, realrom+offset*tilesize, tilesize);
 }
 memcpy(realrom,rom,tilesize*16);
 realrom+=16*tilesize;
}
free(rom);
}

static void cthd2003_neogeo_gfx_address_fix(int start, int end)
{
cthd2003_neogeo_gfx_address_fix_do(start+512*0, end+512*0, 0,3,2,1);
cthd2003_neogeo_gfx_address_fix_do(start+512*1, end+512*1, 1,0,3,2);
cthd2003_neogeo_gfx_address_fix_do(start+512*2, end+512*2, 2,1,0,3);
// skip 3 & 4
cthd2003_neogeo_gfx_address_fix_do(start+512*5, end+512*5, 0,1,2,3);
cthd2003_neogeo_gfx_address_fix_do(start+512*6, end+512*6, 0,1,2,3);
cthd2003_neogeo_gfx_address_fix_do(start+512*7, end+512*7, 0,2,3,1);
}

static void cthd2003_c(int pow)
{
int i;

for (i=0; i<=192; i+=8)
 cthd2003_neogeo_gfx_address_fix(i*512,i*512+512);

for (i=200; i<=392; i+=8)
 cthd2003_neogeo_gfx_address_fix(i*512,i*512+512);

for (i=400; i<=592; i+=8)
 cthd2003_neogeo_gfx_address_fix(i*512,i*512+512);

for (i=600; i<=792; i+=8)
 cthd2003_neogeo_gfx_address_fix(i*512,i*512+512);

for (i=800; i<=992; i+=8)
 cthd2003_neogeo_gfx_address_fix(i*512,i*512+512);

for (i=1000; i<=1016; i+=8)
 cthd2003_neogeo_gfx_address_fix(i*512,i*512+512);
}

DRIVER_INIT (cthd2003)
{
UINT8 *romdata = memory_region(REGION_GFX1);
UINT8*tmp = (UINT8*)malloc(8*128*128);

memcpy(tmp+8*0*128, romdata+8*0*128, 8*32*128);
memcpy(tmp+8*32*128, romdata+8*64*128, 8*32*128);
memcpy(tmp+8*64*128, romdata+8*32*128, 8*32*128);
memcpy(tmp+8*96*128, romdata+8*96*128, 8*32*128);
memcpy(romdata, tmp, 8*128*128);

romdata = memory_region(REGION_CPU2)+0x10000;
 memcpy(tmp+8*0*128, romdata+8*0*128, 8*32*128);
memcpy(tmp+8*32*128, romdata+8*64*128, 8*32*128);
 memcpy(tmp+8*64*128, romdata+8*32*128, 8*32*128);
memcpy(tmp+8*96*128, romdata+8*96*128, 8*32*128);
memcpy(romdata, tmp, 8*128*128);

 free(tmp);

memcpy(romdata-0x10000,romdata,0x10000);;

cthd2003_c(0);
 init_neogeo();
}

DRIVER_INIT (ct2k3sp)
{

UINT8 *romdata = memory_region(REGION_CPU2)+0x10000;
UINT8*tmp = (UINT8*)malloc(8*128*128);
 memcpy(tmp+8*0*128, romdata+8*0*128, 8*32*128);
memcpy(tmp+8*32*128, romdata+8*64*128, 8*32*128);
 memcpy(tmp+8*64*128, romdata+8*32*128, 8*32*128);
memcpy(tmp+8*96*128, romdata+8*96*128, 8*32*128);
memcpy(romdata, tmp, 8*128*128);

 free(tmp);
memcpy(romdata-0x10000,romdata,0x10000);
ct2k3sp_sx_decrypt();
cthd2003_c(0);
 init_neogeo();
}



GAMEB( 2003, ct2k3sp,  kof2001,  neogeo, raster, neogeo,  ct2k3sp,  ROT0, "Phenixsoft Corporation", "Crouching Tiger Hidden Dragon 2003 Super Plus", 0 )

 

 

machine\neogeo.c

/* thanks to razoola */
static WRITE16_HANDLER ( cthd2003_bankswitch_w )
{
 int bankaddress;
 static int cthd2003_banks[8] =
 {
 	1,0,1,0,1,0,3,2,
 };

 if (offset == 0)
 {
 	bankaddress = 0x100000 + cthd2003_banks[data&7]*0x100000;
 	neogeo_set_cpu1_second_bank(bankaddress);
 }
}





if (!strcmp(Machine->gamedrv->name,"cthd2003") ||
!strcmp(Machine->gamedrv->name,"ct2k3sp"))
{
 /* patches thanks to razoola */
 int i;
 UINT16 *mem16 = (UINT16 *)memory_region(REGION_CPU1);

 /* special ROM banking handler */
 memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2ffff0, 0x2fffff, 0, 0, cthd2003_bankswitch_w);

 // theres still a problem on the character select screen but it seems to be related to cpu core timing issues,
 // overclocking the 68k prevents it.

 // fix garbage on s1 layer over everything
 mem16[0xf415a/2] = 0x4ef9;
 mem16[0xf415c/2] = 0x000f;
 mem16[0xf415e/2] = 0x4cf2;
 
 // Fix corruption in attract mode before title screen
 for (i=0x1ae290/2;i < 0x1ae8d0/2; i=i+1)
 {
 	mem16[i] = 0x0000;
 }

 // Fix for title page
 	for (i=0x1f8ef0/2;i < 0x1fa1f0/2; i=i+2)
 	{
 	mem16[i] -= 0x7000;
 	mem16[i+1] -= 0x0010;
 	}

 // Fix for green dots on title page
 for (i=0xac500/2;i < 0xac520/2; i=i+1)
 {
 	mem16[i] = 0xFFFF;
 }
 	
 // Fix for blanks as screen change level end clear
 mem16[0x991d0/2] = 0xdd03;
 mem16[0x99306/2] = 0xdd03;
 mem16[0x99354/2] = 0xdd03;
 	mem16[0x9943e/2] = 0xdd03;
}

Posted (edited)

I'm not impressed with myself after that. I already had all that code - except for the line that mattered.

if (!strcmp(Machine->gamedrv->name,"cthd2003") ||
!strcmp(Machine->gamedrv->name,"ct2k3sp"))

I only had cthd2003 there, don't know how I could have overlooked it. Thanks James, it works fine now.

 

Metal Slug 5 Plus- does anyone have the driver?

 

Lastly I've been looking at the kof96m_ep1.rom, it's either corrupt or encrypted?? Any answers?

 

EDIT: never mind, I got the kof96m_ep1.rom encryption sorted out, and it works.

 

Still need a working ms5plus driver though !!

Edited by robbbert
Posted
I'm not impressed with myself after that. I already had all that code - except for the line that mattered.
if (!strcmp(Machine->gamedrv->name,"cthd2003") ||
!strcmp(Machine->gamedrv->name,"ct2k3sp"))

I only had cthd2003 there, don't know how I could have overlooked it. Thanks James, it works fine now.

 

Metal Slug 5 Plus- does anyone have the driver?

 

Lastly I've been looking at the kof96m_ep1.rom, it's either corrupt or encrypted?? Any answers?

 

EDIT: never mind, I got the kof96m_ep1.rom encryption sorted out, and it works.

 

Still need a working ms5plus driver though !!

back at you bro..

src/drivers/neogeo.c

ROM_START( ms5plus )

ROM_REGION( 0x500000, REGION_CPU1, 0 )

ROM_LOAD16_WORD_SWAP( "p1.bin", 0x000000, 0x100000, CRC(106b276f) )

ROM_LOAD16_WORD_SWAP( "p2.bin", 0x100000, 0x200000, CRC(d6a458e8) )

ROM_LOAD16_WORD_SWAP( "p3.bin", 0x300000, 0x200000, CRC(439ec031) )

 

ROM_REGION( 0x20000, REGION_GFX1, 0 )

ROM_LOAD("268-s1p.bin", 0x000000, 0x20000, CRC(c82e57ad) )

ROM_REGION( 0x20000, REGION_GFX2, 0 )

ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) )

 

ROM_REGION( 0x20000, REGION_USER4, 0 )

NEO_BIOS_SOUND_128K( "268-m1d.bin", CRC(6fa01c9a) )

ROM_REGION( 0x1000000, REGION_SOUND1, ROMREGION_SOUNDONLY )

ROM_LOAD( "268-v1d.bin", 0x000000, 0x800000, CRC(0ab43275) )

ROM_LOAD( "268-v2d.bin", 0x800000, 0x800000, CRC(358b1419) )

 

NO_DELTAT_REGION

 

ROM_REGION( 0x4000000, REGION_GFX3, 0 )

ROM_LOAD16_BYTE( "ms5n_c1.rom", 0x0000000, 0x800000, CRC(969c0d62) )

ROM_LOAD16_BYTE( "ms5n_c2.rom", 0x0000001, 0x800000, CRC(c69ae867) )

ROM_LOAD16_BYTE( "ms5n_c3.rom", 0x1000000, 0x800000, CRC(d7beaeaf) )

ROM_LOAD16_BYTE( "ms5n_c4.rom", 0x1000001, 0x800000, CRC(e1b1131b) )

ROM_LOAD16_BYTE( "ms5n_c5.rom", 0x2000000, 0x800000, CRC(2fa1a5ad) )

ROM_LOAD16_BYTE( "ms5n_c6.rom", 0x2000001, 0x800000, CRC(6de89589) )

ROM_LOAD16_BYTE( "ms5n_c7.rom", 0x3000000, 0x800000, CRC(97bd0c0a) )

ROM_LOAD16_BYTE( "ms5n_c8.rom.", 0x3000001, 0x800000, CRC(c0d5bc20) )

ROM_END

 

 

 

DRIVER_INIT ( ms5plus )

{

UINT8 *dst = malloc(0x20000);

UINT8 *roms1 = (memory_region(REGION_GFX1));

int j;

if ( dst )

{

memcpy(dst,roms1,0x20000);

// descrambling the S1 by dorriGa

for (j=0;j<0x20000 ; j+=0x000010)

{

memcpy( roms1+j, dst+j+0x000008,:rolleyes:;

memcpy( roms1+j+0x000008, dst+j,:D;

 

}

}

free( dst );

neogeo_fix_bank_type = 1;

init_neogeo();

}

 

GAMEB( 2003, ms5plus, mslug5, neogeo, neogeo, neogeo, ms5plus, ROT0, "SNK Playmore", "Metal Slug 5 Plus! (bootleg)" )

 

 

 

src/machine/neogeo.c

 

 

 

static WRITE16_HANDLER ( ms5plus_bankswitch_w )

{

/* thanks to fataku for the info */

unsigned char *RAM = memory_region(REGION_CPU1);

int bankaddress;

logerror("offset: %06x PC %06x: set banking %04x\n",offset,activecpu_get_pc(),data);

if ((offset == 0)&&(data == 0xa0))

{

bankaddress=0xa0;

cpu_setbank(4,&RAM[bankaddress]);

//neogeo_set_cpu1_second_bank(bankaddress);

logerror("offset: %06x PC %06x: set banking %04x\n\n",offset,activecpu_get_pc(),bankaddress);

}

else if(offset == 2)

{ data=data>>4;

//data=data&7;

bankaddress=data*0x100000;

cpu_setbank(4,&RAM[bankaddress]);

//neogeo_set_cpu1_second_bank(bankaddress);

logerror("offset: %06x PC %06x: set banking %04x\n\n",offset,activecpu_get_pc(),bankaddress);

}

}

 

put it individual games can go here (before kludges)

 

if (!strcmp(Machine->gamedrv->name,"ms5plus") )

{

// special ROM banking handler

memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2ffff0, 0x2fffff,0,0, ms5plus_bankswitch_w);

 

hope that works for you.. cheers

Posted
static WRITE16_HANDLER ( ms5plus_bankswitch_w )

{

/* thanks to fataku for the info */

unsigned char *RAM = memory_region(REGION_CPU1);

int bankaddress;

logerror("offset: %06x PC %06x: set banking %04x\n",offset,activecpu_get_pc(),data);

if ((offset == 0)&&(data == 0xa0))

{

bankaddress=0xa0;

cpu_setbank(4,&RAM[bankaddress]);

//neogeo_set_cpu1_second_bank(bankaddress);

logerror("offset: %06x PC %06x: set banking %04x\n\n",offset,activecpu_get_pc(),bankaddress);

}

else if(offset == 2)

{ data=data>>4;

//data=data&7;

bankaddress=data*0x100000;

cpu_setbank(4,&RAM[bankaddress]);

//neogeo_set_cpu1_second_bank(bankaddress);

logerror("offset: %06x PC %06x: set banking %04x\n\n",offset,activecpu_get_pc(),bankaddress);

}

}

 

put it individual games can go here (before kludges)

 

if (!strcmp(Machine->gamedrv->name,"ms5plus") )

{

// special ROM banking handler

memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2ffff0, 0x2fffff,0,0, ms5plus_bankswitch_w);

 

hope that works for you.. cheers

 

 

static WRITE16_HANDLER ( mslug5p_bankswitch_w ) /* Bootleg, Plus */
{
  if(offset == 2)
  {
          neogeo_set_cpu1_second_bank(data<<16);
   }
}

 

This is a bit shorter...

Posted

kf2k2pls: I found I had the decrypted roms, and it ran straight away. problem solved.

 

ms5plus: That's a really old driver, and I don't have the v roms.

 

I've tried mixing/matching, but no luck yet.

 

What I've got is the set for kawaks 1.48/dev, so I'd like to get it working with that one if possible.

Guest
This topic is now closed to further replies.

×
×
  • Create New...