(nw) let's have some fun with the new functionality, and fix poor casper while we're at it

This commit is contained in:
Vas Crabb 2018-05-04 04:53:10 +10:00
parent 501e1b3efb
commit a34f2334a7
11 changed files with 97 additions and 101 deletions

View File

@ -49,20 +49,20 @@ ROM_END
//-------------------------------------------------
MACHINE_CONFIG_START(bbc_tube_casper_device::device_add_mconfig)
MCFG_CPU_ADD("m68000", M68000, XTAL(4'000'000))
MCFG_CPU_ADD(m_m68000, M68000, XTAL(4'000'000))
MCFG_CPU_PROGRAM_MAP(tube_casper_mem)
MCFG_DEVICE_ADD("via6522_0", VIA6522, XTAL(4'000'000) / 2)
MCFG_VIA6522_WRITEPB_HANDLER(DEVWRITE8("via6522_1", via6522_device, write_pa))
MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE("via6522_1", via6522_device, write_cb1))
MCFG_VIA6522_CB2_HANDLER(DEVWRITELINE("via6522_1", via6522_device, write_ca1))
MCFG_DEVICE_ADD(m_via6522_0, VIA6522, XTAL(4'000'000) / 2)
MCFG_VIA6522_WRITEPB_HANDLER(DEVWRITE8(m_via6522_1, via6522_device, write_pa))
MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(m_via6522_1, via6522_device, write_cb1))
MCFG_VIA6522_CB2_HANDLER(DEVWRITELINE(m_via6522_1, via6522_device, write_ca1))
MCFG_VIA6522_IRQ_HANDLER(DEVWRITELINE(DEVICE_SELF_OWNER, bbc_tube_slot_device, irq_w))
MCFG_DEVICE_ADD("via6522_1", VIA6522, XTAL(4'000'000) / 2)
MCFG_VIA6522_WRITEPB_HANDLER(DEVWRITE8("via6522_0", via6522_device, write_pa))
MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE("via6522_0", via6522_device, write_cb1))
MCFG_VIA6522_CB2_HANDLER(DEVWRITELINE("via6522_0", via6522_device, write_ca1))
MCFG_VIA6522_IRQ_HANDLER(INPUTLINE("maincpu", M68K_IRQ_1))
MCFG_DEVICE_ADD(m_via6522_1, VIA6522, XTAL(4'000'000) / 2)
MCFG_VIA6522_WRITEPB_HANDLER(DEVWRITE8(m_via6522_0, via6522_device, write_pa))
MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(m_via6522_0, via6522_device, write_cb1))
MCFG_VIA6522_CB2_HANDLER(DEVWRITELINE(m_via6522_0, via6522_device, write_ca1))
MCFG_VIA6522_IRQ_HANDLER(INPUTLINE(m_m68000, M68K_IRQ_1))
/* software lists */
MCFG_SOFTWARE_LIST_ADD("flop_ls_casper", "bbc_flop_68000")

View File

