utoukond: Soundlatch modernization (nw)

This commit is contained in:
AJR 2017-11-20 01:31:52 -05:00
parent d860559a9f
commit c53fe98118
2 changed files with 10 additions and 9 deletions

View File

@ -2960,13 +2960,12 @@ ADDRESS_MAP_END
Ultra Toukond Densetsu Ultra Toukond Densetsu
***************************************************************************/ ***************************************************************************/
WRITE16_MEMBER(seta_state::utoukond_soundlatch_w) WRITE8_MEMBER(seta_state::utoukond_sound_control_w)
{ {
if (ACCESSING_BITS_0_7) if (!BIT(data, 6))
{ m_soundlatch->acknowledge_w(space, 0, 0);
m_audiocpu->set_input_line(0, HOLD_LINE);
m_soundlatch->write(space, 0, data & 0xff); // other bits used for banking? (low nibble seems to always be 2)
}
} }
static ADDRESS_MAP_START( utoukond_map, AS_PROGRAM, 16, seta_state ) static ADDRESS_MAP_START( utoukond_map, AS_PROGRAM, 16, seta_state )
@ -2985,7 +2984,7 @@ static ADDRESS_MAP_START( utoukond_map, AS_PROGRAM, 16, seta_state )
AM_RANGE(0xa00000, 0xa005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y AM_RANGE(0xa00000, 0xa005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
AM_RANGE(0xa00600, 0xa00607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16) AM_RANGE(0xa00600, 0xa00607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16)
AM_RANGE(0xb00000, 0xb03fff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritecode_r16, spritecode_w16) // Sprites Code + X + Attr AM_RANGE(0xb00000, 0xb03fff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritecode_r16, spritecode_w16) // Sprites Code + X + Attr
AM_RANGE(0xc00000, 0xc00001) AM_WRITE(utoukond_soundlatch_w) // To Sound CPU (cause an IRQ) AM_RANGE(0xc00000, 0xc00001) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0x00ff)
AM_RANGE(0xe00000, 0xe00001) AM_WRITENOP // ? ack AM_RANGE(0xe00000, 0xe00001) AM_WRITENOP // ? ack
ADDRESS_MAP_END ADDRESS_MAP_END
@ -3512,7 +3511,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( utoukond_sound_io_map, AS_IO, 8, seta_state ) static ADDRESS_MAP_START( utoukond_sound_io_map, AS_IO, 8, seta_state )
ADDRESS_MAP_GLOBAL_MASK(0xff) ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ymsnd", ym3438_device, read, write) AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ymsnd", ym3438_device, read, write)
AM_RANGE(0x80, 0x80) AM_WRITENOP //? AM_RANGE(0x80, 0x80) AM_WRITE(utoukond_sound_control_w)
AM_RANGE(0xc0, 0xc0) AM_DEVREAD("soundlatch", generic_latch_8_device, read) AM_RANGE(0xc0, 0xc0) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
ADDRESS_MAP_END ADDRESS_MAP_END
@ -9455,6 +9454,8 @@ static MACHINE_CONFIG_START( utoukond )
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_GENERIC_LATCH_SEPARATE_ACKNOWLEDGE(true)
MCFG_SOUND_ADD("x1snd", X1_010, 16000000) MCFG_SOUND_ADD("x1snd", X1_010, 16000000)
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)

View File

@ -170,7 +170,7 @@ public:
DECLARE_WRITE16_MEMBER(thunderl_protection_w); DECLARE_WRITE16_MEMBER(thunderl_protection_w);
DECLARE_READ8_MEMBER(wiggie_soundlatch_r); DECLARE_READ8_MEMBER(wiggie_soundlatch_r);
DECLARE_WRITE16_MEMBER(wiggie_soundlatch_w); DECLARE_WRITE16_MEMBER(wiggie_soundlatch_w);
DECLARE_WRITE16_MEMBER(utoukond_soundlatch_w); DECLARE_WRITE8_MEMBER(utoukond_sound_control_w);
DECLARE_READ16_MEMBER(pairlove_prot_r); DECLARE_READ16_MEMBER(pairlove_prot_r);
DECLARE_WRITE16_MEMBER(pairlove_prot_w); DECLARE_WRITE16_MEMBER(pairlove_prot_w);
DECLARE_WRITE8_MEMBER(sub_bankswitch_w); DECLARE_WRITE8_MEMBER(sub_bankswitch_w);