summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author David Haywood <mamehaze@gmail.com>2018-11-23 14:38:58 +0000
committer R. Belmont <rb6502@users.noreply.github.com>2018-11-23 09:38:58 -0500
commite1cf01ee591a546d56601d89cf9cfaab7ca6d01a (patch)
tree28dbd30a19b3ea28505a63b42cd9c7e618cb6a84
parentc0f8485afba73eaadbae0bac54b1a43f663a223a (diff)
XaviX - cheap hack to get epo_efdx to show a title screen + dumps of the remaining US e-kara carts (#4322)
* cheap hack to get epo_efdx to show a title screen * ekara.xml: added e-kara US volumes 4,5,6,7 [Team Europe + contributors] ekara:us_vol4 e-kara US Volume 4 (US-E004) ekara:us_vol5 e-kara US Volume 5 (US-E005) ekara:us_vol6 e-kara US Volume 6 (US-E006) ekara:us_vol7 e-kara US Volume 7 (US-E007) (and verified starter,1,2,3) * shows 2002 * notes (nw)
-rw-r--r--hash/ekara.xml102
-rw-r--r--src/mame/audio/xavix.cpp2
-rw-r--r--src/mame/drivers/xavix.cpp18
-rw-r--r--src/mame/includes/xavix.h18
-rw-r--r--src/mame/machine/xavix.cpp7
5 files changed, 129 insertions, 18 deletions
diff --git a/hash/ekara.xml b/hash/ekara.xml
index 8cd9c5e4f55..486613fe345 100644
--- a/hash/ekara.xml
+++ b/hash/ekara.xml
@@ -262,7 +262,7 @@
-->
<software name="us_vol1">
<description>e-kara US Volume 1 (US-E001)</description>
- <year>2000</year>
+ <year>2001</year> <!-- 2000 shown on screen, 2001 on cart -->
<publisher>Takara</publisher>
<part name="cart" interface="ekara_cart">
<dataarea name="rom" size="0x100000">
@@ -285,7 +285,7 @@
-->
<software name="us_vol2">
<description>e-kara US Volume 2 (US-E002)</description>
- <year>2000</year>
+ <year>2001</year> <!-- 2000 shown on screen, 2001 on cart -->
<publisher>Takara</publisher>
<part name="cart" interface="ekara_cart">
<dataarea name="rom" size="0x100000">
@@ -308,7 +308,7 @@
-->
<software name="us_vol3">
<description>e-kara US Volume 3 (US-E003)</description>
- <year>2000</year>
+ <year>2001</year> <!-- 2000 shown on screen, 2001 on cart -->
<publisher>Takara</publisher>
<part name="cart" interface="ekara_cart">
<dataarea name="rom" size="0x100000">
@@ -317,6 +317,98 @@
</part>
</software>
+ <!-- e-kara US Volume 4 (US-E004)
+ 1. "Can't Buy Me Love" The Beatles
+ 2. "A Hard Day's Night" The Beatles
+ 3. "Ticket To Ride" The Beatles
+ 4. "Yesterday" The Beatles
+ 5. "Help" The Beatles
+ 6. "Michelle" The Beatles
+ 7. "Yellow Submarine" The Beatles
+ 8. "All My Loving" The Beatles
+ 9. "Drive My Car" The Beatles
+ 10. "We Can Work It Out" The Beatles
+ -->
+ <software name="us_vol4">
+ <description>e-kara US Volume 4 (US-E004)</description>
+ <year>2001</year> <!-- 2000 shown on screen, 2001 on cart -->
+ <publisher>Takara</publisher>
+ <part name="cart" interface="ekara_cart">
+ <dataarea name="rom" size="0x100000">
+ <rom name="us-e004.u1" size="0x100000" crc="790822e9" sha1="cc5806fdc79f777a42980d6825c92837b07fd80d" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <!-- e-kara US Volume 5 (US-E005)
+ 1. "Lucy In the Sky With Diamonds" The Beatles
+ 2. "All You Need Is Love" The Beatles
+ 3. "Hello Goodbye" The Beatles
+ 4. "Hey Jude" The Beatles
+ 5. "Ob-La-Di, Ob-La-Da" The Beatles
+ 6. "Get Back" The Beatles
+ 7. "Come Together" The Beatles
+ 8. "Oh! Darling" The Beatles
+ 9. "Let It Be" The Beatles
+ 10. "The Long And Winding Road" The Beatles
+ -->
+ <software name="us_vol5">
+ <description>e-kara US Volume 5 (US-E005)</description>
+ <year>2001</year> <!-- 2000 shown on screen, 2001 on cart -->
+ <publisher>Takara</publisher>
+ <part name="cart" interface="ekara_cart">
+ <dataarea name="rom" size="0x100000">
+ <rom name="us-e005.u1" size="0x100000" crc="edf1e4ce" sha1="7e5e3116f62897ae023c84842036f24b19c926cc" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <!-- e-kara US Volume 6 (US-E006)
+ 1. "Survivor (Album Version)" Destiny's Child
+ 2. "Jumpin', Jumpin'" Destiny's Child
+ 3. "I Turn To You" Christina Aguilera
+ 4. "As Long As You're Loving Me" Vitamin C
+ 5. "Body II Body" Samantha Mumba
+ 6. "Love Don't Cost a Thing" Jennifer Lopez
+ 7. "Again" Janet Jackson
+ 8. "If I Fall You're Going Down With Me" Dixie Chicks
+ 9. "Can't Fight The Moonlight" LeAnn Rimes
+ 10. "American Pie (Album Version)" Madonna
+ -->
+ <software name="us_vol6">
+ <description>e-kara US Volume 6 (US-E006)</description>
+ <year>2001</year> <!-- 2000 shown on screen, 2001 on cart -->
+ <publisher>Takara</publisher>
+ <part name="cart" interface="ekara_cart">
+ <dataarea name="rom" size="0x100000">
+ <rom name="us-e006.u1" size="0x100000" crc="e9aaca2f" sha1="983086f068ee38b970c01d2304e757148474aee3" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <!-- e-kara US Volume 7 (US-E007)
+ 1. "Show Me The Meaning of Being Lonely" Backstreet Boys
+ 2. "Lucky" Britney Spears
+ 3. "When It's Over" Sugar Ray
+ 4. "Bootylicious" Destiny's Child
+ 5. "Nobody Wants to be Lonely" Ricky Martin & Christina Aguilera
+ 6. "Breathe" Faith Hill
+ 7. "It's Gonna Be Me" *N Sync
+ 8. "Don't Think I'm Not" Kandi
+ 9. "Lady Marmalade" Christina Aguilera, Lik'Kim, Mya & Pink
+ 10. "God Bless The U.S.A." Lee Greenwood
+ -->
+ <software name="us_vol7">
+ <description>e-kara US Volume 7 (US-E007)</description>
+ <year>2002</year> <!-- 2002 shown on screen, 2001 on cart -->
+ <publisher>Takara</publisher>
+ <part name="cart" interface="ekara_cart">
+ <dataarea name="rom" size="0x100000">
+ <rom name="us-e007.u1" size="0x100000" crc="b7f5ca53" sha1="84af6d96512de96dbab03c236b3416b2e604f753" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
<!-- e-kara US Volume 8 'No Boys Allowed' (US-E008)
1. "I'm A Slave 4 U" Britney Spears
2. "Stronger" Britney Spears
@@ -331,7 +423,7 @@
-->
<software name="us_vol8">
<description>e-kara US Volume 8 'No Boys Allowed' (US-E008)</description>
- <year>2002</year>
+ <year>2002</year> <!-- 2002 shown on screen, 2001 on cart -->
<publisher>Takara</publisher>
<part name="cart" interface="ekara_cart">
<dataarea name="rom" size="0x100000">
@@ -354,7 +446,7 @@
-->
<software name="us_vol9">
<description>e-kara US Volume 9 'No Boys Allowed' (US-E009)</description>
- <year>2002</year>
+ <year>2002</year> <!-- 2002 shown on screen, 2001 on cart -->
<publisher>Takara</publisher>
<part name="cart" interface="ekara_cart">
<dataarea name="rom" size="0x100000">
diff --git a/src/mame/audio/xavix.cpp b/src/mame/audio/xavix.cpp
index 2dd8ecae8d8..481ecf65741 100644
--- a/src/mame/audio/xavix.cpp
+++ b/src/mame/audio/xavix.cpp
@@ -4,7 +4,7 @@
#include "emu.h"
#include "includes/xavix.h"
-#define VERBOSE 1
+// #define VERBOSE 1
#include "logmacro.h"
// 16 stereo voices?
diff --git a/src/mame/drivers/xavix.cpp b/src/mame/drivers/xavix.cpp
index 4be27cc6d78..3f641e81cdb 100644
--- a/src/mame/drivers/xavix.cpp
+++ b/src/mame/drivers/xavix.cpp
@@ -1076,13 +1076,13 @@ ROM_END
/* XaviX hardware titles */
-CONS( 2006, taitons1, 0, 0, xavix_i2c_24lc04, namcons2, xavix_i2c_state, init_xavix, "Bandai / SSD Company LTD / Taito", "Let's! TV Play Classic - Taito Nostalgia 1", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND )
+CONS( 2006, taitons1, 0, 0, xavix_i2c_24lc04, namcons2, xavix_i2c_state, init_xavix, "Bandai / SSD Company LTD / Taito", "Let's! TV Play Classic - Taito Nostalgia 1 (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND )
-CONS( 2006, taitons2, 0, 0, xavix_i2c_24lc04, namcons2, xavix_i2c_state, init_xavix, "Bandai / SSD Company LTD / Taito", "Let's! TV Play Classic - Taito Nostalgia 2", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND )
+CONS( 2006, taitons2, 0, 0, xavix_i2c_24lc04, namcons2, xavix_i2c_state, init_xavix, "Bandai / SSD Company LTD / Taito", "Let's! TV Play Classic - Taito Nostalgia 2 (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND )
-CONS( 2006, namcons1, 0, 0, xavix_i2c_24lc04, namcons2, xavix_i2c_state, init_xavix, "Bandai / SSD Company LTD / Namco", "Let's! TV Play Classic - Namco Nostalgia 1", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND )
+CONS( 2006, namcons1, 0, 0, xavix_i2c_24lc04, namcons2, xavix_i2c_state, init_xavix, "Bandai / SSD Company LTD / Namco", "Let's! TV Play Classic - Namco Nostalgia 1 (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND )
-CONS( 2006, namcons2, 0, 0, xavix_i2c_24lc04, namcons2, xavix_i2c_state, init_xavix, "Bandai / SSD Company LTD / Namco", "Let's! TV Play Classic - Namco Nostalgia 2", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND )
+CONS( 2006, namcons2, 0, 0, xavix_i2c_24lc04, namcons2, xavix_i2c_state, init_xavix, "Bandai / SSD Company LTD / Namco", "Let's! TV Play Classic - Namco Nostalgia 2 (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND )
CONS( 2000, rad_ping, 0, 0, xavix, rad_ping, xavix_state, init_xavix, "Radica / SSD Company LTD / Simmer Technology", "Play TV Ping Pong (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND ) // "Simmer Technology" is also known as "Hummer Technology Co., Ltd"
CONS( 2000, rad_pingp, rad_ping, 0, xavixp, rad_pingp,xavix_state, init_xavix, "Radica / SSD Company LTD / Simmer Technology", "ConnecTV Table Tennis (PAL)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND )
@@ -1096,7 +1096,7 @@ CONS( 200?, rad_boxp, rad_box, 0, xavixp, rad_boxp, xavix_state, init_xavix
CONS( 200?, rad_crdn, 0, 0, xavix, rad_crdn, xavix_state, init_xavix, "Radica / SSD Company LTD", "Play TV Card Night (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND)
CONS( 200?, rad_crdnp, rad_crdn, 0, xavixp, rad_crdnp,xavix_state, init_xavix, "Radica / SSD Company LTD", "ConnecTV Card Night (PAL)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND)
-CONS( 2002, rad_bb2, 0, 0, xavix, rad_bb2, xavix_state, init_xavix, "Radica / SSD Company LTD", "Play TV Baseball 2", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND ) // contains string "Radica RBB2 V1.0"
+CONS( 2002, rad_bb2, 0, 0, xavix, rad_bb2, xavix_state, init_xavix, "Radica / SSD Company LTD", "Play TV Baseball 2 (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND ) // contains string "Radica RBB2 V1.0"
CONS( 2001, rad_bass, 0, 0, xavix, rad_bass, xavix_state, init_xavix, "Radica / SSD Company LTD", "Play TV Bass Fishin' (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND)
CONS( 2001, rad_bassp, rad_bass, 0, xavixp, rad_bassp,xavix_state, init_xavix, "Radica / SSD Company LTD", "ConnecTV Bass Fishin' (PAL)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND)
@@ -1109,13 +1109,13 @@ CONS( 2003, rad_madf, 0, 0, xavix_madfb, rad_fb, xavix_madfb_stat
CONS( 200?, rad_fb, 0, 0, xavix_madfb, rad_fb, xavix_madfb_state, init_xavix, "Radica / SSD Company LTD", "Play TV Football (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND) // USA only release? doesn't change logo for PAL.
-CONS( 200?, rad_rh, 0, 0, xavix, rad_rh, xavix_state, init_xavix, "Radioa / Fisher-Price / SSD Company LTD", "Play TV Rescue Heroes", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND)
+CONS( 200?, rad_rh, 0, 0, xavix, rad_rh, xavix_state, init_xavix, "Radioa / Fisher-Price / SSD Company LTD", "Play TV Rescue Heroes (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND)
-CONS( 200?, epo_efdx, 0, 0, xavix_i2c_24c08, xavix, xavix_i2c_state, init_xavix, "Epoch / SSD Company LTD", "Excite Fishing DX (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND)
+CONS( 200?, epo_efdx, 0, 0, xavix_i2c_24c08, xavix, xavix_i2c_state, init_epo_efdx, "Epoch / SSD Company LTD", "Excite Fishing DX (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND)
-CONS( 200?, has_wamg, 0, 0, xavix, xavix, xavix_state, init_xavix, "Hasbro / Milton Bradley / SSD Company LTD", "TV Wild Adventure Mini Golf", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND)
+CONS( 200?, has_wamg, 0, 0, xavix, xavix, xavix_state, init_xavix, "Hasbro / Milton Bradley / SSD Company LTD", "TV Wild Adventure Mini Golf (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND)
-CONS( 200?, ekara, 0, 0, xavix_ekara, ekara, xavix_ekara_state, init_xavix, "Takara / Hasbro / SSD Company LTD", "e-kara (US?)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND|MACHINE_IS_BIOS_ROOT)
+CONS( 200?, ekara, 0, 0, xavix_ekara, ekara, xavix_ekara_state, init_xavix, "Takara / Hasbro / SSD Company LTD", "e-kara (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND|MACHINE_IS_BIOS_ROOT)
/* SuperXaviX hardware titles */
diff --git a/src/mame/includes/xavix.h b/src/mame/includes/xavix.h
index fd112a95455..b9272738331 100644
--- a/src/mame/includes/xavix.h
+++ b/src/mame/includes/xavix.h
@@ -68,8 +68,8 @@ public:
: driver_device(mconfig, type, tag),
m_in0(*this, "IN0"),
m_in1(*this, "IN1"),
- m_sprite_xhigh_ignore_hack(true),
m_maincpu(*this, "maincpu"),
+ m_sprite_xhigh_ignore_hack(true),
m_screen(*this, "screen"),
m_mainram(*this, "mainram"),
m_fragment_sprite(*this, "fragment_sprite"),
@@ -113,6 +113,7 @@ protected:
virtual void write_io1(uint8_t data, uint8_t direction);
required_ioport m_in0;
required_ioport m_in1;
+ required_device<xavix_device> m_maincpu;
private:
@@ -405,7 +406,6 @@ private:
DECLARE_READ8_MEMBER(mult_param_r);
DECLARE_WRITE8_MEMBER(mult_param_w);
- required_device<xavix_device> m_maincpu;
required_device<screen_device> m_screen;
void update_irqs();
@@ -514,7 +514,9 @@ class xavix_i2c_state : public xavix_state
public:
xavix_i2c_state(const machine_config &mconfig, device_type type, const char *tag)
: xavix_state(mconfig, type, tag),
- m_i2cmem(*this, "i2cmem")
+ m_i2cmem(*this, "i2cmem"),
+ hackaddress1(-1),
+ hackaddress2(-1)
{ }
void xavix_i2c_24lc04(machine_config &config);
@@ -523,11 +525,21 @@ public:
void xavix2000_i2c_24c04(machine_config &config);
void xavix2000_i2c_24c02(machine_config &config);
+ void init_epo_efdx()
+ {
+ init_xavix();
+ hackaddress1 = 0x958a;
+ hackaddress2 = 0x8524;
+ }
protected:
virtual uint8_t read_io1(uint8_t direction) override;
virtual void write_io1(uint8_t data, uint8_t direction) override;
required_device<i2cmem_device> m_i2cmem;
+
+private:
+ int hackaddress1;
+ int hackaddress2;
};
class xavix_i2c_lotr_state : public xavix_i2c_state
diff --git a/src/mame/machine/xavix.cpp b/src/mame/machine/xavix.cpp
index a454cc955c2..c45e8c89574 100644
--- a/src/mame/machine/xavix.cpp
+++ b/src/mame/machine/xavix.cpp
@@ -410,6 +410,13 @@ uint8_t xavix_i2c_state::read_io1(uint8_t direction)
void xavix_i2c_state::write_io1(uint8_t data, uint8_t direction)
{
+ // ignore these writes so that epo_edfx can send read requests to the ee-prom and doesn't just report an error
+ // TODO: check if these writes shouldn't be happening (the first is a direct write, the 2nd is from a port direction change)
+ // or if the i2cmem code is oversensitive, or if something else is missing to reset the state
+ if (hackaddress1 != -1)
+ if ((m_maincpu->pc() == hackaddress1) || (m_maincpu->pc() == hackaddress2))
+ return;
+
if (direction & 0x08)
{
m_i2cmem->write_sda((data & 0x08) >> 3);