summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/junofrst.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/junofrst.cpp')
-rw-r--r--src/mame/drivers/junofrst.cpp95
1 files changed, 50 insertions, 45 deletions
diff --git a/src/mame/drivers/junofrst.cpp b/src/mame/drivers/junofrst.cpp
index 705e10df256..b4cbbf952ff 100644
--- a/src/mame/drivers/junofrst.cpp
+++ b/src/mame/drivers/junofrst.cpp
@@ -102,23 +102,20 @@ class junofrst_state : public tutankhm_state
{
public:
junofrst_state(const machine_config &mconfig, device_type type, const char *tag)
- : tutankhm_state(mconfig, type, tag),
- m_audiocpu(*this, "audiocpu"),
- m_i8039(*this, "mcu"),
- m_filter_0_0(*this, "filter.0.0"),
- m_filter_0_1(*this, "filter.0.1"),
- m_filter_0_2(*this, "filter.0.2") { }
+ : tutankhm_state(mconfig, type, tag)
+ , m_audiocpu(*this, "audiocpu")
+ , m_i8039(*this, "mcu")
+ , m_filter_0_0(*this, "filter.0.0")
+ , m_filter_0_1(*this, "filter.0.1")
+ , m_filter_0_2(*this, "filter.0.2")
+ {
+ }
- required_device<cpu_device> m_audiocpu;
- required_device<cpu_device> m_i8039;
- required_device<filter_rc_device> m_filter_0_0;
- required_device<filter_rc_device> m_filter_0_1;
- required_device<filter_rc_device> m_filter_0_2;
+ DECLARE_DRIVER_INIT(junofrst);
- uint8_t m_blitterdata[4];
- int m_i8039_status;
- int m_last_irq;
+ void junofrst(machine_config &config);
+protected:
DECLARE_WRITE8_MEMBER(blitter_w);
DECLARE_WRITE8_MEMBER(bankselect_w);
DECLARE_WRITE8_MEMBER(sh_irqtrigger_w);
@@ -127,16 +124,25 @@ public:
DECLARE_READ8_MEMBER(portA_r);
DECLARE_WRITE8_MEMBER(portB_w);
- DECLARE_DRIVER_INIT(junofrst);
- DECLARE_MACHINE_START(junofrst);
- DECLARE_MACHINE_RESET(junofrst);
+ virtual void machine_start() override;
+ virtual void machine_reset() override;
DECLARE_WRITE_LINE_MEMBER(_30hz_irq);
- void junofrst(machine_config &config);
void audio_map(address_map &map);
void main_map(address_map &map);
void mcu_io_map(address_map &map);
void mcu_map(address_map &map);
+
+private:
+ required_device<cpu_device> m_audiocpu;
+ required_device<cpu_device> m_i8039;
+ required_device<filter_rc_device> m_filter_0_0;
+ required_device<filter_rc_device> m_filter_0_1;
+ required_device<filter_rc_device> m_filter_0_2;
+
+ uint8_t m_blitterdata[4];
+ int m_i8039_status;
+ int m_last_irq;
};
@@ -364,8 +370,9 @@ static INPUT_PORTS_START( junofrst )
INPUT_PORTS_END
-MACHINE_START_MEMBER(junofrst_state,junofrst)
+void junofrst_state::machine_start()
{
+ // note that base class version is not called
save_item(NAME(m_i8039_status));
save_item(NAME(m_last_irq));
save_item(NAME(m_irq_toggle));
@@ -375,8 +382,9 @@ MACHINE_START_MEMBER(junofrst_state,junofrst)
save_item(NAME(m_blitterdata));
}
-MACHINE_RESET_MEMBER(junofrst_state,junofrst)
+void junofrst_state::machine_reset()
{
+ // note that base class version is not called
m_i8039_status = 0;
m_last_irq = 0;
m_blitterdata[0] = 0;
@@ -399,31 +407,28 @@ WRITE_LINE_MEMBER(junofrst_state::_30hz_irq)
MACHINE_CONFIG_START(junofrst_state::junofrst)
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", KONAMI1, 1500000) /* 1.5 MHz ??? */
- MCFG_CPU_PROGRAM_MAP(main_map)
+ MCFG_DEVICE_ADD("maincpu", KONAMI1, 1500000) /* 1.5 MHz ??? */
+ MCFG_DEVICE_PROGRAM_MAP(main_map)
- MCFG_CPU_ADD("audiocpu", Z80,14318000/8) /* 1.78975 MHz */
- MCFG_CPU_PROGRAM_MAP(audio_map)
+ MCFG_DEVICE_ADD("audiocpu", Z80,14318000/8) /* 1.78975 MHz */
+ MCFG_DEVICE_PROGRAM_MAP(audio_map)
- MCFG_CPU_ADD("mcu", I8039,8000000) /* 8MHz crystal */
- MCFG_CPU_PROGRAM_MAP(mcu_map)
- MCFG_CPU_IO_MAP(mcu_io_map)
- MCFG_MCS48_PORT_P1_OUT_CB(DEVWRITE8("dac", dac_byte_interface, write))
- MCFG_MCS48_PORT_P2_OUT_CB(WRITE8(junofrst_state, i8039_irqen_and_status_w))
+ MCFG_DEVICE_ADD("mcu", I8039,8000000) /* 8MHz crystal */
+ MCFG_DEVICE_PROGRAM_MAP(mcu_map)
+ MCFG_DEVICE_IO_MAP(mcu_io_map)
+ MCFG_MCS48_PORT_P1_OUT_CB(WRITE8("dac", dac_byte_interface, write))
+ MCFG_MCS48_PORT_P2_OUT_CB(WRITE8(*this, junofrst_state, i8039_irqen_and_status_w))
MCFG_DEVICE_ADD("mainlatch", LS259, 0) // B3
- MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(junofrst_state, irq_enable_w))
- MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(WRITELINE(junofrst_state, coin_counter_2_w))
- MCFG_ADDRESSABLE_LATCH_Q2_OUT_CB(WRITELINE(junofrst_state, coin_counter_1_w))
+ MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(*this, junofrst_state, irq_enable_w))
+ MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(WRITELINE(*this, junofrst_state, coin_counter_2_w))
+ MCFG_ADDRESSABLE_LATCH_Q2_OUT_CB(WRITELINE(*this, junofrst_state, coin_counter_1_w))
MCFG_ADDRESSABLE_LATCH_Q3_OUT_CB(NOOP)
- MCFG_ADDRESSABLE_LATCH_Q4_OUT_CB(WRITELINE(junofrst_state, flip_screen_x_w)) // HFF
- MCFG_ADDRESSABLE_LATCH_Q5_OUT_CB(WRITELINE(junofrst_state, flip_screen_y_w)) // VFLIP
+ MCFG_ADDRESSABLE_LATCH_Q4_OUT_CB(WRITELINE(*this, junofrst_state, flip_screen_x_w)) // HFF
+ MCFG_ADDRESSABLE_LATCH_Q5_OUT_CB(WRITELINE(*this, junofrst_state, flip_screen_y_w)) // VFLIP
MCFG_WATCHDOG_ADD("watchdog")
- MCFG_MACHINE_START_OVERRIDE(junofrst_state,junofrst)
- MCFG_MACHINE_RESET_OVERRIDE(junofrst_state,junofrst)
-
MCFG_PALETTE_ADD("palette", 16)
MCFG_PALETTE_FORMAT(BBGGGRRR)
@@ -434,7 +439,7 @@ MACHINE_CONFIG_START(junofrst_state::junofrst)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) /* not sure about the visible area */
MCFG_SCREEN_UPDATE_DRIVER(junofrst_state, screen_update_tutankhm)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(junofrst_state, _30hz_irq))
+ MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, junofrst_state, _30hz_irq))
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("speaker")
@@ -442,22 +447,22 @@ MACHINE_CONFIG_START(junofrst_state::junofrst)
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
MCFG_GENERIC_LATCH_8_ADD("soundlatch2")
- MCFG_SOUND_ADD("aysnd", AY8910, 14318000/8)
- MCFG_AY8910_PORT_A_READ_CB(READ8(junofrst_state, portA_r))
- MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(junofrst_state, portB_w))
+ MCFG_DEVICE_ADD("aysnd", AY8910, 14318000/8)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(*this, junofrst_state, portA_r))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(*this, junofrst_state, portB_w))
MCFG_SOUND_ROUTE(0, "filter.0.0", 0.30)
MCFG_SOUND_ROUTE(1, "filter.0.1", 0.30)
MCFG_SOUND_ROUTE(2, "filter.0.2", 0.30)
- MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // 100K (R56-63)/200K (R64-71) ladder network
+ MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // 100K (R56-63)/200K (R64-71) ladder network
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)
- MCFG_FILTER_RC_ADD("filter.0.0", 0)
+ MCFG_DEVICE_ADD("filter.0.0", FILTER_RC)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
- MCFG_FILTER_RC_ADD("filter.0.1", 0)
+ MCFG_DEVICE_ADD("filter.0.1", FILTER_RC)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
- MCFG_FILTER_RC_ADD("filter.0.2", 0)
+ MCFG_DEVICE_ADD("filter.0.2", FILTER_RC)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
MACHINE_CONFIG_END