From f0148983d81d2528fc7f2da25b2ed917f43639a1 Mon Sep 17 00:00:00 2001 From: David Haywood Date: Sun, 2 Nov 2025 17:47:56 +0000 Subject: [PATCH 1/6] add frozen pocket --- src/mame/mame.lst | 1 + src/mame/nintendo/nes_vt369_vtunknown.cpp | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index d80ad44d654bf..79d1aa498323d 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -35836,6 +35836,7 @@ lxcmcyspn lxcmcysw lxcyber lxcypkdp +lxcypkfz lxcypkpp lxcypksp matet10 diff --git a/src/mame/nintendo/nes_vt369_vtunknown.cpp b/src/mame/nintendo/nes_vt369_vtunknown.cpp index 247c1d5ac03f1..efe47f7ccbd34 100644 --- a/src/mame/nintendo/nes_vt369_vtunknown.cpp +++ b/src/mame/nintendo/nes_vt369_vtunknown.cpp @@ -832,6 +832,14 @@ ROM_START( lxcypkpp ) // all games selectable VT3XX_INTERNAL_NO_SWAP // not verified for this set, used for testing ROM_END +ROM_START( lxcypkfz ) // all games selectable + ROM_REGION( 0x4000000, "mainrom", 0 ) + ROM_LOAD( "jl1895fz.u2", 0x00000, 0x4000000, CRC(6346a6cb) SHA1(a8172119fa49c90813f9a2b4341abbb4bd86f8ab) ) + + VT3XX_INTERNAL_NO_SWAP // not verified for this set, used for testing +ROM_END + + ROM_START( lxcmc250 ) // all games selectable ROM_REGION( 0x4000000, "mainrom", 0 ) // sub-board was marked for 2GB capacity (A0-A26 address lines), but only address lines A0-A24 are connected to the chip @@ -1279,6 +1287,7 @@ CONS( 200?, lxcmcyfzb, lxcmcyfz, 0, vt36x_32mb_2banks_lexi, vt369, vt36x_s CONS( 201?, lxcypkdp, 0, 0, vt36x_32mb_2banks_lexi, vt369, vt36x_state, empty_init, "Lexibook", "Cyber Arcade Pocket - Disney Princess (JL1895DP)", MACHINE_NOT_WORKING ) CONS( 201?, lxcypksp, 0, 0, vt36x_32mb_2banks_lexi, vt369, vt36x_state, empty_init, "Lexibook", "Cyber Arcade Pocket - Spider-Man (JL1895SP-2)", MACHINE_NOT_WORKING ) CONS( 201?, lxcypkpp, 0, 0, vt36x_32mb_2banks_lexi, vt369, vt36x_state, empty_init, "Lexibook", "Cyber Arcade Pocket - Paw Patrol (JL1895PA)", MACHINE_NOT_WORKING ) +CONS( 201?, lxcypkfz, 0, 0, vt36x_32mb_2banks_lexi, vt369, vt36x_state, empty_init, "Lexibook", "Cyber Arcade Pocket - Frozen (JL1895FZ)", MACHINE_NOT_WORKING ) CONS( 200?, lxccminn, 0, 0, vt36x_32mb_2banks_lexi, vt369, vt36x_state, empty_init, "Lexibook", "Console Colour - Minnie Mouse (JL2800MN)", MACHINE_NOT_WORKING ) CONS( 200?, lxccplan, 0, 0, vt36x_32mb_2banks_lexi, vt369, vt36x_state, empty_init, "Lexibook", "Console Colour - Disney's Planes (JL2800PL)", MACHINE_NOT_WORKING ) From 1b8521c826246bcaa67e888bea89714d26b67f9b Mon Sep 17 00:00:00 2001 From: David Haywood Date: Mon, 3 Nov 2025 14:55:28 +0000 Subject: [PATCH 2/6] added Cyber Arcade TV - Barbie (JL2500BB) --- src/mame/mame.lst | 1 + src/mame/tvgames/spg2xx.cpp | 20 ++++++++++------- src/mame/tvgames/spg2xx.h | 2 +- src/mame/tvgames/spg2xx_lexibook.cpp | 32 +++++++++++++++++++++++++++- 4 files changed, 45 insertions(+), 10 deletions(-) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 79d1aa498323d..767e8a44ec748 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -47450,6 +47450,7 @@ tvtchsb @source:tvgames/spg2xx_lexibook.cpp arcade3d +cybrtvbb cybrtvfe lexizeus lexiseal diff --git a/src/mame/tvgames/spg2xx.cpp b/src/mame/tvgames/spg2xx.cpp index cf12b5b93998e..c750a68b07b03 100644 --- a/src/mame/tvgames/spg2xx.cpp +++ b/src/mame/tvgames/spg2xx.cpp @@ -3131,20 +3131,24 @@ ROM_START( pdcj ) ROM_LOAD16_WORD_SWAP( "chip2.u3", 0x800000, 0x400000, CRC(4fb335ac) SHA1(d6499816acb3da5c4f6a582bd3104c707422eb34) ) ROM_END -void spg2xx_game_state::init_crc() +void spg2xx_game_state::init_crc(int blocks, int crclocation) { // several games have a byte sum checksum listed at the start of ROM, this little helper function logs what it should match. - const int length = memregion("maincpu")->bytes(); + const int length = memregion("maincpu")->bytes() / blocks; const uint8_t* rom = memregion("maincpu")->base(); - uint32_t checksum = 0x00000000; - // the first 0x10 bytes are where the "chksum:xxxxxxxx " string is listed, so skip over them - for (int i = 0x10; i < length; i++) + for (int block = 0; block < blocks; block++) { - checksum += rom[i]; - } + const uint8_t* rom2 = rom + block * 0x800000; + uint32_t checksum = 0x00000000; + // the first 0x10 bytes are where the "chksum:xxxxxxxx " string is listed, so skip over them + for (int i = 0x10 + crclocation; i < length; i++) + { + checksum += rom2[i]; + } - logerror("Calculated Byte Sum of bytes from 0x10 to 0x%08x is %08x)\n", length - 1, checksum); + logerror("Block %d Calculated Byte Sum of bytes from 0x%08x to 0x%08x is %08x) in header %c%c%c%c%c%c%c%c\n", block, (block * 0x800000) + 0x10 + crclocation, (block * 0x800000) + length - 1, checksum, rom2[crclocation+7], rom2[crclocation+8], rom2[crclocation+9], rom2[crclocation+10], rom2[crclocation+11], rom2[crclocation+12], rom2[crclocation+13], rom2[crclocation+14]); + } } diff --git a/src/mame/tvgames/spg2xx.h b/src/mame/tvgames/spg2xx.h index 88809071c5aa0..95b30dc86d14d 100644 --- a/src/mame/tvgames/spg2xx.h +++ b/src/mame/tvgames/spg2xx.h @@ -51,7 +51,7 @@ class spg2xx_game_state : public driver_device void tmntmutm(machine_config &config); - void init_crc(); + void init_crc(int blocks = 1, int crclocation = 0); void init_tvsprt10(); void init_itvphone(); diff --git a/src/mame/tvgames/spg2xx_lexibook.cpp b/src/mame/tvgames/spg2xx_lexibook.cpp index d0659ac6b34ea..78363be02ea5f 100644 --- a/src/mame/tvgames/spg2xx_lexibook.cpp +++ b/src/mame/tvgames/spg2xx_lexibook.cpp @@ -21,6 +21,7 @@ class spg2xx_lexizeus_game_state : public spg2xx_game_state void lexizeus(machine_config &config); void init_zeus(); + void init_cybrtvfe(); protected: //virtual void machine_start() override ATTR_COLD; @@ -348,6 +349,13 @@ void spg2xx_lexizeus_game_state::init_zeus() } } +void spg2xx_lexizeus_game_state::init_cybrtvfe() +{ + init_zeus(); + int size = memregion("maincpu")->bytes(); + init_crc(size / 0x800000, 0xc00); +} + void spg2xx_vsplus_game_state::init_vsplus() { uint16_t *ROM = (uint16_t*)memregion("maincpu")->base(); @@ -388,9 +396,29 @@ ROM_END ROM_START( cybrtvfe ) ROM_REGION( 0x4000000, "maincpu", ROMREGION_ERASE00 ) + // Block 0 Calculated Byte Sum of bytes from 0x00000c10 to 0x007fffff is 3482e6f7) in header 3482E6F7 + // Block 1 Calculated Byte Sum of bytes from 0x00800c10 to 0x00ffffff is 2f5fab76) in header 2F5FAB76 + // Block 2 Calculated Byte Sum of bytes from 0x01000c10 to 0x017fffff is 29dcb774) in header 29DCB774 + // Block 3 Calculated Byte Sum of bytes from 0x01800c10 to 0x01ffffff is 2ac8e204) in header 2AC8E204 + // Block 4 Calculated Byte Sum of bytes from 0x02000c10 to 0x027fffff is 2eb7963d) in header 2EB7963D + // Block 5 Calculated Byte Sum of bytes from 0x02800c10 to 0x02ffffff is 372ddefe) in header 372DDEFE + // Block 6 Calculated Byte Sum of bytes from 0x03000c10 to 0x037fffff is 129dee7c) in header 129DEE7C + // Block 7 Calculated Byte Sum of bytes from 0x03800c10 to 0x03ffffff is 129dee7c) in header 129DEE7C ROM_LOAD16_WORD_SWAP( "jl2500fe.u6", 0x0000, 0x4000000, CRC(2fce6685) SHA1(6fc329204fdb401c72884349f29201fb783fe2ea) ) ROM_END +ROM_START( cybrtvbb ) + ROM_REGION( 0x4000000, "maincpu", ROMREGION_ERASE00 ) + // there is likely a single bad byte in the 3rd 8Mbyte section as the checksum doesn't match + // but that part only contains generic games so it should be possible to locate it + // Block 0 Calculated Byte Sum of bytes from 0x00000c10 to 0x007fffff is 2bd64edb) in header 2BD64EDB + // Block 1 Calculated Byte Sum of bytes from 0x00800c10 to 0x00ffffff is 30f4f3f0) in header 30F4F3F0 + // Block 2 Calculated Byte Sum of bytes from 0x01000c10 to 0x017fffff is 2c24e87a) in header 2C24E8D5 + // Block 3 Calculated Byte Sum of bytes from 0x01800c10 to 0x01ffffff is 320d1f5a) in header 320D1F5A + ROM_LOAD16_WORD_SWAP( "jl2500bb.u6", 0x0000, 0x2000000, BAD_DUMP CRC(e7f60274) SHA1(d7253dc380c866aaefced590ff7b8030c4009125) ) + ROM_RELOAD(0x2000000,0x2000000) +ROM_END + /* VG Caplet ROM pinout from Sean Riddle (2 ROMs in single package) @@ -461,7 +489,9 @@ CONS( 200?, arcade3d, 0, 0, lexizeus, lexiseal, spg2xx_lexizeu CONS( 200?, vsplus, 0, 0, vsplus, vsplus, spg2xx_vsplus_game_state, init_vsplus, " / JungleTac", "Vs Power Plus 30-in-1", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // marked as SPG260 -CONS( 2010, cybrtvfe, 0, 0, lexiseal, lexiseal, spg2xx_cybrtvfe_game_state, init_zeus, "Lexibook", "Cyber Arcade TV - Ferrari (JL2500FE)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +CONS( 2010, cybrtvfe, 0, 0, lexiseal, lexiseal, spg2xx_cybrtvfe_game_state, init_cybrtvfe, "Lexibook", "Cyber Arcade TV - Ferrari 105-in-1 (JL2500FE)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +// need to hook up seeprom +CONS( 2010, cybrtvbb, 0, 0, lexiseal, lexiseal, spg2xx_cybrtvfe_game_state, init_cybrtvfe, "Lexibook", "Cyber Arcade TV - Barbie (JL2500BB)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) CONS( 200?, lexiseal, 0, 0, lexiseal, lexiseal, spg2xx_lexiseal_game_state, init_zeus, "Lexibook / Sit Up Limited / JungleTac", "Seal 50-in-1", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // also has bad sound in Tiger Rescue, but no corrupt tilemap // There are versions of the Seal 50-in-1 that actually show Lexibook on the boot screen rather than it just being on the unit. The Seal name was also used for some VT systems From cad7a4e2e260852443415036d834b845d18e3337 Mon Sep 17 00:00:00 2001 From: David Haywood Date: Mon, 3 Nov 2025 15:11:12 +0000 Subject: [PATCH 3/6] redumped ROM with 0.3v higher voltage, checksums now match header for all blocks (this one was a nightmare) --- src/mame/tvgames/spg2xx.cpp | 2 +- src/mame/tvgames/spg2xx_lexibook.cpp | 28 +++++++++++++--------------- 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/src/mame/tvgames/spg2xx.cpp b/src/mame/tvgames/spg2xx.cpp index c750a68b07b03..5e2ca5b472318 100644 --- a/src/mame/tvgames/spg2xx.cpp +++ b/src/mame/tvgames/spg2xx.cpp @@ -3147,7 +3147,7 @@ void spg2xx_game_state::init_crc(int blocks, int crclocation) checksum += rom2[i]; } - logerror("Block %d Calculated Byte Sum of bytes from 0x%08x to 0x%08x is %08x) in header %c%c%c%c%c%c%c%c\n", block, (block * 0x800000) + 0x10 + crclocation, (block * 0x800000) + length - 1, checksum, rom2[crclocation+7], rom2[crclocation+8], rom2[crclocation+9], rom2[crclocation+10], rom2[crclocation+11], rom2[crclocation+12], rom2[crclocation+13], rom2[crclocation+14]); + logerror("Block %d Calculated Byte Sum of bytes from 0x%08x to 0x%08x is %08x, in header %c%c%c%c%c%c%c%c\n", block, (block * 0x800000) + 0x10 + crclocation, (block * 0x800000) + length - 1, checksum, rom2[crclocation+7], rom2[crclocation+8], rom2[crclocation+9], rom2[crclocation+10], rom2[crclocation+11], rom2[crclocation+12], rom2[crclocation+13], rom2[crclocation+14]); } } diff --git a/src/mame/tvgames/spg2xx_lexibook.cpp b/src/mame/tvgames/spg2xx_lexibook.cpp index 78363be02ea5f..c359bdd69f39c 100644 --- a/src/mame/tvgames/spg2xx_lexibook.cpp +++ b/src/mame/tvgames/spg2xx_lexibook.cpp @@ -396,26 +396,24 @@ ROM_END ROM_START( cybrtvfe ) ROM_REGION( 0x4000000, "maincpu", ROMREGION_ERASE00 ) - // Block 0 Calculated Byte Sum of bytes from 0x00000c10 to 0x007fffff is 3482e6f7) in header 3482E6F7 - // Block 1 Calculated Byte Sum of bytes from 0x00800c10 to 0x00ffffff is 2f5fab76) in header 2F5FAB76 - // Block 2 Calculated Byte Sum of bytes from 0x01000c10 to 0x017fffff is 29dcb774) in header 29DCB774 - // Block 3 Calculated Byte Sum of bytes from 0x01800c10 to 0x01ffffff is 2ac8e204) in header 2AC8E204 - // Block 4 Calculated Byte Sum of bytes from 0x02000c10 to 0x027fffff is 2eb7963d) in header 2EB7963D - // Block 5 Calculated Byte Sum of bytes from 0x02800c10 to 0x02ffffff is 372ddefe) in header 372DDEFE - // Block 6 Calculated Byte Sum of bytes from 0x03000c10 to 0x037fffff is 129dee7c) in header 129DEE7C - // Block 7 Calculated Byte Sum of bytes from 0x03800c10 to 0x03ffffff is 129dee7c) in header 129DEE7C + // Block 0 Calculated Byte Sum of bytes from 0x00000c10 to 0x007fffff is 3482e6f7, in header 3482E6F7 + // Block 1 Calculated Byte Sum of bytes from 0x00800c10 to 0x00ffffff is 2f5fab76, in header 2F5FAB76 + // Block 2 Calculated Byte Sum of bytes from 0x01000c10 to 0x017fffff is 29dcb774, in header 29DCB774 + // Block 3 Calculated Byte Sum of bytes from 0x01800c10 to 0x01ffffff is 2ac8e204, in header 2AC8E204 + // Block 4 Calculated Byte Sum of bytes from 0x02000c10 to 0x027fffff is 2eb7963d, in header 2EB7963D + // Block 5 Calculated Byte Sum of bytes from 0x02800c10 to 0x02ffffff is 372ddefe, in header 372DDEFE + // Block 6 Calculated Byte Sum of bytes from 0x03000c10 to 0x037fffff is 129dee7c, in header 129DEE7C + // Block 7 Calculated Byte Sum of bytes from 0x03800c10 to 0x03ffffff is 129dee7c, in header 129DEE7C ROM_LOAD16_WORD_SWAP( "jl2500fe.u6", 0x0000, 0x4000000, CRC(2fce6685) SHA1(6fc329204fdb401c72884349f29201fb783fe2ea) ) ROM_END ROM_START( cybrtvbb ) ROM_REGION( 0x4000000, "maincpu", ROMREGION_ERASE00 ) - // there is likely a single bad byte in the 3rd 8Mbyte section as the checksum doesn't match - // but that part only contains generic games so it should be possible to locate it - // Block 0 Calculated Byte Sum of bytes from 0x00000c10 to 0x007fffff is 2bd64edb) in header 2BD64EDB - // Block 1 Calculated Byte Sum of bytes from 0x00800c10 to 0x00ffffff is 30f4f3f0) in header 30F4F3F0 - // Block 2 Calculated Byte Sum of bytes from 0x01000c10 to 0x017fffff is 2c24e87a) in header 2C24E8D5 - // Block 3 Calculated Byte Sum of bytes from 0x01800c10 to 0x01ffffff is 320d1f5a) in header 320D1F5A - ROM_LOAD16_WORD_SWAP( "jl2500bb.u6", 0x0000, 0x2000000, BAD_DUMP CRC(e7f60274) SHA1(d7253dc380c866aaefced590ff7b8030c4009125) ) + // Block 0 Calculated Byte Sum of bytes from 0x00000c10 to 0x007fffff is 2bd64edb, in header 2BD64EDB + // Block 1 Calculated Byte Sum of bytes from 0x00800c10 to 0x00ffffff is 30f4f3f0, in header 30F4F3F0 + // Block 2 Calculated Byte Sum of bytes from 0x01000c10 to 0x017fffff is 2c24e8d5, in header 2C24E8D5 + // Block 3 Calculated Byte Sum of bytes from 0x01800c10 to 0x01ffffff is 320d1f5a, in header 320D1F5A + ROM_LOAD16_WORD_SWAP( "jl2500bb.u6", 0x0000, 0x2000000, CRC(8d6e0c99) SHA1(e54660381ff20ecf9b023da7703802f256f7fba5) ) ROM_RELOAD(0x2000000,0x2000000) ROM_END From 5acc8545bec4d1f48ff23423aabbe0a0ee34574f Mon Sep 17 00:00:00 2001 From: David Haywood Date: Mon, 3 Nov 2025 19:41:46 +0000 Subject: [PATCH 4/6] added SEEPROM (doesn't work at the moment though) --- src/mame/tvgames/spg2xx_lexibook.cpp | 39 +++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/src/mame/tvgames/spg2xx_lexibook.cpp b/src/mame/tvgames/spg2xx_lexibook.cpp index c359bdd69f39c..bf22c290f5423 100644 --- a/src/mame/tvgames/spg2xx_lexibook.cpp +++ b/src/mame/tvgames/spg2xx_lexibook.cpp @@ -56,6 +56,18 @@ class spg2xx_cybrtvfe_game_state : public spg2xx_lexiseal_game_state virtual void portb_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0) override; }; +class spg2xx_cybrtvbb_game_state : public spg2xx_cybrtvfe_game_state +{ +public: + spg2xx_cybrtvbb_game_state(const machine_config &mconfig, device_type type, const char *tag) : + spg2xx_cybrtvfe_game_state(mconfig, type, tag) + { } + + void cybrtvbb(machine_config& config); + +protected: + virtual void portc_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0) override; +}; class spg2xx_vsplus_game_state : public spg2xx_lexizeus_game_state { @@ -234,6 +246,13 @@ static INPUT_PORTS_START( lexiseal ) PORT_BIT( 0xfffc, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END +static INPUT_PORTS_START( cybrtvbb ) + PORT_INCLUDE( lexiseal ) + + PORT_MODIFY("P3") + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("i2cmem", FUNC(i2cmem_device::read_sda)) +INPUT_PORTS_END + static INPUT_PORTS_START( vsplus ) PORT_START("P1") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) @@ -289,6 +308,15 @@ void spg2xx_vsplus_game_state::portb_w(offs_t offset, uint16_t data, uint16_t me } } +void spg2xx_cybrtvbb_game_state::portc_w(offs_t offset, uint16_t data, uint16_t mem_mask) +{ + logerror("%s: portc_w %04x %04x masked %04x\n", machine().describe_context(), data, mem_mask, data & mem_mask); + + m_i2cmem->write_sda(BIT(mem_mask, 7) ? BIT(data, 7) : 1); + m_i2cmem->write_scl(BIT(mem_mask, 8) ? BIT(data, 8) : 0); +} + + void spg2xx_lexiseal_game_state::lexiseal(machine_config &config) { non_spg_base(config); @@ -298,6 +326,15 @@ void spg2xx_lexiseal_game_state::lexiseal(machine_config &config) m_maincpu->portc_in().set_ioport("P3"); } +void spg2xx_cybrtvbb_game_state::cybrtvbb(machine_config &config) +{ + lexiseal(config); + m_maincpu->portc_out().set(FUNC(spg2xx_cybrtvbb_game_state::portc_w)); + + // cybrtvfe has a position for this too, but it's unpopulated + I2C_24C02(config, "i2cmem", 0); +} + void spg2xx_lexizeus_game_state::lexizeus(machine_config &config) { non_spg_base(config); @@ -489,7 +526,7 @@ CONS( 200?, vsplus, 0, 0, vsplus, vsplus, spg2xx_vsplus_game // marked as SPG260 CONS( 2010, cybrtvfe, 0, 0, lexiseal, lexiseal, spg2xx_cybrtvfe_game_state, init_cybrtvfe, "Lexibook", "Cyber Arcade TV - Ferrari 105-in-1 (JL2500FE)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // need to hook up seeprom -CONS( 2010, cybrtvbb, 0, 0, lexiseal, lexiseal, spg2xx_cybrtvfe_game_state, init_cybrtvfe, "Lexibook", "Cyber Arcade TV - Barbie (JL2500BB)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +CONS( 2010, cybrtvbb, 0, 0, cybrtvbb, cybrtvbb, spg2xx_cybrtvbb_game_state, init_cybrtvfe, "Lexibook", "Cyber Arcade TV - Barbie 75-in-1 (JL2500BB)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) CONS( 200?, lexiseal, 0, 0, lexiseal, lexiseal, spg2xx_lexiseal_game_state, init_zeus, "Lexibook / Sit Up Limited / JungleTac", "Seal 50-in-1", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // also has bad sound in Tiger Rescue, but no corrupt tilemap // There are versions of the Seal 50-in-1 that actually show Lexibook on the boot screen rather than it just being on the unit. The Seal name was also used for some VT systems From a676151996ba1ffcf4361070fb7b568229e4fb0c Mon Sep 17 00:00:00 2001 From: David Haywood Date: Tue, 4 Nov 2025 16:16:39 +0000 Subject: [PATCH 5/6] some more sets --- src/mame/mame.lst | 3 +++ src/mame/tvgames/generalplus_gpl32612.cpp | 16 ++++++++++++++++ src/mame/tvgames/generalplus_gpl951xx.cpp | 7 +++++++ 3 files changed, 26 insertions(+) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 767e8a44ec748..13be9b84d3499 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -47159,6 +47159,7 @@ bftetris bubltea dsgnpal pokebala +pokeissh pokgoget punifrnd punij1m @@ -47190,6 +47191,7 @@ anpanm19 arcadege ardancem bananlap +banaquap bandolap bandplap bandslap @@ -47211,6 +47213,7 @@ pocketmr pokepeac rotom2 saikyopc +segcarsh segdis16 smatomo spicanot diff --git a/src/mame/tvgames/generalplus_gpl32612.cpp b/src/mame/tvgames/generalplus_gpl32612.cpp index 2c4ded760e366..ba6dda7f56533 100644 --- a/src/mame/tvgames/generalplus_gpl32612.cpp +++ b/src/mame/tvgames/generalplus_gpl32612.cpp @@ -347,6 +347,11 @@ ROM_START( tmydistb ) ROM_LOAD( "gpr25l64.u5", 0x0000, 0x800000, CRC(01e5a892) SHA1(b9164173e707eb69cd7d50ce69f3368de7e7390f) ) ROM_END +ROM_START( banaquap ) + ROM_REGION( 0x800000, "spi", ROMREGION_ERASE00 ) + ROM_LOAD( "gpr25l64.u8", 0x0000, 0x800000, CRC(3a434fe0) SHA1(34c55bebe7451d9046311b6c704e0e66347f5a39) ) +ROM_END + ROM_START( intrtvg ) ROM_REGION( 0x100000, "spi", ROMREGION_ERASE00 ) ROM_LOAD( "25q08.u6", 0x0000, 0x100000, CRC(5aa91972) SHA1(296108e8683063c16951ff326e6ff3d63d9ed5b8) ) @@ -447,6 +452,11 @@ ROM_START( segdis16 ) DISK_IMAGE( "segdis16", 0, SHA1(63cf1290c8ed78355b96b4e23885d11d7e2bd25d) ) ROM_END +ROM_START( segcarsh ) + ROM_REGION( 0x1000000, "spi", ROMREGION_ERASE00 ) + ROM_LOAD( "mx25l12833.sfrom1", 0x0000, 0x1000000, CRC(46a350fc) SHA1(1efa026abce3f2bd8a7e32519c4705dbdcfc5919) ) +ROM_END + ROM_START( dinopc ) ROM_REGION16_BE( 0x40000, "maincpu:internal", ROMREGION_ERASE00 ) @@ -546,6 +556,9 @@ CONS( 2014, bananlap, 0, 0, gpl32612, gpl32612, generalplus_g // ドラえもんステップアップパソコン CONS( 2014, bandolap, 0, 0, gpl32612, gpl32612, generalplus_gpl32612_game_state, empty_init, "Bandai", "Doraemon Step Up PC (Japan)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) +// uses GPL32630A has GPspispi header マーメイドアクアポット +CONS( 2021, banaquap, 0, 0, gpl32612, gpl32612, generalplus_gpl32612_game_state, empty_init, "Bandai", "Tropical Rouge PreCure Mermaid Aqua Pot (Japan)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) + // company is called 深圳市飞讯互动科技有限公司 // surface details erased on SoC for both of these // very generic packaging, boots from SPI, has game data on SD card (mostly NES games) @@ -607,6 +620,9 @@ CONS( 2021, sumipc21, 0, 0, gpl32612, gpl32612, generalpl // ディズニーキャラクターズ マジカルパッド ~ガールズレッスン~ CONS( 2016, segdis16, 0, 0, gpl32612, gpl32612, generalplus_gpl32612_game_state, empty_init, "Sega Toys", "Disney Characters Magical Pad -Girls Lesson- (Japan)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) +// uses GPL32611 +CONS( 201?, segcarsh, 0, 0, gpl32612, gpl32612, generalplus_gpl32612_game_state, empty_init, "Sega Toys", "Disney Cars Shake It! (Japan)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) + // uses GPL32600A // マウスでバトル!! 恐竜図鑑パソコン CONS( 2020, dinopc, 0, 0, gpl32612, gpl32612, generalplus_gpl32612_game_state, empty_init, "Sega Toys", "Mouse de Battle!! Kyouryuu Zukan PC (Japan)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) diff --git a/src/mame/tvgames/generalplus_gpl951xx.cpp b/src/mame/tvgames/generalplus_gpl951xx.cpp index 0d72f1f6b2f87..656402fe0a88f 100644 --- a/src/mame/tvgames/generalplus_gpl951xx.cpp +++ b/src/mame/tvgames/generalplus_gpl951xx.cpp @@ -256,6 +256,11 @@ ROM_START( pokebala ) ROM_LOAD16_WORD_SWAP( "mx25l25645g.u4", 0x0000, 0x2000000, CRC(e35d434a) SHA1(74061831b25476ec8aa7dec5f9d64ff79b0db88e) ) ROM_END +ROM_START( pokeissh ) + ROM_REGION16_BE(0x2000000, "maincpu:spidirect", ROMREGION_ERASE00) + ROM_LOAD16_WORD_SWAP( "mx25l25645g.u1", 0x0000, 0x2000000, CRC(1eaf3457) SHA1(a7f16ad7abfc13c67d8e50f462882a771b6777ab) ) +ROM_END + ROM_START( smkcatch ) ROM_REGION16_BE(0x800000, "maincpu:spidirect", ROMREGION_ERASE00 ) ROM_LOAD16_WORD_SWAP( "gpr25l64.u2", 0x0000, 0x800000, CRC(e2f52c4a) SHA1(f79862d27152cff8f96151c672d9762a3897a593) ) @@ -367,6 +372,8 @@ CONS(2021, pokgoget, 0, 0, generalplus_gpspi_direct, bfspyhnt, generalplu // ガチッとゲットだぜ! モンスターボール CONS(2021, pokebala, 0, 0, generalplus_gpspi_direct, bfspyhnt, generalplus_gpspi_direct_game_state, empty_init, "Takara Tomy", "Gachitto Get da ze! Monster Ball (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +CONS(2021, pokeissh, 0, 0, generalplus_gpspi_direct, bfspyhnt, generalplus_gpspi_direct_game_state, empty_init, "Takara Tomy", "Pokemon to Issho! Pokeball (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) + // 2020 (device) / 2021 (box) version of Sumikko Gurashi a cloud shaped device // Sumikko Gurashi - Sumikko Catch (すみっコぐらし すみっコキャッチ) 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) From 754521c58cf75d4ac5d00ec5279cddade1c0c349 Mon Sep 17 00:00:00 2001 From: David Haywood Date: Tue, 4 Nov 2025 16:33:46 +0000 Subject: [PATCH 6/6] 2 more --- src/mame/mame.lst | 2 ++ src/mame/tvgames/generalplus_gpl16250_spi.cpp | 10 ++++++++++ src/mame/tvgames/myaatari.cpp | 8 ++++++++ 3 files changed, 20 insertions(+) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 13be9b84d3499..6a5db6ec27ef3 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -47137,6 +47137,7 @@ wrlshunt @source:tvgames/generalplus_gpl16250_spi.cpp anpanbd +anpaneng anpanm15 bk139in1 bkrankp @@ -47245,6 +47246,7 @@ rs70_648 @source:tvgames/myaatari.cpp kuniotv myaatari +pachdmi @source:tvgames/pubint_storyreader.cpp pi_stry diff --git a/src/mame/tvgames/generalplus_gpl16250_spi.cpp b/src/mame/tvgames/generalplus_gpl16250_spi.cpp index b9046b7d03d73..2e4bf1aabd2a2 100644 --- a/src/mame/tvgames/generalplus_gpl16250_spi.cpp +++ b/src/mame/tvgames/generalplus_gpl16250_spi.cpp @@ -155,6 +155,14 @@ ROM_START( anpanm15 ) ROM_LOAD16_WORD_SWAP( "mx25l12835f.ic3", 0x0000, 0x1000000, CRC(47c36cbd) SHA1(f1cae506e21c1795401004d79f6bb1b1d982d657) ) ROM_END +ROM_START( anpaneng ) + ROM_REGION16_BE( 0x40000, "maincpu:internal", ROMREGION_ERASE00 ) + //ROM_LOAD16_WORD_SWAP( "internal.rom", 0x00000, 0x40000, NO_DUMP ) // used as bootstrap only (if it exists at all) + + ROM_REGION(0x1000000, "maincpu", ROMREGION_ERASE00) + ROM_LOAD16_WORD_SWAP( "w25q128fv.u11", 0x0000, 0x1000000, CRC(d204d646) SHA1(0b2f9f2d91a078b5fba687d73079b2b5665b33d4) ) +ROM_END + ROM_START( pokegach ) ROM_REGION16_BE( 0x40000, "maincpu:internal", ROMREGION_ERASE00 ) //ROM_LOAD16_WORD_SWAP( "internal.rom", 0x00000, 0x40000, NO_DUMP ) // used as bootstrap only (if it exists at all) @@ -275,6 +283,8 @@ CONS(2014, anpanbd, 0, 0, generalplus_gpspispi, gcm394, generalplus_gps // それいけ!アンパンマン」みんなで!育脳マット CONS(2015, anpanm15, 0, 0, generalplus_gpspispi, gcm394, generalplus_gpspispi_game_state, init_spi, "JoyPalette", "Anpanman: Minnade! Ikunou Mat (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +CONS(2013, anpaneng, 0, 0, generalplus_gpspispi, gcm394, generalplus_gpspispi_game_state, init_spi, "Sega Toys", "Anpanman: Touch de English (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) + CONS(2015, bkrankp, 0, 0, generalplus_gpspispi_bkrankp, gcm394, generalplus_gpspispi_bkrankp_game_state, init_spi, "Bandai", "Karaoke Ranking Party (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) CONS(2015, pokegach, 0, 0, generalplus_gpspispi_bkrankp, gcm394, generalplus_gpspispi_bkrankp_game_state, init_spi, "Tomy", "Pokegacha (20150902, Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) diff --git a/src/mame/tvgames/myaatari.cpp b/src/mame/tvgames/myaatari.cpp index 2df81b58508a2..7ba9dfe686b79 100644 --- a/src/mame/tvgames/myaatari.cpp +++ b/src/mame/tvgames/myaatari.cpp @@ -89,9 +89,17 @@ ROM_START( kuniotv ) ROM_IGNORE(0x100) ROM_END +ROM_START( pachdmi ) + ROM_REGION( 0x1000000, "maincpu", ROMREGION_ERASEFF ) + ROM_LOAD( "mx29lb160db.u2", 0x000000, 0x200000, CRC(b7d361b5) SHA1(92c20c58db24cc16f8c393334055a34cd35c720e) ) +ROM_END + } // anonymous namespace CONS( 2021, myaatari, 0, 0, myaatari, myaatari, myaatari_state, empty_init, "dreamGEAR", "My Arcade Atari (DGUNL-7013, Micro Player Pro)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) // HDMI stick, runs the Famicom titles using an emulator CONS( 2021, kuniotv, 0, 0, myaatari, myaatari, myaatari_state, empty_init, "Lithon", "Kunio-kun TV (5-in-1)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) + +// unbranded box, generic looking Pac-Man logo, runs arcade version with copyrights stripped out +CONS( 2021, pachdmi, 0, 0, myaatari, myaatari, myaatari_state, empty_init, "", "Pac-Man HDMI TV Plug & Play", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )