Added various TV games and associated software (mostly not working). (#11755)

* Moved zone3d from tvgames/spg29x.cpp to tvgames/spg29x_lexibook_jg7425.cpp.
* sega/megadriv_rad.cpp: Changed short name suffix on UK releases from "p" (PAL) to "uk".

New working clones
--------------------
Radica / Sega Mega Drive Collection Volume 1 (Radica, Arcade Legends) (UK) [TeamEurope, David Haywood]
VTech Dora the Explorer - Dora TV Explorer Phone / L'anniversaire de Babouche (France) [TeamEurope, David Haywood]

New systems marked not working
--------------------
Konami Marimba Tengoku (Japan) [TeamEurope, David Haywood]
Lexibook Disney Frozen TV Game Console (32-bit, Lexibook, JG7420FZ) [TeamEurope, David Haywood]

New clones marked not working
--------------------
IVL Technologies (Lexibook license) KaraokeMicro Star (France) [TeamEurope, David Haywood]
Taikee / V-Tac Jeu Intéractif TV (France) [TeamEurope, David Haywood]

New software list items marked not working (easy_karaoke_cart.xml)
--------------------
KaraokeMicro Star Cartouche 1 [TeamEurope, David Haywood]
KaraokeMicro Star Cartouche 2 [TeamEurope, David Haywood]
KaraokeMicro Star Cartouche 3 [TeamEurope, David Haywood]
This commit is contained in:
mamehaze 2023-11-22 16:33:27 +00:00 committed by GitHub
parent b05aa13c6a
commit f1bd005fd3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 425 additions and 129 deletions

View file

@ -186,4 +186,82 @@ license:CC0-1.0
</part>
</software>
<!--
17 ans Claude François
Complicated Avril Lavigne
Don't Know Why Norah Jones
Etoile des neiges Line Renaud
Je me voyais déjà Charles Aznavour
L'idole des jeunes Johnny Hallyday
Ma meilleure amie Laurie
Mambo No. 5 (A Little Bit Of...) Lou Bega
Sail On Lionel Richie
What's Going On Marvin Gaye
-->
<software name="karamsc1" supported="no">
<description>KaraokeMicro Star Cartouche 1</description>
<year>2003</year>
<publisher>IVL Technologies / Lexibook</publisher>
<part name="cart" interface="easy_karaoke_cart">
<dataarea name="rom" size="0x80000">
<rom name="ics0321-a.u3" size="0x80000" crc="b0c76017" sha1="1a645b83528f58b8c3e8d8950c05babc37411b49" />
</dataarea>
<dataarea name="mcu" size="0x2000">
<rom name="IC89LV52A-24PQ.U1" size="0x2000" status="nodump" />
</dataarea>
</part>
</software>
<!--
Ain't It Funny Jennifer Lopez
Just Like A Pill Pink
I'm A Slave 4 U Britney Spears
Three Times A Lady Lionel Richie
You Can't Hurry Love Diana Ross And The Supremes
Banana Split Lio
J'attendrai Claude François
Tout tout pour ma chérie Michel Polnareff
Bienvenue à Paris Bill Baxter
Vacances j'oublie tout Elegance
-->
<software name="karamsc2" supported="no">
<description>KaraokeMicro Star Cartouche 2</description>
<year>2003</year>
<publisher>IVL Technologies / Lexibook</publisher>
<part name="cart" interface="easy_karaoke_cart">
<dataarea name="rom" size="0x80000">
<rom name="ics0322-a.u3" size="0x80000" crc="d6cb51fe" sha1="98a819487ae8b25459e102710ce4325fbd39ce10" />
</dataarea>
<dataarea name="mcu" size="0x2000">
<rom name="IC89LV52A-24PQ.U1" size="0x2000" status="nodump" />
</dataarea>
</part>
</software>
<!--
Come Away With Me Norah Jones
Donne-moi le temps Jenifer
Encore Diadems
J'attendrai Belle Belle Belle
L'orange Star Academy 3
La Bamba Star Academy 3
Rien ne me changera Jonatan Cerrada
Tant que c'est toi Natasha St Pier
Tchouk Tchouk Musik Priscilla
Toutes les femmes de ta vie L5
-->
<software name="karamsc3" supported="no">
<description>KaraokeMicro Star Cartouche 3</description>
<year>2004</year>
<publisher>IVL Technologies / Lexibook</publisher>
<part name="cart" interface="easy_karaoke_cart">
<dataarea name="rom" size="0x80000">
<rom name="27V40.u3" size="0x80000" crc="33047ac7" sha1="bea9197646ba5a9f8c842363149b1b1ec7b9aada" />
</dataarea>
<dataarea name="mcu" size="0x2000">
<rom name="IC89LV52A-24PQ.U1" size="0x2000" status="nodump" />
</dataarea>
</part>
</software>
</softwarelist>

View file

@ -38716,14 +38716,15 @@ twinktmb
@source:sega/megadriv_rad.cpp
rad_sf2 // (c)2004 Radica
rad_sf2p // (c)2004 Radica
rad_sf2uk // (c)2004 Radica
rad_gen1 // (c)2004 Radica
rad_gen2 // (c)2004 Radica
rad_md1
rad_md2
rad_md1uk
rad_md2uk
rad_ssoc // (c)2004 Radica
rad_sonic
rad_sonicp
rad_sonicuk
rad_orun
msi_sf2
dgunl3227
@ -41412,6 +41413,7 @@ e100 //
@source:skeleton/easy_karaoke.cpp
easykara
karams
@source:skeleton/elcirculo.cpp
elcirculo // (c) 1980 Inder
@ -41497,6 +41499,9 @@ hprotr8a //
@source:skeleton/ht68k.cpp
ht68k //
@source:skeleton/hudson_poems.cpp
marimba //
@source:skeleton/i7000.cpp
i7000 //
@ -44657,12 +44662,13 @@ sstarkar
hyprscan //
jak_bbh
jak_bbsf
zone3d
zonefamf
@source:tvgames/spg29x_lexibook_jg7425.cpp
lx_jg7425
lx_aven
lx_frozen
lx_jg7425
zone3d
@source:tvgames/spg2xx.cpp
ablkickb
@ -44673,6 +44679,7 @@ decathlna
doraglob // (c) 2007 VTech
doraglobg
doraphon // (c) 2006 VTech
doraphonf
dreamlss
fordrace
gssytts
@ -44681,6 +44688,7 @@ guitarss
guitarssa
hotwhl2p
itvphone
jeuint
jjstrip
jouet
knd

View file

@ -519,7 +519,7 @@ ROM_START( rad_sf2 )
ROM_LOAD16_WORD_SWAP( "radica_megadrive_streetfighter2_usa.bin", 0x000000, 0x400000, CRC(a4426df8) SHA1(091f2a95ebd091141de5bcb83562c6087708cb32) )
ROM_END
ROM_START( rad_sf2p )
ROM_START( rad_sf2uk )
ROM_REGION( 0x400000, "maincpu", 0 )
ROM_LOAD16_WORD_SWAP( "radica_megadrive_streetfighter2_uk.bin", 0x000000, 0x400000, CRC(868afb44) SHA1(f4339e36272c18b1d49aa4095127ed18e0961df6) )
ROM_END
@ -534,12 +534,17 @@ ROM_START( rad_md1 )
ROM_LOAD16_WORD_SWAP( "radica_megadrive_vol1_blue_europe.bin", 0x000000, 0x400000, CRC(85867db1) SHA1(ddc596e2e68dc872bc0679a2de7a295b4c6d6b8e) )
ROM_END
ROM_START( rad_md1uk )
ROM_REGION( 0x400000, "maincpu", 0 )
ROM_LOAD16_WORD_SWAP( "radicauk.u2", 0x000000, 0x400000, CRC(03a6734b) SHA1(255048d46b593bc975b3a6c44e8b8e35917511c7) )
ROM_END
ROM_START( rad_gen2 )
ROM_REGION( 0x400000, "maincpu", 0 )
ROM_LOAD16_WORD_SWAP( "radica_genesis_vol2_red_usa.bin", 0x000000, 0x400000, CRC(7c1a0f0e) SHA1(a6441f75a4cd48f1563aeafdfbdde00202d4067c) )
ROM_END
ROM_START( rad_md2 )
ROM_START( rad_md2uk )
ROM_REGION( 0x400000, "maincpu", 0 )
ROM_LOAD16_WORD_SWAP( "radica_megadrive_vol2_red_uk.bin", 0x000000, 0x400000, CRC(b68fd025) SHA1(b8f9c505653d6dd2b62840f078f828360faf8abc) )
ROM_END
@ -554,7 +559,7 @@ ROM_START( rad_sonic )
ROM_LOAD16_WORD_SWAP( "radica_supersonicgold_usa.bin", 0x000000, 0x400000, CRC(853c9140) SHA1(cf70a9cdd3be4d8d1b6195698db3a941f4908791) )
ROM_END
ROM_START( rad_sonicp )
ROM_START( rad_sonicuk )
ROM_REGION( 0x400000, "maincpu", 0 )
ROM_LOAD16_WORD_SWAP( "radica_supersonicgold_uk.bin", 0x000000, 0x400000, CRC(ed774018) SHA1(cc2f7183e128c947463e3a43a0184b835ea16db8) )
ROM_END
@ -699,23 +704,23 @@ void megadriv_ra145_state::init_ra145()
// US versions show 'Genesis' on the menu, show a www.radicagames.com splash screen, and use NTSC versions of the ROMs, sometimes region locked
// EU versions show 'Mega Drive' on the menu, show a www.radicagames.com splash screen, and use PAL versions of the ROMs, sometimes region locked
// UK versions show "Mega Drive' on the menu, show a www.radicauk.com splash screen, and use PAL versions of the ROMs, sometimes region locked
// Japanese releases have been seen for at least one of these Radica collections (SF2), those presumably have a different ROM too (NTSC, locked to Japan?)
CONS( 2004, rad_gen1, 0, 0, megadriv_radica_3button_ntsc, radica_3button_1player, megadriv_radica_state, init_megadriv, "Radica / Sega", "Genesis Collection Volume 1 (Radica, Arcade Legends) (USA)", 0)
CONS( 2004, rad_md1, rad_gen1, 0, megadriv_radica_3button_pal, radica_3button_1player, megadriv_radica_state, init_megadrie, "Radica / Sega", "Mega Drive Collection Volume 1 (Radica, Arcade Legends) (Europe)", 0)
// A UK version exists, showing the Radica UK boot screen
CONS( 2004, rad_md1uk, rad_gen1, 0, megadriv_radica_3button_pal, radica_3button_1player, megadriv_radica_state, init_megadrie, "Radica / Sega", "Mega Drive Collection Volume 1 (Radica, Arcade Legends) (UK)", 0)
CONS( 2004, rad_gen2, 0, 0, megadriv_radica_3button_ntsc, radica_3button_1player, megadriv_radica_state, init_megadriv, "Radica / Sega", "Genesis Collection Volume 2 (Radica, Arcade Legends) (USA)", 0)
CONS( 2004, rad_md2, rad_gen2, 0, megadriv_radica_3button_pal, radica_3button_1player, megadriv_radica_state, init_megadrie, "Radica / Sega", "Mega Drive Collection Volume 2 (Radica, Arcade Legends) (UK)", 0)
CONS( 2004, rad_md2uk, rad_gen2, 0, megadriv_radica_3button_pal, radica_3button_1player, megadriv_radica_state, init_megadrie, "Radica / Sega", "Mega Drive Collection Volume 2 (Radica, Arcade Legends) (UK)", 0)
// is there a Europe version with Radica Games boot screen and Mega Drive text?
// box calls this Volume 3
CONS( 2004, rad_sonic, 0, 0, megadriv_radica_3button_ntsc, radica_3button_1player, megadriv_radica_state, init_megadriv, "Radica / Sega", "Super Sonic Gold (Radica Plug & Play) (USA)", 0)
CONS( 2004, rad_sonicp,rad_sonic,0, megadriv_radica_3button_pal, radica_3button_1player, megadriv_radica_state, init_megadrie, "Radica / Sega", "Super Sonic Gold (Radica Plug & Play) (UK)", 0)
CONS( 2004, rad_sonic, 0, 0, megadriv_radica_3button_ntsc, radica_3button_1player, megadriv_radica_state, init_megadriv, "Radica / Sega", "Super Sonic Gold (Radica Plug & Play) (USA)", 0)
CONS( 2004, rad_sonicuk,rad_sonic,0, megadriv_radica_3button_pal, radica_3button_1player, megadriv_radica_state, init_megadrie, "Radica / Sega", "Super Sonic Gold (Radica Plug & Play) (UK)", 0)
// is there a Europe version with Radica Games boot screen and Mega Drive text?
CONS( 2004, rad_sf2, 0, 0, megadriv_radica_6button_ntsc, radica_6button, megadriv_radica_state, init_megadriv, "Radica / Capcom / Sega", "Street Fighter II: Special Champion Edition [Ghouls'n Ghosts] (Radica, Arcade Legends) (USA)", 0)
CONS( 2004, rad_sf2p, rad_sf2, 0, megadriv_radica_6button_pal, radica_6button, megadriv_radica_state, init_megadrie, "Radica / Capcom / Sega", "Street Fighter II: Special Champion Edition [Ghouls'n Ghosts] (Radica, Arcade Legends) (UK)", 0)
CONS( 2004, rad_sf2uk, rad_sf2, 0, megadriv_radica_6button_pal, radica_6button, megadriv_radica_state, init_megadrie, "Radica / Capcom / Sega", "Street Fighter II: Special Champion Edition [Ghouls'n Ghosts] (Radica, Arcade Legends) (UK)", 0)
// is there a Europe version with Radica Games boot screen and Mega Drive text?
// still branded as Arcade Legends even if none of these were ever arcade games, European exclusive

View file

@ -51,6 +51,23 @@
presumably manages a serial protocol to send data to the main unit
-----------------
Lexibook's KaraokeMicro Star version uses
Clarity 4.1 ARM
SV11180
NV0093 0246
Sound Vision Inc.
------------------
Packaging also shows 'On-Key Karaoke' logo on box, maybe this is the original US / Canada product name?
"Karaoke TV Star" appears to be a US product using this technology - advertises 50 built in songs, but
also a downloadable service. It has a 2002 date on the box / product. Another version offers 35 songs
*******************************************************************************/
#include "emu.h"
@ -142,7 +159,7 @@ uint32_t easy_karaoke_state::a000004_r()
void easy_karaoke_state::arm_map(address_map &map)
{
map(0x00000000, 0x007fffff).ram();
map(0x04000000, 0x043fffff).rom().region("maincpu", 0);
map(0x04000000, 0x047fffff).rom().region("maincpu", 0);
map(0x0a000004, 0x0a000007).r(FUNC(easy_karaoke_state::a000004_r));
}
@ -174,29 +191,88 @@ void easy_karaoke_state::easy_karaoke(machine_config &config)
}
/*
The 'easykara' set has the following songs built in.
The 'easykara' set has the following 10 songs built in.
One Step Closer S Club Juniors
S Club Party S Club 7
Automatic High S Club Juniors
Don't Stop Movin' S Club 7
Get the Party Started Pink
Feel Robbie Williams
Complicated Avril Lavigne
One love Blue
If you're not the one Daniel Bedingfield
Sound of the Underground Girls Aloud
There are regional variants of the product sold under different names, for example
there appears to be a French Lexibook unit based on this tech with different songs.
One Step Closer S Club Juniors
S Club Party S Club 7
Automatic High S Club Juniors
Don't Stop Movin' S Club 7
Get the Party Started Pink
Feel Robbie Williams
Complicated Avril Lavigne
One love Blue
If you're not the one Daniel Bedingfield
Sound of the Underground Girls Aloud
*/
ROM_START( easykara )
ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF )
ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASEFF )
ROM_LOAD( "ics0303-b.bin", 0x000000, 0x400000, CRC(43d86ae8) SHA1(219dcbf72b92d1b7e00f78f237194ab47dc08f1b) )
ROM_END
/*
The 'karams' set has the following 50 songs built in.
...Baby One More Time Britney Spears
Alexandrie Alexandra Claude François
All By Myself Celine Dion
Allumer le feu Johnny Hallyday
Alors regarde Patrick Bruel
Always On My Mind Elvis Presley (R)
Au soleil Jennifer
Auprès de ma blonde Enfant
Believe Cher
Bye Bye Bye 'N Sync
Can't Get You Out Of My Head Kylie Minogue
Cette année Claude François
Don't Let Me Get Me Pink
Déshabillez-moi Juliette Greco
Elle te rend dingue Nuttea
Embrasse-moi idiot Forban
Fallin' Alicia Keys
Fame Irene Cara
Femmes je vous aime Julien Clerc
Frère Jacques Enfant
I Love Rock and Roll Joan Jett
I Will Survive Gloria Gaynor
I'll Be There Mariah Carey
Il était un petit navire Enfant
It's Raining Men Geri Halliwell
Juste quelqu'un de bien Enzo Enzo
La Bohème Charles Aznavour
La Cucaracha Standard
La Marseillaise Popular
La musique Star Academy 1
Lady Marmalade Christina Aguilera
Laissons entrer le soleil A la recherche de la Nouvelle Star
Le bon roi Dagobert Enfant
Le pénitencier Johnny Halliday
London Bridge Children
Magnolias forever Claude François
My Girl Temptations
New York New York Frank Sinatra
Noir c'est noir Johnny Hallyday
Oops!...I Did It Again Britney Spears
Pour le plaisir Herbert Léonard
Qui est l'exemple? Rohf
Silent Night Christmas
That's The Way (I Like It) KC And The Sunshine Band
That's The Way It Is Celine Dion
The Loco-Motion Kylie Minogue
Toute seule Lorie
Vieille canaille Gainsbourg
We Wish You A Merry Christmas Standard
When The Saints Go Marchin' In Louis Armstrong
*/
ROM_START( karams )
ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASEFF )
ROM_LOAD( "ics0300-a.u9", 0x000000, 0x800000, CRC(32a7a429) SHA1(ed219bc9201b45f67c5e7dbe3fb3db70823c59f0) )
ROM_END
} // anonymous namespace
CONS( 2004, easykara, 0, 0, easy_karaoke, easy_karaoke, easy_karaoke_state, empty_init, "IVL Technologies", "Easy Karaoke Groove Station", MACHINE_IS_SKELETON )
CONS( 2004, easykara, 0, 0, easy_karaoke, easy_karaoke, easy_karaoke_state, empty_init, "IVL Technologies", "Easy Karaoke Groove Station (UK)", MACHINE_IS_SKELETON )
CONS( 2003, karams, easykara, 0, easy_karaoke, easy_karaoke, easy_karaoke_state, empty_init, "IVL Technologies (Lexibook license)", "KaraokeMicro Star (France)", MACHINE_IS_SKELETON )

