summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--hash/jakks_gamekey_mv.xml19
-rw-r--r--hash/jakks_gamekey_nk.xml24
-rw-r--r--hash/monon_color.xml48
-rw-r--r--hash/sega_beena_cart.xml18
-rw-r--r--scripts/target/mame/mess.lua1
-rw-r--r--src/mame/drivers/sega_beena.cpp99
-rw-r--r--src/mame/drivers/vii.cpp295
-rw-r--r--src/mame/drivers/xavix.cpp33
-rw-r--r--src/mame/mame.lst12
-rw-r--r--src/mame/mess.flt1
-rw-r--r--src/mame/video/xavix.cpp4
11 files changed, 479 insertions, 75 deletions
diff --git a/hash/jakks_gamekey_mv.xml b/hash/jakks_gamekey_mv.xml
new file mode 100644
index 00000000000..7ea23bc8a2e
--- /dev/null
+++ b/hash/jakks_gamekey_mv.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
+<softwarelist name="jakks_gamekey_mv" description="JAKKS Pacific 'MV' Game Keys">
+
+ <!-- This list is for the 'MV' coded Game Keys, for Marvel (Spider-Man) -->
+
+ <software name="bcatdoc">
+ <description>Black Cat &amp; Doc Ock</description>
+ <year>2005</year>
+ <publisher>JAKKS Pacific / Digital Eclipse</publisher>
+ <part name="cart" interface="jakks_gamekey">
+ <feature name="slot" value="rom_24lc04"/>
+ <dataarea name="rom" size="0x800000">
+ <rom name="jakksspidermanblackcatdocockgk.bin" size="0x200000" crc="34645c17" sha1="0112a0c16350ac02204486492d8cae7b7df5e011" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+</softwarelist>
diff --git a/hash/jakks_gamekey_nk.xml b/hash/jakks_gamekey_nk.xml
index e5df2434a3b..1adcb5f43b4 100644
--- a/hash/jakks_gamekey_nk.xml
+++ b/hash/jakks_gamekey_nk.xml
@@ -18,4 +18,28 @@
</part>
</software>
+ <software name="volbird">
+ <description>Nicktoons Vollyball &amp; Birdie Putt</description>
+ <year>2005</year>
+ <publisher>JAKKS Pacific / Handheld Games</publisher>
+ <part name="cart" interface="jakks_gamekey">
+ <feature name="slot" value="rom_24lc04"/>
+ <dataarea name="rom" size="0x800000">
+ <rom name="nicktoonsgkvolleyballbirdie.bin" size="0x200000" crc="7eccb308" sha1="bf7f7ff752ea2652ad099d26e53dade4e4f9e9a1" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="popsnow">
+ <description>Spongebob Sponge Pop &amp; Snowball Showdown (15 AUGUST 2005 D)</description>
+ <year>2005</year>
+ <publisher>JAKKS Pacific / HotGen Ltd</publisher>
+ <part name="cart" interface="jakks_gamekey">
+ <feature name="slot" value="rom_24lc04"/>
+ <dataarea name="rom" size="0x800000">
+ <rom name="spongebobgkpopsnowball.bin" size="0x200000" crc="8194baeb" sha1="cac7c6989696dc52088013d198314993d72f3c74" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
</softwarelist>
diff --git a/hash/monon_color.xml b/hash/monon_color.xml
index 59a5de2ac30..ae0f24f906f 100644
--- a/hash/monon_color.xml
+++ b/hash/monon_color.xml
@@ -1,6 +1,8 @@
<?xml version="1.0"?>
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
<softwarelist name="monon_color" description="M&amp;D Monon Color cartridges">
+ <!-- Cartridges contain a serial flash ROM, and an epoxy blob, it is not clear what is inside the blob. Cartridges appear to work just fine if reprogrammed
+ with a different game. Note, the current dumps might not be 'clean' as the games save data directly to the 0x50000 area of ROM. -->
<!-- Known games list
@@ -22,7 +24,7 @@
Locke Kingdom: The King's Badge Luòkè wángguó-wángzhě huīzhāng N Y NO. 206 RPG 洛克王国-王者徽章
Laboratory Mathematica Olympiad Àoshù shíyàn shì N Y NO. 207 PUZ/EDU 奥数实验室
Logic Fight Luójí pīn yī pīn Y Y NO. 301 PUZ/EDU 逻辑拼一拼
- Pleasant goat and big big wolf's comet battle Xǐyángyáng yǔ huītàiláng-juézhàn miē xīng N Y NO. 302 PUZ/EDU 喜羊羊与灰太狼-决战咩星
+ Pleasant goat and big big wolf's comet battle Xǐyángyáng yǔ huītàiláng-juézhàn miē xīng Y Y NO. 302 PUZ/EDU 喜羊羊与灰太狼-决战咩星
Dragon Ball: The Martial Arts Conference Lóngzhū-wǔdào dàhuì Y Y NO. 303 ACT 龙珠-武道大会
League of Legends: The Ultimate Fight Yīngxióng liánméng-zhōngjí gédòu Y Y NO. 304 FTG 英雄联盟-终极格斗
Ben 10: alien force .. N N? ACT BEN 10: ALIEN FORCE
@@ -33,7 +35,7 @@
(1) (Note: One known to exist in the wild, was supposedly bought at a thrift store. Based around Jackie Chan fighting)
-->
- <software name="purcfs"> <!-- 101 - Purcell: Ares Fighting Spirit -->
+ <software name="purcfs" supported="no"> <!-- 101 - Purcell: Ares Fighting Spirit -->
<description>Sài ěr hào: Zhànshén dòu hún</description>
<year>2011</year>
<publisher>M&amp;D</publisher>
@@ -45,7 +47,7 @@
</part>
</software>
- <software name="lockmagi"> <!-- 102 - Locke Kingdom: Magic Array -->
+ <software name="lockmagi" supported="no"> <!-- 102 - Locke Kingdom: Magic Array -->
<description>Luòkè wángguó-mófǎ zhèn</description>
<year>2011</year>
<publisher>M&amp;D</publisher>
@@ -57,7 +59,7 @@
</part>
</software>
- <software name="mechcycl"> <!-- 103 - Mech Cyclone: Fighting Masters -->
+ <software name="mechcycl" supported="no"> <!-- 103 - Mech Cyclone: Fighting Masters -->
<description>Jī jiǎ xuànfēng-gédòu dàshī (set 1)</description>
<year>2011</year>
<publisher>M&amp;D</publisher>
@@ -69,7 +71,7 @@
</part>
</software>
- <software name="mechcycla" cloneof="mechcycl"> <!-- 103 - Mech Cyclone: Fighting Masters -->
+ <software name="mechcycla" cloneof="mechcycl" supported="no"> <!-- 103 - Mech Cyclone: Fighting Masters -->
<description>Jī jiǎ xuànfēng-gédòu dàshī (set 2)</description>
<year>2011</year>
<publisher>M&amp;D</publisher>
@@ -81,7 +83,7 @@
</part>
</software>
- <software name="zinba"> <!-- 104 - Zinba! : The lost relics -->
+ <software name="zinba" supported="no"> <!-- 104 - Zinba! : The lost relics -->
<description>Shén pò-shīluò de yíjī</description>
<year>2011</year>
<publisher>M&amp;D</publisher>
@@ -93,7 +95,7 @@
</part>
</software>
- <software name="purceb"> <!-- 105 - Purcell: Energy Battle -->
+ <software name="purceb" supported="no"> <!-- 105 - Purcell: Energy Battle -->
<description>Sài ěr hào-néngyuán dà zuòzhàn</description>
<year>2011</year>
<publisher>M&amp;D</publisher>
@@ -105,7 +107,7 @@
</part>
</software>
- <software name="ironmnhs"> <!-- 106 - Iron Man: Hero Strike -->
+ <software name="ironmnhs" supported="no"> <!-- 106 - Iron Man: Hero Strike -->
<description>Gāngtiě xiá-yīngxióng fǎnjí zhàn</description>
<year>2011</year>
<publisher>M&amp;D</publisher>
@@ -117,7 +119,7 @@
</part>
</software>
- <software name="zombhunt"> <!-- 107 - Zombie Hunter -->
+ <software name="zombhunt" supported="no"> <!-- 107 - Zombie Hunter -->
<description>Jiāngshī lièrén</description>
<year>2011</year>
<publisher>M&amp;D</publisher>
@@ -129,7 +131,7 @@
</part>
</software>
- <software name="lockba"> <!-- 201 - Locke Kingdom: Big Adventure -->
+ <software name="lockba" supported="no"> <!-- 201 - Locke Kingdom: Big Adventure -->
<description>Luòkè wángguó-dà màoxiǎn</description>
<year>2011</year>
<publisher>M&amp;D</publisher>
@@ -141,7 +143,7 @@
</part>
</software>
- <software name="lockice"> <!-- 202 - Locke Kingdom RPG: Ice Blue -->
+ <software name="lockice" supported="no"> <!-- 202 - Locke Kingdom RPG: Ice Blue -->
<description>Luòkè wángguó-bīng zhī lán</description>
<year>2011</year>
<publisher>M&amp;D</publisher>
@@ -153,7 +155,7 @@
</part>
</software>
- <software name="lockfire"> <!-- 203 - Locke Kingdom RPG: Black Fire -->
+ <software name="lockfire" supported="no"> <!-- 203 - Locke Kingdom RPG: Black Fire -->
<description>Luòkè wángguó-hēi zhī yán</description>
<year>2011</year>
<publisher>M&amp;D</publisher>
@@ -165,7 +167,7 @@
</part>
</software>
- <software name="lockcard"> <!-- 204 - Locke Kingdom: Card Wars -->
+ <software name="lockcard" supported="no"> <!-- 204 - Locke Kingdom: Card Wars -->
<description>Luòkè wángguó-kǎ pái zhàn jì</description>
<year>2011</year>
<publisher>M&amp;D</publisher>
@@ -177,7 +179,7 @@
</part>
</software>
- <software name="armorwr"> <!-- 205 - Armor Warrior -->
+ <software name="armorwr" supported="no"> <!-- 205 - Armor Warrior -->
<description>Kǎijiǎ yǒngshì dàluàn dòu</description>
<year>2011</year>
<publisher>M&amp;D</publisher>
@@ -189,7 +191,7 @@
</part>
</software>
- <software name="logicft"> <!-- 301 - Logic Fight -->
+ <software name="logicft" supported="no"> <!-- 301 - Logic Fight -->
<description>Luójí pīn yī pīn</description>
<year>2011</year>
<publisher>M&amp;D</publisher>
@@ -201,7 +203,19 @@
</part>
</software>
- <software name="drgnbma"> <!-- 303 - Dragon Ball: The Martial Arts Conference -->
+ <software name="bigwolf" supported="no"> <!-- 302 - Pleasant goat and big big wolf's comet battle -->
+ <description>Xǐyángyáng yǔ huītàiláng-juézhàn miē xīng</description>
+ <year>2011</year>
+ <publisher>M&amp;D</publisher>
+ <info name="alt_title" value="喜羊羊与灰太狼-决战咩星"/>
+ <part name="cart" interface="monon_color_cart">
+ <dataarea name="rom" size="0x1000000">
+ <rom name="302.bin" size="0x0800000" crc="3cd4190c" sha1="3d910389e345f2b6ac38fce3571d74fc8cbcfabb" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="drgnbma" supported="no"> <!-- 303 - Dragon Ball: The Martial Arts Conference -->
<description>Lóngzhū-wǔdào dàhuì</description>
<year>2011</year>
<publisher>M&amp;D</publisher>
@@ -213,7 +227,7 @@
</part>
</software>
- <software name="lolfight"> <!-- 304 - League of Legends: The Ultimate Fight -->
+ <software name="lolfight" supported="no"> <!-- 304 - League of Legends: The Ultimate Fight -->
<description>Yīngxióng liánméng-zhōngjí gédòu</description>
<year>2011</year>
<publisher>M&amp;D</publisher>
diff --git a/hash/sega_beena_cart.xml b/hash/sega_beena_cart.xml
new file mode 100644
index 00000000000..ed5245bd853
--- /dev/null
+++ b/hash/sega_beena_cart.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
+<softwarelist name="sega_beena_cart" description="Sega Beena Cartridges">
+
+ <!-- you must byteswap ROMs to see text, due to endian? -->
+
+ <software name="fpc" supported="no">
+ <description>Fresh Pretty Cure</description> <!-- is this the correct title? -->
+ <year>2009</year>
+ <publisher>Sega</publisher>
+ <part name="cart" interface="sega_beena_cart">
+ <dataarea name="rom" size="0x800000">
+ <rom name="beena.bin" size="0x800000" crc="afa3466c" sha1="b49914f97db95f611489487f558d13d7cceb3299" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+</softwarelist>
diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua
index bea7bb2f3c5..964d45835a0 100644
--- a/scripts/target/mame/mess.lua
+++ b/scripts/target/mame/mess.lua
@@ -3025,6 +3025,7 @@ files {
MAME_DIR .. "src/mame/includes/megadriv_rad.h",
MAME_DIR .. "src/mame/drivers/segapico.cpp",
MAME_DIR .. "src/mame/drivers/sega_sawatte.cpp",
+ MAME_DIR .. "src/mame/drivers/sega_beena.cpp",
MAME_DIR .. "src/mame/drivers/segapm.cpp",
MAME_DIR .. "src/mame/drivers/sg1000.cpp",
MAME_DIR .. "src/mame/includes/sg1000.h",
diff --git a/src/mame/drivers/sega_beena.cpp b/src/mame/drivers/sega_beena.cpp
new file mode 100644
index 00000000000..21df51c0e72
--- /dev/null
+++ b/src/mame/drivers/sega_beena.cpp
@@ -0,0 +1,99 @@
+// license:BSD-3-Clause
+// copyright-holders:David Haywood
+/******************************************************************************
+
+ Sega Beena
+
+ non-video 'book' based learning system, like LeapPad etc.
+
+ unknown CPU type (inside Sega custom?)
+
+ cartridge ROM has 'edinburgh' in the header, maybe a system codename?
+ ROM is also full of OGG files containing the string 'Encoded with Speex speex-1.0.4'
+ as well as .mid files for music
+
+ TODO: component list!
+
+*******************************************************************************/
+
+#include "emu.h"
+
+#include "bus/generic/slot.h"
+#include "bus/generic/carts.h"
+
+#include "softlist.h"
+#include "speaker.h"
+
+class sega_beena_state : public driver_device
+{
+public:
+ sega_beena_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_cart(*this, "cartslot")
+ , m_cart_region(nullptr)
+ { }
+
+ void sega_beena(machine_config &config);
+
+private:
+ virtual void machine_start() override;
+ virtual void machine_reset() override;
+
+ DECLARE_DEVICE_IMAGE_LOAD_MEMBER(cart);
+
+ required_device<generic_slot_device> m_cart;
+ memory_region *m_cart_region;
+};
+
+void sega_beena_state::machine_start()
+{
+ // if there's a cart, override the standard mapping
+ if (m_cart && m_cart->exists())
+ {
+ std::string region_tag;
+ m_cart_region = memregion(region_tag.assign(m_cart->tag()).append(GENERIC_ROM_REGION_TAG).c_str());
+ }
+}
+
+void sega_beena_state::machine_reset()
+{
+}
+
+DEVICE_IMAGE_LOAD_MEMBER(sega_beena_state, cart)
+{
+ uint32_t size = m_cart->common_get_size("rom");
+
+ m_cart->rom_alloc(size, GENERIC_ROM16_WIDTH, ENDIANNESS_LITTLE);
+ m_cart->common_load_rom(m_cart->get_rom_base(), size, "rom");
+
+ return image_init_result::PASS;
+}
+
+static INPUT_PORTS_START( sega_beena )
+INPUT_PORTS_END
+
+
+void sega_beena_state::sega_beena(machine_config &config)
+{
+ // unknown CPU
+
+ // no screen
+
+ SPEAKER(config, "lspeaker").front_left();
+ SPEAKER(config, "rspeaker").front_right();
+
+ GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "sega_beena_cart");
+ m_cart->set_width(GENERIC_ROM16_WIDTH);
+ m_cart->set_device_load(device_image_load_delegate(&sega_beena_state::device_image_load_cart, this));
+
+ SOFTWARE_LIST(config, "cart_list").set_original("sega_beena_cart");
+}
+
+ROM_START( beena )
+ ROM_REGION( 0x100000, "maincpu", ROMREGION_ERASEFF )
+ // no BIOS or internal to CPU
+ROM_END
+
+
+// year, name, parent, compat, machine, input, class, init, company, fullname, flags
+CONS( 200?, beena, 0, 0, sega_beena, sega_beena, sega_beena_state, empty_init, "Sega", "Beena", MACHINE_IS_SKELETON )
diff --git a/src/mame/drivers/vii.cpp b/src/mame/drivers/vii.cpp
index 4c9bc958d5a..8e039393e9e 100644
--- a/src/mame/drivers/vii.cpp
+++ b/src/mame/drivers/vii.cpp
@@ -13,10 +13,30 @@
Justice League
Dora the Explorer
Mattel Classic Sports
+ Disney Princess (GKR)
+ Wheel of Fortune (GKR)
+ (all GameKeyReady units?)
+
+ "SunPlus QL8041C" ( known as Sunplus SPG2?? )
+ Clickstart ( see clickstart.cpp instead)
+ Wheel of Fortune 2nd Edition
- "SunPlus QL8041C" ( known as Sunplus SPG2?? ) see clickstart.cpp instead
"SunPlus PA7801" ( known as Sunplus SPG110? ) see spg110.cpp instead
+ Classic Arcade Pinball
+ EA Sports (NHL95 + Madden 95)
+
+ It is unknown if the following are close to this architecture or not (no dumps yet)
+
+ "SunPlus QU7073-P69A"
+ Mortal Kombat
+
+ "Sunplus QL8167"
+ Disney Princess (older)
+ Go Diego Go
+
+
+Disney Princess non-GKR is Sunplus QL8167.
Status:
@@ -33,12 +53,11 @@
walle:
Game seems unhappy with NVRAM, clears contents on each boot.
- rad_skat:
- Palette issues on the High Score screen.
- rad_fb2:
- sometimes when selecting QB training camp the sprites don't appear
- controls are not properly mapped
- vii:
+ 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)
+
+ vii:
When loading a cart from file manager, sometimes MAME will crash.
The "MOTOR" option in the diagnostic menu does nothing when selected.
The "SPEECH IC" option in the diagnostic menu does nothing when selected.
@@ -100,6 +119,7 @@ public:
void spg2xx_base(machine_config &config);
void spg2xx_basep(machine_config &config);
void jakks(machine_config &config);
+ void jakks_i2c(machine_config &config);
void walle(machine_config &config);
void wireless60(machine_config &config);
void rad_skat(machine_config &config);
@@ -174,14 +194,18 @@ public:
{ }
void jakks_gkr(machine_config &config);
- void jakks_gkr_1m(machine_config &config);
- void jakks_gkr_2m(machine_config &config);
+ void jakks_gkr_i2c(machine_config &config);
+ void jakks_gkr_1m_i2c(machine_config &config);
+ void jakks_gkr_2m_i2c(machine_config &config);
void jakks_gkr_nk(machine_config &config);
- void jakks_gkr_dy(machine_config &config);
- void jakks_gkr_dp(machine_config &config);
- void jakks_gkr_sw(machine_config &config);
- void jakks_gkr_nm(machine_config &config);
- void jakks_gkr_wf(machine_config &config);
+ void jakks_gkr_nk_i2c(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);
+ void jakks_gkr_nm_i2c(machine_config &config);
+ void jakks_gkr_wf_i2c(machine_config &config);
+ void jakks_gkr_mv_i2c(machine_config &config);
+ void jakks_gkr_wp(machine_config &config);
DECLARE_CUSTOM_INPUT_MEMBER(i2c_gkr_r);
@@ -349,10 +373,13 @@ WRITE16_MEMBER(jakks_gkr_state::gkr_portc_w)
}
else
{
- if (BIT(mem_mask, 1))
- m_i2cmem->write_scl(BIT(data, 1));
- if (BIT(mem_mask, 0))
- m_i2cmem->write_sda(BIT(data, 0));
+ if (m_i2cmem)
+ {
+ if (BIT(mem_mask, 1))
+ m_i2cmem->write_scl(BIT(data, 1));
+ if (BIT(mem_mask, 0))
+ m_i2cmem->write_sda(BIT(data, 0));
+ }
}
}
@@ -488,7 +515,7 @@ static INPUT_PORTS_START( walle )
PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNUSED )
INPUT_PORTS_END
-static INPUT_PORTS_START( jak_sith )
+static INPUT_PORTS_START( jak_sith_i2c )
PORT_START("P1")
PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_BUTTON2 )
PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_BUTTON1 )
@@ -506,7 +533,23 @@ static INPUT_PORTS_START( jak_sith )
PORT_BIT(0x0fff, 0x0000, IPT_AD_STICK_Y) PORT_SENSITIVITY(100) PORT_KEYDELTA(100) PORT_MINMAX(0x00,0x0fff)
INPUT_PORTS_END
-static INPUT_PORTS_START( jak_nm )
+static INPUT_PORTS_START( jak_pooh )
+ PORT_START("P1")
+ PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_BUTTON1 )
+ PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Menu / Pause")
+ PORT_BIT( 0xf7df, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("P3")
+ PORT_BIT( 0xffff, 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)
+
+ PORT_START("JOYY")
+ PORT_BIT(0x0fff, 0x0000, IPT_AD_STICK_Y) PORT_SENSITIVITY(100) PORT_KEYDELTA(100) PORT_MINMAX(0x00,0x0fff)
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( jak_nm_i2c )
PORT_START("P1")
PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
@@ -528,7 +571,7 @@ static INPUT_PORTS_START( jak_nm )
PORT_BIT(0x0fff, 0x0000, IPT_AD_STICK_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(100) PORT_MINMAX(0x00,0x0fff)
INPUT_PORTS_END
-static INPUT_PORTS_START( jak_wf )
+static INPUT_PORTS_START( jak_wf_i2c )
PORT_START("P1")
PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
@@ -564,9 +607,14 @@ static INPUT_PORTS_START( jak_gkr )
PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_BUTTON2 )
PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_BUTTON3 )
PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_BUTTON4 )
+ PORT_BIT( 0x00c0, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("Menu / Pause")
+ PORT_BIT( 0x001f, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("P3")
- PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, jakks_gkr_state,i2c_gkr_r, nullptr)
+ PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) )
+ 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 ) )
@@ -614,7 +662,78 @@ static INPUT_PORTS_START( jak_gkr )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
INPUT_PORTS_END
-static INPUT_PORTS_START( jak_disp )
+static INPUT_PORTS_START( jak_sdoo_i2c ) // GameKeyReady units had 2 main buttons, later releases reduced that to 1 button (as the internal games don't require 2 and no GameKeys were released)
+ PORT_START("P1")
+ PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
+ PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
+ PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
+ PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
+ PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_BUTTON1 )
+ PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_BUTTON2 )
+ PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_UNUSED ) // debug input, skips levels!
+ PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x00c0, IP_ACTIVE_HIGH, IPT_UNUSED ) // must be low or other inputs don't work?
+ PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Menu / Pause")
+ PORT_BIT( 0x001f, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("P3")
+ PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, jakks_gkr_state,i2c_gkr_r, nullptr) // is this correct? doesn't seem to work
+ 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 ) )
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( jak_gkr_i2c )
+ PORT_INCLUDE(jak_gkr)
+
+ PORT_MODIFY("P3")
+ PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, jakks_gkr_state,i2c_gkr_r, nullptr)
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( jak_disp_i2c )
PORT_START("P1")
PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
@@ -1154,11 +1273,14 @@ void spg2xx_game_state::jakks(machine_config &config)
m_spg->porta_in().set(FUNC(spg2xx_game_state::jakks_porta_r));
m_spg->porta_out().set(FUNC(spg2xx_game_state::jakks_porta_w));
m_spg->portb_out().set(FUNC(spg2xx_game_state::jakks_portb_w));
+}
+void spg2xx_game_state::jakks_i2c(machine_config &config)
+{
+ jakks(config);
I2CMEM(config, m_i2cmem, 0).set_data_size(0x200);
}
-
void jakks_gkr_state::machine_start()
{
spg2xx_game_state::machine_start();
@@ -1180,27 +1302,34 @@ DEVICE_IMAGE_LOAD_MEMBER(jakks_gkr_state, gamekey_cart)
void jakks_gkr_state::jakks_gkr(machine_config &config)
{
- walle(config);
+ jakks(config);
m_spg->porta_in().set(FUNC(jakks_gkr_state::jakks_porta_key_io_r));
m_spg->porta_out().set(FUNC(jakks_gkr_state::jakks_porta_key_io_w));
- //m_spg->portb_in().set_ioport("P2");
+ m_spg->portc_in().set_ioport("P3");
m_spg->portc_out().set(FUNC(jakks_gkr_state::gkr_portc_w));
- m_spg-> set_rowscroll_offset(0);
+ m_spg->set_rowscroll_offset(0);
JAKKS_GAMEKEY_SLOT(config, m_cart, 0, jakks_gamekey, nullptr);
}
-void jakks_gkr_state::jakks_gkr_1m(machine_config &config)
+void jakks_gkr_state::jakks_gkr_i2c(machine_config &config)
{
jakks_gkr(config);
+ I2CMEM(config, m_i2cmem, 0).set_data_size(0x200);
+}
+
+
+void jakks_gkr_state::jakks_gkr_1m_i2c(machine_config &config)
+{
+ jakks_gkr_i2c(config);
m_maincpu->set_addrmap(AS_PROGRAM, &jakks_gkr_state::mem_map_1m);
}
-void jakks_gkr_state::jakks_gkr_2m(machine_config &config)
+void jakks_gkr_state::jakks_gkr_2m_i2c(machine_config &config)
{
- jakks_gkr(config);
+ jakks_gkr_i2c(config);
m_maincpu->set_addrmap(AS_PROGRAM, &jakks_gkr_state::mem_map_2m);
}
@@ -1211,40 +1340,64 @@ void jakks_gkr_state::jakks_gkr_nk(machine_config &config)
SOFTWARE_LIST(config, "jakks_gamekey_nk").set_original("jakks_gamekey_nk");
}
-void jakks_gkr_state::jakks_gkr_dy(machine_config &config)
+void jakks_gkr_state::jakks_gkr_nk_i2c(machine_config &config)
{
- jakks_gkr(config);
+ jakks_gkr_i2c(config);
+ m_maincpu->set_addrmap(AS_PROGRAM, &jakks_gkr_state::mem_map_1m);
+ SOFTWARE_LIST(config, "jakks_gamekey_nk").set_original("jakks_gamekey_nk");
+}
+
+void jakks_gkr_state::jakks_gkr_dy_i2c(machine_config &config)
+{
+ jakks_gkr_i2c(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_dp(machine_config &config)
+void jakks_gkr_state::jakks_gkr_mv_i2c(machine_config &config)
{
- jakks_gkr(config);
+ jakks_gkr_i2c(config);
+ m_maincpu->set_addrmap(AS_PROGRAM, &jakks_gkr_state::mem_map_1m);
+ SOFTWARE_LIST(config, "jakks_gamekey_mv").set_original("jakks_gamekey_mv");
+}
+
+
+void jakks_gkr_state::jakks_gkr_dp_i2c(machine_config &config)
+{
+ jakks_gkr_i2c(config);
m_maincpu->set_addrmap(AS_PROGRAM, &jakks_gkr_state::mem_map_1m);
SOFTWARE_LIST(config, "jakks_gamekey_dp").set_original("jakks_gamekey_dp");
}
-void jakks_gkr_state::jakks_gkr_sw(machine_config &config)
+void jakks_gkr_state::jakks_gkr_sw_i2c(machine_config &config)
{
- jakks_gkr(config);
+ jakks_gkr_i2c(config);
m_maincpu->set_addrmap(AS_PROGRAM, &jakks_gkr_state::mem_map_1m);
m_spg->adc_in<0>().set_ioport("JOYX");
m_spg->adc_in<1>().set_ioport("JOYY");
SOFTWARE_LIST(config, "jakks_gamekey_sw").set_original("jakks_gamekey_sw");
}
-void jakks_gkr_state::jakks_gkr_nm(machine_config &config)
+void jakks_gkr_state::jakks_gkr_wp(machine_config &config)
{
jakks_gkr(config);
m_maincpu->set_addrmap(AS_PROGRAM, &jakks_gkr_state::mem_map_1m);
+ m_spg->adc_in<0>().set_ioport("JOYX");
+ m_spg->adc_in<1>().set_ioport("JOYY");
+ //SOFTWARE_LIST(config, "jakks_gamekey_wp").set_original("jakks_gamekey_wp"); // NO KEYS RELEASED
+}
+
+void jakks_gkr_state::jakks_gkr_nm_i2c(machine_config &config)
+{
+ jakks_gkr_i2c(config);
+ m_maincpu->set_addrmap(AS_PROGRAM, &jakks_gkr_state::mem_map_1m);
m_spg->adc_in<0>().set_ioport("DIALX");
SOFTWARE_LIST(config, "jakks_gamekey_nm").set_original("jakks_gamekey_nm");
}
-void jakks_gkr_state::jakks_gkr_wf(machine_config &config)
+void jakks_gkr_state::jakks_gkr_wf_i2c(machine_config &config)
{
- jakks_gkr(config);
+ jakks_gkr_i2c(config);
m_maincpu->set_addrmap(AS_PROGRAM, &jakks_gkr_state::mem_map_1m);
//m_spg->adc_in<0>().set_ioport("DIALX"); // wheel does not seem to map here
//m_spg->adc_in<1>().set_ioport("DIALY");
@@ -1263,7 +1416,7 @@ void spg2xx_game_state::lexizeus(machine_config &config)
void spg2xx_game_state::walle(machine_config &config)
{
- jakks(config);
+ jakks_i2c(config);
m_maincpu->set_addrmap(AS_PROGRAM, &spg2xx_game_state::mem_map_2m);
m_spg->portc_in().set_ioport("P3");
m_spg->portc_out().set(FUNC(spg2xx_game_state::walle_portc_w));
@@ -1354,6 +1507,28 @@ ROM_START( jak_dora )
ROM_LOAD16_WORD_SWAP( "jakksdoragkr.bin", 0x000000, 0x200000, CRC(bcaa132d) SHA1(3894b980fbc4144731b2a7a94acebb29e30de67c) )
ROM_END
+ROM_START( jak_nick )
+ ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 )
+ ROM_LOAD16_WORD_SWAP( "jakksnicktoonsgkr.bin", 0x000000, 0x200000, CRC(4dec1656) SHA1(b3002ab15e75068102f4955a3f0c52fb6d5cda56) )
+ROM_END
+
+ROM_START( jak_dorr )
+ ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 )
+ ROM_LOAD16_WORD_SWAP( "jakksdora2gkr.bin", 0x000000, 0x200000, CRC(6c09bcd9) SHA1(4bcad79658832f319d16b4f63257e127f6862d79) )
+ROM_END
+
+
+ROM_START( jak_spdm )
+ ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 )
+ ROM_LOAD16_WORD_SWAP( "jakksspidermangkr.bin", 0x000000, 0x200000, CRC(1b2ee700) SHA1(30ea69c489e1238b004f473f972b682e35573138) )
+ROM_END
+
+ROM_START( jak_pooh )
+ ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 )
+ ROM_LOAD16_WORD_SWAP( "jakkspoohgkr.bin", 0x000000, 0x200000, CRC(0d97df55) SHA1(f108621a83c7b2263dd1531d82311627c3a02002) )
+ROM_END
+
+
ROM_START( jak_wof )
ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD16_WORD_SWAP( "jakkswheeloffortunegkr.bin", 0x000000, 0x200000, CRC(6a879620) SHA1(95478764a61741569041c2299528f6464651d593) )
@@ -1447,6 +1622,11 @@ ROM_START( mattelcs )
ROM_LOAD16_WORD_SWAP( "mattelclassicsports.bin", 0x000000, 0x100000, CRC(e633e7ad) SHA1(bf3e325a930cf645a7e32195939f3c79c6d35dac) )
ROM_END
+ROM_START( dreamlif )
+ ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 )
+ ROM_LOAD16_WORD_SWAP( "dreamlife.bin", 0x000000, 0x800000, CRC(632e0237) SHA1(a8586e8a626d75cf7782f13cfd9f1b938af23d56) )
+ROM_END
+
/*
Wireless Air 60
(info provided with dump)
@@ -1627,29 +1807,29 @@ 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.
-CONS( 2005, jak_wwe, 0, 0, jakks_gkr_1m, jak_gkr, 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, jak_gkr, 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, jak_gkr, 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_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) (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)
+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_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_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)
+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_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, 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( 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.
+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
+// 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)
-// Nicktoons NK (3 keys available) (same keys as Dora the Explorer)
// SpongeBob SquarePants: The Fry Cook Games NK (3 keys available) ^^
-// Spider-Man MV (1 key available)
// no keys released for the following, some were in development but cancelled
// Capcom 3-in-1 CC (no game-keys released)
// Care Bears CB (no game-keys released)
-// Winnie the Pooh WP (no game-keys released)
// Radica TV games
CONS( 2006, rad_skat, 0, 0, rad_skat, rad_skat, spg2xx_game_state, init_crc, "Radica", "Play TV Skateboarder (NTSC)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
@@ -1661,6 +1841,9 @@ CONS( 2007, rad_fb2, 0, 0, rad_skat, rad_fb2, spg2xx_game_state, ini
// Mattel games
CONS( 2005, mattelcs, 0, 0, rad_skat, mattelcs, spg2xx_game_state, empty_init, "Mattel", "Mattel Classic Sports", MACHINE_IMPERFECT_SOUND )
+// Hasbro games
+CONS( 2007, dreamlif, 0, 0, rad_skat, rad_crik, spg2xx_game_state, empty_init, "Hasbro ", "Dream Life", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
+
// 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, init_zone40, "Jungle Soft / Ultimate Products (HK) Ltd", "Zone 40", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/xavix.cpp b/src/mame/drivers/xavix.cpp
index 9548702a93d..49c159a94d2 100644
--- a/src/mame/drivers/xavix.cpp
+++ b/src/mame/drivers/xavix.cpp
@@ -1514,6 +1514,17 @@ ROM_START( epo_epp )
ROM_LOAD("excitepingpong.bin", 0x000000, 0x100000, CRC(1fdb9cbd) SHA1(8ed0c1f6d2708ab6e79f0b9553e587c6446e8338) )
ROM_END
+ROM_START( epo_epp3 )
+ ROM_REGION(0x200000, "bios", ROMREGION_ERASE00)
+ ROM_LOAD("excitepingpong3.bin", 0x000000, 0x200000, CRC(a2ee8bff) SHA1(6e16dbaac9680e1f311c08e3f573d0cf8708b446))
+ROM_END
+
+ROM_START( rad_socr )
+ ROM_REGION(0x800000, "bios", ROMREGION_ERASE00)
+ ROM_LOAD("soccer.u5", 0x000000, 0x100000, CRC(0564a766) SHA1(bded4f2e0d059731164c35de7df62ef411402901) )
+ ROM_LOAD("soccer.u4", 0x400000, 0x200000, CRC(e0e2c488) SHA1(907511d945dec51782af268a94b372dfeb7517c5) )
+ROM_END
+
ROM_START( epo_guru )
ROM_REGION(0x400000, "bios", ROMREGION_ERASE00)
ROM_LOAD("gururinworld.bin", 0x000000, 0x400000, CRC(e5ae4523) SHA1(0e39ef8f94203d34e49422081667805f50a339a1) )
@@ -1539,6 +1550,8 @@ ROM_START( ltv_tam )
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.
@@ -1665,10 +1678,13 @@ CONS( 2006, rad_sbw, 0, 0, xavix, rad_snow, xavix_state,
CONS( 2002, rad_bdp, 0, 0, xavix, rad_bdp, xavix_state, init_xavix, "Radica / Mattel / SSD Company LTD", "Barbie Dance Party", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+CONS( 2002, rad_socr, 0, 0, xavix, epo_epp, xavix_state, init_xavix, "Radica / Epoch / SSD Company LTD", "Play TV Soccer", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
CONS( 2000, epo_epp, 0, 0, xavix, epo_epp, xavix_state, init_xavix, "Epoch / SSD Company LTD", "Excite Ping Pong (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
// Excite Ping Pong 2 is from 2003, and there's a 3rd game from 2006 also
+CONS( 2006, epo_epp3, 0, 0, xavix, epo_epp, xavix_state, init_xavix, "Epoch / SSD Company LTD", "Challenge Ai-chan! Excite Ping Pong (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
+
CONS( 200?, epo_efdx, 0, 0, xavix_i2c_24c08, epo_efdx, xavix_i2c_state, init_epo_efdx, "Epoch / SSD Company LTD", "Excite Fishing DX (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
CONS( 2005, epo_guru, 0, 0, xavix, xavix, xavix_state, init_xavix, "Epoch / SSD Company LTD", "Gururin World (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
@@ -1710,6 +1726,8 @@ CONS( 2006, ltv_tam, 0, 0, xavix_i2c_24lc04, ltv_tam,xavix_i2c_ltv_
these use the SSD 2000 NEC 85605-621 type CPU
+ XavixPort Golf is "SSD 2003 SuperXaviX MXIC 2003 3009" (not dumped yet, but actually marked as SuperXaviX unlike the others!)
+
This CPU type adds extra opcodes that don't appear to be present in the 97/98 types
It does not appear to support the bitmap modes or 16-bit ROMs found in the 2002 type
*/
@@ -1719,6 +1737,12 @@ ROM_START( epo_sdb )
ROM_LOAD("superdashball.bin", 0x000000, 0x400000, CRC(a004a764) SHA1(47a96822d4d7d6a0f6be5cd729c3747dbab65979) )
ROM_END
+ROM_START( epo_ebox )
+ ROM_REGION(0x400000, "bios", ROMREGION_ERASE00)
+ ROM_LOAD("exciteboxing.bin", 0x000000, 0x400000, CRC(e25ae4f5) SHA1(7f7b613f0ab8f43f5cad0d13de538921e77cae9c) )
+ROM_END
+
+
ROM_START( ttv_sw )
ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 )
ROM_LOAD( "jedi.bin", 0x000000, 0x800000, CRC(51cae5fd) SHA1(1ed8d556f31b4182259ca8c766d60c824d8d9744) )
@@ -1739,6 +1763,12 @@ ROM_START( drgqst )
ROM_LOAD( "dragonquest.bin", 0x000000, 0x800000, CRC(3d24413f) SHA1(1677e81cedcf349de7bf091a232dc82c6424efba) )
ROM_END
+ROM_START( ban_onep )
+ ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00)
+ ROM_LOAD("onepiece.bin", 0x000000, 0x800000, CRC(c5cb5a5f) SHA1(db85f6cc48d77c5a4967b9b8e2999167e3dfc8c8) )
+ROM_END
+
+CONS( 2002, epo_ebox, 0, 0, xavix2000_nv, epo_epp, xavix_state, init_xavix, "Epoch / SSD Company LTD", "Excite Boxing (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // doesn't use XaviX2000 extra opcodes, but had that type of CPU
CONS( 2004, epo_sdb, 0, 0, xavix2000_nv, epo_sdb, xavix_state, init_xavix, "Epoch / SSD Company LTD", "Super Dash Ball (Japan)", MACHINE_IMPERFECT_SOUND )
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 )
@@ -1746,6 +1776,9 @@ CONS( 2005, ttv_lotr, 0, 0, xavix2000_i2c_24c02, ttv_lotr, xavix_i2c_lotr_sta
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( 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)
+CONS( 2004, ban_onep, 0, 0, xavix2000_i2c_24c04, ttv_lotr, xavix_i2c_lotr_state, init_xavix, "Bandai / SSD Company LTD", "One Piece Punch Battle (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
+
/* SuperXaviX (XaviX 2002 type CPU) hardware titles (3rd XaviX generation?)
these use the SSD 2002 NEC 85054-611 type CPU
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 0bf267e5487..c74bcb43f17 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -34203,6 +34203,9 @@ wg3dh // (c) 1996 Atari Games
@source:seattlecmp.cpp
scp300f // Seattle SCP-300F
+@source:sega_beena.cpp
+beena //
+
@source:sega_sawatte.cpp
sawatte //
@@ -38673,6 +38676,7 @@ jak_wwe //
jak_fan4 //
jak_just //
jak_dora //
+jak_dorr //
jak_disf //
jak_disp //
jak_sith //
@@ -38680,6 +38684,9 @@ jak_sdoo //
jak_dbz //
jak_mpac //
jak_wof //
+jak_spdm //
+jak_pooh //
+jak_nick //
lexizeus // Lexibook
vii // KenSingTon / Jungle Soft / Siatronics Vii
wrlshunt // Wireless: Hunting Video Game System
@@ -38693,6 +38700,7 @@ rad_sktv //
rad_crik //
rad_fb2 //
mattelcs //
+dreamlif //
@source:vsmile.cpp
vsmile //
@@ -39843,8 +39851,11 @@ rad_snow //
rad_snowp //
rad_madf //
rad_fb //
+rad_socr //
epo_epp //
+epo_epp3 //
epo_efdx //
+epo_ebox //
epo_sdb //
epo_guru //
epo_dmon //
@@ -39855,6 +39866,7 @@ rad_sbw //
rad_bdp //
has_wamg //
ltv_tam //
+ban_onep //
ekara //
ekaraa //
ekaraj //
diff --git a/src/mame/mess.flt b/src/mame/mess.flt
index 53e93e6ce14..88927ee51ea 100644
--- a/src/mame/mess.flt
+++ b/src/mame/mess.flt
@@ -671,6 +671,7 @@ sdk80.cpp
sdk85.cpp
sdk86.cpp
seattlecmp.cpp
+sega_beena.cpp
sega_sawatte.cpp
segapico.cpp
segapm.cpp
diff --git a/src/mame/video/xavix.cpp b/src/mame/video/xavix.cpp
index 751a9f4f48e..289e752a21b 100644
--- a/src/mame/video/xavix.cpp
+++ b/src/mame/video/xavix.cpp
@@ -372,8 +372,8 @@ void xavix_state::draw_tilemap_line(screen_device &screen, bitmap_ind16 &bitmap,
int scrollx = tileregs[0x4];
int basereg;
- int flipx = 0;
- int flipy = 0;
+ int flipx = (tileregs[0x03]&0x40)>>6;
+ int flipy = (tileregs[0x03]&0x80)>>7;
int gfxbase;
// tile 0 is always skipped, doesn't even point to valid data packets in alt mode