crospang, crshrace, dcheese: More soundlatch cleanups

This commit is contained in:
Dirk Best 2017-01-03 05:03:22 +01:00
parent c3e70cf29c
commit bb11db2bd1
8 changed files with 11 additions and 51 deletions

View File

@ -287,14 +287,12 @@ WRITE_LINE_MEMBER(ashnojoe_state::ashnojoe_vclk_cb)
void ashnojoe_state::machine_start() void ashnojoe_state::machine_start()
{ {
save_item(NAME(m_adpcm_byte)); save_item(NAME(m_adpcm_byte));
save_item(NAME(m_soundlatch_status));
save_item(NAME(m_msm5205_vclk_toggle)); save_item(NAME(m_msm5205_vclk_toggle));
} }
void ashnojoe_state::machine_reset() void ashnojoe_state::machine_reset()
{ {
m_adpcm_byte = 0; m_adpcm_byte = 0;
m_soundlatch_status = 0;
m_msm5205_vclk_toggle = 0; m_msm5205_vclk_toggle = 0;
} }

View File

@ -40,14 +40,6 @@
#include "includes/crospang.h" #include "includes/crospang.h"
WRITE16_MEMBER(crospang_state::crospang_soundlatch_w)
{
if(ACCESSING_BITS_0_7)
{
m_soundlatch->write(space, 0, data & 0xff);
}
}
/* main cpu */ /* main cpu */
static ADDRESS_MAP_START( crospang_base_map, AS_PROGRAM, 16, crospang_state ) static ADDRESS_MAP_START( crospang_base_map, AS_PROGRAM, 16, crospang_state )
@ -57,7 +49,7 @@ static ADDRESS_MAP_START( crospang_base_map, AS_PROGRAM, 16, crospang_state )
AM_RANGE(0x122000, 0x1227ff) AM_RAM_WRITE(crospang_bg_videoram_w) AM_SHARE("bg_videoram") AM_RANGE(0x122000, 0x1227ff) AM_RAM_WRITE(crospang_bg_videoram_w) AM_SHARE("bg_videoram")
AM_RANGE(0x200000, 0x2005ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x200000, 0x2005ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x210000, 0x2107ff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x210000, 0x2107ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x270000, 0x270001) AM_WRITE(crospang_soundlatch_w) AM_RANGE(0x270000, 0x270001) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0x00ff)
AM_RANGE(0x270004, 0x270007) AM_WRITENOP // ?? AM_RANGE(0x270004, 0x270007) AM_WRITENOP // ??
AM_RANGE(0x280000, 0x280001) AM_READ_PORT("P1_P2") AM_RANGE(0x280000, 0x280001) AM_READ_PORT("P1_P2")
AM_RANGE(0x280002, 0x280003) AM_READ_PORT("COIN") AM_RANGE(0x280002, 0x280003) AM_READ_PORT("COIN")

View File

@ -143,15 +143,12 @@ WRITE8_MEMBER(crshrace_state::crshrace_sh_bankswitch_w)
m_z80bank->set_entry(data & 0x03); m_z80bank->set_entry(data & 0x03);
} }
WRITE16_MEMBER(crshrace_state::sound_command_w) WRITE8_MEMBER(crshrace_state::sound_command_w)
{
if (ACCESSING_BITS_0_7)
{ {
m_pending_command = 1; m_pending_command = 1;
m_soundlatch->write(space, offset, data & 0xff); m_soundlatch->write(space, offset, data & 0xff);
m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
} }
}
CUSTOM_INPUT_MEMBER(crshrace_state::country_sndpending_r) CUSTOM_INPUT_MEMBER(crshrace_state::country_sndpending_r)
{ {
@ -164,7 +161,6 @@ WRITE8_MEMBER(crshrace_state::pending_command_clear_w)
} }
static ADDRESS_MAP_START( crshrace_map, AS_PROGRAM, 16, crshrace_state ) static ADDRESS_MAP_START( crshrace_map, AS_PROGRAM, 16, crshrace_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x300000, 0x3fffff) AM_ROM AM_REGION("user1", 0) AM_RANGE(0x300000, 0x3fffff) AM_ROM AM_REGION("user1", 0)
@ -180,7 +176,7 @@ static ADDRESS_MAP_START( crshrace_map, AS_PROGRAM, 16, crshrace_state )
AM_RANGE(0xfff002, 0xfff003) AM_READ_PORT("P2") AM_RANGE(0xfff002, 0xfff003) AM_READ_PORT("P2")
AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW0") AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW0")
AM_RANGE(0xfff006, 0xfff007) AM_READ_PORT("DSW2") AM_RANGE(0xfff006, 0xfff007) AM_READ_PORT("DSW2")
AM_RANGE(0xfff008, 0xfff009) AM_WRITE(sound_command_w) AM_RANGE(0xfff008, 0xfff009) AM_WRITE8(sound_command_w, 0x00ff)
AM_RANGE(0xfff00a, 0xfff00b) AM_READ_PORT("DSW1") AM_RANGE(0xfff00a, 0xfff00b) AM_READ_PORT("DSW1")
AM_RANGE(0xfff00e, 0xfff00f) AM_READ_PORT("P3") AM_RANGE(0xfff00e, 0xfff00f) AM_READ_PORT("P3")
AM_RANGE(0xfff020, 0xfff03f) AM_DEVWRITE("k053936", k053936_device, ctrl_w) AM_RANGE(0xfff020, 0xfff03f) AM_DEVWRITE("k053936", k053936_device, ctrl_w)

