new WORKING machines (Jumping Popira) (#4752)

* new NOT WORKING machines
---
Jumping Popira [Sean Riddle, Peter Wilhelmsen, ShouTime, David Haywood]

(seeprom? troubles, i've documented a hack to bypass them right now, but then it boots in an invalid state thinking you've cleared all songs with some corruption due to that)

* new NOT WORKING machines
---
Fun 2 Learn Smart Fit Park [Sean Riddle, Clawgrip]

* (nw)

* promote jumping popira (nw)

* preinit for now (nw)
This commit is contained in:
David Haywood 2019-03-11 20:20:03 +00:00 committed by ajrhacker
parent a4d666aa08
commit 1c8b595998
6 changed files with 120 additions and 40 deletions

View File

@ -23,7 +23,7 @@
<year>2004</year>
<publisher>Takara</publisher>
<part name="cart" interface="ekara_cart">
<!--<feature name="slot" value="rom_24lc04"/>-->
<feature name="slot" value="rom_24lc04"/>
<dataarea name="rom" size="0x200000">
<rom name="jp1.bin" size="0x200000" crc="106544c5" sha1="1bff363ce13c0eaf344a8f36ed004c78e0ddd007" offset="0" />
</dataarea>
@ -35,7 +35,7 @@
<year>2004</year>
<publisher>Takara</publisher>
<part name="cart" interface="ekara_cart">
<!--<feature name="slot" value="rom_24lc04"/>-->
<feature name="slot" value="rom_24lc04"/>
<dataarea name="rom" size="0x200000">
<rom name="jp2.bin" size="0x200000" crc="f66d8ee8" sha1="3624c89197b1579fc60d5c40ff30bca248428a6c" offset="0" />
</dataarea>

View File

@ -9,49 +9,67 @@
die markings show
"SunPlus QL8041" ( also known as Sunplus SPG240 & PAC300 )
(all GameKeyReady units?)
Disney Princess (GKR)
Wheel of Fortune (GKR)
JAKKS WWE (GKR)
Fantastic 4 (GKR)
Justice League (GKR)
Dora the Explorer Nursery Rhyme (GKR)
Dora the Explorer Play Park (GKR)
Spiderman 5-in-1 (GKR)
etc.
(all GameKeyReady units?)
Disney Princess (GKR)
Wheel of Fortune (GKR)
JAKKS WWE (GKR)
Fantastic 4 (GKR)
Justice League (GKR)
Dora the Explorer Nursery Rhyme (GKR)
Dora the Explorer Play Park (GKR)
Spiderman 5-in-1 (GKR)
etc.
(other non GKR JAKKS games)
X-Men (Wolverine pad)
Avatar: The Last Airbender
(other non GKR JAKKS games)
X-Men (Wolverine pad)
Avatar: The Last Airbender
(other games)
Mattel Classic Sports
(other games)
Mattel Classic Sports
"SunPlus QL8041C" ( known as Sunplus SPG2??, seems to be compatible with above, so probably just a chip revision )
Clickstart ( see clickstart.cpp instead)
Wheel of Fortune 2nd Edition
Spider-man - Villain Roundup
Clickstart ( see clickstart.cpp instead)
Wheel of Fortune 2nd Edition
Spider-man - Villain Roundup
"SunPlus PA7801" ( known as Sunplus SPG110? ) see spg110.cpp instead
Classic Arcade Pinball
EA Sports (NHL95 + Madden 95)
Spiderman 5-in-1 (original release)
"SunPlus QU7074-P69A"
The Batman
---
It is unknown if the following are close to this architecture or not (no dumps yet)
"SunPlus QU7073-P69A"
Mortal Kombat
Mortal Kombat
"Sunplus PU7799-P680?" (difficult to read)
Mission Paintball
Mission Paintball
"Sunplus QL8167"
Disney Princess (newer?)
Go Diego Go
Shrek - Over the Hedge (this unit shows a GameKey Unlock More Games' on startup, but has no port, not even on the internal PCB)
Marvel Heroes (Spider-man)
Spiderman 3 (Movie - black)
Disney Princess (newer?)
Go Diego Go
Shrek - Over the Hedge (this unit shows a GameKey Unlock More Games' on startup, but has no port, not even on the internal PCB)
Marvel Heroes (Spider-man)
Spiderman 3 (Movie - black)
---
These are definitely different
"SunPlus PA7801" ( known as Sunplus SPG110? ) see spg110.cpp instead
Classic Arcade Pinball
EA Sports (NHL95 + Madden 95)
Spiderman 5-in-1 (original release)
"GCM394" (this is clearly newer, has extra opcodes, different internal map etc.)
Smart Fit Park
Status:
@ -2244,6 +2262,13 @@ ROM_START( dreamlif )
ROM_LOAD16_WORD_SWAP( "dreamlife.bin", 0x000000, 0x800000, CRC(632e0237) SHA1(a8586e8a626d75cf7782f13cfd9f1b938af23d56) )
ROM_END
ROM_START( smartfp )
ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD16_WORD_SWAP( "smartfitpark.bin", 0x000000, 0x800000, CRC(ada84507) SHA1(a3a80bf71fae62ebcbf939166a51d29c24504428) )
ROM_END
ROM_START( icanguit )
ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 )
// no internal ROM, requires a cartridge
@ -2474,8 +2499,10 @@ CONS( 2005, mattelcs, 0, 0, rad_skat, mattelcs, spg2xx_game_state, emp
// 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 )
CONS( 2007, icanguit, 0, 0, icanguit, icanguit, icanguit_state, empty_init, "Mattel / Fisher-Price", "I Can Play Guitar", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
CONS( 2007, icanpian, 0, 0, icanpian, icanpian, icanguit_state, empty_init, "Mattel / Fisher-Price", "I Can Play Piano", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
CONS( 2007, icanguit, 0, 0, icanguit, icanguit, icanguit_state, empty_init, "Fisher-Price", "I Can Play Guitar", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
CONS( 2007, icanpian, 0, 0, icanpian, icanpian, icanguit_state, empty_init, "Fisher-Price", "I Can Play Piano", 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
@ -2487,6 +2514,9 @@ CONS( 200?, lexizeus, 0, 0, lexizeus, lexizeus, spg2xx_game_stat
// 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 )
// extended opcodes different internal map?
CONS( 2009, smartfp, 0, 0, non_spg_base, wirels60, spg2xx_game_state, empty_init, "Fisher-Price", "Fun 2 Learn Smart Fit Park", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
// Fun 2 Learn 3-in-1 SMART SPORTS ?
// NAND dumps w/ internal bootstrap. Almost certainly do not fit in this driver, as the SPG2xx can only address up to 4Mwords. These are 'GeneralPlus' instead?
CONS( 2010, wlsair60, 0, 0, non_spg_base, wirels60, spg2xx_game_state, empty_init, "Jungle Soft / Kids Station Toys Inc", "Wireless Air 60", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )

View File

@ -634,6 +634,21 @@ static INPUT_PORTS_START( taikodp )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, xavix_i2c_cart_state,i2c_r, nullptr)
INPUT_PORTS_END
static INPUT_PORTS_START( jpopira )
PORT_INCLUDE(xavix)
PORT_MODIFY("IN0")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Pad 1")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Pad 2")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Pad 3")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Pad 4")
PORT_MODIFY("IN1")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, xavix_i2c_cart_state,i2c_r, nullptr)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_POWER_OFF ) PORT_NAME("Power Switch") // pressing this will turn the game off.
INPUT_PORTS_END
static INPUT_PORTS_START( xavixp )
PORT_INCLUDE(xavix)
@ -1559,8 +1574,18 @@ void xavix_i2c_cart_state::xavix_i2c_taiko(machine_config &config)
SOFTWARE_LIST(config, "cart_list_japan_d").set_original("ekara_japan_d");
SOFTWARE_LIST(config, "cart_list_japan_sp").set_original("ekara_japan_sp");
}
// do any of the later G/P series carts with SEEPROM work with this too? check
void xavix_i2c_cart_state::xavix_i2c_jpopira(machine_config &config)
{
xavix_cart(config);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
I2CMEM(config, "i2cmem", 0).set_page_size(16).set_data_size(0x100); // 24LC02
SOFTWARE_LIST(config, "cart_list_jpopira_jp").set_original("jpopira_jp"); // NOTE, these are for Jumping Popira only, they don't work with the karaoke or regular popira units
SOFTWARE_LIST(config, "cart_list_japan_sp").set_original("ekara_japan_sp");
}
void xavix_cart_state::xavix_cart_ekara(machine_config &config)
@ -1582,7 +1607,6 @@ void xavix_cart_state::xavix_cart_ekara(machine_config &config)
SOFTWARE_LIST(config, "cart_list_japan_a").set_original("ekara_japan_a");
SOFTWARE_LIST(config, "cart_list_japan_gk").set_original("ekara_japan_gk");
SOFTWARE_LIST(config, "cart_list_japan_bh").set_original("ekara_japan_bh");
SOFTWARE_LIST(config, "cart_list_jpopira_jp").set_original("jpopira_jp"); // NOTE, these are for Jumping Popira only, they don't work with the karaoke or regular popira units
}
void xavix_cart_state::xavix_cart_popira(machine_config &config)
@ -1891,6 +1915,15 @@ ROM_START( taikodp )
ROM_RELOAD(0x000000, 0x200000)
ROM_END
ROM_START( jpopira )
ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 )
ROM_LOAD( "jumpingpopira.bin", 0x600000, 0x200000, CRC(a7bedbd2) SHA1(d62d4ca660c8df14891217fb7b7a2b4a931ff35f) )
ROM_RELOAD(0x000000, 0x200000)
ROM_REGION( 0x100, "i2cmem", ROMREGION_ERASE00 ) // maybe we can remove this eventually, but for now it won't init without a reset between
ROM_LOAD( "i2cmem.bin", 0x000, 0x100, CRC(70a05af1) SHA1(e8f4ab51445777fe459f9ff09333f548c4e3507c) )
ROM_END
ROM_START( evio )
ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 )
ROM_LOAD( "evio.bin", 0x600000, 0x200000, CRC(ee22c764) SHA1(f2b7e213eb78065a63ef484a619bcfc61299e30e))
@ -2008,6 +2041,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( 2004, jpopira, 0, 0, xavix_i2c_jpopira,jpopira, xavix_i2c_cart_state, init_xavix, "Takara / SSD Company LTD", "Jumping Popira (Japan)", MACHINE_IMPERFECT_SOUND /*|MACHINE_IS_BIOS_ROOT*/ )
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
@ -2020,7 +2056,7 @@ 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
*/

