Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions src/mame/handheld/st2302u_bbl_rom.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ class st22xx_bbl338_state : public driver_device

void st22xx_bbl338(machine_config &config);
void st22xx_dphh8213(machine_config &config);
void st22xx_cutepet(machine_config &config);

protected:
virtual void machine_start() override ATTR_COLD;
Expand All @@ -38,6 +39,7 @@ class st22xx_bbl338_state : public driver_device

void st22xx_bbl338_map(address_map &map) ATTR_COLD;
void st22xx_dphh8213_map(address_map &map) ATTR_COLD;
void st22xx_cutepet_map(address_map &map) ATTR_COLD;

required_device<screen_device> m_screen;
required_device<bl_handhelds_lcdc_device> m_lcdc;
Expand Down Expand Up @@ -226,6 +228,15 @@ void st22xx_bbl338_state::st22xx_dphh8213_map(address_map &map)
map(0x0604000, 0x0604000).rw(m_lcdc, FUNC(bl_handhelds_lcdc_device::lcdc_data_r), FUNC(bl_handhelds_lcdc_device::lcdc_data_w));
}

void st22xx_bbl338_state::st22xx_cutepet_map(address_map &map)
{
map(0x0000000, 0x03fffff).rom().region("maincpu", 0);

map(0x0600000, 0x0600000).w(m_lcdc, FUNC(bl_handhelds_lcdc_device::lcdc_command_w));
map(0x0604100, 0x0604100).rw(m_lcdc, FUNC(bl_handhelds_lcdc_device::lcdc_data_r), FUNC(bl_handhelds_lcdc_device::lcdc_data_w));
}


