diff options
Diffstat (limited to 'src/mame/konami/konamigs.cpp')
-rw-r--r-- | src/mame/konami/konamigs.cpp | 93 |
1 files changed, 46 insertions, 47 deletions
diff --git a/src/mame/konami/konamigs.cpp b/src/mame/konami/konamigs.cpp index 49ce4bafb0f..7ee558e2bf8 100644 --- a/src/mame/konami/konamigs.cpp +++ b/src/mame/konami/konamigs.cpp @@ -76,7 +76,7 @@ public: void init_gsan(); protected: - required_device<sh34_base_device> m_maincpu; + required_device<sh7709_device> m_maincpu; required_device<ymz280b_device> m_ymz; required_device<ata_interface_device> m_ata; required_ioport m_rtc_r; @@ -88,16 +88,16 @@ protected: required_device<screen_device> m_screen; optional_device<hopper_device> m_hopper; - void main_map_common(address_map &map); - void main_map(address_map &map); - void main_map_medal(address_map &map); - void main_port(address_map &map); - void main_port_medal(address_map &map); - void ymz280b_map(address_map &map); - void ymz280b_map_medal(address_map &map); + void main_map_common(address_map &map) ATTR_COLD; + void main_map(address_map &map) ATTR_COLD; + void main_map_medal(address_map &map) ATTR_COLD; + void main_port(address_map &map) ATTR_COLD; + void main_port_medal(address_map &map) ATTR_COLD; + void ymz280b_map(address_map &map) ATTR_COLD; + void ymz280b_map_medal(address_map &map) ATTR_COLD; - virtual void machine_start() override; - virtual void machine_reset() override; + virtual void machine_start() override ATTR_COLD; + virtual void machine_reset() override ATTR_COLD; u8 ymzram_r(offs_t offset); void ymzram_w(offs_t offset, u8 data); @@ -129,21 +129,21 @@ protected: void fill_quad(u16 cmd, u16 *data); void draw_line(u16 cmd, u16 *data); - int m_dbmode; - bool m_fg16bit; - bool m_bg16bit; - bool m_rend16bit; - bool m_width1024; - bool m_rsae; - bool m_vbkem; - s16 m_xo; - s16 m_yo; - s16 m_uxmin; - s16 m_uxmax; - s16 m_uymin; - s16 m_uymax; - s16 m_sxmax; - s16 m_symax; + int m_dbmode = 0; + bool m_fg16bit = false; + bool m_bg16bit = false; + bool m_rend16bit = false; + bool m_width1024 = false; + bool m_rsae = false; + bool m_vbkem = false; + s16 m_xo = 0; + s16 m_yo = 0; + s16 m_uxmin = 0; + s16 m_uxmax = 0; + s16 m_uymin = 0; + s16 m_uymax = 0; + s16 m_sxmax = 0; + s16 m_symax = 0; u32 get_rend_offset() { @@ -272,7 +272,7 @@ void gsan_state::portc_w(u64 data) */ m_portc_data = data; - machine().bookkeeping().coin_counter_w(0, ~data & 8); + machine().bookkeeping().coin_counter_w(0, BIT(~data, 3)); } void gsan_state::portc_medal_w(u64 data) { @@ -284,10 +284,10 @@ void gsan_state::portc_medal_w(u64 data) */ m_portc_data = data; - m_hopper->motor_w(data & 0x80); - machine().bookkeeping().coin_counter_w(0, data & 4); - machine().bookkeeping().coin_counter_w(1, data & 2); - machine().bookkeeping().coin_counter_w(2, data & 1); + m_hopper->motor_w(BIT(~data, 7)); + machine().bookkeeping().coin_counter_w(0, BIT(data, 2)); + machine().bookkeeping().coin_counter_w(1, BIT(data, 1)); + machine().bookkeeping().coin_counter_w(2, BIT(data, 0)); } u64 gsan_state::porte_r() { @@ -315,9 +315,9 @@ void gsan_state::porte_medal_w(u64 data) */ m_porte_data = data; - machine().bookkeeping().coin_lockout_w(0, data & 4); - machine().bookkeeping().coin_lockout_w(1, data & 2); - machine().bookkeeping().coin_lockout_w(2, data & 1); + machine().bookkeeping().coin_lockout_w(0, BIT(data, 2)); + machine().bookkeeping().coin_lockout_w(1, BIT(data, 1)); + machine().bookkeeping().coin_lockout_w(2, BIT(data, 0)); } @@ -776,7 +776,6 @@ void gsan_state::main_map_common(address_map &map) map(0x18000000, 0x18000001).rw("ymz", FUNC(ymz280b_device::read), FUNC(ymz280b_device::write)); map(0x1f000000, 0x1f000fff).ram(); // cache RAM-mode (SH3 internal), actually should be 7Fxxxxxx, but current SH3 core doesn't like 7Fxxxxxx - map(0xa0000000, 0xa000ffff).rom().region("maincpu", 0); // uncached mirror, otherwise no disassembly can bee seen in debugger (bug?) } void gsan_state::main_map(address_map &map) { @@ -886,13 +885,13 @@ static INPUT_PORTS_START( ddrkids ) PORT_DIPUNKNOWN_DIPLOC( 0x8000, 0x0000, "SW2:8" ) PORT_START("RTCW") - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("rtc", rtc4553_device, set_dir_line) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("rtc", rtc4553_device, set_cs_line) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("rtc", rtc4553_device, write_bit) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("rtc", rtc4553_device, set_clock_line) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("rtc", FUNC(rtc4553_device::set_dir_line)) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("rtc", FUNC(rtc4553_device::set_cs_line)) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("rtc", FUNC(rtc4553_device::write_bit)) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("rtc", FUNC(rtc4553_device::set_clock_line)) PORT_START("RTCR") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("rtc", rtc4553_device, read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("rtc", FUNC(rtc4553_device::read_bit)) PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNKNOWN ) INPUT_PORTS_END @@ -907,7 +906,7 @@ static INPUT_PORTS_START( muscl ) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_NAME("Medal") PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) // looks like not regular coin in to play, but coins for medals exchange PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", hopper_device, line_r) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", FUNC(hopper_device::line_r)) PORT_BIT( 0x78, IP_ACTIVE_LOW, IPT_UNKNOWN ) // unused PORT_START("DSW") @@ -970,13 +969,13 @@ static INPUT_PORTS_START( muscl ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_START("RTCW") - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("rtc", rtc4553_device, set_dir_line) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("rtc", rtc4553_device, set_cs_line) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("rtc", rtc4553_device, write_bit) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("rtc", rtc4553_device, set_clock_line) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("rtc", FUNC(rtc4553_device::set_dir_line)) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("rtc", FUNC(rtc4553_device::set_cs_line)) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("rtc", FUNC(rtc4553_device::write_bit)) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("rtc", FUNC(rtc4553_device::set_clock_line)) PORT_START("RTCR") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("rtc", rtc4553_device, read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("rtc", FUNC(rtc4553_device::read_bit)) PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNKNOWN ) INPUT_PORTS_END @@ -1039,7 +1038,7 @@ void gsan_state::gsan(machine_config &config) { // basic machine hardware // SH7709 is earlier version of SH7709S (cv1k), not exact same, have minor differences - SH3BE(config, m_maincpu, 32_MHz_XTAL * 2); + SH7709(config, m_maincpu, 32_MHz_XTAL * 2, ENDIANNESS_BIG); m_maincpu->set_md(0, 0); m_maincpu->set_md(1, 0); m_maincpu->set_md(2, 0); @@ -1081,7 +1080,7 @@ void gsan_state::gs_medal(machine_config &config) m_screen->set_raw(XTAL(36'000'000) / 5, 457, 0, 320, 262, 0, 240); - HOPPER(config, "hopper", attotime::from_msec(100), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_HIGH); + HOPPER(config, "hopper", attotime::from_msec(100)); } void gsan_state::init_gsan() |