@ -20,19 +20,15 @@
//**************************************************************************
#define MCFG_NVRAM_ADD_0FILL(_tag) \
MCFG_DEVICE_ADD(_tag, NVRAM, 0) \
downcast<nvram_device &>(*device).set_default_value(nvram_device::DEFAULT_ALL_0);
MCFG_DEVICE_ADD(_tag, NVRAM, nvram_device::DEFAULT_ALL_0);
#define MCFG_NVRAM_ADD_1FILL(_tag) \
MCFG_DEVICE_ADD(_tag, NVRAM, 0) \
downcast<nvram_device &>(*device).set_default_value(nvram_device::DEFAULT_ALL_1);
MCFG_DEVICE_ADD(_tag, NVRAM, nvram_device::DEFAULT_ALL_1);
#define MCFG_NVRAM_ADD_RANDOM_FILL(_tag) \
MCFG_DEVICE_ADD(_tag, NVRAM, 0) \
downcast<nvram_device &>(*device).set_default_value(nvram_device::DEFAULT_RANDOM);
MCFG_DEVICE_ADD(_tag, NVRAM, nvram_device::DEFAULT_RANDOM);
#define MCFG_NVRAM_ADD_NO_FILL(_tag) \
MCFG_DEVICE_ADD(_tag, NVRAM, 0) \
downcast<nvram_device &>(*device).set_default_value(nvram_device::DEFAULT_NONE);
MCFG_DEVICE_ADD(_tag, NVRAM, nvram_device::DEFAULT_NONE);
#define MCFG_NVRAM_ADD_CUSTOM_DRIVER(_tag, _class, _method) \
MCFG_DEVICE_ADD(_tag, NVRAM, 0) \
MCFG_DEVICE_ADD(_tag, NVRAM) \
downcast<nvram_device &>(*device).set_custom_handler(nvram_device::init_delegate(&_class::_method, #_class "::" #_method, nullptr, (_class *)nullptr));
#define MCFG_NVRAM_REPLACE_0FILL(_tag) \
@ -73,7 +69,12 @@ public:
};
// construction/destruction
nvram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
nvram_device(const machine_config &mconfig, const char *tag, device_t *owner, default_value value)
: nvram_device(mconfig, tag, owner, 0)
{
set_default_value(value);
}
nvram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
// inline configuration helpers
void set_default_value(default_value value) { m_default_value = value; }

View File

@ -12,13 +12,12 @@
#include "cpu/dsp16/dsp16.h"
// default 60MHz clock (divided by 2 for DSP core clock, and then by 1248 for sample rate)
#define QSOUND_CLOCK 60_MHz_XTAL
class qsound_device : public device_t, public device_sound_interface, public device_rom_interface
{
public:
qsound_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock);
// default 60MHz clock (divided by 2 for DSP core clock, and then by 1248 for sample rate)
qsound_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock = 60'000'000);
DECLARE_WRITE8_MEMBER(qsound_w);
DECLARE_READ8_MEMBER(qsound_r);

View File

@ -12,21 +12,12 @@
#include "cpu/dsp16/dsp16.h"
// default 60MHz clock (divided by 2 for DSP core clock, and then by 1248 for sample rate)
#define QSOUND_CLOCK 60_MHz_XTAL
//**************************************************************************
// INTERFACE CONFIGURATION MACROS
//**************************************************************************
// ======================> qsound_hle_device
class qsound_hle_device : public device_t, public device_sound_interface, public device_rom_interface
{
public:
qsound_hle_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock);
// default 60MHz clock (divided by 2 for DSP core clock, and then by 1248 for sample rate)
qsound_hle_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock = 60'000'000);
DECLARE_WRITE8_MEMBER(qsound_w);
DECLARE_READ8_MEMBER(qsound_r);

View File

@ -3456,7 +3456,7 @@ MACHINE_CONFIG_START(cps_state::qsound)
MCFG_DEVICE_REMOVE("2151")
MCFG_DEVICE_REMOVE("oki")
MCFG_DEVICE_ADD("qsound", QSOUND, QSOUND_CLOCK)
MCFG_DEVICE_ADD("qsound", QSOUND)
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
MACHINE_CONFIG_END

View File

