skeleton stuff (mostly to give Clawgrip a starting place) (#4586)

* new NOT WORKING machines
---
C2 Color [zhongtiao1]
35 in 1 Super Twins [Sean Riddle]
LeapPad [Sean Riddle]
My First LeapPad [Sean Riddle]

-leappad: Added software lists. [David Haywood]

-c2color: Added software lists. [David Haywood]

leappad note: Currently BIOS is not dumped for LeapPad, but some carts are, BIOS is dumped for My First LeapPad, but not carts. (nw)

c2color note: Again the internal ROM isn't dumped, but we need the placeholder driver for the software list hookup, 2 carts are dumped. (nw)

-vsmile: Added softlist loading for some of the trickier vsmile cases based on new dumps from Sean Riddle.  Note, the Vsmile Motion game is 16MB so clearly needs some kind of banking. (nw)
This commit is contained in:
David Haywood 2019-02-03 10:03:59 +00:00 committed by MooglyGuy
parent b4aa8fdc10
commit 74e3b56ddb
14 changed files with 414 additions and 4 deletions

31
hash/c2color_cart.xml Normal file
View File

@ -0,0 +1,31 @@
<?xml version="1.0"?>
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
<softwarelist name="c2color_cart" description="C2 Color cartridges">
<software name="game1" supported="no">
<description>untranslated title 1</description>
<year>20??</year>
<publisher>unknown</publisher>
<info name="alt_title" value="第4弹-暗黑势力再临"/>
<part name="cart" interface="c2color_cart">
<dataarea name="rom" size="0x800000">
<rom name="game1.bin" size="0x800000" crc="d2735c91" sha1="f71c1cd300893a22e52d046bc9c489e0236c6b88" offset="0" />
</dataarea>
</part>
</software>
<software name="game2" supported="no">
<description>untranslated title 2</description>
<year>20??</year>
<publisher>unknown</publisher>
<info name="alt_title" value="第5弹-神秘的龙族之王"/>
<part name="cart" interface="c2color_cart">
<dataarea name="rom" size="0x800000">
<rom name="game2.bin" size="0x800000" crc="1e20d906" sha1="323df1ce05ff4fc1aaefe3e0e2b929aec40cc230" offset="0" />
</dataarea>
</part>
</software>
</softwarelist>

View File

@ -18,6 +18,8 @@
M-11
M-12
M-13 MC0013-KSM KSM Mini Volume 5
M-14
M-15 MC0015-TPM TV Pop Mini Volume 1
(more? what's the M highest number?)

View File

@ -15,7 +15,7 @@
*P-1 BHT Volume 4 (Best Artists?) (1,2,3, 5 in G series)
P-2 TV Pop Volume 2 (1,3,4 in G series)
*P-3 ENB Volume 1
P-4 BHT Volume 7
*P-4 BHT Volume 7
-->
<software name="pc0001">

View File

@ -30,8 +30,8 @@
S-18 SC0018- (unknown) Volume 1
S-19 *SC0019-SAI SAI (series 2) Volume 6 (same series as 5,6,9,21,22)
S-20 SC0020- (unknown) Volume 5
S-21 *SC0021-SAI SAI (series 2) Volume 7 (same seires as 5,6,9,19,22)
S-22 *SC0022-SAI SAI (series 2) Volume 8 (same seires as 5,6,9,19,21)
S-21 *SC0021-SAI SAI (series 2) Volume 7 (same series as 5,6,9,19,22)
S-22 *SC0022-SAI SAI (series 2) Volume 8 (same series as 5,6,9,19,21)
S-23 SC0023- (unknown)
(more? what's the S highest number?)

View File

@ -0,0 +1,28 @@
<?xml version="1.0"?>
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
<softwarelist name="leapfrog_leappad_cart" description="LeapFrog LeapPad cartridges">
<software name="abc" supported="no">
<description>LeapPad ABC</description>
<year>20??</year>
<publisher>LeapFrog</publisher>
<part name="cart" interface="leapfrog_leappad_cart">
<dataarea name="rom" size="0x200000">
<rom name="leappad_abc.bin" size="0x200000" crc="1f265010" sha1="a5fa878f5bcf92e80cb606d5f869d166d3805e05" offset="0" />
</dataarea>
</part>
</software>
<software name="dino" supported="no">
<description>LeapPad Dinosaur</description>
<year>20??</year>
<publisher>LeapFrog</publisher>
<part name="cart" interface="leapfrog_leappad_cart">
<dataarea name="rom" size="0x400000">
<rom name="leappad_dino.bin" size="0x400000" crc="5e306c92" sha1="7496f5b994a40ea07228b5ab27ec907fbcf603b4" offset="0" />
</dataarea>
</part>
</software>
</softwarelist>

View File

@ -0,0 +1,20 @@
<?xml version="1.0"?>
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
<softwarelist name="leapfrog_mfleappad_cart" description="LeapFrog My First LeapPad cartridges">
<!--
<software name="nothing" supported="no">
<description>Nothing</description>
<year>20??</year>
<publisher>LeapFrog</publisher>
<part name="cart" interface="leapfrog_mfleappad_cart">
<dataarea name="rom" size="0x200000">
<rom name="nothing.bin" size="0x200000" crc="11111111" sha1="1111111111111111111111111111111111111111" offset="0" />
</dataarea>
</part>
</software>
-->
</softwarelist>

View File

@ -1205,6 +1205,23 @@ Game cartridges
<description>Disney's The Lion King - Simba's Big Adventure (USA)</description>
<year>200?</year>
<publisher>VTech</publisher>
<part name="cart" interface="vsmile_cart">
<feature name="slot" value="vsmile_rom" />
<feature name="pcb" value="92060" />
<feature name="u1" value="" /> <!-- EPOXY BLOB ROM --> <!-- 2 globs, uses /CS2 for 2nd glob -->
<feature name="u2" value="" /> <!-- EPOXY BLOB ROM -->
<dataarea name="rom" size="0x0800000">
<rom name="vsmile92100.blob1.bin" size="0x0400000" crc="8a2317fb" sha1="44d397ada00f1fedb48622e716189f4a129ff5a7" offset="0x0000000" />
<rom name="vsmile92100.blob2.bin" size="0x0200000" crc="dded069c" sha1="29f1f464f9f5c8fa06410d54538b984f3fc52f01" offset="0x0400000" />
</dataarea>
</part>
</software>
<!-- where did the last 2MB in this come from? the cart is confirmed as having a 4MB blob and a 2MB blob -->
<software name="lionkinga" cloneof="lionking" supported="yes">
<description>Disney's The Lion King - Simba's Big Adventure (USA) (alt)</description>
<year>200?</year>
<publisher>VTech</publisher>
<info name="serial" value="80-092100(US)" />
<part name="cart" interface="vsmile_cart">
<feature name="slot" value="vsmile_rom" />
@ -2111,6 +2128,22 @@ Game cartridges
</software>
<software name="pooh" supported="yes">
<description>Disneys Winnie the Pooh - The Honey Hunt (US)</description>
<year>2004?</year>
<publisher>VTech</publisher>
<part name="cart" interface="vsmile_cart">
<feature name="slot" value="vsmile_rom" />
<feature name="pcb" value="92060" />
<feature name="u1" value="" /> <!-- EPOXY BLOB ROM --> <!-- 2 globs, uses /CS2 for 2nd glob -->
<feature name="u2" value="" /> <!-- EPOXY BLOB ROM -->
<dataarea name="rom" size="0x0800000">
<rom name="vsmile92060.blob1.bin" size="0x0400000" crc="c34fd808" sha1="2800b89068e3c09a66223392e11982dd2193244b" offset="0x0000000" />
<rom name="vsmile92060.blob2.bin" size="0x0200000" crc="b7261f74" sha1="40bc8d9284a2f307023502ec67f8fc8e974966ea" offset="0x0400000" />
</dataarea>
</part>
</software>
<software name="poohg" cloneof="pooh" supported="yes">
<description>Disneys Winnie Puuh - Die Honigjagd (Ger)</description>
<year>2004?</year>
<publisher>VTech</publisher>

View File

@ -405,6 +405,22 @@ Smartbooks currently have no dumps available, hence they are temporarily listed
</part>
</software>
<software name="shrekfa" supported="no">
<description>Shrek Forever After (US)</description>
<year>200?</year>
<publisher>VTech</publisher>
<info name="serial" value="80-084500(US)" />
<part name="cart" interface="vsmile_cart">
<feature name="pcb" value="84500 E" />
<feature name="u1" value="" /> <!-- EPOXY BLOB ROM --> <!-- 2 globs, uses /CS2 for 2nd glob -->
<feature name="u2" value="" /> <!-- EPOXY BLOB ROM -->
<dataarea name="rom" size="0x1000000">
<rom name="vsmile84500.blob1.bin" size="0x0800000" crc="175117f1" sha1="48231caf853e27856eb033d14937b7eb7e74198c" offset="0x0000000" />
<rom name="vsmile84500.blob2.bin" size="0x0800000" crc="5dc681ea" sha1="1a3a2ff08bd52ad74183b09059082b492000e571" offset="0x0800000" />
</dataarea>
</part>
</software>
<software name="spidermn" supported="no">
<description>Spider-Man &amp; Freunde - Geheime Missionen (Ger)</description>
<year>2010</year>

View File

@ -1093,6 +1093,7 @@ function linkProjects_mame_mess(_target, _subtarget)
"kontron",
"kurzweil",
"kyocera",
"leapfrog",
"luxor",
"magnavox",
"makerbot",
@ -2414,6 +2415,12 @@ files {
MAME_DIR .. "src/mame/video/kyocera.cpp",
}
createMESSProjects(_target, _subtarget, "leapfrog")
files {
MAME_DIR .. "src/mame/drivers/leapster.cpp",
MAME_DIR .. "src/mame/drivers/leapfrog_leappad.cpp",
}
createMESSProjects(_target, _subtarget, "luxor")
files {
MAME_DIR .. "src/mame/drivers/abc80.cpp",
@ -3740,6 +3747,7 @@ files {
MAME_DIR .. "src/mame/drivers/busicom.cpp",
MAME_DIR .. "src/mame/includes/busicom.h",
MAME_DIR .. "src/mame/video/busicom.cpp",
MAME_DIR .. "src/mame/drivers/c2color.cpp",
MAME_DIR .. "src/mame/drivers/candela.cpp",
MAME_DIR .. "src/mame/drivers/cardinal.cpp",
MAME_DIR .. "src/mame/drivers/chaos.cpp",
@ -3824,7 +3832,6 @@ files {
MAME_DIR .. "src/mame/drivers/jade.cpp",
MAME_DIR .. "src/mame/drivers/jonos.cpp",
MAME_DIR .. "src/mame/drivers/kron.cpp",
MAME_DIR .. "src/mame/drivers/leapster.cpp",
MAME_DIR .. "src/mame/drivers/lee1214.cpp",
MAME_DIR .. "src/mame/drivers/learnwin.cpp",
MAME_DIR .. "src/mame/drivers/lft.cpp",

View File

@ -0,0 +1,127 @@
// license:BSD-3-Clause
// copyright-holders:David Haywood
/******************************************************************************
basic information
https://gbatemp.net/threads/the-c2-color-game-console-an-obscure-chinese-handheld.509320/
"The C2 is a glorious console with a D-Pad, Local 2.4GHz WiFi, Cartridge slot, A, B, and C buttons,
and has micro usb power! Don't be fooled though, there is no lithium battery, so you have to put in
3 AA batteries if you don't want to play with it tethered to a charger.
It comes with a built in game based on the roco kingdom characters.
In addition, there is a slot on the side of the console allowing cards to be swiped through. Those
cards can add characters to the game. The console scans the barcode and a new character or item appears in the game for you to use.
The C2 comes with 9 holographic game cards that will melt your eyes."
also includes a link to the following video
https://www.youtube.com/watch?v=D3XO4aTZEko
TODO:
identify CPU type, and if the system ROM is needed to run carts or not
*******************************************************************************/
#include "emu.h"
#include "bus/generic/slot.h"
#include "bus/generic/carts.h"
#include "screen.h"
#include "emupal.h"
#include "softlist.h"
#include "speaker.h"
class c2_color_state : public driver_device
{
public:
c2_color_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_cart(*this, "cartslot")
, m_cart_region(nullptr)
, m_palette(*this, "palette")
, m_screen(*this, "screen")
{ }
void c2_color(machine_config &config);
void leapfrog_mfleappad(machine_config &config);
private:
virtual void machine_start() override;
virtual void machine_reset() override;
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(cart);
required_device<generic_slot_device> m_cart;
memory_region *m_cart_region;
required_device<palette_device> m_palette;
required_device<screen_device> m_screen;
};
uint32_t c2_color_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
}
void c2_color_state::machine_start()
{
// if there's a cart, override the standard mapping
if (m_cart && m_cart->exists())
{
std::string region_tag;
m_cart_region = memregion(region_tag.assign(m_cart->tag()).append(GENERIC_ROM_REGION_TAG).c_str());
}
}
void c2_color_state::machine_reset()
{
}
DEVICE_IMAGE_LOAD_MEMBER(c2_color_state, cart)
{
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( c2_color )
INPUT_PORTS_END
void c2_color_state::c2_color(machine_config &config)
{
// unknown CPU
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
m_screen->set_refresh_hz(60);
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
m_screen->set_size(64*8, 32*8);
m_screen->set_visarea(0*8, 40*8-1, 0*8, 30*8-1);
m_screen->set_screen_update(FUNC(c2_color_state::screen_update));
m_screen->set_palette(m_palette);
PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 0x200);
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "c2color_cart");
m_cart->set_width(GENERIC_ROM16_WIDTH);
m_cart->set_device_load(device_image_load_delegate(&c2_color_state::device_image_load_cart, this));
SOFTWARE_LIST(config, "cart_list").set_original("c2color_cart");
}
ROM_START( c2color )
ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASEFF )
ROM_LOAD( "system.rom", 0x000000, 0x400000, NO_DUMP ) // must have an internal rom for the built in game, unknown size etc.
ROM_END
// year, name, parent, compat, machine, input, class, init, company, fullname, flags
CONS( 201?, c2color, 0, 0, c2_color, c2_color, c2_color_state, empty_init, "<unknown>", "C2 Color", MACHINE_IS_SKELETON )

View File

@ -0,0 +1,130 @@
// license:BSD-3-Clause
// copyright-holders:David Haywood
/******************************************************************************
LEAPPAD:
Example-Video: https://www.youtube.com/watch?v=LtUhENu5TKc
The LEAPPAD is basically compareable to the SEGA PICO, but without
Screen-Output! Each "Game" consists of two parts (Book + Cartridge).
Insert the cartridge into the system and add the Book on the Top of the
"console" and you can click on each pages and hear sounds or
learning-stuff on each page...
MY FIRST LEAPPAD:
Basically the same as the LEAPPAD, but for even younger kids! (Cartridge
internal PCB's are identical to LEAPPAD)
Example Video: https://www.youtube.com/watch?v=gsf8XYV1Tpg
Don't get confused by the name "LEAPPAD", as it looks like Leapfrog
also released some kind of Tablet with this name, and they even released
a new "LEAPPAD" in around 2016:
https://www.youtube.com/watch?v=MXFSgj6xLTU , which nearly looks like the
same, but is most likely techically completely different..
*******************************************************************************/
#include "emu.h"
#include "bus/generic/slot.h"
#include "bus/generic/carts.h"
#include "screen.h"
#include "softlist.h"
#include "speaker.h"
class leapfrog_leappad_state : public driver_device
{
public:
leapfrog_leappad_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_cart(*this, "cartslot")
, m_cart_region(nullptr)
{ }
void leapfrog_leappad(machine_config &config);
void leapfrog_mfleappad(machine_config &config);
private:
virtual void machine_start() override;
virtual void machine_reset() override;
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(cart);
required_device<generic_slot_device> m_cart;
memory_region *m_cart_region;
};
void leapfrog_leappad_state::machine_start()
{
// if there's a cart, override the standard mapping
if (m_cart && m_cart->exists())
{
std::string region_tag;
m_cart_region = memregion(region_tag.assign(m_cart->tag()).append(GENERIC_ROM_REGION_TAG).c_str());
}
}
void leapfrog_leappad_state::machine_reset()
{
}
DEVICE_IMAGE_LOAD_MEMBER(leapfrog_leappad_state, cart)
{
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_leappad )
INPUT_PORTS_END
void leapfrog_leappad_state::leapfrog_leappad(machine_config &config)
{
//ARCA5(config, m_maincpu, 96000000/10); // LeapPad Leapfrog 05-9-01 FS80A363 (doesn't appear to be Arcompact, what is it?)
//m_maincpu->set_addrmap(AS_PROGRAM, &leapfrog_leappad_state::map);
// screenless
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "leapfrog_leappad_cart");
m_cart->set_width(GENERIC_ROM16_WIDTH);
m_cart->set_device_load(device_image_load_delegate(&leapfrog_leappad_state::device_image_load_cart, this));
SOFTWARE_LIST(config, "cart_list").set_original("leapfrog_leappad_cart");
}
void leapfrog_leappad_state::leapfrog_mfleappad(machine_config &config)
{
//ARCA5(config, m_maincpu, 96000000/10); // LeapPad Leapfrog 05-9-01 FS80A363 (doesn't appear to be Arcompact, what is it?)
//m_maincpu->set_addrmap(AS_PROGRAM, &leapfrog_leappad_state::map);
// screenless
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "leapfrog_mfleappad_cart");
m_cart->set_width(GENERIC_ROM16_WIDTH);
m_cart->set_device_load(device_image_load_delegate(&leapfrog_leappad_state::device_image_load_cart, this));
SOFTWARE_LIST(config, "cart_list").set_original("leapfrog_mfleappad_cart");
}
// both of these contain the string "Have you copied our ROM?" near the date codes
ROM_START( leappad )
ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASEFF )
ROM_LOAD( "leappadbios.bin", 0x000000, 0x100000, CRC(c886cddc) SHA1(f8a83b156feb28315d2321758678e141600a0d4e) ) // contains "Aug 06 2001.16:33:16.155-00450.LeapPad ILA2 Universal Base ROM" and "Copyright (c) 1998-2001 Knowledge Kids Enterprises, Inc."
ROM_END
ROM_START( mfleappad )
ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF )
ROM_LOAD( "myfirstleappadbios.bin", 0x000000, 0x400000, CRC(19174c16) SHA1(e0ba644fdf38fd5f91ab8c4b673c4a658cc3e612) ) // contains "Feb 13 2004.10:58:53.152-10573.MFLP US Base ROM - 2004" and "Copyright (c) 2004 LeapFrog Enterprises, Inc."
ROM_END
// year, name, parent, compat, machine, input, class, init, company, fullname, flags
CONS( 2001, leappad, 0, 0, leapfrog_leappad, leapfrog_leappad, leapfrog_leappad_state, empty_init, "LeapFrog", "LeapPad", MACHINE_IS_SKELETON )
CONS( 2004, mfleappad, 0, 0, leapfrog_mfleappad, leapfrog_leappad, leapfrog_leappad_state, empty_init, "LeapFrog", "My First LeapPad", MACHINE_IS_SKELETON )