View File

@ -92,7 +92,6 @@ INTERRUPT_GEN_MEMBER(dcheese_state::dcheese_vblank)
void dcheese_state::machine_start() void dcheese_state::machine_start()
{ {
save_item(NAME(m_irq_state)); save_item(NAME(m_irq_state));
save_item(NAME(m_soundlatch_full));
save_item(NAME(m_sound_control)); save_item(NAME(m_sound_control));
save_item(NAME(m_sound_msb_latch)); save_item(NAME(m_sound_msb_latch));
} }
@ -107,7 +106,7 @@ void dcheese_state::machine_start()
CUSTOM_INPUT_MEMBER(dcheese_state::sound_latch_state_r) CUSTOM_INPUT_MEMBER(dcheese_state::sound_latch_state_r)
{ {
return m_soundlatch_full; return m_soundlatch->pending_r();
} }
@ -123,18 +122,6 @@ WRITE16_MEMBER(dcheese_state::eeprom_control_w)
} }
WRITE16_MEMBER(dcheese_state::sound_command_w)
{
if (ACCESSING_BITS_0_7)
{
/* write the latch and set the IRQ */
m_soundlatch_full = 1;
m_audiocpu->set_input_line(0, ASSERT_LINE);
m_soundlatch->write(space, 0, data & 0xff);
}
}
/************************************* /*************************************
* *
@ -142,15 +129,6 @@ WRITE16_MEMBER(dcheese_state::sound_command_w)
* *
*************************************/ *************************************/
READ8_MEMBER(dcheese_state::sound_command_r)
{
/* read the latch and clear the IRQ */
m_soundlatch_full = 0;
m_audiocpu->set_input_line(0, CLEAR_LINE);
return m_soundlatch->read(space, 0);
}
READ8_MEMBER(dcheese_state::sound_status_r) READ8_MEMBER(dcheese_state::sound_status_r)
{ {
/* seems to be ready signal on BSMT or latching hardware */ /* seems to be ready signal on BSMT or latching hardware */
@ -202,7 +180,7 @@ static ADDRESS_MAP_START( main_cpu_map, AS_PROGRAM, 16, dcheese_state )
AM_RANGE(0x260000, 0x26001f) AM_WRITE(madmax_blitter_xparam_w) AM_RANGE(0x260000, 0x26001f) AM_WRITE(madmax_blitter_xparam_w)
AM_RANGE(0x280000, 0x28001f) AM_WRITE(madmax_blitter_yparam_w) AM_RANGE(0x280000, 0x28001f) AM_WRITE(madmax_blitter_yparam_w)
AM_RANGE(0x2a0000, 0x2a003f) AM_READWRITE(madmax_blitter_vidparam_r, madmax_blitter_vidparam_w) AM_RANGE(0x2a0000, 0x2a003f) AM_READWRITE(madmax_blitter_vidparam_r, madmax_blitter_vidparam_w)
AM_RANGE(0x2e0000, 0x2e0001) AM_WRITE(sound_command_w) AM_RANGE(0x2e0000, 0x2e0001) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0x00ff)
AM_RANGE(0x300000, 0x300001) AM_WRITE(madmax_blitter_unknown_w) AM_RANGE(0x300000, 0x300001) AM_WRITE(madmax_blitter_unknown_w)
ADDRESS_MAP_END ADDRESS_MAP_END
@ -217,7 +195,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_cpu_map, AS_PROGRAM, 8, dcheese_state ) static ADDRESS_MAP_START( sound_cpu_map, AS_PROGRAM, 8, dcheese_state )
ADDRESS_MAP_UNMAP_HIGH ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x07ff) AM_READWRITE(sound_status_r, sound_control_w) AM_RANGE(0x0000, 0x07ff) AM_READWRITE(sound_status_r, sound_control_w)
AM_RANGE(0x0800, 0x0fff) AM_READ(sound_command_r) AM_RANGE(0x0800, 0x0fff) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
AM_RANGE(0x1000, 0x10ff) AM_MIRROR(0x0700) AM_WRITE(bsmt_data_w) AM_RANGE(0x1000, 0x10ff) AM_MIRROR(0x0700) AM_WRITE(bsmt_data_w)
AM_RANGE(0x1800, 0x1fff) AM_RAM AM_RANGE(0x1800, 0x1fff) AM_RAM
AM_RANGE(0x2000, 0xffff) AM_ROM AM_RANGE(0x2000, 0xffff) AM_ROM
@ -421,6 +399,7 @@ static MACHINE_CONFIG_START( dcheese, dcheese_state )
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_GENERIC_LATCH_8_ADD("soundlatch") MCFG_GENERIC_LATCH_8_ADD("soundlatch")
MCFG_GENERIC_LATCH_DATA_PENDING_CB(INPUTLINE("audiocpu", 0))
MCFG_BSMT2000_ADD("bsmt", SOUND_OSC) MCFG_BSMT2000_ADD("bsmt", SOUND_OSC)
MCFG_SOUND_ROUTE(0, "lspeaker", 1.2) MCFG_SOUND_ROUTE(0, "lspeaker", 1.2)