View file

@ -0,0 +1,96 @@
// license:BSD-3-Clause
// copyright-holders:David Haywood
/* Based on the "POEMS ES1 Flash ROM Writer Version 0.24 (C)2003-2004 HUDSON SOFT" string
found in ROM this is assumed to be 'POEMS' hardware.
https://game.watch.impress.co.jp/docs/20041209/toy166.htm
https://forum.beyond3d.com/threads/hudson-softs-32-bit-cpu-poems-for-new-system.14358/
https://web.archive.org/web/20021207035427/http://www.tensilica.com/html/pr_2002_10_15.html
The above links mention Konami using this hardware for a PLAY-POEMS plug and play sports
devices, and indicate it is based around the Xtensa instruction set, which has been confirmed
for the single dumped device.
https://0x04.net/~mwk/doc/xtensa.pdf
Known PLAY-POEMS devices (all from Konami)
2004/11/11 (Baseball game)
2004/11/11 (Golf game)
2004/12/09 ! (Mini-Game Collection)
2005/09/15 (Marimba Tengoku)
2005/11/17 !!! (Mini-Game Collection)
2005/11/24 ! (Kid's Floor Mat)
*/
#include "emu.h"
#include "screen.h"
#include "speaker.h"
namespace {
class hudsom_poems : public driver_device
{
public:
hudsom_poems(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag)
{ }
void hudson_poems(machine_config &config);
private:
virtual void machine_start() override;
virtual void machine_reset() override;
uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
void hudsom_poems::machine_start()
{
}
void hudsom_poems::machine_reset()
{
}
static INPUT_PORTS_START( hudson_poems )
INPUT_PORTS_END
uint32_t hudsom_poems::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
return 0;
}
void hudsom_poems::hudson_poems(machine_config &config)
{
// 27Mhz XTAL
// Xtensa based CPU?
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_refresh_hz(60);
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
screen.set_size(320, 240); // resolution not confirmed
screen.set_visarea(0, 320-1, 0, 240-1);
screen.set_screen_update(FUNC(hudsom_poems::screen_update));
SPEAKER(config, "speaker").front_center();
}
ROM_START( marimba )
ROM_REGION( 0x800000, "maincpu", 0 )
ROM_LOAD( "marimbatengoku.u2", 0x000000, 0x800000, CRC(b2ac0c5b) SHA1(48f3cdf399b032d86234125eeac3fb1cdc73538a) ) // glob with TSOP pads
ROM_REGION( 0x400, "nv", 0 )
ROM_LOAD( "at24c08a.u4", 0x000000, 0x400, CRC(e128a679) SHA1(73fb551d87ed911bd469899343fd36d9d579af39) )
ROM_END
} // anonymous namespace
CONS( 2005, marimba, 0, 0, hudson_poems, hudson_poems, hudsom_poems, empty_init, "Konami", "Marimba Tengoku (Japan)", MACHINE_IS_SKELETON )