void st22xx_bbl338_state::st22xx_bbl338_map(address_map &map)
{
//map(0x0000000, 0x0003fff).rom().region("internal", 0); // not dumped, so ensure any accesses here are logged
Expand Down Expand Up @@ -315,6 +326,22 @@ static INPUT_PORTS_START(dphh8213)
PORT_BIT(0xf6, IP_ACTIVE_LOW, IPT_UNUSED) // probably unused
INPUT_PORTS_END

static INPUT_PORTS_START(cutepet)
PORT_START("IN1")
PORT_BIT(0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )

PORT_START("IN2")
PORT_BIT(0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )

PORT_START("IN3")
PORT_BIT(0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )

PORT_START("IN4")
PORT_BIT(0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )

PORT_START("PORTC")
PORT_BIT(0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
INPUT_PORTS_END

void st22xx_bbl338_state::st22xx_dphh8213(machine_config &config)
{
Expand Down Expand Up @@ -343,6 +370,12 @@ void st22xx_bbl338_state::st22xx_dphh8213(machine_config &config)
BL_HANDHELDS_LCDC(config, m_lcdc, 0);
}

void st22xx_bbl338_state::st22xx_cutepet(machine_config &config)
{
st22xx_dphh8213(config);
m_maincpu->set_addrmap(AS_DATA, &st22xx_bbl338_state::st22xx_cutepet_map);
}

void st22xx_bbl338_state::st22xx_bbl338(machine_config &config)
{
ST2302U(config, m_maincpu, 24000000);
Expand Down Expand Up @@ -388,6 +421,13 @@ ROM_START( dphh8213 )
ROM_FILL( 0x00009f, 2, 0xea ) // NOP out SPI check
ROM_END

ROM_START( cutepet )
// internal area not used?

ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "m29w320dt.u2", 0x00000, 0x400000, CRC(157e208f) SHA1(78069c524f214d763c0b216aa3de487b65a84034) )
ROM_END

} // anonymous namespace


Expand All @@ -397,4 +437,8 @@ COMP( 201?, bbl338, 0, 0, st22xx_bbl338, dphh8213, st22xx_bbl338_sim
COMP( 201?, class200, 0, 0, st22xx_bbl338, dphh8213, st22xx_bbl338_sim_state, empty_init, "<unknown>", "Color LCD Classic Game 200-in-1", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) // no manufacturer name or product code anywhere

// Language controlled by port bit, set at factory, low resolution
// different menu protection compared to the st2302u_bbl_spi.cpp sets (games can be selected, but cursor doesn't update)
COMP( 201?, dphh8213, 0, 0, st22xx_dphh8213, dphh8213, st22xx_bbl338_state, empty_init, "<unknown>", "Digital Pocket Hand Held System 20-in-1 - Model 8213", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )

// seems to be this hardware type, but different LCDC?
COMP( 201?, cutepet, 0, 0, st22xx_cutepet, cutepet, st22xx_bbl338_state, empty_init, "Dream Cube", "Cute Pet Park", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
8 changes: 8 additions & 0 deletions src/mame/handheld/st2302u_bbl_spi.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -445,6 +445,13 @@ ROM_START(toumapet)
ROM_LOAD("p25d32sh.bin", 0x000000, 0x400000, CRC(25498f00) SHA1(c5c410e29f540d7f1fd4bbb333467f8a3eaccc15) )
ROM_END

ROM_START(qpet)
INTERNAL_ROM_TYPE2 // not checked if it uses this ROM type

ROM_REGION(0x800000, "spi", ROMREGION_ERASEFF)
ROM_LOAD("t25s16.bin", 0x000000, 0x200000, CRC(78a9c285) SHA1(73b0ebe1c88af79fae3357ab3cb4920d685a14f4) )
ROM_END


} // anonymous namespace

Expand Down Expand Up @@ -484,3 +491,4 @@ CONS( 201?, dphh8633, 0, 0, bbl380_menuprot, bbl380_prot, bbl3
// also has the 0xE4 XOR, also doesn't currently boot, could be yet another internal ROM
CONS( 2021, toumapet, 0, 0, bbl380, bbl380, bbl380_state, empty_init, "Shenzhen Shiji New Technology", "Tou ma Pet", MACHINE_NOT_WORKING )

CONS( 2020, qpet, 0, 0, bbl380, bbl380, bbl380_state, empty_init, "M&D", "Q Pet (2nd version)", MACHINE_NOT_WORKING )
20 changes: 18 additions & 2 deletions src/mame/mame.lst
Original file line number Diff line number Diff line change
Expand Up @@ -19434,6 +19434,7 @@ newbrainmd
@source:handheld/st2302u_bbl_rom.cpp
bbl338
class200
cutepet
dphh8213

@source:handheld/st2302u_bbl_spi.cpp
Expand All @@ -19444,6 +19445,7 @@ dphh8630
dphh8633
mc_cb203
pg118
qpet
ragc153
retro150
retro150a
Expand Down Expand Up @@ -35552,6 +35554,7 @@ smb3bl
afbm7800
croaky
dancexpt
danzkara
digezlg
dnce2000
nytsudo
Expand Down Expand Up @@ -35688,6 +35691,8 @@ dgun2573a
dgunl3201
dgunl3202
fcpocket
k10_2l
k10_5l
lxpcli
lxpcpp
lxpcsp
Expand All @@ -35705,6 +35710,7 @@ typo240
36pcase
168pcase
240in1ar
a6plus
d12power
denv150
dgun2561
Expand Down Expand Up @@ -35766,6 +35772,7 @@ sealvt
supr200
sy888b
sy889
t3_630
tetrtin
tiger108
tup240
Expand All @@ -35791,6 +35798,7 @@ mc_9x6ss
mc_hh210
retro400
rfcp168
wol260

@source:nintendo/nss.cpp
nss
Expand Down Expand Up @@ -40554,6 +40562,7 @@ msi_sf2
mygalag
mygalaga
mympac
mympaca
mypac
mypaca
mysinv
Expand Down Expand Up @@ -46937,8 +46946,10 @@ tsbuzz

@source:tvgames/generalplus_gp327902.cpp
chikawac
sanxpet
sanxpeta
smksagas
smksagasa
smkmikke
smkmikkea
tomyegg

@source:tvgames/generalplus_gpl16250_mobigo.cpp
Expand Down Expand Up @@ -47030,6 +47041,8 @@ punij1pu
punij2pk
punirune
smkcatch
smkguras
smkgurasa
wiwcs

@source:tvgames/generalplus_gpl162xx_lcdtype.cpp
Expand All @@ -47052,11 +47065,14 @@ jak_ddhp
jak_prhp
kidizmb
kidizmp
neopad
pdcm2
pocketmp
pocketmr
rotom2
saikyopc
smatomo
sumikpc
tamameet
tmydistb
zippity
Expand Down
7 changes: 7 additions & 0 deletions src/mame/nintendo/nes_clone.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1322,6 +1322,12 @@ ROM_START( vtvsocr )
ROM_LOAD16_WORD_SWAP( "virtualtvsoccer.bin", 0x00000, 0x40000, CRC(2cfe42aa) SHA1(c2cafdbd5cc6491c94efd3f1be4b70c9de737b46) )
ROM_END

ROM_START( danzkara )
ROM_REGION( 0x100000, "maincpu", 0 )
// 8-bit ROM, but byteswapped for encryption?
ROM_LOAD16_WORD_SWAP( "bs-danz-r2.bin", 0x00000, 0x100000, CRC(806be92b) SHA1(07bad2f383dc578fa8fc83b0c1886001bf1d72b9) )
ROM_END

ROM_START( dancexpt )
ROM_REGION( 0x20000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "dancingexpert27c010.bin", 0x0000, 0x20000, CRC(658ba2ea) SHA1(c08f6a2735b3c7383cba3a5fa3af905d5af6926f) )
Expand Down Expand Up @@ -1389,6 +1395,7 @@ CONS( 200?, dancexpt, 0, 0, nes_clone_dancexpt, dancexpt, nes_clone_dancexpt_sta

CONS( 200?, vtvsocr, 0, 0, nes_clone_vtvsocr, nes_clone, nes_clone_vtvsocr_state, init_nes_clone, "<unknown>", "Virtual TV Soccer", MACHINE_NOT_WORKING )

CONS( 200?, danzkara, 0, 0, nes_clone_vtvsocr, nes_clone, nes_clone_vtvsocr_state, init_nes_clone, "<unknown>", "DanZ Kara (BS-888)", MACHINE_NOT_WORKING )

// in early 2000s LG TVs
CONS( 200?, digezlg, 0, 0, nes_clone_dnce2000, digezlg, nes_clone_dnce2000_state, init_nes_clone, "LG", "Digital ez LG", MACHINE_NOT_WORKING )
Expand Down
20 changes: 20 additions & 0 deletions src/mame/nintendo/nes_vt32.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -448,6 +448,17 @@ ROM_START( retror30 )
ROM_LOAD( "s29gl032n90tfi03.u2", 0x00000, 0x400000, CRC(dfb89ef7) SHA1(401539b73521e018e3af70b8019e6b59ba67fcad) )
ROM_END

ROM_START( k10_5l )
ROM_REGION( 0x2000000, "mainrom", 0 )
ROM_LOAD( "js28f128m29ewh.u4", 0x00000, 0x1000000, CRC(69dba082) SHA1(bd6829b0339795876dd5b4eb5de8bbd124c64f77) )
ROM_IGNORE(0x100)
ROM_END

ROM_START( k10_2l )
ROM_REGION( 0x2000000, "mainrom", 0 )
ROM_LOAD( "s29gl128n10tfi01.u4", 0x00000, 0x1000000, CRC(3ca75ab7) SHA1(a4e4f939c26b4a2f361261fa8b5303c6eeee9c41) )
ROM_END

} // anonymous namespace


Expand Down Expand Up @@ -498,3 +509,12 @@ CONS( 2020, lxpcpp, 0, 0, nes_vt32_32mb, nes_vt32, nes_vt32_unk_state, empt
// Power Console - Generic EN/FR model
// Power Console - Generic EN/ES model
// Power Console - Generic EN/DE model

// unclear SoC types maybe even different
// Rush'n Attack has the raster split in the wrong place on the 5 language version (mountains in first stage) when using real hardware
// said game also requires either extra RAM on the PCB (none visible) or a SoC that natively supports that
//
// not set as clones as each other because the games lists are different
CONS( 201?, k10_5l, 0, 0, nes_vt32_16mb, nes_vt32, nes_vt32_unk_state, empty_init, "<unknown>", "Games Power 500-in-1 Ultra Thin Handheld Game (K10) (5 languages)", MACHINE_NOT_WORKING )
CONS( 201?, k10_2l, 0, 0, nes_vt32_16mb, nes_vt32, nes_vt32_unk_state, empty_init, "<unknown>", "Games Power 500-in-1 Ultra Thin Handheld Game (K10) (2 languages)", MACHINE_NOT_WORKING )

27 changes: 27 additions & 0 deletions src/mame/nintendo/nes_vt369_vtunknown.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1006,6 +1006,11 @@ ROM_START( vibes240 )
ROM_IGNORE(0x100)
ROM_END

ROM_START( t3_630 )
ROM_REGION( 0x2000000, "mainrom", 0 )
ROM_LOAD( "s29gl128n10tfi01.bin", 0x00000, 0x1000000, CRC(7458a598) SHA1(cd35dda56c4531095c7026c88e02e35b1aae730a) )
ROM_END

ROM_START( lexi30 )
ROM_REGION( 0x800000, "mainrom", 0 )
ROM_LOAD( "lexi30.u3", 0x00000, 0x800000, CRC(0d4307ea) SHA1(0d7cf492f796b0bb871deebaca38a3ff3b2ed1e6) )
Expand Down Expand Up @@ -1101,6 +1106,21 @@ ROM_START( gb50_150 )
ROM_LOAD( "w25q128jvsiq.bin", 0x00000, 0x1000000, CRC(3cc43fcb) SHA1(6c5e09fadb14e99e6db8c316026d124326a90557) )
ROM_END

ROM_START( a6plus )
ROM_REGION( 0x800000, "mainrom", 0 )
ROM_LOAD( "w25q64jv.u3", 0x00000, 0x800000, CRC(c62f9570) SHA1(eed64d7b022a1274892992ec53d41f189679ebd3) )

// 512MByte SD Card, seems to contain remains of a linux install in the filesystem
// There are NES images also present, used by the device, but they don't seem to be in the filesystem so
// probably accessed directly?
//
// When a game is selected it loads from the card (showing a 'loading' screen) unless the game is the
// previous one loaded, in which case it boots immediately, presumably due to already existing in the
// flash ROM
DISK_REGION( "sdcard" )
DISK_IMAGE( "a6plus", 0, SHA1(ce8fb23443008c921c6541e71da37c1dc6a06e5f) )
ROM_END


void vt369_state::init_lxcmcypp()
{
Expand Down Expand Up @@ -1257,6 +1277,9 @@ CONS( 2020, gbox2020, gbox2019, 0, vt36x_gbox2020_16mb, vt369, vt36x_state, empt
// boots with bad colors
CONS( 202?, vibes240, 0, 0, vt36x_vibesswap_16mb, vt369, vt36x_state, empty_init, "<unknown>", "Vibes Retro Pocket Gamer 240-in-1", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )

// boots and runs, but not all games have been tested
CONS( 202?, t3_630, 0, 0, vt36x_vibesswap_16mb, vt369, vt36x_state, empty_init, "<unknown>", "630 Games in 1 Handheld (T3)", MACHINE_NOT_WORKING )

// has extra protection?
CONS( 2018, rbbrite, 0, 0, vt369_unk_1mb, vt369, vt36x_state, empty_init, "Coleco", "Rainbow Brite (mini-arcade)", MACHINE_NOT_WORKING )

Expand Down Expand Up @@ -1351,3 +1374,7 @@ CONS( 201?, d12power, 0, 0, vt36x_16mb, vt369, vt36x_state, empty_init,
// Games loaded from SD card are loaded into the QSPI flash at 0x800000 - dump is from a clean factory console
// PCB is marked "389" so possibly VT389 but VT369 string in a debug message in firmware
CONS( 2019, gb50_150, 0, 0, vt36x_16mb_sdcard, vt369, vt36x_state, empty_init, "<unknown>", "GB-50 Retro Station Pocket System", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )

// Games are stored on an SD card (outside of the filesystem?)
// 8Bt is as printed on the box, not a typo
CONS( 202?, a6plus, 0, 0, vt36x_8mb, vt369, vt36x_state, empty_init, "<unknown>", "Retro Arcade FC A6Plus - 8Bt Game Console", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
10 changes: 10 additions & 0 deletions src/mame/nintendo/nes_vt42xx.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -499,6 +499,13 @@ ROM_START( fapocket )
ROM_LOAD( "s29gl512n.bin", 0x00000, 0x4000000, CRC(37d0fb06) SHA1(0146a2fae32e23b65d4032c508f0d12cedd399c3) )
ROM_END

ROM_START( wol260 )
ROM_REGION( 0x2000000, "mainrom", 0 )
ROM_LOAD( "js28f256m29ewh.u1", 0x00000, 0x2000000, CRC(ccb08b50) SHA1(089335c001085cfae94db6ea39e31388674581ed) )
ROM_END



void nes_vt42xx_state::init_rfcp168()
{
uint8_t *romdata = memregion("mainrom")->base();
Expand Down Expand Up @@ -597,3 +604,6 @@ CONS( 200?, mc_8x6ss, 0, 0, nes_vt42xx_1mb, nes_vt42xx, nes_vt42xx_state,

// Uses DIP switch to select console or cartridge, as cartridge is fake and just toggles a GPIO
CONS( 2017, fapocket, 0, 0, nes_vt42xx_fa, nes_vt42xx_fa, nes_vt42xx_fapocket_state, empty_init, "<unknown>", "Family Pocket 638 in 1", MACHINE_IMPERFECT_GRAPHICS ) // has external banking (4x 16mbyte banks)

// has a 32Mbyte ROM, needs extra banking (Commando for example is in the 2nd half)
CONS( 201?, wol260, 0, 0, nes_vt42xx_16mb, nes_vt42xx, nes_vt42xx_state, empty_init, "Wolsen", "260 in 1 Handheld Game (Wolsen)", MACHINE_NOT_WORKING )
6 changes: 6 additions & 0 deletions src/mame/sega/megadriv_firecore.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,11 @@ ROM_START( mympac )
ROM_LOAD16_WORD_SWAP( "m29w640ft.bin", 0x000000, 0x800000, CRC(d6ceda9e) SHA1(c897f8d5661fea0c030daf9c5e92524eb4e71d52) )
ROM_END

ROM_START( mympaca )
ROM_REGION( 0x800000, "maincpu", 0 )
ROM_LOAD16_WORD_SWAP( "s29gl064n90tfi04.u2", 0x000000, 0x800000, CRC(0a16c487) SHA1(f6f32ae43e42c16a39a81bff7e7167833d4e738a) )
ROM_END

ROM_START( mygalag )
ROM_REGION( 0x200000, "maincpu", 0 )
ROM_LOAD16_WORD_SWAP( "galaga_standup_s29al016d70tfi02_00012249.bin", 0x000000, 0x200000, CRC(8f3d2e05) SHA1(8f6a54e5a8ee55e7a6cae3e72b8e70c4eee2c1ef) )
Expand Down Expand Up @@ -449,6 +454,7 @@ CONS( 2021, mypac, 0, 0, megadriv_firecore_3button_ntsc, mympac, meg
CONS( 2021, mypaca, mypac, 0, megadriv_firecore_3button_ntsc, mympac, megadriv_firecore_state, init_megadriv, "dreamGEAR", "My Arcade Pac-Man (DGUNL-4194, Micro Player Pro)", MACHINE_NOT_WORKING | ROT270 )

CONS( 2021, mympac, 0, 0, megadriv_firecore_3button_ntsc, mympac, megadriv_firecore_state, init_megadriv, "dreamGEAR", "My Arcade Ms. Pac-Man (DGUNL-7010, Pocket Player Pro)", MACHINE_NOT_WORKING | ROT270 )
CONS( 2021, mympaca, mympac, 0, megadriv_firecore_3button_ntsc, mympac, megadriv_firecore_state, init_megadriv, "dreamGEAR", "My Arcade Ms. Pac-Man (DGUNL-7023, Nano Player Pro)", MACHINE_NOT_WORKING | ROT270 )

// menu uses unsupported extended mode
CONS( 2021, mygalag, 0, 0, megadriv_firecore_3button_ntsc, mympac, megadriv_firecore_state, init_megadriv, "dreamGEAR", "My Arcade Galaga (DGUNL-4195, Micro Player Pro)", MACHINE_NOT_WORKING | ROT270 )
Expand Down
Loading
Loading