diff --git a/src/mame/handheld/st2302u_bbl_rom.cpp b/src/mame/handheld/st2302u_bbl_rom.cpp index 170799c51bb0d..69595ed8244f5 100644 --- a/src/mame/handheld/st2302u_bbl_rom.cpp +++ b/src/mame/handheld/st2302u_bbl_rom.cpp @@ -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; @@ -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 m_screen; required_device m_lcdc; @@ -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 @@ -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) { @@ -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); @@ -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 @@ -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, "", "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, "", "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 ) diff --git a/src/mame/handheld/st2302u_bbl_spi.cpp b/src/mame/handheld/st2302u_bbl_spi.cpp index b552308684cef..85bc0033c5cd9 100644 --- a/src/mame/handheld/st2302u_bbl_spi.cpp +++ b/src/mame/handheld/st2302u_bbl_spi.cpp @@ -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 @@ -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 ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 0b495ffbb652f..df64c0ee1d1d4 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -19434,6 +19434,7 @@ newbrainmd @source:handheld/st2302u_bbl_rom.cpp bbl338 class200 +cutepet dphh8213 @source:handheld/st2302u_bbl_spi.cpp @@ -19444,6 +19445,7 @@ dphh8630 dphh8633 mc_cb203 pg118 +qpet ragc153 retro150 retro150a @@ -35552,6 +35554,7 @@ smb3bl afbm7800 croaky dancexpt +danzkara digezlg dnce2000 nytsudo @@ -35688,6 +35691,8 @@ dgun2573a dgunl3201 dgunl3202 fcpocket +k10_2l +k10_5l lxpcli lxpcpp lxpcsp @@ -35705,6 +35710,7 @@ typo240 36pcase 168pcase 240in1ar +a6plus d12power denv150 dgun2561 @@ -35766,6 +35772,7 @@ sealvt supr200 sy888b sy889 +t3_630 tetrtin tiger108 tup240 @@ -35791,6 +35798,7 @@ mc_9x6ss mc_hh210 retro400 rfcp168 +wol260 @source:nintendo/nss.cpp nss @@ -40554,6 +40562,7 @@ msi_sf2 mygalag mygalaga mympac +mympaca mypac mypaca mysinv @@ -46937,8 +46946,10 @@ tsbuzz @source:tvgames/generalplus_gp327902.cpp chikawac -sanxpet -sanxpeta +smksagas +smksagasa +smkmikke +smkmikkea tomyegg @source:tvgames/generalplus_gpl16250_mobigo.cpp @@ -47030,6 +47041,8 @@ punij1pu punij2pk punirune smkcatch +smkguras +smkgurasa wiwcs @source:tvgames/generalplus_gpl162xx_lcdtype.cpp @@ -47052,11 +47065,14 @@ jak_ddhp jak_prhp kidizmb kidizmp +neopad pdcm2 pocketmp pocketmr +rotom2 saikyopc smatomo +sumikpc tamameet tmydistb zippity diff --git a/src/mame/nintendo/nes_clone.cpp b/src/mame/nintendo/nes_clone.cpp index d1b80baed9525..77de216509c5c 100644 --- a/src/mame/nintendo/nes_clone.cpp +++ b/src/mame/nintendo/nes_clone.cpp @@ -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) ) @@ -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, "", "Virtual TV Soccer", MACHINE_NOT_WORKING ) +CONS( 200?, danzkara, 0, 0, nes_clone_vtvsocr, nes_clone, nes_clone_vtvsocr_state, init_nes_clone, "", "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 ) diff --git a/src/mame/nintendo/nes_vt32.cpp b/src/mame/nintendo/nes_vt32.cpp index 067d305f9396e..45f10749b78d0 100644 --- a/src/mame/nintendo/nes_vt32.cpp +++ b/src/mame/nintendo/nes_vt32.cpp @@ -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 @@ -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, "", "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, "", "Games Power 500-in-1 Ultra Thin Handheld Game (K10) (2 languages)", MACHINE_NOT_WORKING ) + diff --git a/src/mame/nintendo/nes_vt369_vtunknown.cpp b/src/mame/nintendo/nes_vt369_vtunknown.cpp index e4b4233f6f962..52145ea589f67 100644 --- a/src/mame/nintendo/nes_vt369_vtunknown.cpp +++ b/src/mame/nintendo/nes_vt369_vtunknown.cpp @@ -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) ) @@ -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() { @@ -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, "", "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, "", "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 ) @@ -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, "", "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, "", "Retro Arcade FC A6Plus - 8Bt Game Console", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/nintendo/nes_vt42xx.cpp b/src/mame/nintendo/nes_vt42xx.cpp index 1c097544da156..83437000acf98 100644 --- a/src/mame/nintendo/nes_vt42xx.cpp +++ b/src/mame/nintendo/nes_vt42xx.cpp @@ -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(); @@ -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, "", "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 ) diff --git a/src/mame/sega/megadriv_firecore.cpp b/src/mame/sega/megadriv_firecore.cpp index d47eb960f7ace..ea39861b528ad 100644 --- a/src/mame/sega/megadriv_firecore.cpp +++ b/src/mame/sega/megadriv_firecore.cpp @@ -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) ) @@ -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 ) diff --git a/src/mame/tvgames/generalplus_gp327902.cpp b/src/mame/tvgames/generalplus_gp327902.cpp index 9c6f3d7de2caf..633ba10f39d28 100644 --- a/src/mame/tvgames/generalplus_gp327902.cpp +++ b/src/mame/tvgames/generalplus_gp327902.cpp @@ -152,23 +152,34 @@ void generalplus_gp327902_game_state::init_spi() } else { - // sanxpet has the main block here, which is likely copied to RAM by previous parts of the bootloader above + // smksagas has the main block here, which is likely copied to RAM by previous parts of the bootloader above m_copybase = 0x16000; m_copydest = 0x0; m_copylength = 0x200000; } } -ROM_START( sanxpet ) +ROM_START( smksagas ) ROM_REGION( 0x800000, "spi", ROMREGION_ERASE00 ) ROM_LOAD( "25l64.u1", 0x0000, 0x800000, CRC(f28b9fd3) SHA1(8ed4668f271cbe01065bc0836e49ce70faf10834) ) ROM_END -ROM_START( sanxpeta ) +ROM_START( smksagasa ) // code is the same, some data area differs, could be different factory defaults, or user data, remove later if redundant + ROM_REGION( 0x800000, "spi", ROMREGION_ERASE00 ) + ROM_LOAD( "gpr25l64.u1", 0x0000, 0x800000, CRC(5dee73ea) SHA1(ff0302a479f0a1a0a6dc605e18f6389f6244922f) ) +ROM_END + +ROM_START( smkmikke ) // DX version ROM_REGION( 0x800000, "spi", ROMREGION_ERASE00 ) ROM_LOAD( "gpr25l6403f.u1", 0x0000, 0x800000, CRC(cb5dc7b6) SHA1(425c4d01b56784278b77824a354d9efa46e1a74e) ) ROM_END +ROM_START( smkmikkea ) // different code revision (non-DX) + ROM_REGION( 0x800000, "spi", ROMREGION_ERASE00 ) + ROM_LOAD( "gpr25l64.u1", 0x0000, 0x800000, CRC(af900ab7) SHA1(c2cb0d37acf94edd150e6ef4f987f66b2306b97e) ) +ROM_END + + ROM_START( tomyegg ) ROM_REGION( 0x800000, "spi", ROMREGION_ERASE00 ) ROM_LOAD( "gpr25l6403f.u1", 0x0000, 0x800000, CRC(2acd6752) SHA1(85e59546a1af4618c75c275cead7ef0f5e3faa44) ) @@ -189,14 +200,16 @@ ROM_END // see evolution_handheld.cpp // 2019 version is house shaped device - すみっコぐらし すみっコさがし -CONS( 2019, sanxpet, 0, 0, gp327902, gp327902, generalplus_gp327902_game_state, init_spi, "San-X / Tomy", "Sumikko Gurashi - Sumikko Sagashi (Japan)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) +CONS( 2019, smksagas, 0, 0, gp327902, gp327902, generalplus_gp327902_game_state, init_spi, "San-X / Tomy", "Sumikko Gurashi - Sumikko Sagashi (Japan, set 1)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) // from a standard unit +CONS( 2019, smksagasa, smksagas, 0, gp327902, gp327902, generalplus_gp327902_game_state, init_spi, "San-X / Tomy", "Sumikko Gurashi - Sumikko Sagashi (Japan, set 2)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) // from a 'Deluxe' unit // or Sumikko Gurashi - Sumikko Sagashi DX (すみっコぐらし すみっコさがしDX "Sumikko Gurashi the movie" alt version) // 2020 version - Sumikko Gurashi - Sumikko Catch, see generalplus_gpl16250_spi_direct.cpp // 2021 version is a square device with a tiny 'mole' figure on top - すみっコぐらし すみっコみっけDX // or Sumikko Gurashi - Sumikko Mikke (すみっコぐらし すみっコみっけ) -CONS( 2021, sanxpeta, 0, 0, gp327902, gp327902, generalplus_gp327902_game_state, init_spi, "San-X / Tomy", "Sumikko Gurashi - Sumikko Mikke DX (Japan)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) +CONS( 2021, smkmikke, 0, 0, gp327902, gp327902, generalplus_gp327902_game_state, init_spi, "San-X / Tomy", "Sumikko Gurashi - Sumikko Mikke DX (Japan)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) // from a 'Deluxe' unit +CONS( 2021, smkmikkea, smkmikke, 0, gp327902, gp327902, generalplus_gp327902_game_state, init_spi, "San-X / Tomy", "Sumikko Gurashi - Sumikko Mikke (Japan)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) // from a standard unit // other devices on the same Soc diff --git a/src/mame/tvgames/generalplus_gpl16250_spi_direct.cpp b/src/mame/tvgames/generalplus_gpl16250_spi_direct.cpp index b64d5f5fae455..2e119851e00d6 100644 --- a/src/mame/tvgames/generalplus_gpl16250_spi_direct.cpp +++ b/src/mame/tvgames/generalplus_gpl16250_spi_direct.cpp @@ -251,6 +251,16 @@ ROM_START( smkcatch ) ROM_LOAD16_WORD_SWAP( "gpr25l64.u2", 0x0000, 0x800000, CRC(e2f52c4a) SHA1(f79862d27152cff8f96151c672d9762a3897a593) ) ROM_END +ROM_START( smkguras ) + ROM_REGION16_BE(0x800000, "maincpu:spidirect", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "gpr25l64.u3", 0x0000, 0x800000, CRC(96b61464) SHA1(59fada02e1ea983c56304b27b3f4cb1fba221cb0) ) +ROM_END + +ROM_START( smkgurasa ) // code is the same, some data area differs, could be different factory defaults, or user data, remove later if redundant + ROM_REGION16_BE(0x800000, "maincpu:spidirect", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "xm25qh64c.u3", 0x0000, 0x800000, CRC(2c9e82af) SHA1(8c475783eafbeaeb88d62b145758ad3487410222) ) +ROM_END + ROM_START( dsgnpal ) ROM_REGION16_BE(0x800000, "maincpu:spidirect", ROMREGION_ERASE00 ) ROM_LOAD16_WORD_SWAP( "gpr25l64.ic2", 0x0000, 0x800000, CRC(a1017ea8) SHA1(bd4b553ff71e763cd3fd726c49f5408eac3b7984) ) @@ -310,5 +320,9 @@ CONS(2021, pokgoget, 0, 0, generalplus_gpspi_direct, bfspyhnt, generalplu CONS( 2021, smkcatch, 0, 0, generalplus_gpspi_direct, bfmpac, generalplus_gpspi_direct_game_state, empty_init, "San-X / Tomy", "Sumikko Gurashi - Sumikko Catch (Japan)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) // or Sumikko Gurashi - Sumikko Catch DX (すみっコぐらし すみっコキャッチDX) = Sumikko Catch with pouch and strap +// is there a subtitle for this one? it's different to the others +CONS( 201?, smkguras, 0, 0, generalplus_gpspi_direct, bfmpac, generalplus_gpspi_direct_game_state, empty_init, "San-X / Tomy", "Sumikko Gurashi (Japan, set 1)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) +CONS( 201?, smkgurasa, smkguras, 0, generalplus_gpspi_direct, bfmpac, generalplus_gpspi_direct_game_state, empty_init, "San-X / Tomy", "Sumikko Gurashi (Japan, set 2)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) + // there seem to be different versions of this available, is the software the same? CONS( 201?, dsgnpal, 0, 0, generalplus_gpspi_direct, bfmpac, generalplus_gpspi_direct_game_state, empty_init, "Tomy", "Kiratto Pri-Chan Design Palette (Japan)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) diff --git a/src/mame/tvgames/generalplus_gpl32612.cpp b/src/mame/tvgames/generalplus_gpl32612.cpp index 6951fb52348be..d6c2c3f603953 100644 --- a/src/mame/tvgames/generalplus_gpl32612.cpp +++ b/src/mame/tvgames/generalplus_gpl32612.cpp @@ -368,6 +368,34 @@ ROM_START( airobo ) ROM_LOAD( "tc58nvg2s0hta00.bin", 0x0000, 0x22000000, CRC(6cfa4600) SHA1(152c04532ae2587dea590d169e87534924f5ea89) ) ROM_END +ROM_START( rotom2 ) + ROM_REGION16_BE( 0x40000, "maincpu:internal", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "internal.rom", 0x00000, 0x40000, NO_DUMP ) // used as bootstrap only? + + ROM_REGION( 0x8800000, "nand", ROMREGION_ERASE00 ) + ROM_LOAD( "tc58nvg0s3hta00.u2", 0x0000, 0x8800000, CRC(b77c9469) SHA1(ba0b9f5ea65971bc9d858f109a3543b3126ab6ee) ) +ROM_END + +ROM_START( neopad ) + ROM_REGION16_BE( 0x40000, "maincpu:internal", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "internal.rom", 0x00000, 0x40000, NO_DUMP ) // used as bootstrap only? + + ROM_REGION( 0x8800000, "nand", ROMREGION_ERASE00 ) + ROM_LOAD( "tc58nvg0s3hta00.u2", 0x0000, 0x8800000, CRC(3b8f8c48) SHA1(1995d443c1ce8e44c9256c994e1f91eb5857b80c) ) +ROM_END + + +ROM_START( sumikpc ) + ROM_REGION16_BE( 0x40000, "maincpu:internal", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "internal.rom", 0x00000, 0x40000, NO_DUMP ) // used as bootstrap only? + + ROM_REGION( 0x8800000, "nand", ROMREGION_ERASE00 ) + ROM_LOAD( "tc58nvg0s3hta00.nfrom1", 0x0000, 0x8800000, CRC(3187a2cc) SHA1(166719b0cd45d7d6b5523ed528b64afac2fb58b7) ) +ROM_END + + + + void generalplus_gpl32612_game_state::nand_init(int blocksize, int blocksize_stripped) { @@ -435,7 +463,9 @@ CONS( 2013, kidizmp, 0, 0, gpl32612, gpl32612, generalplus_g CONS( 201?, kidizmb, 0, 0, gpl32612, gpl32612, generalplus_gpl32612_game_state, empty_init, "VTech", "Kidizoom (Germany, blue camera)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) CONS( 2019, pocketmp, 0, 0, gpl32612, gpl32612, generalplus_gpl32612_game_state, nand_init880, "Takara Tomy", "Pocket Monsters PC", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) -CONS( 2019, pocketmr, 0, 0, gpl32612, gpl32612, generalplus_gpl32612_game_state, nand_init880, "Takara Tomy", "Pocket Monsters Rotom Tablet", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) + +// ポケモン図鑑 スマホロトム +CONS( 2019, pocketmr, 0, 0, gpl32612, gpl32612, generalplus_gpl32612_game_state, nand_init880, "Takara Tomy", "Pokemon Zukan - Sumaho Rotom (Japan)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) // uses GPL32610 - 「それいけ!アンパンマン」スポーツ育脳マット CONS( 2019, anpanm19, 0, 0, gpl32612, gpl32612, generalplus_gpl32612_game_state, empty_init, "JoyPalette", "Anpanman: Sports Ikunou Mat (Japan)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) @@ -489,5 +519,20 @@ CONS( 2021, chiikpc, 0, 0, gpl32612, gpl32612, generalplu // 学びの最強王になれ! 最強王図鑑パソコン CONS( 2020, saikyopc, 0, 0, gpl32612, gpl32612, generalplus_gpl32612_game_state, empty_init, "Bandai", "Manabi no Sai-Kyo-Oh ni Nare! Sai-Kyo-Oh Zukan PC (Japan)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) +// uses GPL32600A +// マウスできせかえ! すみっコぐらしパソコンプラス +CONS( 2019, sumikpc, 0, 0, gpl32612, gpl32612, generalplus_gpl32612_game_state, empty_init, "Sega Toys", "Mouse de Kisekae! Sumikko Gurashi PC Plus (Japan)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) // from a unit with purple top + + // ディズニー&ディズニー/ピクサーキャラクターズ できた!がいっぱい ドリームトイパッド CONS( 2020, tmydistb, 0, 0, gpl32612, gpl32612, generalplus_gpl32612_game_state, empty_init, "Tomy", "Disney & Disney/Pixar Characters Dekita! ga Ippai Dream Toy Pad (Japan)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) + +// uses GPL32610 +// カメラでリンク! ポケモン図鑑 スマホロトム +CONS( 201?, rotom2, 0, 0, gpl32612, gpl32612, generalplus_gpl32612_game_state, nand_init880, "Takara Tomy", "Camera de Link! Pokemon Zukan - Sumaho Rotom (Japan)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) + +// uses GPL32611 +// 小学館の図鑑 NEO Pad - 生きもの編 (this is the standard green version) +CONS( 201?, neopad, 0, 0, gpl32612, gpl32612, generalplus_gpl32612_game_state, nand_init880, "Takara Tomy", "Shogakukan no Zukan NEO Pad - Ikimono-hen (Japan)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) +// a blue version exists with the subtitle Norimono + Kuraberu-hen (乗りもの+くらべる編). +// another green version with 'DX' on the end of the title also exists