diff --git a/src/devices/machine/spg2xx_video.cpp b/src/devices/machine/spg2xx_video.cpp index f165e930654..d8ff4805b30 100644 --- a/src/devices/machine/spg2xx_video.cpp +++ b/src/devices/machine/spg2xx_video.cpp @@ -131,7 +131,11 @@ void spg2xx_video_device::do_sprite_dma(uint32_t len) for (uint32_t j = 0; j < len; j++) { - m_spriteram[(dst + j) & 0x3ff] = mem.read_word(src + j); + int dest = dst + j; + // jak_dpma does a full length transfer offset from the start, which causes corruption + // on the options screen if we wrap, assume DMA just writes to nowhere if it goes out of bounds + if (dest < 0x400) + m_spriteram[dest] = mem.read_word(src + j); } m_video_regs[0x72] = 0; diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 9a0df0bb426..b260ad1952f 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -46509,8 +46509,11 @@ conyteni easports jak_bobb jak_capb +jak_diso +jak_sbdd jak_spdmo jak_spdmoa +jak_wpt sstarkar @source:tvgames/spg29x.cpp @@ -46600,13 +46603,25 @@ icanpian @source:tvgames/spg2xx_jakks.cpp jak_batm +jak_cind +jak_dpma +jak_hsm +jak_marv jak_mk +jak_mpaco +jak_mpacq jak_mpacw +jak_pacg jak_pix jak_potc jak_powr +jak_rapm jak_sbjd +jak_shrk +jak_slpb +jak_spac jak_spd3 +jak_spdv jak_supm jak_wall diff --git a/src/mame/tvgames/spg110.cpp b/src/mame/tvgames/spg110.cpp index 64f71934efc..00b2527309a 100644 --- a/src/mame/tvgames/spg110.cpp +++ b/src/mame/tvgames/spg110.cpp @@ -16,8 +16,6 @@ assumed: JAKKS EA Sports (NHL 95 + Madden 95) (US) - JAKKS Bob the Builder - JAKKS Disney (original release) *******************************************************************************/ @@ -52,6 +50,8 @@ public: ioport_value plunger_r(); + void init_crc(); + protected: required_device m_maincpu; required_device m_screen; @@ -582,12 +582,31 @@ void spg110_sstarkar_game_state::sstarkar(machine_config &config) SOFTWARE_LIST(config, "cart_list").set_original("singingstarkaraoke_cart"); } +void spg110_game_state::init_crc() +{ + // several games have a byte sum checksum listed at the start of ROM, this little helper function logs what it should match. + const int length = memregion("maincpu")->bytes(); + const uint8_t* rom = memregion("maincpu")->base(); + int checksum_start = 0x10; // start at 0x10 because the 'checksum' text itself should not be checksummed + uint32_t checksum = 0x00000000; + for (int i = checksum_start; i < length; i++) + { + checksum += rom[i]; + } + + logerror("Calculated Byte Sum of bytes from %02x to 0x%08x is %08x)\n", checksum_start, length - 1, checksum); +} ROM_START( jak_capb ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) ROM_LOAD16_WORD_SWAP( "classicarcadepinball.bin", 0x000000, 0x200000, CRC(b643dab0) SHA1(f57d546758ba442e28b5f0f48b3819b2fc2eb7f7) ) ROM_END +ROM_START( jak_sbdd ) + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) + // header lists checksum (bytesum) as 05472c55, calculated (minus 0x10 byte header) gives 05472c17 (off by 0x3e, so there could be a bad byte or two) + ROM_LOAD16_WORD_SWAP( "pineapple.u2", 0x000000, 0x100000, BAD_DUMP CRC(8a815acc) SHA1(6b174617b4c099c5c41fadb35e6cb1a8207045eb) ) +ROM_END ROM_START( jak_spdmo ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) @@ -617,6 +636,18 @@ ROM_START( easports ) ROM_LOAD( "nvram", 0x000000, 0x20000, CRC(bfcbd206) SHA1(0f5b730679762547a0658c2cd0d4fa5169b857af) ) ROM_END +ROM_START( jak_wpt ) + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "jakk_worldpokertour.bin", 0x000000, 0x200000, CRC(6eac3bae) SHA1(80bf3ec0e0aa26b4bac72c1828939a18b7750f29) ) + + // also has an LCD display on the unit, is the display driven by the main program, or something else? +ROM_END + +ROM_START( jak_diso ) + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "jakksdisneyred.u2", 0x000000, 0x200000, CRC(e88e117f) SHA1(0d5ffc831d47e46e72657d1b6bbd6ca18f76b2aa) ) +ROM_END + ROM_START( conyteni ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) @@ -650,8 +681,17 @@ ROM_END // JAKKS Pacific Inc TV games CONS( 2004, jak_capb, 0, 0, spg110_base, jak_capb, spg110_game_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "Classic Arcade Pinball (JAKKS Pacific TV Game)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -CONS( 2004, jak_spdmo, jak_spdm, 0, spg110_base, jak_spdmo, spg110_game_state, empty_init, "JAKKS Pacific Inc / Digital Eclipse", "Spider-Man (JAKKS Pacific TV Game) (older hardware, set 1)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // this is the smaller more 'square' style joystick that was originally released before the GameKey slot was added. -CONS( 2004, jak_spdmoa,jak_spdm, 0, spg110_base, jak_spdmo, spg110_game_state, empty_init, "JAKKS Pacific Inc / Digital Eclipse", "Spider-Man (JAKKS Pacific TV Game) (older hardware, set 2)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // this is the resdesigned stick, but before the GameKey release +CONS( 2004, jak_spdmo, jak_spdm, 0, spg110_base, jak_spdmo, spg110_game_state, empty_init, "JAKKS Pacific Inc / Digital Eclipse", "Spider-Man (JAKKS Pacific TV Game) (SPG110 hardware, set 1)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // this is the smaller more 'square' style joystick that was originally released before the GameKey slot was added. +CONS( 2004, jak_spdmoa,jak_spdm, 0, spg110_base, jak_spdmo, spg110_game_state, empty_init, "JAKKS Pacific Inc / Digital Eclipse", "Spider-Man (JAKKS Pacific TV Game) (SPG110 hardware, set 2)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // this is the redesigned stick, but before the GameKey release + +CONS( 2004, jak_wpt, 0, 0, spg110_base, jak_spdmo, spg110_game_state, init_crc, "JAKKS Pacific Inc / Digital Eclipse", "World Poker Tour (JAKKS Pacific TV Game)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) + +CONS( 2004, jak_diso, jak_disn, 0, spg110_base, jak_spdmo, spg110_game_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "Disney (JAKKS Pacific TV Game) (SPG110 hardware, 28 MAY 2004 A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) + +// ROM bytesum is off by 0x3e, so likely a bad byte +// sound doesn't work properly after a few initial sounds (expected, SPG110 issues) +// fill position in the 'Color Me Spongy' mini-game is completely wrong, maybe dump issue, maybe SPG110/unSP issue. +CONS( 2004, jak_sbdd, 0, 0, spg110_base, jak_spdmo, spg110_game_state, init_crc, "JAKKS Pacific Inc", "SpongeBob SquarePants Dilly Dabbler (JAKKS Pacific TV Game)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // has Game-Key strings in test mode even if there were no SPG110 Game-Key units at all CONS( 2006, jak_bobb, 0, 0, spg110_base, jak_bobb, spg110_game_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "Bob the Builder - Project: Build It (JAKKS Pacific TV Game) (JUN 2 2006 14:42:01)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/tvgames/spg2xx_jakks.cpp b/src/mame/tvgames/spg2xx_jakks.cpp index a2cb2b8f64d..d04065d901b 100644 --- a/src/mame/tvgames/spg2xx_jakks.cpp +++ b/src/mame/tvgames/spg2xx_jakks.cpp @@ -21,8 +21,10 @@ public: void base_config(machine_config& config); void spg2xx_jakks(machine_config& config); void mk(machine_config& config); - + void spg2xx_dpma(machine_config& config); + void jakks_mpaco(machine_config& config); void jakks_mpac(machine_config& config); + void jakks_rapm(machine_config& config); private: void mem_map_2m_mkram(address_map &map) ATTR_COLD; @@ -103,6 +105,45 @@ static INPUT_PORTS_START( jak_supm ) PORT_BIT( 0xfff0, IP_ACTIVE_HIGH, IPT_UNUSED ) INPUT_PORTS_END +static INPUT_PORTS_START( spg2xx_spdv ) + PORT_START("P1") + PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(1) PORT_NAME("Joypad Up") + PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) PORT_NAME("Joypad Down") + PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) PORT_NAME("Joypad Left") + PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) PORT_NAME("Joypad Right") + PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("A Button") + PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("B Button") + PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Menu / Pause") + PORT_BIT( 0x00ff, IP_ACTIVE_HIGH, IPT_UNUSED ) + + PORT_START("P3") + PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("i2cmem", FUNC(i2cmem_device::read_sda)) + PORT_BIT( 0x0006, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) // PAL/NTSC flag, set to NTSC + PORT_BIT( 0xfff0, IP_ACTIVE_HIGH, IPT_UNUSED ) +INPUT_PORTS_END + +static INPUT_PORTS_START( spg2xx_dpma ) + PORT_START("P1") + PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(1) PORT_NAME("Joypad Up") + PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) PORT_NAME("Joypad Down") + PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) PORT_NAME("Joypad Left") + PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) PORT_NAME("Joypad Right") + PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("A Button") + PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Menu / Pause") + PORT_BIT( 0x000f, IP_ACTIVE_HIGH, IPT_UNUSED ) + + PORT_START("P3") + PORT_BIT( 0x0007, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) // PAL/NTSC flag, set to NTSC (unverified here) + PORT_BIT( 0xfff0, IP_ACTIVE_HIGH, IPT_UNUSED ) +INPUT_PORTS_END static INPUT_PORTS_START( mk ) PORT_START("P1") @@ -130,7 +171,35 @@ static INPUT_PORTS_START( mk ) PORT_CONFSETTING( 0x0000, DEF_STR( On ) ) INPUT_PORTS_END +static INPUT_PORTS_START( jak_mpaco ) + 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_BUTTON2 ) + PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Menu") + PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_BUTTON1 ) + + PORT_START("P3") + PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) // PAL/NTSC flag, set to NTSC + PORT_BIT( 0xfff0, IP_ACTIVE_HIGH, IPT_UNUSED ) + + PORT_START("DIALX") // for Pole Position, joystick can be twisted like a dial/wheel (limited?) (check range) (note, range is different to GKR unit) + PORT_BIT(0x03ff, 0x0000, IPT_AD_STICK_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(100) PORT_MINMAX(0x00,0x03ff) +INPUT_PORTS_END + static INPUT_PORTS_START( jak_mpac ) + PORT_INCLUDE( jak_mpaco ) + + PORT_MODIFY("P3") + PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("i2cmem", FUNC(i2cmem_device::read_sda)) +INPUT_PORTS_END + +static INPUT_PORTS_START( jak_spac ) 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) @@ -146,9 +215,36 @@ static INPUT_PORTS_START( jak_mpac ) PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) // PAL/NTSC flag, set to NTSC PORT_BIT( 0xfff0, IP_ACTIVE_HIGH, IPT_UNUSED ) +INPUT_PORTS_END - PORT_START("DIALX") // for Pole Position, joystick can be twisted like a dial/wheel (limited?) (check range) (note, range is different to GKR unit) - PORT_BIT(0x03ff, 0x0000, IPT_AD_STICK_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(100) PORT_MINMAX(0x00,0x03ff) + +static INPUT_PORTS_START( jak_rapm ) + PORT_INCLUDE( jak_spac ) + + PORT_START("DIALX") // for Pole Position, joystick can be twisted like a dial/wheel (limited?) (check range) + 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( spg2xx_pacg ) + PORT_START("P1") + PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(1) PORT_NAME("Joypad Up") + PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) PORT_NAME("Joypad Down") + PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) PORT_NAME("Joypad Left") + PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) PORT_NAME("Joypad Right") + PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("A Button") + PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Menu / Pause") + PORT_BIT( 0x000f, IP_ACTIVE_HIGH, IPT_UNUSED ) + + PORT_START("P3") + PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("i2cmem", FUNC(i2cmem_device::read_sda)) + PORT_BIT( 0x0006, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) // PAL/NTSC flag, set to NTSC (unverified here) + PORT_BIT( 0xfff0, IP_ACTIVE_HIGH, IPT_UNUSED ) INPUT_PORTS_END void jakks_state::base_config(machine_config& config) @@ -161,7 +257,7 @@ void jakks_state::base_config(machine_config& config) m_maincpu->portc_in().set_ioport("P3"); m_maincpu->portc_out().set(FUNC(jakks_state::portc_w)); - I2C_24C04(config, m_i2cmem, 0); // ? + I2C_24C04(config, m_i2cmem, 0); } void jakks_state::spg2xx_jakks(machine_config &config) @@ -170,6 +266,18 @@ void jakks_state::spg2xx_jakks(machine_config &config) m_maincpu->set_addrmap(AS_PROGRAM, &jakks_state::mem_map_2m); } +void jakks_state::spg2xx_dpma(machine_config& config) +{ + SPG24X(config, m_maincpu, XTAL(27'000'000), m_screen); + spg2xx_base(config); + + m_maincpu->porta_in().set(FUNC(jakks_state::base_porta_r)); + m_maincpu->portc_in().set_ioport("P3"); + m_maincpu->portc_out().set(FUNC(jakks_state::portc_w)); + m_maincpu->set_addrmap(AS_PROGRAM, &jakks_state::mem_map_2m); +} + + void jakks_state::mem_map_2m_mkram(address_map &map) { map(0x000000, 0x1fffff).bankr("cartbank"); @@ -191,11 +299,31 @@ void jakks_state::mk(machine_config &config) NVRAM(config, "nvram", nvram_device::DEFAULT_RANDOM); } +void jakks_state::jakks_mpaco(machine_config &config) +{ + SPG24X(config, m_maincpu, XTAL(27'000'000), m_screen); + + spg2xx_base(config); + + m_maincpu->porta_in().set(FUNC(jakks_state::base_porta_r)); + m_maincpu->portc_in().set_ioport("P3"); + m_maincpu->portc_out().set(FUNC(jakks_state::portc_w)); + + m_maincpu->set_addrmap(AS_PROGRAM, &jakks_state::mem_map_1m); + m_maincpu->adc_in<0>().set_ioport("DIALX"); +} + + void jakks_state::jakks_mpac(machine_config &config) { - base_config(config); - m_maincpu->set_addrmap(AS_PROGRAM, &jakks_state::mem_map_1m); + jakks_mpaco(config); + I2C_24C04(config, m_i2cmem, 0); + m_maincpu->adc_in<0>().set_ioport("DIALX"); +} +void jakks_state::jakks_rapm(machine_config &config) +{ + spg2xx_jakks(config); m_maincpu->adc_in<0>().set_ioport("DIALX"); } @@ -217,6 +345,16 @@ ROM_START( jak_potc ) ROM_LOAD16_WORD_SWAP( "pirates.u5", 0x000000, 0x400000, CRC(935fe66c) SHA1(8b5b11c61b7f32c313aa46e33a1c918ed82f7916) ) ROM_END +ROM_START( jak_cind ) + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "jakkscinderella.u5", 0x000000, 0x200000, CRC(73008a51) SHA1(89168bc2c64836daa341a6fbacb1fa63c2fef14b) ) +ROM_END + +ROM_START( jak_slpb ) + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "jakks_sleepingbeauty.u5", 0x000000, 0x200000, CRC(e5b20a73) SHA1(3c305c4b9265d9bbf090805daaf26ad43af54389) ) +ROM_END + ROM_START( jak_supm ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) ROM_LOAD16_WORD_SWAP( "superman.u3", 0x000000, 0x400000, CRC(626bdd85) SHA1(605b3193c17f606d2de5689f045b50ac0b7ff024) ) @@ -239,6 +377,31 @@ ROM_START( jak_mpacw ) ROM_LOAD16_WORD_SWAP( "wirelessnamco.bin", 0x000000, 0x200000, CRC(78a318ca) SHA1(3c2601cbb023edb6a1f3d4bce686e0be1ef63eee) ) ROM_END +ROM_START( jak_mpacq ) + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "jakks_qvc7in1.u2", 0x000000, 0x200000, CRC(a0a132a0) SHA1(acb5a98dfb597151015929bdd5b6eada1764e2fe) ) +ROM_END + +ROM_START( jak_mpaco ) + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "jakks_mspacmanrev1.u1", 0x000000, 0x100000, CRC(de4c2262) SHA1(2a5bacdcd10ccfdb1ae792d0aaaf2d38ec936f94) ) +ROM_END + +ROM_START( jak_rapm ) + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "jakks_retroarcade.u3", 0x000000, 0x400000, CRC(f2dcb1c8) SHA1(2361b8598279bc6642ca997bbf2072a9e6ac045e) ) +ROM_END + +ROM_START( jak_pacg ) + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "jakkspacmangold.u2", 0x000000, 0x200000, CRC(59904862) SHA1(f86a8847742fa918bdfa0fa927ec6e1f573ce31c) ) +ROM_END + +ROM_START( jak_spac ) // this is actually built as a gamekey, with the header text in it, sources suggest it was also going to be released as one + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "jakkssuperpacman.u2", 0x000000, 0x100000, CRC(490db7cc) SHA1(9b599f28b9fa8e4a502ae7a167c410d4738b8e7a) ) +ROM_END + ROM_START( jak_spd3 ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) ROM_LOAD16_WORD_SWAP( "spiderman3.u4", 0x000000, 0x200000, CRC(87019271) SHA1(80d126af970236a1cecf7ade49f916caf8f67ceb) ) @@ -254,6 +417,32 @@ ROM_START( jak_pix ) ROM_LOAD16_WORD_SWAP( "jakkspixar.bin", 0x000000, 0x200000, CRC(ec110f2b) SHA1(a57e1d45cfb537173f94d1a95323183a62976bb4) ) ROM_END +ROM_START( jak_shrk ) + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "jakkshrek.u2", 0x000000, 0x400000, CRC(4abb910d) SHA1(e663abd2ba6eacca2f4a046d8b8ebac2cf3fd36a) ) +ROM_END + +ROM_START( jak_marv ) + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "jakmarvelheroes.u4", 0x000000, 0x200000, CRC(e63259a3) SHA1(8745f3071ba460c8ba4a5bd376a72154b2edd8bd) ) +ROM_END + +ROM_START( jak_spdv ) + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "jakkspiderweb.u2", 0x000000, 0x200000, CRC(408c94bc) SHA1(350f7b84abf3d0d56f081647b3a228505751ff70) ) +ROM_END + +ROM_START( jak_dpma ) + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "jakks_magicaladventures.u2", 0x000000, 0x200000, CRC(3c3fdf54) SHA1(9847412a0ee21819cc714ca1a2dd519edb892c95) ) +ROM_END + +ROM_START( jak_hsm ) + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "jakkshighschoolmusical.u3", 0x000000, 0x400000, CRC(ad83549a) SHA1(1d198209055e418402c9f3f389bccde156ca5a43) ) +ROM_END + + } // anonymous namespace @@ -265,8 +454,10 @@ CONS( 2004, jak_batm, 0, 0, spg2xx_jakks, batman, jakks_state, empty_ini CONS( 2004, jak_mk, 0, 0, mk, mk, jakks_state, empty_init, "JAKKS Pacific Inc / Digital Eclipse", "Mortal Kombat (JAKKS Pacific TV Game)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // this is an older unit than the jak_mpac Game Key Ready set and features no GameKey branding -CONS( 2004, jak_mpacw,0, 0, jakks_mpac, jak_mpac, jakks_state, empty_init, "JAKKS Pacific Inc / Namco / HotGen Ltd", "Ms. Pac-Man 7-in-1 (Wireless) (Ms. Pac-Man, Pole Position, Galaga, Xevious, Mappy, New Rally X, Bosconian) (18 AUG 2004 A)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +CONS( 2004, jak_mpacw, 0, 0, jakks_mpac, jak_mpac, jakks_state, empty_init, "JAKKS Pacific Inc / Namco / HotGen Ltd", "Ms. Pac-Man Collection 7-in-1 (JAKKS Pacific TV Game) (wireless, 18 AUG 2004 A)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +CONS( 2004, jak_mpacq, jak_mpacw, 0, jakks_mpac, jak_mpac, jakks_state, empty_init, "JAKKS Pacific Inc / Namco / HotGen Ltd", "Ms. Pac-Man Collection 7-in-1 (JAKKS Pacific TV Game) (QVC version, 12 JUL 2004 A)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +CONS( 2004, jak_mpaco, jak_mpac, 0, jakks_mpaco, jak_mpaco, jakks_state, empty_init, "JAKKS Pacific Inc / Namco / HotGen Ltd", "Ms. Pac-Man Collection 5-in-1 (JAKKS Pacific TV Game) (01 APR 2004 A)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // Post-GameKey units (all of these still have GameKey references in the code even if the physical connector was no longer present on the PCB) @@ -279,7 +470,7 @@ CONS( 2004, jak_mpacw,0, 0, jakks_mpac, jak_mpac, jakks_state, empty_init, "JA // // A further updated version of this, adapted for touch controls, was released as a 'TV Touch' unit, see // spg2xx_jakks_tvtouch.cpp -CONS( 2007, jak_sbjd, 0, 0, spg2xx_jakks, spg2xx_jakks, jakks_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "SpongeBob SquarePants Jellyfish Dodge (JAKKS Pacific TV Game) (Apr 5 2007)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +CONS( 2007, jak_sbjd, 0, 0, spg2xx_jakks, spg2xx_jakks, jakks_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "SpongeBob SquarePants Jellyfish Dodge (JAKKS Pacific TV Game) (Apr 5 2007)", MACHINE_IMPERFECT_SOUND ) CONS( 2008, jak_wall, 0, 0, spg2xx_jakks, spg2xx_jakks, jakks_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "Wall-E (JAKKS Pacific TV Game) (Dec 18 2007 11:34:25)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) @@ -287,8 +478,29 @@ CONS( 2007, jak_potc, 0, 0, spg2xx_jakks, spg2xx_jakks, jakks_state, empty_ini CONS( 2006, jak_supm, 0, 0, spg2xx_jakks, jak_supm, jakks_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "Superman in Super Villain Showdown (JAKKS Pacific TV Game) (26 Jan 2006 A)", MACHINE_IMPERFECT_SOUND ) // has AT24C04 +CONS( 2006, jak_spdv, 0, 0, spg2xx_jakks, spg2xx_spdv, jakks_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "The Amazing Spider-Man in Villain Round-Up (JAKKS Pacific TV Game) (24 Apr 2006 A)", MACHINE_IMPERFECT_SOUND ) + +CONS( 2007, jak_pacg, 0, 0, spg2xx_jakks, spg2xx_pacg, jakks_state, empty_init, "JAKKS Pacific Inc / Namco / HotGen Ltd", "Arcade Gold featuring Pac-Man (20 APR 2007 A SKU O)", MACHINE_IMPERFECT_SOUND ) + +CONS( 2006, jak_spac, 0, 0, spg2xx_jakks, jak_mpac, jakks_state, empty_init, "JAKKS Pacific Inc / Namco / HotGen Ltd", "Super Pac-Man Collection (26 JAN 2006 A SKU L)", MACHINE_IMPERFECT_SOUND ) + +CONS( 2008, jak_rapm, 0, 0, jakks_rapm, jak_rapm, jakks_state, empty_init, "JAKKS Pacific Inc / Namco / HotGen Ltd", "Retro Arcade featuring Pac-Man (20 AUG 2008 A SKU N)", MACHINE_IMPERFECT_SOUND ) + CONS( 2007, jak_spd3, 0, 0, spg2xx_jakks, jak_spd3, jakks_state, empty_init, "JAKKS Pacific Inc / Handheld Games", "Spider-Man 3 (JAKKS Pacific TV Game)", MACHINE_IMPERFECT_SOUND ) +CONS( 2007, jak_cind, 0, 0, spg2xx_jakks, spg2xx_pacg, jakks_state, empty_init, "JAKKS Pacific Inc / Handheld Games", "Cinderella - Once Upon a Midnight (JAKKS Pacific TV Game) (Aug 29 2007 11:15:55)", MACHINE_IMPERFECT_SOUND ) + +CONS( 2007, jak_slpb, 0, 0, spg2xx_jakks, spg2xx_pacg, jakks_state, empty_init, "JAKKS Pacific Inc / Handheld Games", "Sleeping Beauty - Tales of Enchantment (JAKKS Pacific TV Game) (Sep 17 2007 14:45:02)", MACHINE_IMPERFECT_SOUND ) + CONS( 2005, jak_powr, 0, 0, spg2xx_jakks, spg2xx_jakks, jakks_state, empty_init, "JAKKS Pacific Inc / Handheld Games", "Power Rangers S.P.D. (JAKKS Pacific TV Game)", MACHINE_IMPERFECT_SOUND ) CONS( 2006, jak_pix, 0, 0, spg2xx_jakks, spg2xx_jakks, jakks_state, empty_init, "JAKKS Pacific Inc / Handheld Games", "Disney Pixar Classics (JAKKS Pacific TV Game)", MACHINE_IMPERFECT_SOUND ) + +CONS( 2007, jak_hsm, 0, 0, spg2xx_jakks, spg2xx_jakks, jakks_state, empty_init, "JAKKS Pacific Inc / Handheld Games", "High School Musical (JAKKS Pacific TV Game) (Dec 19 2007 17:08:20)", MACHINE_IMPERFECT_SOUND ) + +// menu sounds don't work until you go into a game (work after a reset, bad default initializations?) +CONS( 2006, jak_shrk , 0, 0, spg2xx_jakks, spg2xx_jakks, jakks_state, empty_init, "JAKKS Pacific Inc / Handheld Games", "Dreamworks Shrek / Over The Hedge (JAKKS Pacific TV Game)", MACHINE_IMPERFECT_SOUND ) + +CONS( 2006, jak_marv , 0, 0, spg2xx_jakks, spg2xx_jakks, jakks_state, empty_init, "JAKKS Pacific Inc / Handheld Games", "Marvel Heroes: Ultimate Action (JAKKS Pacific TV Game)", MACHINE_IMPERFECT_SOUND ) + +CONS( 2006, jak_dpma, 0, 0, spg2xx_dpma, spg2xx_dpma, jakks_state, empty_init, "JAKKS Pacific Inc / Handheld Games", "Disney Princess Magical Adventures (JAKKS Pacific TV Game)", MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/tvgames/spg2xx_jakks_gkr.cpp b/src/mame/tvgames/spg2xx_jakks_gkr.cpp index 0cb4a2efb61..0dc73576312 100644 --- a/src/mame/tvgames/spg2xx_jakks_gkr.cpp +++ b/src/mame/tvgames/spg2xx_jakks_gkr.cpp @@ -731,7 +731,7 @@ CONS( 2005, jak_sithp, jak_sith, 0, jakks_gkr_sw_i2c, jak_sith_i2c, jakks_gkr_st // release version of Star Wars Original Trilogy not dumped yet CONS( 2006, jak_swot, 0, 0, jakks_gkr_sw_i2c, jak_sith_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Amaze Entertainment", "Star Wars - Original Trilogy (JAKKS Pacific TV Game, prototype)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // was designed with SW keys in mind, but retail lacked the port 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_mpac, 0, 0, jakks_gkr_nm_i2c, jak_nm_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Namco / HotGen Ltd", "Ms. Pac-Man Collection 5-in-1 (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_capc, 0, 0, jakks_gkr_cc_i2c, jak_cc_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Capcom / HotGen Ltd", "Capcom 3-in-1 (1942, Commando, Ghosts'n Goblins) (JAKKS Pacific TV Game, Game-Key Ready) (29 MAR 2005 B)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses CC keys (no game-keys released) 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) (Jul 11 2005 ORIG)", 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