mirror of
https://github.com/holub/mame
synced 2025-06-09 14:22:41 +03:00
marble: The slapstic seems to trigger on more than the banking zone.
This commit is contained in:
parent
98752caae1
commit
ccb85b19f9
@ -2491,6 +2491,11 @@ void atarisy1_state::init_slapstic()
|
|||||||
m_maincpu->space(AS_PROGRAM).install_readwrite_tap(0x80000, 0x87fff, 0, "slapstic",
|
m_maincpu->space(AS_PROGRAM).install_readwrite_tap(0x80000, 0x87fff, 0, "slapstic",
|
||||||
[this](offs_t offset, u16 &data, u16 mem_mask) { m_slapstic->tweak(offset >> 1); },
|
[this](offs_t offset, u16 &data, u16 mem_mask) { m_slapstic->tweak(offset >> 1); },
|
||||||
[this](offs_t offset, u16 &data, u16 mem_mask) { m_slapstic->tweak(offset >> 1); });
|
[this](offs_t offset, u16 &data, u16 mem_mask) { m_slapstic->tweak(offset >> 1); });
|
||||||
|
|
||||||
|
// The slaptic seems to trigger on the whole rom, but that slows things down too much. limit to the range marble madness actually needs
|
||||||
|
m_maincpu->space(AS_PROGRAM).install_readwrite_tap(0x2ff5a, 0x2ff5b, 0, "slapstic",
|
||||||
|
[this](offs_t offset, u16 &data, u16 mem_mask) { logerror("!! %x\n", offset); m_slapstic->tweak(offset >> 1); },
|
||||||
|
[this](offs_t offset, u16 &data, u16 mem_mask) { m_slapstic->tweak(offset >> 1); });
|
||||||
}
|
}
|
||||||
|
|
||||||
void atarisy1_state::init_marble()
|
void atarisy1_state::init_marble()
|
||||||
|
@ -867,11 +867,16 @@ int atari_slapstic_device::tweak(offs_t offset)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
/* ALTERNATE1 state: look for alternate2 offset, or else fall back to ENABLED */
|
/* ALTERNATE1 state: look for alternate2 offset, or else fall back to ENABLED */
|
||||||
|
/* Can also go to ADDITIVE1. Not a hack, it's real. */
|
||||||
case ALTERNATE1:
|
case ALTERNATE1:
|
||||||
if (MATCHES_MASK_VALUE(offset, slapstic.alt2))
|
if (MATCHES_MASK_VALUE(offset, slapstic.alt2))
|
||||||
{
|
{
|
||||||
state = ALTERNATE2;
|
state = ALTERNATE2;
|
||||||
}
|
}
|
||||||
|
else if (MATCHES_MASK_VALUE(offset, slapstic.add1))
|
||||||
|
{
|
||||||
|
state = ADDITIVE1;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
state = ENABLED;
|
state = ENABLED;
|
||||||
@ -994,10 +999,9 @@ int atari_slapstic_device::tweak(offs_t offset)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* ADDITIVE3 state: waiting for a bank to seal the deal */
|
/* ADDITIVE3 state: waiting for the commit, which is common with alt, but can be delayed */
|
||||||
case ADDITIVE3:
|
case ADDITIVE3:
|
||||||
if (offset == slapstic.bank[0] || offset == slapstic.bank[1] ||
|
if (MATCHES_MASK_VALUE(offset, slapstic.alt4))
|
||||||
offset == slapstic.bank[2] || offset == slapstic.bank[3])
|
|
||||||
{
|
{
|
||||||
state = DISABLED;
|
state = DISABLED;
|
||||||
current_bank = add_bank;
|
current_bank = add_bank;
|
||||||
|
Loading…
Reference in New Issue
Block a user