-devices/sound/262intf, bsmt2000, c6280, cdp1863, msm5232, ymf271: Removed MCFG macros, nw

-audio/decobsmt, bigevglf, ladyfrog, nycaptor, play_2, seibuspi, tecmosys, wyvernf0: Removed MACHINE_CONFIG macros, nw
This commit is contained in:
mooglyguy 2018-12-26 10:29:49 +01:00
parent 1dd575ff2e
commit 6b92c07f68
16 changed files with 403 additions and 426 deletions

View File

@ -50,15 +50,18 @@ DEFINE_DEVICE_TYPE(VP550, vp550_device, "vp550", "VP-550 Super Sound")
// MACHINE_CONFIG_START( vp550 )
//-------------------------------------------------
MACHINE_CONFIG_START(vp550_device::device_add_mconfig)
void vp550_device::device_add_mconfig(machine_config &config)
{
SPEAKER(config, "mono").front_center();
MCFG_CDP1863_ADD(CDP1863_A_TAG, 0, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
CDP1863(config, m_pfg_a, 0);
m_pfg_a->set_clock2(0);
m_pfg_a->add_route(ALL_OUTPUTS, "mono", 1.0);
MCFG_CDP1863_ADD(CDP1863_B_TAG, 0, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
MACHINE_CONFIG_END
CDP1863(config, m_pfg_b, 0);
m_pfg_b->set_clock2(0);
m_pfg_b->add_route(ALL_OUTPUTS, "mono", 1.0);
}

View File

@ -33,12 +33,14 @@ DEFINE_DEVICE_TYPE(VP595, vp595_device, "vp595", "VP-595 Simple Sound")
// MACHINE_CONFIG_START( vp595 )
//-------------------------------------------------
MACHINE_CONFIG_START(vp595_device::device_add_mconfig)
void vp595_device::device_add_mconfig(machine_config &config)
{
SPEAKER(config, "mono").front_center();
MCFG_CDP1863_ADD(CDP1863_TAG, 0, CDP1863_XTAL)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
CDP1863(config, m_pfg, 0);
m_pfg->set_clock2(CDP1863_XTAL);
m_pfg->add_route(ALL_OUTPUTS, "mono", 0.25);
}

View File

@ -5,17 +5,13 @@
#pragma once
#define MCFG_YMF262_IRQ_HANDLER(cb) \
downcast<ymf262_device &>(*device).set_irq_handler((DEVCB_##cb));
class ymf262_device : public device_t, public device_sound_interface
{
public:
ymf262_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// configuration helpers
template <class Object> devcb_base &set_irq_handler(Object &&cb) { return m_irq_handler.set_callback(std::forward<Object>(cb)); }
auto irq_handler() { return m_irq_handler.bind(); }
DECLARE_READ8_MEMBER( read );
DECLARE_WRITE8_MEMBER( write );

View File

@ -16,14 +16,6 @@
#include "cpu/tms32010/tms32010.h"
//**************************************************************************
// INTERFACE CONFIGURATION MACROS
//**************************************************************************
#define MCFG_BSMT2000_READY_CALLBACK(_class, _method) \
downcast<bsmt2000_device &>(*device).set_ready_callback(bsmt2000_device::ready_callback(&_class::_method, #_class "::" #_method, nullptr, (_class *)nullptr));
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
@ -42,7 +34,15 @@ public:
bsmt2000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// inline configuration helpers
template <typename Object> void set_ready_callback(Object &&cb) { m_ready_callback = std::forward<Object>(cb); }
void set_ready_callback(ready_callback callback) { m_ready_callback = callback; }
template <class FunctionClass> void set_ready_callback(const char *devname, void (FunctionClass::*callback)(), const char *name)
{
set_ready_callback(ready_callback(callback, name, devname, static_cast<FunctionClass *>(nullptr)));
}
template <class FunctionClass> void set_ready_callback(void (FunctionClass::*callback)(), const char *name)
{
set_ready_callback(ready_callback(callback, name, nullptr, static_cast<FunctionClass *>(nullptr)));
}
// public interface
uint16_t read_status();

View File

@ -50,7 +50,4 @@ private:
DECLARE_DEVICE_TYPE(C6280, c6280_device)
#define MCFG_C6280_CPU(tag) \
downcast<c6280_device &>(*device).set_devicecpu_tag(tag);
#endif // MAME_SOUND_C6280_H

View File

@ -25,16 +25,6 @@
//**************************************************************************
// INTERFACE CONFIGURATION MACROS
//**************************************************************************
#define MCFG_CDP1863_ADD(_tag, _clock, _clock2) \
MCFG_DEVICE_ADD(_tag, CDP1863, _clock) \
downcast<cdp1863_device &>(*device).set_clock2(_clock2);
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************

View File

@ -6,13 +6,6 @@
#pragma once
#define MCFG_MSM5232_SET_CAPACITORS(_a, _b, _c, _d, _e, _f, _g, _h) \
downcast<msm5232_device &>(*device).set_capacitors(_a, _b, _c, _d, _e, _f, _g, _h);
#define MCFG_MSM5232_GATE_HANDLER_CB(_devcb) \
downcast<msm5232_device &>(*device).set_gate_handler_callback(DEVCB_##_devcb);
class msm5232_device : public device_t,
public device_sound_interface
{
@ -20,7 +13,6 @@ public:
msm5232_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
void set_capacitors(double cap1, double cap2, double cap3, double cap4, double cap5, double cap6, double cap7, double cap8);
template <class Object> devcb_base &set_gate_handler_callback(Object &&cb) { return m_gate_handler_cb.set_callback(std::forward<Object>(cb)); }
auto gate() { return m_gate_handler_cb.bind(); }
DECLARE_WRITE8_MEMBER( write );

View File

@ -6,9 +6,6 @@
#pragma once
#define MCFG_YMF271_IRQ_HANDLER(_devcb) \
downcast<ymf271_device &>(*device).set_irq_handler(DEVCB_##_devcb);
class ymf271_device : public device_t, public device_sound_interface, public device_rom_interface
{
public:
@ -17,7 +14,7 @@ public:
ymf271_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// configuration helpers
template <class Object> devcb_base &set_irq_handler(Object &&cb) { return m_irq_handler.set_callback(std::forward<Object>(cb)); }
auto irq_handler() { return m_irq_handler.bind(); }
DECLARE_READ8_MEMBER( read );
DECLARE_WRITE8_MEMBER( write );

View File

@ -48,19 +48,20 @@ DEFINE_DEVICE_TYPE(DECOBSMT, decobsmt_device, "decobsmt", "Data East/Sega/Stern
// device_add_mconfig - add device configuration
//-------------------------------------------------
MACHINE_CONFIG_START(decobsmt_device::device_add_mconfig)
MCFG_DEVICE_ADD(M6809_TAG, MC6809E, XTAL(24'000'000) / 12) // 68B09E U6 (E & Q = 2 MHz according to manual)
MCFG_DEVICE_PROGRAM_MAP(decobsmt_map)
MCFG_DEVICE_PERIODIC_INT_DRIVER(decobsmt_device, decobsmt_firq_interrupt, 489) /* Fixed FIRQ of 489Hz as measured on real (pinball) machine */
void decobsmt_device::device_add_mconfig(machine_config &config)
{
MC6809E(config, m_ourcpu, XTAL(24'000'000) / 12); // 68B09E U6 (E & Q = 2 MHz according to manual)
m_ourcpu->set_addrmap(AS_PROGRAM, &decobsmt_device::decobsmt_map);
m_ourcpu->set_periodic_int(FUNC(decobsmt_device::decobsmt_firq_interrupt), attotime::from_hz(489)); /* Fixed FIRQ of 489Hz as measured on real (pinball) machine */
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
MCFG_DEVICE_ADD(BSMT_TAG, BSMT2000, XTAL(24'000'000))
MCFG_DEVICE_ADDRESS_MAP(0, bsmt_map)
MCFG_BSMT2000_READY_CALLBACK(decobsmt_device, bsmt_ready_callback)
MCFG_SOUND_ROUTE(0, "lspeaker", 2.0)
MCFG_SOUND_ROUTE(1, "rspeaker", 2.0)
MACHINE_CONFIG_END
BSMT2000(config, m_bsmt, XTAL(24'000'000));
m_bsmt->set_addrmap(0, &decobsmt_device::bsmt_map);
m_bsmt->set_ready_callback(FUNC(decobsmt_device::bsmt_ready_callback));
m_bsmt->add_route(0, "lspeaker", 2.0);
m_bsmt->add_route(1, "rspeaker", 2.0);
}
//**************************************************************************
// LIVE DEVICE

View File

@ -376,74 +376,74 @@ void bigevglf_state::machine_reset()
m_mcu_coin_bit5 = 0;
}
MACHINE_CONFIG_START(bigevglf_state::bigevglf)
void bigevglf_state::bigevglf(machine_config &config)
{
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", Z80,10000000/2) /* 5 MHz ? */
MCFG_DEVICE_PROGRAM_MAP(main_map)
MCFG_DEVICE_IO_MAP(bigevglf_portmap)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", bigevglf_state, irq0_line_hold) /* vblank */
Z80(config, m_maincpu, 10000000/2); /* 5 MHz ? */
m_maincpu->set_addrmap(AS_PROGRAM, &bigevglf_state::main_map);
m_maincpu->set_addrmap(AS_IO, &bigevglf_state::bigevglf_portmap);
m_maincpu->set_vblank_int("screen", FUNC(bigevglf_state::irq0_line_hold)); /* vblank */
MCFG_DEVICE_ADD("sub", Z80,10000000/2) /* 5 MHz ? */
MCFG_DEVICE_PROGRAM_MAP(sub_map)
MCFG_DEVICE_IO_MAP(bigevglf_sub_portmap)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", bigevglf_state, irq0_line_hold) /* vblank */
z80_device &subcpu(Z80(config, "sub", 10000000/2)); /* 5 MHz ? */
subcpu.set_addrmap(AS_PROGRAM, &bigevglf_state::sub_map);
subcpu.set_addrmap(AS_IO, &bigevglf_state::bigevglf_sub_portmap);
subcpu.set_vblank_int("screen", FUNC(bigevglf_state::irq0_line_hold)); /* vblank */
MCFG_DEVICE_ADD("audiocpu", Z80,8000000/2) /* 4 MHz ? */
MCFG_DEVICE_PROGRAM_MAP(sound_map)
MCFG_DEVICE_PERIODIC_INT_DRIVER(bigevglf_state, irq0_line_hold, 2*60) /* IRQ generated by ???;
Z80(config, m_audiocpu, 8000000/2); /* 4 MHz ? */
m_audiocpu->set_addrmap(AS_PROGRAM, &bigevglf_state::sound_map);
m_audiocpu->set_periodic_int(FUNC(bigevglf_state::irq0_line_hold), attotime::from_hz(2*60)); /* IRQ generated by ???;
2 irqs/frame give good music tempo but also SOUND ERROR in test mode,
4 irqs/frame give SOUND OK in test mode but music seems to be running too fast */
/* Clearly, then, there should be some sort of IRQ acknowledge mechanism, duh. -R */
GENERIC_LATCH_8(config, m_soundlatch[0]);
m_soundlatch[0]->data_pending_callback().set("soundnmi", FUNC(input_merger_device::in_w<0>));
GENERIC_LATCH_8(config, m_soundlatch[1]);
MCFG_INPUT_MERGER_ALL_HIGH("soundnmi")
MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("audiocpu", INPUT_LINE_NMI))
INPUT_MERGER_ALL_HIGH(config, "soundnmi").output_handler().set_inputline("audiocpu", INPUT_LINE_NMI);
MCFG_DEVICE_ADD("bmcu", TAITO68705_MCU, 2000000) /* ??? */
MCFG_QUANTUM_TIME(attotime::from_hz(600)) /* 10 CPU slices per frame - interleaving is forced on the fly */
TAITO68705_MCU(config, m_bmcu, 2000000); /* ??? */
config.m_minimum_quantum = attotime::from_hz(600); /* 10 CPU slices per frame - interleaving is forced on the fly */
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(bigevglf_state, screen_update_bigevglf)
MCFG_SCREEN_PALETTE("palette")
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
m_screen->set_refresh_hz(60);
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
m_screen->set_size(32*8, 32*8);
m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
m_screen->set_screen_update(FUNC(bigevglf_state::screen_update_bigevglf));
m_screen->set_palette(m_palette);
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_bigevglf)
MCFG_PALETTE_ADD("palette", 0x800)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_bigevglf);
PALETTE(config, m_palette, 0x800);
/* sound hardware */
SPEAKER(config, "mono").front_center();
YM2149(config, "aysnd", 8000000/4).add_route(ALL_OUTPUTS, "mono", 0.15);
MCFG_DEVICE_ADD("msm", MSM5232, 8000000/4)
MCFG_MSM5232_SET_CAPACITORS(0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6) /* 0.65 (???) uF capacitors */
MCFG_SOUND_ROUTE(0, "mono", 1.0) // pin 28 2'-1
MCFG_SOUND_ROUTE(1, "mono", 1.0) // pin 29 4'-1
MCFG_SOUND_ROUTE(2, "mono", 1.0) // pin 30 8'-1
MCFG_SOUND_ROUTE(3, "mono", 1.0) // pin 31 16'-1
MCFG_SOUND_ROUTE(4, "mono", 1.0) // pin 36 2'-2
MCFG_SOUND_ROUTE(5, "mono", 1.0) // pin 35 4'-2
MCFG_SOUND_ROUTE(6, "mono", 1.0) // pin 34 8'-2
MCFG_SOUND_ROUTE(7, "mono", 1.0) // pin 33 16'-2
MSM5232(config, m_msm, 8000000/4);
m_msm->set_capacitors(0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6); /* 0.65 (???) uF capacitors */
m_msm->add_route(0, "mono", 1.0); // pin 28 2'-1
m_msm->add_route(1, "mono", 1.0); // pin 29 4'-1
m_msm->add_route(2, "mono", 1.0); // pin 30 8'-1
m_msm->add_route(3, "mono", 1.0); // pin 31 16'-1
m_msm->add_route(4, "mono", 1.0); // pin 36 2'-2
m_msm->add_route(5, "mono", 1.0); // pin 35 4'-2
m_msm->add_route(6, "mono", 1.0); // pin 34 8'-2
m_msm->add_route(7, "mono", 1.0); // pin 33 16'-2
// pin 1 SOLO 8' not mapped
// pin 2 SOLO 16' not mapped
// pin 22 Noise Output not mapped
MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "mono", 0.50); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
}
/***************************************************************************

View File

@ -288,33 +288,32 @@ void ladyfrog_state::machine_reset()
m_snd_data = 0;
}
MACHINE_CONFIG_START(ladyfrog_state::ladyfrog)
void ladyfrog_state::ladyfrog(machine_config &config)
{
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", Z80,XTAL(8'000'000)/2)
MCFG_DEVICE_PROGRAM_MAP(ladyfrog_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", ladyfrog_state, irq0_line_hold)
Z80(config, m_maincpu, XTAL(8'000'000)/2);
m_maincpu->set_addrmap(AS_PROGRAM, &ladyfrog_state::ladyfrog_map);
m_maincpu->set_vblank_int("screen", FUNC(ladyfrog_state::irq0_line_hold));
MCFG_DEVICE_ADD("audiocpu", Z80,XTAL(8'000'000)/2)
MCFG_DEVICE_PROGRAM_MAP(ladyfrog_sound_map)
MCFG_DEVICE_PERIODIC_INT_DRIVER(ladyfrog_state, irq0_line_hold, 2*60)
Z80(config, m_audiocpu, XTAL(8'000'000)/2);
m_audiocpu->set_addrmap(AS_PROGRAM, &ladyfrog_state::ladyfrog_sound_map);
m_audiocpu->set_periodic_int(FUNC(ladyfrog_state::irq0_line_hold), attotime::from_hz(2*60));
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
config.m_minimum_quantum = attotime::from_hz(6000);
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
// MCFG_SCREEN_REFRESH_RATE(60)
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
// MCFG_SCREEN_SIZE(32*8, 32*8)
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) // black borders in ladyfrog gameplay are correct
MCFG_SCREEN_RAW_PARAMS( XTAL(8'000'000), 510, 0, 256, 262, 2*8, 30*8 ) // pixel clock appears to run at 8 MHz
MCFG_SCREEN_UPDATE_DRIVER(ladyfrog_state, screen_update_ladyfrog)
MCFG_SCREEN_PALETTE("palette")
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
// screen.set_refresh_hz(60);
// screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
// screen.set_size(32*8, 32*8);
// screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1); // black borders in ladyfrog gameplay are correct
screen.set_raw(XTAL(8'000'000), 510, 0, 256, 262, 2*8, 30*8); // pixel clock appears to run at 8 MHz
screen.set_screen_update(FUNC(ladyfrog_state::screen_update_ladyfrog));
screen.set_palette(m_palette);
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_ladyfrog)
MCFG_PALETTE_ADD("palette", 512)
MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_ladyfrog);
PALETTE(config, m_palette, 512);
m_palette->set_format(PALETTE_FORMAT_xxxxBBBBGGGGRRRR);
/* sound hardware */
SPEAKER(config, "mono").front_center();
@ -326,29 +325,32 @@ MACHINE_CONFIG_START(ladyfrog_state::ladyfrog)
aysnd.port_b_write_callback().set(FUNC(ladyfrog_state::unk_w));
aysnd.add_route(ALL_OUTPUTS, "mono", 0.15);
MCFG_DEVICE_ADD("msm", MSM5232, XTAL(8'000'000)/4)
MCFG_MSM5232_SET_CAPACITORS(0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6)
MCFG_SOUND_ROUTE(0, "mono", 1.0) // pin 28 2'-1
MCFG_SOUND_ROUTE(1, "mono", 1.0) // pin 29 4'-1
MCFG_SOUND_ROUTE(2, "mono", 1.0) // pin 30 8'-1
MCFG_SOUND_ROUTE(3, "mono", 1.0) // pin 31 16'-1
MCFG_SOUND_ROUTE(4, "mono", 1.0) // pin 36 2'-2
MCFG_SOUND_ROUTE(5, "mono", 1.0) // pin 35 4'-2
MCFG_SOUND_ROUTE(6, "mono", 1.0) // pin 34 8'-2
MCFG_SOUND_ROUTE(7, "mono", 1.0) // pin 33 16'-2
MSM5232(config, m_msm, XTAL(8'000'000)/4);
m_msm->set_capacitors(0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6);
m_msm->add_route(0, "mono", 1.0); // pin 28 2'-1
m_msm->add_route(1, "mono", 1.0); // pin 29 4'-1
m_msm->add_route(2, "mono", 1.0); // pin 30 8'-1
m_msm->add_route(3, "mono", 1.0); // pin 31 16'-1
m_msm->add_route(4, "mono", 1.0); // pin 36 2'-2
m_msm->add_route(5, "mono", 1.0); // pin 35 4'-2
m_msm->add_route(6, "mono", 1.0); // pin 34 8'-2
m_msm->add_route(7, "mono", 1.0); // pin 33 16'-2
// pin 1 SOLO 8' not mapped
// pin 2 SOLO 16' not mapped
// pin 22 Noise Output not mapped
MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "mono", 0.25); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
}
MACHINE_CONFIG_START(ladyfrog_state::toucheme)
void ladyfrog_state::toucheme(machine_config &config)
{
ladyfrog(config);
MCFG_VIDEO_START_OVERRIDE(ladyfrog_state,toucheme)
MACHINE_CONFIG_END
}
ROM_START( ladyfrog )

View File

@ -732,39 +732,37 @@ void nycaptor_state::machine_reset()
m_gfxctrl = 0;
}
MACHINE_CONFIG_START(nycaptor_state::nycaptor)
void nycaptor_state::nycaptor(machine_config &config)
{
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", Z80,8000000/2) /* ??? */
MCFG_DEVICE_PROGRAM_MAP(nycaptor_master_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", nycaptor_state, irq0_line_hold)
Z80(config, m_maincpu, 8000000/2); /* ??? */
m_maincpu->set_addrmap(AS_PROGRAM, &nycaptor_state::nycaptor_master_map);
m_maincpu->set_vblank_int("screen", FUNC(nycaptor_state::irq0_line_hold));
MCFG_DEVICE_ADD("sub", Z80,8000000/2)
MCFG_DEVICE_PROGRAM_MAP(nycaptor_slave_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", nycaptor_state, irq0_line_hold) /* IRQ generated by ??? */
Z80(config, m_subcpu, 8000000/2);
m_subcpu->set_addrmap(AS_PROGRAM, &nycaptor_state::nycaptor_slave_map);
m_subcpu->set_vblank_int("screen", FUNC(nycaptor_state::irq0_line_hold)); /* IRQ generated by ??? */
MCFG_DEVICE_ADD("audiocpu", Z80,8000000/2)
MCFG_DEVICE_PROGRAM_MAP(sound_map)
MCFG_DEVICE_PERIODIC_INT_DRIVER(nycaptor_state, irq0_line_hold, 2*60) /* IRQ generated by ??? */
Z80(config, m_audiocpu, 8000000/2);
m_audiocpu->set_addrmap(AS_PROGRAM, &nycaptor_state::sound_map);
m_audiocpu->set_periodic_int(FUNC(nycaptor_state::irq0_line_hold), attotime::from_hz(2*60)); /* IRQ generated by ??? */
MCFG_DEVICE_ADD("bmcu", TAITO68705_MCU,2000000)
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame - an high value to ensure proper synchronization of the CPUs */
TAITO68705_MCU(config, m_bmcu, 2000000);
config.m_minimum_quantum = attotime::from_hz(6000); /* 100 CPU slices per frame - a high value to ensure proper synchronization of the CPUs */
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(nycaptor_state, screen_update_nycaptor)
MCFG_SCREEN_PALETTE("palette")
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_nycaptor)
MCFG_PALETTE_ADD("palette", 512)
MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_refresh_hz(60);
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
screen.set_size(32*8, 32*8);
screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
screen.set_screen_update(FUNC(nycaptor_state::screen_update_nycaptor));
screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_nycaptor);
PALETTE(config, m_palette, 512);
m_palette->set_format(PALETTE_FORMAT_xxxxBBBBGGGGRRRR);
/* sound hardware */
SPEAKER(config, "speaker").front_center();
@ -772,8 +770,7 @@ MACHINE_CONFIG_START(nycaptor_state::nycaptor)
GENERIC_LATCH_8(config, m_soundlatch);
m_soundlatch->data_pending_callback().set("soundnmi", FUNC(input_merger_device::in_w<0>));
MCFG_INPUT_MERGER_ALL_HIGH("soundnmi")
MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("audiocpu", INPUT_LINE_NMI))
INPUT_MERGER_ALL_HIGH(config, "soundnmi").output_handler().set_inputline("audiocpu", INPUT_LINE_NMI);
GENERIC_LATCH_8(config, m_soundlatch2);
@ -787,67 +784,65 @@ MACHINE_CONFIG_START(nycaptor_state::nycaptor)
ay2.port_b_write_callback().set(FUNC(nycaptor_state::unk_w));
ay2.add_route(ALL_OUTPUTS, "speaker", 0.15);
MCFG_DEVICE_ADD("msm", MSM5232, 2000000)
MCFG_MSM5232_SET_CAPACITORS(0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6) /* 0.65 (???) uF capacitors (match the sample, not verified) */
MCFG_SOUND_ROUTE(0, "speaker", 1.0) // pin 28 2'-1
MCFG_SOUND_ROUTE(1, "speaker", 1.0) // pin 29 4'-1
MCFG_SOUND_ROUTE(2, "speaker", 1.0) // pin 30 8'-1
MCFG_SOUND_ROUTE(3, "speaker", 1.0) // pin 31 16'-1
MCFG_SOUND_ROUTE(4, "speaker", 1.0) // pin 36 2'-2
MCFG_SOUND_ROUTE(5, "speaker", 1.0) // pin 35 4'-2
MCFG_SOUND_ROUTE(6, "speaker", 1.0) // pin 34 8'-2
MCFG_SOUND_ROUTE(7, "speaker", 1.0) // pin 33 16'-2
MSM5232(config, m_msm, 2000000);
m_msm->set_capacitors(0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6); /* 0.65 (???) uF capacitors (match the sample, not verified) */
m_msm->add_route(0, "speaker", 1.0); // pin 28 2'-1
m_msm->add_route(1, "speaker", 1.0); // pin 29 4'-1
m_msm->add_route(2, "speaker", 1.0); // pin 30 8'-1
m_msm->add_route(3, "speaker", 1.0); // pin 31 16'-1
m_msm->add_route(4, "speaker", 1.0); // pin 36 2'-2
m_msm->add_route(5, "speaker", 1.0); // pin 35 4'-2
m_msm->add_route(6, "speaker", 1.0); // pin 34 8'-2
m_msm->add_route(7, "speaker", 1.0); // pin 33 16'-2
// pin 1 SOLO 8' not mapped
// pin 2 SOLO 16' not mapped
// pin 22 Noise Output not mapped
// Does the DAC also exist on this board? nycaptor writes 0x80 to 0xd600
// Update: of course it exists, sound board seems common Taito design.
MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
}
MACHINE_CONFIG_START(nycaptor_state::cyclshtg)
void nycaptor_state::cyclshtg(machine_config &config)
{
Z80(config, m_maincpu, 8000000/2);
m_maincpu->set_addrmap(AS_PROGRAM, &nycaptor_state::cyclshtg_master_map);
m_maincpu->set_vblank_int("screen", FUNC(nycaptor_state::irq0_line_hold));
MCFG_DEVICE_ADD("maincpu", Z80,8000000/2)
MCFG_DEVICE_PROGRAM_MAP(cyclshtg_master_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", nycaptor_state, irq0_line_hold)
Z80(config, m_subcpu, 8000000/2);
m_subcpu->set_addrmap(AS_PROGRAM, &nycaptor_state::cyclshtg_slave_map);
m_subcpu->set_vblank_int("screen", FUNC(nycaptor_state::irq0_line_hold));
MCFG_DEVICE_ADD("sub", Z80,8000000/2)
MCFG_DEVICE_PROGRAM_MAP(cyclshtg_slave_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", nycaptor_state, irq0_line_hold)
MCFG_DEVICE_ADD("audiocpu", Z80,8000000/2)
MCFG_DEVICE_PROGRAM_MAP(sound_map)
MCFG_DEVICE_PERIODIC_INT_DRIVER(nycaptor_state, irq0_line_hold, 2*60)
Z80(config, m_audiocpu, 8000000/2);
m_audiocpu->set_addrmap(AS_PROGRAM, &nycaptor_state::sound_map);
m_audiocpu->set_periodic_int(FUNC(nycaptor_state::irq0_line_hold), attotime::from_hz(2*60));
#ifdef USE_MCU
MCFG_DEVICE_ADD("bmcu", TAITO68705_MCU,2000000)
TAITO68705_MCU(config, m_bmcu, 2000000);
#endif
MCFG_QUANTUM_TIME(attotime::from_hz(60))
config.m_minimum_quantum = attotime::from_hz(60);
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(nycaptor_state, screen_update_nycaptor)
MCFG_SCREEN_PALETTE("palette")
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_nycaptor)
MCFG_PALETTE_ADD("palette", 512)
MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_refresh_hz(60);
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
screen.set_size(32*8, 32*8);
screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
screen.set_screen_update(FUNC(nycaptor_state::screen_update_nycaptor));
screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_nycaptor);
PALETTE(config, m_palette, 512);
m_palette->set_format(PALETTE_FORMAT_xxxxBBBBGGGGRRRR);
SPEAKER(config, "speaker").front_center();
GENERIC_LATCH_8(config, m_soundlatch);
m_soundlatch->data_pending_callback().set("soundnmi", FUNC(input_merger_device::in_w<0>));
MCFG_INPUT_MERGER_ALL_HIGH("soundnmi")
MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("audiocpu", INPUT_LINE_NMI))
INPUT_MERGER_ALL_HIGH(config, "soundnmi").output_handler().set_inputline("audiocpu", INPUT_LINE_NMI);
GENERIC_LATCH_8(config, m_soundlatch2);
@ -861,62 +856,63 @@ MACHINE_CONFIG_START(nycaptor_state::cyclshtg)
ay2.port_b_write_callback().set(FUNC(nycaptor_state::unk_w));
ay2.add_route(ALL_OUTPUTS, "speaker", 0.15);
MCFG_DEVICE_ADD("msm", MSM5232, 2000000)
MCFG_MSM5232_SET_CAPACITORS(0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6) /* 0.65 (???) uF capacitors (match the sample, not verified) */
MCFG_SOUND_ROUTE(0, "speaker", 1.0) // pin 28 2'-1
MCFG_SOUND_ROUTE(1, "speaker", 1.0) // pin 29 4'-1
MCFG_SOUND_ROUTE(2, "speaker", 1.0) // pin 30 8'-1
MCFG_SOUND_ROUTE(3, "speaker", 1.0) // pin 31 16'-1
MCFG_SOUND_ROUTE(4, "speaker", 1.0) // pin 36 2'-2
MCFG_SOUND_ROUTE(5, "speaker", 1.0) // pin 35 4'-2
MCFG_SOUND_ROUTE(6, "speaker", 1.0) // pin 34 8'-2
MCFG_SOUND_ROUTE(7, "speaker", 1.0) // pin 33 16'-2
MSM5232(config, m_msm, 2000000);
m_msm->set_capacitors(0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6); /* 0.65 (???) uF capacitors (match the sample, not verified) */
m_msm->add_route(0, "speaker", 1.0); // pin 28 2'-1
m_msm->add_route(1, "speaker", 1.0); // pin 29 4'-1
m_msm->add_route(2, "speaker", 1.0); // pin 30 8'-1
m_msm->add_route(3, "speaker", 1.0); // pin 31 16'-1
m_msm->add_route(4, "speaker", 1.0); // pin 36 2'-2
m_msm->add_route(5, "speaker", 1.0); // pin 35 4'-2
m_msm->add_route(6, "speaker", 1.0); // pin 34 8'-2
m_msm->add_route(7, "speaker", 1.0); // pin 33 16'-2
// pin 1 SOLO 8' not mapped
// pin 2 SOLO 16' not mapped
// pin 22 Noise Output not mapped
MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
}
MACHINE_CONFIG_START(nycaptor_state::bronx)
void nycaptor_state::bronx(machine_config &config)
{
Z80(config, m_maincpu, 8000000/2);
m_maincpu->set_addrmap(AS_PROGRAM, &nycaptor_state::bronx_master_map);
m_maincpu->set_vblank_int("screen", FUNC(nycaptor_state::irq0_line_hold));
MCFG_DEVICE_ADD("maincpu", Z80,8000000/2)
MCFG_DEVICE_PROGRAM_MAP(bronx_master_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", nycaptor_state, irq0_line_hold)
Z80(config, m_subcpu, 8000000/2);
m_subcpu->set_addrmap(AS_PROGRAM, &nycaptor_state::bronx_slave_map);
m_subcpu->set_addrmap(AS_IO, &nycaptor_state::bronx_slave_io_map);
m_subcpu->set_vblank_int("screen", FUNC(nycaptor_state::irq0_line_hold));
MCFG_DEVICE_ADD("sub", Z80,8000000/2)
MCFG_DEVICE_PROGRAM_MAP(bronx_slave_map)
MCFG_DEVICE_IO_MAP(bronx_slave_io_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", nycaptor_state, irq0_line_hold)
Z80(config, m_audiocpu, 8000000/2);
m_audiocpu->set_addrmap(AS_PROGRAM, &nycaptor_state::sound_map);
m_audiocpu->set_periodic_int(FUNC(nycaptor_state::irq0_line_hold), attotime::from_hz(2*60));
MCFG_DEVICE_ADD("audiocpu", Z80,8000000/2)
MCFG_DEVICE_PROGRAM_MAP(sound_map)
MCFG_DEVICE_PERIODIC_INT_DRIVER(nycaptor_state, irq0_line_hold, 2*60)
config.m_minimum_quantum = attotime::from_hz(120);
MCFG_QUANTUM_TIME(attotime::from_hz(120))
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_refresh_hz(60);
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
screen.set_size(32*8, 32*8);
screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
screen.set_screen_update(FUNC(nycaptor_state::screen_update_nycaptor));
screen.set_palette(m_palette);
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(nycaptor_state, screen_update_nycaptor)
MCFG_SCREEN_PALETTE("palette")
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_nycaptor)
MCFG_PALETTE_ADD("palette", 512)
MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_nycaptor);
PALETTE(config, m_palette, 512);
m_palette->set_format(PALETTE_FORMAT_xxxxBBBBGGGGRRRR);
SPEAKER(config, "speaker").front_center();
GENERIC_LATCH_8(config, m_soundlatch);
m_soundlatch->data_pending_callback().set("soundnmi", FUNC(input_merger_device::in_w<0>));
MCFG_INPUT_MERGER_ALL_HIGH("soundnmi")
MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("audiocpu", INPUT_LINE_NMI))
INPUT_MERGER_ALL_HIGH(config, "soundnmi").output_handler().set_inputline("audiocpu", INPUT_LINE_NMI);
GENERIC_LATCH_8(config, m_soundlatch2);
@ -930,24 +926,26 @@ MACHINE_CONFIG_START(nycaptor_state::bronx)
ay2.port_b_write_callback().set(FUNC(nycaptor_state::unk_w));
ay2.add_route(ALL_OUTPUTS, "speaker", 0.15);
MCFG_DEVICE_ADD("msm", MSM5232, 2000000)
MCFG_MSM5232_SET_CAPACITORS(0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6) /* 0.65 (???) uF capacitors (match the sample, not verified) */
MCFG_SOUND_ROUTE(0, "speaker", 1.0) // pin 28 2'-1
MCFG_SOUND_ROUTE(1, "speaker", 1.0) // pin 29 4'-1
MCFG_SOUND_ROUTE(2, "speaker", 1.0) // pin 30 8'-1
MCFG_SOUND_ROUTE(3, "speaker", 1.0) // pin 31 16'-1
MCFG_SOUND_ROUTE(4, "speaker", 1.0) // pin 36 2'-2
MCFG_SOUND_ROUTE(5, "speaker", 1.0) // pin 35 4'-2
MCFG_SOUND_ROUTE(6, "speaker", 1.0) // pin 34 8'-2
MCFG_SOUND_ROUTE(7, "speaker", 1.0) // pin 33 16'-2
MSM5232(config, m_msm, 2000000);
m_msm->set_capacitors(0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6); /* 0.65 (???) uF capacitors (match the sample, not verified) */
m_msm->add_route(0, "speaker", 1.0); // pin 28 2'-1
m_msm->add_route(1, "speaker", 1.0); // pin 29 4'-1
m_msm->add_route(2, "speaker", 1.0); // pin 30 8'-1
m_msm->add_route(3, "speaker", 1.0); // pin 31 16'-1
m_msm->add_route(4, "speaker", 1.0); // pin 36 2'-2
m_msm->add_route(5, "speaker", 1.0); // pin 35 4'-2
m_msm->add_route(6, "speaker", 1.0); // pin 34 8'-2
m_msm->add_route(7, "speaker", 1.0); // pin 33 16'-2
// pin 1 SOLO 8' not mapped
// pin 2 SOLO 16' not mapped
// pin 22 Noise Output not mapped
MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
}

View File

@ -353,7 +353,9 @@ WRITE8_MEMBER( play_2_state::psg_w )
}
// **************** Machine *****************************
MACHINE_CONFIG_START(play_2_state::play_2)
void play_2_state::play_2(machine_config &config)
{
/* basic machine hardware */
CDP1802(config, m_maincpu, 2.95_MHz_XTAL);
m_maincpu->set_addrmap(AS_PROGRAM, &play_2_state::play_2_map);
@ -371,8 +373,7 @@ MACHINE_CONFIG_START(play_2_state::play_2)
/* Video */
config.set_default_layout(layout_play_2);
MCFG_DEVICE_ADD("xpoint", CLOCK, 60) // crossing-point detector
MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(*this, play_2_state, clock2_w))
CLOCK(config, "xpoint", 60).signal_handler().set(FUNC(play_2_state::clock2_w)); // crossing-point detector
// This is actually a 4013 chip (has 2 RS flipflops)
TTL7474(config, m_4013a, 0);
@ -391,9 +392,10 @@ MACHINE_CONFIG_START(play_2_state::play_2)
genpin_audio(config);
SPEAKER(config, "mono").front_center();
MCFG_CDP1863_ADD("1863", 0, 2.95_MHz_XTAL / 8)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75)
MACHINE_CONFIG_END
CDP1863(config, m_1863, 0);
m_1863->set_clock2(2.95_MHz_XTAL / 8);
m_1863->add_route(ALL_OUTPUTS, "mono", 0.75);
}
void play_2_state::zira(machine_config &config)
{

View File

@ -1860,18 +1860,18 @@ MACHINE_RESET_MEMBER(seibuspi_state,spi)
m_z80_prg_transfer_pos = 0;
}
MACHINE_CONFIG_START(seibuspi_state::spi)
void seibuspi_state::spi(machine_config &config)
{
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", I386, 50_MHz_XTAL / 2) // AMD or Intel 386DX, 25MHz
MCFG_DEVICE_PROGRAM_MAP(spi_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", seibuspi_state, spi_interrupt)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(seibuspi_state,spi_irq_callback)
I386(config, m_maincpu, 50_MHz_XTAL / 2); // AMD or Intel 386DX, 25MHz
m_maincpu->set_addrmap(AS_PROGRAM, &seibuspi_state::spi_map);
m_maincpu->set_vblank_int("screen", FUNC(seibuspi_state::spi_interrupt));
m_maincpu->set_irq_acknowledge_callback(FUNC(seibuspi_state::spi_irq_callback));
MCFG_DEVICE_ADD("audiocpu", Z80, 28.636363_MHz_XTAL / 4) // Z84C0008PEC, 7.159MHz
MCFG_DEVICE_PROGRAM_MAP(spi_soundmap)
Z80(config, m_audiocpu, 28.636363_MHz_XTAL / 4); // Z84C0008PEC, 7.159MHz
m_audiocpu->set_addrmap(AS_PROGRAM, &seibuspi_state::spi_soundmap);
MCFG_QUANTUM_TIME(attotime::from_hz(12000))
config.m_minimum_quantum = attotime::from_hz(12000);
MCFG_MACHINE_RESET_OVERRIDE(seibuspi_state, spi)
@ -1887,13 +1887,13 @@ MACHINE_CONFIG_START(seibuspi_state::spi)
FIFO7200(config, m_soundfifo[1], 0x200); // "
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, SPI_HTOTAL, SPI_HBEND, SPI_HBSTART, SPI_VTOTAL, SPI_VBEND, SPI_VBSTART)
MCFG_SCREEN_UPDATE_DRIVER(seibuspi_state, screen_update_spi)
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_raw(PIXEL_CLOCK, SPI_HTOTAL, SPI_HBEND, SPI_HBSTART, SPI_VTOTAL, SPI_VBEND, SPI_VBSTART);
screen.set_screen_update(FUNC(seibuspi_state::screen_update_spi));
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_spi)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_spi);
MCFG_PALETTE_ADD_INIT_BLACK("palette", 6144)
PALETTE(config, m_palette, 6144).set_init("palette", FUNC(palette_device::palette_init_all_black));
seibu_crtc_device &crtc(SEIBU_CRTC(config, "crtc", 0));
crtc.decrypt_key_callback().set(FUNC(seibuspi_state::tile_decrypt_key_w));
@ -1905,28 +1905,29 @@ MACHINE_CONFIG_START(seibuspi_state::spi)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
MCFG_DEVICE_ADD("ymf", YMF271, 16.9344_MHz_XTAL)
MCFG_YMF271_IRQ_HANDLER(WRITELINE(*this, seibuspi_state, ymf_irqhandler))
MCFG_DEVICE_ADDRESS_MAP(0, spi_ymf271_map)
ymf271_device &ymf(YMF271(config, "ymf", 16.9344_MHz_XTAL));
ymf.irq_handler().set(FUNC(seibuspi_state::ymf_irqhandler));
ymf.set_addrmap(0, &seibuspi_state::spi_ymf271_map);
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
// MCFG_SOUND_ROUTE(2, "lspeaker", 1.0) Output 2/3 not used?
// MCFG_SOUND_ROUTE(3, "rspeaker", 1.0)
MACHINE_CONFIG_END
ymf.add_route(0, "lspeaker", 1.0);
ymf.add_route(1, "rspeaker", 1.0);
// ymf.add_route(2, "lspeaker", 1.0); Output 2/3 not used?
// ymf.add_route(3, "rspeaker", 1.0);
}
MACHINE_CONFIG_START(seibuspi_state::ejanhs)
void seibuspi_state::ejanhs(machine_config &config)
{
spi(config);
/* video hardware */
MCFG_VIDEO_START_OVERRIDE(seibuspi_state, ejanhs)
MACHINE_CONFIG_END
}
MACHINE_CONFIG_START(seibuspi_state::rdft2)
void seibuspi_state::rdft2(machine_config &config)
{
spi(config);
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_PROGRAM_MAP(rdft2_map)
MACHINE_CONFIG_END
m_maincpu->set_addrmap(AS_PROGRAM, &seibuspi_state::rdft2_map);
}
/* single boards */
@ -1938,88 +1939,83 @@ MACHINE_RESET_MEMBER(seibuspi_state,sxx2e)
m_sb_coin_latch = 0;
}
MACHINE_CONFIG_START(seibuspi_state::sxx2e)
void seibuspi_state::sxx2e(machine_config &config)
{
spi(config);
/* basic machine hardware */
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_PROGRAM_MAP(sxx2e_map)
m_maincpu->set_addrmap(AS_PROGRAM, &seibuspi_state::sxx2e_map);
MCFG_DEVICE_MODIFY("audiocpu")
MCFG_DEVICE_PROGRAM_MAP(sxx2e_soundmap)
m_audiocpu->set_addrmap(AS_PROGRAM, &seibuspi_state::sxx2e_soundmap);
MCFG_MACHINE_RESET_OVERRIDE(seibuspi_state, sxx2e)
MCFG_DEVICE_REMOVE("soundflash1")
MCFG_DEVICE_REMOVE("soundflash2")
config.device_remove("soundflash1");
config.device_remove("soundflash2");
MCFG_DEVICE_REMOVE("soundfifo2")
config.device_remove("soundfifo2");
/* sound hardware */
// Single PCBs only output mono sound, SXX2E : unverified
MCFG_DEVICE_REMOVE("lspeaker")
MCFG_DEVICE_REMOVE("rspeaker")
config.device_remove("lspeaker");
config.device_remove("rspeaker");
SPEAKER(config, "mono").front_center();
MCFG_DEVICE_REPLACE("ymf", YMF271, 16.9344_MHz_XTAL)
MCFG_YMF271_IRQ_HANDLER(WRITELINE(*this, seibuspi_state, ymf_irqhandler))
ymf271_device &ymf(YMF271(config.replace(), "ymf", 16.9344_MHz_XTAL));
ymf.irq_handler().set(FUNC(seibuspi_state::ymf_irqhandler));
ymf.add_route(ALL_OUTPUTS, "mono", 1.0);
}
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(seibuspi_state::sxx2f)
void seibuspi_state::sxx2f(machine_config &config)
{
sxx2e(config);
/* basic machine hardware */
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_PROGRAM_MAP(sxx2f_map)
m_maincpu->set_addrmap(AS_PROGRAM, &seibuspi_state::sxx2f_map);
MCFG_DEVICE_REMOVE("ds2404")
config.device_remove("ds2404");
EEPROM_93C46_16BIT(config, "eeprom");
// Z80 is Z84C0006PCS instead of Z84C0008PEC
// clock is unknown, possibly slower than 7.159MHz
MACHINE_CONFIG_END
}
MACHINE_CONFIG_START(seibuspi_state::sxx2g) // clocks differ, but otherwise same hw as sxx2f
void seibuspi_state::sxx2g(machine_config &config) // clocks differ, but otherwise same hw as sxx2f
{
sxx2f(config);
/* basic machine hardware */
MCFG_DEVICE_MODIFY("maincpu") // AMD AM386DX/DX-40, 28.63636MHz
MCFG_DEVICE_CLOCK(28.636363_MHz_XTAL)
MCFG_DEVICE_MODIFY("audiocpu") // Z84C0004PCS, 4.9152MHz
MCFG_DEVICE_CLOCK(4.9512_MHz_XTAL)
m_maincpu->set_clock(28.636363_MHz_XTAL); // AMD AM386DX/DX-40, 28.63636MHz
m_audiocpu->set_clock(4.9512_MHz_XTAL); // Z84C0004PCS, 4.9152MHz
/* sound hardware */
MCFG_DEVICE_REPLACE("ymf", YMF271, 16.384_MHz_XTAL) // 16.384MHz(!)
MCFG_YMF271_IRQ_HANDLER(WRITELINE(*this, seibuspi_state, ymf_irqhandler))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
ymf271_device &ymf(YMF271(config.replace(), "ymf", 16.384_MHz_XTAL)); // 16.384MHz(!)
ymf.irq_handler().set(FUNC(seibuspi_state::ymf_irqhandler));
ymf.add_route(ALL_OUTPUTS, "mono", 1.0);
}
/* SYS386I */
MACHINE_CONFIG_START(seibuspi_state::sys386i)
void seibuspi_state::sys386i(machine_config &config)
{
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", I386, 40_MHz_XTAL) // AMD 386DX, 40MHz
MCFG_DEVICE_PROGRAM_MAP(sys386i_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", seibuspi_state, spi_interrupt)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(seibuspi_state,spi_irq_callback)
I386(config, m_maincpu, 40_MHz_XTAL); // AMD 386DX, 40MHz
m_maincpu->set_addrmap(AS_PROGRAM, &seibuspi_state::sys386i_map);
m_maincpu->set_vblank_int("screen", FUNC(seibuspi_state::spi_interrupt));
m_maincpu->set_irq_acknowledge_callback(FUNC(seibuspi_state::spi_irq_callback));
EEPROM_93C46_16BIT(config, "eeprom");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, SPI_HTOTAL, SPI_HBEND, SPI_HBSTART, SPI_VTOTAL, SPI_VBEND, SPI_VBSTART)
MCFG_SCREEN_UPDATE_DRIVER(seibuspi_state, screen_update_spi)
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_raw(PIXEL_CLOCK, SPI_HTOTAL, SPI_HBEND, SPI_HBSTART, SPI_VTOTAL, SPI_VBEND, SPI_VBSTART);
screen.set_screen_update(FUNC(seibuspi_state::screen_update_spi));
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_spi)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_spi);
MCFG_PALETTE_ADD_INIT_BLACK("palette", 6144)
PALETTE(config, m_palette, 6144).set_init("palette", FUNC(palette_device::palette_init_all_black));
seibu_crtc_device &crtc(SEIBU_CRTC(config, "crtc", 0));
crtc.decrypt_key_callback().set(FUNC(seibuspi_state::tile_decrypt_key_w));
@ -2030,12 +2026,12 @@ MACHINE_CONFIG_START(seibuspi_state::sys386i)
/* sound hardware */
SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("oki1", OKIM6295, 28.636363_MHz_XTAL / 20, okim6295_device::PIN7_HIGH)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
OKIM6295(config, m_oki[0], 28.636363_MHz_XTAL / 20, okim6295_device::PIN7_HIGH);
m_oki[0]->add_route(ALL_OUTPUTS, "mono", 0.50);
MCFG_DEVICE_ADD("oki2", OKIM6295, 28.636363_MHz_XTAL / 20, okim6295_device::PIN7_HIGH)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
OKIM6295(config, m_oki[1], 28.636363_MHz_XTAL / 20, okim6295_device::PIN7_HIGH);
m_oki[1]->add_route(ALL_OUTPUTS, "mono", 0.50);
}
/* SYS386F */
@ -2058,27 +2054,27 @@ void seibuspi_state::init_sys386f()
}
}
MACHINE_CONFIG_START(seibuspi_state::sys386f)
void seibuspi_state::sys386f(machine_config &config)
{
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", I386, XTAL(50'000'000)/2) // Intel i386DX, 25MHz
MCFG_DEVICE_PROGRAM_MAP(sys386f_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", seibuspi_state, spi_interrupt)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(seibuspi_state,spi_irq_callback)
I386(config, m_maincpu, XTAL(50'000'000)/2); // Intel i386DX, 25MHz
m_maincpu->set_addrmap(AS_PROGRAM, &seibuspi_state::sys386f_map);
m_maincpu->set_vblank_int("screen", FUNC(seibuspi_state::spi_interrupt));
m_maincpu->set_irq_acknowledge_callback(FUNC(seibuspi_state::spi_irq_callback));
EEPROM_93C46_16BIT(config, "eeprom");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(57.59)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(seibuspi_state, screen_update_sys386f)
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_refresh_hz(57.59);
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
screen.set_size(64*8, 32*8);
screen.set_visarea(0*8, 40*8-1, 0*8, 30*8-1);
screen.set_screen_update(FUNC(seibuspi_state::screen_update_sys386f));
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_sys386f)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_sys386f);
MCFG_PALETTE_ADD_INIT_BLACK("palette", 8192)
PALETTE(config, m_palette, 8192).set_init("palette", FUNC(palette_device::palette_init_all_black));
MCFG_VIDEO_START_OVERRIDE(seibuspi_state, sys386f)
@ -2086,9 +2082,8 @@ MACHINE_CONFIG_START(seibuspi_state::sys386f)
// Single PCBs only output mono sound
SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("ymz", YMZ280B, XTAL(16'384'000))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
YMZ280B(config, "ymz", XTAL(16'384'000)).add_route(ALL_OUTPUTS, "mono", 1.0);
}
/*****************************************************************************/

