Plug and Play bits (mostly dead-end work) (#10006)

* new Software List entries
-----
nes_vt_cart.xml:
Color Screen Game World - 10 Types of Crazy Games / Wonders 163-in-1 [TeamEurope]

* new WORKING machine
----
unknown VT02 based 25-in-1 handheld [jordigahan, ClawGrip, Sean Riddle]

* new NOT WORKING machines
------
TV Pump Active [ClawGrip, Sean Riddle]
unknown VTxx based GameBoy style handheld (2019 PCB)   [jordigahan, ClawGrip, Sean Riddle]
unknown VTxx based GameBoy style handheld (2020 PCB)   [jordigahan, ClawGrip, Sean Riddle]
NubSup Mini Game Fan [taizou, TeamEurope]
Q5 500 in 1 Handheld [taizou, TeamEurope]
MeGaTrix (Spain) [jordigahan, ClawGrip, Sean Riddle]
This commit is contained in:
David Haywood 2022-06-30 04:21:50 +01:00 committed by GitHub
parent b5d8cdc065
commit 1e4da89a5a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 301 additions and 58 deletions

21
hash/nes_vt_cart.xml Normal file
View File

@ -0,0 +1,21 @@
<?xml version="1.0"?>
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
<!--
license:CC0
-->
<softwarelist name="nes_vt_cart" description="Cartridges compatible with VRT VT0x based units">
<!-- can be used with TimeTop Super Game 25-in-1 (GM-228) (timetp25) -->
<!-- many other 'xx Types of Crazy Games' cartridges exist -->
<software name="crazy10">
<description>Color Screen Game World - 10 Types of Crazy Games / Wonders 163-in-1</description>
<year>200?</year>
<publisher>TimeTop</publisher> <!-- maybe -->
<part name="cart" interface="nes_vt_cart">
<dataarea name="rom" size="0x200000">
<rom name="s29al016d70tfi02.bin" size="0x200000" crc="f9d4bb5c" sha1="25af611b0ccc48bdab531d7c291a25db787d4212"/>
</dataarea>
</part>
</software>
</softwarelist>

View File

@ -11648,6 +11648,9 @@ cswat // (c) 1984
@source:at/ct486.cpp
ct486 // 1993? 486 with CS4031
@source:skeleton/ct909e_segadvd.cpp
megatrix
@source:casio/ctk551.cpp
ctk551 //
@ -33302,72 +33305,74 @@ vsmaxx15
dgun806
@source:nintendo/nes_vt02_vt03.cpp
vdogdeme
vdogdemo
pinkjelly
vtpinball
vtsndtest
vtboxing
ablpinb
sporzpp
sporzbx
sporztn
wldsoctv
mc_dgear
sudo6in1
sudopptv
megapad
ablmini
solargm
zudugo
timetp36
timetp7
majkon
majgnc
vsmaxx17
polmega
vsmax25v
ablpinb
ablping
cbrs8
dbdancem
ddrdismx
ddrstraw
dgun2500
dgun2869
dgun851
dgun853
silv35
vsmaxxvd
vsmaxx77
gprnrs1
gprnrs16
joysti30
techni4
senwld
protpp
mc_sp69
ablping
majgnc
majkon
mc_105te
mc_110cb
mc_138cb
mc_7x6ss
mc_89in1
mc_8x6cb
mc_8x6ss
mc_9x6sa
mc_9x6ss
mc_aa2
mc_dcat8
mc_dcat8a
mc_dg101
mc_dgear
mc_sam60
zdog
mc_sp69
mc_tv200
megapad
pinkjelly
pjoyn50
pjoys30
pjoys60
mc_110cb
mc_138cb
cbrs8
rfcp168
gprnrs1
gprnrs16
ddrdismx
ddrstraw
dbdancem
sen101
mc_dg101
mc_aa2
mc_105te
mc_8x6cb
mc_9x6ss
mc_9x6sa
mc_7x6ss
mc_8x6ss
mc_dcat8
mc_dcat8a
mc_89in1
mc_tv200
dgun2500
polmega
ppgc200g
dgun2869
protpp
pumpactv
rfcp168
sen101
senwld
silv35
solargm
sporzbx
sporzpp
sporztn
sudo6in1
sudopptv
techni4
timetp36
timetp7
vdogdeme
vdogdemo
vsmax25v
vsmaxx17
vsmaxx77
vsmaxxvd
vt25in1
vtboxing
vtpinball
vtsndtest
wldsoctv
zdog
zudugo
@source:nintendo/nes_vt09.cpp
cybar120
@ -33433,7 +33438,9 @@ mc_cb280
mc_hh210
mog_m320
myarccn
nubsupmf
otrail
q5_500in1
rd5_240
red5mam
retro400
@ -33443,6 +33450,8 @@ sealvt
sy888b
sy889
tup240
unk2019hh
unk2020hh
unkra200
zonefusn

View File

@ -797,6 +797,7 @@ skeleton/controlid.cpp
skeleton/cortex.cpp
skeleton/cosmicos.cpp
skeleton/cp1.cpp
skeleton/ct909e_segadvd.cpp
skeleton/cxhumax.cpp
skeleton/d400.cpp
skeleton/d6800.cpp

View File

@ -1208,6 +1208,16 @@ ROM_START( majgnc )
ROM_LOAD( "majescogoldennuggetcasino_st29w800at_002000d7.bin", 0x00000, 0x100000, CRC(1a156a9d) SHA1(08be4079dd68c9cf05bb92e11a3da4f092d7cfea) )
ROM_END
ROM_START( vt25in1 )
ROM_REGION( 0x100000, "mainrom", ROMREGION_ERASEFF )
ROM_LOAD( "25in1.bin", 0x00000, 0x100000, CRC(1038b5ec) SHA1(e7d1ccafe0edcfa44c11412d2aa771f4ba96b5b8) )
ROM_END
ROM_START( pumpactv )
ROM_REGION( 0x100000, "mainrom", ROMREGION_ERASEFF )
ROM_LOAD( "pumpactive.bin", 0x00000, 0x100000, CRC(e3c07561) SHA1(2bfff426d72d481ba0647e9110f942d142a4625f) )
ROM_END
ROM_START( zudugo )
ROM_REGION( 0x400000, "mainrom", ROMREGION_ERASEFF )
ROM_LOAD( "zudugo.bin", 0x00000, 0x400000, CRC(0fa9d9ad) SHA1(7533eaf51785d8fcced900ea0498281b0cf49dbf) )
@ -1363,6 +1373,10 @@ CONS( 2004, majkon, 0, 0, nes_vt_1mb_majkon, nes_vt, nes_vt_state, empty_ini
CONS( 200?, majgnc, 0, 0, nes_vt_1mb, majgnc, nes_vt_state, empty_init, "Majesco / JungleTac", "Golden Nugget Casino", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
CONS( 2004, vt25in1, 0, 0, nes_vt_1mb, nes_vt, nes_vt_state, empty_init, "<unknown>", "unknown VT02 based 25-in-1 handheld", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
// might be a later VT type, 'pump' control is mapped on extra IO address that I don't think is present on 02/03
CONS( 200?, pumpactv, 0, 0, nes_vt_1mb, nes_vt, nes_vt_state, empty_init, "Giggle", "TV Pump Active", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
// CPU die is marked 'VH2009' There's also a 62256 RAM chip on the PCB, some scrambled opcodes
CONS( 2004, vsmaxx17, 0, 0, nes_vt_vh2009_2mb, nes_vt, nes_vt_swap_op_d5_d6_state, empty_init, "Senario / JungleTac", "Vs Maxx 17-in-1", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // from a Green unit, '17 Classic & Racing Game'

View File

@ -20,6 +20,11 @@
#include "emu.h"
#include "nes_vt09_soc.h"
#include "bus/generic/slot.h"
#include "bus/generic/carts.h"
#include "softlist_dev.h"
class nes_vt09_common_base_state : public driver_device
{
public:
@ -105,6 +110,58 @@ public:
private:
};
class nes_vt09_cart_state : public nes_vt09_state
{
public:
nes_vt09_cart_state(const machine_config& mconfig, device_type type, const char* tag) :
nes_vt09_state(mconfig, type, tag),
m_bank(*this, "cartbank"),
m_cart(*this, "cartslot"),
m_cart_region(nullptr)
{ }
void nes_vt09_cart(machine_config& config);
protected:
void machine_start() override;
private:
void vt_external_space_map_cart(address_map& map);
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(cart_load);
required_memory_bank m_bank;
required_device<generic_slot_device> m_cart;
memory_region *m_cart_region;
};
void nes_vt09_cart_state::machine_start()
{
nes_vt09_state::machine_start();
m_bank->configure_entries(0, 1, memregion("mainrom")->base(), 0x200000);
m_bank->set_entry(0);
// if there's a cart, override the standard banking
if (m_cart && m_cart->exists())
{
m_cart_region = memregion(std::string(m_cart->tag()) + GENERIC_ROM_REGION_TAG);
m_bank->configure_entries(0, 1, m_cart_region->base(), 0x200000);
m_bank->set_entry(0);
}
}
DEVICE_IMAGE_LOAD_MEMBER(nes_vt09_cart_state::cart_load)
{
uint32_t size = m_cart->common_get_size("rom");
m_cart->rom_alloc(size, GENERIC_ROM8_WIDTH, ENDIANNESS_LITTLE);
m_cart->common_load_rom(m_cart->get_rom_base(), size, "rom");
return image_init_result::PASS;
}
uint8_t nes_vt09_common_base_state::vt_rom_r(offs_t offset)
{
return m_prgrom[offset];
@ -151,6 +208,12 @@ void nes_vt09_common_state::vt_external_space_map_512kbyte(address_map &map)
map(0x0000000, 0x007ffff).mirror(0x1f80000).r(FUNC(nes_vt09_common_state::vt_rom_r));
}
void nes_vt09_cart_state::vt_external_space_map_cart(address_map &map)
{
map(0x0000000, 0x01fffff).mirror(0x1e00000).bankr("cartbank");
}
template <uint8_t NUM> uint8_t nes_vt09_common_base_state::extrain_r()
{
if (m_exin[NUM])
@ -296,7 +359,17 @@ void nes_vt09_state::nes_vt09_4mb_rasterhack(machine_config& config)
m_soc->force_raster_timing_hack();
}
void nes_vt09_cart_state::nes_vt09_cart(machine_config& config)
{
nes_vt09(config);
m_soc->set_addrmap(AS_PROGRAM, &nes_vt09_cart_state::vt_external_space_map_cart);
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "nes_vt_cart");
m_cart->set_width(GENERIC_ROM8_WIDTH);
m_cart->set_device_load(FUNC(nes_vt09_cart_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("nes_vt_cart");
}
static INPUT_PORTS_START( nes_vt09 )
PORT_START("IO0")
@ -505,4 +578,4 @@ CONS( 200?, jl2050, 0, 0, nes_vt09_16mb,nes_vt09, nes_vt09_state, empty_init,
// might be VT369 based, if so, move
CONS( 2018, rbbrite, 0, 0, nes_vt09_1mb, nes_vt09, nes_vt09_state, empty_init, "Coleco", "Rainbow Brite (mini-arcade)", MACHINE_NOT_WORKING )
CONS( 200?, timetp25, 0, 0, nes_vt09_2mb, nes_vt09, nes_vt09_state, empty_init, "Timetop", "Super Game 25-in-1 (GM-228)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
CONS( 200?, timetp25, 0, 0, nes_vt09_cart, nes_vt09, nes_vt09_cart_state, empty_init, "Timetop", "Super Game 25-in-1 (GM-228)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )

View File

@ -703,6 +703,27 @@ ROM_START( mc_hh210 )
ROM_LOAD( "msp55lv128t.u4", 0x00000, 0x1000000, CRC(9ba520d4) SHA1(627f811b24314197e289a2ade668ff4115421bed) )
ROM_END
ROM_START( q5_500in1 )
ROM_REGION( 0x1000000, "mainrom", 0 )
ROM_LOAD( "s29gl128.u1", 0x00000, 0x1000000, CRC(de779dd7) SHA1(ac6d3fa6f18ceb795532ba9e85edffc040d74347) )
ROM_END
ROM_START( nubsupmf )
ROM_REGION( 0x400000, "mainrom", 0 )
ROM_LOAD( "w25q32fv.bin", 0x00000, 0x400000, CRC(5ca234b2) SHA1(3eba3e690f68116fd3e5e914f8bd16b1dc2c0bc4) )
ROM_END
ROM_START( unk2019hh )
ROM_REGION( 0x1000000, "mainrom", 0 )
ROM_LOAD( "fgb2019.bin", 0x00000, 0x1000000, CRC(7ef130d5) SHA1(00f45974494707fdac78153b13d8cfb503716ad0) )
ROM_END
ROM_START( unk2020hh )
ROM_REGION( 0x1000000, "mainrom", 0 )
ROM_LOAD( "fgb2020.bin", 0x00000, 0x1000000, CRC(a685d943) SHA1(9b272daccd8fe244c910f031466a4fedd83d5236) )
ROM_END
ROM_START( dvnimbus )
ROM_REGION( 0x1000000, "mainrom", 0 )
ROM_LOAD( "2012-7-4-v1.bin", 0x00000, 0x1000000, CRC(a91d7aa6) SHA1(9421b70b281bb630752bc352c3715258044c0bbe) )
@ -961,6 +982,16 @@ CONS( 200?, gcs2mgp, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknow
// Several of the games contained in here are buggy / broken on real hardware (see https://www.youtube.com/watch?v=-mgGNaDQ1HE )
CONS( 201?, 240in1ar, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Thumbs Up", "Mini Arcade Machine (Thumbs Up, 240IN1ARC)", MACHINE_NOT_WORKING ) // 128Mbyte ROM, must be externally banked or different addressing scheme
// is one of these bad? where do they fit? the former boots, but banking is wrong (incorrect games selected, gfx corruption) the 2nd looks encrypted or bad
CONS( 2019, unk2019hh, 0, 0, nes_vt369_vtunknown_hh_8mb, nes_vt369_vtunknown, nes_vt369_vtunknown_unk_state, empty_init, "<unknown>", "unknown VTxx based GameBoy style handheld (2019 PCB)", MACHINE_NOT_WORKING )
CONS( 2020, unk2020hh, unk2019hh,0, nes_vt369_vtunknown_hh_8mb, nes_vt369_vtunknown, nes_vt369_vtunknown_unk_state, empty_init, "<unknown>", "unknown VTxx based GameBoy style handheld (2020 PCB)", MACHINE_NOT_WORKING )
/*****************************************************************************
* below are VT369? games that use flash ROM
*****************************************************************************/
// portable fan + famiclone combo handheld
CONS( 2020, nubsupmf, 0, 0, nes_vt369_vtunknown_hh_4mb, nes_vt369_vtunknown, nes_vt369_vtunknown_unk_state, empty_init, "<unknown>", "NubSup Mini Game Fan", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
/*****************************************************************************
* below are VT369 games that use BGA on sub
@ -973,6 +1004,9 @@ CONS( 201?, retro400, 0, 0, nes_vt369_vtunknown_hh_16mb, nes_vt369_vtun
* below are VT369 games that use SQI / SPI ROM
*****************************************************************************/
// doesn't boot
CONS( 201?, q5_500in1, 0, 0, nes_vt369_vtunknown_hh_8mb, nes_vt369_vtunknown, nes_vt369_vtunknown_unk_state, empty_init, "<unknown>", "Q5 500 in 1 Handheld", MACHINE_NOT_WORKING )
// Runs well, minor GFX issues in intro
CONS( 2017, sy889, 0, 0, nes_vt369_vtunknown_hh_8mb, nes_vt369_vtunknown, nes_vt369_vtunknown_unk_state, empty_init, "SY Corp", "SY-889 300 in 1 Handheld", MACHINE_IMPERFECT_GRAPHICS )
CONS( 2016, sy888b, 0, 0, nes_vt369_vtunknown_hh_4mb, nes_vt369_vtunknown, nes_vt369_vtunknown_unk_state, empty_init, "SY Corp", "SY-888B 288 in 1 Handheld", MACHINE_IMPERFECT_GRAPHICS )

View File

@ -0,0 +1,91 @@
// license:BSD-3-Clause
// copyright-holders:David Haywood
/*****************************************************************************
Portable DVD Player with built in Sega Master System games
has AT Games strings in ROM
sold in Spain as MeGaTrix
uses a Cheertek CT909E-LF System on a Chip ** unknown CPU core **
*****************************************************************************/
#include "emu.h"
#include "cpu/arm7/arm7.h"
#include "cpu/arm7/arm7core.h"
#include "screen.h"
#include "speaker.h"
class ct909e_megatrix_state : public driver_device
{
public:
ct909e_megatrix_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_screen(*this, "screen")
{ }
void megatrix(machine_config &config);
protected:
virtual void machine_start() override;
virtual void machine_reset() override;
void arm_map(address_map &map);
required_device<cpu_device> m_maincpu;
required_device<screen_device> m_screen;
uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
private:
};
void ct909e_megatrix_state::arm_map(address_map &map)
{
map(0x00000000, 0x003fffff).rom();
}
uint32_t ct909e_megatrix_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
return 0;
}
void ct909e_megatrix_state::machine_start()
{
}
void ct909e_megatrix_state::machine_reset()
{
}
static INPUT_PORTS_START( megatrix )
INPUT_PORTS_END
void ct909e_megatrix_state::megatrix(machine_config &config)
{
ARM9(config, m_maincpu, 100'000'000); // unknown core / frequency, maybe not ARM
m_maincpu->set_addrmap(AS_PROGRAM, &ct909e_megatrix_state::arm_map);
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
m_screen->set_refresh_hz(60);
m_screen->set_size(320, 262);
m_screen->set_visarea(0, 320-1, 0, 240-1);
m_screen->set_screen_update(FUNC(ct909e_megatrix_state::screen_update));
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
}
ROM_START( megatrix )
ROM_REGION( 0x8400000, "maincpu", ROMREGION_ERASEFF )
ROM_LOAD( "segadvd_en29lv320b_007f22f9.bin", 0x000000, 0x400000, CRC(33fea2ff) SHA1(85295fd31a06149112295a9b6a8218a4a4c50893) )
ROM_END
CONS( 2007, megatrix, 0, 0, megatrix, megatrix, ct909e_megatrix_state, empty_init, "<unknown>", "MeGaTrix (Spain)", MACHINE_IS_SKELETON )