View File

@ -903,6 +903,7 @@ public:
{ }
void xavix_i2c_taiko(machine_config &config);
void xavix_i2c_jpopira(machine_config &config);
DECLARE_CUSTOM_INPUT_MEMBER(i2c_r);

View File

@ -547,12 +547,16 @@ CUSTOM_INPUT_MEMBER(xavix_ekara_state::ekara_multi1_r)
uint8_t xavix_state::read_io0(uint8_t direction)
{
// LOG("%s: read_io0\n", machine().describe_context());
// no special handling
return m_in0->read();
}
uint8_t xavix_state::read_io1(uint8_t direction)
{
// LOG("%s: read_io1\n", machine().describe_context());
// no special handling
return m_in1->read();
}
@ -605,8 +609,15 @@ void xavix_i2c_ltv_tam_state::write_io1(uint8_t data, uint8_t direction)
// for taikodp
void xavix_i2c_cart_state::write_io1(uint8_t data, uint8_t direction)
{
m_i2cmem->write_sda((data & 0x08) >> 3);
m_i2cmem->write_scl((data & 0x10) >> 4);
if (direction & 0x08)
{
m_i2cmem->write_sda((data & 0x08) >> 3);
}
if (direction & 0x10)
{
m_i2cmem->write_scl((data & 0x10) >> 4);
}
}
void xavix_ekara_state::write_io0(uint8_t data, uint8_t direction)
@ -713,14 +724,14 @@ READ8_MEMBER(xavix_state::io1_direction_r)
WRITE8_MEMBER(xavix_state::io0_data_w)
{
m_io0_data = data;
write_io0(data, m_io0_direction);
write_io0((data & m_io0_direction) | (read_io0(m_io0_direction) & ~m_io0_direction), m_io0_direction);
LOG("%s: io0_data_w %02x\n", machine().describe_context(), data);
}
WRITE8_MEMBER(xavix_state::io1_data_w)
{
m_io1_data = data;
write_io1(data, m_io1_direction);
write_io1((data & m_io1_direction) | (read_io1(m_io1_direction) & ~m_io1_direction), m_io1_direction);
LOG("%s: io1_data_w %02x\n", machine().describe_context(), data);
}

View File

@ -38762,6 +38762,7 @@ rad_crik //
rad_fb2 //
mattelcs //
dreamlif //
smartfp //
icanguit //
icanpian //
@ -39949,6 +39950,7 @@ ddrfammt //
popira //
popira2 //
taikodp //
jpopira //
evio //
ttv_sw //
ttv_lotr //