mirror of
https://github.com/holub/mame
synced 2025-04-21 16:01:56 +03:00
-sound/dave, digitalk, k051649, lc7535, n63701x, namco, nile, s14001a: Removed MCFG macros. [Ryan Holtz]
-drivers/20pacgal, baraduke, deco32, fidel6502, fidelz80, galaga, gaplus, hcastle, hexion, jrpacman, konmedal, mappy, namcos86, pacland, pengo, polepos, quickpick5, rallyx, skykid, srmp6, tceptor, toypop: Removed MACHINE_CONFIG macros. [Ryan Holtz]
This commit is contained in:
parent
d07330bb29
commit
cf5a34ce49
@ -12,37 +12,6 @@
|
||||
#pragma once
|
||||
|
||||
|
||||
///*************************************************************************
|
||||
// MACROS / CONSTANTS
|
||||
///*************************************************************************
|
||||
|
||||
|
||||
|
||||
///*************************************************************************
|
||||
// INTERFACE CONFIGURATION MACROS
|
||||
///*************************************************************************
|
||||
|
||||
#define MCFG_DAVE_ADD(_tag, _clock, _program_map, _io_map) \
|
||||
SPEAKER(config, "lspeaker").front_left(); \
|
||||
SPEAKER(config, "rspeaker").front_right(); \
|
||||
MCFG_DEVICE_ADD(_tag, DAVE, _clock) \
|
||||
MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) \
|
||||
MCFG_SOUND_ROUTE(1, "rspeaker", 0.25) \
|
||||
MCFG_DEVICE_ADDRESS_MAP(AS_PROGRAM, _program_map) \
|
||||
MCFG_DEVICE_ADDRESS_MAP(AS_IO, _io_map)
|
||||
|
||||
|
||||
#define MCFG_DAVE_IRQ_CALLBACK(_write) \
|
||||
downcast<dave_device &>(*device).set_irq_wr_callback(DEVCB_##_write);
|
||||
|
||||
#define MCFG_DAVE_LH_CALLBACK(_write) \
|
||||
downcast<dave_device &>(*device).set_lh_wr_callback(DEVCB_##_write);
|
||||
|
||||
#define MCFG_DAVE_RH_CALLBACK(_write) \
|
||||
downcast<dave_device &>(*device).set_rh_wr_callback(DEVCB_##_write);
|
||||
|
||||
|
||||
|
||||
///*************************************************************************
|
||||
// TYPE DEFINITIONS
|
||||
///*************************************************************************
|
||||
|
@ -6,17 +6,6 @@
|
||||
#pragma once
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// INTERFACE CONFIGURATION MACROS
|
||||
//**************************************************************************
|
||||
|
||||
#define MCFG_DIGITALKER_ADD(tag, clock) \
|
||||
MCFG_DEVICE_ADD((tag), DIGITALKER, (clock))
|
||||
|
||||
#define MCFG_DIGITALKER_REPLACE(tag, clock) \
|
||||
MCFG_DEVICE_REPLACE((tag), DIGITALKER, (clock))
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// TYPE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
@ -6,21 +6,10 @@
|
||||
#pragma once
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// INTERFACE CONFIGURATION MACROS
|
||||
//**************************************************************************
|
||||
|
||||
#define MCFG_K051649_ADD(_tag, _clock) \
|
||||
MCFG_DEVICE_ADD(_tag, K051649, _clock)
|
||||
#define MCFG_K051649_REPLACE(_tag, _clock) \
|
||||
MCFG_DEVICE_REPLACE(_tag, K051649, _clock)
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// TYPE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
||||
|
||||
// ======================> k051649_device
|
||||
|
||||
class k051649_device : public device_t,
|
||||
|
@ -27,23 +27,12 @@
|
||||
#pragma once
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// INTERFACE CONFIGURATION MACROS
|
||||
//**************************************************************************
|
||||
|
||||
#define MCFG_LC7535_SELECT_CB(_read) \
|
||||
downcast<lc7535_device &>(*device).set_select_callback(DEVCB_##_read);
|
||||
|
||||
#define MCFG_LC7535_VOLUME_CB(_class, _method) \
|
||||
downcast<lc7535_device &>(*device).set_volume_callback(lc7535_device::volume_delegate(&_class::_method, #_class "::" #_method, this));
|
||||
|
||||
#define LC7535_VOLUME_CHANGED(name) void name(int attenuation_right, int attenuation_left, bool loudness)
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// TYPE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
||||
#define LC7535_VOLUME_CHANGED(name) void name(int attenuation_right, int attenuation_left, bool loudness)
|
||||
|
||||
class lc7535_device : public device_t
|
||||
{
|
||||
public:
|
||||
@ -52,9 +41,16 @@ public:
|
||||
|
||||
typedef device_delegate<void (int attenuation_right, int attenuation_left, bool loudness)> volume_delegate;
|
||||
|
||||
template <typename Object> void set_volume_callback(Object &&cb) { m_volume_cb = std::forward<Object>(cb); }
|
||||
|
||||
template <class Object> devcb_base &set_select_callback(Object &&cb) { return m_select_cb.set_callback(std::forward<Object>(cb)); }
|
||||
auto select() { return m_select_cb.bind(); }
|
||||
void set_volume_callback(volume_delegate callback) { m_volume_cb = callback; }
|
||||
template <class FunctionClass> void set_volume_callback(const char *devname, void (FunctionClass::*callback)(int, int, bool), const char *name)
|
||||
{
|
||||
set_volume_callback(volume_delegate(callback, name, devname, static_cast<FunctionClass *>(nullptr)));
|
||||
}
|
||||
template <class FunctionClass> void set_volume_callback(void (FunctionClass::*callback)(int, int, bool), const char *name)
|
||||
{
|
||||
set_volume_callback(volume_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr)));
|
||||
}
|
||||
|
||||
// serial interface
|
||||
DECLARE_WRITE_LINE_MEMBER( ce_w );
|
||||
|
@ -5,16 +5,6 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
//**************************************************************************
|
||||
// INTERFACE CONFIGURATION MACROS
|
||||
//**************************************************************************
|
||||
|
||||
#define MCFG_NAMCO_63701X_ADD(_tag, _clock) \
|
||||
MCFG_DEVICE_ADD(_tag, NAMCO_63701X, _clock)
|
||||
#define MCFG_NAMCO_63701X_REPLACE(_tag, _clock) \
|
||||
MCFG_DEVICE_REPLACE(_tag, NAMCO_63701X, _clock)
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// TYPE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
@ -61,7 +61,7 @@ namco_audio_device::namco_audio_device(const machine_config &mconfig, device_typ
|
||||
, m_sample_rate(0)
|
||||
, m_f_fracbits(0)
|
||||
, m_voices(0)
|
||||
, m_stereo(0)
|
||||
, m_stereo(false)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -6,20 +6,13 @@
|
||||
#pragma once
|
||||
|
||||
|
||||
#define MCFG_NAMCO_AUDIO_VOICES(_voices) \
|
||||
downcast<namco_audio_device &>(*device).set_voices(_voices);
|
||||
|
||||
#define MCFG_NAMCO_AUDIO_STEREO(_stereo) \
|
||||
downcast<namco_audio_device &>(*device).set_stereo(_stereo);
|
||||
|
||||
|
||||
class namco_audio_device : public device_t,
|
||||
public device_sound_interface
|
||||
{
|
||||
public:
|
||||
// configuration
|
||||
void set_voices(int voices) { m_voices = voices; }
|
||||
void set_stereo(int stereo) { m_stereo = stereo; }
|
||||
void set_stereo(bool stereo) { m_stereo = stereo; }
|
||||
|
||||
DECLARE_WRITE_LINE_MEMBER(sound_enable_w);
|
||||
|
||||
@ -71,7 +64,7 @@ protected:
|
||||
int m_f_fracbits;
|
||||
|
||||
int m_voices; /* number of voices */
|
||||
int m_stereo; /* set to 1 to indicate stereo (e.g., System 1) */
|
||||
bool m_stereo; /* set to indicate stereo (e.g., System 1) */
|
||||
|
||||
/* decoded waveform table */
|
||||
int16_t *m_waveform[MAX_VOLUME];
|
||||
|
@ -6,16 +6,6 @@
|
||||
#pragma once
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// INTERFACE CONFIGURATION MACROS
|
||||
//**************************************************************************
|
||||
|
||||
#define MCFG_NILE_ADD(_tag, _clock) \
|
||||
MCFG_DEVICE_ADD(_tag, NILE, _clock)
|
||||
#define MCFG_NILE_REPLACE(_tag, _clock) \
|
||||
MCFG_DEVICE_REPLACE(_tag, NILE, _clock)
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// TYPE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
@ -8,13 +8,6 @@
|
||||
#ifndef MAME_SOUND_S14001A_H
|
||||
#define MAME_SOUND_S14001A_H
|
||||
|
||||
#define MCFG_S14001A_BSY_HANDLER(_devcb) \
|
||||
downcast<s14001a_device &>(*device).set_bsy_handler(DEVCB_##_devcb);
|
||||
|
||||
#define MCFG_S14001A_EXT_READ_HANDLER(_devcb) \
|
||||
downcast<s14001a_device &>(*device).set_ext_read_handler(DEVCB_##_devcb);
|
||||
|
||||
|
||||
class s14001a_device : public device_t, public device_sound_interface
|
||||
{
|
||||
public:
|
||||
|
@ -397,14 +397,14 @@ WRITE_LINE_MEMBER(_20pacgal_state::vblank_irq)
|
||||
m_maincpu->set_input_line(0, HOLD_LINE); // TODO: assert breaks the inputs in 25pacman test mode
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(_20pacgal_state::_20pacgal)
|
||||
|
||||
void _20pacgal_state::_20pacgal(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", Z180, MAIN_CPU_CLOCK)
|
||||
MCFG_DEVICE_PROGRAM_MAP(_20pacgal_map)
|
||||
MCFG_DEVICE_IO_MAP(_20pacgal_io_map)
|
||||
Z180(config, m_maincpu, MAIN_CPU_CLOCK);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &_20pacgal_state::_20pacgal_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &_20pacgal_state::_20pacgal_io_map);
|
||||
|
||||
EEPROM_93C46_8BIT(config, "eeprom");
|
||||
EEPROM_93C46_8BIT(config, m_eeprom);
|
||||
|
||||
WATCHDOG_TIMER(config, "watchdog");
|
||||
|
||||
@ -414,26 +414,27 @@ MACHINE_CONFIG_START(_20pacgal_state::_20pacgal)
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "speaker").front_center();
|
||||
|
||||
MCFG_DEVICE_ADD("namco", NAMCO_CUS30, NAMCO_AUDIO_CLOCK)
|
||||
MCFG_NAMCO_AUDIO_VOICES(3)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
|
||||
namco_cus30_device &namco(NAMCO_CUS30(config, "namco", NAMCO_AUDIO_CLOCK));
|
||||
namco.set_voices(3);
|
||||
namco.add_route(ALL_OUTPUTS, "speaker", 1.0);
|
||||
|
||||
MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) // 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", 1.0); // 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(_25pacman_state::_25pacman)
|
||||
void _25pacman_state::_25pacman(machine_config &config)
|
||||
{
|
||||
_20pacgal(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_DEVICE_PROGRAM_MAP(_25pacman_map)
|
||||
MCFG_DEVICE_IO_MAP(_25pacman_io_map)
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &_25pacman_state::_25pacman_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &_25pacman_state::_25pacman_io_map);
|
||||
|
||||
AMD_29LV200T(config, "flash");
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -111,7 +111,6 @@ DIP locations verified for:
|
||||
#include "includes/baraduke.h"
|
||||
|
||||
#include "cpu/m6809/m6809.h"
|
||||
#include "cpu/m6800/m6801.h"
|
||||
#include "machine/watchdog.h"
|
||||
#include "screen.h"
|
||||
#include "speaker.h"
|
||||
@ -364,41 +363,41 @@ void baraduke_state::machine_start()
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(baraduke_state::baraduke)
|
||||
|
||||
void baraduke_state::baraduke(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", MC6809E, XTAL(49'152'000)/32) // 68A09E
|
||||
MCFG_DEVICE_PROGRAM_MAP(baraduke_map)
|
||||
MC6809E(config, m_maincpu, XTAL(49'152'000)/32); // 68A09E
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &baraduke_state::baraduke_map);
|
||||
|
||||
hd63701_cpu_device &mcu(HD63701(config, m_mcu, XTAL(49'152'000)/8));
|
||||
mcu.set_addrmap(AS_PROGRAM, &baraduke_state::mcu_map);
|
||||
mcu.in_p1_cb().set(FUNC(baraduke_state::inputport_r)); /* input ports read */
|
||||
mcu.out_p1_cb().set(FUNC(baraduke_state::inputport_select_w)); /* input port select */
|
||||
mcu.in_p2_cb().set_constant(0xff); /* leds won't work otherwise */
|
||||
mcu.out_p2_cb().set(FUNC(baraduke_state::baraduke_lamps_w)); /* lamps */
|
||||
HD63701(config, m_mcu, XTAL(49'152'000)/8);
|
||||
m_mcu->set_addrmap(AS_PROGRAM, &baraduke_state::mcu_map);
|
||||
m_mcu->in_p1_cb().set(FUNC(baraduke_state::inputport_r)); /* input ports read */
|
||||
m_mcu->out_p1_cb().set(FUNC(baraduke_state::inputport_select_w)); /* input port select */
|
||||
m_mcu->in_p2_cb().set_constant(0xff); /* leds won't work otherwise */
|
||||
m_mcu->out_p2_cb().set(FUNC(baraduke_state::baraduke_lamps_w)); /* lamps */
|
||||
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* we need heavy synch */
|
||||
config.m_minimum_quantum = attotime::from_hz(6000); /* we need heavy synch */
|
||||
|
||||
WATCHDOG_TIMER(config, "watchdog");
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(XTAL(49'152'000)/8, 384, 0, 36*8, 264, 2*8, 30*8)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(baraduke_state, screen_update_baraduke)
|
||||
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, baraduke_state, screen_vblank_baraduke))
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_raw(XTAL(49'152'000)/8, 384, 0, 36*8, 264, 2*8, 30*8);
|
||||
screen.set_screen_update(FUNC(baraduke_state::screen_update_baraduke));
|
||||
screen.screen_vblank().set(FUNC(baraduke_state::screen_vblank_baraduke));
|
||||
screen.set_palette(m_palette);
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_baraduke)
|
||||
MCFG_PALETTE_ADD("palette", 2048)
|
||||
MCFG_PALETTE_INIT_OWNER(baraduke_state, baraduke)
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_baraduke);
|
||||
PALETTE(config, m_palette, 2048);
|
||||
m_palette->set_init(FUNC(baraduke_state::palette_init_baraduke));
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
MCFG_DEVICE_ADD("namco", NAMCO_CUS30, XTAL(49'152'000)/2048)
|
||||
MCFG_NAMCO_AUDIO_VOICES(8)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
NAMCO_CUS30(config, m_cus30, XTAL(49'152'000)/2048);
|
||||
m_cus30->set_voices(8);
|
||||
m_cus30->add_route(ALL_OUTPUTS, "mono", 1.0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -1854,33 +1854,32 @@ GFXDECODE_END
|
||||
// MACHINE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
||||
MACHINE_CONFIG_START(captaven_state::captaven)
|
||||
|
||||
void captaven_state::captaven(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", ARM, XTAL(28'000'000)/4) /* verified on pcb (Data East 101 custom)*/
|
||||
MCFG_DEVICE_PROGRAM_MAP(captaven_map)
|
||||
ARM(config, m_maincpu, XTAL(28'000'000)/4); /* verified on pcb (Data East 101 custom)*/
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &captaven_state::captaven_map);
|
||||
|
||||
h6280_device &audiocpu(H6280(config, m_audiocpu, XTAL(32'220'000)/4/3)); /* pin 10 is 32mhz/4, pin 14 is High so internal divisor is 3 (verified on pcb) */
|
||||
audiocpu.set_addrmap(AS_PROGRAM, &captaven_state::h6280_sound_map);
|
||||
audiocpu.add_route(ALL_OUTPUTS, "lspeaker", 0); // internal sound unused
|
||||
audiocpu.add_route(ALL_OUTPUTS, "rspeaker", 0);
|
||||
|
||||
MCFG_INPUT_MERGER_ANY_HIGH("irq_merger")
|
||||
MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("maincpu", ARM_IRQ_LINE))
|
||||
INPUT_MERGER_ANY_HIGH(config, "irq_merger").output_handler().set_inputline("maincpu", ARM_IRQ_LINE);
|
||||
|
||||
DECO_IRQ(config, m_deco_irq, 0);
|
||||
m_deco_irq->set_screen_tag(m_screen);
|
||||
m_deco_irq->raster2_irq_callback().set("irq_merger", FUNC(input_merger_any_high_device::in_w<0>));
|
||||
m_deco_irq->vblank_irq_callback().set("irq_merger", FUNC(input_merger_any_high_device::in_w<1>));
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(XTAL(28'000'000) / 4, 442, 0, 320, 274, 8, 248)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(captaven_state, screen_update)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_raw(XTAL(28'000'000) / 4, 442, 0, 320, 274, 8, 248);
|
||||
m_screen->set_screen_update(FUNC(captaven_state::screen_update));
|
||||
m_screen->set_palette(m_palette);
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_captaven)
|
||||
MCFG_PALETTE_ADD("palette", 2048)
|
||||
MCFG_PALETTE_FORMAT(XBGR)
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_captaven);
|
||||
PALETTE(config, m_palette, 2048);
|
||||
m_palette->set_format(PALETTE_FORMAT_XBGR);
|
||||
|
||||
DECO16IC(config, m_deco_tilegen[0], 0);
|
||||
m_deco_tilegen[0]->set_split(0);
|
||||
@ -1933,34 +1932,35 @@ MACHINE_CONFIG_START(captaven_state::captaven)
|
||||
m_ym2151->add_route(0, "lspeaker", 0.42);
|
||||
m_ym2151->add_route(1, "rspeaker", 0.42);
|
||||
|
||||
MCFG_DEVICE_ADD("oki1", OKIM6295, XTAL(32'220'000)/32, okim6295_device::PIN7_HIGH) /* verified on pcb; pin 7 is floating to 2.5V (left unconnected), so I presume High */
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
|
||||
OKIM6295(config, m_oki[0], XTAL(32'220'000)/32, okim6295_device::PIN7_HIGH); /* verified on pcb; pin 7 is floating to 2.5V (left unconnected), so I presume High */
|
||||
m_oki[0]->add_route(ALL_OUTPUTS, "lspeaker", 1.0);
|
||||
m_oki[0]->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
|
||||
|
||||
MCFG_DEVICE_ADD("oki2", OKIM6295, XTAL(32'220'000)/16, okim6295_device::PIN7_HIGH) /* verified on pcb; pin 7 is floating to 2.5V (left unconnected), so I presume High */
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.35)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.35)
|
||||
MACHINE_CONFIG_END
|
||||
OKIM6295(config, m_oki[1], XTAL(32'220'000)/16, okim6295_device::PIN7_HIGH); /* verified on pcb; pin 7 is floating to 2.5V (left unconnected), so I presume High */
|
||||
m_oki[1]->add_route(ALL_OUTPUTS, "lspeaker", 0.35);
|
||||
m_oki[1]->add_route(ALL_OUTPUTS, "rspeaker", 0.35);
|
||||
}
|
||||
|
||||
// DE-0380-2
|
||||
MACHINE_CONFIG_START(fghthist_state::fghthist)
|
||||
MCFG_DEVICE_ADD("maincpu", ARM, XTAL(28'000'000) / 4)
|
||||
MCFG_DEVICE_PROGRAM_MAP(fghthist_map)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", deco32_state, irq0_line_assert)
|
||||
void fghthist_state::fghthist(machine_config &config)
|
||||
{
|
||||
ARM(config, m_maincpu, XTAL(28'000'000) / 4);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &fghthist_state::fghthist_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(deco32_state::irq0_line_assert));
|
||||
|
||||
h6280_device &audiocpu(H6280(config, m_audiocpu, XTAL(32'220'000) / 8));
|
||||
audiocpu.set_addrmap(AS_PROGRAM, &fghthist_state::h6280_sound_custom_latch_map);
|
||||
audiocpu.add_route(ALL_OUTPUTS, "lspeaker", 0); // internal sound unused
|
||||
audiocpu.add_route(ALL_OUTPUTS, "rspeaker", 0);
|
||||
|
||||
EEPROM_93C46_16BIT(config, "eeprom");
|
||||
EEPROM_93C46_16BIT(config, m_eeprom);
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(XTAL(28'000'000) / 4, 442, 0, 320, 274, 8, 248)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(fghthist_state, screen_update)
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_raw(XTAL(28'000'000) / 4, 442, 0, 320, 274, 8, 248);
|
||||
m_screen->set_screen_update(FUNC(fghthist_state::screen_update));
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_fghthist)
|
||||
MCFG_PALETTE_ADD("palette", 2048)
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_fghthist);
|
||||
PALETTE(config, m_palette, 2048);
|
||||
|
||||
DECO16IC(config, m_deco_tilegen[0], 0);
|
||||
m_deco_tilegen[0]->set_split(0);
|
||||
@ -2018,28 +2018,26 @@ MACHINE_CONFIG_START(fghthist_state::fghthist)
|
||||
m_ym2151->add_route(0, "lspeaker", 0.42);
|
||||
m_ym2151->add_route(1, "rspeaker", 0.42);
|
||||
|
||||
MCFG_DEVICE_ADD("oki1", OKIM6295, 32220000/32, okim6295_device::PIN7_HIGH)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
|
||||
OKIM6295(config, m_oki[0], 32220000/32, okim6295_device::PIN7_HIGH);
|
||||
m_oki[0]->add_route(ALL_OUTPUTS, "lspeaker", 1.0);
|
||||
m_oki[0]->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
|
||||
|
||||
MCFG_DEVICE_ADD("oki2", OKIM6295, 32220000/16, okim6295_device::PIN7_HIGH)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.35)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.35)
|
||||
MACHINE_CONFIG_END
|
||||
OKIM6295(config, m_oki[1], 32220000/16, okim6295_device::PIN7_HIGH);
|
||||
m_oki[1]->add_route(ALL_OUTPUTS, "lspeaker", 0.35);
|
||||
m_oki[1]->add_route(ALL_OUTPUTS, "rspeaker", 0.35);
|
||||
}
|
||||
|
||||
// DE-0395-1
|
||||
MACHINE_CONFIG_START(fghthist_state::fghthsta)
|
||||
void fghthist_state::fghthsta(machine_config &config)
|
||||
{
|
||||
fghthist(config);
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_DEVICE_PROGRAM_MAP(fghthsta_memmap)
|
||||
|
||||
MCFG_DEVICE_MODIFY("audiocpu")
|
||||
MCFG_DEVICE_PROGRAM_MAP(h6280_sound_map)
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &fghthist_state::fghthsta_memmap);
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &fghthist_state::h6280_sound_map);
|
||||
|
||||
config.device_remove("soundlatch");
|
||||
|
||||
m_ioprot->soundlatch_irq_cb().set_inputline(m_audiocpu, 0);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
// DE-0396-0
|
||||
void fghthist_state::fghthistu(machine_config &config)
|
||||
@ -2061,34 +2059,33 @@ void fghthist_state::fghthistu(machine_config &config)
|
||||
}
|
||||
|
||||
// DE-0359-2 + Bottom board DE-0360-4
|
||||
MACHINE_CONFIG_START(dragngun_state::dragngun)
|
||||
|
||||
void dragngun_state::dragngun(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", ARM, XTAL(28'000'000) / 4)
|
||||
MCFG_DEVICE_PROGRAM_MAP(dragngun_map)
|
||||
ARM(config, m_maincpu, XTAL(28'000'000) / 4);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &dragngun_state::dragngun_map);
|
||||
|
||||
h6280_device &audiocpu(H6280(config, m_audiocpu, 32220000/8));
|
||||
audiocpu.set_addrmap(AS_PROGRAM, &dragngun_state::h6280_sound_map);
|
||||
audiocpu.add_route(ALL_OUTPUTS, "lspeaker", 0); // internal sound unused
|
||||
audiocpu.add_route(ALL_OUTPUTS, "rspeaker", 0);
|
||||
|
||||
MCFG_INPUT_MERGER_ANY_HIGH("irq_merger")
|
||||
MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("maincpu", ARM_IRQ_LINE))
|
||||
INPUT_MERGER_ANY_HIGH(config, "irq_merger").output_handler().set_inputline("maincpu", ARM_IRQ_LINE);
|
||||
|
||||
DECO_IRQ(config, m_deco_irq, 0);
|
||||
m_deco_irq->set_screen_tag(m_screen);
|
||||
m_deco_irq->raster2_irq_callback().set("irq_merger", FUNC(input_merger_any_high_device::in_w<0>));
|
||||
m_deco_irq->vblank_irq_callback().set("irq_merger", FUNC(input_merger_any_high_device::in_w<1>));
|
||||
|
||||
EEPROM_93C46_16BIT(config, "eeprom");
|
||||
EEPROM_93C46_16BIT(config, m_eeprom);
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(XTAL(28'000'000) / 4, 442, 0, 320, 274, 8, 248)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(dragngun_state, screen_update)
|
||||
//MCFG_SCREEN_PALETTE("palette")
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_raw(XTAL(28'000'000) / 4, 442, 0, 320, 274, 8, 248);
|
||||
m_screen->set_screen_update(FUNC(dragngun_state::screen_update));
|
||||
//m_screen->set_palette(m_palette);
|
||||
|
||||
MCFG_DEVICE_ADD("spriteram", BUFFERED_SPRITERAM32)
|
||||
BUFFERED_SPRITERAM32(config, m_spriteram);
|
||||
|
||||
DECO16IC(config, m_deco_tilegen[0], 0);
|
||||
m_deco_tilegen[0]->set_split(0);
|
||||
@ -2125,8 +2122,8 @@ MACHINE_CONFIG_START(dragngun_state::dragngun)
|
||||
DECO_ZOOMSPR(config, m_sprgenzoom, 0);
|
||||
m_sprgenzoom->set_gfxdecode(m_gfxdecode);
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_dragngun)
|
||||
MCFG_PALETTE_ADD("palette", 2048)
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_dragngun);
|
||||
PALETTE(config, m_palette, 2048);
|
||||
|
||||
DECO146PROT(config, m_ioprot, 0);
|
||||
m_ioprot->port_a_cb().set_ioport("INPUTS");
|
||||
@ -2145,35 +2142,33 @@ MACHINE_CONFIG_START(dragngun_state::dragngun)
|
||||
m_ym2151->add_route(0, "lspeaker", 0.42);
|
||||
m_ym2151->add_route(1, "rspeaker", 0.42);
|
||||
|
||||
MCFG_DEVICE_ADD("oki1", OKIM6295, 32220000/32, okim6295_device::PIN7_HIGH)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
|
||||
OKIM6295(config, m_oki[0], 32220000/32, okim6295_device::PIN7_HIGH);
|
||||
m_oki[0]->add_route(ALL_OUTPUTS, "lspeaker", 1.0);
|
||||
m_oki[0]->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
|
||||
|
||||
MCFG_DEVICE_ADD("oki2", OKIM6295, 32220000/16, okim6295_device::PIN7_HIGH)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.35)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.35)
|
||||
OKIM6295(config, m_oki[1], 32220000/16, okim6295_device::PIN7_HIGH);
|
||||
m_oki[1]->add_route(ALL_OUTPUTS, "lspeaker", 0.35);
|
||||
m_oki[1]->add_route(ALL_OUTPUTS, "rspeaker", 0.35);
|
||||
|
||||
SPEAKER(config, "gun_speaker").front_center();
|
||||
|
||||
MCFG_DEVICE_ADD("oki3", OKIM6295, 32220000/32, okim6295_device::PIN7_HIGH)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "gun_speaker", 1.0)
|
||||
OKIM6295(config, m_oki[2], 32220000/32, okim6295_device::PIN7_HIGH);
|
||||
m_oki[2]->add_route(ALL_OUTPUTS, "gun_speaker", 1.0);
|
||||
|
||||
MCFG_DEVICE_ADD("vol_main", LC7535)
|
||||
MCFG_LC7535_SELECT_CB(CONSTANT(1))
|
||||
MCFG_LC7535_VOLUME_CB(dragngun_state, volume_main_changed)
|
||||
LC7535(config, m_vol_main);
|
||||
m_vol_main->select().set_constant(1);
|
||||
m_vol_main->set_volume_callback(FUNC(dragngun_state::volume_main_changed));
|
||||
|
||||
MCFG_DEVICE_ADD("vol_gun", LC7535)
|
||||
MCFG_LC7535_SELECT_CB(CONSTANT(0))
|
||||
MCFG_LC7535_VOLUME_CB(dragngun_state, volume_gun_changed)
|
||||
MACHINE_CONFIG_END
|
||||
LC7535(config, m_vol_gun);
|
||||
m_vol_gun->select().set_constant(0);
|
||||
m_vol_gun->set_volume_callback(FUNC(dragngun_state::volume_gun_changed));
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(dragngun_state::lockloadu)
|
||||
void dragngun_state::lockloadu(machine_config &config)
|
||||
{
|
||||
dragngun(config);
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_DEVICE_PROGRAM_MAP(lockloadu_map)
|
||||
|
||||
MCFG_DEVICE_MODIFY("audiocpu")
|
||||
MCFG_DEVICE_PROGRAM_MAP(lockloadu_sound_map)
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &dragngun_state::lockloadu_map);
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &dragngun_state::lockloadu_sound_map);
|
||||
|
||||
m_deco_irq->lightgun_irq_callback().set("irq_merger", FUNC(input_merger_any_high_device::in_w<2>));
|
||||
|
||||
@ -2181,24 +2176,22 @@ MACHINE_CONFIG_START(dragngun_state::lockloadu)
|
||||
m_deco_tilegen[1]->set_pf2_size(DECO_32x32); // lockload definitely wants pf34 half width..
|
||||
|
||||
m_ym2151->port_write_handler().set(FUNC(dragngun_state::lockload_okibank_lo_w));
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
// DE-0420-1 + Bottom board DE-0421-0
|
||||
MACHINE_CONFIG_START(dragngun_state::lockload)
|
||||
|
||||
void dragngun_state::lockload(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", ARM, XTAL(28'000'000) / 4)
|
||||
MCFG_DEVICE_PROGRAM_MAP(lockload_map)
|
||||
ARM(config, m_maincpu, XTAL(28'000'000) / 4);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &dragngun_state::lockload_map);
|
||||
|
||||
MCFG_INPUT_MERGER_ANY_HIGH("irq_merger")
|
||||
MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("maincpu", ARM_IRQ_LINE))
|
||||
INPUT_MERGER_ANY_HIGH(config, "irq_merger").output_handler().set_inputline("maincpu", ARM_IRQ_LINE);
|
||||
|
||||
MCFG_DEVICE_ADD("audiocpu", Z80, 32220000/8)
|
||||
MCFG_DEVICE_PROGRAM_MAP(lockload_sound_map)
|
||||
MCFG_DEVICE_IO_MAP(z80_sound_io)
|
||||
Z80(config, m_audiocpu, 32220000/8);
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &dragngun_state::lockload_sound_map);
|
||||
m_audiocpu->set_addrmap(AS_IO, &dragngun_state::z80_sound_io);
|
||||
|
||||
MCFG_INPUT_MERGER_ANY_HIGH("sound_irq_merger")
|
||||
MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("audiocpu", INPUT_LINE_IRQ0))
|
||||
INPUT_MERGER_ANY_HIGH(config, "sound_irq_merger").output_handler().set_inputline("audiocpu", INPUT_LINE_IRQ0);
|
||||
|
||||
DECO_IRQ(config, m_deco_irq, 0);
|
||||
m_deco_irq->set_screen_tag(m_screen);
|
||||
@ -2208,19 +2201,19 @@ MACHINE_CONFIG_START(dragngun_state::lockload)
|
||||
m_deco_irq->vblank_irq_callback().set("irq_merger", FUNC(input_merger_any_high_device::in_w<1>));
|
||||
m_deco_irq->lightgun_irq_callback().set("irq_merger", FUNC(input_merger_any_high_device::in_w<2>));
|
||||
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* to improve main<->audio comms */
|
||||
config.m_minimum_quantum = attotime::from_hz(6000); /* to improve main<->audio comms */
|
||||
|
||||
EEPROM_93C46_16BIT(config, "eeprom");
|
||||
EEPROM_93C46_16BIT(config, m_eeprom);
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(XTAL(28'000'000) / 4, 442, 0, 320, 274, 8, 248)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(dragngun_state, screen_update)
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_raw(XTAL(28'000'000) / 4, 442, 0, 320, 274, 8, 248);
|
||||
m_screen->set_screen_update(FUNC(dragngun_state::screen_update));
|
||||
|
||||
MCFG_DEVICE_ADD("spriteram", BUFFERED_SPRITERAM32)
|
||||
BUFFERED_SPRITERAM32(config, m_spriteram);
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_dragngun)
|
||||
MCFG_PALETTE_ADD("palette", 2048)
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_dragngun);
|
||||
PALETTE(config, m_palette, 2048);
|
||||
|
||||
DECO16IC(config, m_deco_tilegen[0], 0);
|
||||
m_deco_tilegen[0]->set_split(0);
|
||||
@ -2274,31 +2267,31 @@ MACHINE_CONFIG_START(dragngun_state::lockload)
|
||||
m_ym2151->add_route(0, "lspeaker", 0.42);
|
||||
m_ym2151->add_route(1, "rspeaker", 0.42);
|
||||
|
||||
MCFG_DEVICE_ADD("oki1", OKIM6295, 32220000/32, okim6295_device::PIN7_HIGH)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
|
||||
OKIM6295(config, m_oki[0], 32220000/32, okim6295_device::PIN7_HIGH);
|
||||
m_oki[0]->add_route(ALL_OUTPUTS, "lspeaker", 1.0);
|
||||
m_oki[0]->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
|
||||
|
||||
MCFG_DEVICE_ADD("oki2", OKIM6295, 32220000/16, okim6295_device::PIN7_HIGH)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.35)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.35)
|
||||
OKIM6295(config, m_oki[1], 32220000/16, okim6295_device::PIN7_HIGH);
|
||||
m_oki[1]->add_route(ALL_OUTPUTS, "lspeaker", 0.35);
|
||||
m_oki[1]->add_route(ALL_OUTPUTS, "rspeaker", 0.35);
|
||||
|
||||
MCFG_DEVICE_ADD("vol_main", LC7535)
|
||||
MCFG_LC7535_SELECT_CB(CONSTANT(1))
|
||||
MCFG_LC7535_VOLUME_CB(dragngun_state, volume_main_changed)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(nslasher_state::tattass)
|
||||
LC7535(config, m_vol_main);
|
||||
m_vol_main->select().set_constant(1);
|
||||
m_vol_main->set_volume_callback(FUNC(dragngun_state::volume_main_changed));
|
||||
}
|
||||
|
||||
void nslasher_state::tattass(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", ARM, 28000000/4) // unconfirmed
|
||||
MCFG_DEVICE_PROGRAM_MAP(tattass_map)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", deco32_state, irq0_line_assert)
|
||||
ARM(config, m_maincpu, 28000000/4); // unconfirmed
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &nslasher_state::tattass_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(deco32_state::irq0_line_assert));
|
||||
|
||||
EEPROM_93C76_8BIT(config, "eeprom");
|
||||
EEPROM_93C76_8BIT(config, m_eeprom);
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(XTAL(28'000'000) / 4, 442, 0, 320, 274, 8, 248)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(nslasher_state, screen_update)
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_raw(XTAL(28'000'000) / 4, 442, 0, 320, 274, 8, 248);
|
||||
m_screen->set_screen_update(FUNC(nslasher_state::screen_update));
|
||||
|
||||
DECO_ACE(config, m_deco_ace, 0);
|
||||
|
||||
@ -2342,7 +2335,7 @@ MACHINE_CONFIG_START(nslasher_state::tattass)
|
||||
m_sprgen[1]->set_gfx_region(4);
|
||||
m_sprgen[1]->set_gfxdecode_tag(m_gfxdecode);
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, m_deco_ace, gfx_tattass)
|
||||
GFXDECODE(config, m_gfxdecode, m_deco_ace, gfx_tattass);
|
||||
|
||||
DECO104PROT(config, m_ioprot, 0);
|
||||
m_ioprot->port_a_cb().set_ioport("IN0");
|
||||
@ -2353,29 +2346,28 @@ MACHINE_CONFIG_START(nslasher_state::tattass)
|
||||
|
||||
/* sound hardware */
|
||||
DECOBSMT(config, m_decobsmt, 0);
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(nslasher_state::nslasher)
|
||||
}
|
||||
|
||||
void nslasher_state::nslasher(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", ARM, XTAL(28'322'000) / 4)
|
||||
MCFG_DEVICE_PROGRAM_MAP(nslasher_map)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", deco32_state, irq0_line_assert)
|
||||
ARM(config, m_maincpu, XTAL(28'322'000) / 4);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &nslasher_state::nslasher_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(deco32_state::irq0_line_assert));
|
||||
|
||||
MCFG_DEVICE_ADD("audiocpu", Z80, 32220000/9)
|
||||
MCFG_DEVICE_PROGRAM_MAP(z80_sound_map)
|
||||
MCFG_DEVICE_IO_MAP(z80_sound_io)
|
||||
Z80(config, m_audiocpu, 32220000/9);
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &nslasher_state::z80_sound_map);
|
||||
m_audiocpu->set_addrmap(AS_IO, &nslasher_state::z80_sound_io);
|
||||
|
||||
MCFG_INPUT_MERGER_ANY_HIGH("sound_irq_merger")
|
||||
MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("audiocpu", INPUT_LINE_IRQ0))
|
||||
INPUT_MERGER_ANY_HIGH(config, "sound_irq_merger").output_handler().set_inputline("audiocpu", INPUT_LINE_IRQ0);
|
||||
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* to improve main<->audio comms */
|
||||
config.m_minimum_quantum = attotime::from_hz(6000); /* to improve main<->audio comms */
|
||||
|
||||
EEPROM_93C46_16BIT(config, "eeprom");
|
||||
EEPROM_93C46_16BIT(config, m_eeprom);
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(XTAL(28'322'000) / 4, 442, 0, 320, 274, 8, 248)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(nslasher_state, screen_update)
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_raw(XTAL(28'322'000) / 4, 442, 0, 320, 274, 8, 248);
|
||||
m_screen->set_screen_update(FUNC(nslasher_state::screen_update));
|
||||
|
||||
DECO_ACE(config, m_deco_ace, 0);
|
||||
|
||||
@ -2419,7 +2411,7 @@ MACHINE_CONFIG_START(nslasher_state::nslasher)
|
||||
m_sprgen[1]->set_gfx_region(4);
|
||||
m_sprgen[1]->set_gfxdecode_tag(m_gfxdecode);
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, m_deco_ace, gfx_nslasher)
|
||||
GFXDECODE(config, m_gfxdecode, m_deco_ace, gfx_nslasher);
|
||||
|
||||
DECO104PROT(config, m_ioprot, 0);
|
||||
m_ioprot->port_a_cb().set_ioport("IN0");
|
||||
@ -2438,14 +2430,14 @@ MACHINE_CONFIG_START(nslasher_state::nslasher)
|
||||
m_ym2151->add_route(0, "lspeaker", 0.40);
|
||||
m_ym2151->add_route(1, "rspeaker", 0.40);
|
||||
|
||||
MCFG_DEVICE_ADD("oki1", OKIM6295, 32220000/32, okim6295_device::PIN7_HIGH)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.80)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.80)
|
||||
OKIM6295(config, m_oki[0], 32220000/32, okim6295_device::PIN7_HIGH);
|
||||
m_oki[0]->add_route(ALL_OUTPUTS, "lspeaker", 0.80);
|
||||
m_oki[0]->add_route(ALL_OUTPUTS, "rspeaker", 0.80);
|
||||
|
||||
MCFG_DEVICE_ADD("oki2", OKIM6295, 32220000/16, okim6295_device::PIN7_HIGH)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.10)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.10)
|
||||
MACHINE_CONFIG_END
|
||||
OKIM6295(config, m_oki[1], 32220000/16, okim6295_device::PIN7_HIGH);
|
||||
m_oki[1]->add_route(ALL_OUTPUTS, "lspeaker", 0.10);
|
||||
m_oki[1]->add_route(ALL_OUTPUTS, "rspeaker", 0.10);
|
||||
}
|
||||
|
||||
// the US release uses a H6280 instead of a Z80, much like Lock 'n' Loaded
|
||||
void nslasher_state::nslasheru(machine_config &config)
|
||||
|
@ -474,7 +474,8 @@ public:
|
||||
m_ppi8255(*this, "ppi8255"),
|
||||
m_rombank(*this, "rombank"),
|
||||
m_mainmap(*this, "mainmap"),
|
||||
m_div_config(*this, "div_config")
|
||||
m_div_config(*this, "div_config"),
|
||||
m_irq_on(*this, "irq_on")
|
||||
{ }
|
||||
|
||||
void csc(machine_config &config);
|
||||
@ -528,6 +529,7 @@ private:
|
||||
optional_memory_bank m_rombank;
|
||||
optional_device<address_map_bank_device> m_mainmap;
|
||||
optional_ioport m_div_config;
|
||||
optional_device<timer_device> m_irq_on;
|
||||
|
||||
// common
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(irq_on) { m_maincpu->set_input_line(M6502_IRQ_LINE, ASSERT_LINE); }
|
||||
@ -1831,16 +1833,16 @@ INPUT_PORTS_END
|
||||
Machine Drivers
|
||||
******************************************************************************/
|
||||
|
||||
MACHINE_CONFIG_START(fidel6502_state::rsc)
|
||||
|
||||
void fidel6502_state::rsc(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
M6502(config, m_maincpu, 1800000); // measured approx 1.81MHz
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &fidel6502_state::rsc_map);
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel6502_state, irq_on, attotime::from_hz(546)) // from 555 timer, measured
|
||||
MCFG_TIMER_START_DELAY(attotime::from_hz(546) - attotime::from_usec(38)) // active for 38us
|
||||
TIMER(config, m_irq_on).configure_periodic(FUNC(fidel6502_state::irq_on), attotime::from_hz(546)); // from 555 timer, measured
|
||||
m_irq_on->set_start_delay(attotime::from_hz(546) - attotime::from_usec(38)); // active for 38us
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidel6502_state, irq_off, attotime::from_hz(546))
|
||||
TIMER(config, "irq_off").configure_periodic(FUNC(fidel6502_state::irq_off), attotime::from_hz(546));
|
||||
|
||||
pia6821_device &pia(PIA6821(config, "pia", 0)); // MOS 6520
|
||||
pia.readpa_handler().set(FUNC(fidel6502_state::csc_pia1_pa_r));
|
||||
@ -1851,26 +1853,26 @@ MACHINE_CONFIG_START(fidel6502_state::rsc)
|
||||
pia.ca2_handler().set(FUNC(fidel6502_state::csc_pia1_ca2_w));
|
||||
pia.cb2_handler().set(FUNC(fidel6502_state::csc_pia1_cb2_w));
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1))
|
||||
TIMER(config, "display_decay").configure_periodic(FUNC(fidelbase_state::display_decay_tick), attotime::from_msec(1));
|
||||
config.set_default_layout(layout_fidel_rsc_v2);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "speaker").front_center();
|
||||
DAC_1BIT(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
|
||||
DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
|
||||
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
|
||||
vref.set_output(5.0);
|
||||
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(fidel6502_state::csc)
|
||||
}
|
||||
|
||||
void fidel6502_state::csc(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
M6502(config, m_maincpu, 3.9_MHz_XTAL/2); // from 3.9MHz resonator
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &fidel6502_state::csc_map);
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel6502_state, irq_on, attotime::from_hz(38.4_kHz_XTAL/64)) // through 4060 IC, 600Hz
|
||||
MCFG_TIMER_START_DELAY(attotime::from_hz(38.4_kHz_XTAL/64) - attotime::from_hz(38.4_kHz_XTAL*2)) // edge!
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidel6502_state, irq_off, attotime::from_hz(38.4_kHz_XTAL/64))
|
||||
TIMER(config, m_irq_on).configure_periodic(FUNC(fidel6502_state::irq_on), attotime::from_hz(38.4_kHz_XTAL/64)); // through 4060 IC, 600Hz
|
||||
m_irq_on->set_start_delay(attotime::from_hz(38.4_kHz_XTAL/64) - attotime::from_hz(38.4_kHz_XTAL*2)); // edge!
|
||||
TIMER(config, "irq_off").configure_periodic(FUNC(fidel6502_state::irq_off), attotime::from_hz(38.4_kHz_XTAL/64));
|
||||
|
||||
pia6821_device &pia0(PIA6821(config, "pia0", 0));
|
||||
pia0.readpb_handler().set(FUNC(fidel6502_state::csc_pia0_pb_r));
|
||||
@ -1887,7 +1889,7 @@ MACHINE_CONFIG_START(fidel6502_state::csc)
|
||||
pia1.ca2_handler().set(FUNC(fidel6502_state::csc_pia1_ca2_w));
|
||||
pia1.cb2_handler().set(FUNC(fidel6502_state::csc_pia1_cb2_w));
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1))
|
||||
TIMER(config, "display_decay").configure_periodic(FUNC(fidelbase_state::display_decay_tick), attotime::from_msec(1));
|
||||
config.set_default_layout(layout_fidel_csc);
|
||||
|
||||
/* sound hardware */
|
||||
@ -1896,11 +1898,11 @@ MACHINE_CONFIG_START(fidel6502_state::csc)
|
||||
speech.ext_read().set(FUNC(fidel6502_state::csc_speech_r));
|
||||
speech.add_route(ALL_OUTPUTS, "speaker", 0.75);
|
||||
|
||||
DAC_1BIT(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
|
||||
DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
|
||||
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
|
||||
vref.set_output(5.0);
|
||||
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
void fidel6502_state::su9(machine_config &config)
|
||||
{
|
||||
@ -1913,20 +1915,21 @@ void fidel6502_state::su9(machine_config &config)
|
||||
config.set_default_layout(layout_fidel_su9);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(fidel6502_state::eas_base)
|
||||
void fidel6502_state::eas_base(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
R65C02(config, m_maincpu, 3_MHz_XTAL);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &fidel6502_state::div_trampoline);
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel6502_state, irq_on, attotime::from_hz(38.4_kHz_XTAL/64)) // through 4060 IC, 600Hz
|
||||
MCFG_TIMER_START_DELAY(attotime::from_hz(38.4_kHz_XTAL/64) - attotime::from_hz(38.4_kHz_XTAL*2)) // edge!
|
||||
TIMER(config, m_irq_on).configure_periodic(FUNC(fidel6502_state::irq_on), attotime::from_hz(38.4_kHz_XTAL/64)); // through 4060 IC, 600Hz
|
||||
m_irq_on->set_start_delay(attotime::from_hz(38.4_kHz_XTAL/64) - attotime::from_hz(38.4_kHz_XTAL*2)); // edge!
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidel6502_state, irq_off, attotime::from_hz(38.4_kHz_XTAL/64))
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("dummy_timer", fidel6502_state, dummy, attotime::from_hz(3_MHz_XTAL))
|
||||
TIMER(config, "irq_off").configure_periodic(FUNC(fidel6502_state::irq_off), attotime::from_hz(38.4_kHz_XTAL/64));
|
||||
TIMER(config, "dummy_timer").configure_periodic(FUNC(fidel6502_state::dummy), attotime::from_hz(3_MHz_XTAL));
|
||||
|
||||
ADDRESS_MAP_BANK(config, m_mainmap).set_map(&fidel6502_state::eas_map).set_options(ENDIANNESS_LITTLE, 8, 16);
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1))
|
||||
TIMER(config, "display_decay").configure_periodic(FUNC(fidelbase_state::display_decay_tick), attotime::from_msec(1));
|
||||
config.set_default_layout(layout_fidel_eas);
|
||||
|
||||
/* sound hardware */
|
||||
@ -1935,7 +1938,7 @@ MACHINE_CONFIG_START(fidel6502_state::eas_base)
|
||||
speech.ext_read().set(FUNC(fidel6502_state::csc_speech_r));
|
||||
speech.add_route(ALL_OUTPUTS, "speaker", 0.75);
|
||||
|
||||
DAC_1BIT(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
|
||||
DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
|
||||
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
|
||||
vref.set_output(5.0);
|
||||
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
|
||||
@ -1945,7 +1948,7 @@ MACHINE_CONFIG_START(fidel6502_state::eas_base)
|
||||
cartslot.set_device_load(device_image_load_delegate(&fidelbase_state::device_image_load_scc_cartridge, this));
|
||||
|
||||
SOFTWARE_LIST(config, "cart_list").set_original("fidel_scc");
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
void fidel6502_state::eas(machine_config &config)
|
||||
{
|
||||
@ -1960,314 +1963,324 @@ void fidel6502_state::eas(machine_config &config)
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(fidel6502_state::pc)
|
||||
void fidel6502_state::pc(machine_config &config)
|
||||
{
|
||||
eas_base(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
m_maincpu->set_clock(4_MHz_XTAL); // R65C02P4
|
||||
|
||||
MCFG_DEVICE_REMOVE("dummy_timer")
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("dummy_timer", fidel6502_state, dummy, attotime::from_hz(4_MHz_XTAL))
|
||||
TIMER(config.replace(), "dummy_timer").configure_periodic(FUNC(fidel6502_state::dummy), attotime::from_hz(4_MHz_XTAL));
|
||||
|
||||
m_mainmap->set_addrmap(AS_PROGRAM, &fidel6502_state::pc_map);
|
||||
|
||||
config.set_default_layout(layout_fidel_pc);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(fidel6502_state::eag)
|
||||
void fidel6502_state::eag(machine_config &config)
|
||||
{
|
||||
eas(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
m_maincpu->set_clock(5_MHz_XTAL); // R65C02P4
|
||||
|
||||
MCFG_DEVICE_REMOVE("dummy_timer")
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("dummy_timer", fidel6502_state, dummy, attotime::from_hz(5_MHz_XTAL))
|
||||
TIMER(config.replace(), "dummy_timer").configure_periodic(FUNC(fidel6502_state::dummy), attotime::from_hz(5_MHz_XTAL));
|
||||
|
||||
m_mainmap->set_addrmap(AS_PROGRAM, &fidel6502_state::eag_map);
|
||||
|
||||
config.set_default_layout(layout_fidel_eag);
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(fidel6502_state::sc9d)
|
||||
}
|
||||
|
||||
void fidel6502_state::sc9d(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", M6502, 3.9_MHz_XTAL/2) // R6502AP, 3.9MHz resonator
|
||||
MCFG_DEVICE_PROGRAM_MAP(sc9d_map)
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel6502_state, irq_on, attotime::from_hz(610)) // from 555 timer (22nF, 102K, 2.7K)
|
||||
MCFG_TIMER_START_DELAY(attotime::from_hz(610) - attotime::from_usec(41)) // active for 41us
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidel6502_state, irq_off, attotime::from_hz(610))
|
||||
M6502(config, m_maincpu, 3.9_MHz_XTAL/2); // R6502AP, 3.9MHz resonator
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &fidel6502_state::sc9d_map);
|
||||
TIMER(config, m_irq_on).configure_periodic(FUNC(fidel6502_state::irq_on), attotime::from_hz(610)); // from 555 timer (22nF, 102K, 2.7K)
|
||||
m_irq_on->set_start_delay(attotime::from_hz(610) - attotime::from_usec(41)); // active for 41us
|
||||
TIMER(config, "irq_off").configure_periodic(FUNC(fidel6502_state::irq_off), attotime::from_hz(610));
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1))
|
||||
TIMER(config, "display_decay").configure_periodic(FUNC(fidelbase_state::display_decay_tick), attotime::from_msec(1));
|
||||
config.set_default_layout(layout_fidel_sc9);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "speaker").front_center();
|
||||
MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
|
||||
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
|
||||
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
|
||||
|
||||
DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
|
||||
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
|
||||
vref.set_output(5.0);
|
||||
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
|
||||
|
||||
/* cartridge */
|
||||
MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "fidel_scc")
|
||||
MCFG_GENERIC_EXTENSIONS("bin,dat")
|
||||
MCFG_GENERIC_LOAD(fidelbase_state, scc_cartridge)
|
||||
MCFG_SOFTWARE_LIST_ADD("cart_list", "fidel_scc")
|
||||
MACHINE_CONFIG_END
|
||||
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "fidel_scc", "bin,dat"));
|
||||
cartslot.set_device_load(device_image_load_delegate(&fidelbase_state::device_image_load_scc_cartridge, this));
|
||||
|
||||
MACHINE_CONFIG_START(fidel6502_state::sc9b)
|
||||
SOFTWARE_LIST(config, "cart_list").set_original("fidel_scc");
|
||||
}
|
||||
|
||||
void fidel6502_state::sc9b(machine_config &config)
|
||||
{
|
||||
sc9d(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_REPLACE("maincpu", M6502, 1500000) // from ceramic resonator "681 JSA", measured
|
||||
MCFG_DEVICE_PROGRAM_MAP(sc9_map)
|
||||
MACHINE_CONFIG_END
|
||||
M6502(config.replace(), m_maincpu, 1500000); // from ceramic resonator "681 JSA", measured
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &fidel6502_state::sc9_map);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(fidel6502_state::sc9c)
|
||||
void fidel6502_state::sc9c(machine_config &config)
|
||||
{
|
||||
sc9b(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_MACHINE_RESET_OVERRIDE(fidel6502_state, sc9c)
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(fidel6502_state::playmatic)
|
||||
void fidel6502_state::playmatic(machine_config &config)
|
||||
{
|
||||
sc9b(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_DEVICE_CLOCK(3100000) // approximation
|
||||
m_maincpu->set_clock(3100000); // approximation
|
||||
|
||||
config.set_default_layout(layout_fidel_playmatic);
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(fidel6502_state::sc12)
|
||||
}
|
||||
|
||||
void fidel6502_state::sc12(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", R65C02, 3_MHz_XTAL) // R65C02P3
|
||||
MCFG_DEVICE_PROGRAM_MAP(div_trampoline)
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel6502_state, irq_on, attotime::from_hz(630)) // from 556 timer (22nF, 102K, 1K)
|
||||
MCFG_TIMER_START_DELAY(attotime::from_hz(630) - attotime::from_nsec(15250)) // active for 15.25us
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidel6502_state, irq_off, attotime::from_hz(630))
|
||||
R65C02(config, m_maincpu, 3_MHz_XTAL); // R65C02P3
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &fidel6502_state::div_trampoline);
|
||||
TIMER(config, m_irq_on).configure_periodic(FUNC(fidel6502_state::irq_on), attotime::from_hz(630)); // from 556 timer (22nF, 102K, 1K)
|
||||
m_irq_on->set_start_delay(attotime::from_hz(630) - attotime::from_nsec(15250)); // active for 15.25us
|
||||
TIMER(config, "irq_off").configure_periodic(FUNC(fidel6502_state::irq_off), attotime::from_hz(630));
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("dummy_timer", fidel6502_state, dummy, attotime::from_hz(3_MHz_XTAL))
|
||||
TIMER(config, "dummy_timer").configure_periodic(FUNC(fidel6502_state::dummy), attotime::from_hz(3_MHz_XTAL));
|
||||
|
||||
ADDRESS_MAP_BANK(config, "mainmap").set_map(&fidel6502_state::sc12_map).set_options(ENDIANNESS_LITTLE, 8, 16);
|
||||
ADDRESS_MAP_BANK(config, m_mainmap).set_map(&fidel6502_state::sc12_map).set_options(ENDIANNESS_LITTLE, 8, 16);
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1))
|
||||
TIMER(config, "display_decay").configure_periodic(FUNC(fidelbase_state::display_decay_tick), attotime::from_msec(1));
|
||||
config.set_default_layout(layout_fidel_sc12);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "speaker").front_center();
|
||||
MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
|
||||
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
|
||||
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
|
||||
|
||||
DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
|
||||
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
|
||||
vref.set_output(5.0);
|
||||
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
|
||||
|
||||
/* cartridge */
|
||||
MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "fidel_scc")
|
||||
MCFG_GENERIC_EXTENSIONS("bin,dat")
|
||||
MCFG_GENERIC_LOAD(fidelbase_state, scc_cartridge)
|
||||
MCFG_SOFTWARE_LIST_ADD("cart_list", "fidel_scc")
|
||||
MACHINE_CONFIG_END
|
||||
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "fidel_scc", "bin,dat"));
|
||||
cartslot.set_device_load(device_image_load_delegate(&fidelbase_state::device_image_load_scc_cartridge, this));
|
||||
|
||||
MACHINE_CONFIG_START(fidel6502_state::sc12b)
|
||||
SOFTWARE_LIST(config, "cart_list").set_original("fidel_scc");
|
||||
}
|
||||
|
||||
void fidel6502_state::sc12b(machine_config &config)
|
||||
{
|
||||
sc12(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_DEVICE_CLOCK(4_MHz_XTAL) // R65C02P4
|
||||
m_maincpu->set_clock(4_MHz_XTAL); // R65C02P4
|
||||
|
||||
// change irq timer frequency
|
||||
MCFG_DEVICE_REMOVE("irq_on")
|
||||
MCFG_DEVICE_REMOVE("irq_off")
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel6502_state, irq_on, attotime::from_hz(596)) // from 556 timer (22nF, 82K+26K, 1K)
|
||||
MCFG_TIMER_START_DELAY(attotime::from_hz(596) - attotime::from_nsec(15250)) // active for 15.25us
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidel6502_state, irq_off, attotime::from_hz(596))
|
||||
TIMER(config.replace(), m_irq_on).configure_periodic(FUNC(fidel6502_state::irq_on), attotime::from_hz(596)); // from 556 timer (22nF, 82K+26K, 1K)
|
||||
m_irq_on->set_start_delay(attotime::from_hz(596) - attotime::from_nsec(15250)); // active for 15.25us
|
||||
TIMER(config.replace(), "irq_off").configure_periodic(FUNC(fidel6502_state::irq_off), attotime::from_hz(596));
|
||||
|
||||
MCFG_DEVICE_REMOVE("dummy_timer")
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("dummy_timer", fidel6502_state, dummy, attotime::from_hz(4_MHz_XTAL))
|
||||
MACHINE_CONFIG_END
|
||||
TIMER(config.replace(), "dummy_timer").configure_periodic(FUNC(fidel6502_state::dummy), attotime::from_hz(4_MHz_XTAL));
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(fidel6502_state::as12)
|
||||
void fidel6502_state::as12(machine_config &config)
|
||||
{
|
||||
sc12b(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_MODIFY("mainmap")
|
||||
MCFG_DEVICE_PROGRAM_MAP(as12_map)
|
||||
m_mainmap->set_addrmap(AS_PROGRAM, &fidel6502_state::as12_map);
|
||||
|
||||
// change irq timer frequency
|
||||
MCFG_DEVICE_REMOVE("irq_on")
|
||||
MCFG_DEVICE_REMOVE("irq_off")
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel6502_state, irq_on, attotime::from_hz(585)) // from 556 timer (22nF, 110K, 1K)
|
||||
MCFG_TIMER_START_DELAY(attotime::from_hz(585) - attotime::from_nsec(15250)) // active for 15.25us
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidel6502_state, irq_off, attotime::from_hz(585))
|
||||
TIMER(config.replace(), m_irq_on).configure_periodic(FUNC(fidel6502_state::irq_on), attotime::from_hz(585)); // from 556 timer (22nF, 110K, 1K)
|
||||
m_irq_on->set_start_delay(attotime::from_hz(585) - attotime::from_nsec(15250)); // active for 15.25us
|
||||
TIMER(config.replace(), "irq_off").configure_periodic(FUNC(fidel6502_state::irq_off), attotime::from_hz(585));
|
||||
|
||||
config.set_default_layout(layout_fidel_as12);
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(fidel6502_state::fexcel)
|
||||
}
|
||||
|
||||
void fidel6502_state::fexcel(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", M65SC02, 12_MHz_XTAL/4) // G65SC102P-3, 12.0M ceramic resonator
|
||||
MCFG_DEVICE_PROGRAM_MAP(fexcel_map)
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel6502_state, irq_on, attotime::from_hz(630)) // from 556 timer (22nF, 102K, 1K)
|
||||
MCFG_TIMER_START_DELAY(attotime::from_hz(630) - attotime::from_nsec(15250)) // active for 15.25us
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidel6502_state, irq_off, attotime::from_hz(630))
|
||||
M65SC02(config, m_maincpu, 12_MHz_XTAL/4); // G65SC102P-3, 12.0M ceramic resonator
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &fidel6502_state::fexcel_map);
|
||||
TIMER(config, m_irq_on).configure_periodic(FUNC(fidel6502_state::irq_on), attotime::from_hz(630)); // from 556 timer (22nF, 102K, 1K)
|
||||
m_irq_on->set_start_delay(attotime::from_hz(630) - attotime::from_nsec(15250)); // active for 15.25us
|
||||
TIMER(config, "irq_off").configure_periodic(FUNC(fidel6502_state::irq_off), attotime::from_hz(630));
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1))
|
||||
TIMER(config, "display_decay").configure_periodic(FUNC(fidelbase_state::display_decay_tick), attotime::from_msec(1));
|
||||
config.set_default_layout(layout_fidel_ex);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "speaker").front_center();
|
||||
MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
|
||||
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
|
||||
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
|
||||
MACHINE_CONFIG_END
|
||||
DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
|
||||
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
|
||||
vref.set_output(5.0);
|
||||
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(fidel6502_state::fexcel4)
|
||||
void fidel6502_state::fexcel4(machine_config &config)
|
||||
{
|
||||
fexcel(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_REPLACE("maincpu", R65C02, 4_MHz_XTAL) // R65C02P4
|
||||
MCFG_DEVICE_PROGRAM_MAP(fexcel_map)
|
||||
MACHINE_CONFIG_END
|
||||
R65C02(config.replace(), m_maincpu, 4_MHz_XTAL); // R65C02P4
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &fidel6502_state::fexcel_map);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(fidel6502_state::fexcelb)
|
||||
void fidel6502_state::fexcelb(machine_config &config)
|
||||
{
|
||||
fexcel(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_DEVICE_PROGRAM_MAP(fexcelb_map)
|
||||
MACHINE_CONFIG_END
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &fidel6502_state::fexcelb_map);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(fidel6502_state::fexcelp)
|
||||
void fidel6502_state::fexcelp(machine_config &config)
|
||||
{
|
||||
fexcel(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_REPLACE("maincpu", R65C02, 5_MHz_XTAL) // R65C02P4
|
||||
MCFG_DEVICE_PROGRAM_MAP(fexcelp_map)
|
||||
MACHINE_CONFIG_END
|
||||
R65C02(config.replace(), m_maincpu, 5_MHz_XTAL); // R65C02P4
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &fidel6502_state::fexcelp_map);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(fidel6502_state::granits)
|
||||
void fidel6502_state::granits(machine_config &config)
|
||||
{
|
||||
fexcelp(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_DEVICE_CLOCK(8_MHz_XTAL) // overclocked
|
||||
MACHINE_CONFIG_END
|
||||
m_maincpu->set_clock(8_MHz_XTAL); // overclocked
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(fidel6502_state::fdes2100)
|
||||
void fidel6502_state::fdes2100(machine_config &config)
|
||||
{
|
||||
fexcel(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_REPLACE("maincpu", M65C02, 5_MHz_XTAL) // WDC 65C02
|
||||
MCFG_DEVICE_PROGRAM_MAP(fexcelp_map)
|
||||
M65C02(config.replace(), m_maincpu, 5_MHz_XTAL); // WDC 65C02
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &fidel6502_state::fexcelp_map);
|
||||
|
||||
// change irq timer frequency
|
||||
MCFG_DEVICE_REMOVE("irq_on")
|
||||
MCFG_DEVICE_REMOVE("irq_off")
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel6502_state, irq_on, attotime::from_hz(585)) // from 556 timer (22nF, 110K, 1K)
|
||||
MCFG_TIMER_START_DELAY(attotime::from_hz(585) - attotime::from_nsec(15250)) // active for 15.25us
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidel6502_state, irq_off, attotime::from_hz(585))
|
||||
TIMER(config.replace(), m_irq_on).configure_periodic(FUNC(fidel6502_state::irq_on), attotime::from_hz(585)); // from 556 timer (22nF, 110K, 1K)
|
||||
m_irq_on->set_start_delay(attotime::from_hz(585) - attotime::from_nsec(15250)); // active for 15.25us
|
||||
TIMER(config.replace(), "irq_off").configure_periodic(FUNC(fidel6502_state::irq_off), attotime::from_hz(585));
|
||||
|
||||
config.set_default_layout(layout_fidel_des);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(fidel6502_state::fdes2000)
|
||||
void fidel6502_state::fdes2000(machine_config &config)
|
||||
{
|
||||
fdes2100(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_REPLACE("maincpu", R65C02, 3_MHz_XTAL) // RP65C02G
|
||||
MCFG_DEVICE_PROGRAM_MAP(fexcelp_map)
|
||||
MACHINE_CONFIG_END
|
||||
R65C02(config.replace(), m_maincpu, 3_MHz_XTAL); // RP65C02G
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &fidel6502_state::fexcelp_map);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(fidel6502_state::fexcelv)
|
||||
void fidel6502_state::fexcelv(machine_config &config)
|
||||
{
|
||||
fexcelb(config);
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_DEVICE_ADD("speech", S14001A, 25000) // R/C circuit, around 25khz
|
||||
MCFG_S14001A_EXT_READ_HANDLER(READ8(*this, fidel6502_state, fexcelv_speech_r))
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.75)
|
||||
MACHINE_CONFIG_END
|
||||
S14001A(config, m_speech, 25000); // R/C circuit, around 25khz
|
||||
m_speech->ext_read().set(FUNC(fidel6502_state::fexcelv_speech_r));
|
||||
m_speech->add_route(ALL_OUTPUTS, "speaker", 0.75);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(fidel6502_state::fexceld)
|
||||
void fidel6502_state::fexceld(machine_config &config)
|
||||
{
|
||||
fexcelb(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
config.set_default_layout(layout_fidel_exd);
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(fidel6502_state::fdes2100d)
|
||||
}
|
||||
|
||||
void fidel6502_state::fdes2100d(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", M65C02, 6_MHz_XTAL) // W65C02P-6
|
||||
MCFG_DEVICE_PROGRAM_MAP(fdesdis_map)
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel6502_state, irq_on, attotime::from_hz(630)) // from 556 timer (22nF, 102K, 1K)
|
||||
MCFG_TIMER_START_DELAY(attotime::from_hz(630) - attotime::from_nsec(15250)) // active for 15.25us
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidel6502_state, irq_off, attotime::from_hz(630))
|
||||
M65C02(config, m_maincpu, 6_MHz_XTAL); // W65C02P-6
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &fidel6502_state::fdesdis_map);
|
||||
TIMER(config, m_irq_on).configure_periodic(FUNC(fidel6502_state::irq_on), attotime::from_hz(630)); // from 556 timer (22nF, 102K, 1K)
|
||||
m_irq_on->set_start_delay(attotime::from_hz(630) - attotime::from_nsec(15250)); // active for 15.25us
|
||||
TIMER(config, "irq_off").configure_periodic(FUNC(fidel6502_state::irq_off), attotime::from_hz(630));
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1))
|
||||
TIMER(config, "display_decay").configure_periodic(FUNC(fidelbase_state::display_decay_tick), attotime::from_msec(1));
|
||||
config.set_default_layout(layout_fidel_desdis);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "speaker").front_center();
|
||||
MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
|
||||
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
|
||||
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
|
||||
MACHINE_CONFIG_END
|
||||
DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
|
||||
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
|
||||
vref.set_output(5.0);
|
||||
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(fidel6502_state::fdes2000d)
|
||||
void fidel6502_state::fdes2000d(machine_config &config)
|
||||
{
|
||||
fdes2100d(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_REPLACE("maincpu", R65C02, 3_MHz_XTAL) // R65C02P3
|
||||
MCFG_DEVICE_PROGRAM_MAP(fdesdis_map)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(fidel6502_state::fphantom)
|
||||
R65C02(config.replace(), m_maincpu, 3_MHz_XTAL); // R65C02P3
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &fidel6502_state::fdesdis_map);
|
||||
}
|
||||
|
||||
void fidel6502_state::fphantom(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", R65C02, 4.9152_MHz_XTAL) // R65C02P4
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(fidel6502_state, irq0_line_hold, 600) // guessed
|
||||
MCFG_DEVICE_PROGRAM_MAP(fphantom_map)
|
||||
R65C02(config, m_maincpu, 4.9152_MHz_XTAL); // R65C02P4
|
||||
m_maincpu->set_periodic_int(FUNC(fidel6502_state::irq0_line_hold), attotime::from_hz(600)); // guessed
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &fidel6502_state::fphantom_map);
|
||||
|
||||
MCFG_MACHINE_RESET_OVERRIDE(fidel6502_state, fphantom)
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1))
|
||||
TIMER(config, "display_decay").configure_periodic(FUNC(fidelbase_state::display_decay_tick), attotime::from_msec(1));
|
||||
//config.set_default_layout(layout_fidel_phantom);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "speaker").front_center();
|
||||
MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
|
||||
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
|
||||
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(fidel6502_state::chesster)
|
||||
DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
|
||||
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
|
||||
vref.set_output(5.0);
|
||||
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
|
||||
}
|
||||
|
||||
void fidel6502_state::chesster(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", R65C02, 5_MHz_XTAL) // RP65C02G
|
||||
MCFG_DEVICE_PROGRAM_MAP(chesster_map)
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel6502_state, irq_on, attotime::from_hz(9615)) // R/C circuit, measured
|
||||
MCFG_TIMER_START_DELAY(attotime::from_hz(9615) - attotime::from_nsec(2600)) // active for 2.6us
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidel6502_state, irq_off, attotime::from_hz(9615))
|
||||
R65C02(config, m_maincpu, 5_MHz_XTAL); // RP65C02G
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &fidel6502_state::chesster_map);
|
||||
TIMER(config, m_irq_on).configure_periodic(FUNC(fidel6502_state::irq_on), attotime::from_hz(9615)); // R/C circuit, measured
|
||||
m_irq_on->set_start_delay(attotime::from_hz(9615) - attotime::from_nsec(2600)); // active for 2.6us
|
||||
TIMER(config, "irq_off").configure_periodic(FUNC(fidel6502_state::irq_off), attotime::from_hz(9615));
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1))
|
||||
TIMER(config, "display_decay").configure_periodic(FUNC(fidelbase_state::display_decay_tick), attotime::from_msec(1));
|
||||
config.set_default_layout(layout_fidel_chesster);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "speaker").front_center();
|
||||
MCFG_DEVICE_ADD("dac8", DAC_8BIT_R2R, 0) // m74hc374b1.ic1 + 8l513_02.z2
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
|
||||
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
|
||||
MCFG_SOUND_ROUTE(0, "dac8", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac8", -1.0, DAC_VREF_NEG_INPUT)
|
||||
MACHINE_CONFIG_END
|
||||
DAC_8BIT_R2R(config, "dac8", 0).add_route(ALL_OUTPUTS, "speaker", 0.5); // m74hc374b1.ic1 + 8l513_02.z2
|
||||
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
|
||||
vref.set_output(5.0);
|
||||
vref.add_route(0, "dac8", 1.0, DAC_VREF_POS_INPUT);
|
||||
vref.add_route(0, "dac8", -1.0, DAC_VREF_NEG_INPUT);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(fidel6502_state::kishon)
|
||||
void fidel6502_state::kishon(machine_config &config)
|
||||
{
|
||||
chesster(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_DEVICE_CLOCK(3.579545_MHz_XTAL)
|
||||
MCFG_DEVICE_PROGRAM_MAP(kishon_map)
|
||||
MACHINE_CONFIG_END
|
||||
m_maincpu->set_clock(3.579545_MHz_XTAL);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &fidel6502_state::kishon_map);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -520,7 +520,8 @@ public:
|
||||
m_ppi8255(*this, "ppi8255"),
|
||||
m_i8243(*this, "i8243"),
|
||||
m_beeper_off(*this, "beeper_off"),
|
||||
m_beeper(*this, "beeper")
|
||||
m_beeper(*this, "beeper"),
|
||||
m_irq_on(*this, "irq_on")
|
||||
{ }
|
||||
|
||||
void cc10(machine_config &config);
|
||||
@ -546,6 +547,7 @@ private:
|
||||
optional_device<i8243_device> m_i8243;
|
||||
optional_device<timer_device> m_beeper_off;
|
||||
optional_device<beep_device> m_beeper;
|
||||
optional_device<timer_device> m_irq_on;
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(irq_on) { m_maincpu->set_input_line(INPUT_LINE_IRQ0, ASSERT_LINE); }
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(irq_off) { m_maincpu->set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE); }
|
||||
@ -1660,46 +1662,48 @@ INPUT_PORTS_END
|
||||
Machine Drivers
|
||||
******************************************************************************/
|
||||
|
||||
MACHINE_CONFIG_START(fidelz80_state::bcc)
|
||||
|
||||
void fidelz80_state::bcc(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", Z80, 3.579545_MHz_XTAL)
|
||||
MCFG_DEVICE_PROGRAM_MAP(bcc_map)
|
||||
MCFG_DEVICE_IO_MAP(bcc_io)
|
||||
Z80(config, m_maincpu, 3.579545_MHz_XTAL);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &fidelz80_state::bcc_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &fidelz80_state::bcc_io);
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1))
|
||||
TIMER(config, "display_decay").configure_periodic(FUNC(fidelbase_state::display_decay_tick), attotime::from_msec(1));
|
||||
config.set_default_layout(layout_fidel_bcc);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "speaker").front_center();
|
||||
MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
|
||||
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
|
||||
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(fidelz80_state::scc)
|
||||
DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
|
||||
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);
|
||||
}
|
||||
|
||||
void fidelz80_state::scc(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", Z80, 3.9_MHz_XTAL)
|
||||
MCFG_DEVICE_PROGRAM_MAP(scc_map)
|
||||
MCFG_DEVICE_IO_MAP(scc_io)
|
||||
Z80(config, m_maincpu, 3.9_MHz_XTAL);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &fidelz80_state::scc_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &fidelz80_state::scc_io);
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1))
|
||||
TIMER(config, "display_decay").configure_periodic(FUNC(fidelbase_state::display_decay_tick), attotime::from_msec(1));
|
||||
config.set_default_layout(layout_fidel_sc8);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "speaker").front_center();
|
||||
MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
|
||||
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
|
||||
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(fidelz80_state::cc10)
|
||||
DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
|
||||
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);
|
||||
}
|
||||
|
||||
void fidelz80_state::cc10(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", Z80, 4_MHz_XTAL)
|
||||
MCFG_DEVICE_PROGRAM_MAP(cc10_map)
|
||||
MCFG_DEVICE_IO_MAP(vcc_io)
|
||||
Z80(config, m_maincpu, 4_MHz_XTAL);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &fidelz80_state::cc10_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &fidelz80_state::vcc_io);
|
||||
|
||||
I8255(config, m_ppi8255);
|
||||
m_ppi8255->out_pa_callback().set(FUNC(fidelz80_state::cc10_ppi_porta_w));
|
||||
@ -1710,22 +1714,22 @@ MACHINE_CONFIG_START(fidelz80_state::cc10)
|
||||
m_ppi8255->tri_pb_callback().set_constant(0);
|
||||
m_ppi8255->out_pc_callback().set(FUNC(fidelz80_state::vcc_ppi_portc_w));
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1))
|
||||
TIMER(config, "display_decay").configure_periodic(FUNC(fidelbase_state::display_decay_tick), attotime::from_msec(1));
|
||||
config.set_default_layout(layout_fidel_cc);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "speaker").front_center();
|
||||
MCFG_DEVICE_ADD("beeper", BEEP, 1360) // approximation, from 556 timer ic
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
|
||||
MCFG_TIMER_DRIVER_ADD("beeper_off", fidelz80_state, beeper_off_callback)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(fidelz80_state::vcc)
|
||||
BEEP(config, m_beeper, 1360); // approximation, from 556 timer ic
|
||||
m_beeper->add_route(ALL_OUTPUTS, "speaker", 0.25);
|
||||
TIMER(config, "beeper_off").configure_generic(FUNC(fidelz80_state::beeper_off_callback));
|
||||
}
|
||||
|
||||
void fidelz80_state::vcc(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", Z80, 4_MHz_XTAL)
|
||||
MCFG_DEVICE_PROGRAM_MAP(vcc_map)
|
||||
MCFG_DEVICE_IO_MAP(vcc_io)
|
||||
Z80(config, m_maincpu, 4_MHz_XTAL);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &fidelz80_state::vcc_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &fidelz80_state::vcc_io);
|
||||
|
||||
I8255(config, m_ppi8255);
|
||||
m_ppi8255->out_pa_callback().set(FUNC(fidelz80_state::vcc_ppi_porta_w));
|
||||
@ -1736,25 +1740,25 @@ MACHINE_CONFIG_START(fidelz80_state::vcc)
|
||||
m_ppi8255->in_pc_callback().set(FUNC(fidelz80_state::vcc_ppi_portc_r));
|
||||
m_ppi8255->out_pc_callback().set(FUNC(fidelz80_state::vcc_ppi_portc_w));
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1))
|
||||
TIMER(config, "display_decay").configure_periodic(FUNC(fidelbase_state::display_decay_tick), attotime::from_msec(1));
|
||||
config.set_default_layout(layout_fidel_vcc);
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(fidelz80_state,vcc)
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "speaker").front_center();
|
||||
MCFG_DEVICE_ADD("speech", S14001A, 25000) // R/C circuit, around 25khz
|
||||
MCFG_S14001A_EXT_READ_HANDLER(READ8(*this, fidelz80_state, vcc_speech_r))
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.75)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(fidelz80_state::vsc)
|
||||
S14001A(config, m_speech, 25000); // R/C circuit, around 25khz
|
||||
m_speech->ext_read().set(FUNC(fidelz80_state::vcc_speech_r));
|
||||
m_speech->add_route(ALL_OUTPUTS, "speaker", 0.75);
|
||||
}
|
||||
|
||||
void fidelz80_state::vsc(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", Z80, 3.9_MHz_XTAL) // 3.9MHz resonator
|
||||
MCFG_DEVICE_PROGRAM_MAP(vsc_map)
|
||||
MCFG_DEVICE_IO_MAP(vsc_io)
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(fidelz80_state, nmi_line_pulse, 587) // 555 timer, measured
|
||||
Z80(config, m_maincpu, 3.9_MHz_XTAL); // 3.9MHz resonator
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &fidelz80_state::vsc_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &fidelz80_state::vsc_io);
|
||||
m_maincpu->set_periodic_int(FUNC(fidelz80_state::nmi_line_pulse), attotime::from_hz(587)); // 555 timer, measured
|
||||
|
||||
I8255(config, m_ppi8255);
|
||||
m_ppi8255->out_pa_callback().set(FUNC(fidelz80_state::vsc_ppi_porta_w));
|
||||
@ -1766,23 +1770,23 @@ MACHINE_CONFIG_START(fidelz80_state::vsc)
|
||||
m_z80pio->in_pb_callback().set(FUNC(fidelz80_state::vsc_pio_portb_r));
|
||||
m_z80pio->out_pb_callback().set(FUNC(fidelz80_state::vsc_pio_portb_w));
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1))
|
||||
TIMER(config, "display_decay").configure_periodic(FUNC(fidelbase_state::display_decay_tick), attotime::from_msec(1));
|
||||
config.set_default_layout(layout_fidel_vsc);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "speaker").front_center();
|
||||
MCFG_DEVICE_ADD("speech", S14001A, 25000) // R/C circuit, around 25khz
|
||||
MCFG_S14001A_EXT_READ_HANDLER(READ8(*this, fidelz80_state, vcc_speech_r))
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.75)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(fidelz80_state::vbrc)
|
||||
S14001A(config, m_speech, 25000); // R/C circuit, around 25khz
|
||||
m_speech->ext_read().set(FUNC(fidelz80_state::vcc_speech_r));
|
||||
m_speech->add_route(ALL_OUTPUTS, "speaker", 0.75);
|
||||
}
|
||||
|
||||
void fidelz80_state::vbrc(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", Z80, 5_MHz_XTAL/2)
|
||||
MCFG_DEVICE_PROGRAM_MAP(vbrc_main_map)
|
||||
MCFG_DEVICE_IO_MAP(vbrc_main_io)
|
||||
MCFG_QUANTUM_PERFECT_CPU("maincpu")
|
||||
Z80(config, m_maincpu, 5_MHz_XTAL/2);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &fidelz80_state::vbrc_main_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &fidelz80_state::vbrc_main_io);
|
||||
config.m_perfect_cpu_quantum = subtag("maincpu");
|
||||
|
||||
I8041(config, m_mcu, 5_MHz_XTAL);
|
||||
m_mcu->p1_out_cb().set(FUNC(fidelz80_state::vbrc_mcu_p1_w));
|
||||
@ -1798,34 +1802,35 @@ MACHINE_CONFIG_START(fidelz80_state::vbrc)
|
||||
m_i8243->p6_out_cb().set(FUNC(fidelz80_state::vbrc_ioexp_port_w<2>));
|
||||
m_i8243->p7_out_cb().set(FUNC(fidelz80_state::vbrc_ioexp_port_w<3>));
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1))
|
||||
TIMER(config, "display_decay").configure_periodic(FUNC(fidelbase_state::display_decay_tick), attotime::from_msec(1));
|
||||
config.set_default_layout(layout_fidel_vbrc);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "speaker").front_center();
|
||||
MCFG_DEVICE_ADD("speech", S14001A, 25000) // R/C circuit, around 25khz
|
||||
MCFG_S14001A_BSY_HANDLER(INPUTLINE("maincpu", Z80_INPUT_LINE_WAIT))
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.75)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(fidelz80_state::dsc)
|
||||
S14001A(config, m_speech, 25000); // R/C circuit, around 25khz
|
||||
m_speech->bsy().set_inputline("maincpu", Z80_INPUT_LINE_WAIT);
|
||||
m_speech->add_route(ALL_OUTPUTS, "speaker", 0.75);
|
||||
}
|
||||
|
||||
void fidelz80_state::dsc(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", Z80, 3.9_MHz_XTAL) // 3.9MHz resonator
|
||||
MCFG_DEVICE_PROGRAM_MAP(dsc_map)
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidelz80_state, irq_on, attotime::from_hz(523)) // from 555 timer (22nF, 120K, 2.7K)
|
||||
MCFG_TIMER_START_DELAY(attotime::from_hz(523) - attotime::from_usec(41)) // active for 41us
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidelz80_state, irq_off, attotime::from_hz(523))
|
||||
Z80(config, m_maincpu, 3.9_MHz_XTAL); // 3.9MHz resonator
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &fidelz80_state::dsc_map);
|
||||
TIMER(config, m_irq_on).configure_periodic(FUNC(fidelz80_state::irq_on), attotime::from_hz(523)); // from 555 timer (22nF, 120K, 2.7K)
|
||||
m_irq_on->set_start_delay(attotime::from_hz(523) - attotime::from_usec(41)); // active for 41us
|
||||
TIMER(config, "irq_off").configure_periodic(FUNC(fidelz80_state::irq_off), attotime::from_hz(523));
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1))
|
||||
TIMER(config, "display_decay").configure_periodic(FUNC(fidelbase_state::display_decay_tick), attotime::from_msec(1));
|
||||
config.set_default_layout(layout_fidel_dsc);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "speaker").front_center();
|
||||
MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
|
||||
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
|
||||
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
|
||||
MACHINE_CONFIG_END
|
||||
DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -1585,17 +1585,17 @@ WRITE_LINE_MEMBER(galaga_state::vblank_irq)
|
||||
m_subcpu->set_input_line(0, ASSERT_LINE);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(bosco_state::bosco)
|
||||
|
||||
void bosco_state::bosco(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(bosco_map)
|
||||
Z80(config, m_maincpu, MASTER_CLOCK/6); /* 3.072 MHz */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &bosco_state::bosco_map);
|
||||
|
||||
MCFG_DEVICE_ADD("sub", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(bosco_map)
|
||||
Z80(config, m_subcpu, MASTER_CLOCK/6); /* 3.072 MHz */
|
||||
m_subcpu->set_addrmap(AS_PROGRAM, &bosco_state::bosco_map);
|
||||
|
||||
MCFG_DEVICE_ADD("sub2", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(bosco_map)
|
||||
Z80(config, m_subcpu2, MASTER_CLOCK/6); /* 3.072 MHz */
|
||||
m_subcpu2->set_addrmap(AS_PROGRAM, &bosco_state::bosco_map);
|
||||
|
||||
ls259_device &misclatch(LS259(config, "misclatch")); // 3C on CPU board
|
||||
misclatch.q_out_cb<0>().set(FUNC(galaga_state::irq1_clear_w));
|
||||
@ -1650,8 +1650,8 @@ MACHINE_CONFIG_START(bosco_state::bosco)
|
||||
//m_videolatch->q_out_cb<7>().append("52xx", FUNC(namco_52xx_device, reset_w));
|
||||
|
||||
WATCHDOG_TIMER(config, "watchdog").set_vblank_count(m_screen, 8);
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame - an high value to ensure proper */
|
||||
/* synchronization of the CPUs */
|
||||
|
||||
config.m_minimum_quantum = attotime::from_hz(6000); /* 100 CPU slices per frame - an high value to ensure proper synchronization of the CPUs */
|
||||
|
||||
/* video hardware */
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
@ -1661,35 +1661,35 @@ MACHINE_CONFIG_START(bosco_state::bosco)
|
||||
m_screen->screen_vblank().append(FUNC(galaga_state::vblank_irq));
|
||||
m_screen->set_palette("palette");
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_bosco)
|
||||
MCFG_PALETTE_ADD("palette", 64*4+64*4+4+64)
|
||||
MCFG_PALETTE_INDIRECT_ENTRIES(32+64)
|
||||
MCFG_PALETTE_INIT_OWNER(bosco_state,bosco)
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_bosco);
|
||||
PALETTE(config, m_palette, 64*4+64*4+4+64);
|
||||
m_palette->set_indirect_entries(32+64);
|
||||
m_palette->set_init(FUNC(bosco_state::palette_init_bosco));
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(bosco_state,bosco)
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
MCFG_DEVICE_ADD("namco", NAMCO, MASTER_CLOCK/6/32)
|
||||
MCFG_NAMCO_AUDIO_VOICES(3)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90 * 10.0 / 16.0)
|
||||
NAMCO(config, m_namco_sound, MASTER_CLOCK/6/32);
|
||||
m_namco_sound->set_voices(3);
|
||||
m_namco_sound->add_route(ALL_OUTPUTS, "mono", 0.90 * 10.0 / 16.0);
|
||||
|
||||
/* discrete circuit on the 54XX outputs */
|
||||
MCFG_DEVICE_ADD("discrete", DISCRETE, bosco_discrete)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(galaga_state::galaga)
|
||||
DISCRETE(config, "discrete", bosco_discrete).add_route(ALL_OUTPUTS, "mono", 0.90);
|
||||
}
|
||||
|
||||
void galaga_state::galaga(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(galaga_map)
|
||||
Z80(config, m_maincpu, MASTER_CLOCK/6); /* 3.072 MHz */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &galaga_state::galaga_map);
|
||||
|
||||
MCFG_DEVICE_ADD("sub", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(galaga_map)
|
||||
Z80(config, m_subcpu, MASTER_CLOCK/6); /* 3.072 MHz */
|
||||
m_subcpu->set_addrmap(AS_PROGRAM, &galaga_state::galaga_map);
|
||||
|
||||
MCFG_DEVICE_ADD("sub2", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(galaga_map)
|
||||
Z80(config, m_subcpu2, MASTER_CLOCK/6); /* 3.072 MHz */
|
||||
m_subcpu2->set_addrmap(AS_PROGRAM, &galaga_state::galaga_map);
|
||||
|
||||
ls259_device &misclatch(LS259(config, "misclatch")); // 3C on CPU board
|
||||
misclatch.q_out_cb<0>().set(FUNC(galaga_state::irq1_clear_w));
|
||||
@ -1722,8 +1722,8 @@ MACHINE_CONFIG_START(galaga_state::galaga)
|
||||
m_videolatch->q_out_cb<7>().set(FUNC(galaga_state::flip_screen_w));
|
||||
|
||||
WATCHDOG_TIMER(config, "watchdog").set_vblank_count(m_screen, 8);
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame - an high value to ensure proper */
|
||||
/* synchronization of the CPUs */
|
||||
|
||||
config.m_minimum_quantum = attotime::from_hz(6000); /* 100 CPU slices per frame - an high value to ensure proper synchronization of the CPUs */
|
||||
|
||||
/* video hardware */
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
@ -1733,25 +1733,26 @@ MACHINE_CONFIG_START(galaga_state::galaga)
|
||||
m_screen->screen_vblank().append(FUNC(galaga_state::vblank_irq));
|
||||
m_screen->set_palette("palette");
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_galaga)
|
||||
MCFG_PALETTE_ADD("palette", 64*4+64*4+64)
|
||||
MCFG_PALETTE_INDIRECT_ENTRIES(32+64)
|
||||
MCFG_PALETTE_INIT_OWNER(galaga_state,galaga)
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_galaga);
|
||||
PALETTE(config, m_palette, 64*4+64*4+64);
|
||||
m_palette->set_indirect_entries(32+64);
|
||||
m_palette->set_init(FUNC(galaga_state::palette_init_galaga));
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(galaga_state,galaga)
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
MCFG_DEVICE_ADD("namco", NAMCO, MASTER_CLOCK/6/32)
|
||||
MCFG_NAMCO_AUDIO_VOICES(3)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90 * 10.0 / 16.0)
|
||||
NAMCO(config, m_namco_sound, MASTER_CLOCK/6/32);
|
||||
m_namco_sound->set_voices(3);
|
||||
m_namco_sound->add_route(ALL_OUTPUTS, "mono", 0.90 * 10.0 / 16.0);
|
||||
|
||||
/* discrete circuit on the 54XX outputs */
|
||||
MCFG_DEVICE_ADD("discrete", DISCRETE, galaga_discrete)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90)
|
||||
MACHINE_CONFIG_END
|
||||
DISCRETE(config, "discrete", galaga_discrete).add_route(ALL_OUTPUTS, "mono", 0.90);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(galaga_state::galagab)
|
||||
void galaga_state::galagab(machine_config &config)
|
||||
{
|
||||
galaga(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
@ -1765,33 +1766,33 @@ MACHINE_CONFIG_START(galaga_state::galagab)
|
||||
n06xx.read_callback<0>().set("51xx", FUNC(namco_51xx_device::read));
|
||||
n06xx.write_callback<0>().set("51xx", FUNC(namco_51xx_device::write));
|
||||
|
||||
MCFG_DEVICE_ADD("sub3", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(galaga_mem4)
|
||||
z80_device &sub3(Z80(config, "sub3", MASTER_CLOCK/6)); /* 3.072 MHz */
|
||||
sub3.set_addrmap(AS_PROGRAM, &galaga_state::galaga_mem4);
|
||||
|
||||
/* sound hardware */
|
||||
config.device_remove("discrete");
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(galaga_state::gatsbee)
|
||||
void galaga_state::gatsbee(machine_config &config)
|
||||
{
|
||||
galaga(config);
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_DEVICE_PROGRAM_MAP(gatsbee_main_map)
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &galaga_state::gatsbee_main_map);
|
||||
|
||||
ls259_device &extralatch(LS259(config, "extralatch"));
|
||||
extralatch.q_out_cb<0>().set(FUNC(galaga_state::gatsbee_bank_w));
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(xevious_state::xevious)
|
||||
}
|
||||
|
||||
void xevious_state::xevious(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(xevious_map)
|
||||
Z80(config, m_maincpu, MASTER_CLOCK/6); /* 3.072 MHz */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &xevious_state::xevious_map);
|
||||
|
||||
MCFG_DEVICE_ADD("sub", Z80,MASTER_CLOCK/6) /* 3.072 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(xevious_map)
|
||||
Z80(config, m_subcpu, MASTER_CLOCK/6); /* 3.072 MHz */
|
||||
m_subcpu->set_addrmap(AS_PROGRAM, &xevious_state::xevious_map);
|
||||
|
||||
MCFG_DEVICE_ADD("sub2", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(xevious_map)
|
||||
Z80(config, m_subcpu2, MASTER_CLOCK/6); /* 3.072 MHz */
|
||||
m_subcpu2->set_addrmap(AS_PROGRAM, &xevious_state::xevious_map);
|
||||
|
||||
ls259_device &misclatch(LS259(config, "misclatch")); // 5K
|
||||
misclatch.q_out_cb<0>().set(FUNC(galaga_state::irq1_clear_w));
|
||||
@ -1825,35 +1826,36 @@ MACHINE_CONFIG_START(xevious_state::xevious)
|
||||
n06xx.write_callback<3>().set("54xx", FUNC(namco_54xx_device::write));
|
||||
|
||||
WATCHDOG_TIMER(config, "watchdog").set_vblank_count(m_screen, 8);
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(60000)) /* 1000 CPU slices per frame - an high value to ensure proper */
|
||||
/* synchronization of the CPUs */
|
||||
|
||||
config.m_minimum_quantum = attotime::from_hz(60000); /* 1000 CPU slices per frame - an high value to ensure proper synchronization of the CPUs */
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD(m_screen, RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 288, 264, 0, 224)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(xevious_state, screen_update_xevious)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, galaga_state, vblank_irq))
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_raw(MASTER_CLOCK/3, 384, 0, 288, 264, 0, 224);
|
||||
m_screen->set_screen_update(FUNC(xevious_state::screen_update_xevious));
|
||||
m_screen->set_palette(m_palette);
|
||||
m_screen->screen_vblank().set(FUNC(galaga_state::vblank_irq));
|
||||
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_xevious);
|
||||
PALETTE(config, m_palette, 128*4+64*8+64*2);
|
||||
m_palette->set_indirect_entries(128+1);
|
||||
m_palette->set_init(FUNC(xevious_state::palette_init_xevious));
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_xevious)
|
||||
MCFG_PALETTE_ADD("palette", 128*4+64*8+64*2)
|
||||
MCFG_PALETTE_INDIRECT_ENTRIES(128+1)
|
||||
MCFG_PALETTE_INIT_OWNER(xevious_state,xevious)
|
||||
MCFG_VIDEO_START_OVERRIDE(xevious_state,xevious)
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
MCFG_DEVICE_ADD("namco", NAMCO, MASTER_CLOCK/6/32)
|
||||
MCFG_NAMCO_AUDIO_VOICES(3)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90 * 10.0 / 16.0)
|
||||
NAMCO(config, m_namco_sound, MASTER_CLOCK/6/32);
|
||||
m_namco_sound->set_voices(3);
|
||||
m_namco_sound->add_route(ALL_OUTPUTS, "mono", 0.90 * 10.0 / 16.0);
|
||||
|
||||
/* discrete circuit on the 54XX outputs */
|
||||
MCFG_DEVICE_ADD("discrete", DISCRETE, galaga_discrete)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90)
|
||||
MACHINE_CONFIG_END
|
||||
DISCRETE(config, "discrete", galaga_discrete).add_route(ALL_OUTPUTS, "mono", 0.90);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(battles_state::battles)
|
||||
void battles_state::battles(machine_config &config)
|
||||
{
|
||||
xevious(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
@ -1867,33 +1869,33 @@ MACHINE_CONFIG_START(battles_state::battles)
|
||||
n06xx.read_callback<0>().set("51xx", FUNC(namco_51xx_device::read));
|
||||
n06xx.write_callback<0>().set("51xx", FUNC(namco_51xx_device::write));
|
||||
|
||||
MCFG_DEVICE_ADD("sub3", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(battles_mem4)
|
||||
Z80(config, m_subcpu3, MASTER_CLOCK/6); /* 3.072 MHz */
|
||||
m_subcpu3->set_addrmap(AS_PROGRAM, &battles_state::battles_mem4);
|
||||
|
||||
m_screen->screen_vblank().append(FUNC(battles_state::interrupt_4));
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD("nmi", battles_state, nmi_generate)
|
||||
TIMER(config, "nmi").configure_generic(FUNC(battles_state::nmi_generate));
|
||||
|
||||
/* sound hardware */
|
||||
config.device_remove("discrete");
|
||||
|
||||
MCFG_DEVICE_ADD("samples", SAMPLES)
|
||||
MCFG_SAMPLES_CHANNELS(1)
|
||||
MCFG_SAMPLES_NAMES(battles_sample_names)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(digdug_state::digdug)
|
||||
SAMPLES(config, m_samples);
|
||||
m_samples->set_channels(1);
|
||||
m_samples->set_samples_names(battles_sample_names);
|
||||
m_samples->add_route(ALL_OUTPUTS, "mono", 0.80);
|
||||
}
|
||||
|
||||
void digdug_state::digdug(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(digdug_map)
|
||||
Z80(config, m_maincpu, MASTER_CLOCK/6); /* 3.072 MHz */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &digdug_state::digdug_map);
|
||||
|
||||
MCFG_DEVICE_ADD("sub", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(digdug_map)
|
||||
Z80(config, m_subcpu, MASTER_CLOCK/6); /* 3.072 MHz */
|
||||
m_subcpu->set_addrmap(AS_PROGRAM, &digdug_state::digdug_map);
|
||||
|
||||
MCFG_DEVICE_ADD("sub2", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(digdug_map)
|
||||
Z80(config, m_subcpu2, MASTER_CLOCK/6); /* 3.072 MHz */
|
||||
m_subcpu2->set_addrmap(AS_PROGRAM, &digdug_state::digdug_map);
|
||||
|
||||
ls259_device &misclatch(LS259(config, "misclatch")); // 8R
|
||||
misclatch.q_out_cb<0>().set(FUNC(galaga_state::irq1_clear_w));
|
||||
@ -1935,42 +1937,43 @@ MACHINE_CONFIG_START(digdug_state::digdug)
|
||||
m_videolatch->q_out_cb<3>().set(FUNC(digdug_state::bg_disable_w));
|
||||
m_videolatch->q_out_cb<7>().set(FUNC(digdug_state::flip_screen_w));
|
||||
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame - an high value to ensure proper */
|
||||
/* synchronization of the CPUs */
|
||||
config.m_minimum_quantum = attotime::from_hz(6000); /* 100 CPU slices per frame - an high value to ensure proper synchronization of the CPUs */
|
||||
|
||||
MCFG_DEVICE_ADD("earom", ER2055)
|
||||
ER2055(config, m_earom);
|
||||
|
||||
WATCHDOG_TIMER(config, "watchdog");
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD(m_screen, RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 288, 264, 0, 224)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(digdug_state, screen_update_digdug)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, galaga_state, vblank_irq))
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_raw(MASTER_CLOCK/3, 384, 0, 288, 264, 0, 224);
|
||||
m_screen->set_screen_update(FUNC(digdug_state::screen_update_digdug));
|
||||
m_screen->set_palette(m_palette);
|
||||
m_screen->screen_vblank().set(FUNC(galaga_state::vblank_irq));
|
||||
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_digdug);
|
||||
PALETTE(config, m_palette, 16*2+64*4+64*4);
|
||||
m_palette->set_indirect_entries(32);
|
||||
m_palette->set_init(FUNC(digdug_state::palette_init_digdug));
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_digdug)
|
||||
MCFG_PALETTE_ADD("palette", 16*2+64*4+64*4)
|
||||
MCFG_PALETTE_INDIRECT_ENTRIES(32)
|
||||
MCFG_PALETTE_INIT_OWNER(digdug_state,digdug)
|
||||
MCFG_VIDEO_START_OVERRIDE(digdug_state,digdug)
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
MCFG_DEVICE_ADD("namco", NAMCO, MASTER_CLOCK/6/32)
|
||||
MCFG_NAMCO_AUDIO_VOICES(3)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90 * 10.0 / 16.0)
|
||||
MACHINE_CONFIG_END
|
||||
NAMCO(config, m_namco_sound, MASTER_CLOCK/6/32);
|
||||
m_namco_sound->set_voices(3);
|
||||
m_namco_sound->add_route(ALL_OUTPUTS, "mono", 0.90 * 10.0 / 16.0);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(digdug_state::dzigzag)
|
||||
void digdug_state::dzigzag(machine_config &config)
|
||||
{
|
||||
digdug(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
|
||||
MCFG_DEVICE_ADD("sub3", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(dzigzag_mem4)
|
||||
MACHINE_CONFIG_END
|
||||
z80_device &sub3(Z80(config, "sub3", MASTER_CLOCK/6)); /* 3.072 MHz */
|
||||
sub3.set_addrmap(AS_PROGRAM, &digdug_state::dzigzag_mem4);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -514,18 +514,19 @@ void gaplus_state::machine_start()
|
||||
m_lamps.resolve();
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(gaplus_base_state::gaplus_base)
|
||||
void gaplus_base_state::gaplus_base(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD(m_maincpu, MC6809E, XTAL(24'576'000) / 16) /* 1.536 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(cpu1_map)
|
||||
MC6809E(config, m_maincpu, XTAL(24'576'000) / 16); /* 1.536 MHz */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &gaplus_base_state::cpu1_map);
|
||||
|
||||
MCFG_DEVICE_ADD("sub", MC6809E, XTAL(24'576'000) / 16) /* 1.536 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(cpu2_map)
|
||||
MC6809E(config, m_subcpu, XTAL(24'576'000) / 16); /* 1.536 MHz */
|
||||
m_subcpu->set_addrmap(AS_PROGRAM, &gaplus_base_state::cpu2_map);
|
||||
|
||||
MCFG_DEVICE_ADD("sub2", MC6809E, XTAL(24'576'000) / 16) /* 1.536 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(cpu3_map)
|
||||
MC6809E(config, m_subcpu2, XTAL(24'576'000) / 16); /* 1.536 MHz */
|
||||
m_subcpu2->set_addrmap(AS_PROGRAM, &gaplus_base_state::cpu3_map);
|
||||
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* a high value to ensure proper synchronization of the CPUs */
|
||||
config.m_minimum_quantum = attotime::from_hz(6000); /* a high value to ensure proper synchronization of the CPUs */
|
||||
|
||||
WATCHDOG_TIMER(config, "watchdog");
|
||||
|
||||
@ -548,23 +549,23 @@ MACHINE_CONFIG_START(gaplus_base_state::gaplus_base)
|
||||
m_screen->screen_vblank().append(FUNC(gaplus_base_state::vblank_irq));
|
||||
m_screen->set_palette(m_palette);
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_gaplus)
|
||||
MCFG_PALETTE_ADD("palette", 64 * 4 + 64 * 8)
|
||||
MCFG_PALETTE_INDIRECT_ENTRIES(256)
|
||||
MCFG_PALETTE_INIT_OWNER(gaplus_base_state, gaplus)
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_gaplus);
|
||||
PALETTE(config, m_palette, 64 * 4 + 64 * 8);
|
||||
m_palette->set_indirect_entries(256);
|
||||
m_palette->set_init(FUNC(gaplus_base_state::palette_init_gaplus));
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
MCFG_DEVICE_ADD("namco", NAMCO_15XX, XTAL(24'576'000) / 1024)
|
||||
MCFG_NAMCO_AUDIO_VOICES(8)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
NAMCO_15XX(config, m_namco_15xx, XTAL(24'576'000) / 1024);
|
||||
m_namco_15xx->set_voices(8);
|
||||
m_namco_15xx->add_route(ALL_OUTPUTS, "mono", 1.0);
|
||||
|
||||
MCFG_DEVICE_ADD("samples", SAMPLES)
|
||||
MCFG_SAMPLES_CHANNELS(1)
|
||||
MCFG_SAMPLES_NAMES(gaplus_sample_names)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
|
||||
MACHINE_CONFIG_END
|
||||
SAMPLES(config, m_samples);
|
||||
m_samples->set_channels(1);
|
||||
m_samples->set_samples_names(gaplus_sample_names);
|
||||
m_samples->add_route(ALL_OUTPUTS, "mono", 0.80);
|
||||
}
|
||||
|
||||
void gaplus_state::gaplus(machine_config &config)
|
||||
{
|
||||
|
@ -186,36 +186,35 @@ void hcastle_state::machine_reset()
|
||||
m_old_pf2 = -1;
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(hcastle_state::hcastle)
|
||||
|
||||
void hcastle_state::hcastle(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", KONAMI, 3000000) /* Derived from 24 MHz clock */
|
||||
MCFG_DEVICE_PROGRAM_MAP(hcastle_map)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", hcastle_state, irq0_line_hold)
|
||||
KONAMI(config, m_maincpu, 3000000); /* Derived from 24 MHz clock */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &hcastle_state::hcastle_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(hcastle_state::irq0_line_hold));
|
||||
|
||||
MCFG_DEVICE_ADD("audiocpu", Z80, 3579545)
|
||||
MCFG_DEVICE_PROGRAM_MAP(sound_map)
|
||||
Z80(config, m_audiocpu, 3579545);
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &hcastle_state::sound_map);
|
||||
|
||||
WATCHDOG_TIMER(config, "watchdog");
|
||||
|
||||
/* video hardware */
|
||||
MCFG_DEVICE_ADD("spriteram", BUFFERED_SPRITERAM8)
|
||||
MCFG_DEVICE_ADD("spriteram2", BUFFERED_SPRITERAM8)
|
||||
BUFFERED_SPRITERAM8(config, m_spriteram);
|
||||
BUFFERED_SPRITERAM8(config, m_spriteram2);
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(59)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* frames per second verified by comparison with real board */)
|
||||
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(hcastle_state, screen_update_hcastle)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_hcastle)
|
||||
MCFG_PALETTE_ADD("palette", 2*8*16*16)
|
||||
MCFG_PALETTE_INDIRECT_ENTRIES(128)
|
||||
MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
|
||||
MCFG_PALETTE_INIT_OWNER(hcastle_state, hcastle)
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_refresh_hz(59);
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); /* frames per second verified by comparison with real board */
|
||||
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(hcastle_state::screen_update_hcastle));
|
||||
screen.set_palette(m_palette);
|
||||
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_hcastle);
|
||||
PALETTE(config, m_palette, 2*8*16*16);
|
||||
m_palette->set_indirect_entries(128);
|
||||
m_palette->set_format(PALETTE_FORMAT_xBBBBBGGGGGRRRRR);
|
||||
m_palette->set_init(FUNC(hcastle_state::palette_init_hcastle));
|
||||
|
||||
K007121(config, m_k007121_1, 0);
|
||||
m_k007121_1->set_palette_tag(m_palette);
|
||||
@ -227,18 +226,17 @@ MACHINE_CONFIG_START(hcastle_state::hcastle)
|
||||
|
||||
GENERIC_LATCH_8(config, "soundlatch");
|
||||
|
||||
MCFG_DEVICE_ADD("k007232", K007232, 3579545)
|
||||
MCFG_K007232_PORT_WRITE_HANDLER(WRITE8(*this, hcastle_state, volume_callback))
|
||||
MCFG_SOUND_ROUTE(0, "mono", 0.44)
|
||||
MCFG_SOUND_ROUTE(1, "mono", 0.50)
|
||||
K007232(config, m_k007232, 3579545);
|
||||
m_k007232->port_write().set(FUNC(hcastle_state::volume_callback));
|
||||
m_k007232->add_route(0, "mono", 0.44);
|
||||
m_k007232->add_route(1, "mono", 0.50);
|
||||
|
||||
MCFG_DEVICE_ADD("ymsnd", YM3812, 3579545)
|
||||
MCFG_YM3812_IRQ_HANDLER(INPUTLINE("audiocpu", INPUT_LINE_NMI)) /* from schematic; NMI handler is just a retn */
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70)
|
||||
ym3812_device &ymsnd(YM3812(config, "ymsnd", 3579545));
|
||||
ymsnd.irq_handler().set_inputline("audiocpu", INPUT_LINE_NMI); /* from schematic; NMI handler is just a retn */
|
||||
ymsnd.add_route(ALL_OUTPUTS, "mono", 0.70);
|
||||
|
||||
MCFG_K051649_ADD("k051649", 3579545/2)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.45)
|
||||
MACHINE_CONFIG_END
|
||||
K051649(config, "k051649", 3579545/2).add_route(ALL_OUTPUTS, "mono", 0.45);
|
||||
}
|
||||
|
||||
/***************************************************************************/
|
||||
|
||||
|
@ -87,7 +87,6 @@ Notes:
|
||||
#include "sound/okim6295.h"
|
||||
#include "sound/k051649.h"
|
||||
|
||||
#include "emupal.h"
|
||||
#include "speaker.h"
|
||||
|
||||
|
||||
@ -252,13 +251,12 @@ TIMER_DEVICE_CALLBACK_MEMBER(hexion_state::scanline)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(hexion_state::hexion)
|
||||
|
||||
void hexion_state::hexion(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", Z80, XTAL(24'000'000)/4) /* Z80B 6 MHz @ 17F, xtal verified, divider not verified */
|
||||
MCFG_DEVICE_PROGRAM_MAP(hexion_map)
|
||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", hexion_state, scanline, "screen", 0, 1)
|
||||
Z80(config, m_maincpu, XTAL(24'000'000)/4); /* Z80B 6 MHz @ 17F, xtal verified, divider not verified */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &hexion_state::hexion_map);
|
||||
TIMER(config, "scantimer").configure_scanline(FUNC(hexion_state::scanline), "screen", 0, 1);
|
||||
WATCHDOG_TIMER(config, "watchdog");
|
||||
|
||||
K053252(config, m_k053252, XTAL(24'000'000)/2); /* K053252, X0-010(?) @8D, xtal verified, divider not verified */
|
||||
@ -267,37 +265,39 @@ MACHINE_CONFIG_START(hexion_state::hexion)
|
||||
m_k053252->int_time().set(FUNC(hexion_state::ccu_int_time_w));
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(64*8, 36*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(hexion_state, screen_update)
|
||||
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(64*8, 36*8);
|
||||
screen.set_visarea(0*8, 64*8-1, 0*8, 32*8-1);
|
||||
screen.set_screen_update(FUNC(hexion_state::screen_update));
|
||||
screen.set_palette(m_palette);
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_hexion)
|
||||
MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", "proms", 256)
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_hexion);
|
||||
PALETTE(config, m_palette, 256);
|
||||
m_palette->set_prom_region("proms");
|
||||
m_palette->set_init("palette", FUNC(palette_device::palette_init_RRRRGGGGBBBB_proms));
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
MCFG_DEVICE_ADD("oki", OKIM6295, 1056000, okim6295_device::PIN7_HIGH) /* MSM6295GS @ 5E, clock frequency & pin 7 not verified */
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
|
||||
/* MSM6295GS @ 5E, clock frequency & pin 7 not verified */
|
||||
OKIM6295(config, "oki", 1056000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.5);
|
||||
|
||||
MCFG_K051649_ADD("k051649", XTAL(24'000'000)/16) /* KONAMI 051649 // 2212P003 // JAPAN 8910EAJ @ 1D, xtal verified, divider not verified */
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
|
||||
MACHINE_CONFIG_END
|
||||
/* KONAMI 051649 // 2212P003 // JAPAN 8910EAJ @ 1D, xtal verified, divider not verified */
|
||||
K051649(config, "k051649", XTAL(24'000'000)/16).add_route(ALL_OUTPUTS, "mono", 0.5);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(hexion_state::hexionb)
|
||||
void hexion_state::hexionb(machine_config &config)
|
||||
{
|
||||
hexion(config);
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_DEVICE_PROGRAM_MAP(hexionb_map)
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &hexion_state::hexionb_map);
|
||||
|
||||
MCFG_DEVICE_REMOVE("k051649")
|
||||
config.device_remove("k051649");
|
||||
|
||||
MCFG_DEVICE_ADD("oki2", OKIM6295, 1056000, okim6295_device::PIN7_LOW) // clock frequency & pin 7 not verified; this clock and pin 7 being low makes the pitch match the non-bootleg version, so is probably correct
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
|
||||
MACHINE_CONFIG_END
|
||||
// clock frequency & pin 7 not verified; this clock and pin 7 being low makes the pitch match the non-bootleg version, so is probably correct
|
||||
OKIM6295(config, "oki2", 1056000, okim6295_device::PIN7_LOW).add_route(ALL_OUTPUTS, "mono", 0.5);
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
@ -279,12 +279,12 @@ WRITE_LINE_MEMBER(jrpacman_state::vblank_irq)
|
||||
m_maincpu->set_input_line(0, HOLD_LINE);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(jrpacman_state::jrpacman)
|
||||
|
||||
void jrpacman_state::jrpacman(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", Z80, 18432000/6) /* 3.072 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(main_map)
|
||||
MCFG_DEVICE_IO_MAP(port_map)
|
||||
Z80(config, m_maincpu, 18432000/6); /* 3.072 MHz */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &jrpacman_state::main_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &jrpacman_state::port_map);
|
||||
|
||||
ls259_device &latch1(LS259(config, "latch1")); // 5P
|
||||
latch1.q_out_cb<0>().set(FUNC(jrpacman_state::irq_mask_w));
|
||||
@ -302,28 +302,29 @@ MACHINE_CONFIG_START(jrpacman_state::jrpacman)
|
||||
WATCHDOG_TIMER(config, m_watchdog);
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60.606060)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
|
||||
MCFG_SCREEN_SIZE(36*8, 28*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(jrpacman_state, screen_update_pacman)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, jrpacman_state, vblank_irq))
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_refresh_hz(60.606060);
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
|
||||
screen.set_size(36*8, 28*8);
|
||||
screen.set_visarea(0*8, 36*8-1, 0*8, 28*8-1);
|
||||
screen.set_screen_update(FUNC(jrpacman_state::screen_update_pacman));
|
||||
screen.set_palette(m_palette);
|
||||
screen.screen_vblank().set(FUNC(jrpacman_state::vblank_irq));
|
||||
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_jrpacman);
|
||||
PALETTE(config, m_palette, 128*4);
|
||||
m_palette->set_indirect_entries(32);
|
||||
m_palette->set_init(FUNC(jrpacman_state::palette_init_pacman));
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_jrpacman)
|
||||
MCFG_PALETTE_ADD("palette", 128*4)
|
||||
MCFG_PALETTE_INDIRECT_ENTRIES(32)
|
||||
MCFG_PALETTE_INIT_OWNER(jrpacman_state,pacman)
|
||||
MCFG_VIDEO_START_OVERRIDE(jrpacman_state,jrpacman)
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
MCFG_DEVICE_ADD("namco", NAMCO, 3072000/32)
|
||||
MCFG_NAMCO_AUDIO_VOICES(3)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
NAMCO(config, m_namco_sound, 3072000/32);
|
||||
m_namco_sound->set_voices(3);
|
||||
m_namco_sound->add_route(ALL_OUTPUTS, "mono", 1.0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -381,25 +381,26 @@ void konmedal_state::machine_reset()
|
||||
m_control = m_control2 = m_shuri_irq = 0;
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(konmedal_state::tsukande)
|
||||
void konmedal_state::tsukande(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", Z80, XTAL(14'318'181)/2) // z84c0008pec 8mhz part, 14.31818Mhz xtal verified on PCB, divisor unknown
|
||||
MCFG_DEVICE_PROGRAM_MAP(medal_main)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", konmedal_state, konmedal_interrupt)
|
||||
Z80(config, m_maincpu, XTAL(14'318'181)/2); // z84c0008pec 8mhz part, 14.31818Mhz xtal verified on PCB, divisor unknown
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &konmedal_state::medal_main);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(konmedal_state::konmedal_interrupt));
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(59.62) /* verified on pcb */
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(64*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(80, 400-1, 16, 240-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(konmedal_state, screen_update_konmedal)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_refresh_hz(59.62); /* verified on pcb */
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
screen.set_size(64*8, 32*8);
|
||||
screen.set_visarea(80, 400-1, 16, 240-1);
|
||||
screen.set_screen_update(FUNC(konmedal_state::screen_update_konmedal));
|
||||
screen.set_palette(m_palette);
|
||||
|
||||
MCFG_PALETTE_ADD("palette", 8192)
|
||||
MCFG_PALETTE_ENABLE_SHADOWS()
|
||||
MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
|
||||
MCFG_PALETTE_INIT_OWNER(konmedal_state, konmedal)
|
||||
PALETTE(config, m_palette, 8192);
|
||||
m_palette->enable_shadows();
|
||||
m_palette->set_format(PALETTE_FORMAT_xBBBBBGGGGGRRRRR);
|
||||
m_palette->set_init(FUNC(konmedal_state::palette_init_konmedal));
|
||||
|
||||
K056832(config, m_k056832, 0);
|
||||
m_k056832->set_tile_callback(FUNC(konmedal_state::tile_callback), this);
|
||||
@ -410,30 +411,31 @@ MACHINE_CONFIG_START(konmedal_state::tsukande)
|
||||
SPEAKER(config, "lspeaker").front_left();
|
||||
SPEAKER(config, "rspeaker").front_right();
|
||||
|
||||
MCFG_DEVICE_ADD("ymz", YMZ280B, XTAL(16'934'400)) // 16.9344MHz xtal verified on PCB
|
||||
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
|
||||
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
YMZ280B(config, m_ymz, XTAL(16'934'400)); // 16.9344MHz xtal verified on PCB
|
||||
m_ymz->add_route(0, "lspeaker", 1.0);
|
||||
m_ymz->add_route(1, "rspeaker", 1.0);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(konmedal_state::ddboy)
|
||||
void konmedal_state::ddboy(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", Z80, XTAL(14'318'181)/2) // z84c0008pec 8mhz part, 14.31818Mhz xtal verified on PCB, divisor unknown
|
||||
MCFG_DEVICE_PROGRAM_MAP(ddboy_main)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", konmedal_state, konmedal_interrupt)
|
||||
Z80(config, m_maincpu, XTAL(14'318'181)/2); // z84c0008pec 8mhz part, 14.31818Mhz xtal verified on PCB, divisor unknown
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &konmedal_state::ddboy_main);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(konmedal_state::konmedal_interrupt));
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(59.62) /* verified on pcb */
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(64*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(80, 400-1, 16, 240-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(konmedal_state, screen_update_konmedal)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_refresh_hz(59.62); /* verified on pcb */
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
screen.set_size(64*8, 32*8);
|
||||
screen.set_visarea(80, 400-1, 16, 240-1);
|
||||
screen.set_screen_update(FUNC(konmedal_state::screen_update_konmedal));
|
||||
screen.set_palette(m_palette);
|
||||
|
||||
MCFG_PALETTE_ADD("palette", 8192)
|
||||
MCFG_PALETTE_ENABLE_SHADOWS()
|
||||
MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
|
||||
MCFG_PALETTE_INIT_OWNER(konmedal_state, konmedal)
|
||||
PALETTE(config, m_palette, 8192);
|
||||
m_palette->enable_shadows();
|
||||
m_palette->set_format(PALETTE_FORMAT_xBBBBBGGGGGRRRRR);
|
||||
m_palette->set_init(FUNC(konmedal_state::palette_init_konmedal));
|
||||
|
||||
K056832(config, m_k056832, 0);
|
||||
m_k056832->set_tile_callback(FUNC(konmedal_state::tile_callback), this);
|
||||
@ -442,13 +444,12 @@ MACHINE_CONFIG_START(konmedal_state::ddboy)
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(14'318'181)/14, okim6295_device::PIN7_HIGH)
|
||||
MCFG_SOUND_ROUTE(0, "mono", 1.0)
|
||||
MCFG_SOUND_ROUTE(1, "mono", 1.0)
|
||||
OKIM6295(config, m_oki, XTAL(14'318'181)/14, okim6295_device::PIN7_HIGH);
|
||||
m_oki->add_route(0, "mono", 1.0);
|
||||
m_oki->add_route(1, "mono", 1.0);
|
||||
|
||||
MCFG_K051649_ADD("k051649", XTAL(14'318'181)/8)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.45)
|
||||
MACHINE_CONFIG_END
|
||||
K051649(config, "k051649", XTAL(14'318'181)/8).add_route(ALL_OUTPUTS, "mono", 0.45);
|
||||
}
|
||||
|
||||
/*
|
||||
Shuriken Boy
|
||||
@ -542,25 +543,26 @@ WRITE8_MEMBER(konmedal_state::shuri_vrom_bank_w)
|
||||
m_vrom_base |= (data << 10);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(konmedal_state::shuriboy)
|
||||
void konmedal_state::shuriboy(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", Z80, XTAL(24'000'000) / 3) // divisor unknown
|
||||
MCFG_DEVICE_PROGRAM_MAP(shuriboy_main)
|
||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", konmedal_state, scanline, "screen", 0, 1)
|
||||
Z80(config, m_maincpu, XTAL(24'000'000) / 3); // divisor unknown
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &konmedal_state::shuriboy_main);
|
||||
TIMER(config, "scantimer").configure_scanline(FUNC(konmedal_state::scanline), "screen", 0, 1);
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER) // everything not verified, just a placeholder
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(30))
|
||||
MCFG_SCREEN_SIZE(64*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(80, 400-1, 16, 240-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(konmedal_state, screen_update_shuriboy)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); // everything not verified, just a placeholder
|
||||
screen.set_refresh_hz(60);
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(30));
|
||||
screen.set_size(64*8, 32*8);
|
||||
screen.set_visarea(80, 400-1, 16, 240-1);
|
||||
screen.set_screen_update(FUNC(konmedal_state::screen_update_shuriboy));
|
||||
screen.set_palette(m_palette);
|
||||
|
||||
MCFG_PALETTE_ADD("palette", 8192) // not verified
|
||||
MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
|
||||
MCFG_PALETTE_ENABLE_SHADOWS()
|
||||
MCFG_PALETTE_ENABLE_HILIGHTS()
|
||||
PALETTE(config, m_palette, 8192); // not verified
|
||||
m_palette->set_format(PALETTE_FORMAT_xBBBBBGGGGGRRRRR);
|
||||
m_palette->enable_shadows();
|
||||
m_palette->enable_hilights();
|
||||
|
||||
K052109(config, m_k052109, 0);
|
||||
m_k052109->set_palette(m_palette);
|
||||
@ -571,11 +573,10 @@ MACHINE_CONFIG_START(konmedal_state::shuriboy)
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
MCFG_K051649_ADD("k051649", XTAL(24'000'000) / 12) // divisor unknown
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.45)
|
||||
K051649(config, "k051649", XTAL(24'000'000) / 12).add_route(ALL_OUTPUTS, "mono", 0.45); // divisor unknown
|
||||
|
||||
// upd7759c
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
ROM_START( tsukande )
|
||||
ROM_REGION( 0x20000, "maincpu", 0 ) /* main program */
|
||||
|
@ -1315,14 +1315,14 @@ void mappy_state::machine_start()
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(mappy_state::superpac_common)
|
||||
|
||||
void mappy_state::superpac_common(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", MC6809E, PIXEL_CLOCK/4) /* 1.536 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(superpac_cpu1_map)
|
||||
MC6809E(config, m_maincpu, PIXEL_CLOCK/4); /* 1.536 MHz */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &mappy_state::superpac_cpu1_map);
|
||||
|
||||
MCFG_DEVICE_ADD("sub", MC6809E, PIXEL_CLOCK/4) /* 1.536 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(superpac_cpu2_map)
|
||||
MC6809E(config, m_subcpu, PIXEL_CLOCK/4); /* 1.536 MHz */
|
||||
m_subcpu->set_addrmap(AS_PROGRAM, &mappy_state::superpac_cpu2_map);
|
||||
|
||||
ls259_device &mainlatch(LS259(config, "mainlatch")); // 2M on CPU board
|
||||
mainlatch.q_out_cb<0>().set(FUNC(mappy_state::int_on_2_w));
|
||||
@ -1333,34 +1333,34 @@ MACHINE_CONFIG_START(mappy_state::superpac_common)
|
||||
mainlatch.q_out_cb<5>().set_inputline(m_subcpu, INPUT_LINE_RESET).invert();
|
||||
|
||||
WATCHDOG_TIMER(config, "watchdog").set_vblank_count("screen", 8);
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) // 100 CPU slices per frame - an high value to ensure proper synchronization of the CPUs
|
||||
|
||||
config.m_minimum_quantum = attotime::from_hz(6000); // 100 CPU slices per frame - an high value to ensure proper synchronization of the CPUs
|
||||
|
||||
ls157_device &dipmux(LS157(config, "dipmux"));
|
||||
dipmux.a_in_callback().set_ioport("DSW2");
|
||||
dipmux.b_in_callback().set_ioport("DSW2").rshift(4);
|
||||
|
||||
/* video hardware */
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_superpac)
|
||||
MCFG_PALETTE_ADD("palette", 64*4+64*4)
|
||||
MCFG_PALETTE_INDIRECT_ENTRIES(32)
|
||||
MCFG_PALETTE_INIT_OWNER(mappy_state,superpac)
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_superpac);
|
||||
PALETTE(config, m_palette, 64*4+64*4);
|
||||
m_palette->set_indirect_entries(32);
|
||||
m_palette->set_init(FUNC(mappy_state::palette_init_superpac));
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(mappy_state, screen_update_superpac)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, mappy_state, vblank_irq)) // cause IRQs on both CPUs; also update the custom I/O chips
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART);
|
||||
m_screen->set_screen_update(FUNC(mappy_state::screen_update_superpac));
|
||||
m_screen->set_palette(m_palette);
|
||||
m_screen->screen_vblank().set(FUNC(mappy_state::vblank_irq)); // cause IRQs on both CPUs; also update the custom I/O chips
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(mappy_state,superpac)
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "speaker").front_center();
|
||||
|
||||
MCFG_DEVICE_ADD("namco", NAMCO_15XX, 18432000/768)
|
||||
MCFG_NAMCO_AUDIO_VOICES(8)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
NAMCO_15XX(config, m_namco_15xx, 18432000/768);
|
||||
m_namco_15xx->set_voices(8);
|
||||
m_namco_15xx->add_route(ALL_OUTPUTS, "speaker", 1.0);
|
||||
}
|
||||
|
||||
void mappy_state::superpac(machine_config &config)
|
||||
{
|
||||
@ -1399,9 +1399,8 @@ void mappy_state::pacnpal(machine_config &config)
|
||||
m_namcoio[1]->out_callback<0>().set("dipmux", FUNC(ls157_device::select_w)).bit(0);
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(mappy_state::grobda)
|
||||
|
||||
void mappy_state::grobda(machine_config &config)
|
||||
{
|
||||
superpac_common(config);
|
||||
|
||||
NAMCO_58XX(config, m_namcoio[0], 0);
|
||||
@ -1418,23 +1417,24 @@ MACHINE_CONFIG_START(mappy_state::grobda)
|
||||
m_namcoio[1]->out_callback<0>().set("dipmux", FUNC(ls157_device::select_w)).bit(0);
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_DEVICE_ADD("dac", DAC_4BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.275) // alternate route to 15XX-related 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
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(mappy_state::phozon)
|
||||
DAC_4BIT_BINARY_WEIGHTED(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.275); // alternate route to 15XX-related 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);
|
||||
}
|
||||
|
||||
void mappy_state::phozon(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", MC6809E, PIXEL_CLOCK/4) /* MAIN CPU */
|
||||
MCFG_DEVICE_PROGRAM_MAP(phozon_cpu1_map)
|
||||
MC6809E(config, m_maincpu, PIXEL_CLOCK/4); /* MAIN CPU */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &mappy_state::phozon_cpu1_map);
|
||||
|
||||
MCFG_DEVICE_ADD("sub", MC6809E, PIXEL_CLOCK/4) /* SOUND CPU */
|
||||
MCFG_DEVICE_PROGRAM_MAP(phozon_cpu2_map)
|
||||
MC6809E(config, m_subcpu, PIXEL_CLOCK/4); /* SOUND CPU */
|
||||
m_subcpu->set_addrmap(AS_PROGRAM, &mappy_state::phozon_cpu2_map);
|
||||
|
||||
MCFG_DEVICE_ADD("sub2", MC6809E, PIXEL_CLOCK/4) /* SUB CPU */
|
||||
MCFG_DEVICE_PROGRAM_MAP(phozon_cpu3_map)
|
||||
MC6809E(config, m_subcpu2, PIXEL_CLOCK/4); /* SUB CPU */
|
||||
m_subcpu2->set_addrmap(AS_PROGRAM, &mappy_state::phozon_cpu3_map);
|
||||
|
||||
ls259_device &mainlatch(LS259(config, "mainlatch")); // 5C
|
||||
mainlatch.q_out_cb<0>().set(FUNC(mappy_state::int_on_2_w));
|
||||
@ -1447,7 +1447,8 @@ MACHINE_CONFIG_START(mappy_state::phozon)
|
||||
mainlatch.q_out_cb<6>().set_inputline(m_subcpu2, INPUT_LINE_RESET).invert();
|
||||
|
||||
WATCHDOG_TIMER(config, "watchdog").set_vblank_count("screen", 8);
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) // 100 CPU slices per frame - an high value to ensure proper synchronization of the CPUs
|
||||
|
||||
config.m_minimum_quantum = attotime::from_hz(6000); // 100 CPU slices per frame - an high value to ensure proper synchronization of the CPUs
|
||||
|
||||
NAMCO_58XX(config, m_namcoio[0], 0);
|
||||
m_namcoio[0]->in_callback<0>().set_ioport("COINS");
|
||||
@ -1467,36 +1468,35 @@ MACHINE_CONFIG_START(mappy_state::phozon)
|
||||
dipmux.b_in_callback().set_ioport("DSW2").rshift(4);
|
||||
|
||||
/* video hardware */
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_phozon)
|
||||
MCFG_PALETTE_ADD("palette", 64*4+64*4)
|
||||
MCFG_PALETTE_INDIRECT_ENTRIES(32)
|
||||
MCFG_PALETTE_INIT_OWNER(mappy_state,phozon)
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_phozon);
|
||||
PALETTE(config, m_palette, 64*4+64*4);
|
||||
m_palette->set_indirect_entries(32);
|
||||
m_palette->set_init(FUNC(mappy_state::palette_init_phozon));
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(mappy_state, screen_update_phozon)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, mappy_state, vblank_irq)) // cause IRQs on all three CPUs; also update the custom I/O chips
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART);
|
||||
m_screen->set_screen_update(FUNC(mappy_state::screen_update_phozon));
|
||||
m_screen->set_palette(m_palette);
|
||||
m_screen->screen_vblank().set(FUNC(mappy_state::vblank_irq)); // cause IRQs on all three CPUs; also update the custom I/O chips
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(mappy_state,phozon)
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "speaker").front_center();
|
||||
|
||||
MCFG_DEVICE_ADD("namco", NAMCO_15XX, 18432000/768)
|
||||
MCFG_NAMCO_AUDIO_VOICES(8)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(mappy_state::mappy_common)
|
||||
NAMCO_15XX(config, m_namco_15xx, 18432000/768);
|
||||
m_namco_15xx->set_voices(8);
|
||||
m_namco_15xx->add_route(ALL_OUTPUTS, "speaker", 1.0);
|
||||
}
|
||||
|
||||
void mappy_state::mappy_common(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", MC6809E, PIXEL_CLOCK/4) /* 1.536 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(mappy_cpu1_map)
|
||||
MC6809E(config, m_maincpu, PIXEL_CLOCK/4); /* 1.536 MHz */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &mappy_state::mappy_cpu1_map);
|
||||
|
||||
MCFG_DEVICE_ADD("sub", MC6809E, PIXEL_CLOCK/4) /* 1.536 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(mappy_cpu2_map)
|
||||
MC6809E(config, m_subcpu, PIXEL_CLOCK/4); /* 1.536 MHz */
|
||||
m_subcpu->set_addrmap(AS_PROGRAM, &mappy_state::mappy_cpu2_map);
|
||||
|
||||
ls259_device &mainlatch(LS259(config, "mainlatch")); // 2M on CPU board
|
||||
mainlatch.q_out_cb<0>().set(FUNC(mappy_state::int_on_2_w));
|
||||
@ -1508,33 +1508,34 @@ MACHINE_CONFIG_START(mappy_state::mappy_common)
|
||||
mainlatch.q_out_cb<5>().set_inputline(m_subcpu, INPUT_LINE_RESET).invert();
|
||||
|
||||
WATCHDOG_TIMER(config, "watchdog").set_vblank_count("screen", 8);
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) // 100 CPU slices per frame - an high value to ensure proper synchronization of the CPUs
|
||||
|
||||
config.m_minimum_quantum = attotime::from_hz(6000); // 100 CPU slices per frame - an high value to ensure proper synchronization of the CPUs
|
||||
|
||||
ls157_device &dipmux(LS157(config, "dipmux"));
|
||||
dipmux.a_in_callback().set_ioport("DSW2");
|
||||
dipmux.b_in_callback().set_ioport("DSW2").rshift(4);
|
||||
|
||||
/* video hardware */
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_mappy)
|
||||
MCFG_PALETTE_ADD("palette", 64*4+16*16)
|
||||
MCFG_PALETTE_INDIRECT_ENTRIES(32)
|
||||
MCFG_PALETTE_INIT_OWNER(mappy_state,mappy)
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_mappy);
|
||||
PALETTE(config, m_palette, 64*4+16*16);
|
||||
m_palette->set_indirect_entries(32);
|
||||
m_palette->set_init(FUNC(mappy_state::palette_init_mappy));
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(mappy_state, screen_update_mappy)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, mappy_state, vblank_irq)) // cause IRQs on both CPUs; also update the custom I/O chips
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART);
|
||||
m_screen->set_screen_update(FUNC(mappy_state::screen_update_mappy));
|
||||
m_screen->set_palette(m_palette);
|
||||
m_screen->screen_vblank().set(FUNC(mappy_state::vblank_irq)); // cause IRQs on both CPUs; also update the custom I/O chips
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(mappy_state,mappy)
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "speaker").front_center();
|
||||
|
||||
MCFG_DEVICE_ADD("namco", NAMCO_15XX, 18432000/768)
|
||||
MCFG_NAMCO_AUDIO_VOICES(8)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
NAMCO_15XX(config, m_namco_15xx, 18432000/768);
|
||||
m_namco_15xx->set_voices(8);
|
||||
m_namco_15xx->add_route(ALL_OUTPUTS, "speaker", 1.0);
|
||||
}
|
||||
|
||||
void mappy_state::mappy(machine_config &config)
|
||||
{
|
||||
@ -1574,14 +1575,14 @@ void mappy_state::digdug2(machine_config &config)
|
||||
m_namcoio[1]->out_callback<0>().set("dipmux", FUNC(ls157_device::select_w)).bit(0);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(mappy_state::todruaga)
|
||||
void mappy_state::todruaga(machine_config &config)
|
||||
{
|
||||
digdug2(config);
|
||||
|
||||
/* video hardware */
|
||||
MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_todruaga)
|
||||
MCFG_PALETTE_MODIFY("palette")
|
||||
MCFG_PALETTE_ENTRIES(64*4+64*16)
|
||||
MACHINE_CONFIG_END
|
||||
m_gfxdecode->set_info(gfx_todruaga);
|
||||
m_palette->set_entries(64*4+64*16);
|
||||
}
|
||||
|
||||
void mappy_state::motos(machine_config &config)
|
||||
{
|
||||
|
@ -178,7 +178,6 @@ TODO:
|
||||
#include "includes/namcos86.h"
|
||||
|
||||
#include "cpu/m6809/m6809.h"
|
||||
#include "cpu/m6800/m6801.h"
|
||||
#include "sound/ym2151.h"
|
||||
#include "screen.h"
|
||||
#include "speaker.h"
|
||||
@ -1047,111 +1046,97 @@ GFXDECODE_END
|
||||
|
||||
/*******************************************************************/
|
||||
|
||||
MACHINE_CONFIG_START(namcos86_state::hopmappy)
|
||||
|
||||
void namcos86_state::hopmappy(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("cpu1", MC6809E, XTAL(49'152'000)/32)
|
||||
MCFG_DEVICE_PROGRAM_MAP(cpu1_map)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", namcos86_state, irq0_line_assert)
|
||||
MC6809E(config, m_cpu1, XTAL(49'152'000)/32);
|
||||
m_cpu1->set_addrmap(AS_PROGRAM, &namcos86_state::cpu1_map);
|
||||
m_cpu1->set_vblank_int("screen", FUNC(namcos86_state::irq0_line_assert));
|
||||
|
||||
MCFG_DEVICE_ADD("cpu2", MC6809E, XTAL(49'152'000)/32)
|
||||
MCFG_DEVICE_PROGRAM_MAP(hopmappy_cpu2_map)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", namcos86_state, irq0_line_assert)
|
||||
MC6809E(config, m_cpu2, XTAL(49'152'000)/32);
|
||||
m_cpu2->set_addrmap(AS_PROGRAM, &namcos86_state::hopmappy_cpu2_map);
|
||||
m_cpu2->set_vblank_int("screen", FUNC(namcos86_state::irq0_line_assert));
|
||||
|
||||
hd63701_cpu_device &mcu(HD63701(config, "mcu", XTAL(49'152'000)/8)); /* or compatible 6808 with extra instructions */
|
||||
mcu.set_addrmap(AS_PROGRAM, &namcos86_state::hopmappy_mcu_map);
|
||||
mcu.in_p1_cb().set_ioport("IN2");
|
||||
mcu.in_p2_cb().set_constant(0xff); /* leds won't work otherwise */
|
||||
mcu.out_p1_cb().set(FUNC(namcos86_state::coin_w));
|
||||
mcu.out_p2_cb().set(FUNC(namcos86_state::led_w));
|
||||
mcu.set_vblank_int("screen", FUNC(namcos86_state::irq0_line_hold)); /* ??? */
|
||||
HD63701(config, m_mcu, XTAL(49'152'000)/8); /* or compatible 6808 with extra instructions */
|
||||
m_mcu->set_addrmap(AS_PROGRAM, &namcos86_state::hopmappy_mcu_map);
|
||||
m_mcu->in_p1_cb().set_ioport("IN2");
|
||||
m_mcu->in_p2_cb().set_constant(0xff); /* leds won't work otherwise */
|
||||
m_mcu->out_p1_cb().set(FUNC(namcos86_state::coin_w));
|
||||
m_mcu->out_p2_cb().set(FUNC(namcos86_state::led_w));
|
||||
m_mcu->set_vblank_int("screen", FUNC(namcos86_state::irq0_line_hold)); /* ??? */
|
||||
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(48000)) /* heavy interleaving needed to avoid hangs in rthunder */
|
||||
config.m_minimum_quantum = attotime::from_hz(48000); /* heavy interleaving needed to avoid hangs in rthunder */
|
||||
|
||||
WATCHDOG_TIMER(config, m_watchdog);
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(XTAL(49'152'000)/8, 384, 3+8*8, 3+44*8, 264, 2*8, 30*8)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(namcos86_state, screen_update)
|
||||
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, namcos86_state, screen_vblank))
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_raw(XTAL(49'152'000)/8, 384, 3+8*8, 3+44*8, 264, 2*8, 30*8);
|
||||
screen.set_screen_update(FUNC(namcos86_state::screen_update));
|
||||
screen.screen_vblank().set(FUNC(namcos86_state::screen_vblank));
|
||||
screen.set_palette(m_palette);
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_namcos86)
|
||||
MCFG_PALETTE_ADD("palette", 4096)
|
||||
MCFG_PALETTE_INIT_OWNER(namcos86_state, namcos86)
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_namcos86);
|
||||
PALETTE(config, m_palette, 4096);
|
||||
m_palette->set_init(FUNC(namcos86_state::palette_init_namcos86));
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
YM2151(config, "ymsnd", 3579580).add_route(0, "mono", 0.0).add_route(1, "mono", 0.60); /* only right channel is connected */
|
||||
|
||||
MCFG_DEVICE_ADD("namco", NAMCO_CUS30, XTAL(49'152'000)/2048)
|
||||
MCFG_NAMCO_AUDIO_VOICES(8)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
|
||||
MACHINE_CONFIG_END
|
||||
NAMCO_CUS30(config, m_cus30, XTAL(49'152'000)/2048);
|
||||
m_cus30->set_voices(8);
|
||||
m_cus30->add_route(ALL_OUTPUTS, "mono", 0.50);
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(namcos86_state::roishtar)
|
||||
void namcos86_state::roishtar(machine_config &config)
|
||||
{
|
||||
hopmappy(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_MODIFY("cpu2")
|
||||
MCFG_DEVICE_PROGRAM_MAP(roishtar_cpu2_map)
|
||||
m_cpu2->set_addrmap(AS_PROGRAM, &namcos86_state::roishtar_cpu2_map);
|
||||
m_mcu->set_addrmap(AS_PROGRAM, &namcos86_state::roishtar_mcu_map);
|
||||
}
|
||||
|
||||
MCFG_DEVICE_MODIFY("mcu")
|
||||
MCFG_DEVICE_PROGRAM_MAP(roishtar_mcu_map)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(namcos86_state::genpeitd)
|
||||
void namcos86_state::genpeitd(machine_config &config)
|
||||
{
|
||||
hopmappy(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_MODIFY("cpu2")
|
||||
MCFG_DEVICE_PROGRAM_MAP(genpeitd_cpu2_map)
|
||||
|
||||
MCFG_DEVICE_MODIFY("mcu")
|
||||
MCFG_DEVICE_PROGRAM_MAP(genpeitd_mcu_map)
|
||||
m_cpu2->set_addrmap(AS_PROGRAM, &namcos86_state::genpeitd_cpu2_map);
|
||||
m_mcu->set_addrmap(AS_PROGRAM, &namcos86_state::genpeitd_mcu_map);
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_NAMCO_63701X_ADD("namco2", 6000000)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
NAMCO_63701X(config, m_63701x, 6000000);
|
||||
m_63701x->add_route(ALL_OUTPUTS, "mono", 1.0);
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(namcos86_state::rthunder)
|
||||
void namcos86_state::rthunder(machine_config &config)
|
||||
{
|
||||
hopmappy(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_MODIFY("cpu2")
|
||||
MCFG_DEVICE_PROGRAM_MAP(rthunder_cpu2_map)
|
||||
|
||||
MCFG_DEVICE_MODIFY("mcu")
|
||||
MCFG_DEVICE_PROGRAM_MAP(rthunder_mcu_map)
|
||||
m_cpu2->set_addrmap(AS_PROGRAM, &namcos86_state::rthunder_cpu2_map);
|
||||
m_mcu->set_addrmap(AS_PROGRAM, &namcos86_state::rthunder_mcu_map);
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_NAMCO_63701X_ADD("namco2", 6000000)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
NAMCO_63701X(config, m_63701x, 6000000);
|
||||
m_63701x->add_route(ALL_OUTPUTS, "mono", 1.0);
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(namcos86_state::wndrmomo)
|
||||
void namcos86_state::wndrmomo(machine_config &config)
|
||||
{
|
||||
hopmappy(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_MODIFY("cpu2")
|
||||
MCFG_DEVICE_PROGRAM_MAP(wndrmomo_cpu2_map)
|
||||
|
||||
MCFG_DEVICE_MODIFY("mcu")
|
||||
MCFG_DEVICE_PROGRAM_MAP(wndrmomo_mcu_map)
|
||||
m_cpu2->set_addrmap(AS_PROGRAM, &namcos86_state::wndrmomo_cpu2_map);
|
||||
m_mcu->set_addrmap(AS_PROGRAM, &namcos86_state::wndrmomo_mcu_map);
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_NAMCO_63701X_ADD("namco2", 6000000)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
NAMCO_63701X(config, m_63701x, 6000000);
|
||||
m_63701x->add_route(ALL_OUTPUTS, "mono", 1.0);
|
||||
}
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
|
@ -413,11 +413,11 @@ WRITE_LINE_MEMBER(pacland_state::vblank_irq)
|
||||
m_mcu->set_input_line(0, ASSERT_LINE);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(pacland_state::pacland)
|
||||
|
||||
void pacland_state::pacland(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", MC6809E, XTAL(49'152'000)/32) /* 1.536 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(main_map)
|
||||
MC6809E(config, m_maincpu, XTAL(49'152'000)/32); /* 1.536 MHz */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &pacland_state::main_map);
|
||||
|
||||
HD63701(config, m_mcu, XTAL(49'152'000)/8); /* 6.144 MHz? */
|
||||
m_mcu->set_addrmap(AS_PROGRAM, &pacland_state::mcu_map);
|
||||
@ -426,29 +426,29 @@ MACHINE_CONFIG_START(pacland_state::pacland)
|
||||
m_mcu->in_p2_cb().set_constant(0xff); /* leds won't work otherwise */
|
||||
m_mcu->out_p2_cb().set(FUNC(pacland_state::led_w));
|
||||
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* we need heavy synching between the MCU and the CPU */
|
||||
config.m_minimum_quantum = attotime::from_hz(6000); /* we need heavy synching between the MCU and the CPU */
|
||||
|
||||
WATCHDOG_TIMER(config, "watchdog");
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(XTAL(49'152'000)/8, 384, 3*8, 39*8, 264, 2*8, 30*8)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(pacland_state, screen_update)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, pacland_state, vblank_irq))
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_raw(XTAL(49'152'000)/8, 384, 3*8, 39*8, 264, 2*8, 30*8);
|
||||
m_screen->set_screen_update(FUNC(pacland_state::screen_update));
|
||||
m_screen->set_palette(m_palette);
|
||||
m_screen->screen_vblank().set(FUNC(pacland_state::vblank_irq));
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_pacland)
|
||||
MCFG_PALETTE_ADD("palette", 256*4+256*4+64*16)
|
||||
MCFG_PALETTE_INDIRECT_ENTRIES(256)
|
||||
MCFG_PALETTE_INIT_OWNER(pacland_state, pacland)
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_pacland);
|
||||
PALETTE(config, m_palette, 256*4+256*4+64*16);
|
||||
m_palette->set_indirect_entries(256);
|
||||
m_palette->set_init(FUNC(pacland_state::palette_init_pacland));
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
MCFG_DEVICE_ADD("namco", NAMCO_CUS30, XTAL(49'152'000)/2/1024)
|
||||
MCFG_NAMCO_AUDIO_VOICES(8)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
NAMCO_CUS30(config, m_cus30, XTAL(49'152'000)/2/1024);
|
||||
m_cus30->set_voices(8);
|
||||
m_cus30->add_route(ALL_OUTPUTS, "mono", 1.0);
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
@ -383,13 +383,12 @@ WRITE_LINE_MEMBER(pengo_state::vblank_irq)
|
||||
m_maincpu->set_input_line(0, HOLD_LINE);
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(pengo_state::pengo)
|
||||
|
||||
void pengo_state::pengo(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK/6)
|
||||
MCFG_DEVICE_PROGRAM_MAP(pengo_map)
|
||||
MCFG_DEVICE_OPCODES_MAP(decrypted_opcodes_map)
|
||||
Z80(config, m_maincpu, MASTER_CLOCK/6);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &pengo_state::pengo_map);
|
||||
m_maincpu->set_addrmap(AS_OPCODES, &pengo_state::decrypted_opcodes_map);
|
||||
|
||||
LS259(config, m_latch); // U27
|
||||
m_latch->q_out_cb<0>().set(FUNC(pengo_state::irq_mask_w));
|
||||
@ -404,33 +403,32 @@ MACHINE_CONFIG_START(pengo_state::pengo)
|
||||
WATCHDOG_TIMER(config, m_watchdog);
|
||||
|
||||
/* video hardware */
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_pengo)
|
||||
MCFG_PALETTE_ADD("palette", 128*4)
|
||||
MCFG_PALETTE_INDIRECT_ENTRIES(32)
|
||||
MCFG_PALETTE_INIT_OWNER(pengo_state,pacman)
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_pengo);
|
||||
PALETTE(config, m_palette, 128*4);
|
||||
m_palette->set_indirect_entries(32);
|
||||
m_palette->set_init(FUNC(pengo_state::palette_init_pacman));
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(pengo_state, screen_update_pacman)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, pengo_state, vblank_irq))
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART);
|
||||
screen.set_screen_update(FUNC(pengo_state::screen_update_pacman));
|
||||
screen.set_palette(m_palette);
|
||||
screen.screen_vblank().set(FUNC(pengo_state::vblank_irq));
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(pengo_state,pengo)
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
MCFG_DEVICE_ADD("namco", NAMCO, MASTER_CLOCK/6/32)
|
||||
MCFG_NAMCO_AUDIO_VOICES(3)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
NAMCO(config, m_namco_sound, MASTER_CLOCK/6/32);
|
||||
m_namco_sound->set_voices(3);
|
||||
m_namco_sound->add_route(ALL_OUTPUTS, "mono", 1.0);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(pengo_state::pengou)
|
||||
void pengo_state::pengou(machine_config &config)
|
||||
{
|
||||
pengo(config);
|
||||
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_DEVICE_REMOVE_ADDRESS_MAP(AS_OPCODES)
|
||||
MACHINE_CONFIG_END
|
||||
m_maincpu->set_addrmap(AS_OPCODES, address_map_constructor());
|
||||
}
|
||||
|
||||
void pengo_state::pengoe(machine_config &config)
|
||||
{
|
||||
@ -441,20 +439,20 @@ void pengo_state::pengoe(machine_config &config)
|
||||
maincpu.set_decrypted_tag(":decrypted_opcodes");
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(pengo_state::jrpacmbl)
|
||||
void pengo_state::jrpacmbl(machine_config &config)
|
||||
{
|
||||
pengo(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_DEVICE_PROGRAM_MAP(jrpacmbl_map)
|
||||
MCFG_DEVICE_REMOVE_ADDRESS_MAP(AS_OPCODES)
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &pengo_state::jrpacmbl_map);
|
||||
m_maincpu->set_addrmap(AS_OPCODES, address_map_constructor());
|
||||
|
||||
m_latch->q_out_cb<4>().set(FUNC(pengo_state::jrpacman_bgpriority_w));
|
||||
m_latch->q_out_cb<5>().set(FUNC(pengo_state::jrpacman_spritebank_w));
|
||||
m_latch->q_out_cb<7>().set(FUNC(pengo_state::jrpacman_charbank_w));
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(pengo_state,jrpacman)
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -849,18 +849,18 @@ GFXDECODE_END
|
||||
* Machine driver
|
||||
*********************************************************************/
|
||||
|
||||
MACHINE_CONFIG_START(polepos_state::polepos)
|
||||
|
||||
void polepos_state::polepos(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD(m_maincpu, Z80, MASTER_CLOCK/8) /* 3.072 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(z80_map)
|
||||
MCFG_DEVICE_IO_MAP(z80_io)
|
||||
Z80(config, m_maincpu, MASTER_CLOCK/8); /* 3.072 MHz */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &polepos_state::z80_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &polepos_state::z80_io);
|
||||
|
||||
MCFG_DEVICE_ADD(m_subcpu, Z8002, MASTER_CLOCK/8) /* 3.072 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(z8002_map_1)
|
||||
Z8002(config, m_subcpu, MASTER_CLOCK/8); /* 3.072 MHz */
|
||||
m_subcpu->set_addrmap(AS_PROGRAM, &polepos_state::z8002_map_1);
|
||||
|
||||
MCFG_DEVICE_ADD(m_subcpu2, Z8002, MASTER_CLOCK/8) /* 3.072 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(z8002_map_2)
|
||||
Z8002(config, m_subcpu2, MASTER_CLOCK/8); /* 3.072 MHz */
|
||||
m_subcpu2->set_addrmap(AS_PROGRAM, &polepos_state::z8002_map_2);
|
||||
|
||||
namco_51xx_device &n51xx(NAMCO_51XX(config, "51xx", MASTER_CLOCK/8/2)); /* 1.536 MHz */
|
||||
n51xx.set_screen_tag(m_screen);
|
||||
@ -899,11 +899,11 @@ MACHINE_CONFIG_START(polepos_state::polepos)
|
||||
|
||||
WATCHDOG_TIMER(config, "watchdog").set_vblank_count(m_screen, 16); // 128V clocks the same as VBLANK
|
||||
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* some interleaving */
|
||||
config.m_minimum_quantum = attotime::from_hz(6000); /* some interleaving */
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", polepos_state, scanline, "screen", 0, 1)
|
||||
TIMER(config, "scantimer").configure_scanline(FUNC(polepos_state::scanline), "screen", 0, 1);
|
||||
|
||||
LS259(config, m_latch); // at 8E on polepos
|
||||
m_latch->q_out_cb<0>().set_inputline(m_maincpu, 0, CLEAR_LINE).invert();
|
||||
@ -917,39 +917,38 @@ MACHINE_CONFIG_START(polepos_state::polepos)
|
||||
m_latch->q_out_cb<7>().set(FUNC(polepos_state::chacl_w));
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD(m_screen, RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 384, 0, 256, 264, 16, 224+16)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(polepos_state, screen_update)
|
||||
MCFG_SCREEN_PALETTE(m_palette)
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_raw(MASTER_CLOCK/4, 384, 0, 256, 264, 16, 224+16);
|
||||
m_screen->set_screen_update(FUNC(polepos_state::screen_update));
|
||||
m_screen->set_palette(m_palette);
|
||||
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_polepos);
|
||||
PALETTE(config, m_palette, 0x0f00);
|
||||
m_palette->set_indirect_entries(128);
|
||||
m_palette->set_init(FUNC(polepos_state::palette_init_polepos));
|
||||
|
||||
MCFG_DEVICE_ADD(m_gfxdecode, GFXDECODE, m_palette, gfx_polepos)
|
||||
MCFG_PALETTE_ADD(m_palette, 0x0f00)
|
||||
MCFG_PALETTE_INDIRECT_ENTRIES(128)
|
||||
config.set_default_layout(layout_polepos);
|
||||
|
||||
MCFG_PALETTE_INIT_OWNER(polepos_state,polepos)
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "lspeaker").front_left();
|
||||
SPEAKER(config, "rspeaker").front_right();
|
||||
|
||||
MCFG_DEVICE_ADD(m_namco_sound, NAMCO, MASTER_CLOCK/512)
|
||||
MCFG_NAMCO_AUDIO_VOICES(8)
|
||||
MCFG_NAMCO_AUDIO_STEREO(1)
|
||||
MCFG_SOUND_ROUTE(0, "lspeaker", 0.80)
|
||||
MCFG_SOUND_ROUTE(1, "rspeaker", 0.80)
|
||||
NAMCO(config, m_namco_sound, MASTER_CLOCK/512);
|
||||
m_namco_sound->set_voices(8);
|
||||
m_namco_sound->set_stereo(true);
|
||||
m_namco_sound->add_route(0, "lspeaker", 0.80);
|
||||
m_namco_sound->add_route(1, "rspeaker", 0.80);
|
||||
|
||||
/* discrete circuit on the 54XX outputs */
|
||||
MCFG_DEVICE_ADD("discrete", DISCRETE, polepos_discrete)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.90)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.90)
|
||||
discrete_sound_device &discrete(DISCRETE(config, "discrete", polepos_discrete));
|
||||
discrete.add_route(ALL_OUTPUTS, "lspeaker", 0.90);
|
||||
discrete.add_route(ALL_OUTPUTS, "rspeaker", 0.90);
|
||||
|
||||
/* engine sound */
|
||||
MCFG_DEVICE_ADD("polepos", POLEPOS_SOUND, MASTER_CLOCK/8)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.90 * 0.77)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.90 * 0.77)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
polepos_sound_device &polepos(POLEPOS_SOUND(config, "polepos", MASTER_CLOCK/8));
|
||||
polepos.add_route(ALL_OUTPUTS, "lspeaker", 0.90 * 0.77);
|
||||
polepos.add_route(ALL_OUTPUTS, "rspeaker", 0.90 * 0.77);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(polepos_state::bootleg_soundlatch_w)
|
||||
{
|
||||
@ -982,18 +981,18 @@ void polepos_state::sound_z80_bootleg_iomap(address_map &map)
|
||||
map(0x00, 0x00).rw("tms", FUNC(tms5220_device::status_r), FUNC(tms5220_device::data_w));
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(polepos_state::topracern)
|
||||
|
||||
void polepos_state::topracern(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD(m_maincpu, Z80, MASTER_CLOCK/8) /* 3.072 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(z80_map)
|
||||
MCFG_DEVICE_IO_MAP(topracern_io)
|
||||
Z80(config, m_maincpu, MASTER_CLOCK/8); /* 3.072 MHz */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &polepos_state::z80_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &polepos_state::topracern_io);
|
||||
|
||||
MCFG_DEVICE_ADD(m_subcpu, Z8002, MASTER_CLOCK/8) /* 3.072 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(z8002_map_1)
|
||||
Z8002(config, m_subcpu, MASTER_CLOCK/8); /* 3.072 MHz */
|
||||
m_subcpu->set_addrmap(AS_PROGRAM, &polepos_state::z8002_map_1);
|
||||
|
||||
MCFG_DEVICE_ADD(m_subcpu2, Z8002, MASTER_CLOCK/8) /* 3.072 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(z8002_map_2)
|
||||
Z8002(config, m_subcpu2, MASTER_CLOCK/8); /* 3.072 MHz */
|
||||
m_subcpu2->set_addrmap(AS_PROGRAM, &polepos_state::z8002_map_2);
|
||||
|
||||
// TODO, remove these devices too, this bootleg doesn't have them, but the emulation doesn't boot without them.
|
||||
// doesn't exist on the bootleg, but required for now or the game only boots in test mode! they probably simulate some of the logic
|
||||
@ -1008,11 +1007,11 @@ MACHINE_CONFIG_START(polepos_state::topracern)
|
||||
|
||||
WATCHDOG_TIMER(config, "watchdog").set_vblank_count(m_screen, 16); // 128V clocks the same as VBLANK
|
||||
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* some interleaving */
|
||||
config.m_minimum_quantum = attotime::from_hz(6000); /* some interleaving */
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", polepos_state, scanline, "screen", 0, 1)
|
||||
TIMER(config, "scantimer").configure_scanline(FUNC(polepos_state::scanline), "screen", 0, 1);
|
||||
|
||||
LS259(config, m_latch);
|
||||
m_latch->q_out_cb<0>().set_inputline(m_maincpu, 0, CLEAR_LINE).invert();
|
||||
@ -1026,39 +1025,42 @@ MACHINE_CONFIG_START(polepos_state::topracern)
|
||||
m_latch->q_out_cb<7>().set(FUNC(polepos_state::chacl_w));
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD(m_screen, RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 384, 0, 256, 264, 16, 224+16)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(polepos_state, screen_update)
|
||||
MCFG_SCREEN_PALETTE(m_palette)
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_raw(MASTER_CLOCK/4, 384, 0, 256, 264, 16, 224+16);
|
||||
m_screen->set_screen_update(FUNC(polepos_state::screen_update));
|
||||
m_screen->set_palette(m_palette);
|
||||
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_polepos);
|
||||
PALETTE(config, m_palette, 0x0f00);
|
||||
m_palette->set_indirect_entries(128);
|
||||
m_palette->set_init(FUNC(polepos_state::palette_init_polepos));
|
||||
|
||||
MCFG_DEVICE_ADD(m_gfxdecode, GFXDECODE, m_palette, gfx_polepos)
|
||||
MCFG_PALETTE_ADD(m_palette, 0x0f00)
|
||||
MCFG_PALETTE_INDIRECT_ENTRIES(128)
|
||||
config.set_default_layout(layout_topracer);
|
||||
|
||||
MCFG_PALETTE_INIT_OWNER(polepos_state,polepos)
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "lspeaker").front_left();
|
||||
SPEAKER(config, "rspeaker").front_right();
|
||||
|
||||
MCFG_DEVICE_ADD(m_namco_sound, NAMCO, MASTER_CLOCK/512)
|
||||
MCFG_NAMCO_AUDIO_VOICES(8)
|
||||
MCFG_NAMCO_AUDIO_STEREO(1)
|
||||
MCFG_SOUND_ROUTE(0, "lspeaker", 0.80)
|
||||
MCFG_SOUND_ROUTE(1, "rspeaker", 0.80)
|
||||
NAMCO(config, m_namco_sound, MASTER_CLOCK/512);
|
||||
m_namco_sound->set_voices(8);
|
||||
m_namco_sound->set_stereo(true);
|
||||
m_namco_sound->add_route(0, "lspeaker", 0.80);
|
||||
m_namco_sound->add_route(1, "rspeaker", 0.80);
|
||||
|
||||
/* engine sound */
|
||||
MCFG_DEVICE_ADD("polepos", POLEPOS_SOUND, 0)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.90 * 0.77)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.90 * 0.77)
|
||||
polepos_sound_device &polepos(POLEPOS_SOUND(config, "polepos", 0));
|
||||
polepos.add_route(ALL_OUTPUTS, "lspeaker", 0.90 * 0.77);
|
||||
polepos.add_route(ALL_OUTPUTS, "rspeaker", 0.90 * 0.77);
|
||||
|
||||
MCFG_DEVICE_ADD("dac", DAC_4BIT_R2R, 0) // unknown resistor configuration
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.12)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.12)
|
||||
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_4bit_r2r_device &dac(DAC_4BIT_R2R(config, "dac", 0)); // unknown resistor configuration
|
||||
dac.add_route(ALL_OUTPUTS, "lspeaker", 0.12);
|
||||
dac.add_route(ALL_OUTPUTS, "rspeaker", 0.12);
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
void polepos_state::polepos2bi(machine_config &config)
|
||||
{
|
||||
|
@ -400,11 +400,12 @@ void quickpick5_state::machine_reset()
|
||||
{
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(quickpick5_state::quickpick5)
|
||||
void quickpick5_state::quickpick5(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", Z80, XTAL(32'000'000)/4) // z84c0008pec 8mhz part, 32Mhz xtal verified on PCB, divisor unknown
|
||||
MCFG_DEVICE_PROGRAM_MAP(quickpick5_main)
|
||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", quickpick5_state, scanline, "screen", 0, 1)
|
||||
Z80(config, m_maincpu, XTAL(32'000'000)/4); // z84c0008pec 8mhz part, 32Mhz xtal verified on PCB, divisor unknown
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &quickpick5_state::quickpick5_main);
|
||||
TIMER(config, "scantimer").configure_scanline(FUNC(quickpick5_state::scanline), "screen", 0, 1);
|
||||
|
||||
K053252(config, m_k053252, XTAL(32'000'000)/4); /* K053252, xtal verified, divider not verified */
|
||||
m_k053252->int1_ack().set(FUNC(quickpick5_state::vbl_ack_w));
|
||||
@ -412,36 +413,36 @@ MACHINE_CONFIG_START(quickpick5_state::quickpick5)
|
||||
m_k053252->int_time().set(FUNC(quickpick5_state::ccu_int_time_w));
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(59.62)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(20))
|
||||
MCFG_SCREEN_SIZE(64*8, 33*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(88, 456-1, 28, 256-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(quickpick5_state, screen_update_quickpick5)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_refresh_hz(59.62);
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(20));
|
||||
screen.set_size(64*8, 33*8);
|
||||
screen.set_visarea(88, 456-1, 28, 256-1);
|
||||
screen.set_screen_update(FUNC(quickpick5_state::screen_update_quickpick5));
|
||||
screen.set_palette(m_palette);
|
||||
|
||||
MCFG_PALETTE_ADD("palette", 1024)
|
||||
MCFG_PALETTE_ENABLE_SHADOWS()
|
||||
MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
|
||||
PALETTE(config, m_palette, 1024);
|
||||
m_palette->enable_shadows();
|
||||
m_palette->set_format(PALETTE_FORMAT_xBBBBBGGGGGRRRRR);
|
||||
|
||||
K053245(config, m_k053245, 0);
|
||||
m_k053245->set_palette(m_palette);
|
||||
m_k053245->set_offsets(-(44+80), 20);
|
||||
m_k053245->set_sprite_callback(FUNC(quickpick5_state::sprite_callback), this);
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfxdecode_device::empty)
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfxdecode_device::empty);
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
MCFG_K051649_ADD("k051649", XTAL(32'000'000)/18) // xtal is verified, divider is not
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.45)
|
||||
K051649(config, m_k051649, XTAL(32'000'000)/18); // xtal is verified, divider is not
|
||||
m_k051649->add_route(ALL_OUTPUTS, "mono", 0.45);
|
||||
|
||||
MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(32'000'000)/18, okim6295_device::PIN7_HIGH)
|
||||
MCFG_SOUND_ROUTE(0, "mono", 1.0)
|
||||
MCFG_SOUND_ROUTE(1, "mono", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
OKIM6295(config, m_oki, XTAL(32'000'000)/18, okim6295_device::PIN7_HIGH);
|
||||
m_oki->add_route(0, "mono", 1.0);
|
||||
m_oki->add_route(1, "mono", 1.0);
|
||||
}
|
||||
|
||||
ROM_START( quickp5 )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 ) /* main program */
|
||||
|
@ -198,7 +198,6 @@ TODO:
|
||||
#include "machine/gen_latch.h"
|
||||
#include "machine/watchdog.h"
|
||||
#include "sound/samples.h"
|
||||
#include "screen.h"
|
||||
#include "speaker.h"
|
||||
|
||||
#define MASTER_CLOCK XTAL(18'432'000)
|
||||
@ -814,12 +813,12 @@ WRITE_LINE_MEMBER(rallyx_state::jungler_vblank_irq)
|
||||
m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(rallyx_state::rallyx)
|
||||
|
||||
void rallyx_state::rallyx(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(rallyx_map)
|
||||
MCFG_DEVICE_IO_MAP(io_map)
|
||||
Z80(config, m_maincpu, MASTER_CLOCK/6); /* 3.072 MHz */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &rallyx_state::rallyx_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &rallyx_state::io_map);
|
||||
|
||||
ls259_device &mainlatch(LS259(config, "mainlatch")); // 259 at 12M or 4099 at 11M on Logic Board I
|
||||
mainlatch.q_out_cb<0>().set(FUNC(rallyx_state::bang_w)); // BANG
|
||||
@ -836,42 +835,42 @@ MACHINE_CONFIG_START(rallyx_state::rallyx)
|
||||
MCFG_MACHINE_START_OVERRIDE(rallyx_state,rallyx)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60.606060)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(36*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 2*8, 30*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(rallyx_state, screen_update_rallyx)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, rallyx_state, rallyx_vblank_irq))
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_refresh_hz(60.606060);
|
||||
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
m_screen->set_size(36*8, 32*8);
|
||||
m_screen->set_visarea(0*8, 36*8-1, 2*8, 30*8-1);
|
||||
m_screen->set_screen_update(FUNC(rallyx_state::screen_update_rallyx));
|
||||
m_screen->set_palette(m_palette);
|
||||
m_screen->screen_vblank().set(FUNC(rallyx_state::rallyx_vblank_irq));
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_rallyx)
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_rallyx);
|
||||
|
||||
PALETTE(config, m_palette, 64*4+4);
|
||||
m_palette->set_indirect_entries(32);
|
||||
m_palette->enable_shadows();
|
||||
m_palette->set_init(FUNC(rallyx_state::palette_init_rallyx));
|
||||
|
||||
MCFG_PALETTE_ADD("palette", 64*4+4)
|
||||
MCFG_PALETTE_INDIRECT_ENTRIES(32)
|
||||
MCFG_PALETTE_ENABLE_SHADOWS()
|
||||
MCFG_PALETTE_INIT_OWNER(rallyx_state,rallyx)
|
||||
MCFG_VIDEO_START_OVERRIDE(rallyx_state,rallyx)
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
MCFG_DEVICE_ADD("namco", NAMCO, MASTER_CLOCK/6/32) /* 96 KHz */
|
||||
MCFG_NAMCO_AUDIO_VOICES(3)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
NAMCO(config, m_namco_sound, MASTER_CLOCK/6/32); /* 96 KHz */
|
||||
m_namco_sound->set_voices(3);
|
||||
m_namco_sound->add_route(ALL_OUTPUTS, "mono", 1.0);
|
||||
|
||||
MCFG_DEVICE_ADD("samples", SAMPLES)
|
||||
MCFG_SAMPLES_CHANNELS(1)
|
||||
MCFG_SAMPLES_NAMES(rallyx_sample_names)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(rallyx_state::jungler)
|
||||
SAMPLES(config, m_samples);
|
||||
m_samples->set_channels(1);
|
||||
m_samples->set_samples_names(rallyx_sample_names);
|
||||
m_samples->add_route(ALL_OUTPUTS, "mono", 0.80);
|
||||
}
|
||||
|
||||
void rallyx_state::jungler(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(jungler_map)
|
||||
Z80(config, m_maincpu, MASTER_CLOCK/6); /* 3.072 MHz */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &rallyx_state::jungler_map);
|
||||
|
||||
ls259_device &mainlatch(LS259(config, "mainlatch")); // 1C on Loco-Motion
|
||||
mainlatch.q_out_cb<0>().set("timeplt_audio", FUNC(timeplt_audio_device::sh_irqtrigger_w)); // SOUNDON
|
||||
@ -888,64 +887,56 @@ MACHINE_CONFIG_START(rallyx_state::jungler)
|
||||
MCFG_MACHINE_START_OVERRIDE(rallyx_state,rallyx)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* frames per second, vblank duration */)
|
||||
MCFG_SCREEN_SIZE(36*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 2*8, 30*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(rallyx_state, screen_update_jungler)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, rallyx_state, jungler_vblank_irq))
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_refresh_hz(60);
|
||||
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); /* frames per second, vblank duration */
|
||||
m_screen->set_size(36*8, 32*8);
|
||||
m_screen->set_visarea(0*8, 36*8-1, 2*8, 30*8-1);
|
||||
m_screen->set_screen_update(FUNC(rallyx_state::screen_update_jungler));
|
||||
m_screen->set_palette(m_palette);
|
||||
m_screen->screen_vblank().set(FUNC(rallyx_state::jungler_vblank_irq));
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_jungler)
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_jungler);
|
||||
|
||||
PALETTE(config, m_palette, 64*4+4+64);
|
||||
m_palette->set_indirect_entries(32+64);
|
||||
m_palette->enable_shadows();
|
||||
m_palette->set_init(FUNC(rallyx_state::palette_init_jungler));
|
||||
|
||||
MCFG_PALETTE_ADD("palette", 64*4+4+64)
|
||||
MCFG_PALETTE_INDIRECT_ENTRIES(32+64)
|
||||
MCFG_PALETTE_ENABLE_SHADOWS()
|
||||
MCFG_PALETTE_INIT_OWNER(rallyx_state,jungler)
|
||||
MCFG_VIDEO_START_OVERRIDE(rallyx_state,jungler)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_DEVICE_ADD("timeplt_audio", LOCOMOTN_AUDIO)
|
||||
MACHINE_CONFIG_END
|
||||
LOCOMOTN_AUDIO(config, "timeplt_audio");
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(rallyx_state::tactcian)
|
||||
void rallyx_state::tactcian(machine_config &config)
|
||||
{
|
||||
jungler(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
m_screen->set_screen_update(FUNC(rallyx_state::screen_update_locomotn));
|
||||
|
||||
/* video hardware */
|
||||
MCFG_VIDEO_START_OVERRIDE(rallyx_state,locomotn)
|
||||
MCFG_SCREEN_MODIFY("screen")
|
||||
MCFG_SCREEN_UPDATE_DRIVER(rallyx_state, screen_update_locomotn)
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(rallyx_state::locomotn)
|
||||
void rallyx_state::locomotn(machine_config &config)
|
||||
{
|
||||
jungler(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
|
||||
m_screen->set_screen_update(FUNC(rallyx_state::screen_update_locomotn));
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_MODIFY("screen")
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(rallyx_state, screen_update_locomotn)
|
||||
MCFG_VIDEO_START_OVERRIDE(rallyx_state,locomotn)
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(rallyx_state::commsega)
|
||||
void rallyx_state::commsega(machine_config &config)
|
||||
{
|
||||
jungler(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
|
||||
m_screen->set_screen_update(FUNC(rallyx_state::screen_update_locomotn));
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_MODIFY("screen")
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(rallyx_state, screen_update_locomotn)
|
||||
MCFG_VIDEO_START_OVERRIDE(rallyx_state,commsega)
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
|
||||
/*************************************
|
||||
|
@ -421,11 +421,11 @@ WRITE_LINE_MEMBER(skykid_state::vblank_irq)
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(skykid_state::skykid)
|
||||
|
||||
void skykid_state::skykid(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", MC6809E, XTAL(49'152'000)/32)
|
||||
MCFG_DEVICE_PROGRAM_MAP(skykid_map)
|
||||
MC6809E(config, m_maincpu, XTAL(49'152'000)/32);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &skykid_state::skykid_map);
|
||||
|
||||
HD63701(config, m_mcu, XTAL(49'152'000)/8); /* or compatible 6808 with extra instructions */
|
||||
m_mcu->set_addrmap(AS_PROGRAM, &skykid_state::mcu_map);
|
||||
@ -434,32 +434,32 @@ MACHINE_CONFIG_START(skykid_state::skykid)
|
||||
m_mcu->in_p2_cb().set_constant(0xff); /* leds won't work otherwise */
|
||||
m_mcu->out_p2_cb().set(FUNC(skykid_state::skykid_led_w)); /* lamps */
|
||||
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* we need heavy synch */
|
||||
config.m_minimum_quantum = attotime::from_hz(6000); /* we need heavy synch */
|
||||
|
||||
WATCHDOG_TIMER(config, "watchdog");
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60.606060)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(36*8, 28*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(skykid_state, screen_update_skykid)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, skykid_state, vblank_irq))
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_refresh_hz(60.606060);
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
screen.set_size(36*8, 28*8);
|
||||
screen.set_visarea(0*8, 36*8-1, 0*8, 28*8-1);
|
||||
screen.set_screen_update(FUNC(skykid_state::screen_update_skykid));
|
||||
screen.set_palette(m_palette);
|
||||
screen.screen_vblank().set(FUNC(skykid_state::vblank_irq));
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_skykid)
|
||||
MCFG_PALETTE_ADD("palette", 64*4+128*4+64*8)
|
||||
MCFG_PALETTE_INDIRECT_ENTRIES(256)
|
||||
MCFG_PALETTE_INIT_OWNER(skykid_state, skykid)
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_skykid);
|
||||
PALETTE(config, m_palette, 64*4+128*4+64*8);
|
||||
m_palette->set_indirect_entries(256);
|
||||
m_palette->set_init(FUNC(skykid_state::palette_init_skykid));
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
MCFG_DEVICE_ADD("namco", NAMCO_CUS30, 49152000/2048)
|
||||
MCFG_NAMCO_AUDIO_VOICES(8)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
NAMCO_CUS30(config, m_cus30, 49152000/2048);
|
||||
m_cus30->set_voices(8);
|
||||
m_cus30->add_route(ALL_OUTPUTS, "mono", 1.0);
|
||||
}
|
||||
|
||||
|
||||
ROM_START( skykid ) // a PCB was found with ROM 4 and 6 labeled sk1, but hashes match the sk2 listed here and in other sets, while they differ from the sk1 ROMs in set skykidd?
|
||||
|
@ -683,32 +683,32 @@ INPUT_PORTS_END
|
||||
Machine driver
|
||||
***************************************************************************/
|
||||
|
||||
MACHINE_CONFIG_START(srmp6_state::srmp6)
|
||||
void srmp6_state::srmp6(machine_config &config)
|
||||
{
|
||||
M68000(config, m_maincpu, 16000000);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &srmp6_state::srmp6_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(srmp6_state::irq4_line_assert)); // irq3 is a timer irq, but it's never enabled
|
||||
|
||||
MCFG_DEVICE_ADD("maincpu", M68000, 16000000)
|
||||
MCFG_DEVICE_PROGRAM_MAP(srmp6_map)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", srmp6_state, irq4_line_assert) // irq3 is a timer irq, but it's never enabled
|
||||
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(64*8, 64*8);
|
||||
screen.set_visarea(0*8, 42*8-1, 0*8, 30*8-1);
|
||||
screen.set_screen_update(FUNC(srmp6_state::screen_update_srmp6));
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(64*8, 64*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 42*8-1, 0*8, 30*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(srmp6_state, screen_update_srmp6)
|
||||
PALETTE(config, m_palette, 0x800);
|
||||
m_palette->set_format(PALETTE_FORMAT_xBBBBBGGGGGRRRRR);
|
||||
|
||||
MCFG_PALETTE_ADD("palette", 0x800)
|
||||
MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfxdecode_device::empty)
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfxdecode_device::empty);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "lspeaker").front_left();
|
||||
SPEAKER(config, "rspeaker").front_right();
|
||||
|
||||
MCFG_NILE_ADD("nile", 0)
|
||||
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
|
||||
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
nile_device &nile(NILE(config, "nile", 0));
|
||||
nile.add_route(0, "lspeaker", 1.0);
|
||||
nile.add_route(1, "rspeaker", 1.0);
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
@ -11,7 +11,6 @@
|
||||
#include "emu.h"
|
||||
#include "includes/tceptor.h"
|
||||
|
||||
#include "cpu/m6502/m65c02.h"
|
||||
#include "cpu/m6809/m6809.h"
|
||||
#include "cpu/m6800/m6801.h"
|
||||
#include "cpu/m68000/m68000.h"
|
||||
@ -314,25 +313,25 @@ void tceptor_state::machine_reset()
|
||||
|
||||
/*******************************************************************/
|
||||
|
||||
MACHINE_CONFIG_START(tceptor_state::tceptor)
|
||||
|
||||
void tceptor_state::tceptor(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", M6809, XTAL(49'152'000)/32)
|
||||
MCFG_DEVICE_PROGRAM_MAP(m6809_map)
|
||||
M6809(config, m_maincpu, XTAL(49'152'000)/32);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &tceptor_state::m6809_map);
|
||||
|
||||
MCFG_DEVICE_ADD("audiocpu", M65C02, XTAL(49'152'000)/24)
|
||||
MCFG_DEVICE_PROGRAM_MAP(m6502_a_map)
|
||||
M65C02(config, m_audiocpu[0], XTAL(49'152'000)/24);
|
||||
m_audiocpu[0]->set_addrmap(AS_PROGRAM, &tceptor_state::m6502_a_map);
|
||||
|
||||
MCFG_DEVICE_ADD("audio2", M65C02, XTAL(49'152'000)/24)
|
||||
MCFG_DEVICE_PROGRAM_MAP(m6502_b_map)
|
||||
M65C02(config, m_audiocpu[1], XTAL(49'152'000)/24);
|
||||
m_audiocpu[1]->set_addrmap(AS_PROGRAM, &tceptor_state::m6502_b_map);
|
||||
|
||||
MCFG_DEVICE_ADD("sub", M68000, XTAL(49'152'000)/4)
|
||||
MCFG_DEVICE_PROGRAM_MAP(m68k_map)
|
||||
M68000(config, m_subcpu, XTAL(49'152'000)/4);
|
||||
m_subcpu->set_addrmap(AS_PROGRAM, &tceptor_state::m68k_map);
|
||||
|
||||
HD63701(config, m_mcu, XTAL(49'152'000)/8); // or compatible 6808 with extra instructions
|
||||
m_mcu->set_addrmap(AS_PROGRAM, &tceptor_state::mcu_map);
|
||||
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
|
||||
config.m_minimum_quantum = attotime::from_hz(6000);
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);
|
||||
|
||||
@ -343,22 +342,22 @@ MACHINE_CONFIG_START(tceptor_state::tceptor)
|
||||
adc.in_callback<3>().set_ioport("STICKY");
|
||||
|
||||
/* video hardware */
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_tceptor)
|
||||
MCFG_PALETTE_ADD("palette", 4096)
|
||||
MCFG_PALETTE_INDIRECT_ENTRIES(1024)
|
||||
MCFG_PALETTE_INIT_OWNER(tceptor_state, tceptor)
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_tceptor);
|
||||
PALETTE(config, m_palette, 4096);
|
||||
m_palette->set_indirect_entries(1024);
|
||||
m_palette->set_init(FUNC(tceptor_state::palette_init_tceptor));
|
||||
|
||||
NAMCO_C45_ROAD(config, m_c45_road, 0);
|
||||
m_c45_road->set_palette(m_palette);
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60.606060)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(38*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(2*8, 34*8-1 + 2*8, 0*8, 28*8-1 + 0)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(tceptor_state, screen_update_tceptor)
|
||||
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, tceptor_state, screen_vblank_tceptor))
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_refresh_hz(60.606060);
|
||||
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
m_screen->set_size(38*8, 32*8);
|
||||
m_screen->set_visarea(2*8, 34*8-1 + 2*8, 0*8, 28*8-1 + 0);
|
||||
m_screen->set_screen_update(FUNC(tceptor_state::screen_update_tceptor));
|
||||
m_screen->screen_vblank().set(FUNC(tceptor_state::screen_vblank_tceptor));
|
||||
m_screen->set_palette(m_palette);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "lspeaker").front_left();
|
||||
@ -366,16 +365,21 @@ MACHINE_CONFIG_START(tceptor_state::tceptor)
|
||||
|
||||
YM2151(config, "ymsnd", XTAL(14'318'181)/4).add_route(0, "lspeaker", 1.0).add_route(1, "rspeaker", 1.0);
|
||||
|
||||
MCFG_DEVICE_ADD("namco", NAMCO_CUS30, XTAL(49'152'000)/2048)
|
||||
MCFG_NAMCO_AUDIO_VOICES(8)
|
||||
MCFG_NAMCO_AUDIO_STEREO(1)
|
||||
MCFG_SOUND_ROUTE(0, "lspeaker", 0.40)
|
||||
MCFG_SOUND_ROUTE(1, "rspeaker", 0.40)
|
||||
NAMCO_CUS30(config, m_cus30, XTAL(49'152'000)/2048);
|
||||
m_cus30->set_voices(8);
|
||||
m_cus30->set_stereo(true);
|
||||
m_cus30->add_route(0, "lspeaker", 0.40);
|
||||
m_cus30->add_route(1, "rspeaker", 0.40);
|
||||
|
||||
MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.4) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.4) // 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_device &dac(DAC_8BIT_R2R(config, "dac", 0)); // unknown DAC
|
||||
dac.add_route(ALL_OUTPUTS, "lspeaker", 0.4);
|
||||
dac.add_route(ALL_OUTPUTS, "rspeaker", 0.4);
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
@ -388,10 +392,10 @@ ROM_START( tceptor )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 ) // 68A09EP
|
||||
ROM_LOAD( "tc1-1.10f", 0x08000, 0x08000, CRC(4c6b063e) SHA1(d9701657186f8051391084f51a720037f9f418b1) )
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) // RC65C02
|
||||
ROM_REGION( 0x10000, "audiocpu1", 0 ) // RC65C02
|
||||
ROM_LOAD( "tc1-21.1m", 0x08000, 0x08000, CRC(2d0b2fa8) SHA1(16ecd70954e52a8661642b15a5cf1db51783e444) )
|
||||
|
||||
ROM_REGION( 0x10000, "audio2", 0 ) // RC65C02
|
||||
ROM_REGION( 0x10000, "audiocpu2", 0 ) // RC65C02
|
||||
ROM_LOAD( "tc1-22.3m", 0x08000, 0x08000, CRC(9f5a3e98) SHA1(2b2ffe39fe647a3039b92721817bddc9e9a92d82) )
|
||||
|
||||
ROM_REGION( 0x110000, "sub", 0 ) // MC68000-12
|
||||
@ -444,10 +448,10 @@ ROM_START( tceptor2 )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 ) // 68A09EP
|
||||
ROM_LOAD( "tc2-1.10f", 0x08000, 0x08000, CRC(f953f153) SHA1(f4cd0a133d23b4bf3c24c70c28c4ecf8ad4daf6f) )
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) // RC65C02
|
||||
ROM_REGION( 0x10000, "audiocpu1", 0 ) // RC65C02
|
||||
ROM_LOAD( "tc1-21.1m", 0x08000, 0x08000, CRC(2d0b2fa8) SHA1(16ecd70954e52a8661642b15a5cf1db51783e444) )
|
||||
|
||||
ROM_REGION( 0x10000, "audio2", 0 ) // RC65C02
|
||||
ROM_REGION( 0x10000, "audiocpu2", 0 ) // RC65C02
|
||||
ROM_LOAD( "tc1-22.3m", 0x08000, 0x08000, CRC(9f5a3e98) SHA1(2b2ffe39fe647a3039b92721817bddc9e9a92d82) )
|
||||
|
||||
ROM_REGION( 0x110000, "sub", 0 ) // MC68000-12
|
||||
|
@ -691,26 +691,25 @@ WRITE_LINE_MEMBER(namcos16_state::slave_vblank_irq)
|
||||
m_slave_cpu->set_input_line(6, HOLD_LINE);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(namcos16_state::liblrabl)
|
||||
MCFG_DEVICE_ADD("maincpu", MC6809E, MASTER_CLOCK/4)
|
||||
MCFG_DEVICE_PROGRAM_MAP(master_liblrabl_map)
|
||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", namcos16_state, master_scanline, "screen", 0, 1)
|
||||
void namcos16_state::liblrabl(machine_config &config)
|
||||
{
|
||||
MC6809E(config, m_master_cpu, MASTER_CLOCK/4);
|
||||
m_master_cpu->set_addrmap(AS_PROGRAM, &namcos16_state::master_liblrabl_map);
|
||||
TIMER(config, "scantimer").configure_scanline(FUNC(namcos16_state::master_scanline), "screen", 0, 1);
|
||||
|
||||
MCFG_DEVICE_ADD("slave", M68000, MASTER_CLOCK)
|
||||
MCFG_DEVICE_PROGRAM_MAP(slave_map)
|
||||
M68000(config, m_slave_cpu, MASTER_CLOCK);
|
||||
m_slave_cpu->set_addrmap(AS_PROGRAM, &namcos16_state::slave_map);
|
||||
|
||||
MCFG_DEVICE_ADD("audiocpu", MC6809E, MASTER_CLOCK/4)
|
||||
MCFG_DEVICE_PROGRAM_MAP(sound_map)
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(namcos16_state, irq0_line_hold, 60)
|
||||
MC6809E(config, m_sound_cpu, MASTER_CLOCK/4);
|
||||
m_sound_cpu->set_addrmap(AS_PROGRAM, &namcos16_state::sound_map);
|
||||
m_sound_cpu->set_periodic_int(FUNC(namcos16_state::irq0_line_hold), attotime::from_hz(60));
|
||||
|
||||
|
||||
NAMCO_58XX(config, m_namco58xx, 0);
|
||||
m_namco58xx->in_callback<0>().set_ioport("COINS");
|
||||
m_namco58xx->in_callback<1>().set_ioport("P1_RIGHT");
|
||||
m_namco58xx->in_callback<2>().set_ioport("P2_RIGHT");
|
||||
m_namco58xx->in_callback<3>().set_ioport("BUTTONS");
|
||||
|
||||
|
||||
NAMCO_56XX(config, m_namco56xx_1, 0);
|
||||
m_namco56xx_1->in_callback<0>().set(FUNC(namcos16_state::dipA_h));
|
||||
m_namco56xx_1->in_callback<1>().set(FUNC(namcos16_state::dipB_l));
|
||||
@ -723,29 +722,29 @@ MACHINE_CONFIG_START(namcos16_state::liblrabl)
|
||||
m_namco56xx_2->in_callback<2>().set_ioport("P2_LEFT");
|
||||
m_namco56xx_2->in_callback<3>().set_ioport("SERVICE");
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK,384,0,288,264,0,224) // derived from Galaxian HW, 60.606060
|
||||
MCFG_SCREEN_UPDATE_DRIVER(namcos16_state, screen_update)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, namcos16_state, slave_vblank_irq))
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_raw(MASTER_CLOCK,384,0,288,264,0,224); // derived from Galaxian HW, 60.606060
|
||||
screen.set_screen_update(FUNC(namcos16_state::screen_update));
|
||||
screen.set_palette(m_palette);
|
||||
screen.screen_vblank().set(FUNC(namcos16_state::slave_vblank_irq));
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_toypop)
|
||||
MCFG_PALETTE_ADD("palette", 128*4+64*4+16*2)
|
||||
MCFG_PALETTE_INDIRECT_ENTRIES(256)
|
||||
MCFG_PALETTE_INIT_OWNER(namcos16_state, toypop)
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_toypop);
|
||||
PALETTE(config, m_palette, 128*4+64*4+16*2);
|
||||
m_palette->set_indirect_entries(256);
|
||||
m_palette->set_init(FUNC(namcos16_state::palette_init_toypop));
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
MCFG_DEVICE_ADD("namco", NAMCO_15XX, 24000)
|
||||
MCFG_NAMCO_AUDIO_VOICES(8)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
NAMCO_15XX(config, m_namco15xx, 24000);
|
||||
m_namco15xx->set_voices(8);
|
||||
m_namco15xx->add_route(ALL_OUTPUTS, "mono", 1.0);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(namcos16_state::toypop)
|
||||
void namcos16_state::toypop(machine_config &config)
|
||||
{
|
||||
liblrabl(config);
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_DEVICE_PROGRAM_MAP(master_toypop_map)
|
||||
MACHINE_CONFIG_END
|
||||
m_master_cpu->set_addrmap(AS_PROGRAM, &namcos16_state::master_toypop_map);
|
||||
}
|
||||
|
||||
|
||||
ROM_START( liblrabl )
|
||||
|
@ -5,6 +5,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "cpu/m6800/m6801.h"
|
||||
#include "sound/namco.h"
|
||||
#include "emupal.h"
|
||||
|
||||
@ -62,7 +63,7 @@ protected:
|
||||
required_shared_ptr<uint8_t> m_videoram;
|
||||
required_shared_ptr<uint8_t> m_textram;
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<cpu_device> m_mcu;
|
||||
required_device<hd63701_cpu_device> m_mcu;
|
||||
required_device<namco_cus30_device> m_cus30;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<palette_device> m_palette;
|
||||
|
@ -82,6 +82,7 @@ protected:
|
||||
optional_device<ym2151_device> m_ym2151;
|
||||
optional_device_array<okim6295_device, 3> m_oki;
|
||||
optional_device<generic_latch_8_device> m_soundlatch;
|
||||
required_device<cpu_device> m_maincpu;
|
||||
|
||||
void allocate_spriteram(int chip);
|
||||
void allocate_buffered_palette();
|
||||
@ -96,8 +97,6 @@ protected:
|
||||
std::unique_ptr<uint16_t[]> m_pf_rowscroll[4]; // common
|
||||
|
||||
private:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
|
||||
// we use the pointers below to store a 32-bit copy..
|
||||
required_shared_ptr_array<uint32_t, 4> m_pf_rowscroll32;
|
||||
optional_shared_ptr<uint32_t> m_paletteram;
|
||||
|
@ -7,6 +7,7 @@
|
||||
|
||||
#include "machine/k053252.h"
|
||||
#include "machine/timer.h"
|
||||
#include "emupal.h"
|
||||
|
||||
class hexion_state : public driver_device
|
||||
{
|
||||
@ -15,7 +16,8 @@ public:
|
||||
driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_k053252(*this, "k053252"),
|
||||
m_gfxdecode(*this, "gfxdecode")
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_palette(*this, "palette")
|
||||
{ }
|
||||
|
||||
void hexion(machine_config &config);
|
||||
@ -25,6 +27,7 @@ private:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<k053252_device> m_k053252;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<palette_device> m_palette;
|
||||
|
||||
uint8_t *m_vram[2];
|
||||
uint8_t *m_unkram;
|
||||
|
@ -5,9 +5,10 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "cpu/m6800/m6801.h"
|
||||
#include "machine/watchdog.h"
|
||||
#include "sound/namco.h"
|
||||
#include "sound/n63701x.h"
|
||||
#include "sound/namco.h"
|
||||
#include "emupal.h"
|
||||
|
||||
class namcos86_state : public driver_device
|
||||
@ -17,6 +18,7 @@ public:
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_cpu1(*this, "cpu1")
|
||||
, m_cpu2(*this, "cpu2")
|
||||
, m_mcu(*this, "mcu")
|
||||
, m_watchdog(*this, "watchdog")
|
||||
, m_cus30(*this, "namco")
|
||||
, m_gfxdecode(*this, "gfxdecode")
|
||||
@ -90,6 +92,7 @@ private:
|
||||
|
||||
required_device<cpu_device> m_cpu1;
|
||||
required_device<cpu_device> m_cpu2;
|
||||
required_device<hd63701_cpu_device> m_mcu;
|
||||
required_device<watchdog_timer_device> m_watchdog;
|
||||
required_device<namco_cus30_device> m_cus30;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
|
@ -9,6 +9,7 @@
|
||||
#include "sound/namco.h"
|
||||
#include "sound/samples.h"
|
||||
#include "emupal.h"
|
||||
#include "screen.h"
|
||||
|
||||
class rallyx_state : public driver_device
|
||||
{
|
||||
@ -29,7 +30,8 @@ public:
|
||||
m_samples(*this, "samples"),
|
||||
m_timeplt_audio(*this, "timeplt_audio"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_palette(*this, "palette")
|
||||
m_palette(*this, "palette"),
|
||||
m_screen(*this, "screen")
|
||||
{ }
|
||||
|
||||
/* memory pointers */
|
||||
@ -59,6 +61,7 @@ public:
|
||||
optional_device<timeplt_audio_device> m_timeplt_audio;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<palette_device> m_palette;
|
||||
required_device<screen_device> m_screen;
|
||||
|
||||
bool m_main_irq_mask;
|
||||
DECLARE_WRITE8_MEMBER(rallyx_interrupt_vector_w);
|
||||
|
@ -5,6 +5,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "cpu/m6502/m65c02.h"
|
||||
#include "sound/namco.h"
|
||||
#include "video/c45.h"
|
||||
#include "emupal.h"
|
||||
@ -16,6 +17,7 @@ public:
|
||||
tceptor_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_audiocpu(*this, "audiocpu%u", 1U),
|
||||
m_subcpu(*this, "sub"),
|
||||
m_mcu(*this, "mcu"),
|
||||
m_cus30(*this, "namco"),
|
||||
@ -38,6 +40,7 @@ private:
|
||||
uint8_t m_m68k_irq_enable;
|
||||
uint8_t m_mcu_irq_enable;
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device_array<m65c02_device, 2> m_audiocpu;
|
||||
required_device<cpu_device> m_subcpu;
|
||||
required_device<cpu_device> m_mcu;
|
||||
required_device<namco_cus30_device> m_cus30;
|
||||
|
Loading…
Reference in New Issue
Block a user