From 2d6d1580333b6e6c270194792ea352fe11529fbd Mon Sep 17 00:00:00 2001 From: Vas Crabb Date: Tue, 8 Oct 2019 01:50:18 +1100 Subject: [PATCH] (nw) clean up code rot and cancer I haven't tested the hh_sm510.cpp changes very well yet - I'll give it another review soon, and test it some more before the end of the month. I'm not sure about whether any of the B or BA handlers should be in the base config methods for G&W. I've left them there for some configurations that always have them, but I might rip them out of the common methods altogether. It's not like Tiger where all the games use them. --- src/devices/bus/isa/aga.cpp | 10 +- src/devices/cpu/tlcs900/tlcs900.cpp | 13 +- src/mame/drivers/gizmondo.cpp | 2 +- src/mame/drivers/hh_sm510.cpp | 2480 ++++----------------------- src/mame/drivers/rainbow.cpp | 46 +- src/mame/drivers/rulechan.cpp | 105 +- src/mame/drivers/rzone.cpp | 6 +- src/mame/drivers/sun4.cpp | 2 +- src/mame/includes/hh_sm510.h | 31 +- src/mame/machine/decopincpu.h | 15 +- src/mame/machine/docg3.h | 9 +- src/mame/machine/msx_systemflags.h | 2 +- 12 files changed, 500 insertions(+), 2221 deletions(-) diff --git a/src/devices/bus/isa/aga.cpp b/src/devices/bus/isa/aga.cpp index ab4d2319ab2..0e974bf5f41 100644 --- a/src/devices/bus/isa/aga.cpp +++ b/src/devices/bus/isa/aga.cpp @@ -610,7 +610,7 @@ MC6845_UPDATE_ROW( isa8_aga_device::cga_gfx_1bpp_update_row ) uint8_t const *const videoram = m_videoram.get(); rgb_t const *const palette = m_palette->palette()->entry_list_raw(); uint32_t *p = &bitmap.pix32(y); - uint8_t const fg = m_cga_color_select & 0x0f; + uint8_t const fg = m_cga_color_select & 0x0f; if (y == 0) logerror("cga_gfx_1bpp_update_row\n"); for (int i = 0; i < x_count; i++) { @@ -826,7 +826,7 @@ void isa8_aga_device::pc_aga_set_mode(mode_t mode) } -WRITE8_MEMBER ( isa8_aga_device::pc_aga_videoram_w ) +WRITE8_MEMBER( isa8_aga_device::pc_aga_videoram_w ) { switch (m_mode) { case AGA_COLOR: @@ -846,7 +846,7 @@ READ8_MEMBER( isa8_aga_device::pc_aga_videoram_r ) switch (m_mode) { case AGA_COLOR: if (offset >= 0x8000) - return m_videoram[offset-0x8000]; + return m_videoram[offset - 0x8000]; return 0; case AGA_MONO: return m_videoram[offset]; @@ -869,7 +869,7 @@ READ8_MEMBER( isa8_aga_pc200_device::pc200_videoram_r ) } } -WRITE8_MEMBER ( isa8_aga_pc200_device::pc200_videoram_w ) +WRITE8_MEMBER( isa8_aga_pc200_device::pc200_videoram_w ) { switch (m_mode) { default: @@ -921,7 +921,7 @@ WRITE8_MEMBER( isa8_aga_pc200_device::pc200_cga_w ) } } -READ8_MEMBER ( isa8_aga_pc200_device::pc200_cga_r ) +READ8_MEMBER( isa8_aga_pc200_device::pc200_cga_r ) { uint8_t result; diff --git a/src/devices/cpu/tlcs900/tlcs900.cpp b/src/devices/cpu/tlcs900/tlcs900.cpp index dfd6e86e626..ab22625521e 100644 --- a/src/devices/cpu/tlcs900/tlcs900.cpp +++ b/src/devices/cpu/tlcs900/tlcs900.cpp @@ -1919,16 +1919,12 @@ void tmp95c063_device::device_start() m_portd_write.resolve_safe(); m_porte_read.resolve_safe(0); m_porte_write.resolve_safe(); - for (int i = 0; i < 8; i++) - { - m_an_read[i].resolve_safe(0); - } + for (devcb_read16 &an_read : m_an_read) + an_read.resolve_safe(0); } void tmp95c063_device::device_reset() { - int i; - m_pc.b.l = RDMEM( 0xFFFF00 ); m_pc.b.h = RDMEM( 0xFFFF01 ); m_pc.b.h2 = RDMEM( 0xFFFF02 ); @@ -2011,10 +2007,9 @@ void tmp95c063_device::device_reset() m_reg[TMP95C063_ADREG37H] = 0x00; m_reg[TMP95C063_WDMOD] = 0x80; - for ( i = 0; i < TLCS900_NUM_INPUTS; i++ ) - { + for (int i = 0; i < TLCS900_NUM_INPUTS; i++) m_level[i] = CLEAR_LINE; - } + m_prefetch_clear = true; } diff --git a/src/mame/drivers/gizmondo.cpp b/src/mame/drivers/gizmondo.cpp index d6179f4f6ee..80a5954c29b 100644 --- a/src/mame/drivers/gizmondo.cpp +++ b/src/mame/drivers/gizmondo.cpp @@ -211,7 +211,7 @@ void gizmondo_state::gizmondo(machine_config &config) m_s3c2440->gpio_port_r_callback().set(FUNC(gizmondo_state::s3c2440_gpio_port_r)); m_s3c2440->gpio_port_w_callback().set(FUNC(gizmondo_state::s3c2440_gpio_port_w)); - DISKONCHIP_G3(config, "diskonchip", 64); + DISKONCHIP_G3(config, "diskonchip").set_size(64); #if 0 QUICKLOAD(config, "quickload", "bin", 0).set_load_callback(FUNC(gizmondo_state::quickload_cb), this); diff --git a/src/mame/drivers/hh_sm510.cpp b/src/mame/drivers/hh_sm510.cpp index abf858fb216..8742d5c4029 100644 --- a/src/mame/drivers/hh_sm510.cpp +++ b/src/mame/drivers/hh_sm510.cpp @@ -185,6 +185,230 @@ void hh_sm510_state::machine_reset() +/*************************************************************************** + + Common Machine Configurations + +***************************************************************************/ + +static const s16 piezo2bit_r1_120k_s1_39k[] = { 0, 0x7fff/3*1, 0x7fff/3*2, 0x7fff }; // R via 120K resistor, S1 via 39K resistor (eg. tsonic, tsonic2, tbatmana) + +void hh_sm510_state::common_base(machine_config &config, u16 width, u16 height) +{ + /* basic machine hardware */ + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + + /* video hardware */ + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); + screen.set_refresh_hz(60); + screen.set_size(width, height); + screen.set_visarea_full(); + + /* sound hardware */ + SPEAKER(config, "mono").front_center(); + SPEAKER_SOUND(config, m_speaker); + m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); +} + +void hh_sm510_state::sm500_base(machine_config &config, u16 width, u16 height) +{ + common_base(config, width, height); + + m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm500_lcd_segment_w)); +} + +void hh_sm510_state::sm510_base(machine_config &config, u16 width, u16 height) +{ + common_base(config, width, height); + + m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); +} + +void hh_sm510_state::common_sm511(machine_config &config, u16 width, u16 height) +{ + SM511(config, m_maincpu); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + + sm510_base(config, width, height); +} + +void hh_sm510_state::gnw_sm5a(machine_config &config, u16 width, u16 height) +{ + SM5A(config, m_maincpu); + m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_b().set_ioport("B"); + + sm500_base(config, width, height); +} + +void hh_sm510_state::gnw_sm5a_matrix(machine_config &config, u16 width, u16 height) +{ + SM5A(config, m_maincpu); + m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_input_w)); + + sm500_base(config, width, height); +} + +void hh_sm510_state::gnw_kb1013vk12_matrix(machine_config &config, u16 width, u16 height) +{ + KB1013VK12(config, m_maincpu); + m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_input_w)); + + sm500_base(config, width, height); +} + +void hh_sm510_state::gnw_sm510(machine_config &config, u16 width, u16 height) +{ + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(2); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_b().set_ioport("B"); + + sm510_base(config, width, height); +} + +void hh_sm510_state::gnw_sm511(machine_config &config, u16 width, u16 height) +{ + common_sm511(config, width, height); + + m_maincpu->read_b().set_ioport("B"); +} + +void hh_sm510_state::gnw_dualh(machine_config &config, u16 leftwidth, u16 leftheight, u16 rightwidth, u16 rightheight) +{ + /* basic machine hardware */ + m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); + + /* video hardware */ + screen_device &screen_left(SCREEN(config, "screen_left", SCREEN_TYPE_SVG)); + screen_left.set_refresh_hz(60); + screen_left.set_size(leftwidth, leftheight); + screen_left.set_visarea_full(); + + screen_device &screen_right(SCREEN(config, "screen_right", SCREEN_TYPE_SVG)); + screen_right.set_refresh_hz(60); + screen_right.set_size(rightwidth, rightheight); + screen_right.set_visarea_full(); + + config.set_default_layout(layout_gnw_dualh); + + /* sound hardware */ + SPEAKER(config, "mono").front_center(); + SPEAKER_SOUND(config, m_speaker); + m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); +} + +void hh_sm510_state::gnw_dualv(machine_config &config, u16 topwidth, u16 topheight, u16 botwidth, u16 botheight) +{ + /* basic machine hardware */ + m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + + /* video hardware */ + screen_device &screen_top(SCREEN(config, "screen_top", SCREEN_TYPE_SVG)); + screen_top.set_refresh_hz(60); + screen_top.set_size(topwidth, topheight); + screen_top.set_visarea_full(); + + screen_device &screen_bottom(SCREEN(config, "screen_bottom", SCREEN_TYPE_SVG)); + screen_bottom.set_refresh_hz(60); + screen_bottom.set_size(botwidth, botheight); + screen_bottom.set_visarea_full(); + + config.set_default_layout(layout_gnw_dualv); + + /* sound hardware */ + SPEAKER(config, "mono").front_center(); + SPEAKER_SOUND(config, m_speaker); + m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); +} + +void hh_sm510_state::gnw_sm510_dualh(machine_config &config, u16 leftwidth, u16 leftheight, u16 rightwidth, u16 rightheight) +{ + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(2); + + gnw_dualh(config, leftwidth, leftheight, rightwidth, rightheight); +} + +void hh_sm510_state::gnw_sm510_dualv(machine_config &config, u16 topwidth, u16 topheight, u16 botwidth, u16 botheight) +{ + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(2); + + gnw_dualv(config, topwidth, topheight, botwidth, botheight); +} + +void hh_sm510_state::gnw_sm511_dualv(machine_config &config, u16 topwidth, u16 topheight, u16 botwidth, u16 botheight) +{ + SM511(config, m_maincpu); + + gnw_dualv(config, topwidth, topheight, botwidth, botheight); +} + +void hh_sm510_state::gnw_sm512_dualv(machine_config &config, u16 topwidth, u16 topheight, u16 botwidth, u16 botheight) +{ + SM512(config, m_maincpu); + + gnw_dualv(config, topwidth, topheight, botwidth, botheight); +} + +void hh_sm510_state::konami_sm510(machine_config &config, u16 width, u16 height) +{ + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(2); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + + sm510_base(config, width, height); +} + +void hh_sm510_state::tiger_sm510_1bit(machine_config &config, u16 width, u16 height) +{ + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); + + sm510_base(config, width, height); +} + +void hh_sm510_state::tiger_sm511_1bit(machine_config &config, u16 width, u16 height) +{ + common_sm511(config, width, height); + + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); +} + +void hh_sm510_state::tiger_sm511_2bit(machine_config &config, u16 width, u16 height) +{ + SM511(config, m_maincpu); + m_maincpu->write_s().set(FUNC(hh_sm510_state::piezo2bit_input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo2bit_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); + + sm510_base(config, width, height); + + m_speaker->set_levels(4, piezo2bit_r1_120k_s1_39k); +} + + /*************************************************************************** Helper Functions @@ -320,8 +544,6 @@ WRITE8_MEMBER(hh_sm510_state::piezo_input_w) input_w(space, 0, data >> 1); } -static const s16 piezo2bit_r1_120k_s1_39k[] = { 0, 0x7fff/3*1, 0x7fff/3*2, 0x7fff }; // R via 120K resistor, S1 via 39K resistor (eg. tsonic, tsonic2, tbatmana) - WRITE8_MEMBER(hh_sm510_state::piezo2bit_r1_w) { // R1(+S1) to piezo @@ -393,25 +615,9 @@ INPUT_PORTS_END void gnw_ball_state::gnw_ball(machine_config &config) { - /* basic machine hardware */ - SM5A(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); // confirmed - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm500_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + gnw_sm5a(config, 1671, 1080); // R option mask confirmed + m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1671, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } // roms @@ -476,24 +682,9 @@ INPUT_PORTS_END void gnw_flagman_state::gnw_flagman(machine_config &config) { - /* basic machine hardware */ - SM5A(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); // confirmed - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm500_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_input_w)); + gnw_sm5a_matrix(config, 1511, 1080); // R mask option confirmed + m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1511, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } // roms @@ -556,25 +747,9 @@ INPUT_PORTS_END void gnw_vermin_state::gnw_vermin(machine_config &config) { - /* basic machine hardware */ - SM5A(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); // confirmed - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm500_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + gnw_sm5a(config, 1650, 1080); // R mask option confirmed + m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1650, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } // roms @@ -639,25 +814,9 @@ INPUT_PORTS_END void gnw_fires_state::gnw_fires(machine_config &config) { - /* basic machine hardware */ - SM5A(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); // confirmed - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm500_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + gnw_sm5a(config, 1646, 1080); // R mask option confirmed + m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1646, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } // roms @@ -724,24 +883,9 @@ INPUT_PORTS_END void gnw_judge_state::gnw_judge(machine_config &config) { - /* basic machine hardware */ - SM5A(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); // confirmed - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm500_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_input_w)); + gnw_sm5a_matrix(config, 1647, 1080); // R mask option confirmed + m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1647, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } // roms @@ -813,25 +957,10 @@ INPUT_PORTS_END void gnw_helmet_state::gnw_helmet(machine_config &config) { - /* basic machine hardware */ - SM5A(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); // confirmed - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm500_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_input_w)); + gnw_sm5a_matrix(config, 1657, 1080); // R mask option confirmed + m_maincpu->read_ba().set_ioport("BA"); m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1657, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } // roms @@ -903,24 +1032,9 @@ INPUT_PORTS_END void gnw_lion_state::gnw_lion(machine_config &config) { - /* basic machine hardware */ - SM5A(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); // confirmed - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm500_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_input_w)); + gnw_sm5a_matrix(config, 1646, 1080); // R mask option confirmed + m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1646, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } // roms @@ -988,25 +1102,10 @@ INPUT_PORTS_END void gnw_pchute_state::gnw_pchute(machine_config &config) { - /* basic machine hardware */ - SM5A(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); // confirmed - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm500_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_input_w)); + gnw_sm5a_matrix(config, 1602, 1080); // R mask option confirmed + m_maincpu->read_ba().set_ioport("BA"); m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1602, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } // roms @@ -1078,25 +1177,10 @@ INPUT_PORTS_END void gnw_octopus_state::gnw_octopus(machine_config &config) { - /* basic machine hardware */ - SM5A(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); // confirmed - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm500_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_input_w)); + gnw_sm5a_matrix(config, 1586, 1080); // R mask option confirmed + m_maincpu->read_ba().set_ioport("BA"); m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1586, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } // roms @@ -1166,25 +1250,10 @@ INPUT_PORTS_END void gnw_popeye_state::gnw_popeye(machine_config &config) { - /* basic machine hardware */ - SM5A(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); // confirmed - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm500_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_input_w)); + gnw_sm5a_matrix(config, 1604, 1080); // R mask option confirmed + m_maincpu->read_ba().set_ioport("BA"); m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1604, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } // roms @@ -1254,42 +1323,16 @@ INPUT_PORTS_END void gnw_chef_state::gnw_chef(machine_config &config) { - /* basic machine hardware */ - SM5A(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); // assuming same as merry cook - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm500_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_input_w)); + gnw_sm5a_matrix(config, 1666, 1080); // assuming same R mask option as merry cook + m_maincpu->read_ba().set_ioport("BA"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1666, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } void gnw_chef_state::merrycook(machine_config & config) { - gnw_chef(config); + gnw_kb1013vk12_matrix(config, 1679, 1080); // R mask option confirmed - /* basic machine hardware */ - KB1013VK12(config.replace(), m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); // confirmed - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm500_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_input_w)); m_maincpu->read_ba().set_ioport("BA"); - - /* video hardware */ - screen_device *screen = subdevice("screen"); - screen->set_size(1679, 1080); - screen->set_visarea_full(); } // roms @@ -1381,62 +1424,30 @@ INPUT_PORTS_END void gnw_mmouse_state::gnw_mmouse(machine_config &config) { - /* basic machine hardware */ - SM5A(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); // ? - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm500_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_input_w)); + gnw_sm5a_matrix(config, 1711, 1080); // R mask option ? + m_maincpu->read_ba().set_ioport("BA"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1711, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } void gnw_mmouse_state::gnw_egg(machine_config &config) { - gnw_mmouse(config); + gnw_sm5a_matrix(config, 1694, 1080); // R mask option ? - /* video hardware */ - screen_device *screen = subdevice("screen"); - screen->set_size(1694, 1080); - screen->set_visarea_full(); + m_maincpu->read_ba().set_ioport("BA"); } void gnw_mmouse_state::nupogodi(machine_config &config) { - gnw_mmouse(config); + gnw_kb1013vk12_matrix(config, 1715, 1080); // R mask option ? - /* basic machine hardware */ - KB1013VK12(config.replace(), m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); // ? - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm500_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_input_w)); m_maincpu->read_ba().set_ioport("BA"); - - /* video hardware */ - screen_device *screen = subdevice("screen"); - screen->set_size(1715, 1080); - screen->set_visarea_full(); } void gnw_mmouse_state::exospace(machine_config &config) { - nupogodi(config); + gnw_kb1013vk12_matrix(config, 1756, 1080); // R mask option ? - /* video hardware */ - screen_device *screen = subdevice("screen"); - screen->set_size(1756, 1080); - screen->set_visarea_full(); + m_maincpu->read_ba().set_ioport("BA"); } // roms @@ -1537,44 +1548,18 @@ INPUT_PORTS_END void gnw_fire_state::gnw_fire(machine_config &config) { - /* basic machine hardware */ - SM5A(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); // confirmed - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm500_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_input_w)); + gnw_sm5a_matrix(config, 1624, 1080); // R mask option confirmed + m_maincpu->read_ba().set_ioport("BA"); m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1624, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } void gnw_fire_state::spacebridge(machine_config & config) { - gnw_fire(config); + gnw_kb1013vk12_matrix(config, 1673, 1080); // R mask option confirmed - /* basic machine hardware */ - KB1013VK12(config.replace(), m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); // confirmed - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm500_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_input_w)); m_maincpu->read_ba().set_ioport("BA"); m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device *screen = subdevice("screen"); - screen->set_size(1673, 1080); - screen->set_visarea_full(); } // roms @@ -1653,26 +1638,9 @@ INPUT_PORTS_END void gnw_tbridge_state::gnw_tbridge(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(2); // confirmed - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + gnw_sm510(config, 1587, 1080); // R mask option confirmed + m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1587, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } // roms @@ -1739,26 +1707,9 @@ INPUT_PORTS_END void gnw_fireatk_state::gnw_fireatk(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(2); // confirmed - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + gnw_sm510(config, 1655, 1080); // R mask option confirmed + m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1655, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } // roms @@ -1825,26 +1776,9 @@ INPUT_PORTS_END void gnw_stennis_state::gnw_stennis(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(2); // confirmed - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + gnw_sm510(config, 1581, 1080); // R mask option confirmed + m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1581, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } // roms @@ -1911,33 +1845,10 @@ INPUT_PORTS_END void gnw_opanic_state::gnw_opanic(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(2); // confirmed - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + gnw_sm510_dualv(config, 1920/2, 1292/2, 1920/2, 1230/2); // R mask option confirmed + m_maincpu->read_ba().set_ioport("BA"); m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen_top(SCREEN(config, "screen_top", SCREEN_TYPE_SVG)); - screen_top.set_refresh_hz(60); - screen_top.set_size(1920/2, 1292/2); - screen_top.set_visarea_full(); - - screen_device &screen_bottom(SCREEN(config, "screen_bottom", SCREEN_TYPE_SVG)); - screen_bottom.set_refresh_hz(60); - screen_bottom.set_size(1920/2, 1230/2); - screen_bottom.set_visarea_full(); - - config.set_default_layout(layout_gnw_dualv); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } // roms @@ -2006,32 +1917,9 @@ INPUT_PORTS_END void gnw_dkong_state::gnw_dkong(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(2); // confirmed - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + gnw_sm510_dualv(config, 1920/2, 1266/2, 1920/2, 1266/2); // R mask option confirmed + m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen_top(SCREEN(config, "screen_top", SCREEN_TYPE_SVG)); - screen_top.set_refresh_hz(60); - screen_top.set_size(1920/2, 1266/2); - screen_top.set_visarea_full(); - - screen_device &screen_bottom(SCREEN(config, "screen_bottom", SCREEN_TYPE_SVG)); - screen_bottom.set_refresh_hz(60); - screen_bottom.set_size(1920/2, 1266/2); - screen_bottom.set_visarea_full(); - - config.set_default_layout(layout_gnw_dualv); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } // roms @@ -2096,32 +1984,10 @@ INPUT_PORTS_END void gnw_mickdon_state::gnw_mickdon(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(2); // confirmed - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r2_w)); + gnw_sm510_dualv(config, 1920/2, 1281/2, 1920/2, 1236/2); // R mask option confirmed + + m_maincpu->write_r().set(FUNC(gnw_mickdon_state::piezo_r2_w)); m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen_top(SCREEN(config, "screen_top", SCREEN_TYPE_SVG)); - screen_top.set_refresh_hz(60); - screen_top.set_size(1920/2, 1281/2); - screen_top.set_visarea_full(); - - screen_device &screen_bottom(SCREEN(config, "screen_bottom", SCREEN_TYPE_SVG)); - screen_bottom.set_refresh_hz(60); - screen_bottom.set_size(1920/2, 1236/2); - screen_bottom.set_visarea_full(); - - config.set_default_layout(layout_gnw_dualv); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } // roms @@ -2195,33 +2061,10 @@ INPUT_PORTS_END void gnw_ghouse_state::gnw_ghouse(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(2); // confirmed - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + gnw_sm510_dualv(config, 1920/2, 1303/2, 1920/2, 1274/2); // R mask option confirmed + m_maincpu->read_ba().set_ioport("BA"); m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen_top(SCREEN(config, "screen_top", SCREEN_TYPE_SVG)); - screen_top.set_refresh_hz(60); - screen_top.set_size(1920/2, 1303/2); - screen_top.set_visarea_full(); - - screen_device &screen_bottom(SCREEN(config, "screen_bottom", SCREEN_TYPE_SVG)); - screen_bottom.set_refresh_hz(60); - screen_bottom.set_size(1920/2, 1274/2); - screen_bottom.set_visarea_full(); - - config.set_default_layout(layout_gnw_dualv); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } // roms @@ -2290,32 +2133,9 @@ INPUT_PORTS_END void gnw_dkong2_state::gnw_dkong2(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(2); // confirmed - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + gnw_sm510_dualv(config, 1920/2, 1241/2, 1920/2, 1237/2); // R mask option confirmed + m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen_top(SCREEN(config, "screen_top", SCREEN_TYPE_SVG)); - screen_top.set_refresh_hz(60); - screen_top.set_size(1920/2, 1241/2); - screen_top.set_visarea_full(); - - screen_device &screen_bottom(SCREEN(config, "screen_bottom", SCREEN_TYPE_SVG)); - screen_bottom.set_refresh_hz(60); - screen_bottom.set_size(1920/2, 1237/2); - screen_bottom.set_visarea_full(); - - config.set_default_layout(layout_gnw_dualv); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } // roms @@ -2385,33 +2205,7 @@ INPUT_PORTS_END void gnw_mario_state::gnw_mario(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(2); // confirmed - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen_left(SCREEN(config, "screen_left", SCREEN_TYPE_SVG)); - screen_left.set_refresh_hz(60); - screen_left.set_size(2258/2, 1440/2); - screen_left.set_visarea_full(); - - screen_device &screen_right(SCREEN(config, "screen_right", SCREEN_TYPE_SVG)); - screen_right.set_refresh_hz(60); - screen_right.set_size(2261/2, 1440/2); - screen_right.set_visarea_full(); - - config.set_default_layout(layout_gnw_dualh); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + gnw_sm510_dualh(config, 2258/2, 1440/2, 2261/2, 1440/2); // R mask option confirmed } // roms @@ -2487,33 +2281,7 @@ INPUT_PORTS_END void gnw_rshower_state::gnw_rshower(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(2); // confirmed - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen_left(SCREEN(config, "screen_left", SCREEN_TYPE_SVG)); - screen_left.set_refresh_hz(60); - screen_left.set_size(2126/2, 1440/2); - screen_left.set_visarea_full(); - - screen_device &screen_right(SCREEN(config, "screen_right", SCREEN_TYPE_SVG)); - screen_right.set_refresh_hz(60); - screen_right.set_size(2146/2, 1440/2); - screen_right.set_visarea_full(); - - config.set_default_layout(layout_gnw_dualh); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + gnw_sm510_dualh(config, 2126/2, 1440/2, 2146/2, 1440/2); // R mask option confirmed } // roms @@ -2583,33 +2351,7 @@ INPUT_PORTS_END void gnw_lboat_state::gnw_lboat(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(2); // confirmed - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen_left(SCREEN(config, "screen_left", SCREEN_TYPE_SVG)); - screen_left.set_refresh_hz(60); - screen_left.set_size(2116/2, 1440/2); - screen_left.set_visarea_full(); - - screen_device &screen_right(SCREEN(config, "screen_right", SCREEN_TYPE_SVG)); - screen_right.set_refresh_hz(60); - screen_right.set_size(2057/2, 1440/2); - screen_right.set_visarea_full(); - - config.set_default_layout(layout_gnw_dualh); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + gnw_sm510_dualh(config, 2116/2, 1440/2, 2057/2, 1440/2); // R mask option confirmed } // roms @@ -2669,30 +2411,7 @@ INPUT_PORTS_END void gnw_bjack_state::gnw_bjack(machine_config &config) { - /* basic machine hardware */ - SM512(config, m_maincpu); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - - /* video hardware */ - screen_device &screen_top(SCREEN(config, "screen_top", SCREEN_TYPE_SVG)); - screen_top.set_refresh_hz(60); - screen_top.set_size(1920/2, 1290/2); - screen_top.set_visarea_full(); - - screen_device &screen_bottom(SCREEN(config, "screen_bottom", SCREEN_TYPE_SVG)); - screen_bottom.set_refresh_hz(60); - screen_bottom.set_size(1920/2, 1297/2); - screen_bottom.set_visarea_full(); - - config.set_default_layout(layout_gnw_dualv); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + gnw_sm512_dualv(config, 1920/2, 1290/2, 1920/2, 1297/2); } // roms @@ -2768,33 +2487,10 @@ INPUT_PORTS_END void gnw_squish_state::gnw_squish(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(2); // confirmed - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + gnw_sm510_dualv(config, 1920/2, 1285/2, 1920/2, 1287/2); // R mask option confirmed + m_maincpu->read_ba().set_ioport("BA"); m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen_top(SCREEN(config, "screen_top", SCREEN_TYPE_SVG)); - screen_top.set_refresh_hz(60); - screen_top.set_size(1920/2, 1285/2); - screen_top.set_visarea_full(); - - screen_device &screen_bottom(SCREEN(config, "screen_bottom", SCREEN_TYPE_SVG)); - screen_bottom.set_refresh_hz(60); - screen_bottom.set_size(1920/2, 1287/2); - screen_bottom.set_visarea_full(); - - config.set_default_layout(layout_gnw_dualv); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } // roms @@ -2864,32 +2560,10 @@ INPUT_PORTS_END void gnw_bsweep_state::gnw_bsweep(machine_config &config) { - /* basic machine hardware */ - SM512(config, m_maincpu); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + gnw_sm512_dualv(config, 1920/2, 1291/2, 1920/2, 1239/2); + m_maincpu->read_ba().set_ioport("BA"); m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen_top(SCREEN(config, "screen_top", SCREEN_TYPE_SVG)); - screen_top.set_refresh_hz(60); - screen_top.set_size(1920/2, 1291/2); - screen_top.set_visarea_full(); - - screen_device &screen_bottom(SCREEN(config, "screen_bottom", SCREEN_TYPE_SVG)); - screen_bottom.set_refresh_hz(60); - screen_bottom.set_size(1920/2, 1239/2); - screen_bottom.set_visarea_full(); - - config.set_default_layout(layout_gnw_dualv); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } // roms @@ -2961,32 +2635,10 @@ INPUT_PORTS_END void gnw_sbuster_state::gnw_sbuster(machine_config &config) { - /* basic machine hardware */ - SM511(config, m_maincpu); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + gnw_sm511_dualv(config, 1920/2, 1246/2, 1920/2, 1269/2); + m_maincpu->read_ba().set_ioport("BA"); m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen_top(SCREEN(config, "screen_top", SCREEN_TYPE_SVG)); - screen_top.set_refresh_hz(60); - screen_top.set_size(1920/2, 1246/2); - screen_top.set_visarea_full(); - - screen_device &screen_bottom(SCREEN(config, "screen_bottom", SCREEN_TYPE_SVG)); - screen_bottom.set_refresh_hz(60); - screen_bottom.set_size(1920/2, 1269/2); - screen_bottom.set_visarea_full(); - - config.set_default_layout(layout_gnw_dualv); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } // roms @@ -3063,32 +2715,10 @@ INPUT_PORTS_END void gnw_gcliff_state::gnw_gcliff(machine_config &config) { - /* basic machine hardware */ - SM512(config, m_maincpu); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + gnw_sm512_dualv(config, 1920/2, 1257/2, 1920/2, 1239/2); + m_maincpu->read_ba().set_ioport("BA"); m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen_top(SCREEN(config, "screen_top", SCREEN_TYPE_SVG)); - screen_top.set_refresh_hz(60); - screen_top.set_size(1920/2, 1257/2); - screen_top.set_visarea_full(); - - screen_device &screen_bottom(SCREEN(config, "screen_bottom", SCREEN_TYPE_SVG)); - screen_bottom.set_refresh_hz(60); - screen_bottom.set_size(1920/2, 1239/2); - screen_bottom.set_visarea_full(); - - config.set_default_layout(layout_gnw_dualv); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } // roms @@ -3165,32 +2795,10 @@ INPUT_PORTS_END void gnw_zelda_state::gnw_zelda(machine_config &config) { - /* basic machine hardware */ - SM512(config, m_maincpu); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + gnw_sm512_dualv(config, 1920/2, 1346/2, 1920/2, 1291/2); + m_maincpu->read_ba().set_ioport("BA"); m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen_top(SCREEN(config, "screen_top", SCREEN_TYPE_SVG)); - screen_top.set_refresh_hz(60); - screen_top.set_size(1920/2, 1346/2); - screen_top.set_visarea_full(); - - screen_device &screen_bottom(SCREEN(config, "screen_bottom", SCREEN_TYPE_SVG)); - screen_bottom.set_refresh_hz(60); - screen_bottom.set_size(1920/2, 1291/2); - screen_bottom.set_visarea_full(); - - config.set_default_layout(layout_gnw_dualv); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } // roms @@ -3273,25 +2881,9 @@ INPUT_PORTS_END void gnw_dkjrp_state::gnw_dkjrp(machine_config &config) { - /* basic machine hardware */ - SM511(config, m_maincpu); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + gnw_sm511(config, 1920, 1049); + m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1920, 1049); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } // roms @@ -3361,25 +2953,9 @@ INPUT_PORTS_END void gnw_mbaway_state::gnw_mbaway(machine_config &config) { - /* basic machine hardware */ - SM511(config, m_maincpu); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + gnw_sm511(config, 1920, 1031); + m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1920, 1031); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } // roms @@ -3455,26 +3031,9 @@ INPUT_PORTS_END void gnw_dkjr_state::gnw_dkjr(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(2); // confirmed - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + gnw_sm510(config, 1647, 1080); // R mask option confirmed + m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1647, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } // roms @@ -3542,26 +3101,9 @@ INPUT_PORTS_END void gnw_mariocm_state::gnw_mariocm(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(2); // confirmed - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + gnw_sm510(config, 1647, 1080); // R mask option confirmed + m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1647, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } // roms @@ -3630,26 +3172,9 @@ INPUT_PORTS_END void gnw_manhole_state::gnw_manhole(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(2); // confirmed - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + gnw_sm510(config, 1560, 1080); // R mask option confirmed + m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1560, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } // roms @@ -3711,25 +3236,7 @@ INPUT_PORTS_END void gnw_tfish_state::gnw_tfish(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(2); // confirmed - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1572, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + gnw_sm510(config, 1572, 1080); // R mask option confirmed } // roms @@ -3801,24 +3308,7 @@ INPUT_PORTS_END void gnw_smb_state::gnw_smb(machine_config &config) { - /* basic machine hardware */ - SM511(config, m_maincpu); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1677, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + gnw_sm511(config, 1677, 1080); } // roms @@ -3897,34 +3387,12 @@ INPUT_PORTS_END void gnw_climber_state::gnw_climber(machine_config &config) { - /* basic machine hardware */ - SM511(config, m_maincpu); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1756, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + gnw_sm511(config, 1756, 1080); } void gnw_climber_state::gnw_climbern(machine_config &config) { - gnw_climber(config); - - /* video hardware */ - screen_device *screen = subdevice("screen"); - screen->set_size(1677, 1080); - screen->set_visarea_full(); + gnw_sm511(config, 1677, 1080); } // roms @@ -4018,34 +3486,12 @@ INPUT_PORTS_END void gnw_bfight_state::gnw_bfight(machine_config &config) { - /* basic machine hardware */ - SM511(config, m_maincpu); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1771, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + gnw_sm511(config, 1771, 1080); } void gnw_bfight_state::gnw_bfightn(machine_config &config) { - gnw_bfight(config); - - /* video hardware */ - screen_device *screen = subdevice("screen"); - screen->set_size(1549, 1080); - screen->set_visarea_full(); + gnw_sm511(config, 1549, 1080); } // roms @@ -4126,26 +3572,9 @@ INPUT_PORTS_END void gnw_ssparky_state::gnw_ssparky(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(2); // confirmed - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + gnw_sm510(config, 627, 1080); // R mask option confirmed + m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(627, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } // roms @@ -4235,25 +3664,9 @@ INPUT_PORTS_END void gnw_boxing_state::gnw_boxing(machine_config &config) { - /* basic machine hardware */ - SM511(config, m_maincpu); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + gnw_sm511(config, 1920, 524); + m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1920, 524); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } // roms @@ -4321,23 +3734,7 @@ INPUT_PORTS_END void kdribble_state::kdribble(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(2); // confirmed - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1524, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); + konami_sm510(config, 1524, 1080); // R mask option confirmed } // roms @@ -4398,24 +3795,7 @@ INPUT_PORTS_END void ktopgun_state::ktopgun(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(2); // confirmed - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1515, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + konami_sm510(config, 1515, 1080); // R mask option confirmed } // roms @@ -4481,23 +3861,7 @@ INPUT_PORTS_END void kcontra_state::kcontra(machine_config &config) { - /* basic machine hardware */ - SM511(config, m_maincpu); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1505, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + common_sm511(config, 1505, 1080); } // roms @@ -4562,23 +3926,7 @@ INPUT_PORTS_END void ktmnt_state::ktmnt(machine_config &config) { - /* basic machine hardware */ - SM511(config, m_maincpu); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1505, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + common_sm511(config, 1505, 1080); } // roms @@ -4640,23 +3988,7 @@ INPUT_PORTS_END void kgradius_state::kgradius(machine_config &config) { - /* basic machine hardware */ - SM511(config, m_maincpu); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1420, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + common_sm511(config, 1420, 1080); } // roms @@ -4716,23 +4048,7 @@ INPUT_PORTS_END void kloneran_state::kloneran(machine_config &config) { - /* basic machine hardware */ - SM511(config, m_maincpu); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1497, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + common_sm511(config, 1497, 1080); } // roms @@ -4796,23 +4112,7 @@ INPUT_PORTS_END void kblades_state::kblades(machine_config &config) { - /* basic machine hardware */ - SM511(config, m_maincpu); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1516, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + common_sm511(config, 1516, 1080); } // roms @@ -4881,23 +4181,7 @@ INPUT_PORTS_END void knfl_state::knfl(machine_config &config) { - /* basic machine hardware */ - SM511(config, m_maincpu); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1449, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + common_sm511(config, 1449, 1080); } // roms @@ -4962,23 +4246,7 @@ INPUT_PORTS_END void kbilly_state::kbilly(machine_config &config) { - /* basic machine hardware */ - SM511(config, m_maincpu); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1490, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + common_sm511(config, 1490, 1080); } // roms @@ -5037,23 +4305,7 @@ INPUT_PORTS_END void kbucky_state::kbucky(machine_config &config) { - /* basic machine hardware */ - SM511(config, m_maincpu); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1490, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + common_sm511(config, 1490, 1080); } // roms @@ -5119,23 +4371,7 @@ INPUT_PORTS_END void kgarfld_state::kgarfld(machine_config &config) { - /* basic machine hardware */ - SM511(config, m_maincpu); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1500, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + common_sm511(config, 1500, 1080); } // roms @@ -5236,36 +4472,12 @@ INPUT_PORTS_END void tgaunt_state::tgaunt(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1425, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1425, 1080); } void tgaunt_state::trobhood(machine_config &config) { - tgaunt(config); - - /* video hardware */ - screen_device *screen = subdevice("screen"); - screen->set_size(1468, 1080); - screen->set_visarea_full(); + tiger_sm510_1bit(config, 1468, 1080); } // roms @@ -5354,26 +4566,7 @@ INPUT_PORTS_END void tddragon_state::tddragon(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); // confirmed - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1467, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1467, 1080); // R mask option confirmed } // roms @@ -5455,26 +4648,7 @@ INPUT_PORTS_END void tkarnov_state::tkarnov(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1477, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1477, 1080); } // roms @@ -5555,26 +4729,7 @@ INPUT_PORTS_END void tvindictr_state::tvindictr(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1459, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1459, 1080); } // roms @@ -5666,27 +4821,9 @@ INPUT_PORTS_END void tgaiden_state::tgaiden(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + tiger_sm510_1bit(config, 1476, 1080); + m_maincpu->write_r().append(FUNC(tgaiden_state::led_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1476, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } // roms @@ -5763,26 +4900,7 @@ INPUT_PORTS_END void tbatman_state::tbatman(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1442, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1442, 1080); } // roms @@ -5863,26 +4981,7 @@ INPUT_PORTS_END void tsharr2_state::tsharr2(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); // confirmed - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1493, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1493, 1080); // R mask option confirmed } // roms @@ -5960,26 +5059,7 @@ INPUT_PORTS_END void tstrider_state::tstrider(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1479, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1479, 1080); } // roms @@ -6061,26 +5141,7 @@ INPUT_PORTS_END void tgoldnaxe_state::tgoldnaxe(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1456, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1456, 1080); } // roms @@ -6179,36 +5240,12 @@ INPUT_PORTS_END void trobocop2_state::trobocop2(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1487, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1487, 1080); } void trobocop2_state::trockteer(machine_config &config) { - trobocop2(config); - - /* video hardware */ - screen_device *screen = subdevice("screen"); - screen->set_size(1463, 1080); - screen->set_visarea_full(); + tiger_sm510_1bit(config, 1463, 1080); } // roms @@ -6302,26 +5339,7 @@ INPUT_PORTS_END void taltbeast_state::taltbeast(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); // confirmed - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1455, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1455, 1080); // R mask option confirmed } // roms @@ -6403,26 +5421,7 @@ INPUT_PORTS_END void tsf2010_state::tsf2010(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1465, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1465, 1080); } // roms @@ -6500,26 +5499,7 @@ INPUT_PORTS_END void tswampt_state::tswampt(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1450, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1450, 1080); } // roms @@ -6601,26 +5581,7 @@ INPUT_PORTS_END void tspidman_state::tspidman(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1440, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1440, 1080); } // roms @@ -6702,26 +5663,7 @@ INPUT_PORTS_END void txmen_state::txmen(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1467, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1467, 1080); } // roms @@ -6803,26 +5745,7 @@ INPUT_PORTS_END void tddragon3_state::tddragon3(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1514, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1514, 1080); } // roms @@ -6904,26 +5827,7 @@ INPUT_PORTS_END void tflash_state::tflash(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1444, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1444, 1080); } // roms @@ -7006,25 +5910,7 @@ INPUT_PORTS_END void tmchammer_state::tmchammer(machine_config &config) { - /* basic machine hardware */ - SM511(config, m_maincpu); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1471, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm511_1bit(config, 1471, 1080); } // roms @@ -7109,26 +5995,7 @@ INPUT_PORTS_END void tbtoads_state::tbtoads(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1454, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1454, 1080); } // roms @@ -7210,26 +6077,7 @@ INPUT_PORTS_END void thook_state::thook(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1489, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1489, 1080); } // roms @@ -7310,26 +6158,7 @@ INPUT_PORTS_END void tbttf_state::tbttf(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1466, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1466, 1080); } // roms @@ -7413,26 +6242,7 @@ INPUT_PORTS_END void taddams_state::taddams(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1464, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1464, 1080); } // roms @@ -7514,26 +6324,7 @@ INPUT_PORTS_END void thalone_state::thalone(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1448, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1448, 1080); } // roms @@ -7611,26 +6402,7 @@ INPUT_PORTS_END void txmenpx_state::txmenpx(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1464, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1464, 1080); } // roms @@ -7712,26 +6484,7 @@ INPUT_PORTS_END void thalone2_state::thalone2(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1454, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1454, 1080); } // roms @@ -7808,26 +6561,7 @@ INPUT_PORTS_END void tsonic_state::tsonic(machine_config &config) { - /* basic machine hardware */ - SM511(config, m_maincpu); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::piezo2bit_input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo2bit_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1517, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->set_levels(4, piezo2bit_r1_120k_s1_39k); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm511_2bit(config, 1517, 1080); } // roms @@ -7912,26 +6646,7 @@ INPUT_PORTS_END void trobocop3_state::trobocop3(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1464, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1464, 1080); } // roms @@ -8009,26 +6724,7 @@ INPUT_PORTS_END void tdummies_state::tdummies(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1441, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1441, 1080); } // roms @@ -8110,26 +6806,7 @@ INPUT_PORTS_END void tsfight2_state::tsfight2(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1444, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1444, 1080); } // roms @@ -8211,26 +6888,7 @@ INPUT_PORTS_END void twworld_state::twworld(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1429, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1429, 1080); } // roms @@ -8308,26 +6966,7 @@ INPUT_PORTS_END void tjpark_state::tjpark(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1454, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1454, 1080); } // roms @@ -8404,26 +7043,7 @@ INPUT_PORTS_END void tsonic2_state::tsonic2(machine_config &config) { - /* basic machine hardware */ - SM511(config, m_maincpu); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::piezo2bit_input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo2bit_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1475, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->set_levels(4, piezo2bit_r1_120k_s1_39k); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm511_2bit(config, 1475, 1080); } // roms @@ -8513,26 +7133,7 @@ INPUT_PORTS_END void tsddragon_state::tsddragon(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1503, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1503, 1080); } // roms @@ -8615,26 +7216,7 @@ INPUT_PORTS_END void tdennis_state::tdennis(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1467, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1467, 1080); } // roms @@ -8720,26 +7302,7 @@ INPUT_PORTS_END void tnmarebc_state::tnmarebc(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(tnmarebc_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1456, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1456, 1080); } // roms @@ -8821,26 +7384,7 @@ INPUT_PORTS_END void ttransf2_state::ttransf2(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1476, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1476, 1080); } // roms @@ -8918,26 +7462,7 @@ INPUT_PORTS_END void topaliens_state::topaliens(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1450, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1450, 1080); } // roms @@ -9020,26 +7545,7 @@ INPUT_PORTS_END void tmkombat_state::tmkombat(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1468, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1468, 1080); } // roms @@ -9121,26 +7627,7 @@ INPUT_PORTS_END void tshadow_state::tshadow(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1484, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1484, 1080); } // roms @@ -9222,26 +7709,7 @@ INPUT_PORTS_END void tskelwarr_state::tskelwarr(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1444, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1444, 1080); } // roms @@ -9324,26 +7792,7 @@ INPUT_PORTS_END void tbatfor_state::tbatfor(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1493, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1493, 1080); } // roms @@ -9426,26 +7875,7 @@ INPUT_PORTS_END void tjdredd_state::tjdredd(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1444, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1444, 1080); } // roms @@ -9528,26 +7958,7 @@ INPUT_PORTS_END void tapollo13_state::tapollo13(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1467, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1467, 1080); } // roms @@ -9630,26 +8041,7 @@ INPUT_PORTS_END void tgoldeye_state::tgoldeye(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1461, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1461, 1080); } // roms @@ -9732,26 +8124,7 @@ INPUT_PORTS_END void tkazaam_state::tkazaam(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); // no external XTAL - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1452, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1452, 1080); // no external XTAL } // roms @@ -9829,26 +8202,7 @@ INPUT_PORTS_END void tsjam_state::tsjam(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); // no external XTAL - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1421, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1421, 1080); // no external XTAL } // roms @@ -9926,26 +8280,7 @@ INPUT_PORTS_END void tinday_state::tinday(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1463, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm510_1bit(config, 1463, 1080); } // roms @@ -10023,26 +8358,7 @@ INPUT_PORTS_END void tbatmana_state::tbatmana(machine_config &config) { - /* basic machine hardware */ - SM511(config, m_maincpu); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::piezo2bit_input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo2bit_r1_w)); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1478, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->set_levels(4, piezo2bit_r1_120k_s1_39k); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + tiger_sm511_2bit(config, 1478, 1080); } // roms @@ -10140,24 +8456,7 @@ INPUT_PORTS_END void trshutvoy_state::trshutvoy(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(2); // confirmed - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1496, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + konami_sm510(config, 1496, 1080); // R mask options confirmed } void trshutvoy_state::tigarden(machine_config &config) @@ -10232,24 +8531,7 @@ INPUT_PORTS_END void trsrescue_state::trsrescue(machine_config &config) { - /* basic machine hardware */ - SM510(config, m_maincpu); - m_maincpu->set_r_mask_option(2); // confirmed - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1533, 1080); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + konami_sm510(config, 1533, 1080); // R mask options confirmed } // roms @@ -10338,23 +8620,7 @@ INPUT_PORTS_END void nummunch_state::nummunch(machine_config &config) { - /* basic machine hardware */ - SM511(config, m_maincpu); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(1920, 875); - screen.set_visarea_full(); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); + common_sm511(config, 1920, 875); } // roms diff --git a/src/mame/drivers/rainbow.cpp b/src/mame/drivers/rainbow.cpp index e6056310400..c6d98e23321 100644 --- a/src/mame/drivers/rainbow.cpp +++ b/src/mame/drivers/rainbow.cpp @@ -1152,11 +1152,11 @@ void rainbow_state::machine_reset() // Verify RAM size matches hardware (DIP switches) #ifdef ASSUME_RAINBOW_A_HARDWARE - printf("\n*** RAINBOW A MODEL ASSUMED (64 - 832 K RAM).\n"); + logerror("*** RAINBOW A MODEL ASSUMED (64 - 832 K RAM).\n"); if (unmap_start > 0xD0000) { unmap_start = 0xD0000; // hardware limit 832 K (possibly as low as 256 K) [?] - printf("\nWARNING: 896 K is not a valid memory configuration on Rainbow 100 A!\n"); + logerror("WARNING: 896 K is not a valid memory configuration on Rainbow 100 A!\n"); } uint32_t check = (unmap_start >> 16)-1; // guess. @@ -1170,11 +1170,11 @@ void rainbow_state::machine_reset() #endif #else - printf("\n*** RAINBOW B MODEL ASSUMED (128 - 896 K RAM)\n"); + logerror("*** RAINBOW B MODEL ASSUMED (128 - 896 K RAM)\n"); if (unmap_start < 0x20000) { unmap_start = 0x20000; // 128 K minimum - printf("\nWARNING: 64 K is not a valid memory size on Rainbow 100-B!\n"); + logerror("WARNING: 64 K is not a valid memory size on Rainbow 100-B!\n"); } uint32_t check = (unmap_start >> 16) - 2; @@ -1188,11 +1188,11 @@ void rainbow_state::machine_reset() #endif #endif if (check != nvram_location) - printf("\nNOTE: RAM configuration does not match NVRAM.\nUNMAP_START = %05x NVRAM VALUE = %02x SHOULD BE: %02x\n", unmap_start, nvram_location, check); + logerror("NOTE: RAM configuration does not match NVRAM.\nUNMAP_START = %05x NVRAM VALUE = %02x SHOULD BE: %02x\n", unmap_start, nvram_location, check); if (END_OF_RAM > unmap_start) { - logerror("\nUnmapping from %x to %x",unmap_start, END_OF_RAM); + logerror("Unmapping from %x to %x\n",unmap_start, END_OF_RAM); program.unmap_readwrite(unmap_start, END_OF_RAM); } @@ -1305,11 +1305,11 @@ void rainbow_state::device_timer(emu_timer &timer, device_timer_id tid, int para if (m_power_good == false) { m_power_good = true; - printf("\n**** POWER GOOD ****\n"); + logerror("**** POWER GOOD ****\n"); } else { - printf("\n**** WATCHDOG: CPU RESET ****\n"); + logerror("**** WATCHDOG: CPU RESET ****\n"); m_i8088->reset(); // gives 'ERROR_16 - INTERRUPTS OFF' (indicates hardware failure or software bug). } break; // case 0 @@ -1712,7 +1712,7 @@ hard_disk_file *rainbow_state::rainbow_hdc_file(int drv) info->cylinders, RD51_MAX_CYLINDER, info->sectors, RD51_SECTORS_PER_TRACK, info->sectorbytes); - printf("\n <<< === HARD DISK IMAGE REJECTED = (invalid geometry) === >>> \n"); + logerror("<<< === HARD DISK IMAGE REJECTED = (invalid geometry) === >>>\n"); return nullptr; } } @@ -2497,7 +2497,7 @@ WRITE8_MEMBER(rainbow_state::z80_diskcontrol_w) data = (data & (255 - 3)); // invalid drive = DRIVE 0 ?! if (m_present_drive == INVALID_DRIVE) - printf("\n**** INVALID DRIVE ****"); + logerror("**** INVALID DRIVE ****\n"); else data = data | m_present_drive; @@ -2678,13 +2678,13 @@ WRITE8_MEMBER(rainbow_state::diagnostic_w) // 8088 (port 0A WRITTEN). Fig.4-28 + if ((m_diagnostic & 1) && !(data & 1)) // ZRESET goes LOW... { - printf("\nFDC ** RESET ** "); + logerror("FDC ** RESET **\n"); m_fdc->reset(); } if (!(m_diagnostic & 1) && (data & 1)) // ZRESET goes HIGH... { - printf("\nFDC RESTORE "); + logerror("FDC RESTORE\n"); m_fdc->reset(); // See formatter description p.197 or 5-13 } @@ -2698,10 +2698,10 @@ WRITE8_MEMBER(rainbow_state::diagnostic_w) // 8088 (port 0A WRITTEN). Fig.4-28 + { if (m_inp7->read() == 1) { - printf("\nHINT: GRAPHICS OPTION ON. TEXT ONLY (DC011/DC012) OUTPUT NOW DISABLED.\n"); + logerror("HINT: GRAPHICS OPTION ON. TEXT ONLY (DC011/DC012) OUTPUT NOW DISABLED.\n"); } else - { printf("\nALARM: GRAPHICS OPTION * SWITCHED OFF * VIA DIP. TEXT OUTPUT STILL ENABLED!\n"); + { logerror("ALARM: GRAPHICS OPTION * SWITCHED OFF * VIA DIP. TEXT OUTPUT STILL ENABLED!\n"); m_onboard_video_selected = true; } logerror("DATA: %x (PC=%x)\n", data, m_i8088->pc()); @@ -2709,7 +2709,7 @@ WRITE8_MEMBER(rainbow_state::diagnostic_w) // 8088 (port 0A WRITTEN). Fig.4-28 + // BIT 3: PARITY (1 enables parity test on memory board. Usually 64K per bank). -> ext_ram_w. if (data & 0x08) - logerror("\n*** PARITY TEST [on RAM EXTENSION] - (bit 3 - diagnostic_w) "); + logerror("*** PARITY TEST [on RAM EXTENSION] - (bit 3 - diagnostic_w)\n"); // MISSING BITS (* not vital for normal operation, see diag.disk) - // * BIT 4: DIAG LOOPBACK (0 at power-up; 1 directs RX50 and DC12 output to printer port) @@ -2735,7 +2735,7 @@ WRITE8_MEMBER(rainbow_state::diagnostic_w) // 8088 (port 0A WRITTEN). Fig.4-28 + */ if (data & 16) { - logerror("\nWARNING: UNEMULATED DIAG LOOPBACK (directs RX50 and DC12 output to printer port) **** "); + logerror("WARNING: UNEMULATED DIAG LOOPBACK (directs RX50 and DC12 output to printer port) ****\n"); } address_space &io = m_i8088->space(AS_IO); @@ -2748,7 +2748,7 @@ WRITE8_MEMBER(rainbow_state::diagnostic_w) // 8088 (port 0A WRITTEN). Fig.4-28 + PRT RCV DATA.......KBD TXD...........PRT RDATA KBD RCV DATA.......PRT TXD...........KBD RXD */ - logerror("\nWARNING: UNEMULATED PORT LOOPBACK (COMM, PRINTER, KEYBOARD ports) **** "); + logerror("WARNING: UNEMULATED PORT LOOPBACK (COMM, PRINTER, KEYBOARD ports) ****\n"); io.unmap_readwrite(0x40, 0x43); // unmap MPSC handlers to prevent CPU crashes ("INTERRUPTS OFF") } @@ -3004,7 +3004,7 @@ WRITE8_MEMBER(rainbow_state::GDC_EXTRA_REGISTER_w) { m_gdc_color_map_index = 0; // 0...31 (CPU accesses 32 bytes - printf("\n * COLOR MAP FULLY LOADED *"); + logerror("* COLOR MAP FULLY LOADED *\n"); for (int zi = 0; zi < 16; zi++) { int g = m_gdc_color_map[zi] & 0x0F; @@ -3012,9 +3012,9 @@ WRITE8_MEMBER(rainbow_state::GDC_EXTRA_REGISTER_w) int b = m_gdc_color_map[zi + 16] & 0x0F; int m = (m_gdc_color_map[zi + 16] & 0xF0) >> 4; - printf("\n[%d] %1x %1x %1x %1x (1:1)", zi, r , g , b , m); + logerror("[%d] %1x %1x %1x %1x (1:1)\n", zi, r, g, b, m); } - printf("\n------------------------------"); + logerror("------------------------------\n"); } // if all colors present break; } @@ -3026,7 +3026,7 @@ WRITE8_MEMBER(rainbow_state::GDC_EXTRA_REGISTER_w) m_gdc_scroll_buffer[m_gdc_scroll_index] = data; // // WRITE TO SCROLL_MAP ( 256 x 8 ) if (m_gdc_scroll_index == 255) - printf("\n ---- SCROLL MAP FULLY LOADED ---*"); + logerror("---- SCROLL MAP FULLY LOADED ---*\n"); m_gdc_scroll_index++; m_gdc_scroll_index &= 0xFF; // 0...255 (CPU accesses 256 bytes) } @@ -3070,7 +3070,7 @@ WRITE8_MEMBER(rainbow_state::GDC_EXTRA_REGISTER_w) if (last_message != 2) { last_message = 2; - printf(" * HIGH RESOLUTION * "); + logerror("* HIGH RESOLUTION *\n"); } } else @@ -3078,7 +3078,7 @@ WRITE8_MEMBER(rainbow_state::GDC_EXTRA_REGISTER_w) if (last_message != 3) { last_message = 3; - printf(" MEDIUM RESOLUTION "); + logerror("MEDIUM RESOLUTION\n"); } } diff --git a/src/mame/drivers/rulechan.cpp b/src/mame/drivers/rulechan.cpp index 7ba86408eaa..bcb87ddfc3c 100644 --- a/src/mame/drivers/rulechan.cpp +++ b/src/mame/drivers/rulechan.cpp @@ -163,12 +163,6 @@ *********************************************************************/ - -#define CPU_CLOCK XTAL(8'000'000) // guess -#define VID_CLOCK XTAL(21'477'272) // guess -#define TMS_CLOCK (CPU_CLOCK / 4) // guess -#define VDP_MEM 0x20000 // 4x 4464 (64K x 4 DRAM) - #include "emu.h" #include "cpu/z80/z80.h" #include "machine/nvram.h" @@ -179,8 +173,17 @@ #include "sound/ay8910.h" #include "screen.h" #include "speaker.h" + +//#define VERBOSE 1 +#include "logmacro.h" + #include "rulechan.lh" +#define CPU_CLOCK XTAL(8'000'000) // guess +#define VID_CLOCK XTAL(21'477'272) // guess +#define TMS_CLOCK (CPU_CLOCK / 4) // guess +#define VDP_MEM 0x20000 // 4x 4464 (64K x 4 DRAM) + #define BIT2 BIT(m_p30,2) #define BIT3 BIT(m_p30,3) #define BIT4 BIT(m_p30,4) @@ -212,6 +215,9 @@ public: void rulechan(machine_config &config); void rulechan_init(); +protected: + virtual void machine_start() override { m_lamps.resolve(); m_digits.resolve(); } + private: DECLARE_WRITE8_MEMBER(port0_w); DECLARE_READ8_MEMBER(port2_r); @@ -239,7 +245,7 @@ private: uint8_t m_ballin; uint8_t m_led; uint8_t m_pass[6]; - uint8_t m_sndsrt[10]= { 0x0a, 0x0e, 0x06, 0x0a, 0x0b, 0x48, 0x0c, 0x00, 0x0d, 0x01 }; + static constexpr uint8_t s_sndsrt[10] = { 0x0a, 0x0e, 0x06, 0x0a, 0x0b, 0x48, 0x0c, 0x00, 0x0d, 0x01 }; required_device m_v9938; required_device m_maincpu; @@ -253,11 +259,12 @@ private: void sound_sort(); void sound_off(); - virtual void machine_start() override { m_lamps.resolve(); m_digits.resolve(); } output_finder<63> m_lamps; output_finder<6> m_digits; }; +constexpr uint8_t rulechan_state::s_sndsrt[10]; + /* BCD to Seven Segment Decoder */ @@ -351,9 +358,7 @@ WRITE8_MEMBER(rulechan_state::port0_w) m_sline = data & 0x07; // Matrix scan line selector. if (m_sline > 5) - { m_sline = 0; - } } /**************************************** @@ -367,18 +372,18 @@ WRITE8_MEMBER(rulechan_state::port31_w) { m_p31 = data; - if(BIT(m_p31, 4)) + if (BIT(m_p31, 4)) { m_p30 |= 0x20; m_ballin = 0; // Drop ball....ball in shooter. } - if(BIT(m_p31, 7)) // Shoot ball. + if (BIT(m_p31, 7)) // Shoot ball. { m_p30 &= 0xdf; // ball out.... m_num = machine().rand() % 37; // sort winning number. - //logerror("shooting ball 2d\n", m_num); + LOG("shooting ball 2d\n", m_num); } } @@ -401,17 +406,17 @@ WRITE8_MEMBER(rulechan_state::port32_w) void rulechan_state::sound_off() { - m_maincpu->space(AS_IO).write_byte(0x10, 0x07); - m_maincpu->space(AS_IO).write_byte(0x11, m_maincpu->space(AS_PROGRAM).read_byte(SND_FLG) | 0x20); - m_maincpu->space(AS_IO).write_byte(0x10, 0x0e); + m_maincpu->space(AS_IO).write_byte(0x10, 0x07); + m_maincpu->space(AS_IO).write_byte(0x11, m_maincpu->space(AS_PROGRAM).read_byte(SND_FLG) | 0x20); + m_maincpu->space(AS_IO).write_byte(0x10, 0x0e); } void rulechan_state::sound_sort() { for (int i = 0; i < 5; i++) { - m_maincpu->space(AS_IO).write_byte(0x10, m_sndsrt[(2 * i)]); - m_maincpu->space(AS_IO).write_byte(0x11, m_sndsrt[(2 * i) + 1]); + m_maincpu->space(AS_IO).write_byte(0x10, s_sndsrt[(2 * i)]); + m_maincpu->space(AS_IO).write_byte(0x11, s_sndsrt[(2 * i) + 1]); } m_maincpu->space(AS_IO).write_byte(0x10, 0x07); m_maincpu->space(AS_IO).write_byte(0x11, m_maincpu->space(AS_PROGRAM).read_byte(SND_FLG) & 0xdf); @@ -425,58 +430,58 @@ void rulechan_state::sound_sort() TIMER_DEVICE_CALLBACK_MEMBER(rulechan_state::wheel_speed) { - if(m_step == 0) + if (m_step == 0) { - if((BIT4) & (m_updn4 == 0)) + if ((BIT4) && (m_updn4 == 0)) { m_p30 &= 0xef; m_updn4 = 1; - //logerror("1:port_p30:- Reset bit 4 pulse start -%2x cont_pasos:%2d\n",m_p30, m_step); + LOG("1:port_p30:- Reset bit 4 pulse start -%2x cont_pasos:%2d\n", m_p30, m_step); return; } - if((!BIT4) & (m_updn4 == 1)) + if ((!BIT4) && (m_updn4 == 1)) { m_p30 |= 0x10; - //logerror("2:port_p30:- Set bit 4 -%2x cont_pasos:%2d\n",m_p30, m_step); + LOG("2:port_p30:- Set bit 4 -%2x cont_pasos:%2d\n", m_p30, m_step); return; } - if((BIT4) & (m_updn4 == 1)) + if ((BIT4) && (m_updn4 == 1)) { m_updn4 = 0; m_step++; - //logerror("3:port_p30:-end mark for reset bit 4 -%2x cont_pasos:%2d\n",m_p30, m_step); + LOG("3:port_p30:-end mark for reset bit 4 -%2x cont_pasos:%2d\n", m_p30, m_step); return; } } else { - if(BIT3 & (m_updn3 == 0)) + if (BIT3 && (m_updn3 == 0)) { m_p30 &= 0xf7; - //logerror("4:port_p30:-reset bit 3 -%2x cont_pasos:%2d\n",m_p30, m_step); + LOG("4:port_p30:-reset bit 3 -%2x cont_pasos:%2d\n", m_p30, m_step); return; } - if(!BIT3 & (m_updn3 == 0)) + if (!BIT3 && (m_updn3 == 0)) { - if(!BIT2) + if (!BIT2) { m_p30 |= 0x04; - //logerror("5:port_p30:-set bit 2 -%2x cont_pasos:%2d\n",m_p30, m_step); + LOG("5:port_p30:-set bit 2 -%2x cont_pasos:%2d\n", m_p30, m_step); return; } else { - if((m_step - 1 == m_num) & (m_updn2 == 0)) + if ((m_step - 1 == m_num) && (m_updn2 == 0)) { - if(!BIT5) // ball in pocket?... + if (!BIT5) // ball in pocket?... { m_p30 &= 0xfb; m_updn2 = 1; @@ -491,7 +496,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(rulechan_state::wheel_speed) m_updn3 = 1; } - if(!BIT3 & (m_updn3 == 1)) + if (!BIT3 && (m_updn3 == 1)) { m_p30 |= 0x08; m_updn3 = 0; @@ -503,7 +508,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(rulechan_state::wheel_speed) m_p30 |= 0x1c; } - //logerror("6:port_p30:-set bit 3 -%2x cont_pasos:%2d \n",m_p30, m_step); + LOG("6:port_p30:-set bit 3 -%2x cont_pasos:%2d \n", m_p30, m_step); return; } } @@ -516,38 +521,34 @@ TIMER_DEVICE_CALLBACK_MEMBER(rulechan_state::wheel_speed) TIMER_DEVICE_CALLBACK_MEMBER(rulechan_state::ball_speed) { - if(MOTORON) + if (MOTORON) { - if(d_spin == 0) + if (d_spin == 0) { m_tspin++; d_spin = m_spin; - if(BALLIN) + if (BALLIN) { m_tspin = 37; // breaking ball once per number step. } - if(m_tspin == 37) + if (m_tspin == 37) { m_tspin = 0; m_spin++; d_spin = m_spin; // breaking ball once per round. } - if((!BALLIN) | (LEDNOTNUM & BALLIN )) + if (!BALLIN || LEDNOTNUM) { m_led++; - if(m_led == 37) - { + if (m_led == 37) m_led = 0; - } for (int i = 0; i < 37; i++) - { m_lamps[i + 20] = (m_led == i) ? 1 : 0; // update roulette led lamps. - } sound_sort(); } @@ -561,32 +562,28 @@ TIMER_DEVICE_CALLBACK_MEMBER(rulechan_state::ball_speed) else { for (int i = 0; i < 37; i++) - { m_lamps[i + 20] = (m_num == i) ? 1 : 0; - } - m_spin=d_spin=m_tspin=m_ballin=0; + m_spin = d_spin = m_tspin = m_ballin = 0; } /* END of Ball simulation */ -/* if needed, get pass and shows it on layout*/ + /* if needed, get pass and shows it on layout*/ m_pass[0] = m_maincpu->space(AS_PROGRAM).read_byte(RAM_PSW); - if((m_pass[0] <= 0x39) & (m_pass[0] >= 0x30)) + if ((m_pass[0] <= 0x39) && (m_pass[0] >= 0x30)) { - for(int i = 0; i < 6; i++) + for (int i = 0; i < 6; i++) { - m_pass[i]= m_maincpu->space(AS_PROGRAM).read_byte(RAM_PSW + i); + m_pass[i] = m_maincpu->space(AS_PROGRAM).read_byte(RAM_PSW + i); m_lamps[10 + i] = dec_7seg(m_pass[i] - 0x30); } } else { - for(int i = 0; i < 6; i++) - { + for (int i = 0; i < 6; i++) m_lamps[10 + i] = dec_7seg(0xff); - } } } diff --git a/src/mame/drivers/rzone.cpp b/src/mame/drivers/rzone.cpp index d2f798ecd98..30a25362b41 100644 --- a/src/mame/drivers/rzone.cpp +++ b/src/mame/drivers/rzone.cpp @@ -248,7 +248,7 @@ void rzone_state::rzbatfor(machine_config &config) { /* basic machine hardware */ SM512(config, m_maincpu); // no external XTAL - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); + m_maincpu->write_segs().set(FUNC(rzone_state::sm510_lcd_segment_w)); m_maincpu->read_k().set(FUNC(rzone_state::input_r)); m_maincpu->write_s().set(FUNC(rzone_state::t2_write_s)); m_maincpu->write_r().set(FUNC(rzone_state::t2_write_r)); @@ -272,7 +272,7 @@ void rzone_state::rztoshden(machine_config &config) /* basic machine hardware */ SM510(config, m_maincpu); m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); + m_maincpu->write_segs().set(FUNC(rzone_state::sm510_lcd_segment_w)); m_maincpu->read_k().set(FUNC(rzone_state::input_r)); m_maincpu->write_s().set(FUNC(rzone_state::t1_write_s)); m_maincpu->write_r().set(FUNC(rzone_state::t1_write_r)); @@ -296,7 +296,7 @@ void rzone_state::rzindy500(machine_config &config) /* basic machine hardware */ SM510(config, m_maincpu); // no external XTAL m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); // confirmed - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); + m_maincpu->write_segs().set(FUNC(rzone_state::sm510_lcd_segment_w)); m_maincpu->read_k().set(FUNC(rzone_state::input_r)); m_maincpu->write_s().set(FUNC(rzone_state::t1_write_s)); m_maincpu->write_r().set(FUNC(rzone_state::t1_write_r)); diff --git a/src/mame/drivers/sun4.cpp b/src/mame/drivers/sun4.cpp index 5f3e6d9f8cd..d47b700408a 100644 --- a/src/mame/drivers/sun4.cpp +++ b/src/mame/drivers/sun4.cpp @@ -1850,7 +1850,7 @@ void sun4_state::sun4(machine_config &config) { /* basic machine hardware */ MB86901(config, m_maincpu, 16'670'000); - m_maincpu->add_asi_desc([](sparc_disassembler *dasm) { dasm->add_asi_desc(sun4_asi_desc); }); + m_maincpu->add_asi_desc([](sparc_disassembler *dasm) { dasm->add_asi_desc(sun4_asi_desc); }); m_maincpu->set_addrmap(0, &sun4_state::sun4c_debugger_map); // TODO: MMU for sun4 hardware diff --git a/src/mame/includes/hh_sm510.h b/src/mame/includes/hh_sm510.h index 859860b7072..5e90da0653d 100644 --- a/src/mame/includes/hh_sm510.h +++ b/src/mame/includes/hh_sm510.h @@ -28,6 +28,10 @@ public: m_decay_len(17) { } + virtual DECLARE_INPUT_CHANGED_MEMBER(input_changed); + virtual DECLARE_INPUT_CHANGED_MEMBER(acl_button); + +protected: // devices required_device m_maincpu; optional_device m_speaker; @@ -46,8 +50,6 @@ public: u8 read_inputs(int columns, int fixed = -1); virtual void update_k_line(); - virtual DECLARE_INPUT_CHANGED_MEMBER(input_changed); - virtual DECLARE_INPUT_CHANGED_MEMBER(acl_button); virtual DECLARE_WRITE16_MEMBER(sm510_lcd_segment_w); virtual DECLARE_WRITE16_MEMBER(sm500_lcd_segment_w); virtual DECLARE_READ8_MEMBER(input_r); @@ -71,9 +73,32 @@ public: TIMER_CALLBACK_MEMBER(display_decay_tick); emu_timer *m_display_decay_timer; -protected: virtual void machine_start() override; virtual void machine_reset() override; + + void common_base(machine_config &config, u16 width, u16 height); + void sm500_base(machine_config &config, u16 width, u16 height); + void sm510_base(machine_config &config, u16 width, u16 height); + + void common_sm511(machine_config &config, u16 width, u16 height); + + void gnw_sm5a(machine_config &config, u16 width, u16 height); + void gnw_sm5a_matrix(machine_config &config, u16 width, u16 height); + void gnw_kb1013vk12_matrix(machine_config &config, u16 width, u16 height); + void gnw_sm510(machine_config &config, u16 width, u16 height); + void gnw_sm511(machine_config &config, u16 width, u16 height); + void gnw_dualh(machine_config &config, u16 leftwidth, u16 leftheight, u16 rightwidth, u16 rightheight); + void gnw_dualv(machine_config &config, u16 topwidth, u16 topheight, u16 botwidth, u16 botheight); + void gnw_sm510_dualh(machine_config &config, u16 leftwidth, u16 leftheight, u16 rightwidth, u16 rightheight); + void gnw_sm510_dualv(machine_config &config, u16 topwidth, u16 topheight, u16 botwidth, u16 botheight); + void gnw_sm511_dualv(machine_config &config, u16 topwidth, u16 topheight, u16 botwidth, u16 botheight); + void gnw_sm512_dualv(machine_config &config, u16 topwidth, u16 topheight, u16 botwidth, u16 botheight); + + void konami_sm510(machine_config &config, u16 width, u16 height); + + void tiger_sm510_1bit(machine_config &config, u16 width, u16 height); + void tiger_sm511_1bit(machine_config &config, u16 width, u16 height); + void tiger_sm511_2bit(machine_config &config, u16 width, u16 height); }; diff --git a/src/mame/machine/decopincpu.h b/src/mame/machine/decopincpu.h index c08aa2bde6a..6c6ad1ae13b 100644 --- a/src/mame/machine/decopincpu.h +++ b/src/mame/machine/decopincpu.h @@ -111,10 +111,11 @@ private: class decocpu_type2_device : public decocpu_type1_device { public: - decocpu_type2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, const char *cpuregion_tag) + template + decocpu_type2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, T &&cpuregion_tag) : decocpu_type2_device(mconfig, tag, owner, clock) { - set_cpuregion(cpuregion_tag); + set_cpuregion(std::forward(cpuregion_tag)); } decocpu_type2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -131,10 +132,11 @@ protected: class decocpu_type3_device : public decocpu_type2_device { public: - decocpu_type3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, const char *cpuregion_tag) + template + decocpu_type3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, T &&cpuregion_tag) : decocpu_type3_device(mconfig, tag, owner, clock) { - set_cpuregion(cpuregion_tag); + set_cpuregion(std::forward(cpuregion_tag)); } decocpu_type3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -149,10 +151,11 @@ protected: class decocpu_type3b_device : public decocpu_type3_device { public: - decocpu_type3b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, const char *cpuregion_tag) + template + decocpu_type3b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, T &&cpuregion_tag) : decocpu_type3b_device(mconfig, tag, owner, clock) { - set_cpuregion(cpuregion_tag); + set_cpuregion(std::forward(cpuregion_tag)); } decocpu_type3b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); diff --git a/src/mame/machine/docg3.h b/src/mame/machine/docg3.h index ee7780ca22c..a05659884b9 100644 --- a/src/mame/machine/docg3.h +++ b/src/mame/machine/docg3.h @@ -19,14 +19,7 @@ class diskonchip_g3_device : public device_t, public device_nvram_interface { public: - // construction/destruction - diskonchip_g3_device(const machine_config &mconfig, const char *tag, device_t *owner, int size) - : diskonchip_g3_device(mconfig, tag, owner, (uint32_t)0) - { - set_size(size); - } - - diskonchip_g3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + diskonchip_g3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0U); void set_size(int _size) { m_size = _size; } protected: diff --git a/src/mame/machine/msx_systemflags.h b/src/mame/machine/msx_systemflags.h index 67a08b0cf1e..8d1915f59d4 100644 --- a/src/mame/machine/msx_systemflags.h +++ b/src/mame/machine/msx_systemflags.h @@ -16,7 +16,7 @@ class msx_systemflags_device : public device_t public: template msx_systemflags_device(const machine_config &mconfig, const char *tag, device_t *owner, T &&maincpu_tag, uint8_t initial_value) - :msx_systemflags_device(mconfig, tag, owner, 0) + : msx_systemflags_device(mconfig, tag, owner, 0) { set_maincpu_tag(std::forward(maincpu_tag)); set_initial_value(initial_value);