From f03db753db397e23d5f56fa9728dffdae009f449 Mon Sep 17 00:00:00 2001 From: David Haywood Date: Sun, 10 Mar 2019 15:33:42 +0000 Subject: machines promoted, new software list stuff (#4738) * machines promoted to working --- Disney Friends (JAKKS Pacific TV Game, Game-Key Ready) (17 MAY 2005 A) [Sean Riddle, Peter Wilhelmsen, Ryan Holtz] Justice League (JAKKS Pacific TV Game, Game-Key Ready) [Sean Riddle, Peter Wilhelmsen, Ryan Holtz] MX Dirt Rebel [Sean Riddle, Peter Wilhelmsen, Olivier Galibert, David Haywood] new NOT WORKING software list entries --- icanpian:jjs Jammin' Jungle Safari (Disney's The Lion King, Jungle Book, Tarzan) (K4653) [Sean Riddle, David Haywood] icanpian:jungboog Jungle Boogie (J7524) [Sean Riddle, David Haywood] icanpian:dpmagic Disney Princess Magical Melodies (K4656) [Sean Riddle, David Haywood] icanpian:rdp Rockin' Dance Party (J8715) [Sean Riddle, David Haywood] icanpian:scoobymm Scooby-Doo! Monster Mayhem (J7525) [Sean Riddle, David Haywood] icanpian:showtune Nicktoons Show Tunes (J7527) [Sean Riddle, David Haywood] * document this switch (nw) * some keys (nw) * needs more investigation here (nw) * new WORKING machines --- Disney (JAKKS Pacific TV Game, Game-Key Ready) (08 FEB 2005 A) [Sean Riddle, David Haywood, external donators] * new NOT WORKING software list entries --- icanguit:guitfav Guitar Favorites (K7357) [Sean Riddle, David Haywood] icanguit:surfsup SpongeBob SquarePants - Surf's Up (K9903) [Sean Riddle, David Haywood] icanguit:ggreats American Idol - Guitar Greats (K9907) [Sean Riddle, David Haywood] icanguit:nashhits Nashville Hits (K9905) [Sean Riddle, David Haywood] icanguit:roadtune Hot Wheels - Road Tunes (K9902) [Sean Riddle, David Haywood] * new NOT WORKING machines --- Evio (Japan) [Sean Riddle, Peter Wilhelmsen, ShouTime, David Haywood] (needs violin inputs mapping at least) --- hash/icanguit.xml | 63 +++++++-- hash/icanpian.xml | 100 ++++++++++--- src/devices/bus/ekara/rom.cpp | 6 +- src/mame/drivers/vii.cpp | 320 +++++++++++++++++++++++++++++++++++++----- src/mame/drivers/xavix.cpp | 36 ++++- src/mame/mame.lst | 2 + 6 files changed, 454 insertions(+), 73 deletions(-) diff --git a/hash/icanguit.xml b/hash/icanguit.xml index a0c6fe50584..7f1d0bf7e81 100644 --- a/hash/icanguit.xml +++ b/hash/icanguit.xml @@ -2,16 +2,17 @@ + 2005 + Fisher-Price / Mattel + + + + + + + + + Nicktoons Show Tunes (J7527) + 2005 + Fisher-Price / Mattel + + + + + + + + + Rockin' Dance Party (J8715) + 2005 + Fisher-Price / Mattel + + + + + + + diff --git a/src/devices/bus/ekara/rom.cpp b/src/devices/bus/ekara/rom.cpp index 9ebc85452eb..f55fd325d2a 100644 --- a/src/devices/bus/ekara/rom.cpp +++ b/src/devices/bus/ekara/rom.cpp @@ -148,21 +148,21 @@ bool ekara_rom_i2c_24c08_epitch_device::is_write_access_not_rom(void) void ekara_rom_i2c_24c08_epitch_device::device_add_mconfig(machine_config &config) { - I2CMEM(config, "i2cmem", 0)/*.set_page_size(16)*/.set_data_size(0x400); // 24C08 + I2CMEM(config, "i2cmem", 0).set_page_size(16).set_data_size(0x400); // 24C08 } // i2c 24lc04 void ekara_rom_i2c_24lc04_device::device_add_mconfig(machine_config &config) { - I2CMEM(config, "i2cmem", 0)/*.set_page_size(16)*/.set_data_size(0x200); // 24LC04 + I2CMEM(config, "i2cmem", 0).set_page_size(16).set_data_size(0x200); // 24LC04 } // i2c 24lc02 void ekara_rom_i2c_24lc02_device::device_add_mconfig(machine_config &config) { - I2CMEM(config, "i2cmem", 0)/*.set_page_size(16)*/.set_data_size(0x100); // 24LC02 + I2CMEM(config, "i2cmem", 0).set_page_size(16).set_data_size(0x100); // 24LC02 } // i2c 24lc02 with direct IO port access diff --git a/src/mame/drivers/vii.cpp b/src/mame/drivers/vii.cpp index 96b723e2a3f..26371ff641c 100644 --- a/src/mame/drivers/vii.cpp +++ b/src/mame/drivers/vii.cpp @@ -66,11 +66,15 @@ All systems: Various inaccuracies in samples/envelopes. - walle: + jak_wall, jak_sdoo: Game seems unhappy with NVRAM, clears contents on each boot. jak_pooh: In the 'Light Tag' minigame (select the rock) you can't move left with the DRC (ok with -nodrc) and the game usually softlocks when you find a friend (with or without DRC) + jak_disf: + shows corrupt logo on first boot with no valid nvram (possibly hardware does too, or layer disable?) + jak_nick: + channel chasers (first game) title screen background should be blue, not the current pattern (possible layer disable?) vii: When loading a cart from file manager, sometimes MAME will crash. @@ -214,6 +218,7 @@ public: void jakks_gkr_2m_i2c(machine_config &config); void jakks_gkr_nk(machine_config &config); void jakks_gkr_nk_i2c(machine_config &config); + void jakks_gkr_dy(machine_config &config); void jakks_gkr_dy_i2c(machine_config &config); void jakks_gkr_dp_i2c(machine_config &config); void jakks_gkr_sw_i2c(machine_config &config); @@ -283,6 +288,8 @@ public: : spg2xx_game_state(mconfig, type, tag) , m_cart(*this, "cartslot") , m_cart_region(nullptr) + , m_porta_in(*this, "INA_%u", 0U) + , m_portc_in(*this, "INC_%u", 0U) { } void icanguit(machine_config &config); @@ -290,12 +297,26 @@ public: private: virtual void machine_start() override; - //virtual void machine_reset() override; + virtual void machine_reset() override; DECLARE_DEVICE_IMAGE_LOAD_MEMBER(icanguit_cart); + DECLARE_READ16_MEMBER(porta_r); + DECLARE_READ16_MEMBER(portb_r); + DECLARE_READ16_MEMBER(portc_r); + DECLARE_WRITE16_MEMBER(porta_w); + DECLARE_WRITE16_MEMBER(portb_w); + DECLARE_WRITE16_MEMBER(portc_w); + + required_device m_cart; memory_region *m_cart_region; + + uint16_t m_inlatch_a; + uint16_t m_inlatch_c; + optional_ioport_array<3> m_porta_in; + optional_ioport_array<3> m_portc_in; + }; @@ -550,7 +571,8 @@ static INPUT_PORTS_START( walle ) PORT_START("P3") PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, spg2xx_game_state,i2c_r, nullptr) - PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0xfff6, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) // PAL/NTSC flag, set to NTSC (unverified here) INPUT_PORTS_END static INPUT_PORTS_START( jak_sith_i2c ) @@ -562,7 +584,8 @@ static INPUT_PORTS_START( jak_sith_i2c ) PORT_START("P3") PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, jakks_gkr_state,i2c_gkr_r, nullptr) - PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) // PAL/NTSC flag, set to NTSC (unverified here) + PORT_BIT( 0xfff6, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_START("JOYX") PORT_BIT(0x0fff, 0x0000, IPT_AD_STICK_X) PORT_SENSITIVITY(100) PORT_KEYDELTA(100) PORT_MINMAX(0x00,0x0fff) @@ -578,7 +601,8 @@ static INPUT_PORTS_START( jak_pooh ) PORT_BIT( 0xf7df, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_START("P3") - PORT_BIT( 0xffff, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0xfff7, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) // PAL/NTSC flag, set to NTSC (unverified here) PORT_START("JOYX") PORT_BIT(0x0fff, 0x0000, IPT_AD_STICK_X) PORT_SENSITIVITY(100) PORT_KEYDELTA(100) PORT_MINMAX(0x00,0x0fff) @@ -601,7 +625,7 @@ static INPUT_PORTS_START( jak_nm_i2c ) PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, jakks_gkr_state,i2c_gkr_r, nullptr) PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) // PAL/NTSC flag? music speed changes in Mappy + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) // PAL/NTSC flag, set to NTSC PORT_BIT( 0xfff0, IP_ACTIVE_HIGH, IPT_UNUSED ) @@ -624,9 +648,10 @@ static INPUT_PORTS_START( jak_wf_i2c ) PORT_START("P3") PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, jakks_gkr_state,i2c_gkr_r, nullptr) - PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0xfff6, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) // PAL/NTSC flag, set to NTSC - /* on real unit you can spin the wheel (and must make sure it completes a full circle, or you lose your turn) instead of pressing 'B' for a random spin but where does it map? + /* on real unit you can spin the wheel (and must make sure it completes a full circle, or you lose your turn) instead of pressing 'B' for a random spin but where does it map? (it can be tested in secret test mode) PORT_START("DIALX") PORT_BIT(0x0fff, 0x0000, IPT_AD_STICK_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(100) PORT_MINMAX(0x00,0x0fff) @@ -659,9 +684,7 @@ static INPUT_PORTS_START( jak_gkr ) PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) // PAL/NTSC flag, set to NTSC (not verified for all games, state can be seen in secret test menu of many tho) PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) // this causes WWE to think the unit is a '2nd Controller' and tells you to plug the 1st one in. PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) @@ -722,9 +745,7 @@ static INPUT_PORTS_START( jak_sdoo_i2c ) // GameKeyReady units had 2 main button PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) // PAL/NTSC flag, set to NTSC (unverified here) PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) @@ -787,7 +808,8 @@ static INPUT_PORTS_START( jak_disp_i2c ) PORT_START("P3") PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, jakks_gkr_state,i2c_gkr_r, nullptr) - PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) // PAL/NTSC flag, set to NTSC (unverified here) + PORT_BIT( 0xfff6, IP_ACTIVE_HIGH, IPT_UNUSED ) INPUT_PORTS_END @@ -1140,19 +1162,20 @@ INPUT_PORTS_END static INPUT_PORTS_START( icanpian ) // this has an entire piano keyboard + extras - PORT_START("P1") // the keyboard keys are in here, but each seems triple mapped to 3 octaves so there must be multiplexing - PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_BUTTON4 ) - PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_BUTTON5 ) - PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_BUTTON6 ) - PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_BUTTON7 ) - PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON8 ) - PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON9 ) - PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_BUTTON10 ) - PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_BUTTON11 ) - PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_BUTTON12 ) - PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_BUTTON13 ) - PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_BUTTON14 ) - PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_BUTTON15 ) + + PORT_START("INA_0") + PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER(1) PORT_NAME("Octatve 0 F (Green)") + PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_PLAYER(1) PORT_NAME("Octatve 0 F# (Purple)") + PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_PLAYER(1) PORT_NAME("Octatve 0 G (Yellow)") + PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_PLAYER(1) PORT_NAME("Octatve 0 G# (Dark Blue)") + PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON8 ) PORT_PLAYER(1) PORT_NAME("Octatve 0 A (Flesh)") + PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON9 ) PORT_PLAYER(1) PORT_NAME("Octatve 0 A# (Dark Green)") + PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_BUTTON10 ) PORT_PLAYER(1) PORT_NAME("Octatve 0 B (Pink)") + PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_BUTTON11 ) PORT_PLAYER(1) PORT_NAME("Octatve 0 C (White)") + PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_BUTTON12 ) PORT_PLAYER(1) PORT_NAME("Octatve 0 C# (Black)") + PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_BUTTON13 ) PORT_PLAYER(1) PORT_NAME("Octatve 0 D (Blue)") + PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_BUTTON14 ) PORT_PLAYER(1) PORT_NAME("Octatve 0 D# (Red)") + PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_BUTTON15 ) PORT_PLAYER(1) PORT_NAME("Octatve 0 E (Orange)") PORT_DIPNAME( 0x1000, 0x0000, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) @@ -1166,6 +1189,61 @@ static INPUT_PORTS_START( icanpian ) // this has an entire piano keyboard + extr PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_START("INA_1") + PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER(2) PORT_NAME("Octatve 1 F (Green)") + PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_PLAYER(2) PORT_NAME("Octatve 1 F# (Purple)") + PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_PLAYER(2) PORT_NAME("Octatve 1 G (Yellow)") + PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_PLAYER(2) PORT_NAME("Octatve 1 G# (Dark Blue)") + PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON8 ) PORT_PLAYER(2) PORT_NAME("Octatve 1 A (Flesh)") + PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON9 ) PORT_PLAYER(2) PORT_NAME("Octatve 1 A# (Dark Green)") + PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_BUTTON10 ) PORT_PLAYER(2) PORT_NAME("Octatve 1 B (Pink)") + PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_BUTTON11 ) PORT_PLAYER(2) PORT_NAME("Octatve 1 C (White)") + PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_BUTTON12 ) PORT_PLAYER(2) PORT_NAME("Octatve 1 C# (Black)") + PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_BUTTON13 ) PORT_PLAYER(2) PORT_NAME("Octatve 1 D (Blue)") + PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_BUTTON14 ) PORT_PLAYER(2) PORT_NAME("Octatve 1 D# (Red)") + PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_BUTTON15 ) PORT_PLAYER(2) PORT_NAME("Octatve 1 E (Orange)") + PORT_DIPNAME( 0x1000, 0x0000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x2000, 0x0000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x4000, 0x0000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + + PORT_START("INA_2") + PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER(3) PORT_NAME("Octatve 2 F (Green)") + PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_PLAYER(3) PORT_NAME("Octatve 2 F# (Purple)") + PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_PLAYER(3) PORT_NAME("Octatve 2 G (Yellow)") + PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_PLAYER(3) PORT_NAME("Octatve 2 G# (Dark Blue)") + PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON8 ) PORT_PLAYER(3) PORT_NAME("Octatve 2 A (Flesh)") + PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON9 ) PORT_PLAYER(3) PORT_NAME("Octatve 2 A# (Dark Green)") + PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_BUTTON10 ) PORT_PLAYER(3) PORT_NAME("Octatve 2 B (Pink)") + PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_BUTTON11 ) PORT_PLAYER(3) PORT_NAME("Octatve 2 C (White)") + PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_BUTTON12 ) PORT_PLAYER(3) PORT_NAME("Octatve 2 C# (Black)") + PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_BUTTON13 ) PORT_PLAYER(3) PORT_NAME("Octatve 2 D (Blue)") + PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_BUTTON14 ) PORT_PLAYER(3) PORT_NAME("Octatve 2 D# (Red)") + PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_BUTTON15 ) PORT_PLAYER(3) PORT_NAME("Octatve 2 E (Orange)") + PORT_DIPNAME( 0x1000, 0x0000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x2000, 0x0000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x4000, 0x0000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + + PORT_START("P1") + // uses multiplexed ports instead + PORT_START("P2") PORT_DIPNAME( 0x0001, 0x0001, "P2" ) PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) @@ -1217,15 +1295,82 @@ static INPUT_PORTS_START( icanpian ) // this has an entire piano keyboard + extr PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_START("P3") - PORT_DIPNAME( 0x0001, 0x0000, "P3" ) // must be 'ON' to boot - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) + // uses multiplexed ports instead + + PORT_START("INC_0") + PORT_BIT( 0x003f, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // are these some of the other buttons? having any of them pressed will corrupt the startup of dpmagic and jjs at least + PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_POWER_OFF ) PORT_NAME("Power Switch") // presumably power, kils the game + PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + + PORT_START("INC_1") + PORT_BIT( 0x003f, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // are these some of the other buttons? having any of them pressed will corrupt the startup of dpmagic and jjs at least + PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + + PORT_START("INC_2") // the system ALWAYS requires a cartridge, but has 2 modes of operation depending on a switch. The only way to use it as a normal keyboard is by flipping this switch. + PORT_DIPNAME( 0x0001, 0x0000, "System Mode" ) + PORT_DIPSETTING( 0x0001, "Keyboard Mode (no TV output)" ) + PORT_DIPSETTING( 0x0000, "TV Mode" ) PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON3 ) - PORT_DIPNAME( 0x0040, 0x0000, DEF_STR( Unknown ) ) + PORT_DIPNAME( 0x0040, 0x0000, "INC_2" ) PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Unknown ) ) @@ -1240,7 +1385,9 @@ static INPUT_PORTS_START( icanpian ) // this has an entire piano keyboard + extr PORT_DIPNAME( 0x0400, 0x0000, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_POWER_OFF ) PORT_NAME("Power Switch") // presumably power, kils the game + PORT_DIPNAME( 0x0800, 0x0000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x1000, 0x0000, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) @@ -1253,6 +1400,7 @@ static INPUT_PORTS_START( icanpian ) // this has an entire piano keyboard + extr PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + INPUT_PORTS_END @@ -1408,6 +1556,67 @@ static INPUT_PORTS_START( lexizeus ) // how many buttons does this have? I acci PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) INPUT_PORTS_END + +READ16_MEMBER(icanguit_state::porta_r) +{ + //logerror("%s: porta_r\n", machine().describe_context()); + return m_inlatch_a; +} + + +READ16_MEMBER(icanguit_state::portc_r) +{ + //logerror("%s: portc_r\n", machine().describe_context()); + return m_inlatch_c; +} + +WRITE16_MEMBER(icanguit_state::porta_w) +{ + if (data == 0x0000) + { + m_inlatch_a = m_inlatch_c = 0x0000; + } + else if (data == 0x1000) + { + m_inlatch_a = m_porta_in[2]->read(); + m_inlatch_c = m_portc_in[2]->read(); + } + else if (data == 0x2000) + { + m_inlatch_a = m_porta_in[1]->read(); + m_inlatch_c = m_portc_in[1]->read(); + } + else if (data == 0x4000) + { + m_inlatch_a = m_porta_in[0]->read(); + m_inlatch_c = m_portc_in[0]->read(); + } + else + { + logerror("%s: unknown porta_w (%04x)\n", machine().describe_context(), data); + } +} + +WRITE16_MEMBER(icanguit_state::portc_w) +{ + //logerror("%s: portc_w (%04x)\n", machine().describe_context(), data); +} + + +// portb is used on startup, something serial? +READ16_MEMBER(icanguit_state::portb_r) +{ + //logerror("%s: portb_r\n", machine().describe_context()); + return m_io_p2->read(); +} + +WRITE16_MEMBER(icanguit_state::portb_w) +{ + //logerror("%s: portb_w (%04x)\n", machine().describe_context(), data); +} + + + void icanguit_state::machine_start() { spg2xx_game_state::machine_start(); @@ -1422,6 +1631,14 @@ void icanguit_state::machine_start() } } +void icanguit_state::machine_reset() +{ + spg2xx_game_state::machine_reset(); + m_inlatch_a = 0x0000; + m_inlatch_c = 0x0000; +} + + DEVICE_IMAGE_LOAD_MEMBER(icanguit_state, icanguit_cart) { uint32_t size = m_cart->common_get_size("rom"); @@ -1595,11 +1812,19 @@ void icanguit_state::icanguit(machine_config &config) SPG24X(config, m_spg, XTAL(27'000'000), m_maincpu, m_screen); spg2xx_base(config); - + /* + m_spg->porta_in().set(FUNC(icanguit_state::porta_r)); + m_spg->portb_in().set(FUNC(icanguit_state::portb_r)); + m_spg->portc_in().set(FUNC(icanguit_state::portc_r)); + m_spg->porta_out().set(FUNC(icanguit_state::porta_w)); + m_spg->portb_out().set(FUNC(icanguit_state::portb_w)); + m_spg->portc_out().set(FUNC(icanguit_state::portc_w)); + */ m_spg->porta_in().set_ioport("P1"); m_spg->portb_in().set_ioport("P2"); m_spg->portc_in().set_ioport("P3"); + GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "icanguit_cart"); m_cart->set_width(GENERIC_ROM16_WIDTH); m_cart->set_device_load(device_image_load_delegate(&icanguit_state::device_image_load_icanguit_cart, this)); @@ -1614,9 +1839,12 @@ void icanguit_state::icanpian(machine_config &config) spg2xx_base(config); - m_spg->porta_in().set_ioport("P1"); - m_spg->portb_in().set_ioport("P2"); - m_spg->portc_in().set_ioport("P3"); + m_spg->porta_in().set(FUNC(icanguit_state::porta_r)); + m_spg->portb_in().set(FUNC(icanguit_state::portb_r)); + m_spg->portc_in().set(FUNC(icanguit_state::portc_r)); + m_spg->porta_out().set(FUNC(icanguit_state::porta_w)); + m_spg->portb_out().set(FUNC(icanguit_state::portb_w)); + m_spg->portc_out().set(FUNC(icanguit_state::portc_w)); GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "icanpian_cart"); m_cart->set_width(GENERIC_ROM16_WIDTH); @@ -1719,6 +1947,13 @@ void jakks_gkr_state::jakks_gkr_nk_i2c(machine_config &config) SOFTWARE_LIST(config, "jakks_gamekey_nk").set_original("jakks_gamekey_nk"); } +void jakks_gkr_state::jakks_gkr_dy(machine_config &config) +{ + jakks_gkr(config); + m_maincpu->set_addrmap(AS_PROGRAM, &jakks_gkr_state::mem_map_1m); + SOFTWARE_LIST(config, "jakks_gamekey_dy").set_original("jakks_gamekey_dy"); +} + void jakks_gkr_state::jakks_gkr_dy_i2c(machine_config &config) { jakks_gkr_i2c(config); @@ -1911,6 +2146,11 @@ ROM_START( jak_wof ) ROM_LOAD16_WORD_SWAP( "jakkswheeloffortunegkr.bin", 0x000000, 0x200000, CRC(6a879620) SHA1(95478764a61741569041c2299528f6464651d593) ) ROM_END +ROM_START( jak_disn ) + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "disneygkr.bin", 0x000000, 0x100000, CRC(7a5ebcd7) SHA1(9add8c2a6e3f0409c8957a2ba2d054fd2c4c39c1) ) +ROM_END + ROM_START( jak_disf ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) ROM_LOAD16_WORD_SWAP( "disneyfriendsgkr.bin", 0x000000, 0x200000, CRC(77bca50b) SHA1(6e0f4fd229ee11eac721b5dbe79cf9002d3dbd64) ) @@ -2194,21 +2434,23 @@ CONS( 2008, jak_wall, 0, 0, walle, walle, spg2xx_game_state, empty_init, "JAKKS // 'Game-Key Ready' JAKKS games (these can also take per-game specific expansion cartridges, although not all games had them released) // Some of these were available in versions without Game-Key ports, it is unconfirmed if code was the same unless otherwise stated // For units released AFTER the GameKey promotion was cancelled it appears the code is the same as the PCB inside is the same, just the external port closed off, earlier units might be different hardware in some cases. +// units released BEFORE the GameKey support were sometimes different hardware, eg. the Spider-Man and Disney units were SPG110 based CONS( 2005, jak_wwe, 0, 0, jakks_gkr_1m_i2c, jak_gkr_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "WWE (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // WW (no game-keys released) CONS( 2005, jak_fan4, 0, 0, jakks_gkr_1m_i2c, jak_gkr_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Digital Eclipse", "Fantastic Four (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // F4 (no game-keys released) -CONS( 2005, jak_just, 0, 0, jakks_gkr_1m_i2c, jak_gkr_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Taniko", "Justice League (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // DC (no game-keys released) +CONS( 2005, jak_just, 0, 0, jakks_gkr_1m_i2c, jak_gkr_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Taniko", "Justice League (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // DC (no game-keys released) CONS( 2005, jak_dora, 0, 0, jakks_gkr_nk, jak_gkr, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Handheld Games", "Dora the Explorer - Nursery Rhyme Adventure (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses NK keys (same as Nicktoons & Spongebob) (3 released) - The upper part of this one is pink/purple. CONS( 2005, jak_dorr, 0, 0, jakks_gkr_nk_i2c, jak_gkr_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Handheld Games", "Dora the Explorer - Race to Play Park (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses NK keys (same as Nicktoons & Spongebob) (3 released) - The upper part of this one is blue CONS( 2004, jak_nick, 0, 0, jakks_gkr_nk_i2c, jak_gkr_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Handheld Games", "Nicktoons (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses NK keys CONS( 2005, jak_sbfc, 0, 0, jakks_gkr_nk_i2c, jak_gkr_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "SpongeBob SquarePants - The Fry Cook Games (JAKKS Pacific TV Game, Game-Key Ready) (AUG 18 2005 21:31:56)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses NK keys CONS( 2005, jak_sdoo, 0, 0, jakks_gkr_2m_i2c, jak_sdoo_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Jolliford Management", "Scooby-Doo! and the Mystery of the Castle (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // SD (no game-keys released) (was dumped from a later unit with GameKey port missing, but internal PCB still supported it, code likely the same) -CONS( 2005, jak_disf, 0, 0, jakks_gkr_dy_i2c, jak_gkr_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "Disney Friends (JAKKS Pacific TV Game, Game-Key Ready) (17 MAY 2005 A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses DY keys (3 released) +CONS( 2005, jak_disn, 0, 0, jakks_gkr_dy, jak_gkr, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "Disney (JAKKS Pacific TV Game, Game-Key Ready) (08 FEB 2005 A)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses DY keys (3 released) +CONS( 2005, jak_disf, 0, 0, jakks_gkr_dy_i2c, jak_gkr_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "Disney Friends (JAKKS Pacific TV Game, Game-Key Ready) (17 MAY 2005 A)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses DY keys (3 released) CONS( 2005, jak_disp, 0, 0, jakks_gkr_dp_i2c, jak_disp_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / 5000ft, Inc", "Disney Princess (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses DP keys (1 key released) // There seems to be a second game called 'Disney Princesses' with a 'board game' style front end as well as the minigames, also GKR, see https://www.youtube.com/watch?v=w9p5TI029bQ The one we have is https://www.youtube.com/watch?v=9ppPKVbpoMs the physical package seems identical. CONS( 2005, jak_sith, 0, 0, jakks_gkr_sw_i2c, jak_sith_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Griptonite Games", "Star Wars - Revenge of the Sith (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses SW keys (1 released) CONS( 2005, jak_dbz, 0, 0, jakks_gkr_1m_i2c, jak_gkr_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Handheld Games", "Dragon Ball Z (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // DB (no game-keys released, 1 in development but cancelled) CONS( 2005, jak_mpac, 0, 0, jakks_gkr_nm_i2c, jak_nm_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Namco / HotGen Ltd", "Ms. Pac-Man 5-in-1 (Ms. Pac-Man, Pole Position, Galaga, Xevious, Mappy) (JAKKS Pacific TV Game, Game-Key Ready) (07 FEB 2005 A SKU F)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses NM (3 keys available [Dig Dug, New Rally-X], [Rally-X, Pac-Man, Bosconian], [Pac-Man, Bosconian]) -CONS( 2005, jak_wof, 0, 0, jakks_gkr_wf_i2c, jak_wf_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "Wheel of Fortune (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses WF keys (no game-keys released) analog wheel not emulated +CONS( 2005, jak_wof, 0, 0, jakks_gkr_wf_i2c, jak_wf_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "Wheel of Fortune (JAKKS Pacific TV Game, Game-Key Ready) (Jul 11 2005 ORIG)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses WF keys (no game-keys released) analog wheel not emulated // There is a 'Second Edition' version of Wheel of Fortune with a Gold case, GameKey port removed, and a '2' over the usual Game Key Ready logo, internals are different too, not Game-Key Ready CONS( 2004, jak_spdm, 0, 0, jakks_gkr_mv_i2c, jak_gkr_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Digital Eclipse", "Spider-Man (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // MV (1 key available) CONS( 2005, jak_pooh, 0, 0, jakks_gkr_wp, jak_pooh, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Backbone Entertainment", "Winnie the Pooh - Piglet's Special Day (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // WP (no game-keys released) diff --git a/src/mame/drivers/xavix.cpp b/src/mame/drivers/xavix.cpp index 93351acb5de..f68ab35d8c9 100644 --- a/src/mame/drivers/xavix.cpp +++ b/src/mame/drivers/xavix.cpp @@ -1291,6 +1291,19 @@ static INPUT_PORTS_START( has_wamg ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) // waits for this after fading out title, what is it? INPUT_PORTS_END +static INPUT_PORTS_START( evio ) + PORT_INCLUDE(xavix) + + PORT_MODIFY("IN0") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2 ) + + PORT_MODIFY("IN1") + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_POWER_OFF ) PORT_NAME("Power Switch") // pressing this will turn the game off. +INPUT_PORTS_END + /* correct, 4bpp gfxs */ static const gfx_layout charlayout = { @@ -1391,7 +1404,7 @@ void xavix_i2c_state::xavix_i2c_24lc02(machine_config &config) { xavix(config); - I2CMEM(config, "i2cmem", 0)/*.set_page_size(16)*/.set_data_size(0x100); // 24LC02 (taiko) + I2CMEM(config, "i2cmem", 0).set_page_size(16).set_data_size(0x100); // 24LC02 (taiko) } void xavix_i2c_state::xavix_i2c_24c02(machine_config &config) @@ -1407,14 +1420,14 @@ void xavix_i2c_state::xavix_i2c_24lc04(machine_config &config) // according to http://ww1.microchip.com/downloads/en/devicedoc/21708k.pdf 'the master transmits up to 16 data bytes' however this breaks the Nostalgia games // of note Galplus Phalanx on Namco Nostalgia 2, which will hang between stages unable to properly access the device, but with no page support it doesn't hang and scores save - I2CMEM(config, "i2cmem", 0)/*.set_page_size(16)*/.set_data_size(0x200); // 24LC04 on Nostalgia games, 24C04 on others + I2CMEM(config, "i2cmem", 0).set_page_size(16).set_data_size(0x200); // 24LC04 on Nostalgia games, 24C04 on others } void xavix_i2c_state::xavix_i2c_24c08(machine_config &config) { xavix(config); - I2CMEM(config, "i2cmem", 0)/*.set_page_size(16)*/.set_data_size(0x400); // 24C08 (Excite Fishing DX) + I2CMEM(config, "i2cmem", 0).set_page_size(16).set_data_size(0x400); // 24C08 (Excite Fishing DX) } void xavix_state::xavixp(machine_config &config) @@ -1475,7 +1488,7 @@ void xavix_i2c_jmat_state::xavix2002_i2c_jmat(machine_config &config) { xavix2002(config); - I2CMEM(config, "i2cmem", 0)/*.set_page_size(16)*/.set_data_size(0x200); // ? + I2CMEM(config, "i2cmem", 0).set_page_size(16).set_data_size(0x200); // ? m_xavix2002io->read_0_callback().set(FUNC(xavix_i2c_jmat_state::read_extended_io0)); m_xavix2002io->write_0_callback().set(FUNC(xavix_i2c_jmat_state::write_extended_io0)); @@ -1542,7 +1555,7 @@ void xavix_i2c_cart_state::xavix_i2c_taiko(machine_config &config) { xavix_cart(config); - I2CMEM(config, "i2cmem", 0)/*.set_page_size(16)*/.set_data_size(0x100); // 24LC02 + I2CMEM(config, "i2cmem", 0).set_page_size(16).set_data_size(0x100); // 24LC02 SOFTWARE_LIST(config, "cart_list_japan_d").set_original("ekara_japan_d"); SOFTWARE_LIST(config, "cart_list_japan_sp").set_original("ekara_japan_sp"); @@ -1878,6 +1891,14 @@ ROM_START( taikodp ) ROM_RELOAD(0x000000, 0x200000) ROM_END +ROM_START( evio ) + ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 ) + ROM_LOAD( "evio.bin", 0x600000, 0x200000, CRC(ee22c764) SHA1(f2b7e213eb78065a63ef484a619bcfc61299e30e)) + ROM_RELOAD(0x000000, 0x200000) +ROM_END + + + /* XaviX hardware titles (1st Generation) @@ -1987,6 +2008,9 @@ CONS( 2002, popira2, 0, 0, xavix_cart_popira,popira2, xavix_popira2 CONS( 2003, taikodp, 0, 0, xavix_i2c_taiko, taikodp, xavix_i2c_cart_state, init_xavix, "Takara / SSD Company LTD", "Taiko De Popira (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND /*|MACHINE_IS_BIOS_ROOT*/ ) // inputs? are the drums analog? +CONS( 2003, evio, 0, 0, xavix_nv, evio, xavix_state, init_xavix, "Tomy / SSD Company LTD", "Evio (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND /*|MACHINE_IS_BIOS_ROOT*/ ) // inputs? it's a violin controller + + // Let’s!TVプレイ 超にんきスポット!ころがしほーだい たまごっちりぞーと (Let's! TV Play Chou Ninki Spot! Korogashi-Houdai Tamagotchi Resort) (only on the Japanese list? http://test.shinsedai.co.jp/english/products/Applied/list.html ) This also allows you to use an IR reciever to import a Tamagotchi from compatible games CONS( 2006, ltv_tam, 0, 0, xavix_i2c_24lc04, ltv_tam,xavix_i2c_ltv_tam_state, init_xavix, "Bandai / SSD Company LTD", "Let's! TV Play Chou Ninki Spot! Korogashi-Houdai Tamagotchi Resort (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) @@ -2042,7 +2066,7 @@ CONS( 2004, epo_sdb, 0, 0, xavix2000_nv, epo_sdb, xavix_state, CONS( 2005, ttv_sw, 0, 0, xavix2000_i2c_24c02, ttv_lotr, xavix_i2c_lotr_state, init_xavix, "Tiger / SSD Company LTD", "Star Wars Saga Edition - Lightsaber Battle Game", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) CONS( 2005, ttv_lotr, 0, 0, xavix2000_i2c_24c02, ttv_lotr, xavix_i2c_lotr_state, init_xavix, "Tiger / SSD Company LTD", "Lord Of The Rings - Warrior of Middle-Earth", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -CONS( 2005, ttv_mx, 0, 0, xavix2000_i2c_24c04, ttv_mx, xavix_i2c_state, init_xavix, "Tiger / SSD Company LTD", "MX Dirt Rebel", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +CONS( 2005, ttv_mx, 0, 0, xavix2000_i2c_24c04, ttv_mx, xavix_i2c_state, init_xavix, "Tiger / SSD Company LTD", "MX Dirt Rebel", MACHINE_IMPERFECT_SOUND ) CONS( 2003, drgqst, 0, 0, xavix2000_i2c_24c02, ttv_lotr, xavix_i2c_lotr_state, init_xavix, "Square Enix / SSD Company LTD", "Kenshin Dragon Quest: Yomigaerishi Densetsu no Ken", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // hangs after starting a game, or after quite a long time in attract mode (first problem could be bad save data read with the eeprom code, 2nd problem might just be how it is, ends up in a dead loop, not executing invalid code) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 77272002a1d..606e0b55438 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -38734,6 +38734,7 @@ jak_fan4 // jak_just // jak_dora // jak_dorr // +jak_disn // jak_disf // jak_disp // jak_sith // @@ -39946,6 +39947,7 @@ ddrfammt // popira // popira2 // taikodp // +evio // ttv_sw // ttv_lotr // ttv_mx // -- cgit v1.2.3