summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author mooglyguy <therealmogminer@gmail.com>2019-02-02 19:24:08 +0100
committer MooglyGuy <therealmogminer@gmail.com>2019-02-02 19:24:32 +0100
commit285fa5415b4dd6ce5e150ddb04921cd79a083cec (patch)
tree9d32ba7aea28c86ddbfeca348bd6ffeb92778e93
parent022f5e8b321fb2671522629fe855223e65b3c8a3 (diff)
-ghosteo: Removed deprecated warning, nw
-i2cmem: Removed some MCFG macros, nw -bus/nes/datach, bandai: Removed MCFG macro, nw -bus/megadrive/eeprom, jcart: Removed MACHINE_CONFIG macros, nw
-rw-r--r--src/devices/bus/megadrive/eeprom.cpp49
-rw-r--r--src/devices/bus/megadrive/jcart.cpp14
-rw-r--r--src/devices/bus/nes/bandai.cpp14
-rw-r--r--src/devices/bus/nes/datach.cpp18
-rw-r--r--src/devices/bus/nes/datach.h14
-rw-r--r--src/devices/machine/i2cmem.cpp76
-rw-r--r--src/devices/machine/i2cmem.h65
-rw-r--r--src/mame/drivers/ghosteo.cpp22
-rw-r--r--src/mame/drivers/peplus.cpp2
-rw-r--r--src/mame/drivers/splus.cpp4
-rw-r--r--src/mame/drivers/ssfindo.cpp49
-rw-r--r--src/mame/drivers/twins.cpp75
-rw-r--r--src/mame/drivers/wrlshunt.cpp179
13 files changed, 398 insertions, 183 deletions
diff --git a/src/devices/bus/megadrive/eeprom.cpp b/src/devices/bus/megadrive/eeprom.cpp
index a39daf4fb52..32787dec152 100644
--- a/src/devices/bus/megadrive/eeprom.cpp
+++ b/src/devices/bus/megadrive/eeprom.cpp
@@ -107,33 +107,40 @@ md_eeprom_blara_device::md_eeprom_blara_device(const machine_config &mconfig, co
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(md_std_eeprom_device::device_add_mconfig)
- MCFG_24C01_ADD("i2cmem")
-MACHINE_CONFIG_END
+void md_std_eeprom_device::device_add_mconfig(machine_config &config)
+{
+ I2C_24C01(config, m_i2cmem);
+}
-MACHINE_CONFIG_START(md_eeprom_nbajam_device::device_add_mconfig)
- MCFG_24C02_ADD("i2cmem")
-MACHINE_CONFIG_END
+void md_eeprom_nbajam_device::device_add_mconfig(machine_config &config)
+{
+ I2C_24C02(config, m_i2cmem);
+}
-MACHINE_CONFIG_START(md_eeprom_nbajamte_device::device_add_mconfig)
- MCFG_24C02_ADD("i2cmem")
-MACHINE_CONFIG_END
+void md_eeprom_nbajamte_device::device_add_mconfig(machine_config &config)
+{
+ I2C_24C01(config, m_i2cmem);
+}
-MACHINE_CONFIG_START(md_eeprom_cslam_device::device_add_mconfig)
- MCFG_24C64_ADD("i2cmem")
-MACHINE_CONFIG_END
+void md_eeprom_cslam_device::device_add_mconfig(machine_config &config)
+{
+ I2C_24C64(config, m_i2cmem);
+}
-MACHINE_CONFIG_START(md_eeprom_nflqb_device::device_add_mconfig)
- MCFG_24C16_ADD("i2cmem")
-MACHINE_CONFIG_END
+void md_eeprom_nflqb_device::device_add_mconfig(machine_config &config)
+{
+ I2C_24C16(config, m_i2cmem);
+}
-MACHINE_CONFIG_START(md_eeprom_nhlpa_device::device_add_mconfig)
- MCFG_24C01_ADD("i2cmem")
-MACHINE_CONFIG_END
+void md_eeprom_nhlpa_device::device_add_mconfig(machine_config &config)
+{
+ I2C_24C01(config, m_i2cmem);
+}
-MACHINE_CONFIG_START(md_eeprom_blara_device::device_add_mconfig)
- MCFG_24C64_ADD("i2cmem")
-MACHINE_CONFIG_END
+void md_eeprom_blara_device::device_add_mconfig(machine_config &config)
+{
+ I2C_24C64(config, m_i2cmem);
+}
void md_std_eeprom_device::device_start()
{
diff --git a/src/devices/bus/megadrive/jcart.cpp b/src/devices/bus/megadrive/jcart.cpp
index aa6d763e517..76f38ff0dd3 100644
--- a/src/devices/bus/megadrive/jcart.cpp
+++ b/src/devices/bus/megadrive/jcart.cpp
@@ -81,13 +81,15 @@ md_seprom_mm96_device::md_seprom_mm96_device(const machine_config &mconfig, cons
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(md_seprom_codemast_device::device_add_mconfig)
- MCFG_24C08_ADD("i2cmem")
-MACHINE_CONFIG_END
+void md_seprom_codemast_device::device_add_mconfig(machine_config &config)
+{
+ I2C_24C08(config, m_i2cmem);
+}
-MACHINE_CONFIG_START(md_seprom_mm96_device::device_add_mconfig)
- MCFG_24C16A_ADD("i2cmem")
-MACHINE_CONFIG_END
+void md_seprom_mm96_device::device_add_mconfig(machine_config &config)
+{
+ I2C_24C16A(config, m_i2cmem);
+}
static INPUT_PORTS_START( jcart_ipt )
diff --git a/src/devices/bus/nes/bandai.cpp b/src/devices/bus/nes/bandai.cpp
index ff87be980d5..89f8009c0b5 100644
--- a/src/devices/bus/nes/bandai.cpp
+++ b/src/devices/bus/nes/bandai.cpp
@@ -391,13 +391,15 @@ READ8_MEMBER(nes_lz93d50_24c01_device::read_m)
// SERIAL I2C DEVICE
//-------------------------------------------------
-MACHINE_CONFIG_START(nes_lz93d50_24c01_device::device_add_mconfig)
- MCFG_24C01_ADD("i2cmem")
-MACHINE_CONFIG_END
+void nes_lz93d50_24c01_device::device_add_mconfig(machine_config &config)
+{
+ I2C_24C01(config, m_i2cmem);
+}
-MACHINE_CONFIG_START(nes_lz93d50_24c02_device::device_add_mconfig)
- MCFG_24C02_ADD("i2cmem")
-MACHINE_CONFIG_END
+void nes_lz93d50_24c02_device::device_add_mconfig(machine_config &config)
+{
+ I2C_24C02(config, m_i2cmem);
+}
/*-------------------------------------------------
diff --git a/src/devices/bus/nes/datach.cpp b/src/devices/bus/nes/datach.cpp
index c8549924f68..b95f03cfb84 100644
--- a/src/devices/bus/nes/datach.cpp
+++ b/src/devices/bus/nes/datach.cpp
@@ -201,9 +201,10 @@ uint8_t *nes_datach_rom_device::get_cart_base()
}
-MACHINE_CONFIG_START(nes_datach_24c01_device::device_add_mconfig)
- MCFG_24C01_ADD("i2cmem")
-MACHINE_CONFIG_END
+void nes_datach_24c01_device::device_add_mconfig(machine_config &config)
+{
+ I2C_24C01(config, m_i2cmem);
+}
//---------------------------------
@@ -368,11 +369,12 @@ static void datach_cart(device_slot_interface &device)
}
-MACHINE_CONFIG_START(nes_datach_device::device_add_mconfig)
- BARCODE_READER(config, "datach", 0);
- MCFG_DATACH_MINICART_ADD("datach_slot", datach_cart)
- MCFG_24C02_ADD("i2cmem")
-MACHINE_CONFIG_END
+void nes_datach_device::device_add_mconfig(machine_config &config)
+{
+ BARCODE_READER(config, m_reader, 0);
+ NES_DATACH_SLOT(config, m_subslot, 0, datach_cart);
+ I2C_24C02(config, m_i2cmem);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/nes/datach.h b/src/devices/bus/nes/datach.h
index 5d4decd64fa..e1b14b01aa8 100644
--- a/src/devices/bus/nes/datach.h
+++ b/src/devices/bus/nes/datach.h
@@ -52,6 +52,15 @@ class nes_datach_slot_device : public device_t,
friend class nes_datach_device;
public:
// construction/destruction
+ template <typename T>
+ nes_datach_slot_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock, T &&opts)
+ : nes_datach_slot_device(mconfig, tag, owner, clock)
+ {
+ option_reset();
+ opts(*this);
+ set_default_option(nullptr);
+ set_fixed(false);
+ }
nes_datach_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual ~nes_datach_slot_device();
@@ -85,11 +94,6 @@ protected:
DECLARE_DEVICE_TYPE(NES_DATACH_SLOT, nes_datach_slot_device)
-#define MCFG_DATACH_MINICART_ADD(_tag, _slot_intf) \
- MCFG_DEVICE_ADD(_tag, NES_DATACH_SLOT, 0) \
- MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, nullptr, false)
-
-
//--------------------------------
//
// Datach Minicart implementation
diff --git a/src/devices/machine/i2cmem.cpp b/src/devices/machine/i2cmem.cpp
index 94670ff5326..b48085687e6 100644
--- a/src/devices/machine/i2cmem.cpp
+++ b/src/devices/machine/i2cmem.cpp
@@ -59,7 +59,13 @@ static inline void ATTR_PRINTF( 3, 4 ) verboselog( device_t *device, int n_level
// device type definition
DEFINE_DEVICE_TYPE(I2CMEM, i2cmem_device, "i2cmem", "I2C Memory")
-DEFINE_DEVICE_TYPE(X2404P, x2404p_device, "x2404p", "X2404P I2C Memory")
+DEFINE_DEVICE_TYPE(I2C_X2404P, i2c_x2404p_device, "x2404p", "X2404P I2C Memory")
+DEFINE_DEVICE_TYPE(I2C_24C01, i2c_24c01_device, "24c01", "24C01 I2C Memory")
+DEFINE_DEVICE_TYPE(I2C_24C02, i2c_24c02_device, "24c02", "24C02 I2C Memory")
+DEFINE_DEVICE_TYPE(I2C_24C08, i2c_24c08_device, "24c08", "24C08 I2C Memory")
+DEFINE_DEVICE_TYPE(I2C_24C16, i2c_24c16_device, "24c16", "24C16 I2C Memory")
+DEFINE_DEVICE_TYPE(I2C_24C16A, i2c_24c16a_device, "24c16a", "24C16A I2C Memory")
+DEFINE_DEVICE_TYPE(I2C_24C64, i2c_24c64_device, "24c64", "24C64 I2C Memory")
//**************************************************************************
// LIVE DEVICE
@@ -69,36 +75,64 @@ DEFINE_DEVICE_TYPE(X2404P, x2404p_device, "x2404p", "X2404P I2C Memory")
// i2cmem_device - constructor
//-------------------------------------------------
-i2cmem_device::i2cmem_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock)
- : device_t(mconfig, type, tag, owner, clock),
+i2cmem_device::i2cmem_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, int page_size, int data_size)
+ : device_t(mconfig, type, tag, owner, (uint32_t)0),
device_nvram_interface(mconfig, *this),
m_region(*this, DEVICE_SELF),
- m_slave_address( I2CMEM_SLAVE_ADDRESS ),
- m_page_size( 0 ),
- m_data_size( 0 ),
- m_scl( 0 ),
- m_sdaw( 0 ),
- m_e0( 0 ),
- m_e1( 0 ),
- m_e2( 0 ),
- m_wc( 0 ),
- m_sdar( 1 ),
- m_state( STATE_IDLE ),
- m_shift( 0 ),
- m_byteaddr( 0 )
+ m_slave_address(I2CMEM_SLAVE_ADDRESS),
+ m_page_size(page_size),
+ m_data_size(data_size),
+ m_scl(0),
+ m_sdaw(0),
+ m_e0(0),
+ m_e1(0),
+ m_e2(0),
+ m_wc(0),
+ m_sdar(1),
+ m_state(STATE_IDLE),
+ m_shift(0),
+ m_byteaddr(0)
{
}
i2cmem_device::i2cmem_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : i2cmem_device(mconfig, I2CMEM, tag, owner, clock)
+ : i2cmem_device(mconfig, I2CMEM, tag, owner, 0, 0)
{
}
-x2404p_device::x2404p_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : i2cmem_device(mconfig, X2404P, tag, owner, clock)
+i2c_x2404p_device::i2c_x2404p_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : i2cmem_device(mconfig, I2C_X2404P, tag, owner, 8, 0x200)
+{
+}
+
+i2c_24c01_device::i2c_24c01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : i2cmem_device(mconfig, I2C_24C01, tag, owner, 4, 0x80)
+{
+}
+
+i2c_24c02_device::i2c_24c02_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : i2cmem_device(mconfig, I2C_24C02, tag, owner, 4, 0x100)
+{
+}
+
+i2c_24c08_device::i2c_24c08_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : i2cmem_device(mconfig, I2C_24C08, tag, owner, 0, 0x400)
+{
+}
+
+i2c_24c16_device::i2c_24c16_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : i2cmem_device(mconfig, I2C_24C16, tag, owner, 8, 0x800)
+{
+}
+
+i2c_24c16a_device::i2c_24c16a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : i2cmem_device(mconfig, I2C_24C16A, tag, owner, 0, 0x800)
+{
+}
+
+i2c_24c64_device::i2c_24c64_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : i2cmem_device(mconfig, I2C_24C64, tag, owner, 8, 0x2000)
{
- set_page_size(8);
- set_data_size(0x200);
}
//-------------------------------------------------
diff --git a/src/devices/machine/i2cmem.h b/src/devices/machine/i2cmem.h
index d67fa463c2e..148988708c9 100644
--- a/src/devices/machine/i2cmem.h
+++ b/src/devices/machine/i2cmem.h
@@ -44,39 +44,6 @@
#define MCFG_I2CMEM_WC(wc) \
downcast<i2cmem_device &>(*device).set_wc(wc);
-#define MCFG_X2404P_ADD( _tag ) \
- MCFG_I2CMEM_ADD( _tag ) \
- MCFG_I2CMEM_PAGE_SIZE(8) \
- MCFG_I2CMEM_DATA_SIZE(0x200)
-
-#define MCFG_24C01_ADD( _tag ) \
- MCFG_I2CMEM_ADD( _tag ) \
- MCFG_I2CMEM_PAGE_SIZE(4) \
- MCFG_I2CMEM_DATA_SIZE(0x80)
-
-#define MCFG_24C02_ADD( _tag ) \
- MCFG_I2CMEM_ADD( _tag ) \
- MCFG_I2CMEM_PAGE_SIZE(4) \
- MCFG_I2CMEM_DATA_SIZE(0x100)
-
-#define MCFG_24C08_ADD( _tag ) \
- MCFG_I2CMEM_ADD( _tag ) \
- MCFG_I2CMEM_DATA_SIZE(0x400)
-
-#define MCFG_24C16_ADD( _tag ) \
- MCFG_I2CMEM_ADD( _tag ) \
- MCFG_I2CMEM_PAGE_SIZE(8) \
- MCFG_I2CMEM_DATA_SIZE(0x800)
-
-#define MCFG_24C16A_ADD( _tag ) \
- MCFG_I2CMEM_ADD( _tag ) \
- MCFG_I2CMEM_DATA_SIZE(0x800)
-
-#define MCFG_24C64_ADD( _tag ) \
- MCFG_I2CMEM_ADD( _tag ) \
- MCFG_I2CMEM_PAGE_SIZE(8) \
- MCFG_I2CMEM_DATA_SIZE(0x2000)
-
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
@@ -110,7 +77,7 @@ public:
protected:
// construction/destruction
- i2cmem_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock = 0);
+ i2cmem_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, int page_size, int data_size);
// device-level overrides
virtual void device_start() override;
@@ -149,15 +116,29 @@ protected:
int m_page_offset;
};
-class x2404p_device : public i2cmem_device
-{
-public:
- // construction/destruction
- x2404p_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
-};
+#define DECLARE_I2C_DEVICE(name) \
+ class i2c_##name##_device : public i2cmem_device \
+ { \
+ public: \
+ i2c_##name##_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); \
+ };
+
+DECLARE_I2C_DEVICE(x2404p)
+DECLARE_I2C_DEVICE(24c01)
+DECLARE_I2C_DEVICE(24c02)
+DECLARE_I2C_DEVICE(24c08)
+DECLARE_I2C_DEVICE(24c16);
+DECLARE_I2C_DEVICE(24c16a);
+DECLARE_I2C_DEVICE(24c64);
// device type definition
-DECLARE_DEVICE_TYPE(I2CMEM, i2cmem_device)
-DECLARE_DEVICE_TYPE(X2404P, x2404p_device)
+DECLARE_DEVICE_TYPE(I2CMEM, i2cmem_device)
+DECLARE_DEVICE_TYPE(I2C_X2404P, i2c_x2404p_device)
+DECLARE_DEVICE_TYPE(I2C_24C01, i2c_24c01_device)
+DECLARE_DEVICE_TYPE(I2C_24C02, i2c_24c02_device)
+DECLARE_DEVICE_TYPE(I2C_24C08, i2c_24c08_device)
+DECLARE_DEVICE_TYPE(I2C_24C16, i2c_24c16_device)
+DECLARE_DEVICE_TYPE(I2C_24C16A, i2c_24c16a_device)
+DECLARE_DEVICE_TYPE(I2C_24C64, i2c_24c64_device)
#endif // MAME_MACHINE_I2CMEM_H
diff --git a/src/mame/drivers/ghosteo.cpp b/src/mame/drivers/ghosteo.cpp
index f893214d78c..1633121c446 100644
--- a/src/mame/drivers/ghosteo.cpp
+++ b/src/mame/drivers/ghosteo.cpp
@@ -93,6 +93,7 @@ public:
, m_maincpu(*this, "maincpu")
, m_i2cmem(*this, "i2cmem")
, m_s3c2410(*this, "s3c2410")
+ , m_qs1000(*this, "qs1000")
, m_soundlatch(*this, "soundlatch")
, m_system_memory(*this, "systememory")
, m_flash(*this, "flash")
@@ -110,6 +111,7 @@ private:
required_device<cpu_device> m_maincpu;
required_device<i2cmem_device> m_i2cmem;
required_device<s3c2410_device> m_s3c2410;
+ required_device<qs1000_device> m_qs1000;
required_device<generic_latch_8_device> m_soundlatch;
required_shared_ptr<uint32_t> m_system_memory;
required_region_ptr<uint8_t> m_flash;
@@ -592,7 +594,7 @@ READ32_MEMBER(ghosteo_state::bballoon_speedup_r)
void ghosteo_state::machine_start()
{
// Set up the QS1000 program ROM banking, taking care not to overlap the internal RAM
- machine().device("qs1000:cpu")->memory().space(AS_IO).install_read_bank(0x0100, 0xffff, "bank");
+ m_qs1000->subdevice<i8052_device>("cpu")->space(AS_IO).install_read_bank(0x0100, 0xffff, "bank");
membank("qs1000:bank")->configure_entries(0, 8, memregion("qs1000:cpu")->base()+0x100, 0x10000);
}
@@ -640,17 +642,17 @@ void ghosteo_state::ghosteo(machine_config &config)
SPEAKER(config, "rspeaker").front_right();
GENERIC_LATCH_8(config, m_soundlatch);
- m_soundlatch->data_pending_callback().set("qs1000", FUNC(qs1000_device::set_irq));
+ m_soundlatch->data_pending_callback().set(m_qs1000, FUNC(qs1000_device::set_irq));
m_soundlatch->set_separate_acknowledge(true);
- qs1000_device &qs1000(QS1000(config, "qs1000", XTAL(24'000'000)));
- qs1000.set_external_rom(true);
- qs1000.p1_in().set("soundlatch", FUNC(generic_latch_8_device::read));
- qs1000.p1_out().set(FUNC(ghosteo_state::qs1000_p1_w));
- qs1000.p2_out().set(FUNC(ghosteo_state::qs1000_p2_w));
- qs1000.p3_out().set(FUNC(ghosteo_state::qs1000_p3_w));
- qs1000.add_route(0, "lspeaker", 1.0);
- qs1000.add_route(1, "rspeaker", 1.0);
+ QS1000(config, m_qs1000, XTAL(24'000'000));
+ m_qs1000->set_external_rom(true);
+ m_qs1000->p1_in().set("soundlatch", FUNC(generic_latch_8_device::read));
+ m_qs1000->p1_out().set(FUNC(ghosteo_state::qs1000_p1_w));
+ m_qs1000->p2_out().set(FUNC(ghosteo_state::qs1000_p2_w));
+ m_qs1000->p3_out().set(FUNC(ghosteo_state::qs1000_p3_w));
+ m_qs1000->add_route(0, "lspeaker", 1.0);
+ m_qs1000->add_route(1, "rspeaker", 1.0);
}
void ghosteo_state::bballoon(machine_config &config)
diff --git a/src/mame/drivers/peplus.cpp b/src/mame/drivers/peplus.cpp
index d993ef2919c..93236ea444f 100644
--- a/src/mame/drivers/peplus.cpp
+++ b/src/mame/drivers/peplus.cpp
@@ -1399,7 +1399,7 @@ MACHINE_CONFIG_START(peplus_state::peplus)
m_crtc->set_on_update_addr_change_callback(FUNC(peplus_state::crtc_addr), this);
m_crtc->out_vsync_callback().set(FUNC(peplus_state::crtc_vsync));
- X2404P(config, m_i2cmem);
+ I2C_X2404P(config, m_i2cmem);
// sound hardware
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/splus.cpp b/src/mame/drivers/splus.cpp
index 8942e711733..1810b6ee3f7 100644
--- a/src/mame/drivers/splus.cpp
+++ b/src/mame/drivers/splus.cpp
@@ -135,7 +135,7 @@ private:
required_ioport m_i30;
required_ioport m_sensor;
required_device<i80c32_device> m_maincpu;
- required_device<x2404p_device> m_i2cmem;
+ required_device<i2c_x2404p_device> m_i2cmem;
output_finder<9> m_digits;
output_finder<5,8> m_leds;
};
@@ -700,7 +700,7 @@ void splus_state::splus(machine_config &config) // basic machine hardware
screen.set_visarea(0*8, 40*8-1, 0*8, 25*8-1);
screen.set_palette("palette");
- X2404P(config, m_i2cmem);
+ I2C_X2404P(config, m_i2cmem);
// sound hardware
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/ssfindo.cpp b/src/mame/drivers/ssfindo.cpp
index 376ef33e65c..4bc633cb729 100644
--- a/src/mame/drivers/ssfindo.cpp
+++ b/src/mame/drivers/ssfindo.cpp
@@ -796,46 +796,45 @@ static INPUT_PORTS_START( tetfight )
INPUT_PORTS_END
-MACHINE_CONFIG_START(ssfindo_state::ssfindo)
-
+void ssfindo_state::ssfindo(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", ARM7, 54000000) // guess...
- MCFG_DEVICE_PROGRAM_MAP(ssfindo_map)
+ ARM7(config, m_maincpu, 54000000); // guess...
+ m_maincpu->set_addrmap(AS_PROGRAM, &ssfindo_state::ssfindo_map);
+ m_maincpu->set_vblank_int("screen", FUNC(ssfindo_state::interrupt));
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", ssfindo_state, interrupt)
+ I2C_24C01(config, m_i2cmem);
- MCFG_24C01_ADD("i2cmem")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_size(320, 256);
+ screen.set_visarea(0, 319, 0, 239);
+ screen.set_screen_update(FUNC(ssfindo_state::screen_update));
+ screen.set_palette(m_palette);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(320, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
- MCFG_SCREEN_UPDATE_DRIVER(ssfindo_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
-
- MCFG_PALETTE_ADD("palette", 256)
-MACHINE_CONFIG_END
+ PALETTE(config, m_palette).set_entries(256);
+}
-MACHINE_CONFIG_START(ssfindo_state::ppcar)
+void ssfindo_state::ppcar(machine_config &config)
+{
ssfindo(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(ppcar_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &ssfindo_state::ppcar_map);
config.device_remove("i2cmem");
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(ssfindo_state::tetfight)
+void ssfindo_state::tetfight(machine_config &config)
+{
ppcar(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(tetfight_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &ssfindo_state::tetfight_map);
- MCFG_24C02_ADD("i2cmem")
-MACHINE_CONFIG_END
+ I2C_24C02(config, m_i2cmem);
+}
ROM_START( ssfindo )
ROM_REGION(0x100000, "maincpu", 0 ) /* ARM 32 bit code */
diff --git a/src/mame/drivers/twins.cpp b/src/mame/drivers/twins.cpp
index f20681103de..f4c148b2ac4 100644
--- a/src/mame/drivers/twins.cpp
+++ b/src/mame/drivers/twins.cpp
@@ -418,22 +418,23 @@ static INPUT_PORTS_START(twins)
INPUT_PORTS_END
-MACHINE_CONFIG_START(twins_state::twinsed1)
+void twins_state::twinsed1(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", V30, 8000000)
- MCFG_DEVICE_PROGRAM_MAP(twins_map)
- MCFG_DEVICE_IO_MAP(twinsed1_io)
+ V30(config, m_maincpu, 8000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &twins_state::twins_map);
+ m_maincpu->set_addrmap(AS_IO, &twins_state::twinsed1_io);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(8000000, 512, 0, 320, 312, 0, 200) // 15.625 kHz horizontal???
- MCFG_SCREEN_UPDATE_DRIVER(twins_state, screen_update_twins)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_NMI))
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(8000000, 512, 0, 320, 312, 0, 200); // 15.625 kHz horizontal???
+ screen.set_screen_update(FUNC(twins_state::screen_update_twins));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI);
- MCFG_24C02_ADD("i2cmem")
+ I2C_24C02(config, m_i2cmem);
- MCFG_PALETTE_ADD("palette", 0x100)
+ PALETTE(config, m_palette).set_entries(0x100);
/* sound hardware */
SPEAKER(config, "mono").front_center();
@@ -442,7 +443,7 @@ MACHINE_CONFIG_START(twins_state::twinsed1)
aysnd.port_a_read_callback().set_ioport("P1");
aysnd.port_b_read_callback().set_ioport("P2");
aysnd.add_route(ALL_OUTPUTS, "mono", 1.0);
-MACHINE_CONFIG_END
+}
/* The Ecogames set and the Electronic Devices second set has different palette hardware
@@ -465,25 +466,26 @@ void twins_state::ramdac_map(address_map &map)
}
-MACHINE_CONFIG_START(twins_state::twins)
+void twins_state::twins(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", V30, XTAL(16'000'000)/2) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(twins_map)
- MCFG_DEVICE_IO_MAP(twins_io)
+ V30(config, m_maincpu, XTAL(16'000'000)/2); /* verified on pcb */
+ m_maincpu->set_addrmap(AS_PROGRAM, &twins_state::twins_map);
+ m_maincpu->set_addrmap(AS_IO, &twins_state::twins_io);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(8000000, 512, 0, 320, 312, 0, 200) // 15.625 kHz horizontal???
- MCFG_SCREEN_UPDATE_DRIVER(twins_state, screen_update_twins)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_NMI))
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(8000000, 512, 0, 320, 312, 0, 200); // 15.625 kHz horizontal???
+ screen.set_screen_update(FUNC(twins_state::screen_update_twins));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI);
- MCFG_PALETTE_ADD("palette", 256)
+ PALETTE(config, m_palette).set_entries(256);
ramdac_device &ramdac(RAMDAC(config, "ramdac", 0, m_palette));
ramdac.set_addrmap(0, &twins_state::ramdac_map);
ramdac.set_split_read(0);
- MCFG_24C02_ADD("i2cmem")
+ I2C_24C02(config, m_i2cmem);
/* sound hardware */
SPEAKER(config, "mono").front_center();
@@ -492,7 +494,7 @@ MACHINE_CONFIG_START(twins_state::twins)
aysnd.port_a_read_callback().set_ioport("P1");
aysnd.port_b_read_callback().set_ioport("P2");
aysnd.add_route(ALL_OUTPUTS, "mono", 1.0);
-MACHINE_CONFIG_END
+}
WRITE16_MEMBER(twins_state::spider_pal_w)
{
@@ -590,22 +592,23 @@ void twins_state::spider_io(address_map &map)
}
-MACHINE_CONFIG_START(twins_state::spider)
+void twins_state::spider(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", V30, 8000000)
- MCFG_DEVICE_PROGRAM_MAP(twins_map)
- MCFG_DEVICE_IO_MAP(spider_io)
+ V30(config, m_maincpu, 8000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &twins_state::twins_map);
+ m_maincpu->set_addrmap(AS_IO, &twins_state::spider_io);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(8000000, 512, 0, 320, 312, 0, 200) // 15.625 kHz horizontal???
- MCFG_SCREEN_UPDATE_DRIVER(twins_state, screen_update_spider)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_NMI))
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(8000000, 512, 0, 320, 312, 0, 200); // 15.625 kHz horizontal???
+ screen.set_screen_update(FUNC(twins_state::screen_update_spider));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI);
- MCFG_PALETTE_ADD("palette", 0x100)
+ PALETTE(config, m_palette).set_entries(0x100);
- MCFG_24C02_ADD("i2cmem")
+ I2C_24C02(config, m_i2cmem);
/* sound hardware */
SPEAKER(config, "mono").front_center();
@@ -614,7 +617,7 @@ MACHINE_CONFIG_START(twins_state::spider)
aysnd.port_a_read_callback().set_ioport("P1");
aysnd.port_b_read_callback().set_ioport("P2");
aysnd.add_route(ALL_OUTPUTS, "mono", 1.0);
-MACHINE_CONFIG_END
+}
/* ECOGAMES Twins */
diff --git a/src/mame/drivers/wrlshunt.cpp b/src/mame/drivers/wrlshunt.cpp
new file mode 100644
index 00000000000..c8ecef959ec
--- /dev/null
+++ b/src/mame/drivers/wrlshunt.cpp
@@ -0,0 +1,179 @@
+// license:BSD-3-Clause
+// copyright-holders:Ryan Holtz
+/******************************************************************************
+
+ Wireless Hunting Video Game System skeleton driver
+
+ System: Wireless Hunting Video Game System
+ Publisher: Hamy / Kids Station Toys Inc
+ Year: 2011
+ ROM: FDI MSP55LV100G
+ RAM: Micron Technology 48LC8M16A2
+
+ Games:
+ Secret Mission
+ Predator
+ Delta Force
+ Toy Land
+ Dream Forest
+ Trophy Season
+ Freedom Force
+ Be Careful
+ Net Power
+ Open Training
+ Super Archer
+ Ultimate Frisbee
+ UFO Shooting
+ Happy Darts
+ Balloon Shoot
+ Avatair
+ Angry Pirate
+ Penguin War
+ Ghost Shooter
+ Duck Hunt
+
+
+ ROM Board:
+ Package: SO44
+ Spacing: 1.27 mm
+ Width: 16.14 mm
+ Length: 27.78 mm
+ Voltage: 3V
+ Pinout:
+
+ A25 A24
+ | |
+ +--------------------------+
+ A21 --|== # # `.__.' ==|-- A20
+ A18 --|== ==|-- A19
+ A17 --|== ==|-- A8
+ A7 --|== ==|-- A9
+ A6 --|== o ==|-- A10
+ A5 --|== +----------------+ ==|-- A11
+ A4 --|== | | ==|-- A12
+ A3 --|== | MSP55LV100G | ==|-- A13
+ A2 --|== | 0834 M02H | ==|-- A14
+ A1 --|== | JAPAN | ==|-- A15
+ A0 --|== | | ==|-- A16
+ #CE --|== | | ==|-- A23
+ GND --|== | | ==|-- A22
+ #OE --|== | | ==|-- Q15
+ Q0 --|== | | ==|-- Q7
+ Q8 --|== | | ==|-- Q14
+ Q1 --|== +----------------+ ==|-- Q6
+ Q9 --|== ==|-- Q13
+ Q2 --|== M55L100G ==|-- Q5
+ Q10 --|== ==|-- Q12
+ Q3 --|== ==|-- Q4
+ Q11 --|== ==|-- VCC
+ +--------------------------+
+
+ The only interesting string in this ROM is SPF2ALP,
+ which is also found in the Wireless Air 60 ROM.
+
+*******************************************************************************/
+
+#include "emu.h"
+
+#include "cpu/unsp/unsp.h"
+#include "machine/spg2xx.h"
+
+#include "screen.h"
+#include "speaker.h"
+
+class wrlshunt_state : public driver_device
+{
+public:
+ wrlshunt_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ , m_screen(*this, "screen")
+ , m_spg(*this, "spg")
+ { }
+
+ void wrlshunt(machine_config &config);
+
+protected:
+ virtual void machine_start() override;
+ virtual void machine_reset() override;
+
+ void mem_map(address_map &map);
+
+ required_device<unsp12_device> m_maincpu;
+ required_device<screen_device> m_screen;
+ required_device<spg2xx_device> m_spg;
+};
+
+
+/************************************
+ *
+ * Machine Hardware
+ *
+ ************************************/
+
+void wrlshunt_state::machine_start()
+{
+}
+
+void wrlshunt_state::machine_reset()
+{
+}
+
+void wrlshunt_state::mem_map(address_map &map)
+{
+ map(0x008000, 0x00ffff).rom().region("maincpu", 0x10000);
+ map(0x000000, 0x007fff).m(m_spg, FUNC(spg_wh_device::map));
+ map(0x040000, 0x07ffff).rom().region("maincpu", 0x106f000);
+}
+
+
+/************************************
+ *
+ * Inputs
+ *
+ ************************************/
+
+static INPUT_PORTS_START( wrlshunt )
+INPUT_PORTS_END
+
+
+/************************************
+ *
+ * Machine Configs
+ *
+ ************************************/
+
+void wrlshunt_state::wrlshunt(machine_config &config)
+{
+ UNSP12(config, m_maincpu, XTAL(27'000'000));
+ m_maincpu->set_addrmap(AS_PROGRAM, &wrlshunt_state::mem_map);
+
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_size(320, 262);
+ m_screen->set_visarea(0, 320-1, 0, 240-1);
+ m_screen->set_screen_update("spg", FUNC(spg_wh_device::screen_update));
+ m_screen->screen_vblank().set(m_spg, FUNC(spg_wh_device::vblank));
+
+ SPG_WH(config, m_spg, XTAL(27'000'000), m_maincpu, m_screen);
+
+ SPEAKER(config, "lspeaker").front_left();
+ SPEAKER(config, "rspeaker").front_right();
+ m_spg->add_route(ALL_OUTPUTS, "lspeaker", 0.5);
+ m_spg->add_route(ALL_OUTPUTS, "rspeaker", 0.5);
+}
+
+
+/************************************
+ *
+ * ROM Loading
+ *
+ ************************************/
+
+ROM_START( wrlshunt )
+ ROM_REGION( 0x8000000, "maincpu", ROMREGION_ERASE00 )
+ ROM_LOAD16_WORD_SWAP( "wireless.bin", 0x0000, 0x8000000, CRC(a6ecc20e) SHA1(3645f23ba2bb218e92d4560a8ae29dddbaabf796) )
+ROM_END
+
+// valid looking code, but extended periperhal area (twice the size?)
+CONS( 2011, wrlshunt, 0, 0, wrlshunt, wrlshunt, wrlshunt_state, empty_init, "Hamy / Kids Station Toys Inc", "Wireless Hunting Video Game System", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )