diff options
Diffstat (limited to 'src/mame/drivers/hh_hmcs40.cpp')
-rw-r--r-- | src/mame/drivers/hh_hmcs40.cpp | 461 |
1 files changed, 255 insertions, 206 deletions
diff --git a/src/mame/drivers/hh_hmcs40.cpp b/src/mame/drivers/hh_hmcs40.cpp index 9e4626f83ef..0c69858ca4a 100644 --- a/src/mame/drivers/hh_hmcs40.cpp +++ b/src/mame/drivers/hh_hmcs40.cpp @@ -156,6 +156,12 @@ public: m_inputs(*this, "IN.%u", 0) { } + DECLARE_INPUT_CHANGED_MEMBER(single_interrupt_line); + +protected: + virtual void machine_start() override; + virtual void machine_reset() override; + // devices required_device<hmcs40_cpu_device> m_maincpu; optional_device<pwm_display_device> m_display; @@ -163,22 +169,17 @@ public: optional_ioport_array<7> m_inputs; // max 7 // misc common - u8 m_r[8]; // MCU R ports write data (optional) - u16 m_d; // MCU D port write data (optional) - u8 m_int[2]; // MCU INT0/1 pins state - u16 m_inp_mux; // multiplexed inputs mask + u8 m_r[8] = { }; // MCU R ports write data (optional) + u16 m_d = 0; // MCU D port write data (optional) + u8 m_int[2] = { }; // MCU INT0/1 pins state + u16 m_inp_mux = 0; // multiplexed inputs mask - u32 m_grid; // VFD current row data - u64 m_plate; // VFD current column data + u32 m_grid = 0; // VFD current row data + u64 m_plate = 0; // VFD current column data u16 read_inputs(int columns); void refresh_interrupts(void); void set_interrupt(int line, int state); - DECLARE_INPUT_CHANGED_MEMBER(single_interrupt_line); - -protected: - virtual void machine_start() override; - virtual void machine_reset() override; }; @@ -186,14 +187,6 @@ protected: void hh_hmcs40_state::machine_start() { - // zerofill - memset(m_r, 0, sizeof(m_r)); - memset(m_int, 0, sizeof(m_int)); - m_d = 0; - m_inp_mux = 0; - m_grid = 0; - m_plate = 0; - // register for savestates save_item(NAME(m_r)); save_item(NAME(m_int)); @@ -283,10 +276,12 @@ public: hh_hmcs40_state(mconfig, type, tag) { } + void bambball(machine_config &config); + +private: void plate_w(offs_t offset, u8 data); void grid_w(u16 data); u8 input_r(); - void bambball(machine_config &config); }; // handlers @@ -354,7 +349,7 @@ INPUT_PORTS_END void bambball_state::bambball(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware HD38750(config, m_maincpu, 400000); // approximation m_maincpu->read_r<0>().set(FUNC(bambball_state::input_r)); m_maincpu->write_r<1>().set(FUNC(bambball_state::plate_w)); @@ -362,7 +357,7 @@ void bambball_state::bambball(machine_config &config) m_maincpu->write_r<3>().set(FUNC(bambball_state::plate_w)); m_maincpu->write_d().set(FUNC(bambball_state::grid_w)); - /* video hardware */ + // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); screen.set_refresh_hz(60); screen.set_size(1920, 478); @@ -371,7 +366,7 @@ void bambball_state::bambball(machine_config &config) PWM_DISPLAY(config, m_display).set_size(9, 16); config.set_default_layout(layout_bambball); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); } @@ -407,11 +402,13 @@ public: hh_hmcs40_state(mconfig, type, tag) { } + void bmboxing(machine_config &config); + +private: void update_display(); void plate_w(offs_t offset, u8 data); void grid_w(u16 data); u8 input_r(); - void bmboxing(machine_config &config); }; // handlers @@ -501,7 +498,7 @@ INPUT_PORTS_END void bmboxing_state::bmboxing(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware HD38750(config, m_maincpu, 400000); // approximation m_maincpu->read_r<0>().set(FUNC(bmboxing_state::input_r)); m_maincpu->write_r<1>().set(FUNC(bmboxing_state::plate_w)); @@ -510,7 +507,7 @@ void bmboxing_state::bmboxing(machine_config &config) m_maincpu->write_d().set(FUNC(bmboxing_state::grid_w)); m_maincpu->read_d().set_ioport("IN.4"); - /* video hardware */ + // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); screen.set_refresh_hz(60); screen.set_size(1920, 529); @@ -518,7 +515,7 @@ void bmboxing_state::bmboxing(machine_config &config) PWM_DISPLAY(config, m_display).set_size(9, 12); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); } @@ -554,13 +551,15 @@ public: hh_hmcs40_state(mconfig, type, tag) { } + void bfriskyt(machine_config &config); + + DECLARE_INPUT_CHANGED_MEMBER(input_changed) { update_int1(); } + +private: + void update_int1(); void update_display(); void plate_w(offs_t offset, u8 data); void grid_w(u16 data); - - void update_int1(); - DECLARE_INPUT_CHANGED_MEMBER(input_changed) { update_int1(); } - void bfriskyt(machine_config &config); }; // handlers @@ -631,7 +630,7 @@ INPUT_PORTS_END void bfriskyt_state::bfriskyt(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware HD38800(config, m_maincpu, 400000); // approximation m_maincpu->write_r<0>().set(FUNC(bfriskyt_state::plate_w)); m_maincpu->write_r<1>().set(FUNC(bfriskyt_state::plate_w)); @@ -639,7 +638,7 @@ void bfriskyt_state::bfriskyt(machine_config &config) m_maincpu->write_r<3>().set(FUNC(bfriskyt_state::plate_w)); m_maincpu->write_d().set(FUNC(bfriskyt_state::grid_w)); - /* video hardware */ + // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); screen.set_refresh_hz(60); screen.set_size(1920, 675); @@ -647,7 +646,7 @@ void bfriskyt_state::bfriskyt(machine_config &config) PWM_DISPLAY(config, m_display).set_size(8, 22); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); } @@ -689,10 +688,12 @@ public: hh_hmcs40_state(mconfig, type, tag) { } + void packmon(machine_config &config); + +private: void plate_w(offs_t offset, u8 data); void grid_w(u16 data); u16 input_r(); - void packmon(machine_config &config); }; // handlers @@ -751,7 +752,7 @@ INPUT_PORTS_END void packmon_state::packmon(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware HD38800(config, m_maincpu, 400000); // approximation m_maincpu->write_r<0>().set(FUNC(packmon_state::plate_w)); m_maincpu->write_r<1>().set(FUNC(packmon_state::plate_w)); @@ -760,7 +761,7 @@ void packmon_state::packmon(machine_config &config) m_maincpu->write_d().set(FUNC(packmon_state::grid_w)); m_maincpu->read_d().set(FUNC(packmon_state::input_r)); - /* video hardware */ + // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); screen.set_refresh_hz(60); screen.set_size(1920, 680); @@ -769,7 +770,7 @@ void packmon_state::packmon(machine_config &config) PWM_DISPLAY(config, m_display).set_size(10, 20); config.set_default_layout(layout_packmon); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); } @@ -806,12 +807,14 @@ public: hh_hmcs40_state(mconfig, type, tag) { } - void plate_w(offs_t offset, u8 data); - void grid_w(u16 data); + void bzaxxon(machine_config &config); - void update_int1(); DECLARE_INPUT_CHANGED_MEMBER(input_changed) { update_int1(); } - void bzaxxon(machine_config &config); + +private: + void update_int1(); + void plate_w(offs_t offset, u8 data); + void grid_w(u16 data); }; // handlers @@ -879,7 +882,7 @@ INPUT_PORTS_END void bzaxxon_state::bzaxxon(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware HD38800(config, m_maincpu, 450000); // approximation m_maincpu->write_r<0>().set(FUNC(bzaxxon_state::plate_w)); m_maincpu->write_r<1>().set(FUNC(bzaxxon_state::plate_w)); @@ -888,7 +891,7 @@ void bzaxxon_state::bzaxxon(machine_config &config) m_maincpu->write_d().set(FUNC(bzaxxon_state::grid_w)); m_maincpu->read_d().set_ioport("IN.5"); - /* video hardware */ + // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); screen.set_refresh_hz(60); screen.set_size(613, 1080); @@ -896,7 +899,7 @@ void bzaxxon_state::bzaxxon(machine_config &config) PWM_DISPLAY(config, m_display).set_size(11, 20); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); } @@ -935,12 +938,14 @@ public: hh_hmcs40_state(mconfig, type, tag) { } - void plate_w(offs_t offset, u8 data); - void grid_w(u16 data); + void zackman(machine_config &config); - void update_int0(); DECLARE_INPUT_CHANGED_MEMBER(input_changed) { update_int0(); } - void zackman(machine_config &config); + +private: + void update_int0(); + void plate_w(offs_t offset, u8 data); + void grid_w(u16 data); }; // handlers @@ -1004,7 +1009,7 @@ INPUT_PORTS_END void zackman_state::zackman(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware HD38820(config, m_maincpu, 400000); // approximation m_maincpu->write_r<0>().set(FUNC(zackman_state::plate_w)); m_maincpu->write_r<1>().set(FUNC(zackman_state::plate_w)); @@ -1015,7 +1020,7 @@ void zackman_state::zackman(machine_config &config) m_maincpu->write_r<6>().set(FUNC(zackman_state::plate_w)); m_maincpu->write_d().set(FUNC(zackman_state::grid_w)); - /* video hardware */ + // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); screen.set_refresh_hz(60); screen.set_size(487, 1080); @@ -1023,7 +1028,7 @@ void zackman_state::zackman(machine_config &config) PWM_DISPLAY(config, m_display).set_size(8, 29); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); } @@ -1059,13 +1064,15 @@ public: hh_hmcs40_state(mconfig, type, tag) { } + void bpengo(machine_config &config); + + DECLARE_INPUT_CHANGED_MEMBER(input_changed) { update_int0(); } + +private: + void update_int0(); void update_display(); void plate_w(offs_t offset, u8 data); void grid_w(u16 data); - - void update_int0(); - DECLARE_INPUT_CHANGED_MEMBER(input_changed) { update_int0(); } - void bpengo(machine_config &config); }; // handlers @@ -1136,7 +1143,7 @@ INPUT_PORTS_END void bpengo_state::bpengo(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware HD38820(config, m_maincpu, 400000); // approximation m_maincpu->write_r<0>().set(FUNC(bpengo_state::plate_w)); m_maincpu->write_r<1>().set(FUNC(bpengo_state::plate_w)); @@ -1148,7 +1155,7 @@ void bpengo_state::bpengo(machine_config &config) m_maincpu->write_d().set(FUNC(bpengo_state::grid_w)); m_maincpu->read_d().set_ioport("IN.5"); - /* video hardware */ + // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); screen.set_refresh_hz(60); screen.set_size(1920, 759); @@ -1156,7 +1163,7 @@ void bpengo_state::bpengo(machine_config &config) PWM_DISPLAY(config, m_display).set_size(8, 25); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); } @@ -1192,13 +1199,15 @@ public: hh_hmcs40_state(mconfig, type, tag) { } + void bbtime(machine_config &config); + + DECLARE_INPUT_CHANGED_MEMBER(input_changed) { update_int0(); } + +private: + void update_int0(); void update_display(); void plate_w(offs_t offset, u8 data); void grid_w(u16 data); - - void update_int0(); - DECLARE_INPUT_CHANGED_MEMBER(input_changed) { update_int0(); } - void bbtime(machine_config &config); }; // handlers @@ -1266,7 +1275,7 @@ INPUT_PORTS_END void bbtime_state::bbtime(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware HD38820(config, m_maincpu, 400000); // approximation m_maincpu->write_r<0>().set(FUNC(bbtime_state::plate_w)); m_maincpu->write_r<1>().set(FUNC(bbtime_state::plate_w)); @@ -1277,7 +1286,7 @@ void bbtime_state::bbtime(machine_config &config) m_maincpu->write_r<6>().set(FUNC(bbtime_state::plate_w)); m_maincpu->write_d().set(FUNC(bbtime_state::grid_w)); - /* video hardware */ + // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); screen.set_refresh_hz(60); screen.set_size(379, 1080); @@ -1285,7 +1294,7 @@ void bbtime_state::bbtime(machine_config &config) PWM_DISPLAY(config, m_display).set_size(6, 28); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); } @@ -1321,9 +1330,11 @@ public: hh_hmcs40_state(mconfig, type, tag) { } + void bdoramon(machine_config &config); + +private: void plate_w(offs_t offset, u8 data); void grid_w(u16 data); - void bdoramon(machine_config &config); }; // handlers @@ -1376,7 +1387,7 @@ INPUT_PORTS_END void bdoramon_state::bdoramon(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware HD38800(config, m_maincpu, 400000); // approximation m_maincpu->write_r<0>().set(FUNC(bdoramon_state::plate_w)); m_maincpu->write_r<1>().set(FUNC(bdoramon_state::plate_w)); @@ -1386,7 +1397,7 @@ void bdoramon_state::bdoramon(machine_config &config) m_maincpu->write_d().set(FUNC(bdoramon_state::grid_w)); m_maincpu->read_d().set_ioport("IN.2"); - /* video hardware */ + // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); screen.set_refresh_hz(60); screen.set_size(1920, 668); @@ -1394,7 +1405,7 @@ void bdoramon_state::bdoramon(machine_config &config) PWM_DISPLAY(config, m_display).set_size(8, 19); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); } @@ -1430,9 +1441,11 @@ public: hh_hmcs40_state(mconfig, type, tag) { } + void bultrman(machine_config &config); + +private: void plate_w(offs_t offset, u8 data); void grid_w(u16 data); - void bultrman(machine_config &config); }; // handlers @@ -1478,7 +1491,7 @@ INPUT_PORTS_END void bultrman_state::bultrman(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware HD38800(config, m_maincpu, 350000); // approximation m_maincpu->write_r<0>().set(FUNC(bultrman_state::plate_w)); m_maincpu->write_r<1>().set(FUNC(bultrman_state::plate_w)); @@ -1487,7 +1500,7 @@ void bultrman_state::bultrman(machine_config &config) m_maincpu->write_d().set(FUNC(bultrman_state::grid_w)); m_maincpu->read_d().set_ioport("IN.1"); - /* video hardware */ + // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); screen.set_refresh_hz(60); screen.set_size(1920, 673); @@ -1495,7 +1508,7 @@ void bultrman_state::bultrman(machine_config &config) PWM_DISPLAY(config, m_display).set_size(8, 18); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); } @@ -1531,10 +1544,12 @@ public: hh_hmcs40_state(mconfig, type, tag) { } + void machiman(machine_config &config); + +private: void update_display(); void plate_w(offs_t offset, u8 data); void grid_w(u16 data); - void machiman(machine_config &config); }; // handlers @@ -1577,7 +1592,7 @@ INPUT_PORTS_END void machiman_state::machiman(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware HD38820(config, m_maincpu, 400000); // approximation m_maincpu->write_r<0>().set(FUNC(machiman_state::plate_w)); m_maincpu->write_r<1>().set(FUNC(machiman_state::plate_w)); @@ -1587,7 +1602,7 @@ void machiman_state::machiman(machine_config &config) m_maincpu->write_d().set(FUNC(machiman_state::grid_w)); m_maincpu->read_d().set_ioport("IN.1"); - /* video hardware */ + // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); screen.set_refresh_hz(60); screen.set_size(1534, 1080); @@ -1595,7 +1610,7 @@ void machiman_state::machiman(machine_config &config) PWM_DISPLAY(config, m_display).set_size(5, 19); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); } @@ -1638,6 +1653,9 @@ public: m_soundlatch(*this, "soundlatch%u", 0) { } + void pairmtch(machine_config &config); + +private: required_device<hmcs40_cpu_device> m_audiocpu; required_device_array<generic_latch_8_device, 2> m_soundlatch; @@ -1649,7 +1667,6 @@ public: void sound_w(u8 data); void sound2_w(u8 data); void speaker_w(u16 data); - void pairmtch(machine_config &config); }; // handlers: maincpu side @@ -1745,7 +1762,7 @@ INPUT_PORTS_END void pairmtch_state::pairmtch(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware HD38820(config, m_maincpu, 400000); // approximation m_maincpu->write_r<2>().set(FUNC(pairmtch_state::plate_w)); m_maincpu->write_r<3>().set(FUNC(pairmtch_state::plate_w)); @@ -1763,11 +1780,11 @@ void pairmtch_state::pairmtch(machine_config &config) config.set_perfect_quantum(m_maincpu); - /* video hardware */ + // video hardware PWM_DISPLAY(config, m_display).set_size(6, 12); config.set_default_layout(layout_pairmtch); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); @@ -1809,10 +1826,12 @@ public: hh_hmcs40_state(mconfig, type, tag) { } + void alnattck(machine_config &config); + +private: void plate_w(offs_t offset, u8 data); void grid_w(u16 data); u16 input_r(); - void alnattck(machine_config &config); }; // handlers @@ -1878,7 +1897,7 @@ INPUT_PORTS_END void alnattck_state::alnattck(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware HD38800(config, m_maincpu, 400000); // approximation m_maincpu->write_r<0>().set(FUNC(alnattck_state::plate_w)); m_maincpu->write_r<1>().set(FUNC(alnattck_state::plate_w)); @@ -1887,7 +1906,7 @@ void alnattck_state::alnattck(machine_config &config) m_maincpu->write_d().set(FUNC(alnattck_state::grid_w)); m_maincpu->read_d().set(FUNC(alnattck_state::input_r)); - /* video hardware */ + // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); screen.set_refresh_hz(60); screen.set_size(1920, 700); @@ -1895,7 +1914,7 @@ void alnattck_state::alnattck(machine_config &config) PWM_DISPLAY(config, m_display).set_size(10, 20); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); } @@ -1932,27 +1951,26 @@ public: hh_hmcs40_state(mconfig, type, tag) { } + void cdkong(machine_config &config); + +protected: + virtual void machine_start() override; + +private: void update_display(); void plate_w(offs_t offset, u8 data); void grid_w(u16 data); void speaker_update(); TIMER_DEVICE_CALLBACK_MEMBER(speaker_decay_sim); - double m_speaker_volume; - void cdkong(machine_config &config); - -protected: - virtual void machine_start() override; + double m_speaker_volume = 0.0; std::vector<double> m_speaker_levels; }; void cdkong_state::machine_start() { hh_hmcs40_state::machine_start(); - - // zerofill/init - m_speaker_volume = 0; save_item(NAME(m_speaker_volume)); } @@ -2019,7 +2037,7 @@ INPUT_PORTS_END void cdkong_state::cdkong(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware HD38820(config, m_maincpu, 400000); // approximation m_maincpu->write_r<0>().set(FUNC(cdkong_state::plate_w)); m_maincpu->write_r<1>().set(FUNC(cdkong_state::plate_w)); @@ -2031,7 +2049,7 @@ void cdkong_state::cdkong(machine_config &config) m_maincpu->write_d().set(FUNC(cdkong_state::grid_w)); m_maincpu->read_d().set_ioport("IN.1"); - /* video hardware */ + // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); screen.set_refresh_hz(60); screen.set_size(605, 1080); @@ -2039,7 +2057,7 @@ void cdkong_state::cdkong(machine_config &config) PWM_DISPLAY(config, m_display).set_size(11, 29); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); @@ -2090,13 +2108,15 @@ public: hh_hmcs40_state(mconfig, type, tag) { } + void cgalaxn(machine_config &config); + + DECLARE_INPUT_CHANGED_MEMBER(player_switch); + +private: void update_display(); void grid_w(offs_t offset, u8 data); void plate_w(u16 data); u8 input_r(); - - DECLARE_INPUT_CHANGED_MEMBER(player_switch); - void cgalaxn(machine_config &config); }; // handlers @@ -2169,7 +2189,7 @@ INPUT_PORTS_END void cgalaxn_state::cgalaxn(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware HD38800(config, m_maincpu, 400000); // approximation m_maincpu->read_r<0>().set(FUNC(cgalaxn_state::input_r)); m_maincpu->write_r<1>().set(FUNC(cgalaxn_state::grid_w)); @@ -2177,7 +2197,7 @@ void cgalaxn_state::cgalaxn(machine_config &config) m_maincpu->write_r<3>().set(FUNC(cgalaxn_state::grid_w)); m_maincpu->write_d().set(FUNC(cgalaxn_state::plate_w)); - /* video hardware */ + // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); screen.set_refresh_hz(60); screen.set_size(526, 1080); @@ -2185,7 +2205,7 @@ void cgalaxn_state::cgalaxn(machine_config &config) PWM_DISPLAY(config, m_display).set_size(12, 15); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); } @@ -2233,10 +2253,12 @@ public: hh_hmcs40_state(mconfig, type, tag) { } + void cpacman(machine_config &config); + +private: void plate_w(offs_t offset, u8 data); void grid_w(u16 data); u8 input_r(); - void cpacman(machine_config &config); }; // handlers @@ -2298,7 +2320,7 @@ INPUT_PORTS_END void cpacman_state::cpacman(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware HD38820(config, m_maincpu, 400000); // approximation m_maincpu->read_r<0>().set(FUNC(cpacman_state::input_r)); m_maincpu->write_r<1>().set(FUNC(cpacman_state::plate_w)); @@ -2309,7 +2331,7 @@ void cpacman_state::cpacman(machine_config &config) m_maincpu->write_r<6>().set(FUNC(cpacman_state::plate_w)); m_maincpu->write_d().set(FUNC(cpacman_state::grid_w)); - /* video hardware */ + // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); screen.set_refresh_hz(60); screen.set_size(484, 1080); @@ -2317,7 +2339,7 @@ void cpacman_state::cpacman(machine_config &config) PWM_DISPLAY(config, m_display).set_size(11, 27); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); } @@ -2369,10 +2391,12 @@ public: hh_hmcs40_state(mconfig, type, tag) { } + void cmspacmn(machine_config &config); + +private: void plate_w(offs_t offset, u8 data); void grid_w(u16 data); u8 input_r(); - void cmspacmn(machine_config &config); }; // handlers @@ -2434,7 +2458,7 @@ INPUT_PORTS_END void cmspacmn_state::cmspacmn(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware HD38820(config, m_maincpu, 400000); // approximation m_maincpu->read_r<0>().set(FUNC(cmspacmn_state::input_r)); m_maincpu->write_r<1>().set(FUNC(cmspacmn_state::plate_w)); @@ -2445,7 +2469,7 @@ void cmspacmn_state::cmspacmn(machine_config &config) m_maincpu->write_r<6>().set(FUNC(cmspacmn_state::plate_w)); m_maincpu->write_d().set(FUNC(cmspacmn_state::grid_w)); - /* video hardware */ + // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); screen.set_refresh_hz(60); screen.set_size(481, 1080); @@ -2453,7 +2477,7 @@ void cmspacmn_state::cmspacmn(machine_config &config) PWM_DISPLAY(config, m_display).set_size(12, 33); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); } @@ -2493,11 +2517,13 @@ public: hh_hmcs40_state(mconfig, type, tag) { } + void egalaxn2(machine_config &config); + +private: void update_display(); void plate_w(offs_t offset, u8 data); void grid_w(u16 data); u8 input_r(); - void egalaxn2(machine_config &config); }; // handlers @@ -2570,7 +2596,7 @@ INPUT_PORTS_END void egalaxn2_state::egalaxn2(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware HD38820(config, m_maincpu, 400000); // approximation m_maincpu->read_r<0>().set(FUNC(egalaxn2_state::input_r)); m_maincpu->write_r<1>().set(FUNC(egalaxn2_state::plate_w)); @@ -2581,7 +2607,7 @@ void egalaxn2_state::egalaxn2(machine_config &config) m_maincpu->write_r<6>().set(FUNC(egalaxn2_state::plate_w)); m_maincpu->write_d().set(FUNC(egalaxn2_state::grid_w)); - /* video hardware */ + // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); screen.set_refresh_hz(60); screen.set_size(505, 1080); @@ -2589,7 +2615,7 @@ void egalaxn2_state::egalaxn2(machine_config &config) PWM_DISPLAY(config, m_display).set_size(15, 24); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); } @@ -2668,7 +2694,7 @@ void epacman2_state::epacman2(machine_config &config) { egalaxn2(config); - /* video hardware */ + // video hardware screen_device *screen = subdevice<screen_device>("screen"); screen->set_size(505, 1080); screen->set_visarea_full(); @@ -2719,11 +2745,13 @@ public: hh_hmcs40_state(mconfig, type, tag) { } + void einvader2(machine_config &config); + +private: void update_display(); void plate_w(offs_t offset, u8 data); void grid_w(u16 data); u16 input_r(); - void einvader2(machine_config &config); }; // handlers @@ -2786,7 +2814,7 @@ INPUT_PORTS_END void einvader2_state::einvader2(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware HD38800(config, m_maincpu, 450000); // approximation m_maincpu->write_r<0>().set(FUNC(einvader2_state::plate_w)); m_maincpu->write_r<1>().set(FUNC(einvader2_state::plate_w)); @@ -2795,7 +2823,7 @@ void einvader2_state::einvader2(machine_config &config) m_maincpu->write_d().set(FUNC(einvader2_state::grid_w)); m_maincpu->read_d().set(FUNC(einvader2_state::input_r)); - /* video hardware */ + // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); screen.set_refresh_hz(60); screen.set_size(469, 1080); @@ -2803,7 +2831,7 @@ void einvader2_state::einvader2(machine_config &config) PWM_DISPLAY(config, m_display).set_size(12, 14); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); } @@ -2838,35 +2866,34 @@ class eturtles_state : public hh_hmcs40_state public: eturtles_state(const machine_config &mconfig, device_type type, const char *tag) : hh_hmcs40_state(mconfig, type, tag), - m_audiocpu(*this, "audiocpu"), - m_cop_irq(0) + m_audiocpu(*this, "audiocpu") { } + void eturtles(machine_config &config); + + DECLARE_INPUT_CHANGED_MEMBER(input_changed) { update_int(); } + +protected: + virtual void machine_start() override; + required_device<cop411_cpu_device> m_audiocpu; + void update_int(); virtual void update_display(); void plate_w(offs_t offset, u8 data); void grid_w(u16 data); - u8 m_cop_irq; DECLARE_WRITE_LINE_MEMBER(speaker_w); void cop_irq_w(u8 data); u8 cop_latch_r(); u8 cop_ack_r(); - void update_int(); - DECLARE_INPUT_CHANGED_MEMBER(input_changed) { update_int(); } - void eturtles(machine_config &config); - -protected: - virtual void machine_start() override; + u8 m_cop_irq = 0; }; void eturtles_state::machine_start() { hh_hmcs40_state::machine_start(); - - // register for savestates save_item(NAME(m_cop_irq)); } @@ -2975,7 +3002,7 @@ INPUT_PORTS_END void eturtles_state::eturtles(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware HD38820(config, m_maincpu, 400000); // approximation m_maincpu->write_r<0>().set(FUNC(eturtles_state::plate_w)); m_maincpu->write_r<1>().set(FUNC(eturtles_state::plate_w)); @@ -2995,7 +3022,7 @@ void eturtles_state::eturtles(machine_config &config) config.set_perfect_quantum(m_maincpu); - /* video hardware */ + // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); screen.set_refresh_hz(60); screen.set_size(484, 1080); @@ -3003,7 +3030,7 @@ void eturtles_state::eturtles(machine_config &config) PWM_DISPLAY(config, m_display).set_size(15, 30); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); } @@ -3043,9 +3070,11 @@ public: eturtles_state(mconfig, type, tag) { } + void estargte(machine_config &config); + +private: virtual void update_display() override; u8 cop_data_r(); - void estargte(machine_config &config); }; // handlers (most of it is in eturtles_state above) @@ -3098,26 +3127,26 @@ INPUT_PORTS_END void estargte_state::estargte(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware HD38820(config, m_maincpu, 400000); // approximation - m_maincpu->write_r<0>().set(FUNC(eturtles_state::plate_w)); - m_maincpu->write_r<1>().set(FUNC(eturtles_state::plate_w)); - m_maincpu->write_r<2>().set(FUNC(eturtles_state::plate_w)); - m_maincpu->write_r<3>().set(FUNC(eturtles_state::plate_w)); - m_maincpu->write_r<4>().set(FUNC(eturtles_state::plate_w)); - m_maincpu->write_r<5>().set(FUNC(eturtles_state::plate_w)); - m_maincpu->write_r<6>().set(FUNC(eturtles_state::plate_w)); - m_maincpu->write_d().set(FUNC(eturtles_state::grid_w)); + m_maincpu->write_r<0>().set(FUNC(estargte_state::plate_w)); + m_maincpu->write_r<1>().set(FUNC(estargte_state::plate_w)); + m_maincpu->write_r<2>().set(FUNC(estargte_state::plate_w)); + m_maincpu->write_r<3>().set(FUNC(estargte_state::plate_w)); + m_maincpu->write_r<4>().set(FUNC(estargte_state::plate_w)); + m_maincpu->write_r<5>().set(FUNC(estargte_state::plate_w)); + m_maincpu->write_r<6>().set(FUNC(estargte_state::plate_w)); + m_maincpu->write_d().set(FUNC(estargte_state::grid_w)); COP411(config, m_audiocpu, 190000); // approximation m_audiocpu->set_config(COP400_CKI_DIVISOR_4, COP400_CKO_OSCILLATOR_OUTPUT, false); // guessed - m_audiocpu->write_sk().set(FUNC(eturtles_state::speaker_w)); - m_audiocpu->write_d().set(FUNC(eturtles_state::cop_irq_w)); + m_audiocpu->write_sk().set(FUNC(estargte_state::speaker_w)); + m_audiocpu->write_d().set(FUNC(estargte_state::cop_irq_w)); m_audiocpu->read_l().set(FUNC(estargte_state::cop_data_r)); config.set_perfect_quantum(m_maincpu); - /* video hardware */ + // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); screen.set_refresh_hz(60); screen.set_size(1920, 854); @@ -3125,7 +3154,7 @@ void estargte_state::estargte(machine_config &config) PWM_DISPLAY(config, m_display).set_size(14, 29); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); } @@ -3167,10 +3196,12 @@ public: hh_hmcs40_state(mconfig, type, tag) { } + void ghalien(machine_config &config); + +private: void plate_w(offs_t offset, u8 data); void grid_w(u16 data); u16 input_r(); - void ghalien(machine_config &config); }; // handlers @@ -3237,7 +3268,7 @@ INPUT_PORTS_END void ghalien_state::ghalien(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware HD38800(config, m_maincpu, 400000); // approximation m_maincpu->write_r<0>().set(FUNC(ghalien_state::plate_w)); m_maincpu->write_r<1>().set(FUNC(ghalien_state::plate_w)); @@ -3246,7 +3277,7 @@ void ghalien_state::ghalien(machine_config &config) m_maincpu->write_d().set(FUNC(ghalien_state::grid_w)); m_maincpu->read_d().set(FUNC(ghalien_state::input_r)); - /* video hardware */ + // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); screen.set_refresh_hz(60); screen.set_size(1920, 699); @@ -3254,7 +3285,7 @@ void ghalien_state::ghalien(machine_config &config) PWM_DISPLAY(config, m_display).set_size(10, 20); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); } @@ -3294,12 +3325,14 @@ public: hh_hmcs40_state(mconfig, type, tag) { } - void plate_w(offs_t offset, u8 data); - void grid_w(u16 data); + void gckong(machine_config &config); - void update_int1(); DECLARE_INPUT_CHANGED_MEMBER(input_changed) { update_int1(); } - void gckong(machine_config &config); + +private: + void update_int1(); + void plate_w(offs_t offset, u8 data); + void grid_w(u16 data); }; // handlers @@ -3369,7 +3402,7 @@ INPUT_PORTS_END void gckong_state::gckong(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware HD38800(config, m_maincpu, 400000); // approximation m_maincpu->write_r<0>().set(FUNC(gckong_state::plate_w)); m_maincpu->write_r<1>().set(FUNC(gckong_state::plate_w)); @@ -3378,7 +3411,7 @@ void gckong_state::gckong(machine_config &config) m_maincpu->write_d().set(FUNC(gckong_state::grid_w)); m_maincpu->read_d().set_ioport("IN.5"); - /* video hardware */ + // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); screen.set_refresh_hz(60); screen.set_size(479, 1080); @@ -3387,7 +3420,7 @@ void gckong_state::gckong(machine_config &config) PWM_DISPLAY(config, m_display).set_size(11, 32); config.set_default_layout(layout_gckong); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); } @@ -3432,12 +3465,14 @@ public: hh_hmcs40_state(mconfig, type, tag) { } - void plate_w(offs_t offset, u8 data); - void grid_w(u16 data); + void gscobra(machine_config &config); - void update_int0(); DECLARE_INPUT_CHANGED_MEMBER(input_changed) { update_int0(); } - void gscobra(machine_config &config); + +private: + void update_int0(); + void plate_w(offs_t offset, u8 data); + void grid_w(u16 data); }; // handlers @@ -3502,7 +3537,7 @@ INPUT_PORTS_END void gscobra_state::gscobra(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware HD38820(config, m_maincpu, 400000); // approximation m_maincpu->write_r<0>().set(FUNC(gscobra_state::plate_w)); m_maincpu->write_r<1>().set(FUNC(gscobra_state::plate_w)); @@ -3513,7 +3548,7 @@ void gscobra_state::gscobra(machine_config &config) m_maincpu->write_r<6>().set(FUNC(gscobra_state::plate_w)); m_maincpu->write_d().set(FUNC(gscobra_state::grid_w)); - /* video hardware */ + // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); screen.set_refresh_hz(60); screen.set_size(1920, 852); @@ -3521,7 +3556,7 @@ void gscobra_state::gscobra(machine_config &config) PWM_DISPLAY(config, m_display).set_size(9, 31); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); } @@ -3557,12 +3592,14 @@ public: hh_hmcs40_state(mconfig, type, tag) { } - void plate_w(offs_t offset, u8 data); - void grid_w(u16 data); + void gdigdug(machine_config &config); - void update_int1(); DECLARE_INPUT_CHANGED_MEMBER(input_changed) { update_int1(); } - void gdigdug(machine_config &config); + +private: + void update_int1(); + void plate_w(offs_t offset, u8 data); + void grid_w(u16 data); }; // handlers @@ -3628,7 +3665,7 @@ INPUT_PORTS_END void gdigdug_state::gdigdug(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware HD38820(config, m_maincpu, 400000); // approximation m_maincpu->write_r<0>().set(FUNC(gdigdug_state::plate_w)); m_maincpu->write_r<1>().set(FUNC(gdigdug_state::plate_w)); @@ -3639,7 +3676,7 @@ void gdigdug_state::gdigdug(machine_config &config) m_maincpu->write_r<6>().set(FUNC(gdigdug_state::plate_w)); m_maincpu->write_d().set(FUNC(gdigdug_state::grid_w)); - /* video hardware */ + // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); screen.set_refresh_hz(60); screen.set_size(476, 1080); @@ -3647,7 +3684,7 @@ void gdigdug_state::gdigdug(machine_config &config) PWM_DISPLAY(config, m_display).set_size(9, 32); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); } @@ -3687,12 +3724,14 @@ public: hh_hmcs40_state(mconfig, type, tag) { } + void mwcbaseb(machine_config &config); + +private: void update_display(); void plate_w(offs_t offset, u8 data); void grid_w(u16 data); void speaker_w(u8 data); u8 input_r(); - void mwcbaseb(machine_config &config); }; // handlers @@ -3798,7 +3837,7 @@ INPUT_PORTS_END void mwcbaseb_state::mwcbaseb(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware HD38820(config, m_maincpu, 400000); // approximation m_maincpu->write_r<1>().set(FUNC(mwcbaseb_state::plate_w)); m_maincpu->write_r<2>().set(FUNC(mwcbaseb_state::plate_w)); @@ -3808,7 +3847,7 @@ void mwcbaseb_state::mwcbaseb(machine_config &config) m_maincpu->write_r<6>().set(FUNC(mwcbaseb_state::plate_w)); m_maincpu->write_d().set(FUNC(mwcbaseb_state::grid_w)); - /* video hardware */ + // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); screen.set_refresh_hz(60); screen.set_size(1920, 478); @@ -3818,7 +3857,7 @@ void mwcbaseb_state::mwcbaseb(machine_config &config) m_display->set_bri_levels(0.001); // cyan elements strobed very briefly? config.set_default_layout(layout_mwcbaseb); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); static const double speaker_levels[] = { 0.0, 0.5, -0.5, 0.0, -0.5, 0.0, -1.0, -0.5 }; @@ -3861,13 +3900,15 @@ public: hh_hmcs40_state(mconfig, type, tag) { } + void msthawk(machine_config &config); + + DECLARE_INPUT_CHANGED_MEMBER(input_changed) { update_int0(); } + +private: + void update_int0(); void update_display(); void plate_w(offs_t offset, u8 data); void grid_w(u16 data); - - void update_int0(); - DECLARE_INPUT_CHANGED_MEMBER(input_changed) { update_int0(); } - void msthawk(machine_config &config); }; // handlers @@ -3941,7 +3982,7 @@ INPUT_PORTS_END void msthawk_state::msthawk(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware HD38800(config, m_maincpu, 400000); // approximation m_maincpu->write_r<0>().set(FUNC(msthawk_state::plate_w)); m_maincpu->write_r<1>().set(FUNC(msthawk_state::plate_w)); @@ -3949,7 +3990,7 @@ void msthawk_state::msthawk(machine_config &config) m_maincpu->write_r<3>().set(FUNC(msthawk_state::plate_w)); m_maincpu->write_d().set(FUNC(msthawk_state::grid_w)); - /* video hardware */ + // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); screen.set_refresh_hz(60); screen.set_size(1920, 696); @@ -3958,7 +3999,7 @@ void msthawk_state::msthawk(machine_config &config) PWM_DISPLAY(config, m_display).set_size(10, 21); config.set_default_layout(layout_msthawk); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); } @@ -3994,9 +4035,11 @@ public: hh_hmcs40_state(mconfig, type, tag) { } + void pbqbert(machine_config &config); + +private: void plate_w(offs_t offset, u8 data); void grid_w(u16 data); - void pbqbert(machine_config &config); }; // handlers @@ -4037,7 +4080,7 @@ INPUT_PORTS_END void pbqbert_state::pbqbert(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware HD38820(config, m_maincpu, 400000); // approximation m_maincpu->write_r<0>().set(FUNC(pbqbert_state::plate_w)); m_maincpu->write_r<1>().set(FUNC(pbqbert_state::plate_w)); @@ -4049,7 +4092,7 @@ void pbqbert_state::pbqbert(machine_config &config) m_maincpu->write_d().set(FUNC(pbqbert_state::grid_w)); m_maincpu->read_d().set_ioport("IN.0"); - /* video hardware */ + // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); screen.set_refresh_hz(60); screen.set_size(603, 1080); @@ -4057,7 +4100,7 @@ void pbqbert_state::pbqbert(machine_config &config) PWM_DISPLAY(config, m_display).set_size(8, 30); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); } @@ -4093,13 +4136,15 @@ public: hh_hmcs40_state(mconfig, type, tag) { } + void tmtron(machine_config &config); + + DECLARE_INPUT_CHANGED_MEMBER(input_changed) { update_int1(); } + +private: + void update_int1(); void update_display(); void plate_w(offs_t offset, u8 data); void grid_w(u16 data); - - void update_int1(); - DECLARE_INPUT_CHANGED_MEMBER(input_changed) { update_int1(); } - void tmtron(machine_config &config); }; // handlers @@ -4167,7 +4212,7 @@ INPUT_PORTS_END void tmtron_state::tmtron(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware HD38800(config, m_maincpu, 400000); // approximation m_maincpu->write_r<0>().set(FUNC(tmtron_state::plate_w)); m_maincpu->write_r<1>().set(FUNC(tmtron_state::plate_w)); @@ -4175,7 +4220,7 @@ void tmtron_state::tmtron(machine_config &config) m_maincpu->write_r<3>().set(FUNC(tmtron_state::plate_w)); m_maincpu->write_d().set(FUNC(tmtron_state::grid_w)); - /* video hardware */ + // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); screen.set_refresh_hz(60); screen.set_size(1920, 662); @@ -4183,7 +4228,7 @@ void tmtron_state::tmtron(machine_config &config) PWM_DISPLAY(config, m_display).set_size(10, 23); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); } @@ -4223,13 +4268,15 @@ public: hh_hmcs40_state(mconfig, type, tag) { } + void kingman(machine_config &config); + + DECLARE_INPUT_CHANGED_MEMBER(input_changed) { update_int0(); } + +private: + void update_int0(); void update_display(); void plate_w(offs_t offset, u8 data); void grid_w(u16 data); - - void update_int0(); - DECLARE_INPUT_CHANGED_MEMBER(input_changed) { update_int0(); } - void kingman(machine_config &config); }; // handlers @@ -4297,7 +4344,7 @@ INPUT_PORTS_END void kingman_state::kingman(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware HD38800(config, m_maincpu, 400000); // approximation m_maincpu->write_r<0>().set(FUNC(kingman_state::plate_w)); m_maincpu->write_r<1>().set(FUNC(kingman_state::plate_w)); @@ -4305,7 +4352,7 @@ void kingman_state::kingman(machine_config &config) m_maincpu->write_r<3>().set(FUNC(kingman_state::plate_w)); m_maincpu->write_d().set(FUNC(kingman_state::grid_w)); - /* video hardware */ + // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); screen.set_refresh_hz(60); screen.set_size(374, 1080); @@ -4313,7 +4360,7 @@ void kingman_state::kingman(machine_config &config) PWM_DISPLAY(config, m_display).set_size(9, 23); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); } @@ -4353,9 +4400,11 @@ public: hh_hmcs40_state(mconfig, type, tag) { } + void vinvader(machine_config &config); + +private: void plate_w(offs_t offset, u8 data); void grid_w(u16 data); - void vinvader(machine_config &config); }; // handlers @@ -4401,7 +4450,7 @@ INPUT_PORTS_END void vinvader_state::vinvader(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware HD38750(config, m_maincpu, 300000); // approximation m_maincpu->read_r<0>().set_ioport("IN.0"); m_maincpu->write_r<1>().set(FUNC(vinvader_state::plate_w)); @@ -4410,7 +4459,7 @@ void vinvader_state::vinvader(machine_config &config) m_maincpu->write_d().set(FUNC(vinvader_state::grid_w)); m_maincpu->read_d().set_ioport("IN.1"); - /* video hardware */ + // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); screen.set_refresh_hz(60); screen.set_size(233, 1080); @@ -4418,7 +4467,7 @@ void vinvader_state::vinvader(machine_config &config) PWM_DISPLAY(config, m_display).set_size(9, 12); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); } |