@ -1336,7 +1336,7 @@ MACHINE_CONFIG_START(cps_state::cps2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_DEVICE_ADD("qsound", QSOUND, QSOUND_CLOCK)
MCFG_DEVICE_ADD("qsound", QSOUND)
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
MACHINE_CONFIG_END

View File

@ -466,33 +466,33 @@ void laserbat_state_base::device_timer(emu_timer &timer, device_timer_id id, int
MACHINE_CONFIG_START(laserbat_state_base::laserbat_base)
// basic machine hardware
MCFG_CPU_ADD("maincpu", S2650, XTAL(14'318'181)/4)
MCFG_CPU_ADD(m_maincpu, S2650, XTAL(14'318'181)/4)
MCFG_CPU_PROGRAM_MAP(laserbat_map)
MCFG_CPU_IO_MAP(laserbat_io_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", laserbat_state_base, laserbat_interrupt)
MCFG_S2650_SENSE_INPUT(DEVREADLINE("screen", screen_device, vblank))
MCFG_S2650_SENSE_INPUT(DEVREADLINE(m_screen, screen_device, vblank))
// video hardware
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_ADD(m_screen, RASTER)
MCFG_SCREEN_RAW_PARAMS(XTAL(14'318'181), 227*4, 43*4-1, 227*4-1, 312, 8, 255)
MCFG_SCREEN_UPDATE_DRIVER(laserbat_state_base, screen_update_laserbat)
MCFG_SCREEN_PALETTE("palette")
MCFG_PLS100_ADD("gfxmix")
MCFG_PLS100_ADD(m_gfxmix)
MCFG_DEVICE_ADD("pvi1", S2636, XTAL(14'318'181)/3)
MCFG_DEVICE_ADD(m_pvi1, S2636, XTAL(14'318'181)/3)
MCFG_S2636_OFFSETS(-8, -16)
MCFG_S2636_DIVIDER(3)
MCFG_DEVICE_ADD("pvi2", S2636, XTAL(14'318'181)/3)
MCFG_DEVICE_ADD(m_pvi2, S2636, XTAL(14'318'181)/3)
MCFG_S2636_OFFSETS(-8, -16)
MCFG_S2636_DIVIDER(3)
MCFG_DEVICE_ADD("pvi3", S2636, XTAL(14'318'181)/3)
MCFG_DEVICE_ADD(m_pvi3, S2636, XTAL(14'318'181)/3)
MCFG_S2636_OFFSETS(-8, -16)
MCFG_S2636_DIVIDER(3)
MCFG_GFXDECODE_ADD("gfxdecode", "palette", laserbat)
MCFG_GFXDECODE_ADD(m_gfxdecode, "palette", laserbat)
MACHINE_CONFIG_END
@ -500,13 +500,13 @@ MACHINE_CONFIG_START(laserbat_state::laserbat)
laserbat_base(config);
// video hardware
MCFG_PALETTE_ADD("palette", 256)
MCFG_PALETTE_ADD(m_palette, 256)
MCFG_PALETTE_INIT_OWNER(laserbat_state, laserbat)
// sound board devices
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("csg", SN76477, 0) // audio output not used
MCFG_SOUND_ADD(m_csg, SN76477, 0) // audio output not used
MCFG_SN76477_NOISE_PARAMS(RES_K(47), RES_K(270), CAP_P(1000)) // R21, switchable R30/R23/R24/R25/R29/R28/R27/R26, C21
MCFG_SN76477_DECAY_RES(RES_INF) // NC
MCFG_SN76477_ATTACK_PARAMS(0, RES_INF) // NC, NC
@ -521,10 +521,10 @@ MACHINE_CONFIG_START(laserbat_state::laserbat)
MCFG_SN76477_ENVELOPE_PARAMS(0, 1) // GND, Vreg
MCFG_SN76477_ENABLE(0) // AB SOUND
MCFG_TMS3615_ADD("synth_low", 4_MHz_XTAL/16/2) // from the other one's /2 clock output
MCFG_TMS3615_ADD(m_synth_low, 4_MHz_XTAL/16/2) // from the other one's /2 clock output
MCFG_SOUND_ROUTE(tms3615_device::FOOTAGE_8, "speaker", 1.0)
MCFG_TMS3615_ADD("synth_high", 4_MHz_XTAL/16) // 4MHz divided down with a 74LS161
MCFG_TMS3615_ADD(m_synth_high, 4_MHz_XTAL/16) // 4MHz divided down with a 74LS161
MCFG_SOUND_ROUTE(tms3615_device::FOOTAGE_8, "speaker", 1.0)
MACHINE_CONFIG_END
@ -533,12 +533,12 @@ MACHINE_CONFIG_START(catnmous_state::catnmous)
laserbat_base(config);
// video hardware
MCFG_PALETTE_ADD("palette", 256)
MCFG_PALETTE_ADD(m_palette, 256)
MCFG_PALETTE_INIT_OWNER(catnmous_state, catnmous)
// sound board devices
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("audiopcb", ZACCARIA_1B11107, 0)
MCFG_SOUND_ADD(m_audiopcb, ZACCARIA_1B11107, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
MACHINE_CONFIG_END

View File

@ -1892,9 +1892,9 @@ INPUT_CHANGED_MEMBER(aes_base_state::aes_jp1)
MACHINE_CONFIG_START(neogeo_base_state::neogeo_base)
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M68000, NEOGEO_MAIN_CPU_CLOCK)
MCFG_CPU_ADD(m_maincpu, M68000, NEOGEO_MAIN_CPU_CLOCK)
MCFG_CPU_ADD("audiocpu", Z80, NEOGEO_AUDIO_CPU_CLOCK)
MCFG_CPU_ADD(m_audiocpu, Z80, NEOGEO_AUDIO_CPU_CLOCK)
MCFG_CPU_PROGRAM_MAP(audio_map)
MCFG_CPU_IO_MAP(audio_io_map)
@ -1909,27 +1909,27 @@ MACHINE_CONFIG_START(neogeo_base_state::neogeo_base)
/* video hardware */
MCFG_DEFAULT_LAYOUT(layout_neogeo)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_ADD(m_screen, RASTER)
MCFG_SCREEN_RAW_PARAMS(NEOGEO_PIXEL_CLOCK, NEOGEO_HTOTAL, NEOGEO_HBEND, NEOGEO_HBSTART, NEOGEO_VTOTAL, NEOGEO_VBEND, NEOGEO_VBSTART)
MCFG_SCREEN_UPDATE_DRIVER(neogeo_base_state, screen_update_neogeo)
/* 4096 colors * two banks * normal and shadow */
MCFG_PALETTE_ADD_INIT_BLACK("palette", 4096*2*2)
MCFG_PALETTE_ADD_INIT_BLACK(m_palette, 4096*2*2)
MCFG_DEVICE_ADD("spritegen", NEOGEO_SPRITE_OPTIMZIED, 0)
MCFG_DEVICE_ADD(m_sprgen, NEOGEO_SPRITE_OPTIMZIED, 0)
/* audio hardware */
MCFG_INPUT_MERGER_ALL_HIGH("audionmi")
MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("audiocpu", INPUT_LINE_NMI));
MCFG_INPUT_MERGER_ALL_HIGH(m_audionmi)
MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE(m_audiocpu, INPUT_LINE_NMI));
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
MCFG_GENERIC_LATCH_8_ADD(m_soundlatch)
MCFG_GENERIC_LATCH_SEPARATE_ACKNOWLEDGE(false)
MCFG_GENERIC_LATCH_DATA_PENDING_CB(DEVWRITELINE("audionmi", input_merger_device, in_w<0>))
MCFG_GENERIC_LATCH_DATA_PENDING_CB(DEVWRITELINE(m_audionmi, input_merger_device, in_w<0>))
MCFG_GENERIC_LATCH_8_ADD("soundlatch2")
MCFG_GENERIC_LATCH_8_ADD(m_soundlatch2)
MCFG_SOUND_ADD("ymsnd", YM2610, NEOGEO_YM2610_CLOCK)
MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
MCFG_SOUND_ADD(m_ym, YM2610, NEOGEO_YM2610_CLOCK)
MCFG_YM2610_IRQ_HANDLER(INPUTLINE(m_audiocpu, 0))
MACHINE_CONFIG_END

View File

@ -1763,7 +1763,7 @@ MACHINE_CONFIG_START(vgmplay_state::vgmplay)
MCFG_SOUND_ROUTE(0, "lspeaker", 1)
MCFG_SOUND_ROUTE(1, "rspeaker", 1)
MCFG_DEVICE_ADD("qsound", QSOUND, QSOUND_CLOCK)
MCFG_DEVICE_ADD("qsound", QSOUND)
MCFG_DEVICE_ADDRESS_MAP(0, qsound_map)
MCFG_SOUND_ROUTE(0, "lspeaker", 1)
MCFG_SOUND_ROUTE(1, "rspeaker", 1)

View File

@ -378,7 +378,7 @@ void zn_state::zn_map(address_map &map)
MACHINE_CONFIG_START(zn_state::zn1_1mb_vram)
/* basic machine hardware */
MCFG_CPU_ADD( "maincpu", CXD8530CQ, XTAL(67'737'600) )
MCFG_CPU_ADD( m_maincpu, CXD8530CQ, XTAL(67'737'600) )
MCFG_CPU_PROGRAM_MAP( zn_map)
MCFG_RAM_MODIFY("maincpu:ram")
@ -424,7 +424,7 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_START(zn_state::zn2)
/* basic machine hardware */
MCFG_CPU_ADD( "maincpu", CXD8661R, XTAL(100'000'000) )
MCFG_CPU_ADD( m_maincpu, CXD8661R, XTAL(100'000'000) )
MCFG_CPU_PROGRAM_MAP( zn_map)
MCFG_RAM_MODIFY("maincpu:ram")
@ -650,7 +650,7 @@ MACHINE_CONFIG_START(zn_state::coh1000c)
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(coh1000c_map)
MCFG_CPU_ADD("audiocpu", Z80, XTAL(8'000'000))
MCFG_CPU_ADD(m_audiocpu, Z80, XTAL(8'000'000))
MCFG_CPU_PROGRAM_MAP(qsound_map)
MCFG_CPU_IO_MAP(qsound_portmap)
MCFG_CPU_PERIODIC_INT_DRIVER(zn_state, qsound_interrupt, 250) // measured (cps2.cpp)
@ -659,9 +659,9 @@ MACHINE_CONFIG_START(zn_state::coh1000c)
MCFG_MACHINE_RESET_OVERRIDE(zn_state, coh1000c)
MCFG_DEVICE_MODIFY("soundlatch")
MCFG_GENERIC_LATCH_DATA_PENDING_CB(INPUTLINE("audiocpu", INPUT_LINE_NMI))
MCFG_GENERIC_LATCH_DATA_PENDING_CB(INPUTLINE(m_audiocpu, INPUT_LINE_NMI))
MCFG_DEVICE_ADD("qsound", QSOUND, QSOUND_CLOCK)
MCFG_DEVICE_ADD("qsound", QSOUND)
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
MACHINE_CONFIG_END
@ -676,7 +676,7 @@ MACHINE_CONFIG_START(zn_state::coh1002c)
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(coh1000c_map)
MCFG_CPU_ADD("audiocpu", Z80, XTAL(8'000'000))
MCFG_CPU_ADD(m_audiocpu, Z80, XTAL(8'000'000))
MCFG_CPU_PROGRAM_MAP(qsound_map)
MCFG_CPU_IO_MAP(qsound_portmap)
MCFG_CPU_PERIODIC_INT_DRIVER(zn_state, qsound_interrupt, 250) // measured (cps2.cpp)
@ -685,9 +685,9 @@ MACHINE_CONFIG_START(zn_state::coh1002c)
MCFG_MACHINE_RESET_OVERRIDE(zn_state, coh1000c)
MCFG_DEVICE_MODIFY("soundlatch")
MCFG_GENERIC_LATCH_DATA_PENDING_CB(INPUTLINE("audiocpu", INPUT_LINE_NMI))
MCFG_GENERIC_LATCH_DATA_PENDING_CB(INPUTLINE(m_audiocpu, INPUT_LINE_NMI))
MCFG_DEVICE_ADD("qsound", QSOUND, QSOUND_CLOCK)
MCFG_DEVICE_ADD("qsound", QSOUND)
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
MACHINE_CONFIG_END
@ -838,7 +838,7 @@ MACHINE_CONFIG_START(zn_state::coh3002c)
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(coh1000c_map)
MCFG_CPU_ADD("audiocpu", Z80, XTAL(8'000'000))
MCFG_CPU_ADD(m_audiocpu, Z80, XTAL(8'000'000))
MCFG_CPU_PROGRAM_MAP(qsound_map)
MCFG_CPU_IO_MAP(qsound_portmap)
MCFG_CPU_PERIODIC_INT_DRIVER(zn_state, qsound_interrupt, 250) // measured (cps2.cpp)
@ -847,9 +847,9 @@ MACHINE_CONFIG_START(zn_state::coh3002c)
MCFG_MACHINE_RESET_OVERRIDE(zn_state, coh1000c)
MCFG_DEVICE_MODIFY("soundlatch")
MCFG_GENERIC_LATCH_DATA_PENDING_CB(INPUTLINE("audiocpu", INPUT_LINE_NMI))
MCFG_GENERIC_LATCH_DATA_PENDING_CB(INPUTLINE(m_audiocpu, INPUT_LINE_NMI))
MCFG_DEVICE_ADD("qsound", QSOUND, QSOUND_CLOCK)
MCFG_DEVICE_ADD("qsound", QSOUND)
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
MACHINE_CONFIG_END
@ -1135,14 +1135,14 @@ MACHINE_CONFIG_START(zn_state::coh1000ta)
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(coh1000ta_map)
MCFG_CPU_ADD("audiocpu", Z80, XTAL(16'000'000) / 4) /* 4 MHz */
MCFG_CPU_ADD(m_audiocpu, Z80, XTAL(16'000'000) / 4) /* 4 MHz */
MCFG_CPU_PROGRAM_MAP(fx1a_sound_map)
MCFG_MACHINE_START_OVERRIDE(zn_state, coh1000ta)
MCFG_MACHINE_RESET_OVERRIDE(zn_state, coh1000ta)
MCFG_SOUND_ADD("ymsnd", YM2610B, XTAL(16'000'000)/2)
MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
MCFG_YM2610_IRQ_HANDLER(INPUTLINE(m_audiocpu, 0))
MCFG_SOUND_ROUTE(0, "lspeaker", 0.25)
MCFG_SOUND_ROUTE(0, "rspeaker", 0.25)
MCFG_SOUND_ROUTE(1, "lspeaker", 1.0)
@ -1680,7 +1680,7 @@ MACHINE_CONFIG_START(zn_state::coh1002e)
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(coh1002e_map)
MCFG_CPU_ADD("audiocpu", M68000, XTAL(12'000'000))
MCFG_CPU_ADD(m_audiocpu, M68000, XTAL(12'000'000))
MCFG_CPU_PROGRAM_MAP(psarc_snd_map)
MCFG_MACHINE_START_OVERRIDE(zn_state, coh1002e)
@ -1696,7 +1696,7 @@ MACHINE_CONFIG_START(zn_state::beastrzrb)
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(coh1002e_map)
MCFG_CPU_ADD("audiocpu", AT89C4051, XTAL(12'000'000)) // clock unverified
MCFG_CPU_ADD(m_audiocpu, AT89C4051, XTAL(12'000'000)) // clock unverified
MCFG_CPU_PROGRAM_MAP(beastrzrb_snd_map)
MCFG_MACHINE_START_OVERRIDE(zn_state, coh1002e)
@ -2380,17 +2380,17 @@ MACHINE_CONFIG_START(zn_state::coh1001l)
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(coh1001l_map)
MCFG_CPU_ADD("audiocpu", M68000, XTAL(10'000'000))
MCFG_CPU_ADD(m_audiocpu, M68000, XTAL(10'000'000))
MCFG_CPU_PROGRAM_MAP(atlus_snd_map)
MCFG_MACHINE_START_OVERRIDE(zn_state, coh1001l)
MCFG_MACHINE_RESET_OVERRIDE(zn_state, coh1001l)
MCFG_GENERIC_LATCH_16_ADD("soundlatch16")
MCFG_GENERIC_LATCH_DATA_PENDING_CB(INPUTLINE("audiocpu", 3))
MCFG_GENERIC_LATCH_DATA_PENDING_CB(INPUTLINE(m_audiocpu, 3))
MCFG_SOUND_ADD("ymz", YMZ280B, XTAL(16'934'400))
MCFG_YMZ280B_IRQ_HANDLER(INPUTLINE("audiocpu", 2))
MCFG_YMZ280B_IRQ_HANDLER(INPUTLINE(m_audiocpu, 2))
MCFG_SOUND_ROUTE(0, "lspeaker", 0.35)
MCFG_SOUND_ROUTE(1, "rspeaker", 0.35)
MACHINE_CONFIG_END
@ -2683,7 +2683,7 @@ MACHINE_CONFIG_START(zn_state::coh1002msnd)
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(coh1002msnd_map)
MCFG_CPU_ADD("audiocpu", Z80, XTAL(32'000'000)/8)
MCFG_CPU_ADD(m_audiocpu, Z80, XTAL(32'000'000)/8)
MCFG_CPU_PROGRAM_MAP(cbaj_z80_map)
MCFG_CPU_IO_MAP(cbaj_z80_port_map)

View File

@ -60,11 +60,19 @@ public:
{
}
DECLARE_DRIVER_INIT(laserbat);
void laserbat_base(machine_config &config);
void laserbat_io_map(address_map &map);
void laserbat_map(address_map &map);
protected:
enum { TIMER_SCANLINE };
// control ports
DECLARE_WRITE8_MEMBER(ct_io_w);
DECLARE_READ8_MEMBER(rrowx_r);
DECLARE_DRIVER_INIT(laserbat);
INTERRUPT_GEN_MEMBER(laserbat_interrupt);
// video memory and control ports
@ -84,12 +92,6 @@ public:
virtual void video_start() override;
uint32_t screen_update_laserbat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void laserbat_base(machine_config &config);
void laserbat_io_map(address_map &map);
void laserbat_map(address_map &map);
protected:
enum { TIMER_SCANLINE };
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
// video functions
@ -115,16 +117,16 @@ protected:
// stuff for rendering video
emu_timer *m_scanline_timer;
bitmap_ind16 m_bitmap;
uint8_t const *m_gfx1;
uint8_t const *m_gfx2;
uint8_t const *m_gfx1;
uint8_t const *m_gfx2;
// control lines
unsigned m_input_mux;
bool m_mpx_p_1_2;
// RAM used by TTL video hardware, writable by CPU
uint8_t m_bg_ram[0x400]; // background tilemap
uint8_t m_eff_ram[0x400]; // per-scanline effects (A8 not wired meaning only half is usable)
uint8_t m_bg_ram[0x400]; // background tilemap
uint8_t m_eff_ram[0x400]; // per-scanline effects (A8 not wired meaning only half is usable)
bool m_mpx_bkeff; // select between writing background and effects memory
// signals affecting the TTL-generated 32x32 sprite
@ -162,18 +164,19 @@ public:
{
}
void laserbat(machine_config &config);
protected:
// initialisation/startup
virtual void machine_start() override;
// video initialisation
DECLARE_PALETTE_INIT(laserbat);
// sound control ports
virtual DECLARE_WRITE8_MEMBER(csound2_w) override;
void laserbat(machine_config &config);
protected:
// initialisation/startup
virtual void machine_start() override;
// sound board devices
required_device<sn76477_device> m_csg;
required_device<tms3615_device> m_synth_low;
@ -193,6 +196,10 @@ public:
{
}
void catnmous(machine_config &config);
protected:
// video initialisation
DECLARE_PALETTE_INIT(catnmous);
@ -200,7 +207,5 @@ public:
virtual DECLARE_WRITE8_MEMBER(csound1_w) override;
virtual DECLARE_WRITE8_MEMBER(csound2_w) override;
void catnmous(machine_config &config);
protected:
required_device<zac1b11107_audio_device> m_audiopcb;
};