summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/konami/konamigs.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/konami/konamigs.cpp')
-rw-r--r--src/mame/konami/konamigs.cpp93
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()