diff --git a/src/mame/sunwise/jankmg2.cpp b/src/mame/sunwise/jankmg2.cpp index f705295b4..34b1e5779 100644 --- a/src/mame/sunwise/jankmg2.cpp +++ b/src/mame/sunwise/jankmg2.cpp @@ -1,5 +1,5 @@ // license:BSD-3-Clause -// copyright-holders: +// copyright-holders:AJR /* Ganso Janken Man 2 @@ -31,6 +31,7 @@ public: jankmg2_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , m_maincpu(*this, "maincpu") + , m_dacbank(*this, "dacbank") { } void jankmg2(machine_config &config); @@ -40,6 +41,9 @@ protected: private: required_device m_maincpu; + required_memory_bank m_dacbank; + + void dacbank_w(u8 data); void program_map(address_map &map) ATTR_COLD; void io_map(address_map &map) ATTR_COLD; @@ -48,19 +52,35 @@ private: void jankmg2_state::machine_start() { + m_dacbank->configure_entries(0, 8, memregion("dac_data")->base(), 0x8000); + m_dacbank->set_entry(0); } +void jankmg2_state::dacbank_w(u8 data) +{ + m_dacbank->set_entry(data & 0x07); +} + void jankmg2_state::program_map(address_map &map) { map(0x0000, 0x3fff).rom(); map(0x4000, 0x47ff).ram(); + map(0x8000, 0xffff).bankr(m_dacbank); } void jankmg2_state::io_map(address_map &map) { map.global_mask(0xff); - //map(0x??, 0x??).rw("ctc", FUNC(z80ctc_device::read), FUNC(z80ctc_device::write)); + map(0x40, 0x44).lw8(NAME([this] (offs_t offset, u8 data) { logerror("%s: Writing %02X to output %d\n", machine().describe_context(), data, offset); })); + map(0x50, 0x50).portr("DSW1"); + map(0x51, 0x51).portr("DSW2"); + map(0x52, 0x52).portr("IN0"); + map(0x53, 0x53).portr("IN1"); + map(0x54, 0x55).lw8(NAME([this] (offs_t offset, u8 data) { logerror("%s: Writing %02X to output %d\n", machine().describe_context(), data, offset + 5); })); + map(0x56, 0x56).w("dac", FUNC(dac_byte_interface::write)); + map(0x57, 0x57).w(FUNC(jankmg2_state::dacbank_w)); + map(0x58, 0x5b).rw("ctc", FUNC(z80ctc_device::read), FUNC(z80ctc_device::write)); } @@ -75,6 +95,16 @@ static INPUT_PORTS_START( jankmg2 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_START("IN1") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_START("DSW1") PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:1") PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) @@ -153,6 +183,7 @@ void jankmg2_state::jankmg2(machine_config &config) } +// 元祖ジャンケンマン ROM_START( jankmg ) ROM_REGION( 0x4000, "maincpu", 0 ) ROM_LOAD( "gjk1.u17", 0x0000, 0x4000, CRC(61f5656a) SHA1(67de8e9bcd305b8e19b46f788d5925b0eeb0c72b) ) @@ -162,6 +193,7 @@ ROM_START( jankmg ) // 3 more unpopulated ROM spaces at u14, u15 and u16 ROM_END +// 元祖ジャンケンマン2 ROM_START( jankmg2 ) ROM_REGION( 0x4000, "maincpu", 0 ) ROM_LOAD( "gjv1.1.p.u17", 0x0000, 0x4000, CRC(1aa201e7) SHA1(943dff75a46775dd12aed07659dff3d961a58211) ) @@ -171,6 +203,7 @@ ROM_START( jankmg2 ) // 3 more unpopulated ROM spaces at u14, u15 and u16 ROM_END +// プリティープレゼント ROM_START( ppresent ) ROM_REGION( 0x4000, "maincpu", 0 ) ROM_LOAD( "ppr1.u17", 0x0000, 0x4000, CRC(c4a38d1c) SHA1(cfab8e494794ecdb7ac3418b5e71b7c028656456) ) @@ -183,6 +216,6 @@ ROM_END } // anonymous namespace -GAME( 1995, jankmg, 0, jankmg2, jankmg2, jankmg2_state, empty_init, ROT0, "Sunwise", "Ganso Janken Man", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // date according to manual -GAME( 199?, jankmg2, 0, jankmg2, jankmg2, jankmg2_state, empty_init, ROT0, "Sunwise", "Ganso Janken Man 2", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 199?, ppresent, 0, jankmg2, jankmg2, jankmg2_state, empty_init, ROT0, "Sunwise", "Pretty Present", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 1995, jankmg, 0, jankmg2, jankmg2, jankmg2_state, empty_init, ROT0, "Sunwise", "Ganso Janken Man", MACHINE_NOT_WORKING ) // date according to manual +GAME( 199?, jankmg2, 0, jankmg2, jankmg2, jankmg2_state, empty_init, ROT0, "Sunwise", "Ganso Janken Man 2", MACHINE_NOT_WORKING ) +GAME( 199?, ppresent, 0, jankmg2, jankmg2, jankmg2_state, empty_init, ROT0, "Sunwise", "Pretty Present", MACHINE_NOT_WORKING )