View File

@ -1586,6 +1586,11 @@ ROM_START( polmega )
ROM_LOAD( "megamax.bin", 0x00000, 0x400000, CRC(ef3aade3) SHA1(0c130080ace000cbe43e70a805d4301e05840294) )
ROM_END
ROM_START( silv35 )
ROM_REGION( 0x400000, "mainrom", 0 )
ROM_LOAD( "silverlit35.bin", 0x00000, 0x400000, CRC(7540e350) SHA1(a0cb456136560fa4d8a365dd44d815ec0e9fc2e7) )
ROM_END
ROM_START( pjoyn50 )
ROM_REGION( 0x400000, "mainrom", 0 )
ROM_LOAD( "power joy navigator 50-in-1.prg", 0x00000, 0x400000, CRC(d1bbadd4) SHA1(2186c71bcedf6c2eedf58233faa26fca9586aa40) )
@ -1839,6 +1844,7 @@ CONS( 200?, mc_sp69, 0, 0, nes_vt_sp69, nes_vt, nes_vt_state, empty_init,
// CPU die is marked 'VH2009' There's also a 62256 RAM chip on the PCB, some scrambled opcodes?
CONS( 200?, polmega, 0, 0, nes_vt, nes_vt, nes_vt_state, empty_init, "Polaroid", "Megamax GPD001SDG", MACHINE_NOT_WORKING )
CONS( 200?, silv35, 0, 0, nes_vt, nes_vt, nes_vt_state, empty_init, "SilverLit", "35 in 1 Super Twins", MACHINE_NOT_WORKING )
// Hummer systems, scrambled bank register
CONS( 200?, mc_sam60, 0, 0, nes_vt_hum, nes_vt, nes_vt_state, empty_init, "Hummer Technology Co., Ltd.", "Samuri (60 in 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )

View File

@ -9267,6 +9267,9 @@ c128dcrp //
c128dp //
c128p //
@source:c2color.cpp
c2color
@source:c64.cpp
c64 //
c64_jp // Commodore 64 (Japan)
@ -18147,6 +18150,10 @@ lckydraw // (c) 1979 Mirco
@source:lcmate2.cpp
lcmate2 //
@source:leapfrog_leappad.cpp
leappad
mfleappad
@source:leapster.cpp
leapster //
leapstertv //
@ -30340,6 +30347,7 @@ mc_aa2
mc_105te
mc_sp69
polmega
silv35
mc_dcat8
mc_dcat8a
pjoyn50

View File

@ -111,6 +111,7 @@ bw12.cpp
bw2.cpp
c10.cpp
c128.cpp
c2color.cpp
c64.cpp
c64dtv.cpp
c65.cpp
@ -378,6 +379,7 @@ laser3k.cpp
lb186.cpp
lc80.cpp
lcmate2.cpp
leapfrog_leappad.cpp
leapster.cpp
learnwin.cpp
lee1214.cpp