View File

@ -453,31 +453,32 @@ void tecmosys_state::machine_start()
save_item(NAME(m_device_value));
}
MACHINE_CONFIG_START(tecmosys_state::tecmosys)
MCFG_DEVICE_ADD("maincpu", M68000, XTAL(16'000'000))
MCFG_DEVICE_PROGRAM_MAP(main_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", tecmosys_state, irq1_line_hold)
void tecmosys_state::tecmosys(machine_config &config)
{
M68000(config, m_maincpu, XTAL(16'000'000));
m_maincpu->set_addrmap(AS_PROGRAM, &tecmosys_state::main_map);
m_maincpu->set_vblank_int("screen", FUNC(tecmosys_state::irq1_line_hold));
WATCHDOG_TIMER(config, m_watchdog).set_vblank_count(m_screen, 400); // guess
MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(16'000'000)/2 )
MCFG_DEVICE_PROGRAM_MAP(sound_map)
MCFG_DEVICE_IO_MAP(io_map)
Z80(config, m_audiocpu, XTAL(16'000'000)/2);
m_audiocpu->set_addrmap(AS_PROGRAM, &tecmosys_state::sound_map);
m_audiocpu->set_addrmap(AS_IO, &tecmosys_state::io_map);
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_tecmosys)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_tecmosys);
EEPROM_93C46_16BIT(config, "eeprom", eeprom_serial_streaming::ENABLE);
EEPROM_93C46_16BIT(config, m_eeprom, eeprom_serial_streaming::ENABLE);
MCFG_SCREEN_ADD(m_screen, RASTER)
MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
MCFG_SCREEN_REFRESH_RATE(57.4458)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(3000))
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(tecmosys_state, screen_update)
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
m_screen->set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK);
m_screen->set_refresh_hz(57.4458);
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(3000));
m_screen->set_size(64*8, 64*8);
m_screen->set_visarea(0*8, 40*8-1, 0*8, 30*8-1);
m_screen->set_screen_update(FUNC(tecmosys_state::screen_update));
MCFG_PALETTE_ADD("palette", 0x4000+0x800)
MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB)
PALETTE(config, m_palette, 0x4000+0x800);
m_palette->set_format(PALETTE_FORMAT_xGGGGGRRRRRBBBBB);
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
@ -486,26 +487,25 @@ MACHINE_CONFIG_START(tecmosys_state::tecmosys)
GENERIC_LATCH_8(config, m_soundlatch);
m_soundlatch->data_pending_callback().set("soundnmi", FUNC(input_merger_device::in_w<0>));
MCFG_INPUT_MERGER_ALL_HIGH("soundnmi")
MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("audiocpu", INPUT_LINE_NMI))
INPUT_MERGER_ALL_HIGH(config, m_soundnmi);
m_soundnmi->output_handler().set_inputline("audiocpu", INPUT_LINE_NMI);
MCFG_DEVICE_ADD("ymf", YMF262, XTAL(14'318'181))
MCFG_YMF262_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
MCFG_SOUND_ROUTE(0, "lspeaker", 1.00)
MCFG_SOUND_ROUTE(1, "rspeaker", 1.00)
MCFG_SOUND_ROUTE(2, "lspeaker", 1.00)
MCFG_SOUND_ROUTE(3, "rspeaker", 1.00)
ymf262_device &ymf(YMF262(config, "ymf", XTAL(14'318'181)));
ymf.irq_handler().set_inputline("audiocpu", 0);
ymf.add_route(0, "lspeaker", 1.00);
ymf.add_route(1, "rspeaker", 1.00);
ymf.add_route(2, "lspeaker", 1.00);
ymf.add_route(3, "rspeaker", 1.00);
MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(16'000'000)/8, okim6295_device::PIN7_HIGH)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50)
MCFG_DEVICE_ADDRESS_MAP(0, oki_map)
MCFG_DEVICE_ADD("ymz", YMZ280B, XTAL(16'934'400))
MCFG_SOUND_ROUTE(0, "lspeaker", 0.30)
MCFG_SOUND_ROUTE(1, "rspeaker", 0.30)
MACHINE_CONFIG_END
okim6295_device &oki(OKIM6295(config, "oki", XTAL(16'000'000)/8, okim6295_device::PIN7_HIGH));
oki.add_route(ALL_OUTPUTS, "lspeaker", 0.50);
oki.add_route(ALL_OUTPUTS, "rspeaker", 0.50);
oki.set_addrmap(0, &tecmosys_state::oki_map);
ymz280b_device &ymz(YMZ280B(config, "ymz", XTAL(16'934'400)));
ymz.add_route(0, "lspeaker", 0.30);
ymz.add_route(1, "rspeaker", 0.30);
}
ROM_START( deroon )
ROM_REGION( 0x100000, "maincpu", 0 ) // Main Program

