Plug and Play work (#6548)

* replace jak_hmhsm with good dump [Sean Riddle]

* don't use the sprite page select on older elan type (fixes rad_sinv without breaking carlecfg) (nw)

* Ultimoton Fitness was misidentified, actually Ultimotion - Disney Fairies Sleeping Beauty & TinkerBell, also redump it (nw)
This commit is contained in:
David Haywood 2020-04-14 14:17:54 +01:00 committed by GitHub
parent cfff277906
commit 734d5388f9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 74 additions and 39 deletions

View File

@ -775,6 +775,7 @@ void elan_eu3a05_state::elan_sudoku(machine_config& config)
elan_eu3a05(config);
m_maincpu->set_addrmap(AS_PROGRAM, &elan_eu3a05_state::elan_sudoku_map);
m_vid->set_is_sudoku();
m_vid->set_use_spritepages();
m_sys->set_alt_timer(); // for Carl Edwards'
}

View File

@ -55,6 +55,12 @@
paccon: Pac-Man - Bottom set of Power Pills are squashed.
Galaga - Incorrect sprite used for left shot in 'Double Ship' mode
JAKKS Pacific Test modes:
jak_hmhsm : uses the standard JAKKS code (on first screen - Hold Up, Hold A, Release Up, Down)
the High School Musical part has its own test mode which tests a different part of the ROM, use the same code but after selecting the game from menu
*/
#include "emu.h"
@ -1678,6 +1684,35 @@ ROM_START( jak_car2 )
ROM_LOAD( "cars2.bin", 0x0000, 0x4200000, CRC(4d610e09) SHA1(bc59f5f7f676a8f2a78dfda7fb62c804bbf850b6) )
ROM_END
/* The following pinout was used when dumping jak_sspop, jak_hmhsm, jak_umdf
For the 256Mbyte parts the parameters of the programmer had to be overridden to dump the full capacity as there were no equivalent parts.
Sandisk TSOP32 NAND Flash
+----------------------------------------------+
NC-|01 32|-NC
VSS-|02 31|-NC
R/B-|03 SanDisk 30|-I/O7
NC-|04 NAND 29|-I/O6
RE-|05 28|-I/O5
CE-|06 32PIN 27|-I/O4
NC-|07 26|-VCC
VCC-|08 25|-VSS
VSS-|09 24|-NC
NC-|10 23|-I/O3
NC-|11 22|-I/O2
CLE-|12 21|-I/O1
ALE-|13 20|-I/O0
WE-|14 19|-NC
WP-|15 18|-NC
NC-|16 17|-NC
+----------------------------------------------+
One of the games has pin 2 grounded, and the other 2 have it N/C. I'm not sure what it would be, since all the signals are accounted for.
*/
ROM_START( jak_sspop )
ROM_REGION16_BE( 0x40000, "maincpu:internal", ROMREGION_ERASE00 )
ROM_LOAD16_WORD_SWAP( "internal.rom", 0x00000, 0x40000, NO_DUMP ) // used as bootstrap only
@ -1712,22 +1747,16 @@ ROM_START( jak_hmhsm )
xx20
01xxxx_HSM
if jak_sspop is a 128MByte part the label here suggests this is 256MByte and therefore a bad dump.
the internal ROM test does 'pass' testing only what we have here, but if you attempt to load the High School Musical part
then it tries to load from outside of this data. Theory is that High School Musical has it's own test mode and the
test mode present in the first loader is only testing the first program (Menu and Hannah Montana game)
note _HSM on the label is part of the actual label printed onto the chip surface suggesting these have been produced to
order specifically for JAKKS
256Mbyte part, 2nd half is just 0xff filled tho so a 128Mbyte part would have been fine
*/
ROM_REGION( 0x4200000, "nandrom", ROMREGION_ERASE00 )
ROM_LOAD( "hmhsm_as_hy27us08121a_45da.bin", 0x0000, 0x4200000, BAD_DUMP CRC(fc09d9eb) SHA1(9b84e57f247ccddc8b98e5d15bff79af36d372db) )
ROM_REGION( 0x10800000, "nandrom", ROMREGION_ERASE00 )
ROM_LOAD( "hmhsm.bin", 0x0000, 0x10800000, CRC(e63ad24c) SHA1(a7844b14af701914150aa7c06743a410f478ff7b) )
ROM_END
ROM_START( jak_umfit )
ROM_START( jak_umdf )
ROM_REGION16_BE( 0x40000, "maincpu:internal", ROMREGION_ERASE00 )
ROM_LOAD16_WORD_SWAP( "internal.rom", 0x00000, 0x40000, NO_DUMP ) // used as bootstrap only
@ -1740,13 +1769,12 @@ ROM_START( jak_umfit )
0834
61050
again part number would suggest that this is a 256MByte ROM, making this dump would be half size.
as this doesn't currently display anything, and isn't a HotGen game, there's no guarantee of any hidden test mode to help
again part number would suggest that this is a 256MByte ROM, although in reality all data fits into 64Mbyte, rest is blank
*/
ROM_REGION( 0x8400000, "nandrom", ROMREGION_ERASE00 )
ROM_LOAD( "ultimotion_as_hy27us081g1m_45da.bin", 0x0000, 0x8400000, BAD_DUMP CRC(6decc489) SHA1(d230e3be0d579736fc417173b81211784d702785) )
ROM_REGION( 0x10800000, "nandrom", ROMREGION_ERASE00 )
ROM_LOAD( "jak_umdf.bin", 0x0000, 0x10800000, CRC(05f47aca) SHA1(61b417141ccc22324224b1862ea2f5778453f206) )
ROM_END
@ -1833,13 +1861,13 @@ CONS(2012, paccon, 0, 0, paccon, paccon, jak_s500_game_state, init_wrlshunt, "Ba
CONS(2008, lazertag, 0, 0, wrlshunt, jak_s500, jak_s500_game_state, init_wrlshunt, "Tiger Electronics", "Lazer Tag Video Game Module", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
CONS(2009, jak_s500, 0, 0, wrlshunt, jak_s500, jak_s500_game_state, init_wrlshunt, "JAKKS Pacific Inc", "SpongeBob SquarePants Bikini Bottom 500 (JAKKS Pacific TV Motion Game)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
CONS(2009, jak_smwm, 0, 0, wrlshunt, jak_s500, jak_s500_game_state, init_wrlshunt, "JAKKS Pacific Inc", "Spider-Man Web Master (JAKKS Pacific TV Motion Game)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
CONS(2010, jak_pf, 0, 0, wrlshunt, jak_s500, jak_s500_game_state, init_wrlshunt, "JAKKS Pacific Inc", "Phineas and Ferb: Best Game Ever! (JAKKS Pacific TV Motion Game)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) // build date is 2009, but onscreen display is 2010
CONS(2009, jak_prft, 0, 0, wrlshunt, jak_s500, jak_s500_game_state, init_wrlshunt, "JAKKS Pacific Inc", "Power Rangers Force In Time (JAKKS Pacific TV Motion Game)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
CONS(2009, jak_tink, 0, 0, wrlshunt, jak_s500, jak_s500_game_state, init_wrlshunt, "JAKKS Pacific Inc", "Tinker Bell and the Lost Treasure (JAKKS Pacific TV Motion Game)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
CONS(200?, jak_totm, 0, 0, wrlshunt, jak_s500, jak_s500_game_state, init_wrlshunt, "JAKKS Pacific Inc", "Toy Story - Toys on the Move (JAKKS Pacific TV Motion Game)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) // Toys on the Move has ISSI 404A
CONS(2009, jak_ths, 0, 0, wrlshunt, jak_s500, jak_s500_game_state, init_ths, "JAKKS Pacific Inc", "Triple Header Sports (JAKKS Pacific TV Motion Game)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
CONS(2009, jak_s500, 0, 0, wrlshunt, jak_s500, jak_s500_game_state, init_wrlshunt, "JAKKS Pacific Inc / HotGen Ltd", "SpongeBob SquarePants Bikini Bottom 500 (JAKKS Pacific TV Motion Game)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
CONS(2009, jak_smwm, 0, 0, wrlshunt, jak_s500, jak_s500_game_state, init_wrlshunt, "JAKKS Pacific Inc / HotGen Ltd", "Spider-Man Web Master (JAKKS Pacific TV Motion Game)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
CONS(2010, jak_pf, 0, 0, wrlshunt, jak_s500, jak_s500_game_state, init_wrlshunt, "JAKKS Pacific Inc / HotGen Ltd", "Phineas and Ferb: Best Game Ever! (JAKKS Pacific TV Motion Game)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) // build date is 2009, but onscreen display is 2010
CONS(200?, jak_totm, 0, 0, wrlshunt, jak_s500, jak_s500_game_state, init_wrlshunt, "JAKKS Pacific Inc / HotGen Ltd", "Toy Story - Toys on the Move (JAKKS Pacific TV Motion Game)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) // Toys on the Move has ISSI 404A
CONS(2009, jak_prft, 0, 0, wrlshunt, jak_s500, jak_s500_game_state, init_wrlshunt, "JAKKS Pacific Inc / Santa Cruz Games", "Power Rangers Force In Time (JAKKS Pacific TV Motion Game)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
CONS(2009, jak_tink, 0, 0, wrlshunt, jak_s500, jak_s500_game_state, init_wrlshunt, "JAKKS Pacific Inc / Santa Cruz Games", "Tinker Bell and the Lost Treasure (JAKKS Pacific TV Motion Game)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
CONS(2009, jak_ths, 0, 0, wrlshunt, jak_s500, jak_s500_game_state, init_ths, "JAKKS Pacific Inc / Super Happy Fun Fun", "Triple Header Sports (JAKKS Pacific TV Motion Game)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
CONS(2011, wrlshunt, 0, 0, wrlshunt, wrlshunt, wrlshunt_game_state, init_wrlshunt, "Hamy / Kids Station Toys Inc", "Wireless Hunting Video Game System", MACHINE_NO_SOUND | MACHINE_NOT_WORKING)
@ -2017,26 +2045,25 @@ void generalplus_gpac800_game_state::nand_beambox()
// NAND dumps w/ internal bootstrap (and u'nSP 2.0 extended opcodes) (have gpnandnand strings)
// the JAKKS ones seem to be known as 'Generalplus GPAC800' hardware
CONS(2010, wlsair60, 0, 0, generalplus_gpac800, jak_car2, generalplus_gpac800_game_state, nand_wlsair60, "Jungle Soft / Kids Station Toys Inc", "Wireless Air 60", MACHINE_NO_SOUND | MACHINE_NOT_WORKING)
CONS(200?, jak_gtg, 0, 0, generalplus_gpac800, jak_gtg, generalplus_gpac800_game_state, nand_init210, "JAKKS Pacific Inc", "Golden Tee Golf (JAKKS Pacific TV Game)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING)
CONS(200?, jak_car2, 0, 0, generalplus_gpac800, jak_car2, generalplus_gpac800_game_state, nand_init210, "JAKKS Pacific Inc", "Cars 2 (JAKKS Pacific TV Game)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING)
CONS(200?, jak_tsm , 0, 0, generalplus_gpac800, jak_car2, generalplus_gpac800_game_state, nand_tsm, "JAKKS Pacific Inc", "Toy Story Mania (JAKKS Pacific TV Game)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING)
CONS(200?, beambox, 0, 0, generalplus_gpac800, jak_car2, generalplus_gpac800_game_state, nand_beambox, "Hasbro", "Playskool Heroes Transformers Rescue Bots Beam Box (Spain)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING)
CONS(200?, mgtfit, 0, 0, generalplus_gpac800, jak_car2, generalplus_gpac800_game_state, nand_wlsair60, "MGT", "Fitness Konsole (NC1470)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) // probably has other names in English too? menus don't appear to be in German
CONS(200?, vbaby, 0, 0, generalplus_gpac800_vbaby, jak_car2, generalplus_gpac800_vbaby_game_state, nand_vbaby, "VTech", "V.Baby", MACHINE_NO_SOUND | MACHINE_NOT_WORKING)
CONS(2010, wlsair60, 0, 0, generalplus_gpac800, jak_car2, generalplus_gpac800_game_state, nand_wlsair60, "Jungle Soft / Kids Station Toys Inc", "Wireless Air 60", MACHINE_NO_SOUND | MACHINE_NOT_WORKING)
CONS(200?, beambox, 0, 0, generalplus_gpac800, jak_car2, generalplus_gpac800_game_state, nand_beambox, "Hasbro", "Playskool Heroes Transformers Rescue Bots Beam Box (Spain)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING)
CONS(200?, mgtfit, 0, 0, generalplus_gpac800, jak_car2, generalplus_gpac800_game_state, nand_wlsair60, "MGT", "Fitness Konsole (NC1470)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) // probably has other names in English too? menus don't appear to be in German
CONS(200?, vbaby, 0, 0, generalplus_gpac800_vbaby, jak_car2, generalplus_gpac800_vbaby_game_state, nand_vbaby, "VTech", "V.Baby", MACHINE_NO_SOUND | MACHINE_NOT_WORKING)
CONS(2009, jak_sspop, 0, 0, generalplus_gpac800, jak_hsm, generalplus_gpac800_game_state, nand_init210_32mb, "JAKKS Pacific Inc", "Sing Scene Pop (JAKKS Pacific TV Game)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING)
CONS(2008, jak_hmhsm, 0, 0, generalplus_gpac800, jak_hsm, generalplus_gpac800_game_state, nand_init210_32mb, "JAKKS Pacific Inc", "Hannah Montana G2 Deluxe / High School Musical G2 Deluxe 2-in-1 (JAKKS Pacific TV Game)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) // bad dump
CONS(2008, jak_umfit, 0, 0, generalplus_gpac800, jak_hsm, generalplus_gpac800_game_state, nand_init210_32mb, "JAKKS Pacific Inc", "Ultimotion Fitness (JAKKS Pacific TV Game)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) // bad dump
CONS(200?, jak_gtg, 0, 0, generalplus_gpac800, jak_gtg, generalplus_gpac800_game_state, nand_init210, "JAKKS Pacific Inc / HotGen Ltd", "Golden Tee Golf (JAKKS Pacific TV Game)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING)
CONS(200?, jak_car2, 0, 0, generalplus_gpac800, jak_car2, generalplus_gpac800_game_state, nand_init210, "JAKKS Pacific Inc / HotGen Ltd", "Cars 2 (JAKKS Pacific TV Game)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING)
CONS(2010, jak_tsm, 0, 0, generalplus_gpac800, jak_car2, generalplus_gpac800_game_state, nand_tsm, "JAKKS Pacific Inc / Schell Games", "Toy Story Mania (JAKKS Pacific TV Game)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING)
CONS(2009, jak_sspop, 0, 0, generalplus_gpac800, jak_hsm, generalplus_gpac800_game_state, nand_init210_32mb, "JAKKS Pacific Inc / HotGen Ltd", "Sing Scene Pop (JAKKS Pacific TV Game)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING)
CONS(2008, jak_hmhsm, 0, 0, generalplus_gpac800, jak_hsm, generalplus_gpac800_game_state, nand_init210_32mb, "JAKKS Pacific Inc / HotGen Ltd", "Hannah Montana G2 Deluxe / High School Musical G2 Deluxe 2-in-1 (JAKKS Pacific TV Game)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING)
CONS(2008, jak_umdf, 0, 0, generalplus_gpac800, jak_hsm, generalplus_gpac800_game_state, nand_init210_32mb, "JAKKS Pacific Inc / Handheld Games", "Ultimotion - Disney Fairies Sleeping Beauty & TinkerBell (JAKKS Pacific TV Game)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING)
// Ultimotion Swing Zone is SPG29xx instead
// There were 1 player and 2 player versions for several of the JAKKS guns. The 2nd gun appears to be simply a controller (no AV connectors) but as they were separate products with the 2 player verisons being released up to a year after the original, the code could differ.
// If they differ, it is currently uncertain which versions these ROMs are from
CONS(2012, jak_wdzh, 0, 0, generalplus_gpac800, jak_car2, generalplus_gpac800_game_state, nand_init210, "JAKKS Pacific Inc", "The Walking Dead: Zombie Hunter (JAKKS Pacific TV Game)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) // gun games all had Atmel 16CM (24C16).
CONS(2013, jak_swc, 0, 0, generalplus_gpac800, jak_car2, generalplus_gpac800_game_state, nand_init210_32mb, "JAKKS Pacific Inc", "Star Wars Clone Trooper (JAKKS Pacific TV Game)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING)
CONS(2013, jak_duck, 0, 0, generalplus_gpac800, jak_car2, generalplus_gpac800_game_state, nand_init210_32mb, "JAKKS Pacific Inc", "Duck Commander (JAKKS Pacific TV Game)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) // no 2 Player version was released
CONS(2014, jak_wdbg, 0, 0, generalplus_gpac800, jak_car2, generalplus_gpac800_game_state, nand_init210_32mb, "JAKKS Pacific Inc", "The Walking Dead: Battleground (JAKKS Pacific TV Game)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING)
CONS(2012, jak_wdzh, 0, 0, generalplus_gpac800, jak_car2, generalplus_gpac800_game_state, nand_init210, "JAKKS Pacific Inc / Merge Interactive", "The Walking Dead: Zombie Hunter (JAKKS Pacific TV Game)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) // gun games all had Atmel 16CM (24C16).
CONS(2013, jak_swc, 0, 0, generalplus_gpac800, jak_car2, generalplus_gpac800_game_state, nand_init210_32mb, "JAKKS Pacific Inc / Merge Interactive", "Star Wars Clone Trooper (JAKKS Pacific TV Game)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING)
CONS(2013, jak_duck, 0, 0, generalplus_gpac800, jak_car2, generalplus_gpac800_game_state, nand_init210_32mb, "JAKKS Pacific Inc / Merge Interactive", "Duck Commander (JAKKS Pacific TV Game)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) // no 2 Player version was released
CONS(2014, jak_wdbg, 0, 0, generalplus_gpac800, jak_car2, generalplus_gpac800_game_state, nand_init210_32mb, "JAKKS Pacific Inc / Super Happy Fun Fun", "The Walking Dead: Battleground (JAKKS Pacific TV Game)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING)
ROM_START( bkrankp )

View File

@ -38016,7 +38016,7 @@ jak_car2
jak_gtg
jak_sspop
jak_hmhsm
jak_umfit
jak_umdf
jak_duck
jak_swc
jak_wdzh

View File

@ -16,7 +16,8 @@ elan_eu3a05vid_device::elan_eu3a05vid_device(const machine_config &mconfig, cons
m_space_config("regs", ENDIANNESS_NATIVE, 8, 5, 0, address_map_constructor(FUNC(elan_eu3a05vid_device::map), this)),
m_bytes_per_tile_entry(4),
m_vrambase(0x600),
m_spritebase(0x3e00)
m_spritebase(0x3e00),
m_use_spritepages(false)
{
}
@ -226,7 +227,11 @@ void elan_eu3a05vid_device::draw_sprites(screen_device &screen, bitmap_ind16 &bi
int base = (m_sprite_gfxbase_lo_data | (m_sprite_gfxbase_hi_data << 8)) * 0x100;
int page = (unk2 & 0x30) >> 4;
base += 0x10000 * page;
// rad_sinv menu screen and phoenix don't agree with this, but carlecfg needs it
if (m_use_spritepages)
{
base += 0x10000 * page;
}
if (doubleX)
sizex = sizex * 2;

View File

@ -22,6 +22,7 @@ public:
void set_is_sudoku();
void set_is_pvmilfin();
void set_use_spritepages() { m_use_spritepages = true; };
protected:
// device-level overrides
@ -82,6 +83,7 @@ private:
int m_bytes_per_tile_entry;
int m_vrambase;
int m_spritebase;
bool m_use_spritepages;
};
DECLARE_DEVICE_TYPE(ELAN_EU3A05_VID, elan_eu3a05vid_device)