-
Posts
12,945 -
Joined
-
Last visited
-
Days Won
355
Content Type
Profiles
Events
Forums
Blogs
Downloads
Everything posted by Robert
-
Anti3d still runs a server, according to this - http://www.anti3d.com/servers.php
-
Only Kawaks/Nebula with loader is in asr.dat MAME doesn't have an equivalent, you need to compile MAME with your additions.
-
Happy 20th birthday to bubbawmu2 !!
-
Old news, sorry if it's been mentioned somewhere else... Source Official Microsoft List -> HERE Compatibilty Questions and Answers -> HERE
-
From Mamedev, the latest update to the King of Emulators. >> Get the DIFF HERE History.dat 1.05d -> HERE Mameinfo v0.102u2 -> HERE MAME32qa -> HERE MAMEplus! -> HERE Mame32Plus Special (no link) MAME32FX -> HERE MAME32Hp4 -> HERE
-
NeoGeo games drivers - I need help.
Robert replied to KillerBee's topic in Arcade Emulators [/pc/arcade]
Yes. -
NeoGeo games drivers - I need help.
Robert replied to KillerBee's topic in Arcade Emulators [/pc/arcade]
You are trying to make kof2002 a parent of kof2k2nd and making kof2k2nd a parent of kf2k2pa and kf2k2pls. You are not allowed to make parents of parents. Make kof2002 a parent of the 3 others. -
Changed "&" in title to "and", because "&" crashes RSS feed.
-
NeoGeo games drivers - I need help.
Robert replied to KillerBee's topic in Arcade Emulators [/pc/arcade]
The one specified was 2058ec5e. You have the encrypted one which I could not find anywhere. To get it to work, you will have to add an extra line in the DRIVER_INIT section, just above the "init_neogeo()" line. My guess is the line would be: neo_pcm2_playmore_2002(5); But you'll need to add an extra subroutine just above any DRIVER_INIT's you've added. // © PLAYMORE 2002 20-09-2004 //-------- to decypt v roms ----------------- static void neo_pcm2_playmore_2002(int value) { //kof2002,matrimelee,mslug5 (pcb and mvs),samsho5,svcchaos (pcb and mvs),kof2003 (pcb and mvs),samsh5sp (mvs and aes) //offset,xor address unsigned int addrs[7][2]={ {0x000000,0xA5000}, //kof2002 {0xFFCE20,0x01000}, //matrimelee {0xFE2CF6,0x4E001}, //mslug5 {0xFEB2C0,0x0A000}, //samsho5 {0xFFAC28,0xC2000}, //svcchaos {0xFF14EA,0xA7001}, //kof2003 {0xFFB440,0x02000}, //samsh5sp }; unsigned int xordata[7][8]={ {0xF9,0xE0,0x5D,0xF3,0xEA,0x92,0xBE,0xEF}, //kof2002 {0xC4,0x83,0xA8,0x5F,0x21,0x27,0x64,0xAF}, //matrimelee {0xC3,0xFD,0x81,0xAC,0x6D,0xE7,0xBF,0x9E}, //mslug5 {0xCB,0x29,0x7D,0x43,0xD2,0x3A,0xC2,0xB4}, //samsho5 {0xC3,0xFD,0x81,0xAC,0x6D,0xE7,0xBF,0x9E}, //svcchaos {0x4B,0xA4,0x63,0x46,0xF0,0x91,0xEA,0x62}, //kof2003 {0x4B,0xA4,0x63,0x46,0xF0,0x91,0xEA,0x62}, //samsh5sp }; UINT8 *src = memory_region(REGION_SOUND1); UINT8 *buf = malloc(0x1000000); int i, j, d; memcpy(buf,src,0x1000000); for (i=0;i<0x1000000;i++) { j=BITSWAP24(i,23,22,21,20,19,18,17,0,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,16); j=j^addrs[value][1]; d=((i+addrs[value][0])&0xffffff); src[j]=buf[d]^xordata[value][j&0x7]; } free(buf); } -
Source Perhaps you'd better move to Australia.
-
NeoGeo games drivers - I need help.
Robert replied to KillerBee's topic in Arcade Emulators [/pc/arcade]
What is the CRC of the V rom that you are using? -
Yes it is possible, although because it was a work-related thing, we set up a Sandisk Mini-Cruzer usb stick to boot to Windows 98 command-line. You didn't say what OS you wanted to boot into, or for what purpose.
-
NeoGeo games drivers - I need help.
Robert replied to KillerBee's topic in Arcade Emulators [/pc/arcade]
In what way is it bad? Does it keep repeating like an echo box, or is it all fuzzy? -
Yape emulates the Commodore Plus/4 and C16 consoles. >> Get it HERE
-
It is? LOL Congratulations, have a good day. Present for you: robbbert attacked Disoblige with a Atomic Bomb (672 str) and took off 1244! Disoblige has 0 HP left!
-
NeoGeo games drivers - I need help.
Robert replied to KillerBee's topic in Arcade Emulators [/pc/arcade]
It's the driver I happened to find. I just had a look and I don't possess the encrypted rom anyway. So there's not much choice. -
NeoGeo games drivers - I need help.
Robert replied to KillerBee's topic in Arcade Emulators [/pc/arcade]
Look for this one: static void neogeo_custom_memory(void) -
NeoGeo games drivers - I need help.
Robert replied to KillerBee's topic in Arcade Emulators [/pc/arcade]
Yes that driver is a bit old now. This is what I have, it's a rather complex driver. Firstly delete all the stuff you've put in from drivers\neogeo.c and machine\neogeo.c Now, this goes in drivers\neogeo.c ROM_START( kof2003 ) ROM_REGION( 0x900000, REGION_CPU1, 0 ) ROM_LOAD32_WORD_SWAP( "271-p1.bin", 0x000000, 0x400000, CRC(b9da070c) SHA1(1a26325af142a4dd221c336061761468598c4634) ) ROM_LOAD32_WORD_SWAP( "271-p2.bin", 0x000002, 0x400000, CRC(da3118c4) SHA1(582e4f44f03276adecb7b2848d3b96bf6da57f1e) ) ROM_LOAD16_WORD_SWAP( "271-p3.bin", 0x800000, 0x100000, CRC(5cefd0d2) SHA1(cddc3164629fed4b6f715e12b109ad35d1009355) ) ROM_LOAD16_WORD_SWAP( "271-p3d.bin", 0x800000, 0x100000, CRC(59d376da) SHA1(3c3ad0b79e8b37e838893a8f7b87e11d7eeee8f2) ) ROM_REGION( 0x100000, REGION_GFX1, 0 ) ROM_FILL( 0x000000, 0x100000, 0 ) ROM_REGION( 0x20000, REGION_GFX2, 0 ) ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) ROM_REGION16_BE( 0x40000, REGION_USER1, 0 ) ROM_LOAD16_WORD_SWAP( "271-bios.bin", 0x00000, 0x040000, CRC(c521b5bc) SHA1(c9a5db63523191dedd1b39baab8772f64f09b77f) ) ROM_REGION( 0x90000, REGION_CPU2, 0 ) ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) SHA1(977387a7c76ef9b21d0b01fa69830e949a9a9626) ) ROM_LOAD( "271-m1d.bin", 0x00000, 0x80000, CRC(0e86af8f) SHA1(769102b67bb1a699cfa5674d66cdb46ae633cb65) ) ROM_RELOAD( 0x10000, 0x80000 ) ROM_REGION( 0x10000, REGION_GFX4, 0 ) ROM_LOAD( "000-lo.lo", 0x00000, 0x10000, CRC(e09e253c) SHA1(2b1c719531dac9bb503f22644e6e4236b91e7cfc) ) ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) ROM_LOAD( "271-v1d.bin", 0x000000, 0x1000000, CRC(2058ec5e) SHA1(567fdf328f87551a949dc601f4e71c55368debf0) ) // ROM_LOAD( "271-v1.bin", 0x000000, 0x1000000, CRC(1d96154b) SHA1(1d4e262b0d30cee79a4edc83bb9706023c736668) ) ROM_REGION( 0x6000000, REGION_GFX3, 0 ) ROM_LOAD16_BYTE( "271-c1d.bin", 0x0000000, 0x1000000, CRC(c29acd28) SHA1(8a10409c5a9ad95fa9b56e94c14f1b96101fb179) ) ROM_LOAD16_BYTE( "271-c2d.bin", 0x0000001, 0x1000000, CRC(328e80b1) SHA1(c7f8069488be1a88a2ea03718b6a131f5c96bd3f) ) ROM_LOAD16_BYTE( "271-c3d.bin", 0x2000000, 0x1000000, CRC(020a11f1) SHA1(85cfae76234f72b0039ebc02f931bb2a9c10b1af) ) ROM_LOAD16_BYTE( "271-c4d.bin", 0x2000001, 0x1000000, CRC(991b5ed2) SHA1(99c4c470bc9cb388773e27de6df4a16803fc7b45) ) ROM_LOAD16_BYTE( "271-c5d.bin", 0x4000000, 0x1000000, CRC(c2de8b66) SHA1(40c2ea48fc20d470163a9dbb40c0276fc4cfceb9) ) ROM_LOAD16_BYTE( "271-c6d.bin", 0x4000001, 0x1000000, CRC(3ff750db) SHA1(714f14a2eb2df6f25d10a6b6aff4b3adfbc7a5dc) ) ROM_END //--------------------------------------------------------kof2003 static void kof2003_px_decrypt( void ) { const unsigned char xor2[ 0x20 ] = { 0xb4, 0x0f, 0x40, 0x6c, 0x38, 0x07, 0xd0, 0x3f, 0x53, 0x08, 0x80, 0xaa, 0xbe, 0x07, 0xc0, 0xfa, 0xd0, 0x08, 0x10, 0xd2, 0xf1, 0x03, 0x70, 0x7e, 0x87, 0x0B, 0x40, 0xf6, 0x2a, 0x0a, 0xe0, 0xf9 }; int i; int ofst; UINT8 *rom, *buf; rom = memory_region( REGION_CPU1 ); for( i = 0x100000; i < 0x800000; i++ ) rom[ i ] ^= xor2[ (i % 0x20) ]; for( i = 0x100000; i < 0x800000; i += 4 ) { UINT16 *rom16 = (UINT16*)&rom[ i + 1 ]; *rom16 = BITSWAP16( *rom16, 15, 14, 13, 12, 4, 5, 6, 7, 8, 9, 10, 11, 3, 2, 1, 0 ); } buf = malloc( 0x800000 ); memcpy( buf, rom, 0x800000 ); for( i = 0; i < 0x0100000 / 0x10000; i++ ) { ofst = (i & 0xf0) + BITSWAP8( (i & 0x0f), 7, 6, 5, 4, 1, 0, 3, 2 ); memcpy( &rom[ i * 0x10000 ], &buf[ ofst * 0x10000 ], 0x10000 ); } for( i = 0x100000; i < 0x800000; i += 0x100 ) { ofst = (i & 0xf000ff) + ((i & 0x000f00) ^ 0x00300) + (BITSWAP8( ((i & 0x0ff000) >> 12), 4, 5, 6, 7, 1, 0, 3, 2 ) << 12); memcpy( &rom[ i ], &buf[ ofst ], 0x100 ); } free( buf ); buf = malloc(0x900000); memcpy( buf, rom, 0x900000 ); memcpy( &rom[0x100000], &buf[0x800000], 0x100000 ); memcpy( &rom[0x200000], &buf[0x100000], 0x700000 ); free(buf); } static void kof2003_sx_decrypt( void ) { int i; int tx_size = memory_region_length( REGION_GFX1 ); int rom_size = memory_region_length( REGION_GFX3 ); UINT8 *src,*dst; src = memory_region( REGION_GFX3 ) + rom_size - 0x1000000 - 0x80000; dst = memory_region( REGION_GFX1 ); for( i = 0; i < tx_size / 2; i++ ) dst[ i ] = src[ (i & ~0x1f) + ((i & 7) << 2) + ((~i & 8) >> 2) + ((i & 0x10) >> 4) ]; src = memory_region( REGION_GFX3 ) + rom_size - 0x80000; dst = memory_region( REGION_GFX1 ) + 0x80000; for( i = 0; i < tx_size / 2; i++ ) dst[ i ] = src[ (i & ~0x1f) + ((i & 7) << 2) + ((~i & 8) >> 2) + ((i & 0x10) >> 4) ]; dst = memory_region( REGION_GFX1 ); for( i = 0; i < tx_size; i++ ) dst[ i ] = BITSWAP8( dst[ i ] ^ 0xd2, 4, 0, 7, 2, 5, 1, 6, 3 ); } DRIVER_INIT( kof2003 ) { kof2003_px_decrypt(); kof2003_sx_decrypt(); neogeo_fix_bank_type = 2; init_neogeo(); } GAMEB( 2003, kof2003, neogeo, neogeo, neogeo, neogeo, kof2003, ROT0, "SNK Playmore", "The King of Fighters 2003 (PCB, decrypted C)", 0 ) In machine\neogeo.c look for neogeo_custom_memory and put this just before it //----------------------------------------new bankswitch code from neosource // thanks to BMS888 and Halrin for much of this code // MAME port by IQ_132 - neosource.1emulation.com static unsigned short CartRAM[0x1000]; void pvc_w8(unsigned int offset, unsigned char data) { *(((unsigned char*)CartRAM)+offset)=data; } unsigned char pvc_r8(unsigned int offset) { return *(((unsigned char*)CartRAM)+offset); } // These perform some palette calculations // Unpack palette word to RGB dword void pvc_prot1( void ) // on writes to e0/e1 { unsigned char b1, b2; b1 = pvc_r8(0x1fe1); b2 = pvc_r8(0x1fe0); pvc_w8(0x1fe2,(((b2>>0)&0xf)<<1)|((b1>>4)&1)); pvc_w8(0x1fe3,(((b2>>4)&0xf)<<1)|((b1>>5)&1)); pvc_w8(0x1fe4,(((b1>>0)&0xf)<<1)|((b1>>6)&1)); pvc_w8(0x1fe5, (b1>>7)); } // Pack RGB dword to palette word void pvc_prot2( void ) // on writes to e8/e9/ea/eb { unsigned char b1, b2, b3, b4; b1 = pvc_r8(0x1fe9); b2 = pvc_r8(0x1fe8); b3 = pvc_r8(0x1feb); b4 = pvc_r8(0x1fea); pvc_w8(0x1fec,(b2>>1)|((b1>>1)<<4)); pvc_w8(0x1fed,(b4>>1)|((b2&1)<<4)|((b1&1)<<5)|((b4&1)<<6)|((b3&1)<<7)); } void pvc_write_bankswitch( void ) { UINT32 bankaddress; bankaddress = ((CartRAM[0xff8]>>8)|(CartRAM[0xff9]<<8)); *(((unsigned char *)CartRAM) + 0x1ff0) = 0xA0; *(((unsigned char *)CartRAM) + 0x1ff1) &= 0xFE; *(((unsigned char *)CartRAM) + 0x1ff3) &= 0x7F; neogeo_set_cpu1_second_bank(bankaddress+0x100000); } static READ16_HANDLER( pvc_prot_r ) { return CartRAM[ offset ]; } static WRITE16_HANDLER( pvc_prot_w ) { COMBINE_DATA( &CartRAM[ offset ] ); if (offset == 0xFF0)pvc_prot1(); else if(offset >= 0xFF4 && offset <= 0xFF5)pvc_prot2(); else if(offset >= 0xFF8)pvc_write_bankswitch(); } still machine\neogeo.c, look in the neogeo_custom_memory routine, you will see code for various games. Add this: //-------------------------------------------------------------------------kof2003 if (!strcmp(Machine->gamedrv->name,"kof2003")) { memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2fe000, 0x2fffff, 0, 0, pvc_prot_r); memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2fe000, 0x2fffff, 0, 0, pvc_prot_w); memory_install_read16_handler( 0, ADDRESS_SPACE_PROGRAM, 0xc00000, 0xc3ffff, 0, 0, MRA16_BANK3 ); // 256k bios } Now, do a clean compile and it "should" work. Good luck. -
As I don't have mod rights on this forum, we will have to wait for a supermod or admin.
-
I've yet to encounter a mame version that overall goes faster than its predecessor.
-
I was wondering that myself.
-
>> Aaron Giles home page HERE