diff --git a/hash/juicebox.xml b/hash/juicebox.xml index 6d8f9784999..dac6c95c6df 100644 --- a/hash/juicebox.xml +++ b/hash/juicebox.xml @@ -5,25 +5,45 @@ license:CC0 --> - diff --git a/hash/leapfrog_leapster_explorer_cart.xml b/hash/leapfrog_leapster_explorer_cart.xml new file mode 100644 index 00000000000..306e7274575 --- /dev/null +++ b/hash/leapfrog_leapster_explorer_cart.xml @@ -0,0 +1,44 @@ + + + + + + + + TinkerBell and the Lost Treasure (USA) + 2010 + LeapFrog + + + + + + + + + + Mr. Pencil Saves Doodleburg (USA) + 2010 + LeapFrog + + + + + + + + + + + Adventure Sketchers (USA) (Creativity Learning Game) + 2013 + LeapFrog + + + + + + + + + diff --git a/hash/leapfrog_zippity_cart.xml b/hash/leapfrog_zippity_cart.xml index 4bb398526df..8c978684672 100644 --- a/hash/leapfrog_zippity_cart.xml +++ b/hash/leapfrog_zippity_cart.xml @@ -7,7 +7,6 @@ license:CC0 + + The Princess and the Frog - Magical Bayou Adventure (500-13779-A) (UK) + 2009 + LeapFrog + + + + + + + The World of Cars - Driven to Learn (500-13589-B) (UK) 2009 diff --git a/hash/mobigo_cart.xml b/hash/mobigo_cart.xml index b9f0c4c7acf..cc83a287435 100644 --- a/hash/mobigo_cart.xml +++ b/hash/mobigo_cart.xml @@ -45,7 +45,20 @@ license:CC0 - + + + Disney/Pixar Cars 2 (USA, rev 2?) + 2011 + VTech + + + + + + + + + Disney/Pixar Cars 2 (Germany) 2011 VTech @@ -122,18 +135,6 @@ license:CC0 2010 VTech - - - - - - - - - Disney Princess (USA, alt) - 2010 - VTech - @@ -189,18 +190,6 @@ license:CC0 - - Disney Jake and the Neverland Pirates (USA, alt) - 2012 - VTech - - - - - - - - Jake und die Nimmerland Piraten (Germany) 2012 @@ -439,8 +428,9 @@ license:CC0 + - Thomas & Friends - Really Useful Engines (USA) + Thomas & Friends - Really Useful Engines (USA, rev 1?) 2012 VTech @@ -451,6 +441,19 @@ license:CC0 + + + Thomas & Friends - Really Useful Engines (USA, rev 2?) + 2012 + VTech + + + + + + + + Thomas & seine Freunde - Wirklich Nützliche Loks (Germany) 2012 diff --git a/hash/vtech_innotab_cart.xml b/hash/vtech_innotab_cart.xml index 9a0523fe5d5..ad7778af36e 100644 --- a/hash/vtech_innotab_cart.xml +++ b/hash/vtech_innotab_cart.xml @@ -15,11 +15,36 @@ license:CC0 Mickey Mouse Clubhouse (UK) 2011 VTech - + + + + The Penguins of Madagascar (USA) + 2012 + VTech + + + + + + + + + + Teenage Mutant Ninja Turtles - Turtle Power! (USA) + 2013 + VTech + + + + + + + + diff --git a/hash/vtech_storio_cart.xml b/hash/vtech_storio_cart.xml index 30207f54b71..23cfd329853 100644 --- a/hash/vtech_storio_cart.xml +++ b/hash/vtech_storio_cart.xml @@ -36,7 +36,7 @@ license:CC0 | 80-280123(??) | Toy Story 3 (Netherlands) | 80-280200(US) | Mr. Men and Little Miss - Mr. Messy and the Missing Sock | 80-280203(UK) | Mr. Men and Little Miss - Mr. Messy and the Missing Sock - | 80-280300(US) | Disney Fairies - Tinkerbell and The Great Fairy Rescue + XX | 80-280300(US) | Disney Fairies - Tinkerbell and The Great Fairy Rescue | 80-280303(UK) | Disney Fairies - Tinkerbell and The Great Fairy Rescue | 80-280304(GER) | Disney Fairies - Tinkerbell Ein Sommer Voller Abenteuer | 80-280323(??) | Disney Fairies - Tinkerbell en de Grote Reddingsoperatie (Netherlands) @@ -50,19 +50,19 @@ license:CC0 | 80-280700(US) | The Little Engine That Could | 80-280804(GER) | Rufus in der Stadt (Storio Pack-in cart) | 80-280???(??) | Rufus arriva in città (Italy, Storio Pack-in cart, product code unconfirmed) - | 80-280900(US) | Dora the Explorer - Dora and the Three Little Pigs + XX | 80-280900(US) | Dora the Explorer - Dora and the Three Little Pigs | 80-280903(UK) | Dora the Explorer - Dora and the Three Little Pigs XX | 80-280904(GER) | Dora - Dora und die drei Schweinchen | 80-280905(FR) | Dora l'exploratrice - Dora et les trois petit cochons | 80-280922(SP) | Dora la exploradora - Dora y los Tres Cerditos | 80-280923(??) | Dora - Dora en de Drie Kleine Biggetjes (Netherlands) - | 80-281000(US) | Mickey Mouse Clubhouse + XX | 80-281000(US) | Mickey Mouse Clubhouse | 80-281003(UK) | Mickey Mouse Clubhouse XX | 80-281004(GER) | Micky Maus Wunderhaus | 80-281005(FR) | La Maison de Mickey | 80-281022(SP) | La casa de Mickey Mouse | 80-281023(??) | Mickey Mouse Clubhuis - Mickey zoekt en vindt! (Netherlands) - | 80-281100(US) | Disney Princess - Belle's Special Treat / A Gift from the Heart + XX | 80-281100(US) | Disney Princess - Belle's Special Treat / A Gift from the Heart | 80-281103(UK) | Disney Princess - Belle's Special Treat / A Gift from the Heart | 80-281104(GER) | Disney Princess - Eine besondere Überraschung für Belle / Das Geburtstagsgeschenk | 80-281105(FR) | Disney Princess - Une surprise pour Belle / Un cadeau qui vient du coeur @@ -89,7 +89,7 @@ license:CC0 | 80-281723(??) | De Pinguïns van Madagascar - De Helm (Netherlands) | 80-281800(US) | Kung Fu Panda 2 | 80-281803(UK) | Kung Fu Panda 2 - | 80-281900(US) | Disney/Pixar Cars 2 + XX | 80-281900(US) | Disney/Pixar Cars 2 | 80-281903(UK) | Disney/Pixar Cars 2 | 80-281904(GER) | Disney/Pixar Cars 2 | 80-281905(FR) | Disney/Pixar Cars 2 @@ -109,7 +109,7 @@ license:CC0 | 80-282222(SP) | Madagascar 3 - De marcha por Europa | 80-282223(??) | Madagascar 3 - Op Avontuur in Europa (Netherlands) | 80-282300(US) | Dinosaur Train - T.Rex Teeth - | 80-282400(US) | Hello Kitty - Hello Kitty's Surprise + XX | 80-282400(US) | Hello Kitty - Hello Kitty's Surprise | 80-282403(UK) | Hello Kitty - Hello Kitty's Surprise | 80-282404(GER) | Hello Kitty - Hello Kittys Überraschung! | 80-282422(SP) | Hello Kitty - La sorpresa de Hello Kitty @@ -135,29 +135,70 @@ license:CC0 VTech - + - + + Dora and the 3 Little Pigs (USA) + 2010 + VTech + + + + + + + + + Dora und die drei Schweinchen (Germany) 2011 VTech - + - + + Mickey Mouse Clubhouse (USA) + 2010 + VTech + + + + + + + + + + + Mickey Mouse Clubhouse (USA, flash chip) + 2010 + VTech + + + + + + + + + + + Micky Maus Wunderhaus (Germany) 2011 VTech - + @@ -168,7 +209,7 @@ license:CC0 VTech - + @@ -179,7 +220,55 @@ license:CC0 VTech - + + + + + + + Cars 2 (USA) + 2011 + VTech + + + + + + + + + + Hello Kitty's Surprise (USA) + 2012 + VTech + + + + + + + + + + Disney Princess - A Gift From The Heart & Belle's Special Treat (USA) + 2010 + VTech + + + + + + + + + + TinkerBell and the Great Fairy Rescue (USA) + 2010 + VTech + + + + diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index c034b9b403b..a8863d06bc8 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -2838,6 +2838,7 @@ createMESSProjects(_target, _subtarget, "leapfrog") files { MAME_DIR .. "src/mame/drivers/leapster.cpp", MAME_DIR .. "src/mame/drivers/leapfrog_leappad.cpp", + MAME_DIR .. "src/mame/drivers/leapfrog_leapster_explorer.cpp", MAME_DIR .. "src/mame/drivers/leapfrog_iquest.cpp", } @@ -4305,39 +4306,40 @@ files { createMESSProjects(_target, _subtarget, "vtech") files { + MAME_DIR .. "src/mame/drivers/clickstart.cpp", MAME_DIR .. "src/mame/drivers/crvision.cpp", MAME_DIR .. "src/mame/includes/crvision.h", MAME_DIR .. "src/mame/drivers/gamemachine.cpp", - MAME_DIR .. "src/mame/audio/nl_gamemachine.h", MAME_DIR .. "src/mame/audio/nl_gamemachine.cpp", + MAME_DIR .. "src/mame/audio/nl_gamemachine.h", MAME_DIR .. "src/mame/drivers/geniusiq.cpp", MAME_DIR .. "src/mame/drivers/geniusjr.cpp", MAME_DIR .. "src/mame/drivers/gkidabc.cpp", MAME_DIR .. "src/mame/drivers/glcx.cpp", - MAME_DIR .. "src/mame/drivers/vtech_eu3a12.cpp", + MAME_DIR .. "src/mame/drivers/innotv_innotabmax.cpp", + MAME_DIR .. "src/mame/drivers/inteladv.cpp", MAME_DIR .. "src/mame/drivers/iqunlim.cpp", MAME_DIR .. "src/mame/drivers/laser3k.cpp", MAME_DIR .. "src/mame/drivers/lcmate2.cpp", + MAME_DIR .. "src/mame/drivers/pc2000.cpp", MAME_DIR .. "src/mame/drivers/pc4.cpp", MAME_DIR .. "src/mame/includes/pc4.h", MAME_DIR .. "src/mame/video/pc4.cpp", - MAME_DIR .. "src/mame/drivers/pc2000.cpp", MAME_DIR .. "src/mame/drivers/prestige.cpp", - MAME_DIR .. "src/mame/drivers/vtech1.cpp", - MAME_DIR .. "src/mame/drivers/vtech2.cpp", - MAME_DIR .. "src/mame/includes/vtech2.h", - MAME_DIR .. "src/mame/machine/vtech2.cpp", - MAME_DIR .. "src/mame/video/vtech2.cpp", MAME_DIR .. "src/mame/drivers/socrates.cpp", MAME_DIR .. "src/mame/audio/socrates.cpp", MAME_DIR .. "src/mame/audio/socrates.h", - MAME_DIR .. "src/mame/drivers/inteladv.cpp", - MAME_DIR .. "src/mame/includes/vsmile.h", - MAME_DIR .. "src/mame/drivers/vsmile.cpp", - MAME_DIR .. "src/mame/drivers/vsmileb.cpp", - MAME_DIR .. "src/mame/drivers/clickstart.cpp", MAME_DIR .. "src/mame/drivers/storio.cpp", - MAME_DIR .. "src/mame/drivers/innotv_innotabmax.cpp", + MAME_DIR .. "src/mame/drivers/vsmile.cpp", + MAME_DIR .. "src/mame/includes/vsmile.h", + MAME_DIR .. "src/mame/drivers/vsmileb.cpp", + MAME_DIR .. "src/mame/drivers/vtech1.cpp", + MAME_DIR .. "src/mame/drivers/vtech2.cpp", + MAME_DIR .. "src/mame/includes/vtech2.h", + MAME_DIR .. "src/mame/video/vtech2.cpp", + MAME_DIR .. "src/mame/machine/vtech2.cpp", + MAME_DIR .. "src/mame/drivers/vtech_eu3a12.cpp", + MAME_DIR .. "src/mame/drivers/vtech_innotab.cpp", } createMESSProjects(_target, _subtarget, "wang") diff --git a/src/mame/drivers/leapfrog_leappad.cpp b/src/mame/drivers/leapfrog_leappad.cpp index 197b24d5547..87798e65ed9 100644 --- a/src/mame/drivers/leapfrog_leappad.cpp +++ b/src/mame/drivers/leapfrog_leappad.cpp @@ -217,6 +217,8 @@ ROM_START( ltleappad ) ROM_DEFAULT_BIOS("mar_10_2005") ROM_SYSTEM_BIOS( 0, "mar_10_2005", "Mar 10 2005" ) ROMX_LOAD( "littletouchleappadbios.bin", 0x000000, 0x400000, CRC(13687b26) SHA1(6ec1a47aaef9c9ed134bb143c2631f4d89d7c236), ROM_BIOS(0) ) // contains "Mar 10 2005 07:01:53 152-11244" and "Copyright (c) 2002-2005 LeapFrog Enterprises, Inc." + ROM_SYSTEM_BIOS( 1, "germany", "Germany, Jan 11 2005" ) + ROMX_LOAD( "leappad_little_touch_german.bin", 0x000000, 0x400000, CRC(39ee76a2) SHA1(34f1b6e075e10e14380d925944f4c84d068ec58e), ROM_BIOS(1) ) // contains "Jan 11 2005 10:45:42 152-11010 Full Base ROM: V1.0 - Germany" ROM_END // year, name, parent, compat, machine, input, class, init, company, fullname, flags diff --git a/src/mame/drivers/leapfrog_leapster_explorer.cpp b/src/mame/drivers/leapfrog_leapster_explorer.cpp new file mode 100644 index 00000000000..af34683cb9c --- /dev/null +++ b/src/mame/drivers/leapfrog_leapster_explorer.cpp @@ -0,0 +1,108 @@ +// license:BSD-3-Clause +// copyright-holders:David Haywood +/****************************************************************************** + + LeapFrog Leapster Explorer + + - runs Linux + - unknown ARM9 based SoC + + Internal ROM not currently dumped, this file exists to reference the + Software List + +*******************************************************************************/ + +#include "emu.h" + +#include "cpu/arm7/arm7.h" +#include "cpu/arm7/arm7core.h" + +#include "bus/generic/slot.h" +#include "bus/generic/carts.h" + +#include "screen.h" +#include "softlist.h" +#include "speaker.h" + +class leapfrog_leapster_explorer_state : public driver_device +{ +public: + leapfrog_leapster_explorer_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_screen(*this, "screen") + , m_cart(*this, "cartslot") + , m_cart_region(nullptr) + { } + + void leapfrog_leapster_explorer(machine_config &config); + +private: + virtual void machine_start() override; + + DECLARE_DEVICE_IMAGE_LOAD_MEMBER(cart_load); + + required_device m_maincpu; + + required_device m_screen; + required_device m_cart; + memory_region *m_cart_region; + + uint32_t screen_update_innotab(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); +}; + +uint32_t leapfrog_leapster_explorer_state::screen_update_innotab(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) +{ + return 0; +} + +void leapfrog_leapster_explorer_state::machine_start() +{ + // if there's a cart, override the standard mapping + if (m_cart && m_cart->exists()) + { + m_cart_region = memregion(std::string(m_cart->tag()) + GENERIC_ROM_REGION_TAG); + } +} + +DEVICE_IMAGE_LOAD_MEMBER(leapfrog_leapster_explorer_state::cart_load) +{ + uint32_t size = m_cart->common_get_size("rom"); + + m_cart->rom_alloc(size, GENERIC_ROM16_WIDTH, ENDIANNESS_LITTLE); + m_cart->common_load_rom(m_cart->get_rom_base(), size, "rom"); + + return image_init_result::PASS; +} + +static INPUT_PORTS_START( leapfrog_leapster_explorer ) +INPUT_PORTS_END + + +void leapfrog_leapster_explorer_state::leapfrog_leapster_explorer(machine_config& config) +{ + ARM9(config, m_maincpu, 393000000); // unknown ARM9 type + + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_size(320, 262); + m_screen->set_visarea(0, 320 - 1, 0, 240 - 1); + m_screen->set_screen_update(FUNC(leapfrog_leapster_explorer_state::screen_update_innotab)); + + SPEAKER(config, "lspeaker").front_left(); + SPEAKER(config, "rspeaker").front_right(); + + GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "leapfrog_leapster_explorer_cart"); + m_cart->set_width(GENERIC_ROM16_WIDTH); + m_cart->set_device_load(FUNC(leapfrog_leapster_explorer_state::cart_load)); + + SOFTWARE_LIST(config, "cart_list").set_original("leapfrog_leapster_explorer_cart"); +} + +ROM_START( leapexpr ) + ROM_REGION( 0x0100000, "maincpu", ROMREGION_ERASEFF ) + // unknown internal ROM + ROM_LOAD( "internal.rom", 0x000000, 0x0100000, NO_DUMP ) +ROM_END + +CONS( 2010, leapexpr, 0, 0, leapfrog_leapster_explorer, leapfrog_leapster_explorer, leapfrog_leapster_explorer_state, empty_init, "LeapFrog", "Leapster Explorer", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/nes_vt369_vtunknown.cpp b/src/mame/drivers/nes_vt369_vtunknown.cpp index 1be6d6b7f1a..421691e63fb 100644 --- a/src/mame/drivers/nes_vt369_vtunknown.cpp +++ b/src/mame/drivers/nes_vt369_vtunknown.cpp @@ -617,6 +617,11 @@ ROM_START( rtvgc300fz ) ROM_LOAD( "jg7800fz.bin", 0x00000, 0x4000000, CRC(c9d319d2) SHA1(9d0d1435b802f63ce11b94ce54d11f4065b324cc) ) ROM_END +ROM_START( lxccatv ) + ROM_REGION( 0x2000000, "mainrom", 0 ) + ROM_LOAD( "120n1.bin", 0x00000, 0x2000000, CRC(6b9cf537) SHA1(44276c3ef928c76a3ecf404d2e531cd3ce5561af) ) +ROM_END + // The maximum address space a VT chip can see is 32MB, so these 64MB roms are actually 2 programs (there are vectors in the first half and the 2nd half) // there must be a bankswitch bit that switches the whole 32MB space. Loading the 2nd half in Star Wars does actually boot straight to a game. ROM_START( lxcmcy ) @@ -901,25 +906,26 @@ CONS( 2017, fapocket, 0, 0, nes_vt369_vtunknown_fa_4x16mb, nes_vt369_v // don't even get to menu. very enhanced chipset, VT368/9? CONS( 2012, dgun2561, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "dreamGEAR", "My Arcade Portable Gaming System with 140 Games (DGUN-2561)", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme -CONS( 200?, lxcmcy, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Lexibook Compact Cyber Arcade", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme -CONS( 200?, lxcmc250, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Lexibook Compact Cyber Arcade - 250-in-1 (JL2375)", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme -CONS( 200?, lxcmcysw, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Lexibook Compact Cyber Arcade - Star Wars Rebels", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme -CONS( 200?, lxcmcyfz, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Lexibook Compact Cyber Arcade - Frozen", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme -CONS( 200?, lxcmcydp, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Lexibook Compact Cyber Arcade - Disney Princess", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme -CONS( 200?, lxcmcysp, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Lexibook Compact Cyber Arcade - Marvel Ultimate Spider-Man", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme -CONS( 200?, lxcmcycr, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Lexibook Compact Cyber Arcade - Cars", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme -CONS( 200?, lxcmcypj, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Lexibook Compact Cyber Arcade - PJ Masks", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme +CONS( 2012, lxccatv, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Compact Cyber Arcade TV - 120 in 1 (JL2370)", MACHINE_NOT_WORKING ) // 32MByte ROM, 2011 on case, 2012 on PCB +CONS( 200?, lxcmcy, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Compact Cyber Arcade", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme +CONS( 200?, lxcmc250, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Compact Cyber Arcade - 250-in-1 (JL2375)", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme +CONS( 200?, lxcmcysw, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Compact Cyber Arcade - Star Wars Rebels", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme +CONS( 200?, lxcmcyfz, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Compact Cyber Arcade - Frozen", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme +CONS( 200?, lxcmcydp, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Compact Cyber Arcade - Disney Princess", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme +CONS( 200?, lxcmcysp, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Compact Cyber Arcade - Marvel Ultimate Spider-Man", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme +CONS( 200?, lxcmcycr, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Compact Cyber Arcade - Cars", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme +CONS( 200?, lxcmcypj, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Compact Cyber Arcade - PJ Masks", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme // the data order is swapped for this one, maybe other internal differences? -CONS( 200?, lxcmcypp, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, init_lxcmcypp, "Lexibook", "Lexibook Compact Cyber Arcade - Paw Patrol", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme +CONS( 200?, lxcmcypp, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, init_lxcmcypp, "Lexibook", "Compact Cyber Arcade - Paw Patrol", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme -CONS( 200?, lxccminn, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Lexibook Console Colour - Minnie Mouse", MACHINE_NOT_WORKING ) // 64Mbyte (used) ROM, must be externally banked, or different addressing scheme -CONS( 200?, lxccplan, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Lexibook Console Colour - Disney's Planes", MACHINE_NOT_WORKING ) // 64Mbyte (used) ROM, must be externally banked, or different addressing scheme +CONS( 200?, lxccminn, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Console Colour - Minnie Mouse", MACHINE_NOT_WORKING ) // 64Mbyte (used) ROM, must be externally banked, or different addressing scheme +CONS( 200?, lxccplan, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Console Colour - Disney's Planes", MACHINE_NOT_WORKING ) // 64Mbyte (used) ROM, must be externally banked, or different addressing scheme // GB-NO13-Main-VT389-2 on PCBs -CONS( 2016, rtvgc300, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Lexibook Retro TV Game Console - 300 Games", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme -CONS( 2017, rtvgc300fz,0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Lexibook Retro TV Game Console - Frozen - 300 Games", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme +CONS( 2016, rtvgc300, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Retro TV Game Console - 300 Games", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme +CONS( 2017, rtvgc300fz,0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Retro TV Game Console - Frozen - 300 Games", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme /* The following are also confirmed to be NES/VT derived units, most having a standard set of games with a handful of lazy graphic mods thrown in to fit the unit theme diff --git a/src/mame/drivers/storio.cpp b/src/mame/drivers/storio.cpp index 7e3b6560bd8..da45315139a 100644 --- a/src/mame/drivers/storio.cpp +++ b/src/mame/drivers/storio.cpp @@ -45,7 +45,6 @@ public: { } void vtech_storio(machine_config &config); - void vtech_innotab(machine_config &config); private: virtual void machine_start() override; @@ -122,12 +121,6 @@ void vtech_storio_state::vtech_storio(machine_config &config) SOFTWARE_LIST(config, "cart_list").set_original("vtech_storio_cart"); } -void vtech_storio_state::vtech_innotab(machine_config &config) -{ - vtech_storio_base(config); - SOFTWARE_LIST(config, "cart_list").set_original("vtech_innotab_cart"); -} - // BIOS is 1 GBIT (128M × 8 BIT) CMOS NAND EEPROM (Toshiba TC58NVG0S3ETA00) // ROM image from VTech, not padded to the real ROM size @@ -185,11 +178,6 @@ ROM_START( storionl ) ROM_LOAD( "nldut-pack_20111017.bin", 0x000000, 0x03af81c6, CRC(6cfac599) SHA1(d16b45fd287c9d823bde13b88eb6c8158ac2b475) ) ROM_END -ROM_START( innotab2 ) - ROM_REGION( 0x08400000, "maincpu", ROMREGION_ERASEFF ) - ROM_LOAD( "innotab2.bin", 0x000000, 0x08400000, NO_DUMP ) -ROM_END - // year, name, parent, compat, machine, input, class, init, company, fullname, flags CONS( 2011, vreader, 0, 0, vtech_storio, vtech_storio, vtech_storio_state, empty_init, "VTech", "V.Reader (US, English, 2011-10-17)", MACHINE_IS_SKELETON ) CONS( 2011, vreadercaen, vreader, 0, vtech_storio, vtech_storio, vtech_storio_state, empty_init, "VTech", "V.Reader (CA, English, 2011-10-17)", MACHINE_IS_SKELETON ) @@ -200,5 +188,3 @@ CONS( 2011, storioes, vreader, 0, vtech_storio, vtech_storio, vtech_sto CONS( 2011, storioesa, vreader, 0, vtech_storio, vtech_storio, vtech_storio_state, empty_init, "VTech", "Storio (ES, Spanish, 2011-06-17?)", MACHINE_IS_SKELETON ) CONS( 2011, storiofr, vreader, 0, vtech_storio, vtech_storio, vtech_storio_state, empty_init, "VTech", "Storio (FR, French, 2011-10-17)", MACHINE_IS_SKELETON ) CONS( 2011, storionl, vreader, 0, vtech_storio, vtech_storio, vtech_storio_state, empty_init, "VTech", "Storio (NL, Dutch, 2011-10-17)", MACHINE_IS_SKELETON ) -// the InnoTAB 1/2/3 seem closely related? -CONS( 2011, innotab2, 0, 0, vtech_innotab, vtech_storio, vtech_storio_state, empty_init, "VTech", "InnoTAB 2 (UK)", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/vtech_innotab.cpp b/src/mame/drivers/vtech_innotab.cpp new file mode 100644 index 00000000000..ff5509b8fed --- /dev/null +++ b/src/mame/drivers/vtech_innotab.cpp @@ -0,0 +1,218 @@ +// license:BSD-3-Clause +// copyright-holders:David Haywood +/****************************************************************************** + + VTech InnoTab 1/2/3 + NOT InnoTab MAX + + InnoTab 1/2/3 appear to be compatible with each other (updated internal + software etc.) + + where do the InnoTab 3S and InnoTab 2 Baby fit in? + +*******************************************************************************/ + +#include "emu.h" + +#include "cpu/arm7/arm7.h" +#include "cpu/arm7/arm7core.h" + +#include "bus/generic/slot.h" +#include "bus/generic/carts.h" + +#include "screen.h" +#include "softlist.h" +#include "speaker.h" + +class vtech_innotab_state : public driver_device +{ +public: + vtech_innotab_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_screen(*this, "screen") + , m_cart(*this, "cartslot") + , m_cart_region(nullptr) + { } + + void vtech_innotab(machine_config &config); + +private: + virtual void machine_start() override; + + DECLARE_DEVICE_IMAGE_LOAD_MEMBER(cart_load); + + required_device m_maincpu; + + required_device m_screen; + required_device m_cart; + memory_region *m_cart_region; + + uint32_t screen_update_innotab(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); +}; + +uint32_t vtech_innotab_state::screen_update_innotab(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) +{ + return 0; +} + +void vtech_innotab_state::machine_start() +{ + // if there's a cart, override the standard mapping + if (m_cart && m_cart->exists()) + { + m_cart_region = memregion(std::string(m_cart->tag()) + GENERIC_ROM_REGION_TAG); + } +} + +DEVICE_IMAGE_LOAD_MEMBER(vtech_innotab_state::cart_load) +{ + uint32_t size = m_cart->common_get_size("rom"); + + m_cart->rom_alloc(size, GENERIC_ROM16_WIDTH, ENDIANNESS_LITTLE); + m_cart->common_load_rom(m_cart->get_rom_base(), size, "rom"); + + return image_init_result::PASS; +} + +static INPUT_PORTS_START( vtech_innotab ) +INPUT_PORTS_END + + +void vtech_innotab_state::vtech_innotab(machine_config& config) +{ + ARM9(config, m_maincpu, 240000000); // unknown ARM type + + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_size(320, 262); + m_screen->set_visarea(0, 320 - 1, 0, 240 - 1); + m_screen->set_screen_update(FUNC(vtech_innotab_state::screen_update_innotab)); + + SPEAKER(config, "lspeaker").front_left(); + SPEAKER(config, "rspeaker").front_right(); + + GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "vtech_innotab_cart"); + m_cart->set_width(GENERIC_ROM16_WIDTH); + m_cart->set_device_load(FUNC(vtech_innotab_state::cart_load)); + + SOFTWARE_LIST(config, "cart_list").set_original("vtech_innotab_cart"); +} + +/* +************************************************************** +APP Version : 10.90 + Device : THGBM4G4D1HBAIR(ISP)_4Bit +************************************************************** + + +File Name : +******************************************************************* +D:\Xgpro\UserData\EMMC_Data +ECSD_CSD.BIN +******************************************************************* + + + <1> -- Production Info.and Device life time-- + + MID : 11 + PNM : 002G49 + Product Date : 5-2012 + Version : MMC V4.41 + + Device life time Type A : Not defined + Device life time Type B : Not defined + Device life time (PRE_EOL_INFO) : Not Defined + + <2> -- Partition Size Info.-- + + BOOT1 SIZE : 1024 KB + BOOT2 SIZE : 1024 KB + RPMB SIZE : 128 KB + GPP1 SIZE : 0 KB + GPP2 SIZE : 0 KB + GPP3 SIZE : 0 KB + GPP4 SIZE : 0 KB + USER SIZE : 1,916,928 KB + ( 0x 00_7500_0000 ) + Password Protect Features : YES + + <5> -- other Informations -- + + MAX_READ_BL_LEN : 1024 bytes + MAX_WRITE_BL_LEN : 512 bytes + MAX_TRAN_SPEED : 55.000 MHZ + + BOOT_BUS_CONDITIONS[177] : 00 + BOOT_CONFIG_PROT[178] : 00 + PARTITION_CONFIG[179] : 00 + RST_n_FUNCTION[162] : 00 + + ENH_START_ADDR : 00000000 + ENH_SIZE_MULT : 000000 + MAX_ENH_SIZE_MULT : 0003A8 + PARTITIONS_ATTRIBUTE : 00 + WR_REL_SET : 00 + WR_REL_PARAM : 05 + PARTITION_SETTING_COMPLETED : 00 + + HC_WP_GRP_SIZE : 1 + HC_ERASE_GRP_SIZE : 2 + WP_GRP_ENABLE : 1 + WP_GRP_SIZE : 1 + ERASE_GRP_MULT : 31 + ERASE_GRP_SIZE : 31 + CCC : 00F5 + DSR implemented : 0 + PARTITION_ACCESS : 10 ms + ERASED_MEM_CONT : 01 + DYNCAP_NEEDED : 00 + SECURE_WP_INFO : 00 + SEC_ERASE_MULT : 10 + ERASE_TIMEOUT_MULT: 02 + NATIVE_SECTOR_SIZE: 00 (512B) + INI_TIMEOUT_AP : 3000 ms + INI_TIMEOUT_EMU : 0 ms + +---------------------------------------------------------------------------------------------------------------------- +---------------------------------------------------------------------------------------------------------------------- + +************************************************************** +APP Version : 10.90 + Device : THGBM4G4D1HBAIR(ISP)_4Bit +************************************************************** + +Init EMMC... OK! ( OCR register: 80FF8080 ) +Verifing CSD Succeeded +Verifing ECSD Succeeded +Verifing BOOT1 : Succeeded. Time : 0. 47 S -- Partition Size :1024 KB Processing Size from the File : 1024 KB ) +Verifing BOOT2 : Succeeded. Time : 0. 47 S -- Partition Size :1024 KB Processing Size from the File : 1024 KB ) +Analysis file is complete, Space usage: 20.26% time: 13S +Verifing User Area : Succeeded. Time : 36.531 S -- Partition Size :1916928 KB( Processing Size from the File : 1916928 KB ) +32 bits CheckSum : 0x 86F14222 + +*/ + +ROM_START( innotab2 ) + ROM_REGION( 0x0100000, "maincpu", ROMREGION_ERASEFF ) + // are there any other dumpable devices?, or internal ROM in the CPU for booting from? + + + // this uses a "eMMC" type ROM chip, should it be treated as a CHD, or like a NAND ROM? + ROM_REGION( 0x0100000, "emmc_boot", ROMREGION_ERASEFF ) + // these are both blank, unused, or read protected in some way? + //ROM_LOAD( "boot1.bin", 0x000000, 0x0100000, CRC(956bac74) SHA1(bf0b121670df23f2cc64302d9f215e7c81187bbb ) // FIXED BITS (11111111) + //ROM_LOAD( "boot2.bin", 0x000000, 0x0100000, CRC(956bac74) SHA1(bf0b121670df23f2cc64302d9f215e7c81187bbb ) // FIXED BITS (11111111) + + ROM_REGION( 0x220, "emmc_misc1", ROMREGION_ERASEFF ) + ROM_LOAD( "ecsd_csd.bin", 0x000000, 0x220, CRC(a30bcb97) SHA1(ba83c5b2c73f26ad89ac7cc44b0ea6971050cfa4) ) + + ROM_REGION( 0x75000000, "emmc_user", ROMREGION_ERASEFF ) + ROM_LOAD( "userdata.bin", 0x000000, 0x75000000, CRC(3c063d5d) SHA1(41a980b9e19e9fdf00f5175bf332b50f741aecb9) ) + + //ROM_REGION( 0x3712, "emmc_misc2", ROMREGION_ERASEFF ) + // this appears to be a project file used by the dumping software, not a ROM + //ROM_LOAD( "emmc_ghost.mpj", 0x000000, 0x3712, CRC(16b705da) SHA1(fdb576385cf46984ea40d8e8b83758d94f67507e) ) +ROM_END + +CONS( 2011, innotab2, 0, 0, vtech_innotab, vtech_innotab, vtech_innotab_state, empty_init, "VTech", "InnoTAB 2 (UK)", MACHINE_IS_SKELETON ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 45c49d31d63..393fceabc08 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -19666,6 +19666,9 @@ leappad // (c) 2001 LeapFrog / Knowledge Kids Enterprise mfleappad // (c) 2002 LeapFrog ltleappad // (c) 2005 LeapFrog +@source:leapfrog_leapster_explorer.cpp +leapexpr + @source:leapster.cpp leapster // leapster2 // @@ -32719,50 +32722,51 @@ fcpocket rminitv @source:nes_vt369_vtunknown.cpp +240in1ar bittboy -mc_pg150 -mc_hh210 -dvnimbus -unkra200 +denv150 +dgun2561 dgun2577 -lxcyber +dgun2593 +dvnimbus +egame150 +fapocket +gcs2mgp gtct885 -rd5_240 hkb502 hkb502a +lpgm240 lxcap -retro400 -myarccn -fapocket -sy889 -sy888b -mc_cb280 -mog_m320 -dgun2561 -dgun2593 -lxcmcy -lxcmc250 -lxcmcysw -lxcmcyfz -lxcmcydp -lxcmcysp -lxcmcycr -lxcmcypj -lxcmcypp +lxccatv lxccminn lxccplan +lxcmc250 +lxcmcy +lxcmcycr +lxcmcydp +lxcmcyfz +lxcmcypj +lxcmcypp +lxcmcysp +lxcmcysw +lxcyber +mc_cb280 +mc_hh210 +mc_pg150 +mog_m320 +myarccn +otrail +rd5_240 +red5mam +retro400 rtvgc300 rtvgc300fz -red5mam -240in1ar -denv150 -egame150 -lpgm240 -tup240 -otrail -zonefusn sealvt -gcs2mgp +sy888b +sy889 +tup240 +unkra200 +zonefusn @source:newbrain.cpp newbrain // @@ -38560,7 +38564,6 @@ supreme arcade10 @source:storio.cpp -innotab2 // (c) 2011 V.Tech storio // (c) 2011 V.Tech storiode // (c) 2011 V.Tech storioes // (c) 2011 V.Tech @@ -42135,6 +42138,9 @@ laser700 // 1984? Laser 700 @source:vtech_eu3a12.cpp vreadere +@source:vtech_innotab.cpp +innotab2 // (c) 2011 V.Tech + @source:vulgus.cpp mach9 // bootleg (ITISA) vulgus // 5/1984 (c) 1984 diff --git a/src/mame/mess.flt b/src/mame/mess.flt index 8521372ca94..bdaa6019121 100644 --- a/src/mame/mess.flt +++ b/src/mame/mess.flt @@ -524,6 +524,7 @@ lc80.cpp lcmate2.cpp leapfrog_iquest.cpp leapfrog_leappad.cpp +leapfrog_leapster_explorer.cpp leapster.cpp learnwin.cpp lee1214.cpp @@ -1150,6 +1151,7 @@ vta2000.cpp vtech1.cpp vtech2.cpp vtech_eu3a12.cpp +vtech_innotab.cpp wangpc.cpp wicat.cpp wizard.cpp