mirror of
https://github.com/holub/mame
synced 2025-06-08 13:53:52 +03:00
(MESS) megadriv.c: Attempt to properly emulate protection in Sould Edge vs Samurai Spirits. nw.
Also fixed the slot option for nflqb96.
This commit is contained in:
parent
f97a9fe6bd
commit
bee34ea13e
@ -362,7 +362,7 @@ static SLOT_INTERFACE_START(md_cart)
|
|||||||
SLOT_INTERFACE_INTERNAL("rom_eeprom", MD_STD_EEPROM)
|
SLOT_INTERFACE_INTERNAL("rom_eeprom", MD_STD_EEPROM)
|
||||||
SLOT_INTERFACE_INTERNAL("rom_nbajam", MD_EEPROM_NBAJAM)
|
SLOT_INTERFACE_INTERNAL("rom_nbajam", MD_EEPROM_NBAJAM)
|
||||||
SLOT_INTERFACE_INTERNAL("rom_nbajamte", MD_EEPROM_NBAJAMTE)
|
SLOT_INTERFACE_INTERNAL("rom_nbajamte", MD_EEPROM_NBAJAMTE)
|
||||||
SLOT_INTERFACE_INTERNAL("rom_nflqb", MD_EEPROM_NFLQB)
|
SLOT_INTERFACE_INTERNAL("rom_nflqb96", MD_EEPROM_NFLQB)
|
||||||
SLOT_INTERFACE_INTERNAL("rom_cslam", MD_EEPROM_CSLAM)
|
SLOT_INTERFACE_INTERNAL("rom_cslam", MD_EEPROM_CSLAM)
|
||||||
SLOT_INTERFACE_INTERNAL("rom_nhlpa", MD_EEPROM_NHLPA)
|
SLOT_INTERFACE_INTERNAL("rom_nhlpa", MD_EEPROM_NHLPA)
|
||||||
SLOT_INTERFACE_INTERNAL("rom_blara", MD_EEPROM_BLARA)
|
SLOT_INTERFACE_INTERNAL("rom_blara", MD_EEPROM_BLARA)
|
||||||
|
@ -733,13 +733,12 @@ WRITE16_MEMBER(md_rom_lion2_device::write)
|
|||||||
LION KING 3
|
LION KING 3
|
||||||
-------------------------------------------------*/
|
-------------------------------------------------*/
|
||||||
|
|
||||||
// TODO: Sould Edge vs Samurai Spirits uses this same mechanism (or a very similar one)
|
#define MD_LION3_ADDR(a) (((offset << 1) | (m_bank << 15)) & (m_rom_size - 1))/2
|
||||||
// but expects to bankswitch more than the first 32k chunk...
|
|
||||||
|
|
||||||
READ16_MEMBER(md_rom_lion3_device::read)
|
READ16_MEMBER(md_rom_lion3_device::read)
|
||||||
{
|
{
|
||||||
if (offset < 0x8000/2)
|
if (offset < 0x100000/2)
|
||||||
return m_rom[offset + (m_bank * 0x8000)/2];
|
return m_rom[MD_LION3_ADDR(offset)];
|
||||||
else if (offset >= 0x600000/2 && offset < 0x700000/2)
|
else if (offset >= 0x600000/2 && offset < 0x700000/2)
|
||||||
{
|
{
|
||||||
switch (offset & 0x7)
|
switch (offset & 0x7)
|
||||||
@ -847,10 +846,12 @@ READ16_MEMBER(md_rom_soulb_device::read)
|
|||||||
POKEMON STADIUM / KAIJU
|
POKEMON STADIUM / KAIJU
|
||||||
-------------------------------------------------*/
|
-------------------------------------------------*/
|
||||||
|
|
||||||
|
#define MD_POKESTAD_ADDR(a) (((offset << 1) | (m_bank << 15)) & (m_rom_size - 1))/2
|
||||||
|
|
||||||
READ16_MEMBER(md_rom_pokestad_device::read)
|
READ16_MEMBER(md_rom_pokestad_device::read)
|
||||||
{
|
{
|
||||||
if (offset < 0x8000/2)
|
if (offset < 0x100000/2)
|
||||||
return m_rom[offset + (m_bank * 0x8000)/2];
|
return m_rom[MD_POKESTAD_ADDR(offset)];
|
||||||
return m_rom[MD_ADDR(offset)];
|
return m_rom[MD_ADDR(offset)];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user