From c68fbc1bb53d383a4cf4aacb1b9c049a1d5fd1e8 Mon Sep 17 00:00:00 2001 From: David Haywood <28625134+DavidHaywood@users.noreply.github.com> Date: Thu, 17 Dec 2020 12:13:25 +0000 Subject: [PATCH] new NOT WORKING machines (#7562) ------ Turbo Twist Math (US) [Sean Riddle, David Haywood] Turbo Twist Brain Quest (US) [Sean Riddle, David Haywood] new NOT WORKING software list entries ------ leapfrog_turbotwistbrainquest_cart.xml: grades5_6 - Grades 5 & 6 (500-00745) [Sean Riddle, David Haywood] --- hash/leapfrog_turbotwistbrainquest_cart.xml | 20 ++++ src/mame/drivers/leapfrog_iquest.cpp | 101 ++++++++++++++++++-- src/mame/mame.lst | 2 + 3 files changed, 117 insertions(+), 6 deletions(-) create mode 100644 hash/leapfrog_turbotwistbrainquest_cart.xml diff --git a/hash/leapfrog_turbotwistbrainquest_cart.xml b/hash/leapfrog_turbotwistbrainquest_cart.xml new file mode 100644 index 00000000000..5176dae1723 --- /dev/null +++ b/hash/leapfrog_turbotwistbrainquest_cart.xml @@ -0,0 +1,20 @@ + + + + + + + + Grades 5 & 6 (500-00745) + 2002 + LeapFrog + + + + + + + + diff --git a/src/mame/drivers/leapfrog_iquest.cpp b/src/mame/drivers/leapfrog_iquest.cpp index 58ce38d067a..081c4d61c14 100644 --- a/src/mame/drivers/leapfrog_iquest.cpp +++ b/src/mame/drivers/leapfrog_iquest.cpp @@ -139,6 +139,28 @@ public: void leapfrog_turboex(machine_config &config); }; +class leapfrog_turbotwistmath_state : public leapfrog_iquest_state +{ +public: + leapfrog_turbotwistmath_state(const machine_config &mconfig, device_type type, const char *tag) + : leapfrog_iquest_state(mconfig, type, tag) + { } + + void leapfrog_turbotwistmath(machine_config &config); +}; + + + +class leapfrog_turbotwistbrainquest_state : public leapfrog_iquest_state +{ +public: + leapfrog_turbotwistbrainquest_state(const machine_config &mconfig, device_type type, const char *tag) + : leapfrog_iquest_state(mconfig, type, tag) + { } + + void leapfrog_turbotwistbrainquest(machine_config &config); +}; + void leapfrog_iquest_state::machine_start() { @@ -601,7 +623,7 @@ void leapfrog_turboextreme_state::leapfrog_turboex(machine_config &config) SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_refresh_hz(60); m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(10)); - m_screen->set_size(64, 32); // unknown resolution + m_screen->set_size(64, 32); // unknown resolution, lower than iquest m_screen->set_visarea(0, 64-1, 0, 32-1); m_screen->set_screen_update(FUNC(leapfrog_turboextreme_state::screen_update)); m_screen->screen_vblank().set(FUNC(leapfrog_turboextreme_state::rx_line_hack)); @@ -613,9 +635,49 @@ void leapfrog_turboextreme_state::leapfrog_turboex(machine_config &config) SOFTWARE_LIST(config, "cart_list").set_original("leapfrog_turboextreme_cart"); } +void leapfrog_turbotwistmath_state::leapfrog_turbotwistmath(machine_config &config) +{ + leapfrog_iquest_state::leapfrog_base(config); + + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(10)); + m_screen->set_size(64, 8); // unknown resolution, single row display + m_screen->set_visarea(0, 64-1, 0, 8-1); + m_screen->set_screen_update(FUNC(leapfrog_turbotwistmath_state::screen_update)); + m_screen->screen_vblank().set(FUNC(leapfrog_turbotwistmath_state::rx_line_hack)); + + GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "leapfrog_turbotwistmath_cart"); + m_cart->set_width(GENERIC_ROM16_WIDTH); + m_cart->set_device_load(FUNC(leapfrog_turbotwistmath_state::cart_load)); + + SOFTWARE_LIST(config, "cart_list").set_original("leapfrog_turbotwistmath_cart"); +} + +void leapfrog_turbotwistbrainquest_state::leapfrog_turbotwistbrainquest(machine_config &config) +{ + leapfrog_iquest_state::leapfrog_base(config); + + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(10)); + m_screen->set_size(64, 8); // unknown resolution, single row display + m_screen->set_visarea(0, 64-1, 0, 8-1); + m_screen->set_screen_update(FUNC(leapfrog_turbotwistbrainquest_state::screen_update)); + m_screen->screen_vblank().set(FUNC(leapfrog_turbotwistbrainquest_state::rx_line_hack)); + + GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "leapfrog_turbotwistbrainquest_cart"); + m_cart->set_width(GENERIC_ROM16_WIDTH); + m_cart->set_device_load(FUNC(leapfrog_turbotwistbrainquest_state::cart_load)); + + SOFTWARE_LIST(config, "cart_list").set_original("leapfrog_turbotwistbrainquest_cart"); +} + ROM_START( iquest ) ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF ) ROM_LOAD( "iquest.bin", 0x000000, 0x400000, CRC(f785dc4e) SHA1(ec002c18df536737334fe6b7db0e7342bad7b66b)) + + // there is also a 39vf512 flash containing user data ROM_END ROM_START( turboex ) @@ -623,12 +685,39 @@ ROM_START( turboex ) ROM_LOAD( "turbotwistextreme.bin", 0x000000, 0x400000, CRC(d7cabcff) SHA1(7813811c0518aba017f7a79fd477be5ed9fa7529)) ROM_END -// year, name, parent, compat, machine, input, class, init, company, fullname, flags +ROM_START( ttwistm ) + ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF ) + ROM_LOAD( "turbotwistmath.bin", 0x000000, 0x200000, CRC(a21d3723) SHA1(d0ae245621d7bc92bdf9fd683908690db6e25133)) +ROM_END + +ROM_START( ttwistbq ) + ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF ) + ROM_LOAD( "turbotwistbrainquest.bin", 0x000000, 0x200000, CRC(b184a517) SHA1(181975da58b3d117a389c54ac025b6a9b24342b2)) +ROM_END + +// year, name, parent, compat, machine, input, class, init, company, fullname, flags // it is unknown if the versions of IQuest without 4.0 on the case have different system ROM -CONS( 2004, iquest, 0, 0, leapfrog_iquest, leapfrog_iquest, leapfrog_iquest_state, empty_init, "LeapFrog", "IQuest 4.0 (US)", MACHINE_IS_SKELETON ) +CONS( 2004, iquest, 0, 0, leapfrog_iquest, leapfrog_iquest, leapfrog_iquest_state, empty_init, "LeapFrog", "IQuest 4.0 (US)", MACHINE_IS_SKELETON ) -CONS( 2004, turboex, 0, 0, leapfrog_turboex, leapfrog_iquest, leapfrog_turboextreme_state, empty_init, "LeapFrog", "Turbo Extreme (US)", MACHINE_IS_SKELETON ) +CONS( 2004, turboex, 0, 0, leapfrog_turboex, leapfrog_iquest, leapfrog_turboextreme_state, empty_init, "LeapFrog", "Turbo Extreme (US)", MACHINE_IS_SKELETON ) -// Turbo Twist Math +// from a silver unit with orange lettering (there are different case styles, it is unknown if the software changed) +CONS( 2002, ttwistm, 0, 0, leapfrog_turbotwistmath, leapfrog_iquest, leapfrog_turbotwistmath_state, empty_init, "LeapFrog", "Turbo Twist Math (US)", MACHINE_IS_SKELETON ) + +CONS( 2002, ttwistbq, 0, 0, leapfrog_turbotwistbrainquest, leapfrog_iquest, leapfrog_turbotwistbrainquest_state, empty_init, "LeapFrog", "Turbo Twist Brain Quest (US)", MACHINE_IS_SKELETON ) + +// Undumped units + +// Similar to above +// Turbo Twist Fact Blaster (compatible with Brain Quest cartridges) // Turbo Twist Spelling -// more? +// Turbo Twist Vocabulator + +// These have 2 digit 7-seg style displays, it is unknown if they are on related hardware +// Twist & Shout Addition +// Twist & Shout Subtraction +// Twist & Shout Multiplication +// Twist & Shout Division + +// This appears to have a 4 digit 7-seg style display, unknown if it is on related hardware +// Twist & Shout Phonics diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 603e576c6f7..cce0fa39c3b 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -19438,6 +19438,8 @@ lcmate2 // @source:leapfrog_iquest.cpp iquest +ttwistbq +ttwistm turboex @source:leapfrog_leappad.cpp