mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
-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:
parent
1dd575ff2e
commit
6b92c07f68
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -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 );
|
||||
|
@ -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();
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
//**************************************************************************
|
||||
|
@ -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 );
|
||||
|
@ -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 );
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
|
@ -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 )
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user