mirror of
https://github.com/holub/mame
synced 2025-04-23 17:00:53 +03:00
inufuku.cpp: Soundlatch modernization (nw)
This commit is contained in:
parent
8154dd217d
commit
774032e48b
@ -89,25 +89,6 @@ TODO:
|
||||
|
||||
******************************************************************************/
|
||||
|
||||
WRITE16_MEMBER(inufuku_state::inufuku_soundcommand_w)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
/* hack... sound doesn't work otherwise */
|
||||
if (data == 0x08)
|
||||
return;
|
||||
|
||||
m_pending_command = 1;
|
||||
m_soundlatch->write(space, 0, data & 0xff);
|
||||
m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
|
||||
}
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(inufuku_state::pending_command_clear_w)
|
||||
{
|
||||
m_pending_command = 0;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(inufuku_state::inufuku_soundrombank_w)
|
||||
{
|
||||
membank("bank1")->set_entry(data & 0x03);
|
||||
@ -121,9 +102,7 @@ WRITE8_MEMBER(inufuku_state::inufuku_soundrombank_w)
|
||||
|
||||
CUSTOM_INPUT_MEMBER(inufuku_state::soundflag_r)
|
||||
{
|
||||
uint16_t soundflag = m_pending_command ? 0 : 1;
|
||||
|
||||
return soundflag;
|
||||
return m_soundlatch->pending_r() ? 0 : 1;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
@ -145,7 +124,7 @@ static ADDRESS_MAP_START( inufuku_map, AS_PROGRAM, 16, inufuku_state )
|
||||
AM_RANGE(0x18000a, 0x18000b) AM_READ_PORT("P3")
|
||||
|
||||
AM_RANGE(0x200000, 0x200001) AM_WRITE_PORT("EEPROMOUT")
|
||||
AM_RANGE(0x280000, 0x280001) AM_WRITE(inufuku_soundcommand_w) // sound command
|
||||
AM_RANGE(0x280000, 0x280001) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0x00ff) // sound command
|
||||
|
||||
AM_RANGE(0x300000, 0x301fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // palette ram
|
||||
AM_RANGE(0x380000, 0x3801ff) AM_WRITEONLY AM_SHARE("bg_rasterram") // bg raster ram
|
||||
@ -179,7 +158,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( inufuku_sound_io_map, AS_IO, 8, inufuku_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x00, 0x00) AM_WRITE(inufuku_soundrombank_w)
|
||||
AM_RANGE(0x04, 0x04) AM_DEVREAD("soundlatch", generic_latch_8_device, read) AM_WRITE(pending_command_clear_w)
|
||||
AM_RANGE(0x04, 0x04) AM_DEVREADWRITE("soundlatch", generic_latch_8_device, read, acknowledge_w)
|
||||
AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -331,8 +310,6 @@ void inufuku_state::machine_start()
|
||||
membank("bank1")->configure_entries(0, 4, &ROM[0x00000], 0x8000);
|
||||
membank("bank1")->set_entry(0);
|
||||
|
||||
|
||||
save_item(NAME(m_pending_command));
|
||||
save_item(NAME(m_bg_scrollx));
|
||||
save_item(NAME(m_bg_scrolly));
|
||||
save_item(NAME(m_tx_scrollx));
|
||||
@ -344,7 +321,6 @@ void inufuku_state::machine_start()
|
||||
|
||||
void inufuku_state::machine_reset()
|
||||
{
|
||||
m_pending_command = 1;
|
||||
m_bg_scrollx = 0;
|
||||
m_bg_scrolly = 0;
|
||||
m_tx_scrollx = 0;
|
||||
@ -394,6 +370,8 @@ static MACHINE_CONFIG_START( inufuku )
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
|
||||
MCFG_GENERIC_LATCH_DATA_PENDING_CB(INPUTLINE("audiocpu", INPUT_LINE_NMI))
|
||||
MCFG_GENERIC_LATCH_SEPARATE_ACKNOWLEDGE(true)
|
||||
|
||||
MCFG_SOUND_ADD("ymsnd", YM2610, 32000000/4)
|
||||
MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
|
||||
|
@ -43,9 +43,6 @@ public:
|
||||
std::unique_ptr<uint16_t[]> m_spriteram1_old;
|
||||
uint32_t inufuku_tile_callback( uint32_t code );
|
||||
|
||||
/* misc */
|
||||
uint16_t m_pending_command;
|
||||
|
||||
/* devices */
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<cpu_device> m_audiocpu;
|
||||
@ -54,8 +51,6 @@ public:
|
||||
required_device<vsystem_spr_device> m_spr;
|
||||
required_device<generic_latch_8_device> m_soundlatch;
|
||||
|
||||
DECLARE_WRITE16_MEMBER(inufuku_soundcommand_w);
|
||||
DECLARE_WRITE8_MEMBER(pending_command_clear_w);
|
||||
DECLARE_WRITE8_MEMBER(inufuku_soundrombank_w);
|
||||
DECLARE_WRITE16_MEMBER(inufuku_palettereg_w);
|
||||
DECLARE_WRITE16_MEMBER(inufuku_scrollreg_w);
|
||||
|
Loading…
Reference in New Issue
Block a user