diff --git a/scripts/target/mame/arcade.lua b/scripts/target/mame/arcade.lua index 5b6b2e1c725..a713ab24da7 100644 --- a/scripts/target/mame/arcade.lua +++ b/scripts/target/mame/arcade.lua @@ -2853,6 +2853,8 @@ files { MAME_DIR .. "src/mame/includes/nbmj9195.h", MAME_DIR .. "src/mame/video/nbmj9195.cpp", MAME_DIR .. "src/mame/drivers/nightgal.cpp", + MAME_DIR .. "src/mame/audio/nichisnd.cpp", + MAME_DIR .. "src/mame/audio/nichisnd.h", MAME_DIR .. "src/mame/drivers/niyanpai.cpp", MAME_DIR .. "src/mame/includes/niyanpai.h", MAME_DIR .. "src/mame/video/niyanpai.cpp", diff --git a/src/mame/audio/nichisnd.cpp b/src/mame/audio/nichisnd.cpp new file mode 100644 index 00000000000..41e50e52482 --- /dev/null +++ b/src/mame/audio/nichisnd.cpp @@ -0,0 +1,136 @@ +// license:BSD-3-Clause +// copyright-holders:Angelo Salese,Takahiro Nogi +/*************************************************************************** + + Nichibutsu sound HW + + Shared component between niyanpai.cpp and csplayh5.cpp + +***************************************************************************/ + +#include "emu.h" +#include "nichisnd.h" + + + +//************************************************************************** +// GLOBAL VARIABLES +//************************************************************************** + +// device type definition +DEFINE_DEVICE_TYPE(NICHISND, nichisnd_device, "nichisnd", "Nichibutsu Sound Device") + + +//************************************************************************** +// LIVE DEVICE +//************************************************************************** + +//------------------------------------------------- +// nichisnd_device - constructor +//------------------------------------------------- + +nichisnd_device::nichisnd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, NICHISND, tag, owner, clock), + m_soundlatch(*this, "soundlatch"), + m_sound_rom(*this, "audiorom") +{ +} + +static ADDRESS_MAP_START( nichisnd_map, AS_PROGRAM, 8, nichisnd_device ) + AM_RANGE(0x0000, 0x77ff) AM_ROM AM_REGION("audiorom",0) + AM_RANGE(0x7800, 0x7fff) AM_RAM + AM_RANGE(0x8000, 0xffff) AM_ROMBANK("soundbank") +ADDRESS_MAP_END + +static ADDRESS_MAP_START( nichisnd_io_map, AS_IO, 8, nichisnd_device ) + AM_RANGE(0x80, 0x81) AM_MIRROR(0xff00) AM_DEVWRITE("ymsnd", ym3812_device, write) +ADDRESS_MAP_END + + +WRITE8_MEMBER(nichisnd_device::soundbank_w) +{ + membank("soundbank")->set_entry(data & 0x03); +} + +WRITE8_MEMBER(nichisnd_device::soundlatch_clear_w) +{ + if (!(data & 0x01)) m_soundlatch->clear_w(space, 0, 0); +} + + +//------------------------------------------------- +// add_device_mconfig - device-specific machine +// configuration addiitons +//------------------------------------------------- + +static const z80_daisy_config daisy_chain[] = +{ + TMPZ84C011_DAISY_INTERNAL, + { nullptr } +}; + + + +MACHINE_CONFIG_MEMBER(nichisnd_device::device_add_mconfig) + MCFG_CPU_ADD("audiocpu", TMPZ84C011, 8000000) /* TMPZ84C011, 8.00 MHz */ + MCFG_Z80_DAISY_CHAIN(daisy_chain) + MCFG_CPU_PROGRAM_MAP(nichisnd_map) + MCFG_CPU_IO_MAP(nichisnd_io_map) + MCFG_TMPZ84C011_PORTD_READ_CB(DEVREAD8("soundlatch", generic_latch_8_device, read)) + MCFG_TMPZ84C011_PORTA_WRITE_CB(WRITE8(nichisnd_device, soundbank_w)) + MCFG_TMPZ84C011_PORTB_WRITE_CB(DEVWRITE8("dac1", dac_byte_interface, write)) + MCFG_TMPZ84C011_PORTC_WRITE_CB(DEVWRITE8("dac2", dac_byte_interface, write)) + MCFG_TMPZ84C011_PORTE_WRITE_CB(WRITE8(nichisnd_device, soundlatch_clear_w)) + MCFG_TMPZ84C011_ZC0_CB(DEVWRITELINE("audiocpu", tmpz84c011_device, trg3)) + + /* sound hardware */ + MCFG_SPEAKER_STANDARD_MONO("speaker") + + MCFG_GENERIC_LATCH_8_ADD("soundlatch") + + MCFG_SOUND_ADD("ymsnd", YM3812, 4000000) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) + + MCFG_SOUND_ADD("dac1", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.37) // unknown DAC + MCFG_SOUND_ADD("dac2", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.37) // unknown DAC + MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) + MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac1", -1.0, DAC_VREF_NEG_INPUT) + MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac2", -1.0, DAC_VREF_NEG_INPUT) +MACHINE_CONFIG_END + + +//------------------------------------------------- +// device_start - device-specific startup +//------------------------------------------------- + +void nichisnd_device::device_start() +{ + uint8_t *SNDROM = m_sound_rom; + + // sound program patch + SNDROM[0x0213] = 0x00; // DI -> NOP + + // initialize sound rom bank + membank("soundbank")->configure_entries(0, 3, m_sound_rom + 0x8000, 0x8000); + membank("soundbank")->set_entry(0); +} + + +//------------------------------------------------- +// device_reset - device-specific reset +//------------------------------------------------- + +void nichisnd_device::device_reset() +{ +} + + +//************************************************************************** +// READ/WRITE HANDLERS +//************************************************************************** + +// use this to connect to the sound board +WRITE8_MEMBER(nichisnd_device::sound_host_command_w) +{ + m_soundlatch->write(space,0,data); +} \ No newline at end of file diff --git a/src/mame/audio/nichisnd.h b/src/mame/audio/nichisnd.h new file mode 100644 index 00000000000..5f0971a899f --- /dev/null +++ b/src/mame/audio/nichisnd.h @@ -0,0 +1,70 @@ +// license:BSD-3-Clause +// copyright-holders: +/*************************************************************************** + + +***************************************************************************/ + +#ifndef MAME_AUDIO_NICHISND_H +#define MAME_AUDIO_NICHISND_H + +#pragma once + +#include "cpu/z80/tmpz84c011.h" +#include "sound/3812intf.h" +#include "sound/dac.h" +#include "sound/volt_reg.h" +#include "speaker.h" +#include "machine/gen_latch.h" + + + +//************************************************************************** +// INTERFACE CONFIGURATION MACROS +//************************************************************************** + +#define MCFG_NICHISND_ADD(tag) \ + MCFG_DEVICE_ADD((tag), NICHISND, (0)) + + +//************************************************************************** +// TYPE DEFINITIONS +//************************************************************************** + +// ======================> nichisnd_device + +class nichisnd_device : public device_t +{ +public: + // construction/destruction + nichisnd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + // I/O operations + DECLARE_WRITE8_MEMBER( soundlatch_clear_w ); + DECLARE_WRITE8_MEMBER( soundbank_w ); + DECLARE_WRITE8_MEMBER( sound_host_command_w ); + +protected: + // device-level overrides + //virtual void device_validity_check(validity_checker &valid) const override; + virtual void device_add_mconfig(machine_config &config) override; + virtual void device_start() override; + virtual void device_reset() override; + +private: + required_device m_soundlatch; + required_region_ptr m_sound_rom; +}; + + +// device type definition +DECLARE_DEVICE_TYPE(NICHISND, nichisnd_device) + + + +//************************************************************************** +// GLOBAL VARIABLES +//************************************************************************** + + +#endif // MAME_MACHINE_NICHISND_H diff --git a/src/mame/drivers/csplayh5.cpp b/src/mame/drivers/csplayh5.cpp index f0e2640c1ee..e240aa1334c 100644 --- a/src/mame/drivers/csplayh5.cpp +++ b/src/mame/drivers/csplayh5.cpp @@ -32,17 +32,12 @@ #include "emu.h" #include "cpu/h8/h83002.h" #include "cpu/m68000/m68000.h" -#include "cpu/z80/tmpz84c011.h" -#include "machine/gen_latch.h" #include "machine/nvram.h" #include "machine/tmp68301.h" #include "machine/idectrl.h" #include "machine/idehd.h" -#include "sound/dac.h" -#include "sound/3812intf.h" -#include "sound/volt_reg.h" #include "video/v9938.h" -#include "speaker.h" +#include "audio/nichisnd.h" #define USE_H8 0 #define DVD_CLOCK XTAL_27MHz @@ -55,34 +50,24 @@ public: m_maincpu(*this, "maincpu"), m_tmp68301(*this, "tmp68301"), m_v9958(*this, "v9958"), - m_soundlatch(*this, "soundlatch"), + m_nichisnd(*this, "nichisnd"), m_key(*this, "KEY.%u", 0), - m_region_maincpu(*this, "maincpu"), - m_region_audiocpu(*this, "audiocpu"), - m_bank1(*this, "bank1") + m_region_maincpu(*this, "maincpu") { } required_device m_maincpu; required_device m_tmp68301; required_device m_v9958; - required_device m_soundlatch; + required_device m_nichisnd; required_ioport_array<5> m_key; required_memory_region m_region_maincpu; - required_memory_region m_region_audiocpu; - required_memory_bank m_bank1; - + uint16_t m_mux_data; DECLARE_READ16_MEMBER(csplayh5_mux_r); DECLARE_WRITE16_MEMBER(csplayh5_mux_w); - DECLARE_WRITE16_MEMBER(csplayh5_sound_w); - DECLARE_READ8_MEMBER(csplayh5_sound_r); - DECLARE_WRITE8_MEMBER(csplayh5_soundclr_w); DECLARE_WRITE16_MEMBER(tmp68301_parallel_port_w); - DECLARE_READ8_MEMBER(soundcpu_portd_r); - DECLARE_WRITE8_MEMBER(soundcpu_porta_w); - DECLARE_WRITE8_MEMBER(soundcpu_porte_w); #if USE_H8 DECLARE_READ16_MEMBER(test_r); DECLARE_WRITE_LINE_MEMBER(ide_irq); @@ -112,7 +97,6 @@ public: DECLARE_WRITE_LINE_MEMBER(csplayh5_vdp0_interrupt); void general_init(int patchaddress, int patchvalue); - void soundbank_w(int data); }; @@ -137,16 +121,10 @@ WRITE16_MEMBER(csplayh5_state::csplayh5_mux_w) m_mux_data = (~data & 0x1f); } -WRITE16_MEMBER(csplayh5_state::csplayh5_sound_w) -{ - m_soundlatch->write(space, 0, ((data >> 8) & 0xff)); -} - - static ADDRESS_MAP_START( csplayh5_map, AS_PROGRAM, 16, csplayh5_state ) AM_RANGE(0x000000, 0x03ffff) AM_ROM - AM_RANGE(0x200000, 0x200001) AM_READ_PORT("DSW") AM_WRITE(csplayh5_sound_w) + AM_RANGE(0x200000, 0x200001) AM_READ_PORT("DSW") AM_DEVWRITE8("nichisnd", nichisnd_device,sound_host_command_w,0xff00) AM_RANGE(0x200200, 0x200201) AM_READWRITE(csplayh5_mux_r,csplayh5_mux_w) AM_RANGE(0x200400, 0x200401) AM_READ_PORT("SYSTEM") @@ -185,59 +163,6 @@ ADDRESS_MAP_END #endif -/* -sound HW is identical to Niyanpai -*/ - -/* TMPZ84C011 PIO emulation */ - -void csplayh5_state::soundbank_w(int data) -{ - m_bank1->set_base(m_region_audiocpu->base() + 0x08000 + (0x8000 * (data & 0x03))); -} - -READ8_MEMBER(csplayh5_state::csplayh5_sound_r) -{ - return m_soundlatch->read(space, 0); -} - -WRITE8_MEMBER(csplayh5_state::csplayh5_soundclr_w) -{ - m_soundlatch->clear_w(space, 0, 0); -} - - -READ8_MEMBER(csplayh5_state::soundcpu_portd_r) -{ - return csplayh5_sound_r(space, 0); -} - -WRITE8_MEMBER(csplayh5_state::soundcpu_porta_w) -{ - soundbank_w(data & 0x03); -} - -WRITE8_MEMBER(csplayh5_state::soundcpu_porte_w) -{ - if (!(data & 0x01)) csplayh5_soundclr_w(space, 0, 0); -} - - - - - - -static ADDRESS_MAP_START( csplayh5_sound_map, AS_PROGRAM, 8, csplayh5_state ) - AM_RANGE(0x0000, 0x77ff) AM_ROM - AM_RANGE(0x7800, 0x7fff) AM_RAM - AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1") -ADDRESS_MAP_END - -static ADDRESS_MAP_START( csplayh5_sound_io_map, AS_IO, 8, csplayh5_state ) - AM_RANGE(0x80, 0x81) AM_MIRROR(0xff00) AM_DEVWRITE("ymsnd", ym3812_device, write) -ADDRESS_MAP_END - - static INPUT_PORTS_START( csplayh5 ) PORT_START("KEY.0") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START1 ) @@ -402,12 +327,6 @@ TIMER_DEVICE_CALLBACK_MEMBER(csplayh5_state::csplayh5_irq) m_tmp68301->external_interrupt_0(); } -static const z80_daisy_config daisy_chain_sound[] = -{ - TMPZ84C011_DAISY_INTERNAL, - { nullptr } -}; - WRITE_LINE_MEMBER(csplayh5_state::csplayh5_vdp0_interrupt) { /* this is not used as the v9938 interrupt callbacks are broken @@ -453,17 +372,6 @@ static MACHINE_CONFIG_START( csplayh5 ) MCFG_ATA_INTERFACE_IRQ_HANDLER(WRITELINE(csplayh5_state, ide_irq)) #endif - MCFG_CPU_ADD("audiocpu", TMPZ84C011, 8000000) /* TMPZ84C011, unknown clock */ - MCFG_Z80_DAISY_CHAIN(daisy_chain_sound) - MCFG_CPU_PROGRAM_MAP(csplayh5_sound_map) - MCFG_CPU_IO_MAP(csplayh5_sound_io_map) - MCFG_TMPZ84C011_PORTA_WRITE_CB(WRITE8(csplayh5_state, soundcpu_porta_w)) - MCFG_TMPZ84C011_PORTB_WRITE_CB(DEVWRITE8("dac2", dac_byte_interface, write)) - MCFG_TMPZ84C011_PORTC_WRITE_CB(DEVWRITE8("dac1", dac_byte_interface, write)) - MCFG_TMPZ84C011_PORTD_READ_CB(READ8(csplayh5_state, soundcpu_portd_r)) - MCFG_TMPZ84C011_PORTE_WRITE_CB(WRITE8(csplayh5_state, soundcpu_porte_w)) - MCFG_TMPZ84C011_ZC0_CB(DEVWRITELINE("audiocpu", tmpz84c011_device, trg3)) - MCFG_NVRAM_ADD_0FILL("nvram") /* video hardware */ @@ -472,18 +380,7 @@ static MACHINE_CONFIG_START( csplayh5 ) MCFG_V99X8_SCREEN_ADD_NTSC("screen", "v9958", XTAL_21_4772MHz) /* sound hardware */ - MCFG_SPEAKER_STANDARD_MONO("speaker") - - MCFG_GENERIC_LATCH_8_ADD("soundlatch") - - MCFG_SOUND_ADD("ymsnd", YM3812, 4000000) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.7) - - MCFG_SOUND_ADD("dac1", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC - MCFG_SOUND_ADD("dac2", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.375) // unknown DAC - MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) - MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac1", -1.0, DAC_VREF_NEG_INPUT) - MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac2", -1.0, DAC_VREF_NEG_INPUT) + MCFG_NICHISND_ADD("nichisnd") MACHINE_CONFIG_END /*************************************************************************** @@ -500,13 +397,13 @@ void csplayh5_state::general_init(int patchaddress, int patchvalue) MAINROM[patchaddress] = patchvalue; #endif - uint8_t *SNDROM = m_region_audiocpu->base(); + //uint8_t *SNDROM = m_region_:nichisnd:audiorom->base(); /* initialize sound rom bank */ - soundbank_w(0); + //soundbank_w(0); /* patch sound program */ - SNDROM[0x0213] = 0x00; // DI -> NOP + //SNDROM[0x0213] = 0x00; // DI -> NOP } @@ -553,7 +450,7 @@ ROM_START( nichidvd ) DVD_BIOS - ROM_REGION( 0x20000, "audiocpu", ROMREGION_ERASE00 ) // z80 + ROM_REGION( 0x20000, ":nichisnd:audiorom", ROMREGION_ERASE00 ) // z80 ROM_REGION( 0x400000, "blit_gfx", ROMREGION_ERASEFF ) // blitter based gfxs @@ -569,7 +466,7 @@ ROM_START( csplayh1 ) ROM_REGION( 0x20000, "subcpu", 0 ) // h8, cd-rom player ROM_LOAD16_WORD_SWAP( "u2", 0x00000, 0x20000, NO_DUMP ) - ROM_REGION( 0x20000, "audiocpu", 0 ) // z80 + ROM_REGION( 0x20000, ":nichisnd:audiorom", 0 ) // z80 ROM_LOAD( "1.bin", 0x000000, 0x020000, CRC(8296d67f) SHA1(20eb944a2bd27980e1aaf60ca544059e84129760) ) ROM_REGION( 0x400000, "blit_gfx", ROMREGION_ERASEFF ) // blitter based gfxs @@ -588,7 +485,7 @@ ROM_START( mjgalpri ) ROM_LOAD16_BYTE( "2.ic3", 0x000000, 0x020000, CRC(e8427076) SHA1(9b449599ffac2b67a29fac11d1e85218668d805d) ) ROM_LOAD16_BYTE( "1.ic2", 0x000001, 0x020000, CRC(653fcc14) SHA1(6231ec5f45a9f5e587dcd00ff85f9bbfae7364ab) ) - ROM_REGION( 0x20000, "audiocpu", 0 ) // z80 + ROM_REGION( 0x20000, ":nichisnd:audiorom", 0 ) // z80 ROM_LOAD( "11.ic51", 0x000000, 0x020000, CRC(7b9b1887) SHA1(1393a1d79f3cc7ab68275791af4ec16e825056df) ) DVD_BIOS @@ -611,7 +508,7 @@ ROM_START( junai ) DVD_BIOS - ROM_REGION( 0x20000, "audiocpu", 0 ) // z80 + ROM_REGION( 0x20000, ":nichisnd:audiorom", 0 ) // z80 ROM_LOAD( "11.ic51", 0x00000, 0x20000, CRC(a0472ea5) SHA1(0fd04941ff595cffe64357f3a1a9dc1170db8703) ) ROM_REGION( 0x400000, "blit_gfx", ROMREGION_ERASEFF ) // blitter based gfxs @@ -630,7 +527,7 @@ ROM_START( csplayh5 ) DVD_BIOS - ROM_REGION( 0x20000, "audiocpu", 0 ) // z80 + ROM_REGION( 0x20000, ":nichisnd:audiorom", 0 ) // z80 ROM_LOAD( "11.ic51", 0x00000, 0x20000, CRC(0b920806) SHA1(95f50ebfb296ba29aaa8079a41f5362cb9e879cc) ) ROM_REGION( 0x400000, "blit_gfx", ROMREGION_ERASEFF ) // blitter based gfxs @@ -649,7 +546,7 @@ ROM_START( junai2 ) DVD_BIOS - ROM_REGION( 0x20000, "audiocpu", 0 ) // z80 + ROM_REGION( 0x20000, ":nichisnd:audiorom", 0 ) // z80 ROM_LOAD( "11.ic51", 0x00000, 0x20000, CRC(a4b07757) SHA1(5010f28d7a80af0cc3f4fd135f777950fb2cf679) ) ROM_REGION( 0x400000, "blit_gfx", ROMREGION_ERASEFF ) // blitter based gfxs @@ -672,7 +569,7 @@ ROM_START( mogitate ) DVD_BIOS - ROM_REGION( 0x20000, "audiocpu", 0 ) // z80 + ROM_REGION( 0x20000, ":nichisnd:audiorom", 0 ) // z80 ROM_LOAD( "11.ic51", 0x000000, 0x020000, CRC(7927c1d6) SHA1(15f0c0051124e7b7667eb721dd12938333b31899) ) ROM_REGION( 0x400000, "blit_gfx", ROMREGION_ERASEFF ) // blitter based gfxs @@ -693,7 +590,7 @@ ROM_START( mjmania ) DVD_BIOS - ROM_REGION( 0x20000, "audiocpu", 0 ) // z80 + ROM_REGION( 0x20000, ":nichisnd:audiorom", 0 ) // z80 ROM_LOAD( "11.ic51", 0x000000, 0x020000, CRC(f0c3bb11) SHA1(691a0ff53a9417e69051e9e2bdee7500bc6a746b) ) ROM_REGION( 0x400000, "blit_gfx", ROMREGION_ERASEFF ) // blitter based gfxs @@ -714,7 +611,7 @@ ROM_START( renaimj ) DVD_BIOS - ROM_REGION( 0x20000, "audiocpu", 0 ) // z80 + ROM_REGION( 0x20000, ":nichisnd:audiorom", 0 ) // z80 ROM_LOAD( "11.ic51", 0x00000, 0x20000, CRC(614d17b9) SHA1(d6fb4441f55902c2b89b4bec53aae5311d81f07b) ) ROM_REGION( 0x400000, "blit_gfx", ROMREGION_ERASEFF ) // blitter based gfxs @@ -736,7 +633,7 @@ ROM_START( bikiniko ) DVD_BIOS - ROM_REGION( 0x20000, "audiocpu", 0 ) // z80 + ROM_REGION( 0x20000, ":nichisnd:audiorom", 0 ) // z80 ROM_LOAD( "11.ic51", 0x00000, 0x20000, CRC(4a2142d6) SHA1(3a762f7b7cccdb6715b5f59524b04b12694fc130) ) ROM_REGION( 0x400000, "blit_gfx", ROMREGION_ERASEFF ) // blitter based gfxs @@ -755,7 +652,7 @@ ROM_START( csplayh6 ) DVD_BIOS - ROM_REGION( 0x20000, "audiocpu", 0 ) // z80 + ROM_REGION( 0x20000, ":nichisnd:audiorom", 0 ) // z80 ROM_LOAD( "11.ic51", 0x00000, 0x20000, CRC(3ce03f2d) SHA1(5ccdcac8bad25b4f680ed7a2074575711c25af41) ) ROM_REGION( 0x400000, "blit_gfx", ROMREGION_ERASEFF ) // blitter based gfxs @@ -777,7 +674,7 @@ ROM_START( thenanpa ) DVD_BIOS - ROM_REGION( 0x20000, "audiocpu", 0 ) // z80 + ROM_REGION( 0x20000, ":nichisnd:audiorom", 0 ) // z80 ROM_LOAD( "11.ic51", 0x000000, 0x020000, CRC(f44c4095) SHA1(d43e464bd6d614c34791445f8fd4af2f62a4dfc2) ) ROM_REGION( 0x400000, "blit_gfx", ROMREGION_ERASEFF ) // blitter based gfxs @@ -798,7 +695,7 @@ ROM_START( pokoachu ) DVD_BIOS - ROM_REGION( 0x20000, "audiocpu", 0 ) // z80 + ROM_REGION( 0x20000, ":nichisnd:audiorom", 0 ) // z80 ROM_LOAD( "11.ic51", 0x000000, 0x020000, CRC(9d344bad) SHA1(276c8066a2b5090edf6ba00843b7a9496c90f99f) ) ROM_REGION( 0x400000, "blit_gfx", ROMREGION_ERASEFF ) // blitter based gfxs @@ -819,7 +716,7 @@ ROM_START( csplayh7 ) DVD_BIOS - ROM_REGION( 0x20000, "audiocpu", 0 ) // z80 + ROM_REGION( 0x20000, ":nichisnd:audiorom", 0 ) // z80 ROM_LOAD( "11.ic51", 0x000000, 0x020000, CRC(5905b199) SHA1(9155455bc21d23d439c4732549ff1143ee17b9d3) ) ROM_REGION( 0x400000, "blit_gfx", ROMREGION_ERASEFF ) // blitter based gfxs @@ -840,7 +737,7 @@ ROM_START( aimode ) DVD_BIOS - ROM_REGION( 0x20000, "audiocpu", 0 ) // z80 + ROM_REGION( 0x20000, ":nichisnd:audiorom", 0 ) // z80 ROM_LOAD( "11.ic51", 0x000000, 0x020000, CRC(e6404950) SHA1(bb179c27ce65f7dc58d2aeed4710347e7953e11c) ) ROM_REGION( 0x400000, "blit_gfx", ROMREGION_ERASEFF ) // blitter based gfxs @@ -861,7 +758,7 @@ ROM_START( fuudol ) DVD_BIOS - ROM_REGION( 0x20000, "audiocpu", 0 ) // z80 + ROM_REGION( 0x20000, ":nichisnd:audiorom", 0 ) // z80 ROM_LOAD( "11.ic51", 0x000000, 0x020000, CRC(f6442026) SHA1(f49ddeeeaf6fffdccea9ba73bce3ca60c07a7647) ) ROM_REGION( 0x400000, "blit_gfx", ROMREGION_ERASEFF ) // blitter based gfxs @@ -882,7 +779,7 @@ ROM_START( tsuwaku ) DVD_BIOS - ROM_REGION( 0x20000, "audiocpu", 0 ) // z80 + ROM_REGION( 0x20000, ":nichisnd:audiorom", 0 ) // z80 ROM_LOAD( "11.ic51", 0x000000, 0x020000, CRC(8451b9a9) SHA1(4e61c4b5ea7e91b53c97bd060b41466ba5005fd0) ) ROM_REGION( 0x400000, "blit_gfx", ROMREGION_ERASEFF ) // blitter based gfxs @@ -903,7 +800,7 @@ ROM_START( nichisel ) DVD_BIOS - ROM_REGION( 0x20000, "audiocpu", 0 ) // z80 + ROM_REGION( 0x20000, ":nichisnd:audiorom", 0 ) // z80 ROM_LOAD( "11.ic51", 0x000000, 0x020000, CRC(f94981fd) SHA1(84dae027f10717a084016310cd245bb4c2ee6a56) ) ROM_REGION( 0x400000, "blit_gfx", ROMREGION_ERASEFF ) // blitter based gfxs diff --git a/src/mame/drivers/niyanpai.cpp b/src/mame/drivers/niyanpai.cpp index 1241a93039b..4b2d78b8bad 100644 --- a/src/mame/drivers/niyanpai.cpp +++ b/src/mame/drivers/niyanpai.cpp @@ -39,37 +39,22 @@ Memo: #include "includes/niyanpai.h" #include "includes/nb1413m3.h" -#include "cpu/z80/tmpz84c011.h" #include "cpu/m68000/m68000.h" #include "machine/nvram.h" #include "machine/tmp68301.h" -#include "sound/3812intf.h" -#include "sound/dac.h" -#include "sound/volt_reg.h" -#include "speaker.h" -WRITE8_MEMBER(niyanpai_state::soundbank_w) -{ - membank("soundbank")->set_entry(data & 0x03); -} - -WRITE8_MEMBER(niyanpai_state::soundlatch_clear_w) -{ - if (!(data & 0x01)) m_soundlatch->clear_w(space, 0, 0); -} - DRIVER_INIT_MEMBER(niyanpai_state,niyanpai) { - uint8_t *SNDROM = memregion("audiocpu")->base(); + //uint8_t *SNDROM = memregion(":nichisnd:audiorom")->base(); // sound program patch - SNDROM[0x0213] = 0x00; // DI -> NOP + //SNDROM[0x0213] = 0x00; // DI -> NOP // initialize sound rom bank - membank("soundbank")->configure_entries(0, 3, memregion("audiocpu")->base() + 0x8000, 0x8000); - membank("soundbank")->set_entry(0); + //membank("soundbank")->configure_entries(0, 3, memregion(":nichisnd:audiorom")->base() + 0x8000, 0x8000); + //membank("soundbank")->set_entry(0); // initialize out coin flag (musobana) m_musobana_outcoin_flag = 1; @@ -147,7 +132,7 @@ static ADDRESS_MAP_START( niyanpai_map, AS_PROGRAM, 16, niyanpai_state ) AM_RANGE(0x0bf800, 0x0bffff) AM_RAM - AM_RANGE(0x200000, 0x200001) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0xff00) + AM_RANGE(0x200000, 0x200001) AM_DEVWRITE8("nichisnd", nichisnd_device,sound_host_command_w,0xff00) AM_RANGE(0x200200, 0x200201) AM_WRITENOP // unknown AM_RANGE(0x240000, 0x240009) AM_WRITENOP // unknown @@ -183,7 +168,7 @@ static ADDRESS_MAP_START( musobana_map, AS_PROGRAM, 16, niyanpai_state ) AM_RANGE(0x0a8000, 0x0a87ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x0bf800, 0x0bffff) AM_RAM - AM_RANGE(0x200000, 0x200001) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0xff00) + AM_RANGE(0x200000, 0x200001) AM_DEVWRITE8("nichisnd", nichisnd_device,sound_host_command_w,0xff00) AM_RANGE(0x200200, 0x200201) AM_WRITE(musobana_inputport_w) // inputport select AM_RANGE(0x240000, 0x240009) AM_WRITENOP // unknown @@ -222,7 +207,7 @@ static ADDRESS_MAP_START( mhhonban_map, AS_PROGRAM, 16, niyanpai_state ) AM_RANGE(0x0a8000, 0x0a87ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x0bf000, 0x0bffff) AM_RAM - AM_RANGE(0x200000, 0x200001) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0xff00) + AM_RANGE(0x200000, 0x200001) AM_DEVWRITE8("nichisnd", nichisnd_device,sound_host_command_w,0xff00) AM_RANGE(0x200200, 0x200201) AM_WRITE(musobana_inputport_w) // inputport select AM_RANGE(0x240000, 0x240009) AM_WRITENOP // unknown @@ -261,7 +246,7 @@ static ADDRESS_MAP_START( zokumahj_map, AS_PROGRAM, 16, niyanpai_state ) AM_RANGE(0x0a8000, 0x0a87ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x0c0000, 0x0cffff) AM_RAM - AM_RANGE(0x200000, 0x200001) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0xff00) + AM_RANGE(0x200000, 0x200001) AM_DEVWRITE8("nichisnd", nichisnd_device,sound_host_command_w,0xff00) AM_RANGE(0x200200, 0x200201) AM_WRITE(musobana_inputport_w) // inputport select AM_RANGE(0x240000, 0x240009) AM_WRITENOP // unknown @@ -291,17 +276,6 @@ static ADDRESS_MAP_START( zokumahj_map, AS_PROGRAM, 16, niyanpai_state ) ADDRESS_MAP_END -static ADDRESS_MAP_START( niyanpai_sound_map, AS_PROGRAM, 8, niyanpai_state ) - AM_RANGE(0x0000, 0x77ff) AM_ROM - AM_RANGE(0x7800, 0x7fff) AM_RAM - AM_RANGE(0x8000, 0xffff) AM_ROMBANK("soundbank") -ADDRESS_MAP_END - -static ADDRESS_MAP_START( niyanpai_sound_io_map, AS_IO, 8, niyanpai_state ) - AM_RANGE(0x80, 0x81) AM_MIRROR(0xff00) AM_DEVWRITE("ymsnd", ym3812_device, write) -ADDRESS_MAP_END - - static INPUT_PORTS_START( niyanpai ) PORT_START("SYSTEM") PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED ) // ? @@ -729,16 +703,6 @@ static MACHINE_CONFIG_START( niyanpai ) MCFG_DEVICE_ADD("tmp68301", TMP68301, 0) MCFG_TMP68301_OUT_PARALLEL_CB(WRITE16(niyanpai_state, tmp68301_parallel_port_w)) - MCFG_CPU_ADD("audiocpu", TMPZ84C011, 8000000) /* TMPZ84C011, 8.00 MHz */ - MCFG_Z80_DAISY_CHAIN(daisy_chain_sound) - MCFG_CPU_PROGRAM_MAP(niyanpai_sound_map) - MCFG_CPU_IO_MAP(niyanpai_sound_io_map) - MCFG_TMPZ84C011_PORTD_READ_CB(DEVREAD8("soundlatch", generic_latch_8_device, read)) - MCFG_TMPZ84C011_PORTA_WRITE_CB(WRITE8(niyanpai_state, soundbank_w)) - MCFG_TMPZ84C011_PORTB_WRITE_CB(DEVWRITE8("dac1", dac_byte_interface, write)) - MCFG_TMPZ84C011_PORTC_WRITE_CB(DEVWRITE8("dac2", dac_byte_interface, write)) - MCFG_TMPZ84C011_PORTE_WRITE_CB(WRITE8(niyanpai_state, soundlatch_clear_w)) - MCFG_TMPZ84C011_ZC0_CB(DEVWRITELINE("audiocpu", tmpz84c011_device, trg3)) MCFG_NVRAM_ADD_0FILL("nvram") @@ -754,18 +718,7 @@ static MACHINE_CONFIG_START( niyanpai ) MCFG_PALETTE_ADD("palette", 256*3) /* sound hardware */ - MCFG_SPEAKER_STANDARD_MONO("speaker") - - MCFG_GENERIC_LATCH_8_ADD("soundlatch") - - MCFG_SOUND_ADD("ymsnd", YM3812, 4000000) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) - - MCFG_SOUND_ADD("dac1", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.37) // unknown DAC - MCFG_SOUND_ADD("dac2", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.37) // unknown DAC - MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) - MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac1", -1.0, DAC_VREF_NEG_INPUT) - MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac2", -1.0, DAC_VREF_NEG_INPUT) + MCFG_NICHISND_ADD("nichisnd") MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( musobana, niyanpai ) @@ -797,7 +750,7 @@ ROM_START( niyanpai ) ROM_LOAD16_BYTE( "npai_01.bin", 0x00000, 0x20000, CRC(a904e8a1) SHA1(77865d7b48cac96af1e3cac4a702f7de4b5ee82b) ) ROM_LOAD16_BYTE( "npai_02.bin", 0x00001, 0x20000, CRC(244f9d6f) SHA1(afde18f32c4879a66c0707671d783c21c54cffa4) ) - ROM_REGION( 0x20000, "audiocpu", 0 ) /* TMPZ84C011 sound program */ + ROM_REGION( 0x20000, ":nichisnd:audiorom", 0 ) /* TMPZ84C011 sound program */ ROM_LOAD( "npai_03.bin", 0x000000, 0x20000, CRC(d154306b) SHA1(3375568a6d387d850b8996b8bad3d0220de13993) ) ROM_REGION( 0x400000, "gfx1", 0 ) /* gfx */ @@ -816,7 +769,7 @@ ROM_START( musobana ) ROM_LOAD16_BYTE( "1.209", 0x00000, 0x20000, CRC(574929a1) SHA1(70ea96c3aa8a3512176b719de0928470541d85cb) ) ROM_LOAD16_BYTE( "2.208", 0x00001, 0x20000, CRC(12734fda) SHA1(46241efe4266ad6426eb31db757ae4852c70c25d) ) - ROM_REGION( 0x20000, "audiocpu", 0 ) /* TMPZ84C011 sound program */ + ROM_REGION( 0x20000, ":nichisnd:audiorom", 0 ) /* TMPZ84C011 sound program */ ROM_LOAD( "3.804", 0x000000, 0x20000, CRC(0be8f2ce) SHA1(c1ee8907c03f615fbc42654a3c37387714761560) ) ROM_REGION( 0x500000, "gfx1", 0 ) /* gfx */ @@ -837,7 +790,7 @@ ROM_START( 4psimasy ) ROM_LOAD16_BYTE( "1.209", 0x00000, 0x20000, CRC(28dda353) SHA1(3d4738189a7b8b8b0434b3e58550572c3ce74b42) ) ROM_LOAD16_BYTE( "2.208", 0x00001, 0x20000, CRC(3679c9fb) SHA1(74a940c3c95723680a63a281f194ef4bbe3dc58a) ) - ROM_REGION( 0x20000, "audiocpu", 0 ) /* TMPZ84C011 sound program */ + ROM_REGION( 0x20000, ":nichisnd:audiorom", 0 ) /* TMPZ84C011 sound program */ ROM_LOAD( "3.804", 0x000000, 0x20000, CRC(bd644726) SHA1(1f8e12a081657d6e1dd9c896056d1ffd977dfe95) ) ROM_REGION( 0x400000, "gfx1", 0 ) /* gfx */ @@ -856,7 +809,7 @@ ROM_START( mhhonban ) ROM_LOAD16_BYTE( "u209.bin", 0x00000, 0x20000, CRC(121c861f) SHA1(70a6b695998904dccb8791ea5d9acbf7484bd812) ) ROM_LOAD16_BYTE( "u208.bin", 0x00001, 0x20000, CRC(d6712d0b) SHA1(a384c8f508ec6885bccb989d150cfd7f36a6898d) ) - ROM_REGION( 0x20000, "audiocpu", 0 ) /* TMPZ84C011 sound program */ + ROM_REGION( 0x20000, ":nichisnd:audiorom", 0 ) /* TMPZ84C011 sound program */ ROM_LOAD( "u804.bin", 0x000000, 0x20000, CRC(48407507) SHA1(afd24d16d487fd2b6548d967e2f1ae122e2633a2) ) ROM_REGION( 0x300000, "gfx1", 0 ) /* gfx */ @@ -873,7 +826,7 @@ ROM_START( zokumahj ) ROM_LOAD16_BYTE( "1.bin", 0x00000, 0x20000, CRC(53ca34a9) SHA1(5a1e2660442665efd529ec6c98ffc994c6103419) ) ROM_LOAD16_BYTE( "2.bin", 0x00001, 0x20000, CRC(474f9303) SHA1(4b03e3b6b6ee864dfcce3978f19bf329e39b3fe7) ) - ROM_REGION( 0x20000, "audiocpu", 0 ) /* TMPZ84C011 sound program */ + ROM_REGION( 0x20000, ":nichisnd:audiorom", 0 ) /* TMPZ84C011 sound program */ ROM_LOAD( "3.bin", 0x000000, 0x20000, CRC(48407507) SHA1(afd24d16d487fd2b6548d967e2f1ae122e2633a2) ) ROM_REGION( 0x300000, "gfx1", 0 ) /* gfx */ diff --git a/src/mame/etc/template_device.cpp b/src/mame/etc/template_device.cpp index a7cb33b4e06..953661f5ef7 100644 --- a/src/mame/etc/template_device.cpp +++ b/src/mame/etc/template_device.cpp @@ -36,11 +36,11 @@ xxx_device::xxx_device(const machine_config &mconfig, const char *tag, device_t //------------------------------------------------- -// add_device_mconfig - device-specific machine +// device_add_mconfig - device-specific machine // configuration addiitons //------------------------------------------------- -MACHINE_CONFIG_MEMBER(xxx_device::add_device_mconfig) +MACHINE_CONFIG_MEMBER(xxx_device::device_add_mconfig) //MCFG_CPU_ADD(...) MACHINE_CONFIG_END diff --git a/src/mame/includes/niyanpai.h b/src/mame/includes/niyanpai.h index 827d21fcab4..2357694894b 100644 --- a/src/mame/includes/niyanpai.h +++ b/src/mame/includes/niyanpai.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Takahiro Nogi -#include "machine/gen_latch.h" #include "machine/tmp68301.h" #include "screen.h" +#include "audio/nichisnd.h" #define VRAM_MAX 3 @@ -20,14 +20,12 @@ public: m_maincpu(*this, "maincpu"), m_tmp68301(*this, "tmp68301"), m_screen(*this, "screen"), - m_palette(*this, "palette"), - m_soundlatch(*this, "soundlatch") { } + m_palette(*this, "palette") { } required_device m_maincpu; required_device m_tmp68301; required_device m_screen; required_device m_palette; - required_device m_soundlatch; // common int m_scrollx[VRAM_MAX]; @@ -61,8 +59,6 @@ public: uint8_t m_motor_on; // common - DECLARE_WRITE8_MEMBER(soundbank_w); - DECLARE_WRITE8_MEMBER(soundlatch_clear_w); DECLARE_READ16_MEMBER(dipsw_r); DECLARE_READ16_MEMBER(palette_r); DECLARE_WRITE16_MEMBER(palette_w);