From def5602cca7eb65d1e17d9e7c8d6f19a4007e8ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Banaan=20Ananas?= Date: Thu, 23 May 2013 07:07:25 +0000 Subject: [PATCH] heavensgate soundlatch --- src/mame/drivers/zn.c | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/src/mame/drivers/zn.c b/src/mame/drivers/zn.c index 8a6f7496e58..53a27d07b2f 100644 --- a/src/mame/drivers/zn.c +++ b/src/mame/drivers/zn.c @@ -69,8 +69,9 @@ public: DECLARE_WRITE32_MEMBER(nbajamex_80_w); DECLARE_READ32_MEMBER(nbajamex_08_r); DECLARE_READ32_MEMBER(nbajamex_80_r); - DECLARE_WRITE8_MEMBER(coh1001l_bnk_w); - DECLARE_WRITE8_MEMBER(coh1002v_bnk_w); + DECLARE_WRITE8_MEMBER(coh1001l_bank_w); + DECLARE_WRITE16_MEMBER(coh1001l_latch_w); + DECLARE_WRITE8_MEMBER(coh1002v_bank_w); DECLARE_WRITE8_MEMBER(coh1002m_bank_w); DECLARE_READ8_MEMBER(cbaj_from_z80_latch_r); DECLARE_WRITE8_MEMBER(cbaj_to_z80_latch_w); @@ -2158,14 +2159,21 @@ Notes: VSync - 60Hz */ -WRITE8_MEMBER(zn_state::coh1001l_bnk_w) +WRITE8_MEMBER(zn_state::coh1001l_bank_w) { membank( "bankedroms" )->set_base( memregion( "bankedroms" )->base() + ( ( data & 3 ) * 0x800000 ) ); } +WRITE16_MEMBER(zn_state::coh1001l_latch_w) +{ + soundlatch_word_w(space, 0, data); + //m_audiocpu->set_input_line(3, HOLD_LINE); +} + static ADDRESS_MAP_START(coh1001l_map, AS_PROGRAM, 32, zn_state) AM_RANGE(0x1f000000, 0x1f7fffff) AM_ROMBANK("bankedroms") - AM_RANGE(0x1fb00000, 0x1fb00003) AM_WRITE8(coh1001l_bnk_w, 0x00ff0000) + AM_RANGE(0x1fb00000, 0x1fb00003) AM_WRITE16(coh1001l_latch_w, 0x0000ffff) + AM_RANGE(0x1fb00000, 0x1fb00003) AM_WRITE8(coh1001l_bank_w, 0x00ff0000) AM_IMPORT_FROM(zn_map) ADDRESS_MAP_END @@ -2177,7 +2185,7 @@ MACHINE_RESET_MEMBER(zn_state,coh1001l) static ADDRESS_MAP_START( atlus_snd_map, AS_PROGRAM, 16, zn_state ) AM_RANGE(0x000000, 0x03ffff) AM_ROM - //AM_RANGE(0x100000, 0x100001) ?? + AM_RANGE(0x100000, 0x100001) AM_READ(soundlatch_word_r) AM_RANGE(0x200000, 0x200003) AM_DEVREADWRITE8("ymz", ymz280b_device, read, write, 0x00ff) AM_RANGE(0x700000, 0x70ffff) AM_RAM ADDRESS_MAP_END @@ -2193,6 +2201,8 @@ static MACHINE_CONFIG_DERIVED(coh1001l, zn1_2mb_vram) MCFG_MACHINE_RESET_OVERRIDE(zn_state, coh1001l) MCFG_SOUND_ADD("ymz", YMZ280B, XTAL_16_9344MHz) + MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) + MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) MACHINE_CONFIG_END /* @@ -2208,7 +2218,7 @@ Key: Mother KN01 */ -WRITE8_MEMBER(zn_state::coh1002v_bnk_w) +WRITE8_MEMBER(zn_state::coh1002v_bank_w) { membank( "bankedroms" )->set_base( memregion( "bankedroms" )->base() + ( data * 0x100000 ) ); } @@ -2216,7 +2226,7 @@ WRITE8_MEMBER(zn_state::coh1002v_bnk_w) static ADDRESS_MAP_START(coh1002v_map, AS_PROGRAM, 32, zn_state) AM_RANGE(0x1f000000, 0x1f27ffff) AM_ROM AM_REGION("fixedroms", 0) AM_RANGE(0x1fb00000, 0x1fbfffff) AM_ROMBANK("bankedroms") - AM_RANGE(0x1fb00000, 0x1fb00003) AM_WRITE8(coh1002v_bnk_w, 0x000000ff) + AM_RANGE(0x1fb00000, 0x1fb00003) AM_WRITE8(coh1002v_bank_w, 0x000000ff) AM_IMPORT_FROM(zn_map) ADDRESS_MAP_END