View File

@ -646,16 +646,16 @@ MACHINE_RESET_MEMBER(wyvernf0_state,wyvernf0)
m_mcu_ready = 0;
}
MACHINE_CONFIG_START(wyvernf0_state::wyvernf0)
void wyvernf0_state::wyvernf0(machine_config &config)
{
// basic machine hardware
MCFG_DEVICE_ADD("maincpu", Z80, 6000000) // ?
MCFG_DEVICE_PROGRAM_MAP(wyvernf0_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", wyvernf0_state, irq0_line_hold)
Z80(config, m_maincpu, 6000000); // ?
m_maincpu->set_addrmap(AS_PROGRAM, &wyvernf0_state::wyvernf0_map);
m_maincpu->set_vblank_int("screen", FUNC(wyvernf0_state::irq0_line_hold));
MCFG_DEVICE_ADD("audiocpu", Z80, 4000000) // ?
MCFG_DEVICE_PROGRAM_MAP(sound_map)
MCFG_DEVICE_PERIODIC_INT_DRIVER(wyvernf0_state, irq0_line_hold, 60*2) // IRQ generated by ??? (drives music tempo), NMI by main cpu
Z80(config, m_audiocpu, 4000000); // ?
m_audiocpu->set_addrmap(AS_PROGRAM, &wyvernf0_state::sound_map);
m_audiocpu->set_periodic_int(FUNC(wyvernf0_state::irq0_line_hold), attotime::from_hz(60*2)); // IRQ generated by ??? (drives music tempo), NMI by main cpu
// MCFG_DEVICE_ADD("mcu", M68705P5, 4000000) // ?
@ -665,18 +665,18 @@ MACHINE_CONFIG_START(wyvernf0_state::wyvernf0)
MCFG_MACHINE_RESET_OVERRIDE(wyvernf0_state,wyvernf0)
// video hardware
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(wyvernf0_state, screen_update_wyvernf0)
MCFG_SCREEN_PALETTE("palette")
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_refresh_hz(60);
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
screen.set_size(32*8, 32*8);
screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
screen.set_screen_update(FUNC(wyvernf0_state::screen_update_wyvernf0));
screen.set_palette("palette");
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_wyvernf0)
MCFG_PALETTE_ADD("palette", 512)
MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB)
MCFG_PALETTE_ENDIANNESS(ENDIANNESS_BIG)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_wyvernf0);
PALETTE(config, m_palette, 512);
m_palette->set_format(PALETTE_FORMAT_xxxxRRRRGGGGBBBB);
m_palette->set_endianness(ENDIANNESS_BIG);
MCFG_VIDEO_START_OVERRIDE(wyvernf0_state,wyvernf0)
@ -692,24 +692,26 @@ MACHINE_CONFIG_START(wyvernf0_state::wyvernf0)
YM2149(config, "ay2", 3000000).add_route(ALL_OUTPUTS, "mono", 0.25); // YM2149 clock ??, pin 26 ??
// music
MCFG_DEVICE_ADD("msm", MSM5232, 2000000) // ?
MCFG_MSM5232_SET_CAPACITORS(0.39e-6, 0.39e-6, 0.39e-6, 0.39e-6, 0.39e-6, 0.39e-6, 0.39e-6, 0.39e-6) /* default 0.39 uF capacitors (not verified) */
MCFG_SOUND_ROUTE(0, "mono", 0.5) // pin 28 2'-1
MCFG_SOUND_ROUTE(1, "mono", 0.5) // pin 29 4'-1
MCFG_SOUND_ROUTE(2, "mono", 0.5) // pin 30 8'-1
MCFG_SOUND_ROUTE(3, "mono", 0.5) // pin 31 16'-1
MCFG_SOUND_ROUTE(4, "mono", 0.5) // pin 36 2'-2
MCFG_SOUND_ROUTE(5, "mono", 0.5) // pin 35 4'-2
MCFG_SOUND_ROUTE(6, "mono", 0.5) // pin 34 8'-2
MCFG_SOUND_ROUTE(7, "mono", 0.5) // pin 33 16'-2
msm5232_device &msm(MSM5232(config, "msm", 2000000)); // ?
msm.set_capacitors(0.39e-6, 0.39e-6, 0.39e-6, 0.39e-6, 0.39e-6, 0.39e-6, 0.39e-6, 0.39e-6); /* default 0.39 uF capacitors (not verified) */
msm.add_route(0, "mono", 0.5); // pin 28 2'-1
msm.add_route(1, "mono", 0.5); // pin 29 4'-1
msm.add_route(2, "mono", 0.5); // pin 30 8'-1
msm.add_route(3, "mono", 0.5); // pin 31 16'-1
msm.add_route(4, "mono", 0.5); // pin 36 2'-2
msm.add_route(5, "mono", 0.5); // pin 35 4'-2
msm.add_route(6, "mono", 0.5); // pin 34 8'-2
msm.add_route(7, "mono", 0.5); // pin 33 16'-2
// pin 1 SOLO 8' not mapped
// pin 2 SOLO 16' not mapped
// pin 22 Noise Output not mapped
MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "mono", 0.25); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
}
/***************************************************************************