View file

@ -164,21 +164,6 @@ private:
int m_firstvector = 0;
};
class spg29x_zone3d_game_state : public spg29x_game_state
{
public:
spg29x_zone3d_game_state(const machine_config& mconfig, device_type type, const char* tag) :
spg29x_game_state(mconfig, type, tag)
{ }
void init_zone3d();
protected:
void machine_reset() override;
private:
};
class spg29x_zonefamf_game_state : public spg29x_nand_game_state
{
public:
@ -428,25 +413,6 @@ void spg29x_nand_game_state::machine_reset()
m_maincpu->set_state_int(SCORE_PC, bootstrap_ram_boot);
}
void spg29x_zone3d_game_state::machine_reset()
{
spg29x_game_state::machine_reset();
uint8_t* rom = memregion("spi")->base();
int size = memregion("spi")->bytes();
uint32_t destaddr = 0x1dc;
for (uint32_t addr = 0; addr < size; addr++)
{
address_space& mem = m_maincpu->space(AS_PROGRAM);
uint8_t byte = rom[addr];
mem.write_byte(addr+destaddr, byte);
}
m_maincpu->set_state_int(SCORE_PC, 0x1000);
}
void spg29x_zonefamf_game_state::machine_reset()
{
spg29x_game_state::machine_reset();
@ -580,15 +546,9 @@ void spg29x_nand_game_state::nand_jak_bbsf()
void spg29x_zonefamf_game_state::nand_zonefamf()
{
nand_init(0x840, 0x800);
// m_firstvector = 0x8;
// m_firstvector = 0x8;
}
void spg29x_zone3d_game_state::init_zone3d()
{
}
/* ROM definition */
ROM_START( hyprscan )
ROM_REGION( 0x100000, "bios", ROMREGION_32BIT | ROMREGION_LE )
@ -626,39 +586,6 @@ ROM_START( zonefamf )
//has 1x 48LC8M16A2 (128Mbit/16MByte SDRAM) for loading game into
ROM_END
ROM_START( zone3d )
ROM_REGION( 0x100000, "spi", 0 )
ROM_LOAD("zone_25l8006e_c22014.bin", 0x000000, 0x100000, CRC(8c571771) SHA1(cdb46850286d31bf58d45b75ffc396ed774ac4fd) )
/*
model: Lexar SD
revision: LX01
serial number: 00000000XL10
size: 362.00 MiB (741376 sectors * 512 bytes)
unk1: 0000000000000007
unk2: 00000000000000fa
unk3: 01
The SD card has no label, but there's some printing on the back:
MMAGF0380M3085-WY
TC00201106 by Taiwan
--
Dumped with hardware write blocker, so this image is correct, and hasn't been corrupted by Windows
Image contains a FAT filesystem with a number of compressed? programs that presumably get loaded into RAM by
the bootloader in the serial flash ROM
*/
DISK_REGION( "cfcard" )
DISK_IMAGE( "zone3d", 0, SHA1(77971e2dbfb2ceac12f482d72539c2e042fd9108) )
ROM_REGION( 0x008000, "spg290", ROMREGION_32BIT | ROMREGION_LE )
ROM_LOAD32_DWORD("internal.rom", 0x000000, 0x008000, NO_DUMP)
ROM_END
} // anonymous namespace
@ -672,12 +599,6 @@ COMP( 2006, hyprscan, 0, 0, hyperscan, hyperscan, spg29x_game_state,
COMP( 2009, jak_bbh, 0, 0, spg29x, hyperscan, spg29x_nand_game_state, nand_jak_bbh, "JAKKS Pacific Inc", "Big Buck Hunter Pro (JAKKS Pacific TV Game)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) //has ISSI 404A (24C04)
COMP( 2011, jak_bbsf, 0, 0, spg29x, hyperscan, spg29x_nand_game_state, nand_jak_bbsf,"JAKKS Pacific Inc", "Big Buck Safari (JAKKS Pacific TV Game)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // has ISSI 416A (24C16)
// ends up doing the following, which causes a jump to 0xbf000024, where we have nothing mapped (internal ROM related, or thinks it's loaded code there? This is the area Hyperscan uses as 'BIOS' not Internal ROM so could be RAM here)
// 000011D4: ldis r8, 0xbf00
// 000011D8: ori r8, 0x0024
// 000011DC: br r8
COMP( 201?, zone3d, 0, 0, spg29x, hyperscan, spg29x_zone3d_game_state, init_zone3d,"Zone", "Zone 3D", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
COMP( 201?, zonefamf, 0, 0, spg29x, hyperscan, spg29x_zonefamf_game_state, nand_zonefamf,"Zone", "Zone Family Fit", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
// see also spg29x_lexibook_jg7425.cpp which may or may not belong here

View file

@ -33,7 +33,7 @@ public:
m_maincpu(*this, "maincpu"),
m_screen(*this, "screen"),
m_mainram(*this, "mainram"),
m_romregion(*this, "maincpu")
m_romregion(*this, "extrom")
{ }
void lexibook_jg7425(machine_config &config);
@ -50,25 +50,53 @@ private:
required_device<score7_cpu_device> m_maincpu;
required_device<screen_device> m_screen;
required_shared_ptr<uint32_t> m_mainram;
required_region_ptr<uint32_t> m_romregion;
required_region_ptr<uint8_t> m_romregion;
};
void lexibook_jg7425_state::machine_start()
{
// I think this code should be running from RAM at least, probably some kind of bootstrap / internal ROM to copy it? (hyperscan.cpp indicates that SoC can have internal ROM at least)
// first 0x20 bytes are probably pointers, code starts at 0x20 and is offset, maps at 0x500000
for (int i = 0; i < 0x80000 / 4; i++)
{
m_mainram[i+(0x500000/4) - (0x20/4)] = m_romregion[i];
}
}
void lexibook_jg7425_state::machine_reset()
{
// I think this code should be running from RAM at least, probably some kind of bootstrap / internal ROM to copy it? (hyperscan.cpp indicates that SoC can have internal ROM at least)
/*
the first 0x20 bytes of the ROM seem to be some pointers
F7 FF FE FF
FF FF FF FF
FF FF FF FF
FC 01 50 A0 (address A05001FC) - load address for the main program
FC 01 70 A0 (address A07001FC) - maybe top of program to copy?
00 10 50 A0 (address A0501000) - entry point??
20 00 00 98 (address 98000020)
00 00 00 00
then there is a program which loads at A05001FC between 0x20 - 0x6DBD3
this program is then partially repeated until it is abruptly cut off
with a block of 00 at 0x7ff20
the 2nd half of the ROM (0x80000+) is just 0xff fill
*/
uint32_t loadaddr = (m_romregion[0x0c] << 0) | (m_romregion[0x0d] << 8) | (m_romregion[0x0e] << 16) | (m_romregion[0x0f] << 24);
uint32_t endaddr = (m_romregion[0x10] << 0) | (m_romregion[0x11] << 8) | (m_romregion[0x12] << 16) | (m_romregion[0x13] << 24);
uint32_t entry = (m_romregion[0x14] << 0) | (m_romregion[0x15] << 8) | (m_romregion[0x16] << 16) | (m_romregion[0x17] << 24);
uint8_t* rom = (uint8_t*)&m_romregion[0];
for (int i = 0; i < endaddr-loadaddr; i++)
{
uint32_t data = rom[0x20 + i];
m_maincpu->space(AS_PROGRAM).write_byte(loadaddr+i, data);
}
m_maincpu->set_state_int(SCORE_PC, entry);
}
static INPUT_PORTS_START( lexibook_jg7425 )
@ -82,9 +110,13 @@ uint32_t lexibook_jg7425_state::screen_update(screen_device &screen, bitmap_rgb3
void lexibook_jg7425_state::map(address_map &map)
{
map(0x00000000, 0x00ffffff).ram().share("mainram");
map(0xa0000000, 0xa0ffffff).ram().share("mainram");
map(0x9f000000, 0x9fffffff).ram().share("mainram");
map(0xbf000000, 0xbfffffff).ram().share("mainram");
// it quickly ends up jumping to BF000024, which is probably internal ROM - can we simulate what it wants?
}
@ -102,23 +134,67 @@ void lexibook_jg7425_state::lexibook_jg7425(machine_config &config)
}
ROM_START( lx_jg7425 )
ROM_REGION( 0x200000, "maincpu", ROMREGION_32BIT | ROMREGION_LE )
ROM_LOAD32_DWORD( "mx29lv160.u6", 0x000000, 0x200000, CRC(43c90080) SHA1(4c9e5c8f880d40bd684357ce67ae45c3f5d24b62) )
ROM_REGION( 0x200000, "extrom", ROMREGION_ERASEFF )
ROM_LOAD( "mx29lv160.u6", 0x000000, 0x200000, CRC(43c90080) SHA1(4c9e5c8f880d40bd684357ce67ae45c3f5d24b62) )
DISK_REGION( "ata:0:hdd" ) /* 4GB SD Card */
DISK_IMAGE( "lexibook_jg7425_4gbsd", 0, SHA1(dc0985103edec3992efdd493feef6185daedb3fd) )
ROM_END
ROM_START( lx_aven )
ROM_REGION( 0x200000, "maincpu", ROMREGION_32BIT | ROMREGION_LE )
ROM_LOAD32_DWORD( "29lv800.bin", 0x000000, 0x100000, CRC(7b107f6c) SHA1(3a8e37e51dab5cab9977261e0ac17ba5194a9370) )
ROM_REGION( 0x200000, "extrom", ROMREGION_ERASEFF )
ROM_LOAD( "29lv800.bin", 0x000000, 0x100000, CRC(7b107f6c) SHA1(3a8e37e51dab5cab9977261e0ac17ba5194a9370) )
DISK_REGION( "ata:0:hdd" ) /* 4GB SD Card */
DISK_IMAGE( "sd-card", 0, SHA1(911da7bf7dac391e3329e17e3f411caafac52f0f) )
ROM_END
ROM_START( lx_frozen )
ROM_REGION( 0x200000, "extrom", ROMREGION_ERASEFF )
ROM_LOAD( "29lv800.bin", 0x000000, 0x100000, CRC(7b107f6c) SHA1(3a8e37e51dab5cab9977261e0ac17ba5194a9370) )
DISK_REGION( "ata:0:hdd" ) /* 4GB SD Card */
DISK_IMAGE( "sdcard", 0, SHA1(0d727815ba06d7bfe8e092007e24d4931b302ef9) )
ROM_END
ROM_START( zone3d )
ROM_REGION( 0x100000, "extrom", 0 ) // SPI ROM in this case
ROM_LOAD("zone_25l8006e_c22014.bin", 0x000000, 0x100000, CRC(8c571771) SHA1(cdb46850286d31bf58d45b75ffc396ed774ac4fd) )
/*
model: Lexar SD
revision: LX01
serial number: 00000000XL10
size: 362.00 MiB (741376 sectors * 512 bytes)
unk1: 0000000000000007
unk2: 00000000000000fa
unk3: 01
The SD card has no label, but there's some printing on the back:
MMAGF0380M3085-WY
TC00201106 by Taiwan
--
Dumped with hardware write blocker, so this image is correct, and hasn't been corrupted by Windows
Image contains a FAT filesystem with a number of compressed? programs that presumably get loaded into RAM by
the bootloader in the serial flash ROM
*/
DISK_REGION( "cfcard" )
DISK_IMAGE( "zone3d", 0, SHA1(77971e2dbfb2ceac12f482d72539c2e042fd9108) )
ROM_REGION( 0x008000, "spg290", ROMREGION_32BIT | ROMREGION_LE )
ROM_LOAD32_DWORD("internal.rom", 0x000000, 0x008000, NO_DUMP)
ROM_END
} // anonymous namespace
CONS( 2015, lx_jg7425, 0, 0, lexibook_jg7425, lexibook_jg7425, lexibook_jg7425_state, empty_init, "Lexibook", "Lexibook JG7425 221-in-1", MACHINE_IS_SKELETON )
CONS( 201?, lx_aven, 0, 0, lexibook_jg7425, lexibook_jg7425, lexibook_jg7425_state, empty_init, "Lexibook", "Marvel Avengers TV Game Console (32-bit) (Lexibook)", MACHINE_IS_SKELETON )
CONS( 2015, lx_jg7425, 0, 0, lexibook_jg7425, lexibook_jg7425, lexibook_jg7425_state, empty_init, "Lexibook", "Lexibook JG7425 221-in-1", MACHINE_IS_SKELETON )
CONS( 2016, lx_aven, 0, 0, lexibook_jg7425, lexibook_jg7425, lexibook_jg7425_state, empty_init, "Lexibook", "Marvel Avengers TV Game Console (32-bit, Lexibook)", MACHINE_IS_SKELETON )
CONS( 2016, lx_frozen, 0, 0, lexibook_jg7425, lexibook_jg7425, lexibook_jg7425_state, empty_init, "Lexibook", "Disney Frozen TV Game Console (32-bit, Lexibook, JG7420FZ)", MACHINE_IS_SKELETON )
// slightly different, but same basic structure of the external ROM
COMP( 201?, zone3d, 0, 0, lexibook_jg7425, lexibook_jg7425, lexibook_jg7425_state, empty_init,"Zone", "Zone 3D", MACHINE_IS_SKELETON )

View file

@ -1187,6 +1187,13 @@ static INPUT_PORTS_START( doraphone )
PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNUSED )
INPUT_PORTS_END
static INPUT_PORTS_START( doraphonep )
PORT_INCLUDE( doraphone )
PORT_MODIFY("P1")
PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_CUSTOM ) // PAL mode
INPUT_PORTS_END
static INPUT_PORTS_START( doraglobe )
PORT_START("P1")
@ -1920,6 +1927,14 @@ void spg2xx_game_doraphone_state::doraphone(machine_config &config)
m_maincpu->portc_in().set(FUNC(spg2xx_game_doraphone_state::base_portc_r));
}
void spg2xx_game_doraphone_state::doraphonep(machine_config &config)
{
doraphone(config);
m_maincpu->set_pal(true);
m_screen->set_refresh_hz(50);
}
ROM_START( rad_skat )
ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 )
@ -2095,6 +2110,11 @@ ROM_START( doraphon )
ROM_LOAD16_WORD_SWAP( "doraphone.bin", 0x000000, 0x800000, CRC(a79c154b) SHA1(f5b9bf63ea52d058252ab6702508b519fbdee0cc) )
ROM_END
ROM_START( doraphonf )
ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD16_WORD_SWAP( "doraphone_fr.u4", 0x000000, 0x800000, CRC(216632a1) SHA1(b2bd81656a261e09814792f52428eead2ea7ce1f) )
ROM_END
ROM_START( doraglob )
ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD16_WORD_SWAP( "doraglobe.bin", 0x000000, 0x800000, CRC(6f454c50) SHA1(201e2de3d90abe017a8dc141613cbf6383423d13) )
@ -2125,6 +2145,10 @@ ROM_START( tiktokmm )
ROM_LOAD16_WORD_SWAP( "webcamthingy.bin", 0x000000, 0x800000, CRC(54c0d4a9) SHA1(709ee607ca447baa6f7e686268df1998372fe617) )
ROM_END
ROM_START( jeuint )
ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD16_WORD_SWAP( "jeuinteractiftv.bin", 0x000000, 0x800000, CRC(27103086) SHA1(d1313f416ae8ec85e523fefd523d6f4b7970eaf3) )
ROM_END
ROM_START( hotwhl2p )
ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASE00 )
@ -2187,6 +2211,13 @@ void spg2xx_game_ordentv_state::init_ordentv()
rom[0x4fef8] = 0xee07;
}
void spg2xx_game_ordentv_state::init_jeuint()
{
// the game will die by jumping to an infinite loop if this check fails, what is it checking?
uint16_t* rom = (uint16_t*)memregion("maincpu")->base();
rom[0x53376] = 0xee07;
}
void spg2xx_game_state::init_itvphone()
{
// the game will die by jumping to an infinite loop if this check fails, what is it checking?
@ -2243,7 +2274,8 @@ CONS( 2006, vtechtvsgr, 0, 0, spg2xx, spg2xx, spg2xx_game_state,
CONS( 2007, itvphone, 0, 0, spg2xx_pal, itvphone, spg2xx_game_state, init_itvphone, "Taikee / Oregon Scientific / V-Tac Technology Co Ltd.", u8"Teléfono interactivo de TV (Spain)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
// "Boots's" is used on the title screen and in the manual, even if "Boots'" is usually used outside of this game.
CONS( 2006, doraphon, 0, 0, doraphone, doraphone, spg2xx_game_doraphone_state,empty_init, "VTech", "Dora the Explorer - Dora TV Explorer Phone / Boots's Special Day", MACHINE_IMPERFECT_SOUND )
CONS( 2006, doraphon, 0, 0, doraphone, doraphone, spg2xx_game_doraphone_state,empty_init, "VTech", "Dora the Explorer - Dora TV Explorer Phone / Boots's Special Day (US)", MACHINE_IMPERFECT_SOUND )
CONS( 2006, doraphonf, doraphon, 0, doraphonep,doraphonep,spg2xx_game_doraphone_state,empty_init, "VTech", "Dora the Explorer - Dora TV Explorer Phone / L'anniversaire de Babouche (France)", MACHINE_IMPERFECT_SOUND )
// This was from a 'cost reduced' unit with the 'non-TV' mode switch and internal speaker removed, however it looks like the code was not disabled or removed as the mode is fully functional.
// The ZC-Infinity video for this on YouTube shows the map scrolling to center the continent, there doesn't appear to be an input for this, different revision?
// Dutch and French localized versions also exists, which again must be different code
@ -2279,7 +2311,9 @@ CONS( 2005, mattelcs, 0, 0, rad_skat, mattelcs, spg2xx_game_state,
// there's also a single player Hot Wheels Plug and Play that uses a wheel style controller
CONS( 2006, hotwhl2p, 0, 0, hotwheels, hotwheels, spg2xx_game_hotwheels_state,empty_init, "Mattel", "Hot Wheels (2 player, pad controllers)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
// there was also an English release of this, simply titled "Interactive TV Computer"
CONS( 2007, ordentv, 0, 0, ordentv, ordentv, spg2xx_game_ordentv_state, init_ordentv, "Taikee / V-Tac", "Ordenador-TV (Spain)", MACHINE_NOT_WORKING )
CONS( 2007, jeuint, ordentv, 0, ordentv, ordentv, spg2xx_game_ordentv_state, init_jeuint, "Taikee / V-Tac", u8"Jeu Intéractif TV (France)", MACHINE_NOT_WORKING)
CONS( 200?, wfcentro, 0, 0, wfcentro, spg2xx, spg2xx_game_wfcentro_state, empty_init, "WinFun", "Centro TV de Diseno Artistico (Spain)", MACHINE_NOT_WORKING )

View file

@ -307,6 +307,7 @@ public:
void ordentv(machine_config &config);
void init_ordentv();
void init_jeuint();
protected:
@ -346,6 +347,7 @@ public:
{ }
void doraphone(machine_config &config);
void doraphonep(machine_config &config);
private:
uint16_t porta_r(offs_t offset, uint16_t mem_mask = ~0);