summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author David Haywood <mamehaze@gmail.com>2019-02-12 15:35:34 +0000
committer ajrhacker <ajrhacker@users.noreply.github.com>2019-02-12 10:35:34 -0500
commitfebaed1aa75dcf2cf9c35a08fac80b9514638654 (patch)
tree3f15de856e737e39124db0edc3c292bbdacff97e
parent24b48a9fa835b2bc9ab00fca2147508e7f5c6436 (diff)
new NOT WORKING machines (#4630)
* new NOT WORKING machines --- Let's! TV Play Super Spot! Rolling Tamagotchi (Japan) [Sean Riddle, Peter Wilhelmsen] Zeus IG900 20-in-1 (US?) [Sean Riddle, Peter Wilhelmsen] Tamagotchi needs inputs etc. verifying (they kinda work, but not very well) and probably seeprom fixes if it's anything like the rest. Zeus is encrypted / scrambled, probably not too complex, but annoying. Some of the games are the same as Zone60 and the Vii 10in1 etc. * investigate encryption (nw) * getting there (nw) * mapping some inputs (nw) * (nw) * input improvements (nw) * (nw) * (nw) * (nw) * new WORKING software list entries jakks_gamekey_dp:snowwhit Snow White and the Seven Dwarfs - Memory Chase & Rescue Race, [Sean Riddle, 20 external donators] jakks_gamekey_nm:pacbosrx Pac-Man & Bosconian & Rally X (11 JUL 2005 A SKU I) [Sean Riddle, 20 external donators] * (nw) * some tidy (nw) * squash decrypt (nw)
-rw-r--r--hash/jakks_gamekey_dp.xml18
-rw-r--r--hash/jakks_gamekey_dy.xml6
-rw-r--r--hash/jakks_gamekey_nk.xml2
-rw-r--r--hash/jakks_gamekey_nm.xml16
-rw-r--r--src/mame/drivers/vii.cpp209
-rw-r--r--src/mame/drivers/xavix.cpp28
-rw-r--r--src/mame/includes/xavix.h12
-rw-r--r--src/mame/machine/xavix.cpp15
-rw-r--r--src/mame/mame.lst2
9 files changed, 296 insertions, 12 deletions
diff --git a/hash/jakks_gamekey_dp.xml b/hash/jakks_gamekey_dp.xml
new file mode 100644
index 00000000000..7c7ae5537b6
--- /dev/null
+++ b/hash/jakks_gamekey_dp.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
+<softwarelist name="jakks_gamekey_dp" description="JAKKS Pacific 'DP' Game Keys">
+
+ <!-- This list is for the 'DP' coded Game Keys, for Disney Princess -->
+
+ <software name="snowwhit">
+ <description>Snow White and the Seven Dwarfs - Memory Chase &amp; Rescue Race</description>
+ <year>2005</year>
+ <publisher>JAKKS Pacific / Taniko</publisher>
+ <part name="cart" interface="jakks_gamekey">
+ <dataarea name="rom" size="0x800000">
+ <rom name="jakksdisneyprincessmemorychaserescueracegk.bin" size="0x200000" crc="affca84b" sha1="f3b3a4c2db48c2c93cd616db18094470ec070068" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+</softwarelist>
diff --git a/hash/jakks_gamekey_dy.xml b/hash/jakks_gamekey_dy.xml
index 8a2b4d7a2d9..8c56de36769 100644
--- a/hash/jakks_gamekey_dy.xml
+++ b/hash/jakks_gamekey_dy.xml
@@ -8,7 +8,7 @@
Silkscreened onto both PCBs is the text A1 A2 A3 A4 with 2 boxes next to each with H and L. Both PCBs are marked A1 H A3 L. -->
<software name="sbwlgoof" supported="no"> <!-- AT24C04 SEEPROM -->
- <description>Sports Bowling &amp; Goofy's Underwater Adventure</description>
+ <description>Sports Bowling &amp; Goofy's Underwater Adventure (V1.31 - JUN 15 2005)</description>
<year>2005</year>
<publisher>JAKKS Pacific / HotGen Ltd</publisher>
<part name="cart" interface="jakks_gamekey">
@@ -23,7 +23,7 @@
</software>
<software name="stenfchs" supported="no"> <!-- AT24C04 SEEPROM -->
- <description>Sports Tennis &amp; Face Chase</description>
+ <description>Sports Tennis &amp; Face Chase (15 JUN 2005 C)</description>
<year>2005</year>
<publisher>JAKKS Pacific / HotGen Ltd</publisher>
<part name="cart" interface="jakks_gamekey">
@@ -38,7 +38,7 @@
</software>
<software name="stenfcha" supported="no"> <!-- AT24C04 SEEPROM -->
- <description>Sports Tennis &amp; Face Chase &amp; Riches of Agrabah</description>
+ <description>Sports Tennis &amp; Face Chase &amp; Riches of Agrabah (15 JUN 2005 A)</description>
<year>2005</year>
<publisher>JAKKS Pacific / HotGen Ltd</publisher>
<part name="cart" interface="jakks_gamekey">
diff --git a/hash/jakks_gamekey_nk.xml b/hash/jakks_gamekey_nk.xml
index da91e1abcbf..e5df2434a3b 100644
--- a/hash/jakks_gamekey_nk.xml
+++ b/hash/jakks_gamekey_nk.xml
@@ -4,7 +4,7 @@
<!-- This list is for the 'NK' coded Game Keys, for Nicktoons and related systems -->
- <software name="dora" supported="no">
+ <software name="dora">
<description>Soccer Shootout &amp; Juego De Futbol De Dora &amp; Dora's Star Mountain Adventure</description>
<year>2005</year>
<publisher>JAKKS Pacific / Handheld Games</publisher>
diff --git a/hash/jakks_gamekey_nm.xml b/hash/jakks_gamekey_nm.xml
index 7996f792835..beaee61c561 100644
--- a/hash/jakks_gamekey_nm.xml
+++ b/hash/jakks_gamekey_nm.xml
@@ -3,9 +3,9 @@
<softwarelist name="jakks_gamekey_nm" description="JAKKS Pacific 'NM' Game Keys">
<!-- This list is for the 'NM' coded Game Keys, for Namco base systems (MS Pacman) -->
-
+ <!-- for test mode, hold UP, press A, press DOWN -->
<software name="nrxdig"> <!-- has SEEPROM -->
- <description>New Rally X &amp; Dig Dug</description>
+ <description>New Rally X &amp; Dig Dug (01 APR 2005 A SKU E)</description>
<publisher>JAKKS Pacific Inc / Namco / HotGen Ltd</publisher>
<year>2005</year>
<part name="cart" interface="jakks_gamekey">
@@ -16,4 +16,16 @@
</part>
</software>
+ <software name="pacbosrx"> <!-- has SEEPROM -->
+ <description>Pac-Man &amp; Bosconian &amp; Rally X (11 JUL 2005 A SKU I)</description>
+ <publisher>JAKKS Pacific Inc / Namco / HotGen Ltd</publisher>
+ <year>2005</year>
+ <part name="cart" interface="jakks_gamekey">
+ <feature name="slot" value="rom_24lc04"/>
+ <dataarea name="rom" size="0x800000">
+ <rom name="jakksnamcopacmanbosconianrallyxgk.bin" size="0x100000" crc="751f0268" sha1="2fe374650b74924c439477605373df5a47072f41" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
</softwarelist>
diff --git a/src/mame/drivers/vii.cpp b/src/mame/drivers/vii.cpp
index d0fb6a9bfdd..4c9bc958d5a 100644
--- a/src/mame/drivers/vii.cpp
+++ b/src/mame/drivers/vii.cpp
@@ -52,7 +52,9 @@
Test Modes:
Justice League : press UP, DOWN, LEFT, BT3 on the JAKKS logo in that order, quickly, to get test menu
WWE : press UP, BT1, BT2 together during startup logos
-
+
+ Disney Friends, MS Pacman, WallE, Batman (and some other HotGen GameKKeys) for test mode, hold UP,
+ press A, press DOWN during startup
TODO:
Work out how to access the hidden TEST menus for all games (most JAKKS games should have one at least)
@@ -105,8 +107,11 @@ public:
void rad_sktv(machine_config &config);
void rad_crik(machine_config &config);
void non_spg_base(machine_config &config);
+ void lexizeus(machine_config &config);
void init_crc();
+ void init_zeus();
+ void init_zone40();
DECLARE_CUSTOM_INPUT_MEMBER(i2c_r);
@@ -845,6 +850,142 @@ static INPUT_PORTS_START( rad_fb2 ) // controls must be multiplexed somehow, as
PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_CUSTOM ) // NTSC (1) / PAL (0) flag
INPUT_PORTS_END
+
+static INPUT_PORTS_START( lexizeus ) // how many buttons does this have? I accidentally entered a secret test mode before that seemed to indicate 6, but can't get there again
+ PORT_START("P1")
+ PORT_DIPNAME( 0x0001, 0x0001, "P1" )
+ PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ 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_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ 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_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP )
+ 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_LOW, IPT_JOYSTICK_RIGHT )
+ 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_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Button 1") // shoot in Tiger Rescue & Deep
+ PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Pause")
+
+ PORT_START("P2")
+ PORT_DIPNAME( 0x0001, 0x0001, "P2" )
+ PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ 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_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ 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("P3")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Button 1 Rapid") // same function as button 1 but with rapid toggle on/off
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Button 2 Rapid") // same function as button 2 but with rapid toggle on/off
+ PORT_DIPNAME( 0x0004, 0x0004, "P3" )
+ PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Button 2") // toggles ball / number view in pool
+ PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ 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_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )
+ 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 ) )
+INPUT_PORTS_END
+
+
void vii_state::machine_start()
{
spg2xx_game_state::machine_start();
@@ -1081,7 +1222,7 @@ void jakks_gkr_state::jakks_gkr_dp(machine_config &config)
{
jakks_gkr(config);
m_maincpu->set_addrmap(AS_PROGRAM, &jakks_gkr_state::mem_map_1m);
- //SOFTWARE_LIST(config, "jakks_gamekey_dp").set_original("jakks_gamekey_dp");
+ SOFTWARE_LIST(config, "jakks_gamekey_dp").set_original("jakks_gamekey_dp");
}
void jakks_gkr_state::jakks_gkr_sw(machine_config &config)
@@ -1111,6 +1252,15 @@ void jakks_gkr_state::jakks_gkr_wf(machine_config &config)
}
+void spg2xx_game_state::lexizeus(machine_config &config)
+{
+ non_spg_base(config);
+ m_maincpu->set_addrmap(AS_PROGRAM, &spg2xx_game_state::mem_map_4m);
+ m_spg->porta_in().set_ioport("P1");
+ m_spg->portb_in().set_ioport("P2");
+ m_spg->portc_in().set_ioport("P3");
+}
+
void spg2xx_game_state::walle(machine_config &config)
{
jakks(config);
@@ -1180,7 +1330,7 @@ ROM_END
ROM_START( jak_wall )
ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD16_WORD_SWAP( "walle.bin", 0x000000, 0x400000, BAD_DUMP CRC(bd554cba) SHA1(6cd06a036ab12e7b0e1fd8003db873b0bb783868) )
- // both of these dumps are bad, but in slightly different ways, note the random green pixels around the text
+ // both of these dumps are bad, but in slightly different ways, note the random green pixels around the text (bad data is reported in secret test mode)
//ROM_LOAD16_WORD_SWAP( "walle.bin", 0x000000, 0x400000, BAD_DUMP CRC(6bc90b16) SHA1(184d72de059057aae7800da510fcf05ed1da9ec9))
ROM_END
@@ -1240,6 +1390,11 @@ ROM_START( jak_sith )
ROM_END
+ROM_START( lexizeus )
+ ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 )
+ ROM_LOAD16_WORD_SWAP( "lexibook1g900us.bin", 0x0000, 0x800000, CRC(c2370806) SHA1(cbb599c29c09b62b6a9951c724cd9fc496309cf9))
+ROM_END
+
ROM_START( zone40 )
ROM_REGION( 0x4000000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD16_WORD_SWAP( "zone40.bin", 0x0000, 0x4000000, CRC(4ba1444f) SHA1(de83046ab93421486668a247972ad6d3cda19440) )
@@ -1417,8 +1572,46 @@ void spg2xx_game_state::init_crc()
logerror("Calculated Byte Sum of bytes from 0x10 to 0x%08x is %08x)\n", length - 1, checksum);
}
+
+void spg2xx_game_state::init_zeus()
+{
+ uint16_t *ROM = (uint16_t*)memregion("maincpu")->base();
+ int size = memregion("maincpu")->bytes();
+
+ for (int i = 0x8000 / 2; i < size / 2; i++)
+ {
+ // global 16-bit xor
+ ROM[i] = ROM[i] ^ 0x8a1d;
+
+ // 4 single bit conditional xors
+ if (ROM[i] & 0x0020)
+ ROM[i] ^= 0x0100;
+
+ if (ROM[i] & 0x0040)
+ ROM[i] ^= 0x1000;
+
+ if (ROM[i] & 0x4000)
+ ROM[i] ^= 0x0001;
+
+ if (ROM[i] & 0x0080)
+ ROM[i] ^= 0x0004;
+
+ // global 16-bit bitswap
+ ROM[i] = bitswap<16>(ROM[i], 7, 12, 9, 14, 4, 6, 0, 10, 15, 1, 3, 2, 5, 13, 8, 11);
+ }
+}
+void spg2xx_game_state::init_zone40()
+{
+ uint16_t *ROM = (uint16_t*)memregion("maincpu")->base();
+ int size = memregion("maincpu")->bytes();
+ for (int i = 0; i < size/2; i++)
+ {
+ ROM[i] = ROM[i] ^ 0xbb88;
+ }
+ //there is also bitswapping as above, and some kind of address scramble as the vectors are not exactly where expected
+}
// year, name, parent, compat, machine, input, class, init, company, fullname, flags
@@ -1440,12 +1633,12 @@ CONS( 2005, jak_just, 0, 0, jakks_gkr_1m, jak_gkr, jakks_gkr_state, empty_init,
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.
// there is also a Dora the Explorer 'Race to Play Park' which is also a GameKeyReady unit with NK code, and different games - the upper part of this one is blue.
CONS( 2005, jak_sdoo, 0, 0, jakks_gkr_2m, jak_gkr, 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)
-CONS( 2005, jak_disf, 0, 0, jakks_gkr_dy, jak_gkr, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "Disney Friends (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses DY keys (3 released)
+CONS( 2005, jak_disf, 0, 0, jakks_gkr_dy, jak_gkr, 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_disp, 0, 0, jakks_gkr_dp, jak_disp, 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, jak_sith, 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, jak_gkr, 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( 2004, jak_mpac, 0, 0, jakks_gkr_nm, jak_nm, 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)", 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_mpac, 0, 0, jakks_gkr_nm, jak_nm, 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, jak_wf, 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
// 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, it is not yet verified to be the same code.
@@ -1470,7 +1663,11 @@ CONS( 2005, mattelcs, 0, 0, rad_skat, mattelcs, spg2xx_game_state, emp
// might not fit here. First 0x8000 bytes are blank (not too uncommon for these) then rest of rom looks like it's probably encrypted at least
// could be later model VT based instead? even after decrypting (simple word xor) the vectors have a different format and are at a different location to the SunPlus titles
-CONS( 2009, zone40, 0, 0, non_spg_base, wirels60, spg2xx_game_state, empty_init, "Jungle Soft / Ultimate Products (HK) Ltd", "Zone 40", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
+CONS( 2009, zone40, 0, 0, non_spg_base, wirels60, spg2xx_game_state, init_zone40, "Jungle Soft / Ultimate Products (HK) Ltd", "Zone 40", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
+
+// Similar, SPG260?, scrambled
+CONS( 200?, lexizeus, 0, 0, lexizeus, lexizeus, spg2xx_game_state, init_zeus, "Lexibook", "Zeus IG900 20-in-1 (US?)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
+
// valid looking code, but extended periperhal area (twice the size?) makes use of unemulated opcode 0xfe00 ?
CONS( 2011, wrlshunt, 0, 0, non_spg_base, wirels60, spg2xx_game_state, empty_init, "Hamy / Kids Station Toys Inc", "Wireless Hunting Video Game System", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/xavix.cpp b/src/mame/drivers/xavix.cpp
index eb8dedd9fba..9548702a93d 100644
--- a/src/mame/drivers/xavix.cpp
+++ b/src/mame/drivers/xavix.cpp
@@ -580,6 +580,25 @@ static INPUT_PORTS_START( epo_sdb )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1)
INPUT_PORTS_END
+static INPUT_PORTS_START( ltv_tam )
+ PORT_INCLUDE(xavix_i2c)
+
+ PORT_MODIFY("MOUSE0X")
+ PORT_BIT( 0xff, 0x00, IPT_AD_STICK_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_REVERSE PORT_PLAYER(1)
+ PORT_MODIFY("MOUSE0Y")
+ PORT_BIT( 0xff, 0x00, IPT_AD_STICK_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_PLAYER(1)
+ PORT_MODIFY("MOUSE1X")
+ PORT_BIT( 0xff, 0x00, IPT_AD_STICK_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_REVERSE PORT_PLAYER(2)
+ PORT_MODIFY("MOUSE1Y")
+ PORT_BIT( 0xff, 0x00, IPT_AD_STICK_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_PLAYER(2)
+
+ PORT_MODIFY("IN0")
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2)
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1)
+INPUT_PORTS_END
+
// left + right drums together = select / forward (needed on initial screen). left drum = left in menus right drum = right in menus
// analog reading depends heavily on timers, they're too fast right now so drum hits are too hard and register multiple times
@@ -1515,6 +1534,11 @@ ROM_START( has_wamg )
ROM_LOAD( "minigolf.bin", 0x000000, 0x400000, CRC(35cee2ad) SHA1(c7344e8ba336bc329638485ea571cd731ebf7649) )
ROM_END
+ROM_START( ltv_tam )
+ ROM_REGION( 0x400000, "bios", ROMREGION_ERASE00)
+ ROM_LOAD("letstvtamagotchi.bin", 0x000000, 0x400000, CRC(e3723272) SHA1(e72e128a7a24afb96baafe5f13e13a0d74db4033) )
+ROM_END
+
/*
The e-kara cartridges require the BIOS rom to map into 2nd external bus space as they fetch palette data from
it etc.
@@ -1677,6 +1701,10 @@ CONS( 2000, popira, 0, 0, xavix_cart_popira,popira, xavix_cart_st
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?
+// Let’s!TVプレイ 超にんきスポット!ころがしほーだい たまごっちりぞーと (Let's! TV Play Chou Ninki Spot! Korogashi Hodai 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 Hodai Tamagotchi Resort (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
+
+
/* SuperXaviX(?) (XaviX 2000 type CPU) hardware titles (2nd XaviX generation?)
diff --git a/src/mame/includes/xavix.h b/src/mame/includes/xavix.h
index 0f463643083..d8004c00817 100644
--- a/src/mame/includes/xavix.h
+++ b/src/mame/includes/xavix.h
@@ -626,6 +626,18 @@ private:
int hackaddress2;
};
+class xavix_i2c_ltv_tam_state : public xavix_i2c_state
+{
+public:
+ xavix_i2c_ltv_tam_state(const machine_config &mconfig, device_type type, const char *tag)
+ : xavix_i2c_state(mconfig, type, tag)
+ { }
+
+private:
+ virtual void write_io1(uint8_t data, uint8_t direction) override;
+};
+
+
class xavix_i2c_jmat_state : public xavix_i2c_state
{
public:
diff --git a/src/mame/machine/xavix.cpp b/src/mame/machine/xavix.cpp
index f3a09f17b79..a3bdb7994e0 100644
--- a/src/mame/machine/xavix.cpp
+++ b/src/mame/machine/xavix.cpp
@@ -587,6 +587,21 @@ void xavix_i2c_state::write_io1(uint8_t data, uint8_t direction)
}
}
+// ltv_tam
+void xavix_i2c_ltv_tam_state::write_io1(uint8_t data, uint8_t direction)
+{
+ if (direction & 0x08)
+ {
+ m_i2cmem->write_sda((data & 0x08) >> 3);
+ }
+
+ if (direction & 0x04)
+ {
+ m_i2cmem->write_scl((data & 0x04) >> 2);
+ }
+}
+
+
// for taikodp
void xavix_i2c_cart_state::write_io1(uint8_t data, uint8_t direction)
{
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 2a047eb0ccd..424248d8b33 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -38678,6 +38678,7 @@ jak_sdoo //
jak_dbz //
jak_mpac //
jak_wof //
+lexizeus // Lexibook
vii // KenSingTon / Jungle Soft / Siatronics Vii
wrlshunt // Wireless: Hunting Video Game System
wirels60 // Wireless 60
@@ -39851,6 +39852,7 @@ rad_ssxp //
rad_sbw //
rad_bdp //
has_wamg //
+ltv_tam //
ekara //
ekaraa //
ekaraj //