From 4c4ee16315657c28cb425baf9aa3685afee0c28c Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Mon, 24 Aug 2020 16:44:45 +0200 Subject: splash.cpp: added some notes about ringball inputs --- src/mame/drivers/splash.cpp | 79 ++++++++++++++++++++++++++++++++++++++++++++- src/mame/includes/splash.h | 2 ++ 2 files changed, 80 insertions(+), 1 deletion(-) diff --git a/src/mame/drivers/splash.cpp b/src/mame/drivers/splash.cpp index 40ee00b2ece..9c3486736a3 100644 --- a/src/mame/drivers/splash.cpp +++ b/src/mame/drivers/splash.cpp @@ -246,6 +246,26 @@ void splash_state::funystrp_sound_map(address_map &map) map(0x8000, 0xffff).rom().bankr("sound_bank"); } +void funystrp_state::ringball_map(address_map &map) +{ + map(0x000000, 0x07ffff).rom().region("maincpu", 0); + //map(0x2fff00, 0x2fff03); // trackballs read here + map(0x800000, 0x83ffff).ram().share("pixelram"); + map(0x840000, 0x840001).portr("DSW1"); + map(0x840002, 0x840003).portr("DSW2"); + map(0x840004, 0x840005).portr("P1"); + map(0x840006, 0x840007).portr("P2"); + map(0x840008, 0x840009).portr("SYSTEM"); + map(0x84000a, 0x84000a).w(FUNC(funystrp_state::eeprom_w)); // EEPROM doesn't seem to be written, wrong hook up? + map(0x84000e, 0x84000e).w(m_soundlatch, FUNC(generic_latch_8_device::write)); // check when game works + map(0x880000, 0x8817ff).ram().w(FUNC(funystrp_state::vram_w)).share("videoram"); + map(0x881800, 0x881803).ram().share("vregs"); + map(0x881804, 0x881fff).ram(); + map(0x8c0000, 0x8c0fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); + map(0xd00000, 0xd01fff).rw(FUNC(funystrp_state::spr_read), FUNC(funystrp_state::spr_write)).share("spriteram"); + map(0xff0000, 0xffffff).ram(); +} + uint8_t funystrp_state::int_source_r() { return ~m_msm_source; @@ -439,7 +459,58 @@ static INPUT_PORTS_START( funystrp ) PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED ) +INPUT_PORTS_END +static INPUT_PORTS_START( ringball ) + PORT_START("DSW1") + PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "SW1:1") + PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "SW1:2") + PORT_DIPUNKNOWN_DIPLOC(0x04, 0x04, "SW1:3") + PORT_DIPUNKNOWN_DIPLOC(0x08, 0x08, "SW1:4") + PORT_DIPUNKNOWN_DIPLOC(0x10, 0x10, "SW1:5") + PORT_DIPUNKNOWN_DIPLOC(0x20, 0x20, "SW1:6") + PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "SW1:7") + PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "SW1:8") // TODO: switching this doesn't shown it as on in test mode as all the others do. Why? + + PORT_START("DSW2") + PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "SW2:1") + PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "SW2:2") + PORT_DIPUNKNOWN_DIPLOC(0x04, 0x04, "SW2:3") + PORT_DIPUNKNOWN_DIPLOC(0x08, 0x08, "SW2:4") + PORT_DIPUNKNOWN_DIPLOC(0x10, 0x10, "SW2:5") + PORT_DIPUNKNOWN_DIPLOC(0x20, 0x20, "SW2:6") + PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "SW2:7") + PORT_DIPNAME( 0x80, 0x80, DEF_STR( Test ) ) PORT_DIPLOCATION("SW2:8") + PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + + // TODO: Missing controls wrt test mode: Track left, Track right (always stuck on for some reason) + PORT_START("P1") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) // Hopper in - Hopper out + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) // Ticket in - Ticket out + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) // No effect, at least in test mode + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) // No effect, at least in test mode + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) // Allarme sca. + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) // Statistic + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) // Coin 1 - Count in + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) // Coin 2 - Count in + + PORT_START("P2") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) // Coupon - Count coup + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) // Scarico vin. - Lamp scarico + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) // Seems to exit test mode, resulting in black screen + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) // Seems to exit test mode, resulting in black screen + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) // Seems to exit test mode, resulting in black screen + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) // Seems to exit test mode, resulting in black screen + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) // Start left - Lamp start l. + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) // Start right - Lamp start r. + + PORT_START("SYSTEM") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read) + PORT_DIPNAME( 0x02, 0x02, "Clear EEPROM" ) // Reset record in test mode + PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END static const gfx_layout tilelayout8 = @@ -676,6 +747,12 @@ void funystrp_state::funystrp(machine_config &config) m_msm2->add_route(ALL_OUTPUTS, "mono", 0.80); } +void funystrp_state::ringball(machine_config &config) +{ + funystrp(config); + + m_maincpu->set_addrmap(AS_PROGRAM, &funystrp_state::ringball_map); +} /*************************************************************************** @@ -1480,4 +1557,4 @@ GAME( 1993, roldfroga,roldfrog, roldfrog, splash, splash_state, init_roldfro GAME( 1995, rebus, 0, roldfrog, splash, splash_state, init_rebus, ROT0, "Microhard", "Rebus", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 199?, funystrp, 0, funystrp, funystrp, funystrp_state, init_funystrp, ROT0, "Microhard / MagicGames", "Funny Strip", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) GAME( 199?, puckpepl, funystrp, funystrp, funystrp, funystrp_state, init_funystrp, ROT0, "Microhard", "Puck People", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) -GAME( 1995, ringball, funystrp, funystrp, funystrp, funystrp_state, init_ringball, ROT0, "Microhard", "Ring Ball (Ver. 2.6)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) // Wouldn't surprise me if in-game is actually called King & Bell ... +GAME( 1995, ringball, funystrp, ringball, ringball, funystrp_state, init_ringball, ROT0, "Microhard", "Ring Ball (Ver. 2.6)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) // Wouldn't surprise me if in-game is actually called King & Bell ... diff --git a/src/mame/includes/splash.h b/src/mame/includes/splash.h index 7c3a58433cc..03db9f312f1 100644 --- a/src/mame/includes/splash.h +++ b/src/mame/includes/splash.h @@ -128,6 +128,7 @@ public: { } void funystrp(machine_config &config); + void ringball(machine_config &config); void init_funystrp(); void init_ringball(); @@ -154,6 +155,7 @@ private: void funystrp_map(address_map &map); void funystrp_sound_io_map(address_map &map); + void ringball_map(address_map &map); required_device m_msm1; required_device m_msm2; -- cgit v1.2.3