mirror of
https://github.com/holub/mame
synced 2025-04-22 16:31:49 +03:00
-cpu/adsp2100, amis2000, apexc, arm, arm7, avr8, ccpu, esrip, hcd62121: Removed MCFG macros. [Ryan Holtz]
-audio/dcs, rax: Removed MACHINE_CONFIG macros. [Ryan Holtz] -drivers/aa310, apexc, aristmk5, cfx9850, cinemat, craft, ertictac, esripsys, gaelco3d, harddriv, hh_amis2k, nds, polgar, rambo, replicator, risc2500, sbc6510, uzebox: Removed MACHINE_CONFIG macros. [Ryan Holtz]
This commit is contained in:
parent
c62979a711
commit
56bb41208a
@ -49,7 +49,16 @@ class snes_control_port_device : public device_t, public device_slot_interface
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
snes_control_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
template <typename T>
|
||||
snes_control_port_device(machine_config const &mconfig, char const *tag, device_t *owner, T &&opts, char const *dflt)
|
||||
: snes_control_port_device(mconfig, tag, owner, (uint32_t)0)
|
||||
{
|
||||
option_reset();
|
||||
opts(*this);
|
||||
set_default_option(dflt);
|
||||
set_fixed(false);
|
||||
}
|
||||
snes_control_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
|
||||
virtual ~snes_control_port_device();
|
||||
|
||||
template <typename Object> void set_onscreen_callback(Object &&cb) { m_onscreen_cb = std::forward<Object>(cb); }
|
||||
|
@ -174,24 +174,6 @@ enum
|
||||
ADSP2100_SR1_SEC
|
||||
};
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// INTERFACE CONFIGURATION MACROS
|
||||
//**************************************************************************
|
||||
|
||||
#define MCFG_ADSP21XX_SPORT_RX_CB(_devcb) \
|
||||
downcast<adsp21xx_device &>(*device).set_sport_rx_callback(DEVCB_##_devcb);
|
||||
|
||||
#define MCFG_ADSP21XX_SPORT_TX_CB(_devcb) \
|
||||
downcast<adsp21xx_device &>(*device).set_sport_tx_callback(DEVCB_##_devcb);
|
||||
|
||||
#define MCFG_ADSP21XX_TIMER_FIRED_CB(_devcb) \
|
||||
downcast<adsp21xx_device &>(*device).set_timer_fired_callback(DEVCB_##_devcb);
|
||||
|
||||
#define MCFG_ADSP21XX_DMOVLAY_CB(_devcb) \
|
||||
downcast<adsp21xx_device &>(*device).set_dmovlay_callback(DEVCB_##_devcb);
|
||||
|
||||
//**************************************************************************
|
||||
// TYPE DEFINITIONS
|
||||
//**************************************************************************
|
||||
@ -204,10 +186,10 @@ public:
|
||||
virtual ~adsp21xx_device();
|
||||
|
||||
// inline configuration helpers
|
||||
template <class Object> devcb_base &set_sport_rx_callback(Object &&cb) { return m_sport_rx_cb.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_sport_tx_callback(Object &&cb) { return m_sport_tx_cb.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_timer_fired_callback(Object &&cb) { return m_timer_fired_cb.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_dmovlay_callback(Object &&cb) { return m_dmovlay_cb.set_callback(std::forward<Object>(cb)); }
|
||||
auto sport_rx() { return m_sport_rx_cb.bind(); }
|
||||
auto sport_tx() { return m_sport_tx_cb.bind(); }
|
||||
auto timer_fired() { return m_timer_fired_cb.bind(); }
|
||||
auto dmovlay() { return m_dmovlay_cb.bind(); }
|
||||
|
||||
// public interfaces
|
||||
void load_boot_data(uint8_t *srcdata, uint32_t *dstdata);
|
||||
|
@ -11,45 +11,25 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
// generic input pins (4 bits each)
|
||||
#define MCFG_AMI_S2000_READ_K_CB(_devcb) \
|
||||
downcast<amis2000_base_device &>(*device).set_read_k_callback(DEVCB_##_devcb);
|
||||
|
||||
#define MCFG_AMI_S2000_READ_I_CB(_devcb) \
|
||||
downcast<amis2000_base_device &>(*device).set_read_i_callback(DEVCB_##_devcb);
|
||||
|
||||
// 8-bit external databus coupled as input/output pins
|
||||
#define MCFG_AMI_S2000_READ_D_CB(_devcb) \
|
||||
downcast<amis2000_base_device &>(*device).set_read_d_callback(DEVCB_##_devcb);
|
||||
|
||||
#define MCFG_AMI_S2000_WRITE_D_CB(_devcb) \
|
||||
downcast<amis2000_base_device &>(*device).set_write_d_callback(DEVCB_##_devcb);
|
||||
|
||||
// 13-bit external address bus coupled as output pins
|
||||
#define MCFG_AMI_S2000_WRITE_A_CB(_devcb) \
|
||||
downcast<amis2000_base_device &>(*device).set_write_a_callback(DEVCB_##_devcb);
|
||||
|
||||
// F_out pin (only for S2152)
|
||||
#define MCFG_AMI_S2152_FOUT_CB(_devcb) \
|
||||
downcast<amis2000_base_device &>(*device).set_write_f_callback(DEVCB_##_devcb);
|
||||
|
||||
// S2000 has a hardcoded 7seg table, that (unlike S2200) is officially
|
||||
// uncustomizable, but wildfire proves to be an exception to that rule.
|
||||
#define MCFG_AMI_S2000_7SEG_DECODER(_ptr) \
|
||||
downcast<amis2000_base_device &>(*device).set_7seg_table(_ptr);
|
||||
|
||||
|
||||
class amis2000_base_device : public cpu_device
|
||||
{
|
||||
public:
|
||||
// configuration helpers
|
||||
template <class Object> devcb_base &set_read_k_callback(Object &&cb) { return m_read_k.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_read_i_callback(Object &&cb) { return m_read_i.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_read_d_callback(Object &&cb) { return m_read_d.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_write_d_callback(Object &&cb) { return m_write_d.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_write_a_callback(Object &&cb) { return m_write_a.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_write_f_callback(Object &&cb) { return m_write_f.set_callback(std::forward<Object>(cb)); }
|
||||
// generic input pins (4 bits each)
|
||||
auto read_k() { return m_read_k.bind(); }
|
||||
auto read_i() { return m_read_i.bind(); }
|
||||
|
||||
// 8-bit external databus coupled as input/output pins
|
||||
auto read_d() { return m_read_d.bind(); }
|
||||
auto write_d() { return m_write_d.bind(); }
|
||||
|
||||
// 13-bit external address bus coupled as output pins
|
||||
auto write_a() { return m_write_a.bind(); }
|
||||
|
||||
// F_out pin (only for S2152)
|
||||
auto write_f() { return m_write_f.bind(); }
|
||||
|
||||
// S2000 has a hardcoded 7seg table, that (unlike S2200) is officially
|
||||
// uncustomizable, but wildfire proves to be an exception to that rule.
|
||||
void set_7seg_table(const u8 *ptr) { m_7seg_table = ptr; }
|
||||
|
||||
void data_64x4(address_map &map);
|
||||
|
@ -29,8 +29,8 @@ public:
|
||||
apexc_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
// configuration
|
||||
template<class Object> devcb_base &set_tape_read_cb(Object &&object) { return m_tape_read_cb.set_callback(std::forward<Object>(object)); }
|
||||
template<class Object> devcb_base &set_tape_punch_cb(Object &&object) { return m_tape_punch_cb.set_callback(std::forward<Object>(object)); }
|
||||
auto tape_read() { return m_tape_read_cb.bind(); }
|
||||
auto tape_punch() { return m_tape_punch_cb.bind(); }
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
|
@ -16,10 +16,6 @@
|
||||
* PUBLIC FUNCTIONS
|
||||
***************************************************************************************************/
|
||||
|
||||
#define MCFG_ARM_COPRO(_type) \
|
||||
downcast<arm_cpu_device &>(*device).set_copro_type(arm_cpu_device::copro_type::_type);
|
||||
|
||||
|
||||
class arm_cpu_device : public cpu_device
|
||||
{
|
||||
public:
|
||||
|
@ -33,10 +33,6 @@
|
||||
#define ARM7_MAX_FASTRAM 4
|
||||
#define ARM7_MAX_HOTSPOTS 16
|
||||
|
||||
#define MCFG_ARM_HIGH_VECTORS() \
|
||||
downcast<arm7_cpu_device &>(*device).set_high_vectors();
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
COMPILER-SPECIFIC OPTIONS
|
||||
***************************************************************************/
|
||||
|
@ -43,30 +43,6 @@
|
||||
#pragma once
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// FUSE BITS CONFIGURATION MACROS
|
||||
//**************************************************************************
|
||||
|
||||
#define MCFG_CPU_AVR8_LFUSE(byte) \
|
||||
((avr8_device*) device)->set_low_fuses(byte);
|
||||
|
||||
#define MCFG_CPU_AVR8_HFUSE(byte) \
|
||||
((avr8_device*) device)->set_high_fuses(byte);
|
||||
|
||||
#define MCFG_CPU_AVR8_EFUSE(byte) \
|
||||
((avr8_device*) device)->set_extended_fuses(byte);
|
||||
|
||||
#define MCFG_CPU_AVR8_LOCK(byte) \
|
||||
((avr8_device*) device)->set_lock_bits(byte);
|
||||
|
||||
//**************************************************************************
|
||||
// INTERFACE CONFIGURATION MACROS
|
||||
//**************************************************************************
|
||||
|
||||
#define MCFG_CPU_AVR8_EEPROM(_tag) \
|
||||
downcast<avr8_device &>(*device).set_eeprom_tag(_tag);
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// TYPE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
@ -20,15 +20,6 @@
|
||||
REGISTER ENUMERATION
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
|
||||
#define MCFG_CCPU_EXTERNAL_FUNC(_devcb) \
|
||||
downcast<ccpu_cpu_device &>(*device).set_external_func(DEVCB_##_devcb);
|
||||
|
||||
#define MCFG_CCPU_VECTOR_FUNC(d) \
|
||||
downcast<ccpu_cpu_device &>(*device).set_vector_func(d);
|
||||
|
||||
|
||||
class ccpu_cpu_device : public cpu_device
|
||||
{
|
||||
public:
|
||||
@ -54,8 +45,19 @@ public:
|
||||
ccpu_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
// configuration helpers
|
||||
template <class Object> devcb_base &set_external_func(Object &&cb) { return m_external_input.set_callback(std::forward<Object>(cb)); }
|
||||
auto external_func() { return m_external_input.bind(); }
|
||||
|
||||
template <typename Object> void set_vector_func(Object &&cb) { m_vector_callback = std::forward<Object>(cb); }
|
||||
void set_vector_func(vector_delegate callback) { m_vector_callback = callback; }
|
||||
template <class FunctionClass> void set_vector_func(const char *devname,
|
||||
void (FunctionClass::*callback)(int16_t, int16_t, int16_t, int16_t, uint8_t), const char *name)
|
||||
{
|
||||
set_vector_func(vector_delegate(callback, name, devname, static_cast<FunctionClass *>(nullptr)));
|
||||
}
|
||||
template <class FunctionClass> void set_vector_func(void (FunctionClass::*callback)(int16_t, int16_t, int16_t, int16_t, uint8_t), const char *name)
|
||||
{
|
||||
set_vector_func(vector_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr)));
|
||||
}
|
||||
|
||||
DECLARE_READ8_MEMBER( read_jmi );
|
||||
void wdt_timer_trigger();
|
||||
|
@ -42,7 +42,7 @@ public:
|
||||
dsp32c_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
template <class Object> devcb_base &set_output_pins_callback(Object &&cb) { return m_output_pins_changed.set_callback(std::forward<Object>(cb)); }
|
||||
|
||||
auto out_cb() { return m_output_pins_changed.bind(); }
|
||||
|
||||
// public interfaces
|
||||
void pio_w(int reg, int data);
|
||||
|
@ -14,33 +14,12 @@
|
||||
#pragma once
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
INTERFACE CONFIGURATION MACROS
|
||||
***************************************************************************/
|
||||
#define ESRIP_DRAW(name) int name(int l, int r, int fig, int attr, int addr, int col, int x_scale, int bank)
|
||||
|
||||
#define MCFG_ESRIP_FDT_R_CALLBACK(_read) \
|
||||
downcast<esrip_device &>(*device).set_fdt_r_callback(DEVCB_##_read);
|
||||
|
||||
#define MCFG_ESRIP_FDT_W_CALLBACK(_write) \
|
||||
downcast<esrip_device &>(*device).set_fdt_w_callback(DEVCB_##_write);
|
||||
|
||||
#define MCFG_ESRIP_STATUS_IN_CALLBACK(_read) \
|
||||
downcast<esrip_device &>(*device).set_status_in_callback(DEVCB_##_read);
|
||||
|
||||
#define MCFG_ESRIP_DRAW_CALLBACK_OWNER(_class, _method) \
|
||||
downcast<esrip_device &>(*device).set_draw_callback(esrip_device::draw_delegate(&_class::_method, #_class "::" #_method, this));
|
||||
|
||||
#define MCFG_ESRIP_LBRM_PROM(_tag) \
|
||||
downcast<esrip_device &>(*device).lbrm_prom(_tag);
|
||||
|
||||
#define MCFG_ESRIP_SCREEN(screen_tag) \
|
||||
downcast<esrip_device &>(*device).set_screen_tag(screen_tag);
|
||||
|
||||
//**************************************************************************
|
||||
// TYPE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
||||
#define ESRIP_DRAW(name) int name(int l, int r, int fig, int attr, int addr, int col, int x_scale, int bank)
|
||||
|
||||
// device type definition
|
||||
DECLARE_DEVICE_TYPE(ESRIP, esrip_device)
|
||||
|
||||
@ -56,12 +35,24 @@ public:
|
||||
esrip_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
// inline configuration helpers
|
||||
void set_screen_tag(const char *tag) { m_screen.set_tag(tag); }
|
||||
template <class Object> devcb_base &set_fdt_r_callback(Object &&cb) { return m_fdt_r.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_fdt_w_callback(Object &&cb) { return m_fdt_w.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_status_in_callback(Object &&cb) { return m_status_in.set_callback(std::forward<Object>(cb)); }
|
||||
template <typename Object> void set_draw_callback(Object &&cb) { m_draw = std::forward<Object>(cb); }
|
||||
void lbrm_prom(const char *name) { m_lbrm_prom = name; }
|
||||
void set_lbrm_prom_region(const char *name) { m_lbrm_prom = name; }
|
||||
template <typename T> void set_screen_tag(T &&tag) { m_screen.set_tag(std::forward<T>(tag)); }
|
||||
void set_draw_callback(draw_delegate callback) { m_draw = callback; }
|
||||
template <class FunctionClass> void set_draw_callback(const char *devname, int (FunctionClass::*callback)(int, int, int, int, int, int, int, int),
|
||||
const char *name)
|
||||
{
|
||||
set_draw_callback(draw_delegate(callback, name, devname, static_cast<FunctionClass *>(nullptr)));
|
||||
}
|
||||
template <class FunctionClass> void set_draw_callback(int (FunctionClass::*callback)(int, int, int, int, int, int, int, int), const char *name)
|
||||
{
|
||||
set_draw_callback(draw_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr)));
|
||||
}
|
||||
|
||||
// devcb3 accessors
|
||||
auto fdt_r() { return m_fdt_r.bind(); }
|
||||
auto fdt_w() { return m_fdt_w.bind(); }
|
||||
auto status_in() { return m_status_in.bind(); }
|
||||
|
||||
|
||||
// public interfaces
|
||||
uint8_t get_rip_status();
|
||||
|
@ -5,27 +5,18 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
#define MCFG_HCD62121_KOL_CB(_devcb) downcast<hcd62121_cpu_device &>(*device).set_kol_callback(DEVCB_##_devcb);
|
||||
#define MCFG_HCD62121_KOH_CB(_devcb) downcast<hcd62121_cpu_device &>(*device).set_koh_callback(DEVCB_##_devcb);
|
||||
#define MCFG_HCD62121_PORT_CB(_devcb) downcast<hcd62121_cpu_device &>(*device).set_port_callback(DEVCB_##_devcb);
|
||||
#define MCFG_HCD62121_OPT_CB(_devcb) downcast<hcd62121_cpu_device &>(*device).set_opt_callback(DEVCB_##_devcb);
|
||||
#define MCFG_HCD62121_KI_CB(_devcb) downcast<hcd62121_cpu_device &>(*device).set_ki_callback(DEVCB_##_devcb);
|
||||
#define MCFG_HCD62121_IN0_CB(_devcb) downcast<hcd62121_cpu_device &>(*device).set_in0_callback(DEVCB_##_devcb);
|
||||
|
||||
|
||||
class hcd62121_cpu_device : public cpu_device
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
hcd62121_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
template <class Object> devcb_base &set_kol_callback(Object &&cb) { return m_kol_cb.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_koh_callback(Object &&cb) { return m_koh_cb.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_port_callback(Object &&cb) { return m_port_cb.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_opt_callback(Object &&cb) { return m_opt_cb.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_ki_callback(Object &&cb) { return m_ki_cb.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_in0_callback(Object &&cb) { return m_in0_cb.set_callback(std::forward<Object>(cb)); }
|
||||
auto kol_cb() { return m_kol_cb.bind(); }
|
||||
auto koh_cb() { return m_koh_cb.bind(); }
|
||||
auto port_cb() { return m_port_cb.bind(); }
|
||||
auto opt_cb() { return m_opt_cb.bind(); }
|
||||
auto ki_cb() { return m_ki_cb.bind(); }
|
||||
auto in0_cb() { return m_in0_cb.bind(); }
|
||||
|
||||
protected:
|
||||
enum
|
||||
|
@ -14,6 +14,7 @@ class microtouch_device :
|
||||
public:
|
||||
microtouch_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
template <class Object> devcb_base &set_stx_callback(Object &&cb) { return m_out_stx_func.set_callback(std::forward<Object>(cb)); }
|
||||
auto stx() { return m_out_stx_func.bind(); }
|
||||
|
||||
virtual ioport_constructor device_input_ports() const override;
|
||||
DECLARE_WRITE_LINE_MEMBER(rx) { device_serial_interface::rx_w(state); }
|
||||
|
@ -2495,21 +2495,21 @@ int dcs_audio_device::preprocess_write(uint16_t data)
|
||||
|
||||
/* Basic DCS system with ADSP-2105 and 2k of SRAM (T-unit, V-unit, Killer Instinct) */
|
||||
|
||||
MACHINE_CONFIG_START(dcs_audio_device::add_mconfig_dcs )
|
||||
MCFG_DEVICE_ADD("dcs", ADSP2105, XTAL(10'000'000))
|
||||
MCFG_ADSP21XX_SPORT_TX_CB(WRITE32(*this, dcs_audio_device, sound_tx_callback)) /* callback for serial transmit */
|
||||
MCFG_ADSP21XX_TIMER_FIRED_CB(WRITELINE(*this, dcs_audio_device, timer_enable_callback)) /* callback for timer fired */
|
||||
MCFG_DEVICE_PROGRAM_MAP(dcs_2k_program_map)
|
||||
MCFG_DEVICE_DATA_MAP(dcs_2k_data_map)
|
||||
void dcs_audio_device::add_mconfig_dcs(machine_config &config)
|
||||
{
|
||||
adsp2105_device &dcs(ADSP2105(config, "dcs", XTAL(10'000'000)));
|
||||
dcs.sport_tx().set(FUNC(dcs_audio_device::sound_tx_callback)); /* callback for serial transmit */
|
||||
dcs.timer_fired().set(FUNC(dcs_audio_device::timer_enable_callback)); /* callback for timer fired */
|
||||
dcs.set_addrmap(AS_PROGRAM, &dcs_audio_device::dcs_2k_program_map);
|
||||
dcs.set_addrmap(AS_DATA, &dcs_audio_device::dcs_2k_data_map);
|
||||
|
||||
MCFG_TIMER_DEVICE_ADD("dcs_reg_timer", DEVICE_SELF, dcs_audio_device, dcs_irq)
|
||||
MCFG_TIMER_DEVICE_ADD("dcs_int_timer", DEVICE_SELF, dcs_audio_device, internal_timer_callback)
|
||||
TIMER(config, "dcs_reg_timer").configure_generic(FUNC(dcs_audio_device::dcs_irq));
|
||||
TIMER(config, "dcs_int_timer").configure_generic(FUNC(dcs_audio_device::internal_timer_callback));
|
||||
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
MCFG_DEVICE_ADD("dac", DMADAC) // AD-1851 16bit mono
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
DMADAC(config, "dac").add_route(ALL_OUTPUTS, "mono", 1.0); // AD-1851 16bit mono
|
||||
}
|
||||
|
||||
DEFINE_DEVICE_TYPE(DCS_AUDIO_2K, dcs_audio_2k_device, "dcs_audio_2k", "DCS Audio 2K")
|
||||
|
||||
@ -2522,10 +2522,10 @@ dcs_audio_2k_device::dcs_audio_2k_device(const machine_config &mconfig, const ch
|
||||
{
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(dcs_audio_2k_device::device_add_mconfig)
|
||||
|
||||
void dcs_audio_2k_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
dcs_audio_device::add_mconfig_dcs(config);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
DEFINE_DEVICE_TYPE(DCS_AUDIO_2K_UART, dcs_audio_2k_uart_device, "dcs_audio_2k_uart", "DCS Audio 2K UART")
|
||||
|
||||
@ -2539,13 +2539,11 @@ dcs_audio_2k_uart_device::dcs_audio_2k_uart_device(const machine_config &mconfig
|
||||
}
|
||||
|
||||
/* Basic DCS system with ADSP-2105 and 2k of SRAM, using a UART for communications (X-unit) */
|
||||
MACHINE_CONFIG_START(dcs_audio_2k_uart_device::device_add_mconfig)
|
||||
|
||||
void dcs_audio_2k_uart_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
dcs_audio_device::add_mconfig_dcs(config);
|
||||
|
||||
MCFG_DEVICE_MODIFY("dcs")
|
||||
MCFG_DEVICE_DATA_MAP(dcs_2k_uart_data_map)
|
||||
MACHINE_CONFIG_END
|
||||
subdevice<adsp21xx_device>("dcs")->set_addrmap(AS_DATA, &dcs_audio_2k_uart_device::dcs_2k_uart_data_map);
|
||||
}
|
||||
|
||||
DEFINE_DEVICE_TYPE(DCS_AUDIO_8K, dcs_audio_8k_device, "dcs_audio_8k", "DCS Audio 8K")
|
||||
|
||||
@ -2559,14 +2557,12 @@ dcs_audio_8k_device::dcs_audio_8k_device(const machine_config &mconfig, const ch
|
||||
}
|
||||
|
||||
/* Basic DCS system with ADSP-2105 and 8k of SRAM (Wolf-unit) */
|
||||
MACHINE_CONFIG_START(dcs_audio_8k_device::device_add_mconfig)
|
||||
|
||||
void dcs_audio_8k_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
dcs_audio_device::add_mconfig_dcs(config);
|
||||
|
||||
MCFG_DEVICE_MODIFY("dcs")
|
||||
MCFG_DEVICE_PROGRAM_MAP(dcs_8k_program_map)
|
||||
MCFG_DEVICE_DATA_MAP(dcs_8k_data_map)
|
||||
MACHINE_CONFIG_END
|
||||
subdevice<adsp21xx_device>("dcs")->set_addrmap(AS_PROGRAM, &dcs_audio_8k_device::dcs_8k_program_map);
|
||||
subdevice<adsp21xx_device>("dcs")->set_addrmap(AS_DATA, &dcs_audio_8k_device::dcs_8k_data_map);
|
||||
}
|
||||
|
||||
DEFINE_DEVICE_TYPE(DCS_AUDIO_WPC, dcs_audio_wpc_device, "dcs_audio_wpc", "DCS Audio WPC")
|
||||
|
||||
@ -2579,14 +2575,12 @@ dcs_audio_wpc_device::dcs_audio_wpc_device(const machine_config &mconfig, const
|
||||
{
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(dcs_audio_wpc_device::device_add_mconfig)
|
||||
|
||||
void dcs_audio_wpc_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
dcs_audio_device::add_mconfig_dcs(config);
|
||||
|
||||
MCFG_DEVICE_MODIFY("dcs")
|
||||
MCFG_DEVICE_PROGRAM_MAP(dcs_wpc_program_map)
|
||||
MCFG_DEVICE_DATA_MAP(dcs_wpc_data_map)
|
||||
MACHINE_CONFIG_END
|
||||
subdevice<adsp21xx_device>("dcs")->set_addrmap(AS_PROGRAM, &dcs_audio_wpc_device::dcs_wpc_program_map);
|
||||
subdevice<adsp21xx_device>("dcs")->set_addrmap(AS_DATA, &dcs_audio_wpc_device::dcs_wpc_data_map);
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
@ -2598,27 +2592,25 @@ dcs2_audio_device::dcs2_audio_device(const machine_config &mconfig, device_type
|
||||
{
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(dcs2_audio_device::add_mconfig_dcs2 )
|
||||
MCFG_DEVICE_ADD("dcs2", ADSP2115, XTAL(16'000'000))
|
||||
MCFG_ADSP21XX_SPORT_TX_CB(WRITE32(*this, dcs_audio_device, sound_tx_callback)) /* callback for serial transmit */
|
||||
MCFG_ADSP21XX_TIMER_FIRED_CB(WRITELINE(*this, dcs_audio_device, timer_enable_callback)) /* callback for timer fired */
|
||||
MCFG_DEVICE_PROGRAM_MAP(dcs2_2115_program_map)
|
||||
MCFG_DEVICE_DATA_MAP(dcs2_2115_data_map)
|
||||
void dcs2_audio_device::add_mconfig_dcs2(machine_config &config)
|
||||
{
|
||||
adsp2115_device &dcs2(ADSP2115(config, "dcs2", XTAL(16'000'000)));
|
||||
dcs2.sport_tx().set(FUNC(dcs_audio_device::sound_tx_callback)); /* callback for serial transmit */
|
||||
dcs2.timer_fired().set(FUNC(dcs_audio_device::timer_enable_callback)); /* callback for timer fired */
|
||||
dcs2.set_addrmap(AS_PROGRAM, &dcs2_audio_device::dcs2_2115_program_map);
|
||||
dcs2.set_addrmap(AS_DATA, &dcs2_audio_device::dcs2_2115_data_map);
|
||||
|
||||
MCFG_TIMER_DEVICE_ADD("dcs_reg_timer", DEVICE_SELF, dcs_audio_device, dcs_irq)
|
||||
MCFG_TIMER_DEVICE_ADD("dcs_sport0_timer", DEVICE_SELF, dcs_audio_device, sport0_irq)
|
||||
MCFG_TIMER_DEVICE_ADD("dcs_int_timer", DEVICE_SELF, dcs_audio_device, internal_timer_callback)
|
||||
MCFG_TIMER_DEVICE_ADD("dcs_hle_timer", DEVICE_SELF, dcs_audio_device, transfer_watchdog_callback)
|
||||
TIMER(config, "dcs_reg_timer").configure_generic(FUNC(dcs_audio_device::dcs_irq));
|
||||
TIMER(config, "dcs_sport0_timer").configure_generic(FUNC(dcs_audio_device::sport0_irq));
|
||||
TIMER(config, "dcs_int_timer").configure_generic(FUNC(dcs_audio_device::internal_timer_callback));
|
||||
TIMER(config, "dcs_hle_timer").configure_generic(FUNC(dcs_audio_device::transfer_watchdog_callback));
|
||||
|
||||
SPEAKER(config, "lspeaker").front_left();
|
||||
SPEAKER(config, "rspeaker").front_right();
|
||||
|
||||
MCFG_DEVICE_ADD("dac1", DMADAC)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
|
||||
|
||||
MCFG_DEVICE_ADD("dac2", DMADAC)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
DMADAC(config, "dac1").add_route(ALL_OUTPUTS, "rspeaker", 1.0);
|
||||
DMADAC(config, "dac2").add_route(ALL_OUTPUTS, "lspeaker", 1.0);
|
||||
}
|
||||
|
||||
DEFINE_DEVICE_TYPE(DCS2_AUDIO_2115, dcs2_audio_2115_device, "dcs2_audio_2115", "DCS2 Audio 2115")
|
||||
|
||||
@ -2631,11 +2623,10 @@ dcs2_audio_2115_device::dcs2_audio_2115_device(const machine_config &mconfig, co
|
||||
{
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(dcs2_audio_2115_device::device_add_mconfig)
|
||||
|
||||
void dcs2_audio_2115_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
dcs2_audio_device::add_mconfig_dcs2(config);
|
||||
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
DEFINE_DEVICE_TYPE(DCS2_AUDIO_2104, dcs2_audio_2104_device, "dcs2_audio_2104", "DCS2 Audio 2104")
|
||||
|
||||
@ -2649,16 +2640,16 @@ dcs2_audio_2104_device::dcs2_audio_2104_device(const machine_config &mconfig, co
|
||||
{
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(dcs2_audio_2104_device::device_add_mconfig)
|
||||
|
||||
void dcs2_audio_2104_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
dcs2_audio_device::add_mconfig_dcs2(config);
|
||||
|
||||
MCFG_DEVICE_REPLACE("dcs2", ADSP2104, XTAL(16'000'000))
|
||||
MCFG_ADSP21XX_SPORT_TX_CB(WRITE32(*this, dcs_audio_device, sound_tx_callback)) /* callback for serial transmit */
|
||||
MCFG_ADSP21XX_TIMER_FIRED_CB(WRITELINE(*this, dcs_audio_device,timer_enable_callback)) /* callback for timer fired */
|
||||
MCFG_DEVICE_PROGRAM_MAP(dcs2_2104_program_map)
|
||||
MCFG_DEVICE_DATA_MAP(dcs2_2104_data_map)
|
||||
MACHINE_CONFIG_END
|
||||
adsp2104_device &dcs2(ADSP2104(config.replace(), "dcs2", XTAL(16'000'000)));
|
||||
dcs2.sport_tx().set(FUNC(dcs_audio_device::sound_tx_callback)); /* callback for serial transmit */
|
||||
dcs2.timer_fired().set(FUNC(dcs_audio_device::timer_enable_callback)); /* callback for timer fired */
|
||||
dcs2.set_addrmap(AS_PROGRAM, &dcs2_audio_2104_device::dcs2_2104_program_map);
|
||||
dcs2.set_addrmap(AS_DATA, &dcs2_audio_2104_device::dcs2_2104_data_map);
|
||||
}
|
||||
|
||||
DEFINE_DEVICE_TYPE(DCS2_AUDIO_DSIO, dcs2_audio_dsio_device, "dcs2_audio_dsio", "DCS2 Audio DSIO")
|
||||
|
||||
@ -2671,30 +2662,28 @@ dcs2_audio_dsio_device::dcs2_audio_dsio_device(const machine_config &mconfig, co
|
||||
{
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(dcs2_audio_dsio_device::device_add_mconfig)
|
||||
MCFG_DEVICE_ADD("dsio", ADSP2181, XTAL(32'000'000))
|
||||
MCFG_ADSP21XX_SPORT_TX_CB(WRITE32(*this, dcs_audio_device, sound_tx_callback)) /* callback for serial transmit */
|
||||
MCFG_ADSP21XX_TIMER_FIRED_CB(WRITELINE(*this, dcs_audio_device, timer_enable_callback)) /* callback for timer fired */
|
||||
MCFG_ADSP21XX_DMOVLAY_CB(WRITE32(*this, dcs_audio_device, dmovlay_callback)) // callback for adsp 2181 dmovlay instruction
|
||||
MCFG_DEVICE_PROGRAM_MAP(dsio_program_map)
|
||||
MCFG_DEVICE_DATA_MAP(dsio_data_map)
|
||||
MCFG_DEVICE_IO_MAP(dsio_io_map)
|
||||
void dcs2_audio_dsio_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
adsp2181_device &dsio(ADSP2181(config, "dsio", XTAL(32'000'000)));
|
||||
dsio.sport_tx().set(FUNC(dcs_audio_device::sound_tx_callback)); /* callback for serial transmit */
|
||||
dsio.timer_fired().set(FUNC(dcs_audio_device::timer_enable_callback)); /* callback for timer fired */
|
||||
dsio.dmovlay().set(FUNC(dcs_audio_device::dmovlay_callback)); /* callback for adsp 2181 dmovlay instruction */
|
||||
dsio.set_addrmap(AS_PROGRAM, &dcs2_audio_dsio_device::dsio_program_map);
|
||||
dsio.set_addrmap(AS_DATA, &dcs2_audio_dsio_device::dsio_data_map);
|
||||
dsio.set_addrmap(AS_IO, &dcs2_audio_dsio_device::dsio_io_map);
|
||||
|
||||
ADDRESS_MAP_BANK(config, "data_map_bank").set_map(&dcs2_audio_dsio_device::dsio_rambank_map).set_options(ENDIANNESS_LITTLE, 16, 14, 0x2000);
|
||||
|
||||
MCFG_TIMER_DEVICE_ADD("dcs_reg_timer", DEVICE_SELF, dcs_audio_device, dcs_irq)
|
||||
MCFG_TIMER_DEVICE_ADD("dcs_int_timer", DEVICE_SELF, dcs_audio_device, internal_timer_callback)
|
||||
MCFG_TIMER_DEVICE_ADD("dcs_sport0_timer", DEVICE_SELF, dcs_audio_device, sport0_irq) // roadburn needs this to pass harware test
|
||||
TIMER(config, "dcs_reg_timer").configure_generic(FUNC(dcs_audio_device::dcs_irq));
|
||||
TIMER(config, "dcs_int_timer").configure_generic(FUNC(dcs_audio_device::internal_timer_callback));
|
||||
TIMER(config, "dcs_sport0_timer").configure_generic(FUNC(dcs_audio_device::sport0_irq)); // roadburn needs this to pass harware test
|
||||
|
||||
SPEAKER(config, "lspeaker").front_left();
|
||||
SPEAKER(config, "rspeaker").front_right();
|
||||
|
||||
MCFG_DEVICE_ADD("dac1", DMADAC)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
|
||||
|
||||
MCFG_DEVICE_ADD("dac2", DMADAC)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
DMADAC(config, "dac1").add_route(ALL_OUTPUTS, "rspeaker", 1.0);
|
||||
DMADAC(config, "dac2").add_route(ALL_OUTPUTS, "lspeaker", 1.0);
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
@ -2705,54 +2694,46 @@ dcs2_audio_denver_device::dcs2_audio_denver_device(const machine_config &mconfig
|
||||
{
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(dcs2_audio_denver_device::device_add_mconfig)
|
||||
MCFG_DEVICE_ADD("denver", ADSP2181, XTAL(33'333'000))
|
||||
MCFG_ADSP21XX_SPORT_TX_CB(WRITE32(*this, dcs_audio_device, sound_tx_callback)) /* callback for serial transmit */
|
||||
MCFG_ADSP21XX_TIMER_FIRED_CB(WRITELINE(*this, dcs_audio_device, timer_enable_callback)) /* callback for timer fired */
|
||||
MCFG_ADSP21XX_DMOVLAY_CB(WRITE32(*this, dcs_audio_device, dmovlay_callback)) // callback for adsp 2181 dmovlay instruction
|
||||
MCFG_DEVICE_PROGRAM_MAP(denver_program_map)
|
||||
MCFG_DEVICE_DATA_MAP(denver_data_map)
|
||||
MCFG_DEVICE_IO_MAP(denver_io_map)
|
||||
void dcs2_audio_denver_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
adsp2181_device &denver(ADSP2181(config, "denver", XTAL(33'333'000)));
|
||||
denver.sport_tx().set(FUNC(dcs_audio_device::sound_tx_callback)); /* callback for serial transmit */
|
||||
denver.timer_fired().set(FUNC(dcs_audio_device::timer_enable_callback)); /* callback for timer fired */
|
||||
denver.dmovlay().set(FUNC(dcs_audio_device::dmovlay_callback)); /* callback for adsp 2181 dmovlay instruction */
|
||||
denver.set_addrmap(AS_PROGRAM, &dcs2_audio_denver_device::denver_program_map);
|
||||
denver.set_addrmap(AS_DATA, &dcs2_audio_denver_device::denver_data_map);
|
||||
denver.set_addrmap(AS_IO, &dcs2_audio_denver_device::denver_io_map);
|
||||
|
||||
ADDRESS_MAP_BANK(config, "data_map_bank").set_map(&dcs2_audio_denver_device::denver_rambank_map).set_options(ENDIANNESS_LITTLE, 16, 14, 0x2000);
|
||||
|
||||
MCFG_TIMER_DEVICE_ADD("dcs_reg_timer", DEVICE_SELF, dcs_audio_device, dcs_irq)
|
||||
MCFG_TIMER_DEVICE_ADD("dcs_int_timer", DEVICE_SELF, dcs_audio_device, internal_timer_callback)
|
||||
MCFG_TIMER_DEVICE_ADD("dcs_sport0_timer", DEVICE_SELF, dcs_audio_device, sport0_irq) // Atlantis driver waits for sport0 rx interrupts
|
||||
|
||||
MACHINE_CONFIG_END
|
||||
TIMER(config, "dcs_reg_timer").configure_generic(FUNC(dcs_audio_device::dcs_irq));
|
||||
TIMER(config, "dcs_int_timer").configure_generic(FUNC(dcs_audio_device::internal_timer_callback));
|
||||
TIMER(config, "dcs_sport0_timer").configure_generic(FUNC(dcs_audio_device::sport0_irq)); // Atlantis driver waits for sport0 rx interrupts
|
||||
}
|
||||
|
||||
dcs2_audio_denver_5ch_device::dcs2_audio_denver_5ch_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||
dcs2_audio_denver_device(mconfig, DCS2_AUDIO_DENVER_5CH, tag, owner, clock)
|
||||
{
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(dcs2_audio_denver_5ch_device::device_add_mconfig)
|
||||
void dcs2_audio_denver_5ch_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
dcs2_audio_denver_device::device_add_mconfig(config);
|
||||
|
||||
SPEAKER(config, "flspeaker").front_left();
|
||||
SPEAKER(config, "frspeaker").front_right();
|
||||
SPEAKER(config, "rlspeaker").rear_left();
|
||||
SPEAKER(config, "rrspeaker").rear_right();
|
||||
SPEAKER(config, "subwoofer").subwoofer();
|
||||
|
||||
MCFG_DEVICE_ADD("dac1", DMADAC)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "flspeaker", 1.0)
|
||||
|
||||
MCFG_DEVICE_ADD("dac2", DMADAC)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "frspeaker", 1.0)
|
||||
|
||||
MCFG_DEVICE_ADD("dac3", DMADAC)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rlspeaker", 1.0)
|
||||
|
||||
MCFG_DEVICE_ADD("dac4", DMADAC)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rrspeaker", 1.0)
|
||||
|
||||
MCFG_DEVICE_ADD("dac5", DMADAC)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "subwoofer", 1.0)
|
||||
|
||||
MCFG_DEVICE_ADD("dac6", DMADAC)
|
||||
DMADAC(config, "dac1").add_route(ALL_OUTPUTS, "flspeaker", 1.0);
|
||||
DMADAC(config, "dac2").add_route(ALL_OUTPUTS, "frspeaker", 1.0);
|
||||
DMADAC(config, "dac3").add_route(ALL_OUTPUTS, "rlspeaker", 1.0);
|
||||
DMADAC(config, "dac4").add_route(ALL_OUTPUTS, "rrspeaker", 1.0);
|
||||
DMADAC(config, "dac5").add_route(ALL_OUTPUTS, "subwoofer", 1.0);
|
||||
DMADAC(config, "dac6");
|
||||
// Does not produce sound
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
DEFINE_DEVICE_TYPE(DCS2_AUDIO_DENVER_5CH, dcs2_audio_denver_5ch_device, "dcs2_audio_denver_5ch", "DCS2 Audio Denver 5 Channel")
|
||||
|
||||
@ -2761,16 +2742,15 @@ dcs2_audio_denver_2ch_device::dcs2_audio_denver_2ch_device(const machine_config
|
||||
{
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(dcs2_audio_denver_2ch_device::device_add_mconfig)
|
||||
void dcs2_audio_denver_2ch_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
dcs2_audio_denver_device::device_add_mconfig(config);
|
||||
|
||||
SPEAKER(config, "lspeaker").front_left();
|
||||
SPEAKER(config, "rspeaker").front_right();
|
||||
|
||||
MCFG_DEVICE_ADD("dac1", DMADAC)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
|
||||
|
||||
MCFG_DEVICE_ADD("dac2", DMADAC)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
DMADAC(config, "dac1").add_route(ALL_OUTPUTS, "rspeaker", 1.0);
|
||||
DMADAC(config, "dac2").add_route(ALL_OUTPUTS, "lspeaker", 1.0);
|
||||
}
|
||||
|
||||
DEFINE_DEVICE_TYPE(DCS2_AUDIO_DENVER_2CH, dcs2_audio_denver_2ch_device, "dcs2_audio_denver_2ch", "DCS2 Audio Denver 2 Channel")
|
||||
|
@ -490,16 +490,17 @@ acclaim_rax_device::acclaim_rax_device(const machine_config &mconfig, const char
|
||||
// device_add_mconfig - add device configuration
|
||||
//-------------------------------------------------
|
||||
|
||||
MACHINE_CONFIG_START(acclaim_rax_device::device_add_mconfig)
|
||||
MCFG_DEVICE_ADD("adsp", ADSP2181, XTAL(16'670'000))
|
||||
MCFG_ADSP21XX_SPORT_TX_CB(WRITE32(*this, acclaim_rax_device, adsp_sound_tx_callback)) /* callback for serial transmit */
|
||||
MCFG_ADSP21XX_DMOVLAY_CB(WRITE32(*this, acclaim_rax_device, dmovlay_callback)) // callback for adsp 2181 dmovlay instruction
|
||||
MCFG_DEVICE_PROGRAM_MAP(adsp_program_map)
|
||||
MCFG_DEVICE_DATA_MAP(adsp_data_map)
|
||||
MCFG_DEVICE_IO_MAP(adsp_io_map)
|
||||
void acclaim_rax_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
ADSP2181(config, m_cpu, XTAL(16'670'000));
|
||||
m_cpu->sport_tx().set(FUNC(acclaim_rax_device::adsp_sound_tx_callback)); /* callback for serial transmit */
|
||||
m_cpu->dmovlay().set(FUNC(acclaim_rax_device::dmovlay_callback)); /* callback for adsp 2181 dmovlay instruction */
|
||||
m_cpu->set_addrmap(AS_PROGRAM, &acclaim_rax_device::adsp_program_map);
|
||||
m_cpu->set_addrmap(AS_DATA, &acclaim_rax_device::adsp_data_map);
|
||||
m_cpu->set_addrmap(AS_IO, &acclaim_rax_device::adsp_io_map);
|
||||
|
||||
MCFG_TIMER_DEVICE_ADD("adsp_reg_timer0", DEVICE_SELF, acclaim_rax_device, adsp_irq0)
|
||||
MCFG_TIMER_DEVICE_ADD("adsp_dma_timer", DEVICE_SELF, acclaim_rax_device, dma_timer_callback)
|
||||
TIMER(config, "adsp_reg_timer0").configure_generic(FUNC(acclaim_rax_device::adsp_irq0));
|
||||
TIMER(config, "adsp_dma_timer").configure_generic(FUNC(acclaim_rax_device::dma_timer_callback));
|
||||
|
||||
GENERIC_LATCH_16(config, m_data_in);
|
||||
GENERIC_LATCH_16(config, m_data_out);
|
||||
@ -507,10 +508,7 @@ MACHINE_CONFIG_START(acclaim_rax_device::device_add_mconfig)
|
||||
SPEAKER(config, "lspeaker").front_left();
|
||||
SPEAKER(config, "rspeaker").front_right();
|
||||
|
||||
MCFG_DEVICE_ADD("dacl", DMADAC)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
|
||||
|
||||
MCFG_DEVICE_ADD("dacr", DMADAC)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
DMADAC(config, "dacl").add_route(ALL_OUTPUTS, "lspeaker", 1.0);
|
||||
DMADAC(config, "dacr").add_route(ALL_OUTPUTS, "rspeaker", 1.0);
|
||||
}
|
||||
|
||||
|
@ -405,11 +405,12 @@ WRITE_LINE_MEMBER( archimedes_state::a310_kart_rx_w )
|
||||
archimedes_clear_irq_b(ARCHIMEDES_IRQB_KBD_XMIT_EMPTY);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(aa310_state::aa310)
|
||||
void aa310_state::aa310(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", ARM, 24_MHz_XTAL / 3) /* ARM2 8 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(aa310_mem)
|
||||
MCFG_ARM_COPRO(VL86C020)
|
||||
ARM(config, m_maincpu, 24_MHz_XTAL / 3); /* ARM2 8 MHz */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &aa310_state::aa310_mem);
|
||||
m_maincpu->set_copro_type(arm_cpu_device::copro_type::VL86C020);
|
||||
|
||||
AAKART(config, m_kart, 8000000/256);
|
||||
m_kart->out_tx_callback().set(FUNC(archimedes_state::a310_kart_tx_w));
|
||||
@ -418,11 +419,11 @@ MACHINE_CONFIG_START(aa310_state::aa310)
|
||||
I2CMEM(config, "i2cmem", 0).set_data_size(0x100);
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(16_MHz_XTAL, 1024, 0, 735, 624/2, 0, 292) // RiscOS 3 default screen settings
|
||||
MCFG_SCREEN_UPDATE_DRIVER(archimedes_state, screen_update)
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_raw(16_MHz_XTAL, 1024, 0, 735, 624/2, 0, 292); // RiscOS 3 default screen settings
|
||||
m_screen->set_screen_update(FUNC(archimedes_state::screen_update));
|
||||
|
||||
MCFG_PALETTE_ADD("palette", 32768)
|
||||
PALETTE(config, m_palette, 32768);
|
||||
|
||||
RAM(config, m_ram).set_default_size("1M");
|
||||
|
||||
@ -430,34 +431,31 @@ MACHINE_CONFIG_START(aa310_state::aa310)
|
||||
fdc.set_disable_motor_control(true);
|
||||
fdc.intrq_wr_callback().set(FUNC(aa310_state::aa310_wd177x_intrq_w));
|
||||
fdc.drq_wr_callback().set(FUNC(aa310_state::aa310_wd177x_drq_w));
|
||||
MCFG_FLOPPY_DRIVE_ADD("fdc:0", aa310_floppies, "35dd", aa310_state::floppy_formats)
|
||||
MCFG_FLOPPY_DRIVE_SOUND(true)
|
||||
MCFG_FLOPPY_DRIVE_ADD("fdc:1", aa310_floppies, nullptr, aa310_state::floppy_formats) // rarely had 2nd FDD installed, space was used for HDD
|
||||
MCFG_FLOPPY_DRIVE_SOUND(true)
|
||||
FLOPPY_CONNECTOR(config, "fdc:0", aa310_floppies, "35dd", aa310_state::floppy_formats).enable_sound(true);
|
||||
|
||||
MCFG_SOFTWARE_LIST_ADD("flop_list", "archimedes")
|
||||
// rarely had 2nd FDD installed, space was used for HDD
|
||||
FLOPPY_CONNECTOR(config, "fdc:1", aa310_floppies, nullptr, aa310_state::floppy_formats).enable_sound(true);
|
||||
|
||||
SOFTWARE_LIST(config, "flop_list").set_original("archimedes");
|
||||
|
||||
SPEAKER(config, "speaker").front_center();
|
||||
MCFG_DEVICE_ADD("dac0", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.1) // unknown DAC
|
||||
MCFG_DEVICE_ADD("dac1", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.1) // unknown DAC
|
||||
MCFG_DEVICE_ADD("dac2", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.1) // unknown DAC
|
||||
MCFG_DEVICE_ADD("dac3", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.1) // unknown DAC
|
||||
MCFG_DEVICE_ADD("dac4", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.1) // unknown DAC
|
||||
MCFG_DEVICE_ADD("dac5", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.1) // unknown DAC
|
||||
MCFG_DEVICE_ADD("dac6", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.1) // unknown DAC
|
||||
MCFG_DEVICE_ADD("dac7", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.1) // unknown DAC
|
||||
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
|
||||
MCFG_SOUND_ROUTE(0, "dac0", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac0", -1.0, DAC_VREF_NEG_INPUT)
|
||||
MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
|
||||
MCFG_SOUND_ROUTE(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
|
||||
MCFG_SOUND_ROUTE(0, "dac3", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac3", -1.0, DAC_VREF_NEG_INPUT)
|
||||
MCFG_SOUND_ROUTE(0, "dac4", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac4", -1.0, DAC_VREF_NEG_INPUT)
|
||||
MCFG_SOUND_ROUTE(0, "dac5", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac5", -1.0, DAC_VREF_NEG_INPUT)
|
||||
MCFG_SOUND_ROUTE(0, "dac6", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac6", -1.0, DAC_VREF_NEG_INPUT)
|
||||
MCFG_SOUND_ROUTE(0, "dac7", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac7", -1.0, DAC_VREF_NEG_INPUT)
|
||||
for (int i = 0; i < 8; i++)
|
||||
{
|
||||
DAC_16BIT_R2R_TWOS_COMPLEMENT(config, m_dac[i], 0).add_route(0, "speaker", 0.1); // unknown DAC
|
||||
}
|
||||
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
|
||||
vref.set_output(5.0);
|
||||
vref.add_route(0, "dac0", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac0", -1.0, DAC_VREF_NEG_INPUT);
|
||||
vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT);
|
||||
vref.add_route(0, "dac2", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac2", -1.0, DAC_VREF_NEG_INPUT);
|
||||
vref.add_route(0, "dac3", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac3", -1.0, DAC_VREF_NEG_INPUT);
|
||||
vref.add_route(0, "dac4", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac4", -1.0, DAC_VREF_NEG_INPUT);
|
||||
vref.add_route(0, "dac5", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac5", -1.0, DAC_VREF_NEG_INPUT);
|
||||
vref.add_route(0, "dac6", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac6", -1.0, DAC_VREF_NEG_INPUT);
|
||||
vref.add_route(0, "dac7", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac7", -1.0, DAC_VREF_NEG_INPUT);
|
||||
|
||||
/* Expansion slots - 2-card backplane */
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
void aa310_state::aa305(machine_config &config)
|
||||
{
|
||||
@ -509,57 +507,56 @@ void aa310_state::aa4401(machine_config &config)
|
||||
/* Expansion slots - 4-card backplane */
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(aa310_state::aa540)
|
||||
void aa310_state::aa540(machine_config &config)
|
||||
{
|
||||
aa310(config);
|
||||
MCFG_DEVICE_MODIFY("maincpu") // ARM3
|
||||
MCFG_DEVICE_CLOCK(52_MHz_XTAL / 2)
|
||||
m_maincpu->set_clock(52_MHz_XTAL / 2); // ARM3
|
||||
|
||||
m_ram->set_default_size("4M").set_extra_options("8M,12M,16M");
|
||||
|
||||
/* 100MB HDD */
|
||||
|
||||
/* Expansion slots - 4-card backplane */
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(aa310_state::aa5000)
|
||||
void aa310_state::aa5000(machine_config &config)
|
||||
{
|
||||
aa310(config);
|
||||
MCFG_DEVICE_MODIFY("maincpu") // ARM3
|
||||
MCFG_DEVICE_CLOCK(50_MHz_XTAL / 2)
|
||||
m_maincpu->set_clock(50_MHz_XTAL / 2); // ARM3
|
||||
|
||||
m_ram->set_default_size("2M").set_extra_options("4M");
|
||||
|
||||
/* 80MB HDD */
|
||||
|
||||
/* Expansion slots - 4-card backplane */
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(aa310_state::aa4)
|
||||
void aa310_state::aa4(machine_config &config)
|
||||
{
|
||||
aa5000(config);
|
||||
MCFG_DEVICE_MODIFY("maincpu") // ARM3
|
||||
MCFG_DEVICE_CLOCK(24_MHz_XTAL)
|
||||
m_maincpu->set_clock(24_MHz_XTAL); // ARM3
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_MODIFY("screen")
|
||||
MCFG_SCREEN_TYPE(LCD)
|
||||
m_screen->set_type(SCREEN_TYPE_LCD);
|
||||
|
||||
/* 765 FDC */
|
||||
|
||||
/* 60MB HDD */
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(aa310_state::aa5000a)
|
||||
void aa310_state::aa5000a(machine_config &config)
|
||||
{
|
||||
aa5000(config);
|
||||
MCFG_DEVICE_MODIFY("maincpu") // ARM3
|
||||
MCFG_DEVICE_CLOCK(33000000)
|
||||
MACHINE_CONFIG_END
|
||||
m_maincpu->set_clock(33000000); // ARM3
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(aa310_state::aa3010)
|
||||
void aa310_state::aa3010(machine_config &config)
|
||||
{
|
||||
aa310(config);
|
||||
MCFG_DEVICE_MODIFY("maincpu") // ARM250
|
||||
MCFG_DEVICE_CLOCK(72_MHz_XTAL / 6)
|
||||
m_maincpu->set_clock(72_MHz_XTAL / 6); // ARM250
|
||||
|
||||
m_ram->set_default_size("1M").set_extra_options("2M");
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
void aa310_state::aa3020(machine_config &config)
|
||||
{
|
||||
|
@ -357,14 +357,14 @@ void apexc_state::mem(address_map &map)
|
||||
map(0x1000, 0x7fff).noprw();
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(apexc_state::apexc)
|
||||
|
||||
void apexc_state::apexc(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
/* APEXC CPU @ 2.0 kHz (memory word clock frequency) */
|
||||
device = &APEXC(config, m_maincpu, 2000);
|
||||
APEXC(config, m_maincpu, 2000);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &apexc_state::mem);
|
||||
MCFG_APEXC_TAPE_READ_CB(READ8(m_tape_reader, apexc_tape_reader_image_device, read))
|
||||
MCFG_APEXC_TAPE_PUNCH_CB(WRITE8(*this, apexc_state, tape_write))
|
||||
m_maincpu->tape_read().set(m_tape_reader, FUNC(apexc_tape_reader_image_device::read));
|
||||
m_maincpu->tape_punch().set(FUNC(apexc_state::tape_write));
|
||||
|
||||
/* video hardware does not exist, but we display a control panel and the typewriter output */
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
@ -377,13 +377,12 @@ MACHINE_CONFIG_START(apexc_state::apexc)
|
||||
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_apexc);
|
||||
|
||||
device = &PALETTE(config, m_palette, ARRAY_LENGTH(palette_table));
|
||||
MCFG_PALETTE_INIT_OWNER(apexc_state, apexc)
|
||||
PALETTE(config, m_palette, ARRAY_LENGTH(palette_table)).set_init(FUNC(apexc_state::palette_init_apexc));
|
||||
|
||||
APEXC_CYLINDER(config, m_cylinder);
|
||||
APEXC_TAPE_PUNCHER(config, m_tape_puncher);
|
||||
APEXC_TAPE_READER(config, m_tape_reader);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
ROM_START(apexc)
|
||||
/*CPU memory space*/
|
||||
|
@ -2034,29 +2034,29 @@ void aristmk5_state::machine_reset()
|
||||
memset(m_spi_data, 0, sizeof(m_spi_data));
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(aristmk5_state::aristmk5)
|
||||
MCFG_DEVICE_ADD("maincpu", ARM, MASTER_CLOCK/6) // 12000000
|
||||
MCFG_DEVICE_PROGRAM_MAP(aristmk5_drame_map)
|
||||
void aristmk5_state::aristmk5(machine_config &config)
|
||||
{
|
||||
ARM(config, m_maincpu, MASTER_CLOCK/6); // 12000000
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &aristmk5_state::aristmk5_drame_map);
|
||||
|
||||
WATCHDOG_TIMER(config, "watchdog").set_time(attotime::from_seconds(2)); /* 1.6 - 2 seconds */
|
||||
|
||||
/* TODO: this isn't supposed to access a keyboard ... */
|
||||
MCFG_DEVICE_ADD("kart", AAKART, 12000000/128) // TODO: frequency
|
||||
AAKART(config, m_kart, 12000000/128); // TODO: frequency
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(640, 400)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 400-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(archimedes_state, screen_update)
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_refresh_hz(60);
|
||||
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
m_screen->set_size(640, 400);
|
||||
m_screen->set_visarea(0, 640-1, 0, 400-1);
|
||||
m_screen->set_screen_update(FUNC(archimedes_state::screen_update));
|
||||
|
||||
MCFG_PALETTE_ADD("palette", 0x200)
|
||||
PALETTE(config, m_palette, 0x200);
|
||||
|
||||
EEPROM_93C56_16BIT(config, "eeprom0");
|
||||
EEPROM_93C56_16BIT(config, "eeprom1");
|
||||
EEPROM_93C56_16BIT(config, m_eeprom[0]);
|
||||
EEPROM_93C56_16BIT(config, m_eeprom[1]);
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_NONE);
|
||||
NVRAM(config, m_nvram, nvram_device::DEFAULT_NONE);
|
||||
|
||||
// TL16C452FN U71
|
||||
ns16450_device &uart0a(NS16450(config, "uart_0a", MASTER_CLOCK / 9));
|
||||
@ -2082,55 +2082,53 @@ MACHINE_CONFIG_START(aristmk5_state::aristmk5)
|
||||
NS16450(config, "uart_3b", MASTER_CLOCK / 9);
|
||||
// MCFG_INS8250_OUT_INT_CB(WRITELINE(*this, FUNC(input_merger_device::in_w<7>));
|
||||
|
||||
MCFG_INPUT_MERGER_ANY_HIGH("uart_irq")
|
||||
MCFG_INPUT_MERGER_OUTPUT_HANDLER(WRITELINE(*this, aristmk5_state, uart_irq_callback))
|
||||
INPUT_MERGER_ANY_HIGH(config, "uart_irq").output_handler().set(FUNC(aristmk5_state::uart_irq_callback));
|
||||
|
||||
MCFG_DEVICE_ADD("rtc", DS1302, 32.768_kHz_XTAL)
|
||||
DS1302(config, m_rtc, 32.768_kHz_XTAL);
|
||||
|
||||
MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(100), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW)
|
||||
HOPPER(config, m_hopper, attotime::from_msec(100), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW);
|
||||
|
||||
SPEAKER(config, "speaker").front_center();
|
||||
MCFG_DEVICE_ADD("dac0", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.1) // unknown DAC
|
||||
MCFG_DEVICE_ADD("dac1", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.1) // unknown DAC
|
||||
MCFG_DEVICE_ADD("dac2", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.1) // unknown DAC
|
||||
MCFG_DEVICE_ADD("dac3", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.1) // unknown DAC
|
||||
MCFG_DEVICE_ADD("dac4", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.1) // unknown DAC
|
||||
MCFG_DEVICE_ADD("dac5", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.1) // unknown DAC
|
||||
MCFG_DEVICE_ADD("dac6", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.1) // unknown DAC
|
||||
MCFG_DEVICE_ADD("dac7", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.1) // unknown DAC
|
||||
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
|
||||
MCFG_SOUND_ROUTE(0, "dac0", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac0", -1.0, DAC_VREF_NEG_INPUT)
|
||||
MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
|
||||
MCFG_SOUND_ROUTE(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
|
||||
MCFG_SOUND_ROUTE(0, "dac3", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac3", -1.0, DAC_VREF_NEG_INPUT)
|
||||
MCFG_SOUND_ROUTE(0, "dac4", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac4", -1.0, DAC_VREF_NEG_INPUT)
|
||||
MCFG_SOUND_ROUTE(0, "dac5", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac5", -1.0, DAC_VREF_NEG_INPUT)
|
||||
MCFG_SOUND_ROUTE(0, "dac6", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac6", -1.0, DAC_VREF_NEG_INPUT)
|
||||
MCFG_SOUND_ROUTE(0, "dac7", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac7", -1.0, DAC_VREF_NEG_INPUT)
|
||||
MACHINE_CONFIG_END
|
||||
for (int i = 0; i < 8; i++)
|
||||
{
|
||||
DAC_16BIT_R2R_TWOS_COMPLEMENT(config, m_dac[i], 0).add_route(0, "speaker", 0.1); // unknown DAC
|
||||
}
|
||||
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
|
||||
vref.set_output(5.0);
|
||||
vref.add_route(0, "dac0", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac0", -1.0, DAC_VREF_NEG_INPUT);
|
||||
vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT);
|
||||
vref.add_route(0, "dac2", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac2", -1.0, DAC_VREF_NEG_INPUT);
|
||||
vref.add_route(0, "dac3", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac3", -1.0, DAC_VREF_NEG_INPUT);
|
||||
vref.add_route(0, "dac4", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac4", -1.0, DAC_VREF_NEG_INPUT);
|
||||
vref.add_route(0, "dac5", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac5", -1.0, DAC_VREF_NEG_INPUT);
|
||||
vref.add_route(0, "dac6", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac6", -1.0, DAC_VREF_NEG_INPUT);
|
||||
vref.add_route(0, "dac7", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac7", -1.0, DAC_VREF_NEG_INPUT);
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(aristmk5_state::aristmk5_touch)
|
||||
void aristmk5_state::aristmk5_touch(machine_config &config)
|
||||
{
|
||||
aristmk5(config);
|
||||
subdevice<ns16450_device>("uart_0a")
|
||||
->out_tx_callback().set("microtouch", FUNC(microtouch_device::rx));
|
||||
subdevice<ns16450_device>("uart_0a")->out_tx_callback().set("microtouch", FUNC(microtouch_device::rx));
|
||||
|
||||
MCFG_MICROTOUCH_ADD("microtouch", 2400, WRITELINE("uart_0a", ins8250_uart_device, rx_w))
|
||||
MACHINE_CONFIG_END
|
||||
microtouch_device µtouch(MICROTOUCH(config, "microtouch", 2400));
|
||||
microtouch.stx().set("uart_0a", FUNC(ins8250_uart_device::rx_w));
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(aristmk5_state::aristmk5_usa)
|
||||
void aristmk5_state::aristmk5_usa(machine_config &config)
|
||||
{
|
||||
aristmk5(config);
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_DEVICE_PROGRAM_MAP(aristmk5_usa_map)
|
||||
MACHINE_CONFIG_END
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &aristmk5_state::aristmk5_usa_map);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(aristmk5_state::aristmk5_usa_touch)
|
||||
void aristmk5_state::aristmk5_usa_touch(machine_config &config)
|
||||
{
|
||||
aristmk5_usa(config);
|
||||
subdevice<ns16450_device>("uart_0a")
|
||||
->out_tx_callback().set("microtouch", FUNC(microtouch_device::rx));
|
||||
subdevice<ns16450_device>("uart_0a")->out_tx_callback().set("microtouch", FUNC(microtouch_device::rx));
|
||||
|
||||
MCFG_MICROTOUCH_ADD("microtouch", 2400, WRITELINE("uart_0a", ins8250_uart_device, rx_w))
|
||||
MACHINE_CONFIG_END
|
||||
microtouch_device µtouch(MICROTOUCH(config, "microtouch", 2400));
|
||||
microtouch.stx().set("uart_0a", FUNC(ins8250_uart_device::rx_w));
|
||||
}
|
||||
|
||||
#define ARISTOCRAT_MK5_BIOS \
|
||||
ROM_REGION( 0x400000, "set_4.04.09", ROMREGION_ERASEFF ) /* setchip v4.04.09 4meg */ \
|
||||
|
@ -53,13 +53,13 @@ public:
|
||||
required_shared_ptr<u8> m_video_ram;
|
||||
required_shared_ptr<u8> m_display_ram;
|
||||
DECLARE_PALETTE_INIT(cfx9850);
|
||||
u32 screen_update_cfx9850(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
|
||||
void cfx9850(machine_config &config);
|
||||
void cfx9850(address_map &map);
|
||||
void cfx9850_mem(address_map &map);
|
||||
protected:
|
||||
required_ioport_array<12> m_ko_port;
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<hcd62121_cpu_device> m_maincpu;
|
||||
|
||||
private:
|
||||
u16 m_ko; // KO lines KO1 - KO14
|
||||
@ -68,7 +68,7 @@ private:
|
||||
};
|
||||
|
||||
|
||||
void cfx9850_state::cfx9850(address_map &map)
|
||||
void cfx9850_state::cfx9850_mem(address_map &map)
|
||||
{
|
||||
map(0x000000, 0x007fff).rom();
|
||||
map(0x080000, 0x0807ff).ram().share("video_ram");
|
||||
@ -254,7 +254,7 @@ PALETTE_INIT_MEMBER(cfx9850_state, cfx9850)
|
||||
}
|
||||
|
||||
|
||||
u32 cfx9850_state::screen_update_cfx9850(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
u32 cfx9850_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
u16 offset = 0;
|
||||
|
||||
@ -282,27 +282,27 @@ u32 cfx9850_state::screen_update_cfx9850(screen_device &screen, bitmap_ind16 &bi
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(cfx9850_state::cfx9850)
|
||||
MCFG_DEVICE_ADD("maincpu", HCD62121, 4300000) /* X1 - 4.3 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(cfx9850)
|
||||
MCFG_HCD62121_KOL_CB(WRITE8(*this, cfx9850_state, kol_w))
|
||||
MCFG_HCD62121_KOH_CB(WRITE8(*this, cfx9850_state, koh_w))
|
||||
MCFG_HCD62121_PORT_CB(WRITE8(*this, cfx9850_state, port_w))
|
||||
MCFG_HCD62121_OPT_CB(WRITE8(*this, cfx9850_state, opt_w))
|
||||
MCFG_HCD62121_KI_CB(READ8(*this, cfx9850_state, ki_r))
|
||||
MCFG_HCD62121_IN0_CB(READ8(*this, cfx9850_state, in0_r))
|
||||
void cfx9850_state::cfx9850(machine_config &config)
|
||||
{
|
||||
HCD62121(config, m_maincpu, 4300000); /* X1 - 4.3 MHz */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &cfx9850_state::cfx9850_mem);
|
||||
m_maincpu->kol_cb().set(FUNC(cfx9850_state::kol_w));
|
||||
m_maincpu->koh_cb().set(FUNC(cfx9850_state::koh_w));
|
||||
m_maincpu->port_cb().set(FUNC(cfx9850_state::port_w));
|
||||
m_maincpu->opt_cb().set(FUNC(cfx9850_state::opt_w));
|
||||
m_maincpu->ki_cb().set(FUNC(cfx9850_state::ki_r));
|
||||
m_maincpu->in0_cb().set(FUNC(cfx9850_state::in0_r));
|
||||
|
||||
MCFG_SCREEN_ADD("screen", LCD)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_SIZE(128, 64)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 127, 0, 63)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(cfx9850_state, screen_update_cfx9850)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
|
||||
screen.set_refresh_hz(60);
|
||||
screen.set_size(128, 64);
|
||||
screen.set_visarea(0, 127, 0, 63);
|
||||
screen.set_screen_update(FUNC(cfx9850_state::screen_update));
|
||||
screen.set_palette("palette");
|
||||
|
||||
// TODO: Verify amount of colors and palette. Colors can be changed by changing the contrast.
|
||||
MCFG_PALETTE_ADD("palette", 4)
|
||||
MCFG_PALETTE_INIT_OWNER(cfx9850_state, cfx9850)
|
||||
MACHINE_CONFIG_END
|
||||
PALETTE(config, "palette", 4).set_init(FUNC(cfx9850_state::palette_init_cfx9850));
|
||||
}
|
||||
|
||||
|
||||
ROM_START(cfx9850)
|
||||
|
@ -1010,66 +1010,60 @@ INPUT_PORTS_END
|
||||
*
|
||||
*************************************/
|
||||
|
||||
MACHINE_CONFIG_START(cinemat_state::cinemat_nojmi_4k)
|
||||
|
||||
void cinemat_state::cinemat_nojmi_4k(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", CCPU, MASTER_CLOCK/4)
|
||||
MCFG_CCPU_VECTOR_FUNC(ccpu_cpu_device::vector_delegate(FUNC(cinemat_state::cinemat_vector_callback), this))
|
||||
MCFG_CCPU_EXTERNAL_FUNC(READ8(*this, cinemat_state,joystick_read))
|
||||
MCFG_DEVICE_PROGRAM_MAP(program_map_4k)
|
||||
MCFG_DEVICE_DATA_MAP(data_map)
|
||||
MCFG_DEVICE_IO_MAP(io_map)
|
||||
CCPU(config, m_maincpu, MASTER_CLOCK/4);
|
||||
m_maincpu->set_vector_func(FUNC(cinemat_state::cinemat_vector_callback));
|
||||
m_maincpu->external_func().set(FUNC(cinemat_state::joystick_read));
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &cinemat_state::program_map_4k);
|
||||
m_maincpu->set_addrmap(AS_DATA, &cinemat_state::data_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &cinemat_state::io_map);
|
||||
|
||||
LS259(config, m_outlatch); // 7J on CCG-1
|
||||
m_outlatch->q_out_cb<5>().set(FUNC(cinemat_state::coin_reset_w));
|
||||
m_outlatch->q_out_cb<6>().set(FUNC(cinemat_state::vector_control_w));
|
||||
|
||||
/* video hardware */
|
||||
MCFG_VECTOR_ADD("vector")
|
||||
MCFG_SCREEN_ADD("screen", VECTOR)
|
||||
MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
|
||||
MCFG_SCREEN_REFRESH_RATE(MASTER_CLOCK/4/16/16/16/16/2)
|
||||
MCFG_SCREEN_SIZE(1024, 768)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 1023, 0, 767)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(cinemat_state, screen_update_cinemat)
|
||||
MACHINE_CONFIG_END
|
||||
VECTOR(config, "vector", 0);
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_VECTOR);
|
||||
m_screen->set_video_attributes(VIDEO_ALWAYS_UPDATE);
|
||||
m_screen->set_refresh_hz(MASTER_CLOCK/4/16/16/16/16/2);
|
||||
m_screen->set_size(1024, 768);
|
||||
m_screen->set_visarea(0, 1023, 0, 767);
|
||||
m_screen->set_screen_update(FUNC(cinemat_state::screen_update_cinemat));
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(cinemat_state::cinemat_jmi_4k)
|
||||
void cinemat_state::cinemat_jmi_4k(machine_config &config)
|
||||
{
|
||||
cinemat_nojmi_4k(config);
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_CCPU_VECTOR_FUNC(ccpu_cpu_device::vector_delegate(FUNC(cinemat_state::cinemat_vector_callback), this))
|
||||
MCFG_CCPU_EXTERNAL_FUNC(READ8("maincpu",ccpu_cpu_device,read_jmi))
|
||||
MACHINE_CONFIG_END
|
||||
m_maincpu->set_vector_func(FUNC(cinemat_state::cinemat_vector_callback));
|
||||
m_maincpu->external_func().set("maincpu", FUNC(ccpu_cpu_device::read_jmi));
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(cinemat_state::cinemat_nojmi_8k)
|
||||
void cinemat_state::cinemat_nojmi_8k(machine_config &config)
|
||||
{
|
||||
cinemat_nojmi_4k(config);
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_DEVICE_PROGRAM_MAP(program_map_8k)
|
||||
MACHINE_CONFIG_END
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &cinemat_state::program_map_8k);
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(cinemat_state::cinemat_jmi_8k)
|
||||
void cinemat_state::cinemat_jmi_8k(machine_config &config)
|
||||
{
|
||||
cinemat_jmi_4k(config);
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_DEVICE_PROGRAM_MAP(program_map_8k)
|
||||
MACHINE_CONFIG_END
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &cinemat_state::program_map_8k);
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(cinemat_state::cinemat_jmi_16k)
|
||||
void cinemat_state::cinemat_jmi_16k(machine_config &config)
|
||||
{
|
||||
cinemat_jmi_4k(config);
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_DEVICE_PROGRAM_MAP(program_map_16k)
|
||||
MACHINE_CONFIG_END
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &cinemat_state::program_map_16k);
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(cinemat_state::cinemat_jmi_32k)
|
||||
void cinemat_state::cinemat_jmi_32k(machine_config &config)
|
||||
{
|
||||
cinemat_jmi_4k(config);
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_DEVICE_PROGRAM_MAP(program_map_32k)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &cinemat_state::program_map_32k);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -1079,117 +1073,112 @@ MACHINE_CONFIG_END
|
||||
*
|
||||
*************************************/
|
||||
|
||||
MACHINE_CONFIG_START(cinemat_state::spacewar)
|
||||
void cinemat_state::spacewar(machine_config &config)
|
||||
{
|
||||
cinemat_nojmi_4k(config);
|
||||
spacewar_sound(config);
|
||||
MCFG_SCREEN_MODIFY("screen")
|
||||
MCFG_SCREEN_UPDATE_DRIVER(cinemat_state, screen_update_spacewar)
|
||||
MACHINE_CONFIG_END
|
||||
m_screen->set_screen_update(FUNC(cinemat_state::screen_update_spacewar));
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(cinemat_state::barrier)
|
||||
void cinemat_state::barrier(machine_config &config)
|
||||
{
|
||||
cinemat_jmi_4k(config);
|
||||
barrier_sound(config);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(cinemat_state::speedfrk)
|
||||
void cinemat_state::speedfrk(machine_config &config)
|
||||
{
|
||||
cinemat_nojmi_8k(config);
|
||||
speedfrk_sound(config);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(cinemat_state::starhawk)
|
||||
void cinemat_state::starhawk(machine_config &config)
|
||||
{
|
||||
cinemat_jmi_4k(config);
|
||||
starhawk_sound(config);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(cinemat_16level_state::sundance)
|
||||
void cinemat_16level_state::sundance(machine_config &config)
|
||||
{
|
||||
cinemat_jmi_8k(config);
|
||||
sundance_sound(config);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(cinemat_state::tailg)
|
||||
void cinemat_state::tailg(machine_config &config)
|
||||
{
|
||||
cinemat_nojmi_8k(config);
|
||||
tailg_sound(config);
|
||||
|
||||
m_outlatch->q_out_cb<7>().set(FUNC(cinemat_state::mux_select_w));
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(cinemat_state::warrior)
|
||||
void cinemat_state::warrior(machine_config &config)
|
||||
{
|
||||
cinemat_jmi_8k(config);
|
||||
warrior_sound(config);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(cinemat_state::armora)
|
||||
void cinemat_state::armora(machine_config &config)
|
||||
{
|
||||
cinemat_jmi_16k(config);
|
||||
armora_sound(config);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(cinemat_state::ripoff)
|
||||
void cinemat_state::ripoff(machine_config &config)
|
||||
{
|
||||
cinemat_jmi_8k(config);
|
||||
ripoff_sound(config);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(cinemat_state::starcas)
|
||||
void cinemat_state::starcas(machine_config &config)
|
||||
{
|
||||
cinemat_jmi_8k(config);
|
||||
starcas_sound(config);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(cinemat_64level_state::solarq)
|
||||
void cinemat_64level_state::solarq(machine_config &config)
|
||||
{
|
||||
cinemat_jmi_16k(config);
|
||||
solarq_sound(config);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(cinemat_color_state::boxingb)
|
||||
void cinemat_color_state::boxingb(machine_config &config)
|
||||
{
|
||||
cinemat_jmi_32k(config);
|
||||
boxingb_sound(config);
|
||||
MCFG_SCREEN_MODIFY("screen")
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 1024, 0, 788)
|
||||
m_screen->set_visarea(0, 1024, 0, 788);
|
||||
|
||||
m_outlatch->q_out_cb<7>().set(FUNC(cinemat_state::mux_select_w));
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(cinemat_state::wotw)
|
||||
void cinemat_state::wotw(machine_config &config)
|
||||
{
|
||||
cinemat_jmi_16k(config);
|
||||
MCFG_SCREEN_MODIFY("screen")
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 1120, 0, 767)
|
||||
m_screen->set_visarea(0, 1120, 0, 767);
|
||||
wotw_sound(config);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(cinemat_color_state::wotwc)
|
||||
void cinemat_color_state::wotwc(machine_config &config)
|
||||
{
|
||||
cinemat_jmi_16k(config);
|
||||
wotw_sound(config);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(demon_state::demon)
|
||||
void demon_state::demon(machine_config &config)
|
||||
{
|
||||
cinemat_jmi_16k(config);
|
||||
demon_sound(config);
|
||||
MCFG_SCREEN_MODIFY("screen")
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 1024, 0, 805)
|
||||
MACHINE_CONFIG_END
|
||||
m_screen->set_visarea(0, 1024, 0, 805);
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(qb3_state::qb3)
|
||||
void qb3_state::qb3(machine_config &config)
|
||||
{
|
||||
cinemat_jmi_32k(config);
|
||||
qb3_sound(config);
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_DEVICE_DATA_MAP(data_map_qb3)
|
||||
MCFG_DEVICE_IO_MAP(io_map_qb3)
|
||||
MCFG_SCREEN_MODIFY("screen")
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 1120, 0, 780)
|
||||
MACHINE_CONFIG_END
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &qb3_state::data_map_qb3);
|
||||
m_maincpu->set_addrmap(AS_IO, &qb3_state::io_map_qb3);
|
||||
m_screen->set_visarea(0, 1120, 0, 780);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -245,30 +245,32 @@ void craft_state::machine_reset()
|
||||
m_last_cycles = 0;
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(craft_state::craft)
|
||||
|
||||
void craft_state::craft(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", ATMEGA88, MASTER_CLOCK)
|
||||
MCFG_DEVICE_PROGRAM_MAP(craft_prg_map)
|
||||
MCFG_DEVICE_DATA_MAP(craft_data_map)
|
||||
MCFG_DEVICE_IO_MAP(craft_io_map)
|
||||
MCFG_CPU_AVR8_EEPROM("eeprom")
|
||||
ATMEGA88(config, m_maincpu, MASTER_CLOCK);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &craft_state::craft_prg_map);
|
||||
m_maincpu->set_addrmap(AS_DATA, &craft_state::craft_data_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &craft_state::craft_io_map);
|
||||
m_maincpu->set_eeprom_tag("eeprom");
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(59.99)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1429)) /* accurate */
|
||||
MCFG_SCREEN_SIZE(635, 525)
|
||||
MCFG_SCREEN_VISIBLE_AREA(47, 526, 36, 515)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(craft_state, screen_update_craft)
|
||||
MCFG_PALETTE_ADD("palette", 0x1000)
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_refresh_hz(59.99);
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(1429)); /* accurate */
|
||||
screen.set_size(635, 525);
|
||||
screen.set_visarea(47, 526, 36, 515);
|
||||
screen.set_screen_update(FUNC(craft_state::screen_update_craft));
|
||||
PALETTE(config, "palette", 0x1000);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "avr8").front_center();
|
||||
MCFG_DEVICE_ADD("dac", DAC_6BIT_R2R, 0) MCFG_SOUND_ROUTE(0, "avr8", 0.25) // pd1/pd2/pd4/pd5/pd6/pd7 + 2k(x7) + 1k(x5)
|
||||
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_6BIT_R2R(config, "dac", 0).add_route(0, "avr8", 0.25); // pd1/pd2/pd4/pd5/pd6/pd7 + 2k(x7) + 1k(x5)
|
||||
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);
|
||||
}
|
||||
|
||||
ROM_START( craft )
|
||||
ROM_REGION( 0x2000, "maincpu", 0 ) /* Main program store */
|
||||
|
@ -223,41 +223,38 @@ INTERRUPT_GEN_MEMBER(ertictac_state::ertictac_podule_irq)
|
||||
#define NVRAM_SIZE 256
|
||||
#define NVRAM_PAGE_SIZE 0 /* max size of one write request */
|
||||
|
||||
MACHINE_CONFIG_START(ertictac_state::ertictac)
|
||||
|
||||
MCFG_DEVICE_ADD("maincpu", ARM, XTAL(24'000'000)/3) /* guess, 12MHz 8MHz or 6MHz, what's the correct divider 2, 3 or 4? */
|
||||
MCFG_DEVICE_PROGRAM_MAP(ertictac_map)
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(ertictac_state, ertictac_podule_irq, 60) // FIXME: timing of this
|
||||
void ertictac_state::ertictac(machine_config &config)
|
||||
{
|
||||
ARM(config, m_maincpu, XTAL(24'000'000)/3); /* guess, 12MHz 8MHz or 6MHz, what's the correct divider 2, 3 or 4? */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &ertictac_state::ertictac_map);
|
||||
m_maincpu->set_periodic_int(FUNC(ertictac_state::ertictac_podule_irq), attotime::from_hz(60)); // FIXME: timing of this
|
||||
|
||||
I2CMEM(config, "i2cmem", 0).set_page_size(NVRAM_PAGE_SIZE).set_data_size(NVRAM_SIZE);
|
||||
|
||||
// AAKART(config, m_kart, XTAL(24'000'000)/3); // TODO: frequency
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(XTAL(16'000'000),1024,0,735,624/2,0,292) // RiscOS 3 default screen settings
|
||||
MCFG_SCREEN_UPDATE_DRIVER(archimedes_state, screen_update)
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_raw(XTAL(16'000'000), 1024,0,735, 624/2,0,292); // RiscOS 3 default screen settings
|
||||
m_screen->set_screen_update(FUNC(archimedes_state::screen_update));
|
||||
|
||||
MCFG_PALETTE_ADD("palette", 0x200)
|
||||
PALETTE(config, m_palette, 0x200);
|
||||
|
||||
SPEAKER(config, "speaker").front_center();
|
||||
MCFG_DEVICE_ADD("dac0", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.05) // unknown DAC
|
||||
MCFG_DEVICE_ADD("dac1", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.05) // unknown DAC
|
||||
MCFG_DEVICE_ADD("dac2", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.05) // unknown DAC
|
||||
MCFG_DEVICE_ADD("dac3", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.05) // unknown DAC
|
||||
MCFG_DEVICE_ADD("dac4", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.05) // unknown DAC
|
||||
MCFG_DEVICE_ADD("dac5", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.05) // unknown DAC
|
||||
MCFG_DEVICE_ADD("dac6", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.05) // unknown DAC
|
||||
MCFG_DEVICE_ADD("dac7", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.05) // unknown DAC
|
||||
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
|
||||
MCFG_SOUND_ROUTE(0, "dac0", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac0", -1.0, DAC_VREF_NEG_INPUT)
|
||||
MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
|
||||
MCFG_SOUND_ROUTE(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
|
||||
MCFG_SOUND_ROUTE(0, "dac3", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac3", -1.0, DAC_VREF_NEG_INPUT)
|
||||
MCFG_SOUND_ROUTE(0, "dac4", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac4", -1.0, DAC_VREF_NEG_INPUT)
|
||||
MCFG_SOUND_ROUTE(0, "dac5", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac5", -1.0, DAC_VREF_NEG_INPUT)
|
||||
MCFG_SOUND_ROUTE(0, "dac6", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac6", -1.0, DAC_VREF_NEG_INPUT)
|
||||
MCFG_SOUND_ROUTE(0, "dac7", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac7", -1.0, DAC_VREF_NEG_INPUT)
|
||||
MACHINE_CONFIG_END
|
||||
for (int i = 0; i < 8; i++)
|
||||
{
|
||||
DAC_16BIT_R2R_TWOS_COMPLEMENT(config, m_dac[i], 0).add_route(0, "speaker", 0.05); // unknown DAC
|
||||
}
|
||||
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
|
||||
vref.set_output(5.0);
|
||||
vref.add_route(0, "dac0", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac0", -1.0, DAC_VREF_NEG_INPUT);
|
||||
vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT);
|
||||
vref.add_route(0, "dac2", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac2", -1.0, DAC_VREF_NEG_INPUT);
|
||||
vref.add_route(0, "dac3", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac3", -1.0, DAC_VREF_NEG_INPUT);
|
||||
vref.add_route(0, "dac4", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac4", -1.0, DAC_VREF_NEG_INPUT);
|
||||
vref.add_route(0, "dac5", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac5", -1.0, DAC_VREF_NEG_INPUT);
|
||||
vref.add_route(0, "dac6", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac6", -1.0, DAC_VREF_NEG_INPUT);
|
||||
vref.add_route(0, "dac7", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac7", -1.0, DAC_VREF_NEG_INPUT);
|
||||
}
|
||||
|
||||
ROM_START( ertictac )
|
||||
ROM_REGION(0x800000, "maincpu", 0 )
|
||||
|
@ -664,52 +664,56 @@ void esripsys_state::init_esripsys()
|
||||
save_item(NAME(m_fbsel));
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(esripsys_state::esripsys)
|
||||
MCFG_DEVICE_ADD("game_cpu", MC6809E, XTAL(8'000'000) / 4)
|
||||
MCFG_DEVICE_PROGRAM_MAP(game_cpu_map)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", esripsys_state, esripsys_vblank_irq)
|
||||
MCFG_QUANTUM_PERFECT_CPU("game_cpu")
|
||||
void esripsys_state::esripsys(machine_config &config)
|
||||
{
|
||||
MC6809E(config, m_gamecpu, XTAL(8'000'000) / 4);
|
||||
m_gamecpu->set_addrmap(AS_PROGRAM, &esripsys_state::game_cpu_map);
|
||||
m_gamecpu->set_vblank_int("screen", FUNC(esripsys_state::esripsys_vblank_irq));
|
||||
|
||||
MCFG_DEVICE_ADD("frame_cpu", MC6809E, XTAL(8'000'000) / 4)
|
||||
MCFG_DEVICE_PROGRAM_MAP(frame_cpu_map)
|
||||
config.m_perfect_cpu_quantum = subtag("game_cpu");
|
||||
|
||||
MCFG_DEVICE_ADD("video_cpu", ESRIP, XTAL(40'000'000) / 4)
|
||||
MCFG_DEVICE_PROGRAM_MAP(video_cpu_map)
|
||||
MCFG_ESRIP_FDT_R_CALLBACK(READ16(*this, esripsys_state, fdt_rip_r))
|
||||
MCFG_ESRIP_FDT_W_CALLBACK(WRITE16(*this, esripsys_state, fdt_rip_w))
|
||||
MCFG_ESRIP_STATUS_IN_CALLBACK(READ8(*this, esripsys_state, rip_status_in))
|
||||
MCFG_ESRIP_DRAW_CALLBACK_OWNER(esripsys_state, esripsys_draw)
|
||||
MCFG_ESRIP_LBRM_PROM("proms")
|
||||
MCFG_ESRIP_SCREEN("screen")
|
||||
MC6809E(config, m_framecpu, XTAL(8'000'000) / 4);
|
||||
m_framecpu->set_addrmap(AS_PROGRAM, &esripsys_state::frame_cpu_map);
|
||||
|
||||
MCFG_DEVICE_ADD("sound_cpu", MC6809E, XTAL(8'000'000) / 4)
|
||||
MCFG_DEVICE_PROGRAM_MAP(sound_cpu_map)
|
||||
ESRIP(config, m_videocpu, XTAL(40'000'000) / 4);
|
||||
m_videocpu->set_addrmap(AS_PROGRAM, &esripsys_state::video_cpu_map);
|
||||
m_videocpu->fdt_r().set(FUNC(esripsys_state::fdt_rip_r));
|
||||
m_videocpu->fdt_w().set(FUNC(esripsys_state::fdt_rip_w));
|
||||
m_videocpu->status_in().set(FUNC(esripsys_state::rip_status_in));
|
||||
m_videocpu->set_draw_callback(FUNC(esripsys_state::esripsys_draw));
|
||||
m_videocpu->set_lbrm_prom_region("proms");
|
||||
m_videocpu->set_screen_tag(m_screen);
|
||||
|
||||
MC6809E(config, m_soundcpu, XTAL(8'000'000) / 4);
|
||||
m_soundcpu->set_addrmap(AS_PROGRAM, &esripsys_state::sound_cpu_map);
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
||||
|
||||
/* Video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(ESRIPSYS_PIXEL_CLOCK, ESRIPSYS_HTOTAL, ESRIPSYS_HBLANK_END, ESRIPSYS_HBLANK_START, ESRIPSYS_VTOTAL, ESRIPSYS_VBLANK_END, ESRIPSYS_VBLANK_START)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(esripsys_state, screen_update_esripsys)
|
||||
MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_raw(ESRIPSYS_PIXEL_CLOCK, ESRIPSYS_HTOTAL, ESRIPSYS_HBLANK_END, ESRIPSYS_HBLANK_START,
|
||||
ESRIPSYS_VTOTAL, ESRIPSYS_VBLANK_END, ESRIPSYS_VBLANK_START);
|
||||
m_screen->set_screen_update(FUNC(esripsys_state::screen_update_esripsys));
|
||||
m_screen->set_video_attributes(VIDEO_ALWAYS_UPDATE);
|
||||
|
||||
/* Sound hardware */
|
||||
SPEAKER(config, "speaker").front_center();
|
||||
|
||||
MCFG_DEVICE_ADD("dac", MC3410, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) // unknown DAC
|
||||
MCFG_DEVICE_ADD("dacvol", MC3408, 0) // unknown DAC
|
||||
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
|
||||
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
|
||||
MCFG_SOUND_ROUTE(0, "dacvol", 1.0, DAC_VREF_POS_INPUT)
|
||||
MC3410(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 1.0); // unknown DAC
|
||||
mc3408_device &dacvol(MC3408(config, "dacvol", 0)); // unknown DAC
|
||||
dacvol.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
|
||||
dacvol.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
|
||||
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
|
||||
vref.set_output(5.0);
|
||||
vref.add_route(0, "dacvol", 1.0, DAC_VREF_POS_INPUT);
|
||||
|
||||
MCFG_DEVICE_ADD("tms5220nl", TMS5220, 640000)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
|
||||
TMS5220(config, m_tms, 640000).add_route(ALL_OUTPUTS, "speaker", 1.0);
|
||||
|
||||
/* 6840 PTM */
|
||||
ptm6840_device &ptm(PTM6840(config, "6840ptm", XTAL(8'000'000) / 4));
|
||||
ptm.set_external_clocks(0, 0, 0);
|
||||
ptm.irq_callback().set(FUNC(esripsys_state::ptm_irq));
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
|
||||
/*************************************
|
||||
|
@ -921,28 +921,28 @@ INPUT_PORTS_END
|
||||
*
|
||||
*************************************/
|
||||
|
||||
MACHINE_CONFIG_START(gaelco3d_state::gaelco3d)
|
||||
|
||||
void gaelco3d_state::gaelco3d(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD(m_maincpu, M68000, 15000000)
|
||||
MCFG_DEVICE_PROGRAM_MAP(main_map)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gaelco3d_state, vblank_gen)
|
||||
M68000(config, m_maincpu, 15000000);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &gaelco3d_state::main_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(gaelco3d_state::vblank_gen));
|
||||
|
||||
TMS32031(config, m_tms, 60000000);
|
||||
m_tms->set_addrmap(AS_PROGRAM, &gaelco3d_state::tms_map);
|
||||
m_tms->set_mcbl_mode(true);
|
||||
m_tms->iack().set(FUNC(gaelco3d_state::tms_iack_w));
|
||||
|
||||
MCFG_DEVICE_ADD(m_adsp, ADSP2115, 16000000)
|
||||
MCFG_ADSP21XX_SPORT_TX_CB(WRITE32(*this, gaelco3d_state, adsp_tx_callback))
|
||||
MCFG_DEVICE_PROGRAM_MAP(adsp_program_map)
|
||||
MCFG_DEVICE_DATA_MAP(adsp_data_map)
|
||||
ADSP2115(config, m_adsp, 16000000);
|
||||
m_adsp->sport_tx().set(FUNC(gaelco3d_state::adsp_tx_callback));
|
||||
m_adsp->set_addrmap(AS_PROGRAM, &gaelco3d_state::adsp_program_map);
|
||||
m_adsp->set_addrmap(AS_DATA, &gaelco3d_state::adsp_data_map);
|
||||
|
||||
EEPROM_93C66_16BIT(config, m_eeprom, eeprom_serial_streaming::ENABLE);
|
||||
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
|
||||
config.m_minimum_quantum = attotime::from_hz(6000);
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD("adsp_timer", gaelco3d_state, adsp_autobuffer_irq)
|
||||
TIMER(config, "adsp_timer").configure_generic(FUNC(gaelco3d_state::adsp_autobuffer_irq));
|
||||
|
||||
GAELCO_SERIAL(config, m_serial, 0);
|
||||
m_serial->irq_handler().set(FUNC(gaelco3d_state::ser_irq));
|
||||
@ -969,46 +969,39 @@ MACHINE_CONFIG_START(gaelco3d_state::gaelco3d)
|
||||
GENERIC_LATCH_8(config, m_soundlatch).data_pending_callback().set_inputline(m_adsp, ADSP2115_IRQ2);
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD(m_screen, RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
|
||||
MCFG_SCREEN_SIZE(576, 432)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 575, 0, 431)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(gaelco3d_state, screen_update)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_refresh_hz(60);
|
||||
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
|
||||
m_screen->set_size(576, 432);
|
||||
m_screen->set_visarea(0, 575, 0, 431);
|
||||
m_screen->set_screen_update(FUNC(gaelco3d_state::screen_update));
|
||||
m_screen->set_palette("palette");
|
||||
|
||||
MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette")
|
||||
PALETTE(config, "palette", 32768).set_init("palette", FUNC(palette_device::palette_init_RRRRRGGGGGBBBBB));
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
MCFG_DEVICE_ADD(m_dmadac[0], DMADAC)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) /* speedup: front mono */
|
||||
|
||||
MCFG_DEVICE_ADD(m_dmadac[1], DMADAC)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) /* speedup: left rear */
|
||||
|
||||
MCFG_DEVICE_ADD(m_dmadac[2], DMADAC)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) /* speedup: right rear */
|
||||
|
||||
MCFG_DEVICE_ADD(m_dmadac[3], DMADAC)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) /* speedup: seat speaker */
|
||||
MACHINE_CONFIG_END
|
||||
DMADAC(config, m_dmadac[0]).add_route(ALL_OUTPUTS, "mono", 1.0); /* speedup: front mono */
|
||||
DMADAC(config, m_dmadac[1]).add_route(ALL_OUTPUTS, "mono", 1.0); /* speedup: left rear */
|
||||
DMADAC(config, m_dmadac[2]).add_route(ALL_OUTPUTS, "mono", 1.0); /* speedup: right rear */
|
||||
DMADAC(config, m_dmadac[3]).add_route(ALL_OUTPUTS, "mono", 1.0); /* speedup: seat speaker */
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(gaelco3d_state::gaelco3d2)
|
||||
void gaelco3d_state::gaelco3d2(machine_config &config)
|
||||
{
|
||||
gaelco3d(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_REPLACE("maincpu", M68EC020, 25000000)
|
||||
MCFG_DEVICE_PROGRAM_MAP(main020_map)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gaelco3d_state, vblank_gen)
|
||||
M68EC020(config.replace(), m_maincpu, 25000000);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &gaelco3d_state::main020_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(gaelco3d_state::vblank_gen));
|
||||
|
||||
MCFG_DEVICE_MODIFY("tms")
|
||||
MCFG_DEVICE_CLOCK(50000000)
|
||||
m_tms->set_clock(50000000);
|
||||
|
||||
MCFG_MACHINE_RESET_OVERRIDE(gaelco3d_state,gaelco3d2)
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
void gaelco3d_state::footbpow(machine_config &config)
|
||||
{
|
||||
|
@ -1454,12 +1454,12 @@ WRITE_LINE_MEMBER(harddriv_state::video_int_write_line)
|
||||
|
||||
|
||||
/* Driver board without MSP (used by Race Drivin' cockpit) */
|
||||
MACHINE_CONFIG_START(harddriv_state::driver_nomsp)
|
||||
|
||||
void harddriv_state::driver_nomsp(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", M68010, HARDDRIV_MASTER_CLOCK/4)
|
||||
MCFG_DEVICE_PROGRAM_MAP(driver_68k_map)
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(harddriv_state, hd68k_irq_gen, HARDDRIV_MASTER_CLOCK/16/16/16/16/2)
|
||||
M68010(config, m_maincpu, HARDDRIV_MASTER_CLOCK/4);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &harddriv_state::driver_68k_map);
|
||||
m_maincpu->set_periodic_int(FUNC(harddriv_state::hd68k_irq_gen), attotime::from_hz(HARDDRIV_MASTER_CLOCK/16/16/16/16/2));
|
||||
|
||||
SLAPSTIC(config, m_slapstic_device, 117, true);
|
||||
|
||||
@ -1486,34 +1486,34 @@ MACHINE_CONFIG_START(harddriv_state::driver_nomsp)
|
||||
m_gsp->set_shiftreg_out_callback(FUNC(harddriv_state::hdgsp_read_from_shiftreg));
|
||||
m_gsp->set_screen("screen");
|
||||
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(30000))
|
||||
config.m_minimum_quantum = attotime::from_hz(30000);
|
||||
|
||||
MCFG_DEVICE_ADD("200e", M48T02, 0)
|
||||
M48T02(config, m_200e, 0);
|
||||
|
||||
EEPROM_2816(config, "210e"); // MK48Z02
|
||||
EEPROM_2816(config, m_210e); // MK48Z02
|
||||
|
||||
MCFG_DEVICE_ADD("duartn68681", MC68681, XTAL(3'686'400))
|
||||
MCFG_MC68681_IRQ_CALLBACK(WRITELINE(*this, harddriv_state, harddriv_duart_irq_handler))
|
||||
MCFG_MC68681_A_TX_CALLBACK(WRITELINE ("rs232", rs232_port_device, write_txd))
|
||||
MC68681(config, m_duartn68681, XTAL(3'686'400));
|
||||
m_duartn68681->irq_cb().set(FUNC(harddriv_state::harddriv_duart_irq_handler));
|
||||
m_duartn68681->a_tx_cb().set("rs232", FUNC(rs232_port_device::write_txd));
|
||||
|
||||
rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, nullptr));
|
||||
rs232.rxd_handler().set("duartn68681", FUNC(mc68681_device::rx_a_w));
|
||||
|
||||
/* video hardware */
|
||||
MCFG_PALETTE_ADD("palette", 1024)
|
||||
PALETTE(config, m_palette, 1024);
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(HARDDRIV_GSP_CLOCK/12*4, 160*4, 0, 127*4, 417, 0, 384)
|
||||
MCFG_SCREEN_UPDATE_DEVICE("gsp", tms34010_device, tms340x0_ind16)
|
||||
MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, harddriv_state, video_int_write_line))
|
||||
MACHINE_CONFIG_END
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_raw(HARDDRIV_GSP_CLOCK/12*4, 160*4, 0, 127*4, 417, 0, 384);
|
||||
m_screen->set_screen_update("gsp", FUNC(tms34010_device::tms340x0_ind16));
|
||||
m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK);
|
||||
m_screen->set_palette(m_palette);
|
||||
m_screen->screen_vblank().set(FUNC(harddriv_state::video_int_write_line));
|
||||
}
|
||||
|
||||
|
||||
/* Driver board with MSP (used by Hard Drivin' cockpit) */
|
||||
MACHINE_CONFIG_START(harddriv_state::driver_msp)
|
||||
|
||||
void harddriv_state::driver_msp(machine_config &config)
|
||||
{
|
||||
driver_nomsp(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
@ -1526,17 +1526,16 @@ MACHINE_CONFIG_START(harddriv_state::driver_msp)
|
||||
m_msp->set_screen("screen");
|
||||
|
||||
config.device_remove("slapstic");
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
|
||||
/* Multisync board without MSP (used by STUN Runner, Steel Talons, Race Drivin' compact) */
|
||||
MACHINE_CONFIG_START(harddriv_state::multisync_nomsp)
|
||||
|
||||
void harddriv_state::multisync_nomsp(machine_config &config)
|
||||
{
|
||||
driver_nomsp(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_DEVICE_PROGRAM_MAP(multisync_68k_map)
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &harddriv_state::multisync_68k_map);
|
||||
|
||||
m_gsp->set_addrmap(AS_PROGRAM, &harddriv_state::multisync_gsp_map);
|
||||
m_gsp->set_pixel_clock(6000000);
|
||||
@ -1544,9 +1543,8 @@ MACHINE_CONFIG_START(harddriv_state::multisync_nomsp)
|
||||
m_gsp->set_scanline_ind16_callback(FUNC(harddriv_state::scanline_multisync));
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_MODIFY("screen")
|
||||
MCFG_SCREEN_RAW_PARAMS(HARDDRIV_GSP_CLOCK/8*2, 323*2, 0, 256*2, 308, 0, 288)
|
||||
MACHINE_CONFIG_END
|
||||
m_screen->set_raw(HARDDRIV_GSP_CLOCK/8*2, 323*2, 0, 256*2, 308, 0, 288);
|
||||
}
|
||||
|
||||
|
||||
/* Multisync board with MSP (used by Hard Drivin' compact) */
|
||||
@ -1568,18 +1566,16 @@ void harddriv_state::multisync_msp(machine_config &config)
|
||||
|
||||
|
||||
/* Multisync II board (used by Hard Drivin's Airborne) */
|
||||
MACHINE_CONFIG_START(harddriv_state::multisync2)
|
||||
|
||||
void harddriv_state::multisync2(machine_config &config)
|
||||
{
|
||||
multisync_nomsp(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_DEVICE_PROGRAM_MAP(multisync2_68k_map)
|
||||
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &harddriv_state::multisync2_68k_map);
|
||||
m_gsp->set_addrmap(AS_PROGRAM, &harddriv_state::multisync2_gsp_map);
|
||||
|
||||
config.device_remove("slapstic");
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -1590,49 +1586,53 @@ MACHINE_CONFIG_END
|
||||
*************************************/
|
||||
|
||||
/* ADSP/ADSP II boards (used by Hard/Race Drivin', STUN Runner) */
|
||||
MACHINE_CONFIG_START(harddriv_state::adsp)
|
||||
|
||||
void harddriv_state::adsp(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("adsp", ADSP2100, XTAL(32'000'000)/4)
|
||||
MCFG_DEVICE_PROGRAM_MAP(adsp_program_map)
|
||||
MCFG_DEVICE_DATA_MAP(adsp_data_map)
|
||||
MACHINE_CONFIG_END
|
||||
ADSP2100(config, m_adsp, XTAL(32'000'000)/4);
|
||||
m_adsp->set_addrmap(AS_PROGRAM, &harddriv_state::adsp_program_map);
|
||||
m_adsp->set_addrmap(AS_DATA, &harddriv_state::adsp_data_map);
|
||||
}
|
||||
|
||||
|
||||
/* DS III/IV board (used by Steel Talons, Street Drivin' and Hard Drivin's Airborne) */
|
||||
MACHINE_CONFIG_START(harddriv_state::ds3)
|
||||
|
||||
void harddriv_state::ds3(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("adsp", ADSP2101, XTAL(12'000'000))
|
||||
MCFG_DEVICE_PROGRAM_MAP(ds3_program_map)
|
||||
MCFG_DEVICE_DATA_MAP(ds3_data_map)
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(60000))
|
||||
ADSP2101(config, m_adsp, XTAL(12'000'000));
|
||||
m_adsp->set_addrmap(AS_PROGRAM, &harddriv_state::ds3_program_map);
|
||||
m_adsp->set_addrmap(AS_PROGRAM, &harddriv_state::ds3_data_map);
|
||||
|
||||
MCFG_DEVICE_ADD("ds3sdsp", ADSP2105, XTAL(10'000'000))
|
||||
MCFG_ADSP21XX_SPORT_RX_CB(READ32(*this, harddriv_state, hdds3sdsp_serial_rx_callback))
|
||||
MCFG_ADSP21XX_SPORT_TX_CB(WRITE32(*this, harddriv_state, hdds3sdsp_serial_tx_callback))
|
||||
MCFG_ADSP21XX_TIMER_FIRED_CB(WRITELINE(*this, harddriv_state, hdds3sdsp_timer_enable_callback))
|
||||
MCFG_DEVICE_PROGRAM_MAP(ds3sdsp_program_map)
|
||||
MCFG_DEVICE_DATA_MAP(ds3sdsp_data_map)
|
||||
MCFG_TIMER_DRIVER_ADD("ds3sdsp_timer", harddriv_state, ds3sdsp_internal_timer_callback)
|
||||
config.m_minimum_quantum = attotime::from_hz(60000);
|
||||
|
||||
MCFG_DEVICE_ADD("ds3xdsp", ADSP2105, XTAL(10'000'000))
|
||||
MCFG_ADSP21XX_SPORT_RX_CB(READ32(*this, harddriv_state, hdds3xdsp_serial_rx_callback))
|
||||
MCFG_ADSP21XX_SPORT_TX_CB(WRITE32(*this, harddriv_state, hdds3xdsp_serial_tx_callback))
|
||||
MCFG_ADSP21XX_TIMER_FIRED_CB(WRITELINE(*this, harddriv_state, hdds3xdsp_timer_enable_callback))
|
||||
MCFG_DEVICE_PROGRAM_MAP(ds3xdsp_program_map)
|
||||
MCFG_DEVICE_DATA_MAP(ds3xdsp_data_map)
|
||||
MCFG_TIMER_DRIVER_ADD("ds3xdsp_timer", harddriv_state, ds3xdsp_internal_timer_callback)
|
||||
ADSP2105(config, m_ds3sdsp, XTAL(10'000'000));
|
||||
m_ds3sdsp->sport_rx().set(FUNC(harddriv_state::hdds3sdsp_serial_rx_callback));
|
||||
m_ds3sdsp->sport_tx().set(FUNC(harddriv_state::hdds3sdsp_serial_tx_callback));
|
||||
m_ds3sdsp->timer_fired().set(FUNC(harddriv_state::hdds3sdsp_timer_enable_callback));
|
||||
m_ds3sdsp->set_addrmap(AS_PROGRAM, &harddriv_state::ds3sdsp_program_map);
|
||||
m_ds3sdsp->set_addrmap(AS_DATA, &harddriv_state::ds3sdsp_data_map);
|
||||
TIMER(config, "ds3sdsp_timer").configure_generic(FUNC(harddriv_state::ds3sdsp_internal_timer_callback));
|
||||
|
||||
ADSP2105(config, m_ds3xdsp, XTAL(10'000'000));
|
||||
m_ds3xdsp->sport_rx().set(FUNC(harddriv_state::hdds3xdsp_serial_rx_callback));
|
||||
m_ds3xdsp->sport_tx().set(FUNC(harddriv_state::hdds3xdsp_serial_tx_callback));
|
||||
m_ds3xdsp->timer_fired().set(FUNC(harddriv_state::hdds3xdsp_timer_enable_callback));
|
||||
m_ds3xdsp->set_addrmap(AS_PROGRAM, &harddriv_state::ds3xdsp_program_map);
|
||||
m_ds3xdsp->set_addrmap(AS_DATA, &harddriv_state::ds3xdsp_data_map);
|
||||
TIMER(config, "ds3xdsp_timer").configure_generic(FUNC(harddriv_state::ds3xdsp_internal_timer_callback));
|
||||
|
||||
SPEAKER(config, "lspeaker").front_left();
|
||||
SPEAKER(config, "rspeaker").front_right();
|
||||
|
||||
MCFG_DEVICE_ADD("ldac", DAC_16BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) // unknown DAC
|
||||
MCFG_DEVICE_ADD("rdac", DAC_16BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) // unknown DAC
|
||||
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
|
||||
MCFG_SOUND_ROUTE(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
|
||||
MCFG_SOUND_ROUTE(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
|
||||
MACHINE_CONFIG_END
|
||||
DAC_16BIT_R2R(config, m_ldac, 0).add_route(ALL_OUTPUTS, "lspeaker", 1.0); // unknown DAC
|
||||
DAC_16BIT_R2R(config, m_rdac, 0).add_route(ALL_OUTPUTS, "rspeaker", 1.0); // unknown DAC
|
||||
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
|
||||
vref.set_output(5.0);
|
||||
vref.add_route(0, "ldac", 1.0, DAC_VREF_POS_INPUT);
|
||||
vref.add_route(0, "ldac", -1.0, DAC_VREF_NEG_INPUT);
|
||||
vref.add_route(0, "rdac", 1.0, DAC_VREF_POS_INPUT);
|
||||
vref.add_route(0, "rdac", -1.0, DAC_VREF_NEG_INPUT);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -1643,32 +1643,32 @@ MACHINE_CONFIG_END
|
||||
*************************************/
|
||||
|
||||
/* DSK board (used by Race Drivin') */
|
||||
MACHINE_CONFIG_START(harddriv_state::dsk)
|
||||
|
||||
void harddriv_state::dsk(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("dsp32", DSP32C, XTAL(40'000'000))
|
||||
MCFG_DSP32C_OUTPUT_CALLBACK(WRITE32(*this, harddriv_state,hddsk_update_pif))
|
||||
MCFG_DEVICE_PROGRAM_MAP(dsk_dsp32_map)
|
||||
DSP32C(config, m_dsp32, XTAL(40'000'000));
|
||||
m_dsp32->out_cb().set(FUNC(harddriv_state::hddsk_update_pif));
|
||||
m_dsp32->set_addrmap(AS_PROGRAM, &harddriv_state::dsk_dsp32_map);
|
||||
|
||||
EEPROM_2816(config, "dsk_10c"); // MK48Z02
|
||||
EEPROM_2816(config, "dsk_30c"); // MK48Z02
|
||||
EEPROM_2816(config, m_dsk_10c); // MK48Z02
|
||||
EEPROM_2816(config, m_dsk_30c); // MK48Z02
|
||||
|
||||
/* ASIC65 */
|
||||
ASIC65(config, m_asic65, 0, ASIC65_STANDARD);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
|
||||
/* DSK II board (used by Hard Drivin's Airborne) */
|
||||
MACHINE_CONFIG_START(harddriv_state::dsk2)
|
||||
|
||||
void harddriv_state::dsk2(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("dsp32", DSP32C, XTAL(40'000'000))
|
||||
MCFG_DSP32C_OUTPUT_CALLBACK(WRITE32(*this, harddriv_state,hddsk_update_pif))
|
||||
MCFG_DEVICE_PROGRAM_MAP(dsk2_dsp32_map)
|
||||
DSP32C(config, m_dsp32, XTAL(40'000'000));
|
||||
m_dsp32->out_cb().set(FUNC(harddriv_state::hddsk_update_pif));
|
||||
m_dsp32->set_addrmap(AS_PROGRAM, &harddriv_state::dsk2_dsp32_map);
|
||||
|
||||
/* ASIC65 */
|
||||
ASIC65(config, m_asic65, 0, ASIC65_STANDARD);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
|
||||
WRITE_LINE_MEMBER(harddriv_state::sound_int_write_line)
|
||||
@ -1685,12 +1685,13 @@ harddriv_board_device_state::harddriv_board_device_state(const machine_config &m
|
||||
{
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(harddriv_board_device_state::device_add_mconfig)
|
||||
void harddriv_board_device_state::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
driver_msp(config);
|
||||
/* basic machine hardware */ /* original driver board with MSP */
|
||||
adsp(config); /* ADSP board */
|
||||
MCFG_DEVICE_ADD("harddriv_sound", HARDDRIV_SOUND_BOARD, 0) /* driver sound board */
|
||||
MACHINE_CONFIG_END
|
||||
HARDDRIV_SOUND_BOARD(config, m_harddriv_sound, 0); /* driver sound board */
|
||||
}
|
||||
|
||||
void harddriv_board_device_state::device_start()
|
||||
{
|
||||
@ -1713,13 +1714,14 @@ harddrivc_board_device_state::harddrivc_board_device_state(const machine_config
|
||||
{
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(harddrivc_board_device_state::device_add_mconfig)
|
||||
void harddrivc_board_device_state::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
multisync_msp(config);
|
||||
|
||||
/* basic machine hardware */ /* multisync board with MSP */
|
||||
adsp(config); /* ADSP board */
|
||||
MCFG_DEVICE_ADD("harddriv_sound", HARDDRIV_SOUND_BOARD, 0) /* driver sound board */
|
||||
MACHINE_CONFIG_END
|
||||
HARDDRIV_SOUND_BOARD(config, m_harddriv_sound, 0); /* driver sound board */
|
||||
}
|
||||
|
||||
|
||||
/* Race Drivin */
|
||||
@ -1754,14 +1756,15 @@ racedrivb1_board_device_state::racedrivb1_board_device_state(const machine_confi
|
||||
{
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(racedriv_board_device_state::device_add_mconfig)
|
||||
void racedriv_board_device_state::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
driver_nomsp(config);
|
||||
|
||||
/* basic machine hardware */ /* original driver board without MSP */
|
||||
adsp(config); /* ADSP board */
|
||||
dsk(config); /* DSK board */
|
||||
MCFG_DEVICE_ADD("harddriv_sound", HARDDRIV_SOUND_BOARD, 0) /* driver sound board */
|
||||
MACHINE_CONFIG_END
|
||||
HARDDRIV_SOUND_BOARD(config, m_harddriv_sound, 0); /* driver sound board */
|
||||
}
|
||||
|
||||
/* Race Drivin Compact */
|
||||
|
||||
@ -1809,18 +1812,18 @@ racedrivc_panorama_side_board_device_state::racedrivc_panorama_side_board_device
|
||||
{
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(racedrivc_board_device_state::device_add_mconfig)
|
||||
|
||||
void racedrivc_board_device_state::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
multisync_nomsp(config);
|
||||
|
||||
/* basic machine hardware */ /* multisync board without MSP */
|
||||
adsp(config); /* ADSP board */
|
||||
dsk(config); /* DSK board */
|
||||
MCFG_DEVICE_ADD("harddriv_sound", HARDDRIV_SOUND_BOARD, 0) /* driver sound board */
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(racedrivc_panorama_side_board_device_state::device_add_mconfig)
|
||||
HARDDRIV_SOUND_BOARD(config, m_harddriv_sound, 0); /* driver sound board */
|
||||
}
|
||||
|
||||
void racedrivc_panorama_side_board_device_state::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
multisync_nomsp(config);
|
||||
|
||||
// 8-bit analog inputs read but not used?
|
||||
@ -1837,7 +1840,7 @@ MACHINE_CONFIG_START(racedrivc_panorama_side_board_device_state::device_add_mcon
|
||||
adsp(config); /* ADSP board */
|
||||
// dsk(config); /* DSK board */
|
||||
// MCFG_DEVICE_ADD("sound_board", HARDDRIV_SOUND_BOARD, 0) /* driver sound board */
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
/* Stun Runner */
|
||||
|
||||
@ -1854,8 +1857,8 @@ stunrun_board_device_state::stunrun_board_device_state(const machine_config &mco
|
||||
{
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(stunrun_board_device_state::device_add_mconfig)
|
||||
|
||||
void stunrun_board_device_state::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
multisync_nomsp(config);
|
||||
|
||||
/* basic machine hardware */ /* multisync board without MSP */
|
||||
@ -1864,8 +1867,7 @@ MACHINE_CONFIG_START(stunrun_board_device_state::device_add_mconfig)
|
||||
config.device_remove("slapstic");
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_MODIFY("screen")
|
||||
MCFG_SCREEN_RAW_PARAMS(5000000*2, 317*2, 0, 256*2, 262, 0, 228)
|
||||
m_screen->set_raw(5000000*2, 317*2, 0, 256*2, 262, 0, 228);
|
||||
|
||||
/* sund hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
@ -1874,7 +1876,7 @@ MACHINE_CONFIG_START(stunrun_board_device_state::device_add_mconfig)
|
||||
m_jsa->main_int_cb().set(FUNC(harddriv_state::sound_int_write_line));
|
||||
m_jsa->test_read_cb().set_ioport("IN0").bit(5);
|
||||
m_jsa->add_route(ALL_OUTPUTS, "mono", 1.0);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
/* Steel Talons */
|
||||
|
||||
@ -1920,7 +1922,8 @@ steeltalp_board_device_state::steeltalp_board_device_state(const machine_config
|
||||
{
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(steeltal_board_device_state::device_add_mconfig)
|
||||
void steeltal_board_device_state::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
multisync_msp(config);
|
||||
|
||||
/* basic machine hardware */ /* multisync board with MSP */
|
||||
@ -1942,7 +1945,7 @@ MACHINE_CONFIG_START(steeltal_board_device_state::device_add_mconfig)
|
||||
m_jsa->main_int_cb().set(FUNC(harddriv_state::sound_int_write_line));
|
||||
m_jsa->test_read_cb().set_ioport("IN0").bit(5);
|
||||
m_jsa->add_route(ALL_OUTPUTS, "mono", 1.0);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
/* Street Drivin' */
|
||||
|
||||
@ -1959,17 +1962,16 @@ strtdriv_board_device_state::strtdriv_board_device_state(const machine_config &m
|
||||
{
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(strtdriv_board_device_state::device_add_mconfig)
|
||||
|
||||
void strtdriv_board_device_state::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
multisync_nomsp(config);
|
||||
|
||||
/* basic machine hardware */ /* multisync board */
|
||||
ds3(config); /* DS III board */
|
||||
MCFG_DEVICE_MODIFY("ds3xdsp") /* DS III auxiliary sound DSP has no code */
|
||||
MCFG_DEVICE_DISABLE()
|
||||
m_ds3xdsp->set_disable(); /* DS III auxiliary sound DSP has no code */
|
||||
|
||||
dsk(config); /* DSK board */
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
/* Hard Drivin' Airbourne */
|
||||
|
||||
@ -2003,67 +2005,80 @@ hdrivairp_board_device_state::hdrivairp_board_device_state(const machine_config
|
||||
{
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(hdrivair_board_device_state::device_add_mconfig)
|
||||
|
||||
void hdrivair_board_device_state::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
multisync2(config);
|
||||
|
||||
/* basic machine hardware */ /* multisync II board */
|
||||
ds3(config); /* DS IV board */
|
||||
dsk2(config); /* DSK II board */
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(harddriv_new_state::harddriv_machine)
|
||||
MCFG_DEVICE_ADD("mainpcb", HARDDRIV_BOARD, 0)
|
||||
MACHINE_CONFIG_END
|
||||
void harddriv_new_state::harddriv_machine(machine_config &config)
|
||||
{
|
||||
HARDDRIV_BOARD(config, "mainpcb", 0);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(harddriv_new_state::harddrivc_machine)
|
||||
MCFG_DEVICE_ADD("mainpcb", HARDDRIVC_BOARD, 0)
|
||||
MACHINE_CONFIG_END
|
||||
void harddriv_new_state::harddrivc_machine(machine_config &config)
|
||||
{
|
||||
HARDDRIVC_BOARD(config, "mainpcb", 0);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(harddriv_new_state::racedriv_machine)
|
||||
MCFG_DEVICE_ADD("mainpcb", RACEDRIV_BOARD, 0)
|
||||
MACHINE_CONFIG_END
|
||||
void harddriv_new_state::racedriv_machine(machine_config &config)
|
||||
{
|
||||
RACEDRIV_BOARD(config, "mainpcb", 0);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(harddriv_new_state::racedrivb1_machine)
|
||||
MCFG_DEVICE_ADD("mainpcb", RACEDRIVB1_BOARD, 0)
|
||||
MACHINE_CONFIG_END
|
||||
void harddriv_new_state::racedrivb1_machine(machine_config &config)
|
||||
{
|
||||
RACEDRIVB1_BOARD(config, "mainpcb", 0);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(harddriv_new_state::racedrivc_machine)
|
||||
MCFG_DEVICE_ADD("mainpcb", RACEDRIVC_BOARD, 0)
|
||||
MACHINE_CONFIG_END
|
||||
void harddriv_new_state::racedrivc_machine(machine_config &config)
|
||||
{
|
||||
RACEDRIVC_BOARD(config, "mainpcb", 0);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(harddriv_new_state::racedrivc1_machine)
|
||||
MCFG_DEVICE_ADD("mainpcb", RACEDRIVC1_BOARD, 0)
|
||||
MACHINE_CONFIG_END
|
||||
void harddriv_new_state::racedrivc1_machine(machine_config &config)
|
||||
{
|
||||
RACEDRIVC1_BOARD(config, "mainpcb", 0);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(harddriv_new_state::stunrun_machine)
|
||||
MCFG_DEVICE_ADD("mainpcb", STUNRUN_BOARD, 0)
|
||||
MACHINE_CONFIG_END
|
||||
void harddriv_new_state::stunrun_machine(machine_config &config)
|
||||
{
|
||||
STUNRUN_BOARD(config, "mainpcb", 0);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(harddriv_new_state::strtdriv_machine)
|
||||
MCFG_DEVICE_ADD("mainpcb", STRTDRIV_BOARD, 0)
|
||||
MACHINE_CONFIG_END
|
||||
void harddriv_new_state::strtdriv_machine(machine_config &config)
|
||||
{
|
||||
STRTDRIV_BOARD(config, "mainpcb", 0);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(harddriv_new_state::hdrivair_machine)
|
||||
MCFG_DEVICE_ADD("mainpcb", HDRIVAIR_BOARD, 0)
|
||||
MACHINE_CONFIG_END
|
||||
void harddriv_new_state::hdrivair_machine(machine_config &config)
|
||||
{
|
||||
HDRIVAIR_BOARD(config, "mainpcb", 0);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(harddriv_new_state::hdrivairp_machine)
|
||||
MCFG_DEVICE_ADD("mainpcb", HDRIVAIRP_BOARD, 0)
|
||||
MACHINE_CONFIG_END
|
||||
void harddriv_new_state::hdrivairp_machine(machine_config &config)
|
||||
{
|
||||
HDRIVAIRP_BOARD(config, "mainpcb", 0);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(harddriv_new_state::steeltal_machine)
|
||||
MCFG_DEVICE_ADD("mainpcb", STEELTAL_BOARD, 0)
|
||||
MACHINE_CONFIG_END
|
||||
void harddriv_new_state::steeltal_machine(machine_config &config)
|
||||
{
|
||||
STEELTAL_BOARD(config, "mainpcb", 0);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(harddriv_new_state::steeltal1_machine)
|
||||
MCFG_DEVICE_ADD("mainpcb", STEELTAL1_BOARD, 0)
|
||||
MACHINE_CONFIG_END
|
||||
void harddriv_new_state::steeltal1_machine(machine_config &config)
|
||||
{
|
||||
STEELTAL1_BOARD(config, "mainpcb", 0);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(harddriv_new_state::steeltalp_machine)
|
||||
MCFG_DEVICE_ADD("mainpcb", STEELTALP_BOARD, 0)
|
||||
MACHINE_CONFIG_END
|
||||
void harddriv_new_state::steeltalp_machine(machine_config &config)
|
||||
{
|
||||
STEELTALP_BOARD(config, "mainpcb", 0);
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(harddriv_new_state::tx_a)
|
||||
{
|
||||
@ -2072,21 +2087,21 @@ WRITE_LINE_MEMBER(harddriv_new_state::tx_a)
|
||||
m_rightpcb->get_duart()->rx_a_w(state);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(harddriv_new_state::racedriv_panorama_machine)
|
||||
MCFG_DEVICE_ADD("mainpcb", RACEDRIV_BOARD, 0)
|
||||
MCFG_DEVICE_ADD("leftpcb", RACEDRIVC_PANORAMA_SIDE_BOARD, 0)
|
||||
MCFG_DEVICE_ADD("rightpcb", RACEDRIVC_PANORAMA_SIDE_BOARD, 0)
|
||||
void harddriv_new_state::racedriv_panorama_machine(machine_config &config)
|
||||
{
|
||||
RACEDRIV_BOARD(config, "mainpcb", 0);
|
||||
RACEDRIVC_PANORAMA_SIDE_BOARD(config, "leftpcb", 0);
|
||||
RACEDRIVC_PANORAMA_SIDE_BOARD(config, "rightpcb", 0);
|
||||
|
||||
// MCFG_QUANTUM_TIME(attotime::from_hz(100000))
|
||||
MCFG_DEVICE_MODIFY("mainpcb:duartn68681")
|
||||
MCFG_MC68681_A_TX_CALLBACK(WRITELINE(*this, harddriv_new_state, tx_a))
|
||||
subdevice<mc68681_device>("mainpcb:duartn68681")->a_tx_cb().set(FUNC(harddriv_new_state::tx_a));
|
||||
|
||||
// boots with 'PROGRAM OK' when using standard Hard Drivin' board type (needs 137412-115 slapstic)
|
||||
subdevice<atari_slapstic_device>("mainpcb:slapstic")->set_chipnum(115);
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("hack_timer", harddriv_new_state, hack_timer, attotime::from_hz(60))
|
||||
TIMER(config, "hack_timer").configure_periodic(FUNC(harddriv_new_state::hack_timer), attotime::from_hz(60));
|
||||
// MCFG_QUANTUM_TIME(attotime::from_hz(60000))
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
// this is an ugly hack, otherwise MAME's core can't seem to handle partial updates if you have multiple screens with different update frequencies.
|
||||
// by forcing them to stay in sync using this ugly method everything works much better.
|
||||
|
@ -66,7 +66,7 @@ private:
|
||||
void write_a12(int state);
|
||||
void sound_update();
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<amis2152_cpu_device> m_maincpu;
|
||||
required_device<speaker_sound_device> m_speaker;
|
||||
required_device<timer_device> m_a12_decay_timer;
|
||||
|
||||
@ -312,18 +312,18 @@ static const u8 wildfire_7seg_table[0x10] =
|
||||
};
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(wildfire_state::wildfire)
|
||||
|
||||
void wildfire_state::wildfire(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", AMI_S2152, MASTER_CLOCK)
|
||||
MCFG_AMI_S2000_7SEG_DECODER(wildfire_7seg_table)
|
||||
MCFG_AMI_S2000_READ_I_CB(IOPORT("IN1"))
|
||||
MCFG_AMI_S2000_WRITE_D_CB(WRITE8(*this, wildfire_state, write_d))
|
||||
MCFG_AMI_S2000_WRITE_A_CB(WRITE16(*this, wildfire_state, write_a))
|
||||
MCFG_AMI_S2152_FOUT_CB(WRITELINE(*this, wildfire_state, write_f))
|
||||
AMI_S2152(config, m_maincpu, MASTER_CLOCK);
|
||||
m_maincpu->set_7seg_table(wildfire_7seg_table);
|
||||
m_maincpu->read_i().set_ioport("IN1");
|
||||
m_maincpu->write_d().set(FUNC(wildfire_state::write_d));
|
||||
m_maincpu->write_a().set(FUNC(wildfire_state::write_a));
|
||||
m_maincpu->write_f().set(FUNC(wildfire_state::write_f));
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", wildfire_state, display_decay_tick, attotime::from_msec(1))
|
||||
MCFG_TIMER_DRIVER_ADD("a12_decay", wildfire_state, reset_q2)
|
||||
TIMER(config, "display_decay").configure_periodic(FUNC(wildfire_state::display_decay_tick), attotime::from_msec(1));
|
||||
TIMER(config, "a12_decay").configure_generic(FUNC(wildfire_state::reset_q2));
|
||||
|
||||
config.set_default_layout(layout_wildfire);
|
||||
|
||||
@ -331,9 +331,8 @@ MACHINE_CONFIG_START(wildfire_state::wildfire)
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
|
||||
MACHINE_CONFIG_END
|
||||
SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -970,18 +970,19 @@ TIMER_CALLBACK_MEMBER(nds_state::timer_expire)
|
||||
}
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(nds_state::nds)
|
||||
MCFG_DEVICE_ADD("arm7", ARM7, MASTER_CLOCK)
|
||||
MCFG_DEVICE_PROGRAM_MAP(nds_arm7_map)
|
||||
void nds_state::nds(machine_config &config)
|
||||
{
|
||||
ARM7(config, m_arm7, MASTER_CLOCK);
|
||||
m_arm7->set_addrmap(AS_PROGRAM, &nds_state::nds_arm7_map);
|
||||
|
||||
MCFG_DEVICE_ADD("arm9", ARM946ES, MASTER_CLOCK*2)
|
||||
MCFG_ARM_HIGH_VECTORS()
|
||||
MCFG_DEVICE_PROGRAM_MAP(nds_arm9_map)
|
||||
ARM946ES(config, m_arm9, MASTER_CLOCK*2);
|
||||
m_arm9->set_high_vectors();
|
||||
m_arm9->set_addrmap(AS_PROGRAM, &nds_state::nds_arm9_map);
|
||||
|
||||
// WRAM
|
||||
ADDRESS_MAP_BANK(config, "nds7wram").set_map(&nds_state::nds7_wram_map).set_options(ENDIANNESS_LITTLE, 32, 32, 0x8000);
|
||||
ADDRESS_MAP_BANK(config, "nds9wram").set_map(&nds_state::nds9_wram_map).set_options(ENDIANNESS_LITTLE, 32, 32, 0x8000);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
/* Help identifying the region and revisions of the set would be greatly appreciated! */
|
||||
ROM_START( nds )
|
||||
|
@ -357,10 +357,11 @@ void mephisto_academy_state::machine_reset()
|
||||
m_enable_nmi = true;
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(mephisto_polgar_state::polgar)
|
||||
MCFG_DEVICE_ADD("maincpu", M65C02, XTAL(4'915'200))
|
||||
MCFG_DEVICE_PROGRAM_MAP(polgar_mem)
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(mephisto_polgar_state, nmi_line_pulse, XTAL(4'915'200) / (1 << 13))
|
||||
void mephisto_polgar_state::polgar(machine_config &config)
|
||||
{
|
||||
m65c02_device &maincpu(M65C02(config, "maincpu", XTAL(4'915'200)));
|
||||
maincpu.set_addrmap(AS_PROGRAM, &mephisto_polgar_state::polgar_mem);
|
||||
maincpu.set_periodic_int(FUNC(mephisto_polgar_state::nmi_line_pulse), attotime::from_hz(XTAL(4'915'200) / (1 << 13)));
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
||||
|
||||
@ -375,24 +376,25 @@ MACHINE_CONFIG_START(mephisto_polgar_state::polgar)
|
||||
MEPHISTO_SENSORS_BOARD(config, "board", 0);
|
||||
MEPHISTO_DISPLAY_MODUL(config, "display", 0);
|
||||
config.set_default_layout(layout_mephisto_lcd);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(mephisto_polgar_state::polgar10)
|
||||
void mephisto_polgar_state::polgar10(machine_config &config)
|
||||
{
|
||||
polgar(config);
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_DEVICE_CLOCK( XTAL(10'000'000) )
|
||||
MACHINE_CONFIG_END
|
||||
subdevice<m65c02_device>("maincpu")->set_clock(XTAL(10'000'000));
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(mephisto_risc_state::mrisc)
|
||||
MCFG_DEVICE_ADD("maincpu", M65C02, XTAL(10'000'000) / 4) // G65SC02
|
||||
MCFG_DEVICE_PROGRAM_MAP(mrisc_mem)
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(mephisto_risc_state, irq0_line_hold, XTAL(10'000'000) / (1 << 14))
|
||||
void mephisto_risc_state::mrisc(machine_config &config)
|
||||
{
|
||||
m65c02_device &maincpu(M65C02(config, "maincpu", XTAL(10'000'000) / 4)); // G65SC02
|
||||
maincpu.set_addrmap(AS_PROGRAM, &mephisto_risc_state::mrisc_mem);
|
||||
maincpu.set_periodic_int(FUNC(mephisto_risc_state::irq0_line_hold), attotime::from_hz(XTAL(10'000'000) / (1 << 14)));
|
||||
|
||||
MCFG_DEVICE_ADD("subcpu", ARM, XTAL(14'000'000)) // VY86C010
|
||||
MCFG_DEVICE_PROGRAM_MAP(mrisc_arm_mem)
|
||||
MCFG_ARM_COPRO(VL86C020)
|
||||
ARM(config, m_subcpu, XTAL(14'000'000)); // VY86C010
|
||||
m_subcpu->set_addrmap(AS_PROGRAM, &mephisto_risc_state::mrisc_arm_mem);
|
||||
m_subcpu->set_copro_type(arm_cpu_device::copro_type::VL86C020);
|
||||
|
||||
MCFG_QUANTUM_PERFECT_CPU("maincpu")
|
||||
config.m_perfect_cpu_quantum = subtag("maincpu");
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
||||
|
||||
@ -410,29 +412,29 @@ MACHINE_CONFIG_START(mephisto_risc_state::mrisc)
|
||||
MEPHISTO_SENSORS_BOARD(config, "board", 0);
|
||||
MEPHISTO_DISPLAY_MODUL(config, "display", 0);
|
||||
config.set_default_layout(layout_mephisto_lcd);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(mephisto_milano_state::milano)
|
||||
void mephisto_milano_state::milano(machine_config &config)
|
||||
{
|
||||
polgar(config);
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_DEVICE_PROGRAM_MAP(milano_mem)
|
||||
subdevice<m65c02_device>("maincpu")->set_addrmap(AS_PROGRAM, &mephisto_milano_state::milano_mem);
|
||||
|
||||
MEPHISTO_BUTTONS_BOARD(config.replace(), m_board, 0);
|
||||
m_board->set_disable_leds(true);
|
||||
config.set_default_layout(layout_mephisto_milano);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(mephisto_academy_state::academy)
|
||||
void mephisto_academy_state::academy(machine_config &config)
|
||||
{
|
||||
polgar(config);
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_DEVICE_PROGRAM_MAP(academy_mem)
|
||||
subdevice<m65c02_device>("maincpu")->set_addrmap(AS_PROGRAM, &mephisto_academy_state::academy_mem);
|
||||
|
||||
hc259_device &outlatch(HC259(config.replace(), "outlatch"));
|
||||
outlatch.q_out_cb<1>().set(FUNC(mephisto_academy_state::academy_nmi_w));
|
||||
outlatch.q_out_cb<2>().set("display:beeper", FUNC(beep_device::set_state)).invert();
|
||||
|
||||
config.set_default_layout(layout_mephisto_academy);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
|
||||
ROM_START(polgar)
|
||||
|
@ -148,18 +148,18 @@ void rambo_state::machine_reset()
|
||||
m_port_l = 0;
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(rambo_state::rambo)
|
||||
void rambo_state::rambo(machine_config &config)
|
||||
{
|
||||
ATMEGA2560(config, m_maincpu, MASTER_CLOCK);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &rambo_state::rambo_prg_map);
|
||||
m_maincpu->set_addrmap(AS_DATA, &rambo_state::rambo_data_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &rambo_state::rambo_io_map);
|
||||
|
||||
MCFG_DEVICE_ADD("maincpu", ATMEGA2560, MASTER_CLOCK)
|
||||
MCFG_DEVICE_PROGRAM_MAP(rambo_prg_map)
|
||||
MCFG_DEVICE_DATA_MAP(rambo_data_map)
|
||||
MCFG_DEVICE_IO_MAP(rambo_io_map)
|
||||
|
||||
MCFG_CPU_AVR8_EEPROM("eeprom")
|
||||
MCFG_CPU_AVR8_LFUSE(0xFF)
|
||||
MCFG_CPU_AVR8_HFUSE(0xDA)
|
||||
MCFG_CPU_AVR8_EFUSE(0xF4)
|
||||
MCFG_CPU_AVR8_LOCK(0x0F)
|
||||
m_maincpu->set_eeprom_tag("eeprom");
|
||||
m_maincpu->set_low_fuses(0xff);
|
||||
m_maincpu->set_high_fuses(0xda);
|
||||
m_maincpu->set_extended_fuses(0xf4);
|
||||
m_maincpu->set_lock_bits(0x0f);
|
||||
|
||||
/*TODO: Add an ATMEGA32U2 for USB-Serial communications */
|
||||
/*TODO: Emulate the AD5206 digipot */
|
||||
@ -167,7 +167,7 @@ MACHINE_CONFIG_START(rambo_state::rambo)
|
||||
for controlling the X, Y, Z, E1 (and optionally E2) motors */
|
||||
/*TODO: Simulate the heating elements */
|
||||
/*TODO: Implement the thermistor measurements */
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
ROM_START( metamaq2 )
|
||||
ROM_REGION( 0x20000, "maincpu", 0 )
|
||||
|
@ -589,7 +589,7 @@ void replicator_state::machine_reset()
|
||||
|
||||
PALETTE_INIT_MEMBER(replicator_state, replicator)
|
||||
{
|
||||
//These colors were picked with the color picker in Inkscape, based on a photo of the LCD used in the Replicator 1 3d printer:
|
||||
// These colors were picked with the color picker in Inkscape, based on a photo of the LCD used in the Replicator 1 3d printer:
|
||||
palette.set_pen_color(0, rgb_t(0xCA, 0xE7, 0xEB));
|
||||
palette.set_pen_color(1, rgb_t(0x78, 0xAB, 0xA8));
|
||||
}
|
||||
@ -609,44 +609,43 @@ static GFXDECODE_START( gfx_replicator )
|
||||
GFXDECODE_ENTRY( "hd44780:cgrom", 0x0000, hd44780_charlayout, 0, 1 )
|
||||
GFXDECODE_END
|
||||
|
||||
MACHINE_CONFIG_START(replicator_state::replicator)
|
||||
void replicator_state::replicator(machine_config &config)
|
||||
{
|
||||
ATMEGA1280(config, m_maincpu, MASTER_CLOCK);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &replicator_state::replicator_prg_map);
|
||||
m_maincpu->set_addrmap(AS_DATA, &replicator_state::replicator_data_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &replicator_state::replicator_io_map);
|
||||
|
||||
MCFG_DEVICE_ADD("maincpu", ATMEGA1280, MASTER_CLOCK)
|
||||
MCFG_DEVICE_PROGRAM_MAP(replicator_prg_map)
|
||||
MCFG_DEVICE_DATA_MAP(replicator_data_map)
|
||||
MCFG_DEVICE_IO_MAP(replicator_io_map)
|
||||
|
||||
MCFG_CPU_AVR8_EEPROM("eeprom")
|
||||
MCFG_CPU_AVR8_LFUSE(0xFF)
|
||||
MCFG_CPU_AVR8_HFUSE(0xDA)
|
||||
MCFG_CPU_AVR8_EFUSE(0xF4)
|
||||
MCFG_CPU_AVR8_LOCK(0x0F)
|
||||
m_maincpu->set_eeprom_tag("eeprom");
|
||||
m_maincpu->set_low_fuses(0xff);
|
||||
m_maincpu->set_high_fuses(0xda);
|
||||
m_maincpu->set_extended_fuses(0xf4);
|
||||
m_maincpu->set_lock_bits(0x0f);
|
||||
|
||||
/*TODO: Add an ATMEGA8U2 for USB-Serial communications */
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", LCD)
|
||||
MCFG_SCREEN_REFRESH_RATE(50)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
|
||||
MCFG_SCREEN_UPDATE_DEVICE("hd44780", hd44780_device, screen_update)
|
||||
MCFG_SCREEN_SIZE(120, 18*2) //4x20 chars
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 120-1, 0, 18*2-1)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
|
||||
screen.set_refresh_hz(50);
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
|
||||
screen.set_screen_update("hd44780", FUNC(hd44780_device::screen_update));
|
||||
screen.set_size(120, 18*2); //4x20 chars
|
||||
screen.set_visarea(0, 120-1, 0, 18*2-1);
|
||||
screen.set_palette("palette");
|
||||
|
||||
MCFG_PALETTE_ADD("palette", 2)
|
||||
MCFG_PALETTE_INIT_OWNER(replicator_state, replicator)
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_replicator)
|
||||
PALETTE(config, "palette", 2).set_init(FUNC(replicator_state::palette_init_replicator));
|
||||
GFXDECODE(config, "gfxdecode", "palette", gfx_replicator);
|
||||
|
||||
MCFG_HD44780_ADD("hd44780")
|
||||
MCFG_HD44780_LCD_SIZE(4, 20)
|
||||
HD44780(config, "hd44780", 0).set_lcd_size(4, 20);
|
||||
|
||||
/* sound hardware */
|
||||
/* A piezo is connected to the PORT G bit 5 (OC0B pin driven by Timer/Counter #4) */
|
||||
SPEAKER(config, "speaker").front_center();
|
||||
MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.5)
|
||||
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(0, "speaker", 0.5);
|
||||
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);
|
||||
}
|
||||
|
||||
ROM_START( replica1 )
|
||||
ROM_REGION( 0x20000, "maincpu", 0 )
|
||||
|
@ -58,7 +58,7 @@ protected:
|
||||
void risc2500_mem(address_map &map);
|
||||
|
||||
private:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<arm_cpu_device> m_maincpu;
|
||||
required_device<ram_device> m_ram;
|
||||
required_device<nvram_device> m_nvram;
|
||||
required_device<dac_byte_interface> m_dac;
|
||||
@ -314,24 +314,24 @@ void risc2500_state::risc2500_mem(address_map &map)
|
||||
map(0x02000000, 0x0203ffff).rom().region("maincpu", 0);
|
||||
}
|
||||
|
||||
void risc2500_state::risc2500(machine_config &config)
|
||||
{
|
||||
ARM(config, m_maincpu, XTAL(28'322'000) / 2); // VY86C010
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &risc2500_state::risc2500_mem);
|
||||
m_maincpu->set_copro_type(arm_cpu_device::copro_type::VL86C020);
|
||||
m_maincpu->set_periodic_int(FUNC(risc2500_state::irq1_line_hold), attotime::from_hz(250));
|
||||
|
||||
MACHINE_CONFIG_START(risc2500_state::risc2500)
|
||||
MCFG_DEVICE_ADD(m_maincpu, ARM, XTAL(28'322'000) / 2) // VY86C010
|
||||
MCFG_DEVICE_PROGRAM_MAP(risc2500_mem)
|
||||
MCFG_ARM_COPRO(VL86C020)
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(risc2500_state, irq1_line_hold, 250)
|
||||
|
||||
MCFG_SCREEN_ADD("screen", LCD)
|
||||
MCFG_SCREEN_REFRESH_RATE(50)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
|
||||
MCFG_SCREEN_SIZE(12*6+1, 7)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 12*6, 0, 7-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(risc2500_state, screen_update)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
|
||||
screen.set_refresh_hz(50);
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
|
||||
screen.set_size(12*6+1, 7);
|
||||
screen.set_visarea(0, 12*6, 0, 7-1);
|
||||
screen.set_screen_update(FUNC(risc2500_state::screen_update));
|
||||
screen.set_palette("palette");
|
||||
|
||||
config.set_default_layout(layout_risc2500);
|
||||
|
||||
MCFG_PALETTE_ADD_MONOCHROME("palette")
|
||||
PALETTE(config, "palette", 2).set_init("palette", FUNC(palette_device::palette_init_monochrome));
|
||||
|
||||
RAM(config, m_ram).set_default_size("2M").set_extra_options("128K, 256K, 512K, 1M, 2M");
|
||||
|
||||
@ -339,10 +339,12 @@ MACHINE_CONFIG_START(risc2500_state::risc2500)
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "speaker").front_center();
|
||||
MCFG_DEVICE_ADD(m_dac, DAC_2BIT_BINARY_WEIGHTED_ONES_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
|
||||
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
|
||||
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
|
||||
MACHINE_CONFIG_END
|
||||
DAC_2BIT_BINARY_WEIGHTED_ONES_COMPLEMENT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC
|
||||
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
|
||||
vref.set_output(5.0);
|
||||
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
|
||||
vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
|
||||
}
|
||||
|
||||
|
||||
/* ROM definitions */
|
||||
|
@ -276,20 +276,21 @@ static GFXDECODE_START( gfx_sbc6510 )
|
||||
GFXDECODE_END
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(sbc6510_state::sbc6510)
|
||||
void sbc6510_state::sbc6510(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu",M6510, XTAL(1'000'000))
|
||||
MCFG_DEVICE_PROGRAM_MAP(sbc6510_mem)
|
||||
M6510(config, m_maincpu, XTAL(1'000'000));
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &sbc6510_state::sbc6510_mem);
|
||||
|
||||
MCFG_DEVICE_ADD("videocpu",ATMEGA88, XTAL(16'000'000))
|
||||
ATMEGA88(config, m_videocpu, XTAL(16'000'000));
|
||||
// MCFG_DEVICE_DISABLE() // trips SLEEP opcode, needs to be emulated
|
||||
MCFG_DEVICE_PROGRAM_MAP(sbc6510_video_mem)
|
||||
MCFG_DEVICE_DATA_MAP(sbc6510_video_data)
|
||||
MCFG_DEVICE_IO_MAP(sbc6510_video_io)
|
||||
MCFG_CPU_AVR8_EEPROM("eeprom")
|
||||
m_videocpu->set_addrmap(AS_PROGRAM, &sbc6510_state::sbc6510_video_mem);
|
||||
m_videocpu->set_addrmap(AS_DATA, &sbc6510_state::sbc6510_video_data);
|
||||
m_videocpu->set_addrmap(AS_IO, &sbc6510_state::sbc6510_video_io);
|
||||
m_videocpu->set_eeprom_tag("eeprom");
|
||||
|
||||
MCFG_PALETTE_ADD_MONOCHROME("palette") // for F4 displayer only
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_sbc6510)
|
||||
PALETTE(config, "palette", 2).set_init("palette", FUNC(palette_device::palette_init_monochrome)); // for F4 displayer only
|
||||
GFXDECODE(config, "gfxdecode", "palette", gfx_sbc6510);
|
||||
|
||||
/* video hardware */
|
||||
GENERIC_TERMINAL(config, m_terminal, 0);
|
||||
@ -302,12 +303,12 @@ MACHINE_CONFIG_START(sbc6510_state::sbc6510)
|
||||
ay8910.port_b_read_callback().set(FUNC(sbc6510_state::psg_b_r));
|
||||
ay8910.add_route(ALL_OUTPUTS, "mono", 1.00);
|
||||
|
||||
MCFG_DEVICE_ADD("cia6526", MOS6526, XTAL(1'000'000))
|
||||
MCFG_MOS6526_TOD(50)
|
||||
MCFG_MOS6526_IRQ_CALLBACK(INPUTLINE("maincpu", M6510_IRQ_LINE))
|
||||
MCFG_MOS6526_PA_OUTPUT_CALLBACK(WRITE8(*this, sbc6510_state, key_w))
|
||||
MCFG_MOS6526_PB_INPUT_CALLBACK(READ8(*this, sbc6510_state, key_r))
|
||||
MACHINE_CONFIG_END
|
||||
mos6526_device &cia(MOS6526(config, "cia6526", XTAL(1'000'000)));
|
||||
cia.set_tod_clock(50);
|
||||
cia.irq_wr_callback().set_inputline("maincpu", M6510_IRQ_LINE);
|
||||
cia.pa_wr_callback().set(FUNC(sbc6510_state::key_w));
|
||||
cia.pb_rd_callback().set(FUNC(sbc6510_state::key_r));
|
||||
}
|
||||
|
||||
/* ROM definition */
|
||||
ROM_START( sbc6510 )
|
||||
|
@ -284,38 +284,36 @@ DEVICE_IMAGE_LOAD_MEMBER(uzebox_state, uzebox_cart)
|
||||
* Machine definition *
|
||||
\****************************************************/
|
||||
|
||||
MACHINE_CONFIG_START(uzebox_state::uzebox)
|
||||
|
||||
void uzebox_state::uzebox(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", ATMEGA644, MASTER_CLOCK)
|
||||
MCFG_DEVICE_PROGRAM_MAP(uzebox_prg_map)
|
||||
MCFG_DEVICE_DATA_MAP(uzebox_data_map)
|
||||
MCFG_DEVICE_IO_MAP(uzebox_io_map)
|
||||
MCFG_CPU_AVR8_EEPROM("eeprom")
|
||||
ATMEGA644(config, m_maincpu, MASTER_CLOCK);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &uzebox_state::uzebox_prg_map);
|
||||
m_maincpu->set_addrmap(AS_DATA, &uzebox_state::uzebox_data_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &uzebox_state::uzebox_io_map);
|
||||
m_maincpu->set_eeprom_tag("eeprom");
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(59.99)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1395))
|
||||
MCFG_SCREEN_SIZE(870, 525)
|
||||
MCFG_SCREEN_VISIBLE_AREA(150, 870-1, 40, 488-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(uzebox_state, screen_update_uzebox)
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_refresh_hz(59.99);
|
||||
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(1395));
|
||||
m_screen->set_size(870, 525);
|
||||
m_screen->set_visarea(150, 870-1, 40, 488-1);
|
||||
m_screen->set_screen_update(FUNC(uzebox_state::screen_update_uzebox));
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
|
||||
MCFG_SOUND_ROUTE(0, "mono", 1.00)
|
||||
SPEAKER_SOUND(config, m_speaker).add_route(0, "mono", 1.00);
|
||||
|
||||
MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "uzebox")
|
||||
MCFG_GENERIC_EXTENSIONS("bin,uze")
|
||||
MCFG_GENERIC_MANDATORY
|
||||
MCFG_GENERIC_LOAD(uzebox_state, uzebox_cart)
|
||||
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "uzebox", "bin,uze");
|
||||
m_cart->set_must_be_loaded(true);
|
||||
m_cart->set_device_load(device_image_load_delegate(&uzebox_state::device_image_load_uzebox_cart, this));
|
||||
|
||||
MCFG_SNES_CONTROL_PORT_ADD("ctrl1", snes_control_port_devices, "joypad")
|
||||
MCFG_SNES_CONTROL_PORT_ADD("ctrl2", snes_control_port_devices, "joypad")
|
||||
SNES_CONTROL_PORT(config, m_ctrl1, snes_control_port_devices, "joypad");
|
||||
SNES_CONTROL_PORT(config, m_ctrl2, snes_control_port_devices, "joypad");
|
||||
|
||||
MCFG_SOFTWARE_LIST_ADD("eprom_list","uzebox")
|
||||
MACHINE_CONFIG_END
|
||||
SOFTWARE_LIST(config, "eprom_list").set_original("uzebox");
|
||||
}
|
||||
|
||||
ROM_START( uzebox )
|
||||
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF ) /* Main program store */
|
||||
|
@ -9,11 +9,12 @@
|
||||
#ifndef MAME_INCLUDES_ARCHIMEDES_H
|
||||
#define MAME_INCLUDES_ARCHIMEDES_H
|
||||
|
||||
#include "cpu/arm/arm.h"
|
||||
#include "imagedev/floppy.h"
|
||||
#include "machine/aakart.h"
|
||||
#include "sound/dac.h"
|
||||
#include "machine/i2cmem.h"
|
||||
#include "machine/wd_fdc.h"
|
||||
#include "imagedev/floppy.h"
|
||||
#include "sound/dac.h"
|
||||
#include "emupal.h"
|
||||
#include "screen.h"
|
||||
|
||||
@ -100,7 +101,7 @@ public:
|
||||
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
|
||||
|
||||
protected:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<arm_cpu_device> m_maincpu;
|
||||
optional_device<i2cmem_device> m_i2cmem;
|
||||
optional_device<wd1772_device> m_fdc;
|
||||
optional_device<floppy_connector> m_floppy0;
|
||||
@ -109,7 +110,7 @@ protected:
|
||||
required_memory_region m_region_vram;
|
||||
required_device<screen_device> m_screen;
|
||||
required_device<palette_device> m_palette;
|
||||
required_device_array<dac_word_interface, 8> m_dac;
|
||||
required_device_array<dac_16bit_r2r_twos_complement_device, 8> m_dac;
|
||||
|
||||
private:
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user