View File

@ -51,7 +51,6 @@ public:
/* sound-related */ /* sound-related */
uint8_t m_adpcm_byte; uint8_t m_adpcm_byte;
int m_soundlatch_status;
int m_msm5205_vclk_toggle; int m_msm5205_vclk_toggle;
/* devices */ /* devices */

View File

@ -38,7 +38,6 @@ public:
required_device<gfxdecode_device> m_gfxdecode; required_device<gfxdecode_device> m_gfxdecode;
required_device<generic_latch_8_device> m_soundlatch; required_device<generic_latch_8_device> m_soundlatch;
DECLARE_WRITE16_MEMBER(crospang_soundlatch_w);
DECLARE_WRITE16_MEMBER(bestri_tilebank_w); DECLARE_WRITE16_MEMBER(bestri_tilebank_w);
DECLARE_WRITE16_MEMBER(bestri_bg_scrolly_w); DECLARE_WRITE16_MEMBER(bestri_bg_scrolly_w);
DECLARE_WRITE16_MEMBER(bestri_fg_scrolly_w); DECLARE_WRITE16_MEMBER(bestri_fg_scrolly_w);

View File

@ -54,7 +54,7 @@ public:
/* devices */ /* devices */
DECLARE_WRITE8_MEMBER(crshrace_sh_bankswitch_w); DECLARE_WRITE8_MEMBER(crshrace_sh_bankswitch_w);
DECLARE_WRITE16_MEMBER(sound_command_w); DECLARE_WRITE8_MEMBER(sound_command_w);
DECLARE_WRITE8_MEMBER(pending_command_clear_w); DECLARE_WRITE8_MEMBER(pending_command_clear_w);
DECLARE_WRITE16_MEMBER(crshrace_videoram1_w); DECLARE_WRITE16_MEMBER(crshrace_videoram1_w);
DECLARE_WRITE16_MEMBER(crshrace_videoram2_w); DECLARE_WRITE16_MEMBER(crshrace_videoram2_w);

View File

@ -38,7 +38,6 @@ public:
/* misc */ /* misc */
uint8_t m_irq_state[5]; uint8_t m_irq_state[5];
uint8_t m_soundlatch_full;
uint8_t m_sound_control; uint8_t m_sound_control;
uint8_t m_sound_msb_latch; uint8_t m_sound_msb_latch;
@ -50,8 +49,6 @@ public:
required_device<generic_latch_8_device> m_soundlatch; required_device<generic_latch_8_device> m_soundlatch;
DECLARE_WRITE16_MEMBER(eeprom_control_w); DECLARE_WRITE16_MEMBER(eeprom_control_w);
DECLARE_WRITE16_MEMBER(sound_command_w);
DECLARE_READ8_MEMBER(sound_command_r);
DECLARE_READ8_MEMBER(sound_status_r); DECLARE_READ8_MEMBER(sound_status_r);
DECLARE_WRITE8_MEMBER(sound_control_w); DECLARE_WRITE8_MEMBER(sound_control_w);
DECLARE_WRITE8_MEMBER(bsmt_data_w); DECLARE_WRITE8_MEMBER(bsmt_data_w);