mirror of
https://github.com/holub/mame
synced 2025-05-28 16:43:04 +03:00
Naomi update [R. Belmont, Deunan Knute, Alex, Mr. Mudkips, Frank Bukor]
- Use new dump for ic31/32, ROM board test passes now - Add protection hookup for Marvel vs. Capcom 2, game is playable w/sound I'm not removing GAME_NOT_WORKING because I don't trust the Naomi emulation in general that much yet, although I was able to coin up and play (slowly ;-) Dump is uploading.
This commit is contained in:
parent
4750c6b9d5
commit
d49a0062f8
@ -2910,39 +2910,39 @@ EXP: MARVEL VS. CAPCOM 2
|
||||
Note: the following game is one of the few known regular Naomi game to have a rom test item in its specific test mode menu.
|
||||
So the Naomi regular board test item is unreliable in this circumstance.
|
||||
|
||||
protection notes:
|
||||
CPU 'maincpu' (PC=0C001014): unmapped program memory qword write to 0231FCF8 = 00000000E2534910 & 00000000FFFFFFFF
|
||||
CPU 'maincpu': warning - attempt to direct-map address 02534910 in program space
|
||||
CPU 'maincpu' (PC=02534910): unmapped program memory qword read from 02534910 & 000000000000FFFF
|
||||
CPU 'maincpu': warning - attempt to direct-map address 02534912 in program space
|
||||
CPU 'maincpu' (PC=02534912): unmapped program memory qword read from 02534910 & 00000000FFFF0000
|
||||
CPU 'maincpu': warning - attempt to direct-map address 02534914 in program space
|
||||
*/
|
||||
|
||||
|
||||
ROM_START( mvsc2 )
|
||||
ROM_REGION( 0x200000, "maincpu", 0)
|
||||
NAOMI_BIOS
|
||||
|
||||
ROM_REGION( 0x8800000, "user1", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("epr-23085a.ic11", 0x0000000, 0x0400000, CRC(5d5b7ad1) SHA1(f58c31b245fc33fa541f9f074548402a63f7c3d3) ) //ic 22
|
||||
ROM_REGION( 0x8900000, "user1", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("epr-23085a.ic11", 0x0000000, 0x0400000, CRC(5d5b7ad1) SHA1(f58c31b245fc33fa541f9f074548402a63f7c3d3) )
|
||||
ROM_RELOAD( 0x400000, 0x400000)
|
||||
ROM_LOAD("mpr-23048.ic17", 0x0800000, 0x0800000, CRC(93d7a63a) SHA1(c50d10b4a3f9db51eae5749f5b665d7c8ab6c898) ) //ic 1
|
||||
ROM_LOAD("mpr-23049.ic18", 0x1000000, 0x0800000, CRC(003dcce0) SHA1(fb71c8ca9271d2155878c72d8fe2df3031e6c014) ) //ic 2
|
||||
ROM_LOAD("mpr-23050.ic19", 0x1800000, 0x0800000, CRC(1d6b88a7) SHA1(ba42e9d1d912d88a7ad839b878975ba590634320) ) //ic 3
|
||||
ROM_LOAD("mpr-23051.ic20", 0x2000000, 0x0800000, CRC(01226aaa) SHA1(a4c6a0eda05e53d0e51b92a4317a86a708a7efdb) ) //ic 4
|
||||
ROM_LOAD("mpr-23052.ic21", 0x2800000, 0x0800000, CRC(74bee120) SHA1(5a0fb48fa758a2be2e08e3b1298103c5aa748835) ) //ic 5
|
||||
ROM_LOAD("mpr-23053.ic22", 0x3000000, 0x0800000, CRC(d92d4401) SHA1(a868780f8d2e176ff10781e1c08bf932f34ac504) ) //ic 6
|
||||
ROM_LOAD("mpr-23054.ic23", 0x3800000, 0x0800000, CRC(78ba02e8) SHA1(0f696a33e1e6671001efc309ed62f084a246ad24) ) //ic 7
|
||||
ROM_LOAD("mpr-23055.ic24", 0x4000000, 0x0800000, CRC(84319604) SHA1(c3dde162e043a54e1325202b46191b32e8784a1c) ) //ic 8
|
||||
ROM_LOAD("mpr-23056.ic25", 0x4800000, 0x0800000, CRC(d7386034) SHA1(be1f3ca5f283e428dc59dc072de3e7d36e122d53) ) //ic 9
|
||||
ROM_LOAD("mpr-23057.ic26", 0x5000000, 0x0800000, CRC(a3f087db) SHA1(b52d7c072cb5c2fdd10d0ac0b62cebe48b229ae3) ) //ic 10
|
||||
ROM_LOAD("mpr-23058.ic27", 0x5800000, 0x0800000, CRC(61a6cc5d) SHA1(34e52cb076888313a80f2b87876b8d37b91d85a0) ) //ic 11
|
||||
ROM_LOAD("mpr-23059.ic28", 0x6000000, 0x0800000, CRC(64808024) SHA1(1a6c60c330642b273978d3dd02d95d17d36ee3f2) ) //ic 12
|
||||
ROM_LOAD("mpr-23060.ic29", 0x6800000, 0x0800000, CRC(67519942) SHA1(fc758d9075625f8140d5d828c8f6b7a91bcc9119) ) //ic 13
|
||||
ROM_LOAD("mpr-23061.ic30", 0x7000000, 0x0800000, CRC(fb1844c4) SHA1(1d1571516a6dbed0c4ded3b80efde9cc9281f66f) ) //ic 14
|
||||
ROM_LOAD32_WORD("mpr-23083.ic31", 0x8000000, 0x0400000, CRC(c61d2dfe) SHA1(a05fb979ed7c8040de91716fc8814e6bd995efa2) ) //ic 15
|
||||
ROM_LOAD32_WORD("mpr-23084.ic32", 0x8000002, 0x0400000, CRC(4ebbbdd9) SHA1(9ad8c1a644850de6e35705318cd1991e1d6e60a8) ) //ic 16
|
||||
ROM_LOAD("mpr-23048.ic17", 0x0800000, 0x0800000, CRC(93d7a63a) SHA1(c50d10b4a3f9db51eae5749f5b665d7c8ab6c898) )
|
||||
ROM_LOAD("mpr-23049.ic18", 0x1000000, 0x0800000, CRC(003dcce0) SHA1(fb71c8ca9271d2155878c72d8fe2df3031e6c014) )
|
||||
ROM_LOAD("mpr-23050.ic19", 0x1800000, 0x0800000, CRC(1d6b88a7) SHA1(ba42e9d1d912d88a7ad839b878975ba590634320) )
|
||||
ROM_LOAD("mpr-23051.ic20", 0x2000000, 0x0800000, CRC(01226aaa) SHA1(a4c6a0eda05e53d0e51b92a4317a86a708a7efdb) )
|
||||
ROM_LOAD("mpr-23052.ic21", 0x2800000, 0x0800000, CRC(74bee120) SHA1(5a0fb48fa758a2be2e08e3b1298103c5aa748835) )
|
||||
ROM_LOAD("mpr-23053.ic22", 0x3000000, 0x0800000, CRC(d92d4401) SHA1(a868780f8d2e176ff10781e1c08bf932f34ac504) )
|
||||
ROM_LOAD("mpr-23054.ic23", 0x3800000, 0x0800000, CRC(78ba02e8) SHA1(0f696a33e1e6671001efc309ed62f084a246ad24) )
|
||||
ROM_LOAD("mpr-23055.ic24", 0x4000000, 0x0800000, CRC(84319604) SHA1(c3dde162e043a54e1325202b46191b32e8784a1c) )
|
||||
ROM_LOAD("mpr-23056.ic25", 0x4800000, 0x0800000, CRC(d7386034) SHA1(be1f3ca5f283e428dc59dc072de3e7d36e122d53) )
|
||||
ROM_LOAD("mpr-23057.ic26", 0x5000000, 0x0800000, CRC(a3f087db) SHA1(b52d7c072cb5c2fdd10d0ac0b62cebe48b229ae3) )
|
||||
ROM_LOAD("mpr-23058.ic27", 0x5800000, 0x0800000, CRC(61a6cc5d) SHA1(34e52cb076888313a80f2b87876b8d37b91d85a0) )
|
||||
ROM_LOAD("mpr-23059.ic28", 0x6000000, 0x0800000, CRC(64808024) SHA1(1a6c60c330642b273978d3dd02d95d17d36ee3f2) )
|
||||
ROM_LOAD("mpr-23060.ic29", 0x6800000, 0x0800000, CRC(67519942) SHA1(fc758d9075625f8140d5d828c8f6b7a91bcc9119) )
|
||||
ROM_LOAD("mpr-23061.ic30", 0x7000000, 0x0800000, CRC(fb1844c4) SHA1(1d1571516a6dbed0c4ded3b80efde9cc9281f66f) )
|
||||
ROM_LOAD("mpr-23083.ic31", 0x7800000, 0x0400000, CRC(c61d2dfe) SHA1(a05fb979ed7c8040de91716fc8814e6bd995efa2) )
|
||||
ROM_LOAD("mpr-23084.ic32", 0x8000000, 0x0400000, CRC(e228cdfd) SHA1(d02a2e3557bd24cf34c5ddb42d41ca15e78ae885) )
|
||||
|
||||
// DMA protection data
|
||||
ROM_LOAD("88000000.bin", 0x8800000, 0x025f00, CRC(77d79823) SHA1(2545d28eee47114e8ffb9bc6d7a910e90fc48420) )
|
||||
ROM_LOAD("88026440.bin", 0x8830000, 0x016520, CRC(dad9ebbd) SHA1(39c0697caa2b5ee11d99e75726e92ed86a23f10b) )
|
||||
ROM_LOAD("8803bda0.bin", 0x8850000, 0x01e5e0, CRC(9e0b8202) SHA1(729bed557c1a00da13c990603bbadab38d90285e) )
|
||||
ROM_LOAD("8805a560.bin", 0x8870000, 0x0017a0, CRC(7bc27482) SHA1(6ce6074cf47989f42af02deb7aac52883912784a) )
|
||||
ROM_LOAD("8805b720.bin", 0x8880000, 0x02b5a0, CRC(485d0aef) SHA1(853f4b49b489cc512c906edcaf3cd8b5bf4c64c0) )
|
||||
ROM_LOAD("8808b7e0.bin", 0x88a0000, 0x013ec0, CRC(0fc8f363) SHA1(dad30d43cef89d01ce80301b1d796aabad755de6) )
|
||||
ROM_END
|
||||
|
||||
/* toy fighter - 1999 sega */
|
||||
|
@ -395,7 +395,7 @@ READ64_DEVICE_HANDLER( naomibd_r )
|
||||
}
|
||||
else
|
||||
{
|
||||
mame_printf_verbose("Bad protection offset read %x\n", v->rom_offset);
|
||||
logerror("Bad protection offset read %x\n", v->rom_offset);
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -574,20 +574,6 @@ WRITE64_DEVICE_HANDLER( naomibd_w )
|
||||
v->dma_offset &= 0xffff;
|
||||
v->dma_offset |= (data >> 16) & 0x1fff0000;
|
||||
v->dma_offset_flags = (data>>28);
|
||||
|
||||
// if the flag is cleared that lets the protection chip go,
|
||||
// we need to handle this specially.
|
||||
if (!(v->dma_offset_flags & NAOMIBD_FLAG_ADDRESS_SHUFFLE))
|
||||
{
|
||||
if (!strcmp(device->machine->gamedrv->name, "qmegamis"))
|
||||
{
|
||||
v->dma_offset = 0x9000000;
|
||||
}
|
||||
else
|
||||
{
|
||||
logerror("Protected DMA not handled for this game\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
if(ACCESSING_BITS_0_15)
|
||||
{
|
||||
@ -607,7 +593,7 @@ WRITE64_DEVICE_HANDLER( naomibd_w )
|
||||
case 0x1fffc: // decryption key
|
||||
v->prot_key = data;
|
||||
|
||||
mame_printf_verbose("Protection: set up read @ %x, key %x (PIO %x DMA %x) [%s]\n", v->prot_offset, v->prot_key, v->rom_offset, v->dma_offset, cpuexec_describe_context(device->machine));
|
||||
// printf("Protection: set up read @ %x, key %x (PIO %x DMA %x) [%s]\n", v->prot_offset, v->prot_key, v->rom_offset, v->dma_offset, cpuexec_describe_context(device->machine));
|
||||
|
||||
// translate address if necessary
|
||||
if (v->prot_translate != NULL)
|
||||
@ -646,7 +632,7 @@ WRITE64_DEVICE_HANDLER( naomibd_w )
|
||||
}
|
||||
else
|
||||
{
|
||||
mame_printf_verbose("naomibd: protection not handled for this game\n");
|
||||
logerror("naomibd: protection not handled for this game\n");
|
||||
}
|
||||
break;
|
||||
|
||||
@ -1043,7 +1029,43 @@ DEVICE_GET_INFO( naomibd )
|
||||
case DEVINFO_INT_TOKEN_BYTES: info->i = sizeof(naomibd_state); break;
|
||||
case DEVINFO_INT_INLINE_CONFIG_BYTES: info->i = sizeof(naomibd_config); break;
|
||||
case DEVINFO_INT_CLASS: info->i = DEVICE_CLASS_PERIPHERAL; break;
|
||||
case DEVINFO_INT_DMAOFFSET: info->i = get_safe_token(device)->dma_offset; break;
|
||||
case DEVINFO_INT_DMAOFFSET:
|
||||
// printf("DMA source %x, flags %x\n", get_safe_token(device)->dma_offset, get_safe_token(device)->dma_offset_flags);
|
||||
|
||||
// if the flag is cleared that lets the protection chip go,
|
||||
// we need to handle this specially.
|
||||
if (!(get_safe_token(device)->dma_offset_flags & NAOMIBD_FLAG_ADDRESS_SHUFFLE))
|
||||
{
|
||||
if (!strcmp(device->machine->gamedrv->name, "qmegamis"))
|
||||
{
|
||||
info->i = 0x9000000;
|
||||
break;
|
||||
}
|
||||
else if (!strcmp(device->machine->gamedrv->name, "mvsc2"))
|
||||
{
|
||||
switch (get_safe_token(device)->dma_offset)
|
||||
{
|
||||
case 0x08000000: info->i = 0x8800000; break;
|
||||
case 0x08026440: info->i = 0x8830000; break;
|
||||
case 0x0803bda0: info->i = 0x8850000; break;
|
||||
case 0x0805a560: info->i = 0x8870000; break;
|
||||
case 0x0805b720: info->i = 0x8880000; break;
|
||||
case 0x0808b7e0: info->i = 0x88a0000; break;
|
||||
default:
|
||||
info->i = get_safe_token(device)->dma_offset;
|
||||
break;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
logerror("Protected DMA not handled for this game (dma_offset %x)\n", get_safe_token(device)->dma_offset);
|
||||
}
|
||||
}
|
||||
|
||||
info->i = get_safe_token(device)->dma_offset;
|
||||
break;
|
||||
|
||||
/* --- the following bits of info are returned as pointers --- */
|
||||
case DEVINFO_PTR_ROM_REGION: info->romregion = NULL; break;
|
||||
@ -1072,4 +1094,3 @@ DEVICE_GET_INFO( naomibd )
|
||||
case DEVINFO_STR_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user