Added various TV games. (#11654) [TeamEurope, ChinnyVision, wai-3-love, David Haywood]

* tvgames/elan_eu3a05vid.cpp: Hooked up transparent pen register.
* tvgames/trkfldch.cpp: Hooked up additional DMA registers and added an input register for JG7000.
* skeleton/easy_karaoke.cpp: Listed built-in songs.
* ekara_japan_bh.xml: Added another title to the list of undumped cartridges.

New working systems
--------------------
Game Zone II 128-in-1 [TeamEurope, David Haywood]
Joystick88 [TeamEurope, David Haywood]
Motorcycle 30-in-1 [TeamEurope, David Haywood]
My Arcade Plug And Play 220 Game Retro Controller (DGUN-2959) [TeamEurope, ChinnyVision]
Super TV Air Jet 6-in-1 (Lexibook Junior) [TeamEurope, David Haywood]
Wireless Boxing (PAL, Play Vision) [TeamEurope, David Haywood]

New systems marked not working
------------------
Zone Family Fit [TeamEurope, David Haywood]
Dance Dance Revolution - Broadwalk Arcade [wai-3-love]
Kidizoom (Germany, blue camera) [TeamEurope]
Kidizoom Connect (Germany, pink camera) [TeamEurope]
Sudoku TV Game (PAL, 2 players) [TeamEurope, David Haywood]
TV Sports Plug & Play 5-in-1 (JG7000) [TeamEurope, David Haywood]
Virtual Football (with 3 bonus games) [TeamEurope, David Haywood]

New working software items
-------------
nes_vt_cart.xml
5 Bonus Games [TeamEurope, David Haywood]

New software items marked not working
-----------
easy_karaoke_cart.xml
Golden Greats Vol.1 [TeamEurope, David Haywood]
Golden Greats Vol.2 [TeamEurope, David Haywood]
Mega Hits Vol.1  [TeamEurope, David Haywood]
Mega Hits Vol.3  [TeamEurope, David Haywood]
This commit is contained in:
mamehaze 2023-11-02 12:35:43 +00:00 committed by GitHub
parent 0d67b1bdcc
commit 5c5073fe92
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 560 additions and 42 deletions

View File

@ -4,14 +4,77 @@
license:CC0-1.0
-->
<softwarelist name="easy_karaoke_cart" description="IVL Technologies Easy Karaoke cartridges">
<!--
YMCA The Village People
I Will Always Love You Whitney Houston
Summer Nights Grease
Hey Jude The Beatles
Hotel California The Eagles
American Pie Madonna
Blue Monday New Order
My Heart Will Go On Celine Dion
Nothing Compares 2 U Sinead O'Connor
Everything I Do Bryan Adams
-->
<software name="ekgg1" supported="no">
<description>Golden Greats Vol.1</description>
<year>2004</year>
<publisher>IVL Technologies</publisher>
<part name="cart" interface="easy_karaoke_cart">
<dataarea name="rom" size="0x80000">
<rom name="MX29LV040.U4" size="0x80000" crc="5119b390" sha1="9703f3b753ac22f3d0e18d8aefa479814c73110c" />
</dataarea>
<dataarea name="mcu" size="0x2000">
<rom name="IC89LV52A-24PQ.U1" size="0x2000" status="nodump" />
</dataarea>
</part>
</software>
<!--
My Way Frank Sinatra
Daydream believer The Monkees
Build me up buttercup The Foundations
The Best Tina Turner
How do I live Leanne Rimes
I will survive Gloria Gaynor
Candle in the wind 97 Elton John
If tomorrow never comes Ronan Keating
Stand by me Ben E. King
Words Boyzone
-->
<software name="ekgg2" supported="no">
<description>Golden Greats Vol.2</description>
<year>2004</year>
<publisher>IVL Technologies</publisher>
<part name="cart" interface="easy_karaoke_cart">
<dataarea name="rom" size="0x80000">
<rom name="IVL_S033I.U3" size="0x80000" crc="e4b1e82e" sha1="2db2162e0a86fc82e1978a5f21ea46e5ccde5f6d" />
</dataarea>
<dataarea name="mcu" size="0x2000">
<rom name="IC89LV52A-24PQ.U1" size="0x2000" status="nodump" />
</dataarea>
</part>
</software>
<!--
Black velvet Alannah Myles
Hello Lionel Richie
Hero Mariah Carey
I wanna hold your hand The Beatles
Imagine John Lennon
Like a virgin Madonna
New York New York Frank Sinatra
Suspicious minds Elvis Presley
Wannabe The Spice girls
Your song Elton John
-->
<software name="ekgg3" supported="no">
<description>Golden Greats Vol.3</description>
<year>2004</year>
<publisher>IVL Technologies</publisher>
<part name="cart" interface="easy_karaoke_cart">
<dataarea name="rom" size="0x80000">
<rom name="MX29LV040.U3" size="0x80000" crc="163e6f6d" sha1="baa95437161459d3874fe0576a813907d2ee7869" />
<rom name="MX29LV040.U4" size="0x80000" crc="163e6f6d" sha1="baa95437161459d3874fe0576a813907d2ee7869" />
</dataarea>
<dataarea name="mcu" size="0x2000">
<rom name="IC89LV52A-24PQ.U1" size="0x2000" status="nodump" />
@ -19,13 +82,25 @@ license:CC0-1.0
</part>
</software>
<!--
Always on my mind Elvis Presley
Can't buy me love The Beatles
Crazy Patsy Cline
Don't let the sun go down on me Elton John & George Michael
Don't you want me Human League
Killing me softly The Fugees
Like a Prayer Madonna
Love is all around Wet Wet Wet
You're still the one Shania Twain
You're the one that I want Grease
-->
<software name="ekgg4" supported="no">
<description>Golden Greats Vol.4</description>
<year>2004</year>
<publisher>IVL Technologies</publisher>
<part name="cart" interface="easy_karaoke_cart">
<dataarea name="rom" size="0x80000">
<rom name="MX29LV040.U3" size="0x80000" crc="41587eea" sha1="efe29e7dfae91c1f5d0fd196197c3021e8907b58" />
<rom name="MX29LV040.U4" size="0x80000" crc="41587eea" sha1="efe29e7dfae91c1f5d0fd196197c3021e8907b58" />
</dataarea>
<dataarea name="mcu" size="0x2000">
<rom name="IC89LV52A-24PQ.U1" size="0x2000" status="nodump" />
@ -33,6 +108,44 @@ license:CC0-1.0
</part>
</software>
<!--
Beautiful Christina Aguilera
Hero Enrique Iglesias
Dilemma Nelly & Kelly
All the things she said Tatu
Kiss kiss Holly Valence
A little less conversation Elvis Vs JXL
Cheeky song Cheeky Girls
Eternal flame Atomic Kitten
Evergreen Will Young
Mambo No. 5 Lou Bega
-->
<software name="ekmh1" supported="no">
<description>Mega Hits Vol.1</description>
<year>2004</year>
<publisher>IVL Technologies</publisher>
<part name="cart" interface="easy_karaoke_cart">
<dataarea name="rom" size="0x80000">
<rom name="MX29LV040.U4" size="0x80000" crc="5d9b69fd" sha1="aeb39029f351ab3aff213e832c5e83cfdfc91355" />
</dataarea>
<dataarea name="mcu" size="0x2000">
<rom name="IC89LV52A-24PQ.U1" size="0x2000" status="nodump" />
</dataarea>
</part>
</software>
<!--
Rock your body Justin Timberlake
Can't get you out of my head Kylie Minogue
Just a little Liberty X
Whole again Atomic Kitten
Whenever wherever Shakira
Angels Robbie Williams
Unchained melody Gareth Gates
Stole Kelly Rowland
Macarena Los Del Rio
Genie in a bottle Christina Aguilera
-->
<software name="ekmh2" supported="no">
<description>Mega Hits Vol.2</description>
<year>2004</year>
@ -47,4 +160,30 @@ license:CC0-1.0
</part>
</software>
<!--
Breathe Easy Blue
Cha Cha Slide DJ Casper
Dragostea Din Tei O-Zone
Hey Ya Outkast
Left Outside Alone Anastasia
Mad World Michael Andrews Feat. Gary Jules
Superstar Jamelia
Sweet Dreams (My LA Ex) Rachel Stevens
Toxic Britney Spears
Where Is The Love Black Eyed Peas
-->
<software name="ekmh3" supported="no">
<description>Mega Hits Vol.3</description>
<year>2004</year>
<publisher>IVL Technologies</publisher>
<part name="cart" interface="easy_karaoke_cart">
<dataarea name="rom" size="0x80000">
<rom name="MX29LV040.U4" size="0x80000" crc="23d09988" sha1="c368acab9a867839b379aeec2c95601c82118aef" />
</dataarea>
<dataarea name="mcu" size="0x2000">
<rom name="IC89LV52A-24PQ.U1" size="0x2000" status="nodump" />
</dataarea>
</part>
</software>
</softwarelist>

View File

@ -21,6 +21,7 @@ license:CC0-1.0
BH-04 (unknown)
*BH-05 Best Hit Collection)
*BH-06 Best Hit Collection
BH-07 Best Hit Collection
(more? what's the BH highest number?)

View File

@ -18,4 +18,16 @@ license:CC0-1.0
</part>
</software>
<!-- Generic looking cartridge paired with a Joystick style controller -->
<software name="5bonus">
<description>5 Bonus Games</description>
<year>200?</year>
<publisher>&lt;unknown&gt;</publisher>
<part name="cart" interface="nes_vt_cart">
<dataarea name="rom" size="0x80000">
<rom name="C9C8_8-20LS.U1" size="0x80000" crc="ea86e3cd" sha1="b641a6bda9f80c9cd9730008eff24df92a6a59cb"/>
</dataarea>
</part>
</software>
</softwarelist>

View File

@ -34094,6 +34094,7 @@ vsmaxx15
dgun806
@source:nintendo/nes_vt02_vt03.cpp
88in1joy
ablmini
ablpinb
ablping
@ -34103,8 +34104,10 @@ ddrdismx
ddrstraw
dgun2500
dgun2869
dgun2959
dgun851
dgun853
gamezn2
gprnrs1
gprnrs16
joysti30
@ -34142,6 +34145,7 @@ senwld
silv35
solargm
sporzbx
sporzbxa
sporzpp
sporztn
sudo6in1
@ -34151,6 +34155,7 @@ timetp36
timetp7
vdogdeme
vdogdemo
vfootbal
vsmax25v
vsmaxx17
vsmaxx77
@ -34185,6 +34190,7 @@ vgtablet
vgpmini
vgpocket
vsmaxtx2
wfmotor
@source:nintendo/nes_vt32.cpp
dgun2573
@ -44474,15 +44480,16 @@ tvbg6a
tvbg6b
@source:tvgames/elan_eu3a05.cpp
rad_sinv
rad_tetr
airblsjs
buzztime
sudelan3
sudelan
carlecfg
pvmilfin
pvwwcas
rad_sinv
rad_tetr
sudelan
sudelan3
sudoku2p
@source:tvgames/elan_eu3a14.cpp
rad_gtg
@ -44554,6 +44561,7 @@ bfmpac
bfpacman
bfspyhnt
bftetris
siddr
wiwcs
@source:tvgames/generalplus_gpl162xx_lcdtype.cpp
@ -44567,6 +44575,8 @@ jak_tmnthp
jak_dchp
jak_ddhp
jak_prhp
kidizmb
kidizmp
zippity
zippityuk
@ -44604,6 +44614,7 @@ hyprscan //
jak_bbh
jak_bbsf
zone3d
zonefamf
@source:tvgames/spg29x_lexibook_jg7425.cpp
lx_jg7425
@ -44629,6 +44640,7 @@ itvphone
jjstrip
jouet
knd
lxairjet
lxspidaj
mattelcs //
ordentv
@ -44820,10 +44832,11 @@ megadri4
megadri4a
@source:tvgames/trkfldch.cpp
trkfldch // (c) 2007 Konami
my1stddr // (c) 2006 Konami
abl4play
lexitvsprt
my1stddr // (c) 2006 Konami
shtscore
trkfldch // (c) 2007 Konami
@source:tvgames/tvgame.cpp
tvgame // 2011

View File

@ -79,6 +79,7 @@ public:
void nes_vt_pal_2mb(machine_config& config);
void nes_vt_pal_4mb(machine_config& config);
void nes_vt_pal_8mb(machine_config& config);
void nes_vt_pal_16mb(machine_config& config);
void nes_vt_512kb(machine_config& config);
void nes_vt_1mb(machine_config& config);
@ -101,6 +102,7 @@ public:
void vt_external_space_map_1mbyte_majkon(address_map& map);
void init_protpp();
void init_gamezn2();
protected:
required_device<nes_vt02_vt03_soc_device> m_soc;
@ -167,6 +169,7 @@ public:
{ }
void nes_vt_waixing_alt_4mb_sporzpp(machine_config& config);
void nes_vt_pal_4mb_sporzbxa(machine_config& config);
private:
uint8_t in1_r() override
@ -230,6 +233,7 @@ public:
{ }
void nes_vt_2mb_ablping(machine_config& config);
void nes_vt_2mb_vfootbal(machine_config& config);
private:
uint8_t ablping_extraio_r();
@ -571,6 +575,14 @@ void nes_vt_state::nes_vt_pal_8mb(machine_config& config)
m_soc->set_addrmap(AS_PROGRAM, &nes_vt_state::vt_external_space_map_8mbyte);
}
void nes_vt_state::nes_vt_pal_16mb(machine_config& config)
{
NES_VT02_VT03_SOC_PAL(config, m_soc, PAL_APU_CLOCK);
configure_soc(m_soc);
m_soc->set_addrmap(AS_PROGRAM, &nes_vt_state::vt_external_space_map_16mbyte);
}
void nes_vt_waixing_state::nes_vt_waixing_512kb(machine_config &config)
{
NES_VT02_VT03_SOC(config, m_soc, NTSC_APU_CLOCK);
@ -622,6 +634,12 @@ void nes_vt_waixing_alt_sporzpp_state::nes_vt_waixing_alt_4mb_sporzpp(machine_co
m_soc->set_8000_scramble(0x5, 0x4, 0x3, 0x2, 0x7, 0x6, 0x7, 0x8);
}
void nes_vt_waixing_alt_sporzpp_state::nes_vt_pal_4mb_sporzbxa(machine_config& config)
{
NES_VT02_VT03_SOC_PAL(config, m_soc, PAL_APU_CLOCK);
configure_soc(m_soc);
m_soc->set_addrmap(AS_PROGRAM, &nes_vt_state::vt_external_space_map_4mbyte);
}
void nes_vt_hum_state::nes_vt_hummer_2mb(machine_config& config)
{
@ -673,6 +691,18 @@ void nes_vt_ablping_state::nes_vt_2mb_ablping(machine_config &config)
m_soc->extra_write_3_callback().set(FUNC(nes_vt_ablping_state::ablping_extraio_w));
}
void nes_vt_ablping_state::nes_vt_2mb_vfootbal(machine_config &config)
{
NES_VT02_VT03_SOC_PAL(config, m_soc, PAL_APU_CLOCK);
configure_soc(m_soc);
m_soc->set_addrmap(AS_PROGRAM, &nes_vt_ablping_state::vt_external_space_map_2mbyte);
m_soc->extra_read_2_callback().set(FUNC(nes_vt_ablping_state::ablping_extraio_r));
m_soc->extra_read_3_callback().set(FUNC(nes_vt_ablping_state::ablping_extraio_r));
m_soc->extra_write_2_callback().set(FUNC(nes_vt_ablping_state::ablping_extraio_w));
m_soc->extra_write_3_callback().set(FUNC(nes_vt_ablping_state::ablping_extraio_w));
}
uint8_t nes_vt_base_state::upper_412c_r()
{
logerror("%s: upper_412c_r\n", machine().describe_context());
@ -1072,6 +1102,11 @@ ROM_START( sporzbx )
ROM_LOAD( "sporzboxing.bin", 0x00000, 0x400000, CRC(8b832c0b) SHA1(8193955a81e894a01308a80d5153f2ecfe134da6) )
ROM_END
ROM_START( sporzbxa )
ROM_REGION( 0x400000, "mainrom", 0 )
ROM_LOAD( "wlboxing.bin", 0x00000, 0x400000, CRC(5df7beb9) SHA1(dadcec310e4a7b3ca061c6fe6be319cda2445b24) )
ROM_END
ROM_START( sporztn )
ROM_REGION( 0x400000, "mainrom", 0 )
ROM_LOAD( "wirelesstennis.bin", 0x00000, 0x400000, CRC(e60f5ee1) SHA1(838ba7f4e9dcd0101eaaef5be883206d8856f45c) )
@ -1271,6 +1306,11 @@ ROM_START( protpp )
ROM_LOAD( "vpingpong_s29al008d70tfi02_0001225b.bin", 0x00000, 0x100000, CRC(8cf46272) SHA1(298a6341d26712ec1f282e7514e995a7af5ac012) )
ROM_END
ROM_START( vfootbal )
ROM_REGION( 0x200000, "mainrom", 0 )
ROM_LOAD( "vfootball.u3", 0x00000, 0x200000, CRC(3b586f64) SHA1(92ee41ccfad32f7629bd43503cfb15e9624283ce) )
ROM_END
ROM_START( zdog )
ROM_REGION( 0x400000, "mainrom", 0 )
ROM_LOAD( "zdog.bin", 0x00000, 0x400000, CRC(5ed3485b) SHA1(5ab0e9370d4ed1535205deb0456878c4e400dd81) )
@ -1293,6 +1333,21 @@ ROM_START( dgun2869 )
ROM_IGNORE(0x100)
ROM_END
ROM_START( dgun2959 )
ROM_REGION( 0x2000000, "mainrom", 0 )
ROM_LOAD( "dgun2959.bin", 0x00000, 0x1000000, CRC(6e9b2f45) SHA1(abac2c1783e99b02f9c44f714d5184aea86661ae) )
ROM_END
ROM_START( 88in1joy )
ROM_REGION( 0x400000, "mainrom", 0 )
ROM_LOAD( "88in1joystick.bin", 0x00000, 0x400000, CRC(86b8d819) SHA1(6da387b2e6ce02a3ec203e2af8a961959ba1cf62) )
ROM_END
ROM_START( gamezn2 )
ROM_REGION( 0x400000, "mainrom", 0 )
ROM_LOAD16_WORD_SWAP( "gamezone2.bin", 0x00000, 0x400000, CRC(f7b2d609) SHA1(7d2d8f6e822c4e6b97e9accaa524b7910c6b97bf) ) // byteswapped as protection?
ROM_END
void nes_vt_state::init_protpp()
@ -1312,6 +1367,22 @@ void nes_vt_state::init_protpp()
}
}
void nes_vt_state::init_gamezn2()
{
u8 *src = memregion("mainrom")->base();
int len = memregion("mainrom")->bytes();
std::vector<u8> buffer(len);
{
for (int i = 0; i < len; i++)
{
buffer[i] = bitswap<8>(src[i],7,6,5,4,3,2,0,1); // bottom 2 bits are swapped?
}
std::copy(buffer.begin(), buffer.end(), &src[0]);
}
}
} // anonymous namespace
@ -1341,7 +1412,8 @@ CONS( 2005, ablpinb, 0, 0, nes_vt_pal_2mb, ablpinb, nes_vt_ablpinb_state, e
// need to map 2 player controls for Ping Pong, 'Eat-Bean' (the PacMan hack) gets stuck during intermission? (same happens on hardware?)
CONS( 2004, sporzpp, 0, 0, nes_vt_waixing_alt_4mb_sporzpp, sporzpp, nes_vt_waixing_alt_sporzpp_state, empty_init, "Macro Winners", "Game Sporz Wireless Duet Play Ping-Pong", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
// has some longer than expected delays when sounds should play on the Boxing part, but NES hacks are all functional
CONS( 2004, sporzbx, 0, 0, nes_vt_waixing_alt_4mb_sporzpp, sporzpp, nes_vt_waixing_alt_sporzpp_state, empty_init, "Macro Winners", "Game Sporz Wireless Boxing", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
CONS( 2004, sporzbx, 0, 0, nes_vt_waixing_alt_4mb_sporzpp, sporzpp, nes_vt_waixing_alt_sporzpp_state, empty_init, "Macro Winners", "Game Sporz Wireless Boxing", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
CONS( 2004, sporzbxa, sporzbx, 0, nes_vt_pal_4mb_sporzbxa, sporzpp, nes_vt_waixing_alt_sporzpp_state, empty_init, "Macro Winners (Play Vision license)", "Wireless Boxing (PAL, Play Vision)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
// has some longer than expected delays when sounds should play on the Tennis part, but NES hacks are all functional, US version is sold in DreamGear branded box.
CONS( 2004, sporztn, 0, 0, nes_vt_pal_4mb, sporzpp, nes_vt_wldsoctv_state, empty_init, "Macro Winners (Play Vision license)", "Wireless Tennis (PAL, Play Vision)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
// missing PCM audio, but regular APU SFX work
@ -1392,6 +1464,8 @@ CONS( 2004, vsmaxxvd, 0, 0, nes_vt_vh2009_8mb, nes_vt, nes_vt_swap_op_
CONS( 200?, vsmaxx77, 0, 0, nes_vt_vh2009_8mb, nes_vt, nes_vt_swap_op_d5_d6_state, empty_init, "Senario / JungleTac", "Vs Maxx Wireless 77-in-1", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
CONS( 200?, joysti30, 0, 0, nes_vt_vh2009_4mb, nes_vt, nes_vt_swap_op_d5_d6_state, empty_init, "WinFun / JungleTac", "Joystick 30", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // doesn't show WinFun onscreen, but packaging does
// mostly bootleg NES games, but also has Frogger, Scramble and Asteroids in it
CONS( 200?, gamezn2, 0, 0, nes_vt_4mb, nes_vt, nes_vt_state, init_gamezn2, "<unknown>", "Game Zone II 128-in-1", MACHINE_IMPERFECT_GRAPHICS ) // was this PAL? (lots of raster splits are broken at the moment either way)
// die is marked as VH2009, as above, but no scrambled opcodes here
CONS( 201?, techni4, 0, 0, nes_vt_pal_2mb, nes_vt, nes_vt_state, empty_init, "Technigame", "Technigame Super 4-in-1 Sports (PAL)", MACHINE_IMPERFECT_GRAPHICS )
@ -1410,6 +1484,8 @@ CONS( 200?, mc_sp69, 0, 0, nes_vt_4mb_sp69, nes_vt, nes_vt_sp69_state, em
// PCB has PP1100-MB 061110 on it, possible date YYMMDD code? (pinball is 050329, guitar fever is 070516, air blaster 050423, kickboxing 061011 etc.)
CONS( 2006, ablping, 0, 0, nes_vt_2mb_ablping, nes_vt, nes_vt_ablping_state, empty_init, "Advance Bright Ltd", "Ping Pong / Table Tennis / Super Ping Pong (PP1100, ABL TV Game)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
CONS( 200?, vfootbal, 0, 0, nes_vt_2mb_vfootbal,nes_vt, nes_vt_ablping_state, empty_init, "<unknown>", "Virtual Football (with 3 bonus games)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
// Hummer systems, scrambled bank register
CONS( 200?, mc_sam60, 0, 0, nes_vt_hummer_2mb, nes_vt, nes_vt_hum_state, empty_init, "Hummer Technology Co., Ltd.", "Samuri (60 in 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
CONS( 200?, zdog, 0, 0, nes_vt_hummer_4mb, nes_vt, nes_vt_hum_state, empty_init, "Hummer Technology Co., Ltd.", "ZDog (44 in 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
@ -1462,6 +1538,9 @@ CONS( 201?, mc_89in1, 0, 0, nes_vt_4mb, nes_vt, nes_vt_state, empty
// Works fine, uses ony VT02 features
CONS( 201?, mc_tv200, 0, 0, nes_vt_8mb, nes_vt, nes_vt_state, empty_init, "Thumbs Up", "200 in 1 Retro TV Game", MACHINE_IMPERFECT_GRAPHICS )
// TODO: add cart port and hook up nes_vt_cart.xml
CONS( 201?, 88in1joy, 0, 0, nes_vt_4mb, nes_vt, nes_vt_state, empty_init, "Play Vision", "Joystick88", MACHINE_IMPERFECT_GRAPHICS )
// Runs fine, non-sport 121 in 1 games perfect, but minor graphical issues in
// sport games, also no sound in menu or sport games due to missing PCM
@ -1476,3 +1555,4 @@ CONS( 201?, ppgc200g, 0, 0, nes_vt_pal_8mb, nes_vt, nes_vt_state, emp
// unknown tech level, it's most likely a vt09 or vt369 but isn't using any of the extended features
CONS( 201?, dgun2869, 0, 0, nes_vt_16mb, nes_vt, nes_vt_state, empty_init, "dreamGEAR", "My Arcade Retro Micro Controller - 220 Built-In Video Games (DGUN-2869)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
CONS( 201?, dgun2959, 0, 0, nes_vt_pal_16mb, nes_vt, nes_vt_state, empty_init, "dreamGEAR", "My Arcade Plug And Play 220 Game Retro Controller (DGUN-2959)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )

View File

@ -537,6 +537,12 @@ ROM_START( timetp25 )
ROM_FILL(0x1fce36, 0x01, 0x04 | 0x40) // the code doesn't set the 'alt 4bpp' mode bit, but needs it? why? it isn't hardcoded as the system takes cartridges which don't want it
ROM_END
ROM_START( wfmotor )
ROM_REGION( 0x400000, "mainrom", 0 )
ROM_LOAD( "motorcycle.bin", 0x00000, 0x400000, CRC(978f12f0) SHA1(a0230cfe4398d3971d487ff5d4b7107341799424) )
ROM_END
} // anonymous namespace
@ -572,6 +578,7 @@ CONS( 200?, rcapnp, 0, 0, nes_vt09_2mb, nes_vt09, nes_vt09_state, empty_ini
CONS( 200?, dturbogt, 0, 0, nes_vt09_8mb, nes_vt09, nes_vt09_state, empty_init, "dreamGEAR / JungleTac", "Turbo GT 50-in-1", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
CONS( 200?, ventur25, 0, 0, nes_vt09_4mb, nes_vt09, nes_vt09_state, empty_init, "<unknown> / JungleTac", "Venturer '25 Games' 25-in-1", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
CONS( 200?, joypad65, 0, 0, nes_vt09_8mb, nes_vt09, nes_vt09_state, empty_init, "WinFun / JungleTac", "Joypad 65", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
CONS( 200?, wfmotor, 0, 0, nes_vt09_4mb, nes_vt09, nes_vt09_state, empty_init, "WinFun / JungleTac", "Motorcycle 30-in-1", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
CONS( 2005, vgpocket, 0, 0, nes_vt09_4mb, nes_vt09, nes_vt09_state, empty_init, "Performance Designed Products / JungleTac", "VG Pocket (VG-2000)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
CONS( 200?, vgpmini, 0, 0, nes_vt09_4mb, nes_vt09, nes_vt09_state, empty_init, "Performance Designed Products / JungleTac", "VG Pocket Mini (VG-1500)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
// VG Pocket Max (VG-2500) (blue case, 75 games)

View File

@ -173,6 +173,24 @@ void easy_karaoke_state::easy_karaoke(machine_config &config)
SOFTWARE_LIST(config, "cart_list").set_original("easy_karaoke_cart");
}
/*
The 'easykara' set has the following 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.
*/
ROM_START( easykara )
ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF )
ROM_LOAD( "ics0303-b.bin", 0x000000, 0x400000, CRC(43d86ae8) SHA1(219dcbf72b92d1b7e00f78f237194ab47dc08f1b) )

View File

@ -282,7 +282,6 @@ void elan_ep3a19a_state::elan_ep3a19a(machine_config &config)
m_vid->set_entries(256);
m_vid->set_is_pvmilfin();
m_vid->set_use_spritepages();
m_vid->set_force_transpen_ff();
m_vid->set_force_basic_scroll();
/* sound hardware */

View File

@ -615,6 +615,31 @@ static INPUT_PORTS_START( sudoku )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
static INPUT_PORTS_START( sudoku2p )
PORT_START("IN0")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1)
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
PORT_START("IN1")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2)
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
PORT_START("IN2")
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
INPUT_PORTS_END
static INPUT_PORTS_START( carlecfg )
PORT_START("IN0")
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
@ -913,6 +938,14 @@ ROM_START( sudelan )
ROM_RELOAD(0x200000,0x200000)
ROM_END
ROM_START( sudoku2p )
ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "1596.bin", 0x00000, 0x100000, CRC(fe8ce5bc) SHA1(8fb1463c6d349e07f6483da2b6cce10a4f25fcec) )
ROM_RELOAD(0x100000,0x100000)
ROM_RELOAD(0x200000,0x100000)
ROM_RELOAD(0x300000,0x100000)
ROM_END
ROM_START( carlecfg )
@ -990,6 +1023,8 @@ CONS( 2006, sudelan3, 0, 0, elan_sudoku, sudoku, elan_eu3a05_state
// Senario also distributed this version in the US without the '3 in 1' text on the box, ROM has not been verified to match
CONS( 2005, sudelan, 0, 0, elan_sudoku_pal, sudoku, elan_eu3a05_state, init_sudelan, "All in 1 Products Ltd / Play Vision", "Carol Vorderman's Sudoku Plug & Play TV Game (All in 1 / Play Vision)", MACHINE_NOT_WORKING )
CONS( 2005, sudoku2p, 0, 0, elan_sudoku_pal, sudoku2p, elan_eu3a05_state, empty_init, "<unknown>", "Sudoku TV Game (PAL, 2 players)", MACHINE_NOT_WORKING ) // a pair of yellow controllers with 'TV Sudoku Awesome Puzzles' on their label
CONS( 200?, carlecfg, 0, 0, elan_sudoku, carlecfg, elan_eu3a05_state, empty_init, "Excalibur Electronics Inc", "Carl Edwards' Chase For Glory", MACHINE_NOT_WORKING )
// see https://millionaire.fandom.com/wiki/Haluatko_miljon%C3%A4%C3%A4riksi%3F_(Play_Vision_game)

View File

@ -18,7 +18,6 @@ elan_eu3a05vid_device::elan_eu3a05vid_device(const machine_config &mconfig, cons
m_vrambase(0x600),
m_spritebase(0x3e00),
m_use_spritepages(false),
m_force_transpen_ff(false),
m_force_basic_scroll(false)
{
}
@ -44,7 +43,7 @@ void elan_eu3a05vid_device::map(address_map &map)
map(0x0d, 0x0e).rw(FUNC(elan_eu3a05vid_device::splitpos_r), FUNC(elan_eu3a05vid_device::splitpos_w));
map(0x0f, 0x16).rw(FUNC(elan_eu3a05vid_device::tile_scroll_r), FUNC(elan_eu3a05vid_device::tile_scroll_w));
map(0x17, 0x17).ram(); // unknown
map(0x18, 0x18).ram(); // unknown
map(0x18, 0x18).rw(FUNC(elan_eu3a05vid_device::transpen_r), FUNC(elan_eu3a05vid_device::transpen_w));
// no other writes seen
}
@ -202,18 +201,6 @@ void elan_eu3a05vid_device::draw_sprites(screen_device &screen, bitmap_ind16 &bi
if (colour & 0x80)
colour = 0;
int transpen = 0;
/* HACK - how is this calculated
phoenix and the game select need it like this
it isn't a simple case of unk2 being transpen either because Qix has some elements set to 0x07
where the transpen needs to be 0x00 and Space Invaders has it set to 0x04
it could be a global register rather than something in the spritelist?
*/
if (((attr == 0xff) && (unk2 == 0xff)) || m_force_transpen_ff)
transpen = 0xff;
if (!(flags & 0x80))
continue;
@ -279,7 +266,7 @@ void elan_eu3a05vid_device::draw_sprites(screen_device &screen, bitmap_ind16 &bi
uint8_t pix = fullbankspace.read_byte(realaddr);
if (pix != transpen)
if (pix != m_transpen)
{
if (flags & 0x04) // flipx
{
@ -619,6 +606,18 @@ uint32_t elan_eu3a05vid_device::screen_update(screen_device &screen, bitmap_ind1
return 0;
}
uint8_t elan_eu3a05vid_device::transpen_r()
{
logerror("%s: transpen_r (Transparency Pen)\n", machine().describe_context());
return m_transpen;
}
void elan_eu3a05vid_device::transpen_w(uint8_t data)
{
logerror("%s: transpen_w (Transparency Pen) %02x\n", machine().describe_context(), data);
m_transpen = data;
}
// Tile bases
void elan_eu3a05vid_device::tile_gfxbase_lo_w(uint8_t data)

View File

@ -24,7 +24,6 @@ public:
void set_is_sudoku();
void set_is_pvmilfin();
void set_use_spritepages() { m_use_spritepages = true; }
void set_force_transpen_ff() { m_force_transpen_ff = true; }
void set_force_basic_scroll() { m_force_basic_scroll = true; }
protected:
@ -49,6 +48,7 @@ private:
uint8_t m_tile_scroll[4*2]{};
uint8_t m_splitpos[2]{};
uint8_t m_transpen = 0;
uint16_t get_scroll(int which);
@ -73,6 +73,9 @@ private:
uint8_t sprite_gfxbase_lo_r();
uint8_t sprite_gfxbase_hi_r();
uint8_t transpen_r();
void transpen_w(uint8_t data);
uint8_t elan_eu3a05_vidctrl_r();
void elan_eu3a05_vidctrl_w(uint8_t data);
@ -89,7 +92,6 @@ private:
int m_vrambase;
int m_spritebase;
bool m_use_spritepages;
bool m_force_transpen_ff;
bool m_force_basic_scroll;
};

View File

@ -25,6 +25,7 @@ public:
}
void init_fif();
void init_siddr();
void generalplus_gpspi_direct(machine_config &config);
@ -210,6 +211,13 @@ ROM_START( bftetris )
ROM_LOAD16_WORD_SWAP( "arcadeclassicstetris_25q16ct_c84015.bin", 0x0000, 0x200000, CRC(a97e1bab) SHA1(400944d310d5d5fccb2c6d048d7bf0cb00da09de) )
ROM_END
ROM_START( siddr )
ROM_REGION16_BE( 0x40000, "maincpu:internal", ROMREGION_ERASE00 )
//ROM_LOAD16_WORD_SWAP( "internal.rom", 0x00000, 0x40000, NO_DUMP )
ROM_REGION16_BE(0x800000, "maincpu:spidirect", ROMREGION_ERASE00)
ROM_LOAD16_WORD_SWAP( "ddr-toy.bin", 0x0000, 0x400000, CRC(873cbcc8) SHA1(bdd3d12adb1284991a3f8aaa8e451e3a55931267) )
ROM_END
void generalplus_gpspi_direct_game_state::init_fif()
{
@ -221,6 +229,17 @@ void generalplus_gpspi_direct_game_state::init_fif()
}
}
void generalplus_gpspi_direct_game_state::init_siddr()
{
uint8_t* spirom8 = (uint8_t*)memregion("maincpu:spidirect")->base();
for (int i = 0x3000; i < 0x400000; i++)
{
spirom8[i] = bitswap<8>(spirom8[i] ^ 0x68,
3, 5, 0, 7, 1, 4, 2, 6);
}
}
} // anonymous namespace
@ -232,3 +251,6 @@ CONS(2017, bfgalaga, 0, 0, generalplus_gpspi_direct, bfmpac, generalplus_gpspi_d
CONS(2018, bfdigdug, 0, 0, generalplus_gpspi_direct, bfmpac, generalplus_gpspi_direct_game_state, init_fif, "Basic Fun", "Dig Dug (mini arcade)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
CONS(2019, bfspyhnt, 0, 0, generalplus_gpspi_direct, bfspyhnt, generalplus_gpspi_direct_game_state, init_fif, "Basic Fun", "Spy Hunter (mini arcade)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
CONS(2019, bftetris, 0, 0, generalplus_gpspi_direct, bfspyhnt, generalplus_gpspi_direct_game_state, init_fif, "Basic Fun", "Tetris (mini arcade)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
// probably not identical hardware, encryption is different, but it does seem to still be a 'direct access' SPI ROM case
CONS(201?, siddr, 0, 0, generalplus_gpspi_direct, bfspyhnt, generalplus_gpspi_direct_game_state, init_siddr, "Super Impulse", "Dance Dance Revolution - Broadwalk Arcade", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)

View File

@ -274,6 +274,18 @@ ROM_START( zippityuk )
ROM_LOAD( "29f2c08aacwp.u2", 0x0000, 0x10800000, CRC(27d172ae) SHA1(9ade19d7aa28fba13581e6879b39e3a7702260b0) )
ROM_END
ROM_START( kidizmp )
ROM_REGION( 0x10800000, "nandrom", ROMREGION_ERASE00 )
ROM_LOAD( "s34ml02g1_withspare.u13", 0x0000, 0x10800000, CRC(c5d55bdc) SHA1(073fc3fd56c532750b4e2020abe27d3448999d56) )
ROM_END
ROM_START( kidizmb )
ROM_REGION( 0x8400000, "nandrom", ROMREGION_ERASE00 )
ROM_LOAD( "hy27uf081g2a_withspare.bin", 0x0000, 0x8400000, CRC(b87861c4) SHA1(8b5cc2557b54a37928be818430b91c48db98758f) )
ROM_END
void generalplus_gpl32612_game_state::nand_init(int blocksize, int blocksize_stripped)
{
uint8_t* rom = memregion("nand")->base();
@ -327,3 +339,8 @@ CONS( 200?, jak_dchp, 0, 0, gpl32612, gpl32612, generalplus_gp
CONS( 201?, zippity, 0, 0, zippity, gpl32612, generalplus_zippity_game_state, empty_init, "LeapFrog", "Zippity (US)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING)
// TODO, check if code differs, or just unused areas of the NAND
CONS( 201?, zippityuk, zippity, 0, zippity, gpl32612, generalplus_zippity_game_state, empty_init, "LeapFrog", "Zippity (UK)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING)
// GP32C01 (maybe, picture is unclear) - Camera for kids
CONS( 2013, kidizmp, 0, 0, zippity, gpl32612, generalplus_zippity_game_state, empty_init, "VTech", "Kidizoom Connect (Germany, pink camera)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING)
// seems to be older tech, just glob + ROM, assuming it's a GP32 series based on above and due to having ARM code
CONS( 201?, kidizmb, 0, 0, zippity, gpl32612, generalplus_zippity_game_state, empty_init, "VTech", "Kidizoom (Germany, blue camera)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING)

View File

@ -156,8 +156,9 @@ public:
protected:
void machine_reset() override;
private:
std::vector<uint8_t> m_strippedrom;
private:
int m_firstvector = 0;
};
@ -176,6 +177,21 @@ protected:
private:
};
class spg29x_zonefamf_game_state : public spg29x_nand_game_state
{
public:
spg29x_zonefamf_game_state(const machine_config& mconfig, device_type type, const char* tag) :
spg29x_nand_game_state(mconfig, type, tag)
{ }
void nand_zonefamf();
protected:
void machine_reset() override;
private:
};
@ -429,6 +445,23 @@ void spg29x_zone3d_game_state::machine_reset()
m_maincpu->set_state_int(SCORE_PC, 0x1000);
}
void spg29x_zonefamf_game_state::machine_reset()
{
spg29x_game_state::machine_reset();
uint32_t sourceaddr = 0x80000;
for (uint32_t addr = 0; addr <= 0x80000; addr++)
{
address_space& mem = m_maincpu->space(AS_PROGRAM);
uint8_t byte = m_strippedrom[sourceaddr];
mem.write_byte(addr, byte);
sourceaddr++;
}
m_maincpu->set_state_int(SCORE_PC, 0x4);
}
QUICKLOAD_LOAD_MEMBER(spg29x_game_state::quickload_hyper_exe)
{
@ -542,6 +575,12 @@ void spg29x_nand_game_state::nand_jak_bbsf()
m_firstvector = 0x8;
}
void spg29x_zonefamf_game_state::nand_zonefamf()
{
nand_init(0x840, 0x800);
// m_firstvector = 0x8;
}
void spg29x_zone3d_game_state::init_zone3d()
{
@ -575,6 +614,17 @@ ROM_START( jak_bbsf )
ROM_LOAD32_DWORD("internal.rom", 0x000000, 0x008000, NO_DUMP)
ROM_END
ROM_START( zonefamf )
ROM_REGION( 0x21000000, "nand", 0 )
ROM_LOAD("hy27uf084g2m_withspare.u1", 0x000000, 0x21000000, CRC(ee12b689) SHA1(fd9c708b6bb2e7574173a140d8839869a8c9f51a) )
ROM_REGION( 0x008000, "spg290", ROMREGION_32BIT | ROMREGION_LE )
ROM_LOAD32_DWORD("internal.rom", 0x000000, 0x008000, NO_DUMP)
//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) )
@ -620,9 +670,12 @@ 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 fllowing, 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)
// 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

@ -1968,6 +1968,11 @@ ROM_START( lxspidaj )
ROM_LOAD16_WORD_SWAP( "mx29lv320ct.u2", 0x000000, 0x400000, CRC(e7e03c62) SHA1(ab13452f0436efb767f01dff54dd48a528538e3f) )
ROM_END
ROM_START( lxairjet )
ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD16_WORD_SWAP( "w321tg.u5", 0x000000, 0x400000, CRC(105b226f) SHA1(2622678a8586ee6edae17715657037a5419e3321) )
ROM_END
ROM_START( fordrace )
ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 )
@ -2206,6 +2211,8 @@ CONS( 2006, ablkickb, 0, 0, ablkickb, ablkickb, spg2xx_game_albkickb_
CONS( 2007, lxspidaj, 0, 0, spg2xx_pal,lxspidaj, spg2xx_game_albkickb_state, init_ablkickb, "Lexibook", "Spider-Man Super TV Air Jet (Lexibook Junior, JG6000SP)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
CONS( 2007, lxairjet, 0, 0, spg2xx_pal,lxspidaj, spg2xx_game_albkickb_state, init_ablkickb, "Lexibook", "Super TV Air Jet 6-in-1 (Lexibook Junior)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
CONS( 2006, totspies, 0, 0, spg2xx_pal,totspies, spg2xx_game_state, empty_init, "Senario / Marathon - Mystery Animation Inc.", "Totally Spies! (France)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
CONS( 2006, fordrace, 0, 0, fordrace, fordrace, spg2xx_game_fordrace_state, empty_init, "Excalibur Electronics", "Ford Racing", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )

View File

@ -2,6 +2,13 @@
// copyright-holders:David Haywood
/*
The lexitvsprt contains "W55V9x" strings, which appear to identify the tech used here as the following
Nuvoton product
http://e-tech.com.hk/pd_nuvo_at_game.html
---
Track & Field Challenge TV Game
https://www.youtube.com/watch?v=wjn1lLylqog
@ -67,6 +74,9 @@ protected:
virtual void machine_reset() override;
virtual void video_start() override;
virtual uint8_t unkregs_r(offs_t offset);
virtual void unkregs_w(offs_t offset, uint8_t data);
private:
required_device<cpu_device> m_maincpu;
@ -122,9 +132,6 @@ private:
uint8_t m_unkregs[0x90]{};
uint8_t unkregs_r(offs_t offset);
void unkregs_w(offs_t offset, uint8_t data);
uint8_t m_tmapscroll_window[2][0x12]{};
uint8_t m_unkdata[0x100000]{};
@ -132,6 +139,30 @@ private:
};
class trkfldch_lexi_state : public trkfldch_state
{
public:
trkfldch_lexi_state(const machine_config &mconfig, device_type type, const char *tag) :
trkfldch_state(mconfig, type, tag),
m_extra(*this, "EXTRA")
{ }
protected:
virtual void machine_start() override;
virtual void machine_reset() override;
uint8_t unkregs_r(offs_t offset) override;
void unkregs_w(offs_t offset, uint8_t data) override;
private:
required_ioport m_extra;
uint8_t m_input_bit;
uint8_t m_iopos;
};
void trkfldch_state::video_start()
{
}
@ -600,11 +631,6 @@ void trkfldch_state::dmaregs_w(offs_t offset, uint8_t data)
int readoffset = 0;
int readdo = m_dmaregs[0x09];
if ((m_dmaregs[0x08] != 0x00) || (m_dmaregs[0x0c] != 0x00))
{
fatalerror("unhandled dma params\n");
}
for (uint32_t j = 0; j < dmalength; j++)
{
uint8_t byte = mem.read_byte(dmasource + readoffset);
@ -612,7 +638,7 @@ void trkfldch_state::dmaregs_w(offs_t offset, uint8_t data)
if (readdo < 0)
{
readdo = m_dmaregs[0x09];
readoffset += m_dmaregs[0x07];
readoffset += m_dmaregs[0x07] | (m_dmaregs[0x08] << 8);
}
else
{
@ -624,7 +650,7 @@ void trkfldch_state::dmaregs_w(offs_t offset, uint8_t data)
if (writedo < 0)
{
writedo = m_dmaregs[0x0d];
writeoffset += m_dmaregs[0xb];
writeoffset += m_dmaregs[0xb] | (m_dmaregs[0x0c] << 8);
}
else
{
@ -1017,6 +1043,30 @@ static INPUT_PORTS_START( shtscore )
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
INPUT_PORTS_END
static INPUT_PORTS_START( lexi )
PORT_START("IN0")
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("IN1")
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("IN2")
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("IN3")
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("EXTRA")
PORT_BIT( 0x00008, IP_ACTIVE_LOW, IPT_BUTTON1 )
PORT_BIT( 0x00020, IP_ACTIVE_LOW, IPT_BUTTON2 )
PORT_BIT( 0x00080, IP_ACTIVE_LOW, IPT_BUTTON3 )
PORT_BIT( 0x00200, IP_ACTIVE_LOW, IPT_BUTTON4 )
PORT_BIT( 0x00800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
PORT_BIT( 0x02000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
PORT_BIT( 0x08000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
PORT_BIT( 0x20000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
INPUT_PORTS_END
static const gfx_layout tiles8x8x8_layout =
{
8,8,
@ -1362,6 +1412,63 @@ void trkfldch_state::unkregs_w(offs_t offset, uint8_t data)
}
void trkfldch_lexi_state::machine_start()
{
trkfldch_state::machine_start();
save_item(NAME(m_input_bit));
save_item(NAME(m_iopos));
}
void trkfldch_lexi_state::machine_reset()
{
trkfldch_state::machine_reset();
m_input_bit = 0;
m_iopos = 0;
}
uint8_t trkfldch_lexi_state::unkregs_r(offs_t offset)
{
switch (offset)
{
case 0x00:
{
uint8_t ret = m_input_bit;
logerror("%s: unkregs_r %04x (returning %02x) (Player 1 inputs)\n", machine().describe_context(), offset, ret);
return ret;
}
default:
return trkfldch_state::unkregs_r(offset);
}
}
void trkfldch_lexi_state::unkregs_w(offs_t offset, uint8_t data)
{
switch (offset)
{
case 0x03:
logerror("%s: unkregs_w %04x %02x (io strobe?)\n", machine().describe_context(), offset, data);
if (data == 0x03)
{
m_iopos = 0;
}
else
{
m_iopos++;
}
m_input_bit = (m_extra->read() >> m_iopos) & 1;
break;
default:
trkfldch_state::unkregs_w(offset, data);
break;
}
}
void trkfldch_state::machine_start()
{
save_item(NAME(m_unkdata_addr));
@ -1469,10 +1576,17 @@ ROM_START( shtscore )
ROM_LOAD( "shootnscore.bin", 0x000000, 0x400000, CRC(37aa16bd) SHA1(609d0191301480c51ec1188c67101a4e88a5170f) )
ROM_END
ROM_START( lexitvsprt )
ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "29l3211.u2a", 0x000000, 0x400000, CRC(65e5223c) SHA1(13eae6e34100fb9761335e87a3cf728bb31e860f) )
ROM_END
} // anonymous namespace
CONS( 2007, trkfldch, 0, 0, trkfldch, trkfldch,trkfldch_state, empty_init, "Konami", "Track & Field Challenge", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
CONS( 2006, my1stddr, 0, 0, trkfldch, my1stddr,trkfldch_state, empty_init, "Konami", "My First Dance Dance Revolution (US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // Japan version has different songs
CONS( 200?, abl4play, 0, 0, trkfldch, abl4play,trkfldch_state, empty_init, "Advance Bright Ltd", "4 Player System - 10 in 1", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
CONS( 2007, trkfldch, 0, 0, trkfldch, trkfldch,trkfldch_state, empty_init, "Konami", "Track & Field Challenge", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
CONS( 2006, my1stddr, 0, 0, trkfldch, my1stddr,trkfldch_state, empty_init, "Konami", "My First Dance Dance Revolution (US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // Japan version has different songs
CONS( 200?, abl4play, 0, 0, trkfldch, abl4play,trkfldch_state, empty_init, "Advance Bright Ltd", "4 Player System - 10 in 1", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
CONS( 200?, shtscore, 0, 0, trkfldch, shtscore,trkfldch_state, empty_init, "Halsall / time4toys.com / Electronic Games", "Shoot n' Score", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
CONS( 200?, lexitvsprt,0, 0, trkfldch, lexi, trkfldch_lexi_state, empty_init, "Lexibook", "TV Sports Plug & Play 5-in-1 (JG7000)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )