From 62519d584bb984453aea468e717506246d313659 Mon Sep 17 00:00:00 2001 From: cam900 Date: Wed, 21 Feb 2018 15:16:19 +0900 Subject: deco32 : Fix remaining mistakes, Add notes (#3220) * deco32 : Cleanup duplicates, Remove unneed shared_ptr, Add notes, Convert m_spriteram16*/m_spriteram16_buffered*/m_pf_rowscroll* to std::unique_ptr, Rowscroll RAM size allocated to memory mapped size lockload : Improve OKI Bankswitching, Add notes Demote Dragon Gun with MACHINE_IMPERFECT_SOUND, because OKI3 bankswitching aren't verified * deco32 : Minor fix * deco32 : More cleanups * deco32 : Move m_oki2_bank to dragngun_state * deco32 : Fix IOPORT Tags to captaven * Fix deco32.cpp ioport tags when "DSW" aren't actually dip switch * deco32 : Fix remaining mistakes, Add notes --- src/mame/drivers/deco32.cpp | 16 ++++++++++------ src/mame/includes/deco32.h | 4 ++-- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/mame/drivers/deco32.cpp b/src/mame/drivers/deco32.cpp index 802b68e4d72..b640fceff80 100644 --- a/src/mame/drivers/deco32.cpp +++ b/src/mame/drivers/deco32.cpp @@ -668,12 +668,12 @@ ADDRESS_MAP_END // lockload needs hi bits of OKI2 bankswitching ADDRESS_MAP_START(dragngun_state::lockload_sound_map) AM_IMPORT_FROM(z80_sound_map) - AM_RANGE(0xe000, 0xe000) AM_WRITE(lockload_okibank_w) + AM_RANGE(0xe000, 0xe000) AM_WRITE(lockload_okibank_hi_w) ADDRESS_MAP_END ADDRESS_MAP_START(dragngun_state::lockloadu_sound_map) AM_IMPORT_FROM(h6280_sound_map) - AM_RANGE(0x150000, 0x150000) AM_WRITE(lockload_okibank_w) + AM_RANGE(0x150000, 0x150000) AM_WRITE(lockload_okibank_hi_w) ADDRESS_MAP_END @@ -788,17 +788,18 @@ WRITE8_MEMBER( deco32_state::sound_bankswitch_w ) m_oki[1]->set_rom_bank((data >> 1) & 1); } -WRITE8_MEMBER( dragngun_state::sound_bankswitch_w ) +WRITE8_MEMBER( dragngun_state::lockload_okibank_lo_w ) { m_oki2_bank = (m_oki2_bank & 2) | ((data >> 1) & 1); + logerror("Load OKI2 Bank Low bits: %02x, Current : %02x\n",(data >> 1) & 1, m_oki2_bank); m_oki[0]->set_rom_bank((data >> 0) & 1); m_oki[1]->set_rom_bank(m_oki2_bank); } -WRITE8_MEMBER( dragngun_state::lockload_okibank_w ) +WRITE8_MEMBER( dragngun_state::lockload_okibank_hi_w ) { m_oki2_bank = (m_oki2_bank & 1) | ((data & 1) << 1); // TODO : Actually value unverified - logerror("Load OKI2 Bank Hi bits: %02x\n",data); + logerror("Load OKI2 Bank Hi bits: %02x, Current : %02x\n",((data & 1) << 1), m_oki2_bank); m_oki[1]->set_rom_bank(m_oki2_bank); } @@ -2188,6 +2189,9 @@ MACHINE_CONFIG_START(dragngun_state::lockloadu) MCFG_DEVICE_MODIFY("tilegen2") MCFG_DECO16IC_PF1_SIZE(DECO_32x32) MCFG_DECO16IC_PF2_SIZE(DECO_32x32) // lockload definitely wants pf34 half width.. + + MCFG_SOUND_MODIFY("ymsnd") + MCFG_YM2151_PORT_WRITE_HANDLER(WRITE8(dragngun_state, lockload_okibank_lo_w)) MACHINE_CONFIG_END // DE-0420-1 + Bottom board DE-0421-0 @@ -2277,7 +2281,7 @@ MACHINE_CONFIG_START(dragngun_state::lockload) MCFG_YM2151_ADD("ymsnd", 32220000/9) MCFG_YM2151_IRQ_HANDLER(DEVWRITELINE("sound_irq_merger", input_merger_any_high_device, in_w<1>)) - MCFG_YM2151_PORT_WRITE_HANDLER(WRITE8(deco32_state, sound_bankswitch_w)) + MCFG_YM2151_PORT_WRITE_HANDLER(WRITE8(dragngun_state, lockload_okibank_lo_w)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.42) MCFG_SOUND_ROUTE(1, "rspeaker", 0.42) diff --git a/src/mame/includes/deco32.h b/src/mame/includes/deco32.h index 4dcec7301db..3a3cc9ea33c 100644 --- a/src/mame/includes/deco32.h +++ b/src/mame/includes/deco32.h @@ -234,8 +234,8 @@ public: LC7535_VOLUME_CHANGED(volume_main_changed); LC7535_VOLUME_CHANGED(volume_gun_changed); - DECLARE_WRITE8_MEMBER(sound_bankswitch_w); - DECLARE_WRITE8_MEMBER(lockload_okibank_w); // lockload + DECLARE_WRITE8_MEMBER(lockload_okibank_lo_w); + DECLARE_WRITE8_MEMBER(lockload_okibank_hi_w); // lockload DECLARE_DRIVER_INIT(dragngun); DECLARE_DRIVER_INIT(dragngunj); -- cgit v1.2.3