mirror of
https://github.com/holub/mame
synced 2025-04-19 15:11:37 +03:00
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:
parent
a4d666aa08
commit
1c8b595998
@ -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>
|
||||
|
@ -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 )
|
||||
|
@ -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
|
||||
*/
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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 //
|
||||
|
Loading…
Reference in New Issue
Block a user