summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/gladiatr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/gladiatr.cpp')
-rw-r--r--src/mame/drivers/gladiatr.cpp39
1 files changed, 27 insertions, 12 deletions
diff --git a/src/mame/drivers/gladiatr.cpp b/src/mame/drivers/gladiatr.cpp
index 0c157ccc9bb..dc22c4f0cf0 100644
--- a/src/mame/drivers/gladiatr.cpp
+++ b/src/mame/drivers/gladiatr.cpp
@@ -241,13 +241,23 @@ WRITE8_MEMBER(gladiatr_state::gladiator_adpcm_w)
m_msm->vclk_w (BIT(data, 4)); // bit 4
}
-WRITE8_MEMBER(gladiatr_state::gladiator_cpu_sound_command_w)
+WRITE8_MEMBER(ppking_state::ppking_adpcm_w)
+{
+ // bit 6 = bank offset
+ //membank("bank2")->set_entry((data & 0x40) ? 1 : 0);
+
+ m_msm->data_w(data); // bit 0..3
+ m_msm->reset_w(BIT(data, 5)); // bit 5
+ m_msm->vclk_w (BIT(data, 4)); // bit 4
+}
+
+WRITE8_MEMBER(gladiatr_state_base::adpcm_command_w)
{
m_soundlatch->write(space,0,data);
m_audiocpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
}
-READ8_MEMBER(gladiatr_state::gladiator_cpu_sound_command_r)
+READ8_MEMBER(gladiatr_state_base::adpcm_command_r)
{
m_audiocpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
return m_soundlatch->read(space,0);
@@ -532,7 +542,7 @@ WRITE8_MEMBER(ppking_state::ppking_qx0_w)
m_mcu[0].txd = data;
m_mcu[1].rst = 0;
- m_soundlatch->write(space, 0, data & 0xff);
+ m_soundlatch2->write(space, 0, data & 0xff);
if(m_mcu[0].txd == 0x41)
{
@@ -585,7 +595,7 @@ READ8_MEMBER(ppking_state::ppking_qx1_r)
if(m_mcu[1].rst == 1)
return 0x40;
- return m_soundlatch->read(space,0);
+ return m_soundlatch2->read(space,0);
}
READ8_MEMBER(ppking_state::ppking_qx2_r)
@@ -636,8 +646,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( ppking_cpu3_map, AS_PROGRAM, 8, ppking_state )
- AM_RANGE(0x2000, 0x2fff) AM_ROM
- AM_RANGE(0xc000, 0xffff) AM_ROM
+ AM_RANGE(0x1000, 0x1fff) AM_WRITE(ppking_adpcm_w)
+ AM_RANGE(0x2000, 0x2fff) AM_READ(adpcm_command_r)
+ AM_RANGE(0x8000, 0xffff) AM_ROM AM_WRITENOP
ADDRESS_MAP_END
static ADDRESS_MAP_START( ppking_cpu1_io, AS_IO, 8, ppking_state )
@@ -654,8 +665,9 @@ static ADDRESS_MAP_START( ppking_cpu2_io, AS_IO, 8, ppking_state )
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym2203_device, read, write)
AM_RANGE(0x20, 0x21) AM_READ(ppking_qx1_r) AM_WRITE(ppking_qx1_w)
AM_RANGE(0x40, 0x40) AM_READNOP
- AM_RANGE(0x60, 0x61) AM_READWRITE(ppking_qx2_r,ppking_qx2_w)
+ AM_RANGE(0x60, 0x61) AM_READWRITE(ppking_qx2_r,ppking_qx2_w) // unaccessed, probably leftover
AM_RANGE(0x80, 0x81) AM_READWRITE(ppking_qx3_r,ppking_qx3_w)
+ AM_RANGE(0xe0, 0xe0) AM_WRITE(adpcm_command_w)
ADDRESS_MAP_END
@@ -680,8 +692,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( gladiatr_cpu3_map, AS_PROGRAM, 8, gladiatr_state )
AM_RANGE(0x1000, 0x1fff) AM_WRITE(gladiator_adpcm_w)
- AM_RANGE(0x2000, 0x2fff) AM_READ(gladiator_cpu_sound_command_r)
- AM_RANGE(0x4000, 0xffff) AM_ROMBANK("bank2")
+ AM_RANGE(0x2000, 0x2fff) AM_READ(adpcm_command_r)
+ AM_RANGE(0x4000, 0xffff) AM_ROMBANK("bank2") AM_WRITENOP
ADDRESS_MAP_END
@@ -700,7 +712,7 @@ static ADDRESS_MAP_START( gladiatr_cpu2_io, AS_IO, 8, gladiatr_state )
AM_RANGE(0x60, 0x61) AM_DEVREADWRITE("cctl", upi41_cpu_device, upi41_master_r, upi41_master_w)
AM_RANGE(0x80, 0x81) AM_DEVREADWRITE("ccpu", upi41_cpu_device, upi41_master_r, upi41_master_w)
AM_RANGE(0xa0, 0xa7) AM_DEVWRITE("filtlatch", ls259_device, write_d0)
- AM_RANGE(0xe0, 0xe0) AM_WRITE(gladiator_cpu_sound_command_w)
+ AM_RANGE(0xe0, 0xe0) AM_WRITE(adpcm_command_w)
ADDRESS_MAP_END
@@ -983,6 +995,7 @@ static MACHINE_CONFIG_START( ppking )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
+ MCFG_GENERIC_LATCH_8_ADD("soundlatch2")
MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_12MHz/8) /* verified on pcb */
MCFG_YM2203_IRQ_HANDLER(WRITELINE(gladiatr_state_base, ym_irq))
@@ -1111,9 +1124,11 @@ ROM_START( ppking )
ROM_LOAD( "q0_16.6e", 0x4000, 0x2000, CRC(b1e32588) SHA1(13c74479238a34a08e249f9120b42a52d80f8274) )
ROM_REGION( 0x10000, "audiocpu", 0 )
- ROM_LOAD( "q0_19.5n", 0x0c000, 0x2000, CRC(4bcf896d) SHA1(f587a66fcc63e989742ce2d5f4cf2bb464987038) )
+ ROM_LOAD( "q0_19.5n", 0x0a000, 0x2000, CRC(4bcf896d) SHA1(f587a66fcc63e989742ce2d5f4cf2bb464987038) )
+ ROM_RELOAD( 0x08000, 0x2000 )
ROM_LOAD( "q0_18.5m", 0x0e000, 0x2000, CRC(89ba64f8) SHA1(fa01316ea744b4277ee64d5f14cb6d7e3a949f2b) )
-
+ ROM_RELOAD( 0x0c000, 0x2000 )
+
ROM_REGION( 0x02000, "gfx1", 0 )
ROM_LOAD( "q0_15.1r", 0x00000, 0x2000, CRC(fbd33219) SHA1(78b9bb327ededaa818d26c41c5e8fd1c041ef142) )