new NOT WORKING machines (Plug and Play) (#7541)

* set additions, see main decription

* not working additions, see main description

* more not working bits, see main description

* more not working additions, see main description

* consistency fix
This commit is contained in:
David Haywood 2020-12-10 19:36:44 +00:00 committed by GitHub
parent c1741e625b
commit 7936345809
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 500 additions and 16 deletions

View File

@ -0,0 +1,36 @@
<?xml version="1.0"?>
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
<!--
license:CC0
-->
<softwarelist name="easy_karaoke_cart" description="IVL Technologies Easy Karaoke cartridges">
<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" />
</dataarea>
<dataarea name="mcu" size="0x2000">
<rom name="IC89LV52A-24PQ.U1" size="0x2000" status="nodump" />
</dataarea>
</part>
</software>
<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" />
</dataarea>
<dataarea name="mcu" size="0x2000">
<rom name="IC89LV52A-24PQ.U1" size="0x2000" status="nodump" />
</dataarea>
</part>
</software>
</softwarelist>

View File

@ -4068,6 +4068,7 @@ files {
MAME_DIR .. "src/mame/drivers/generalplus_gpl16250_nand.cpp", MAME_DIR .. "src/mame/drivers/generalplus_gpl16250_nand.cpp",
MAME_DIR .. "src/mame/drivers/generalplus_gpl16250_mobigo.cpp", MAME_DIR .. "src/mame/drivers/generalplus_gpl16250_mobigo.cpp",
MAME_DIR .. "src/mame/drivers/generalplus_gpl16250_spi.cpp", MAME_DIR .. "src/mame/drivers/generalplus_gpl16250_spi.cpp",
MAME_DIR .. "src/mame/drivers/generalplus_gpl16250_spi_direct.cpp",
MAME_DIR .. "src/mame/includes/generalplus_gpl16250.h", MAME_DIR .. "src/mame/includes/generalplus_gpl16250.h",
MAME_DIR .. "src/mame/includes/generalplus_gpl16250_romram.h", MAME_DIR .. "src/mame/includes/generalplus_gpl16250_romram.h",
MAME_DIR .. "src/mame/includes/generalplus_gpl16250_nand.h", MAME_DIR .. "src/mame/includes/generalplus_gpl16250_nand.h",
@ -4101,6 +4102,7 @@ files {
MAME_DIR .. "src/mame/machine/xavix2002_io.h", MAME_DIR .. "src/mame/machine/xavix2002_io.h",
MAME_DIR .. "src/mame/drivers/xavix2.cpp", MAME_DIR .. "src/mame/drivers/xavix2.cpp",
MAME_DIR .. "src/mame/drivers/titan_soc.cpp", MAME_DIR .. "src/mame/drivers/titan_soc.cpp",
MAME_DIR .. "src/mame/drivers/st22xx_bbl338.cpp",
MAME_DIR .. "src/mame/drivers/unk6502_st2xxx.cpp", MAME_DIR .. "src/mame/drivers/unk6502_st2xxx.cpp",
MAME_DIR .. "src/mame/drivers/actions_atj2279b.cpp", MAME_DIR .. "src/mame/drivers/actions_atj2279b.cpp",
MAME_DIR .. "src/mame/drivers/pubint_storyreader.cpp", MAME_DIR .. "src/mame/drivers/pubint_storyreader.cpp",
@ -4410,6 +4412,7 @@ files {
MAME_DIR .. "src/mame/drivers/dual68.cpp", MAME_DIR .. "src/mame/drivers/dual68.cpp",
MAME_DIR .. "src/mame/drivers/e100.cpp", MAME_DIR .. "src/mame/drivers/e100.cpp",
MAME_DIR .. "src/mame/drivers/eacc.cpp", MAME_DIR .. "src/mame/drivers/eacc.cpp",
MAME_DIR .. "src/mame/drivers/easy_karaoke.cpp",
MAME_DIR .. "src/mame/drivers/elwro800.cpp", MAME_DIR .. "src/mame/drivers/elwro800.cpp",
MAME_DIR .. "src/mame/drivers/epic14e.cpp", MAME_DIR .. "src/mame/drivers/epic14e.cpp",
MAME_DIR .. "src/mame/drivers/esprit.cpp", MAME_DIR .. "src/mame/drivers/esprit.cpp",

View File

@ -46,6 +46,35 @@ generalplus_gpspispi_device::generalplus_gpspispi_device(const machine_config &m
} }
uint16_t generalplus_gpspi_direct_device::spi_direct_7b40_r()
{
return machine().rand();
}
void generalplus_gpspi_direct_device::gpspi_direct_internal_map(address_map& map)
{
sunplus_gcm394_base_device::base_internal_map(map);
map(0x0079f4, 0x0079f4).r(FUNC(generalplus_gpspi_direct_device::spi_direct_7b40_r));
map(0x0079f5, 0x0079f5).r(FUNC(generalplus_gpspi_direct_device::spi_direct_7b40_r));
map(0x007b40, 0x007b40).r(FUNC(generalplus_gpspi_direct_device::spi_direct_7b40_r));
map(0x009000, 0x3fffff).rom().region("spidirect", 0);
}
DEFINE_DEVICE_TYPE(GP_SPI_DIRECT, generalplus_gpspi_direct_device, "gpac800spi_direct", "GeneralPlus GPL16250 (with direct SPI handling)")
generalplus_gpspi_direct_device::generalplus_gpspi_direct_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
sunplus_gcm394_base_device(mconfig, GP_SPISPI, tag, owner, clock, address_map_constructor(FUNC(generalplus_gpspi_direct_device::gpspi_direct_internal_map), this))
{
}
void sunplus_gcm394_base_device::default_cs_callback(uint16_t cs0, uint16_t cs1, uint16_t cs2, uint16_t cs3, uint16_t cs4) void sunplus_gcm394_base_device::default_cs_callback(uint16_t cs0, uint16_t cs1, uint16_t cs2, uint16_t cs3, uint16_t cs4)
{ {
logerror("callback not hooked\n"); logerror("callback not hooked\n");

View File

@ -464,10 +464,34 @@ private:
uint16_t spi_unk_7943_r(); uint16_t spi_unk_7943_r();
}; };
class generalplus_gpspi_direct_device : public sunplus_gcm394_base_device
{
public:
template <typename T>
generalplus_gpspi_direct_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, T &&screen_tag) :
generalplus_gpspi_direct_device(mconfig, tag, owner, clock)
{
m_screen.set_tag(std::forward<T>(screen_tag));
m_csbase = 0x30000;
}
generalplus_gpspi_direct_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
void gpspi_direct_internal_map(address_map &map);
//virtual void device_start() override;
//virtual void device_reset() override;
private:
uint16_t spi_direct_7b40_r();
};
DECLARE_DEVICE_TYPE(GCM394, sunplus_gcm394_device) DECLARE_DEVICE_TYPE(GCM394, sunplus_gcm394_device)
DECLARE_DEVICE_TYPE(GPAC800, generalplus_gpac800_device) DECLARE_DEVICE_TYPE(GPAC800, generalplus_gpac800_device)
DECLARE_DEVICE_TYPE(GP_SPISPI, generalplus_gpspispi_device) DECLARE_DEVICE_TYPE(GP_SPISPI, generalplus_gpspispi_device)
DECLARE_DEVICE_TYPE(GP_SPI_DIRECT, generalplus_gpspi_direct_device)
#endif // MAME_MACHINE_GENERALPLUS_GPL16250SOC_H #endif // MAME_MACHINE_GENERALPLUS_GPL16250SOC_H

View File

@ -0,0 +1,160 @@
// license:BSD-3-Clause
// copyright-holders:David Haywood
/******************************************************************************
Easy Karaoke (c)IVL Technologies
A version of this was also released in France by Lexibook, with French songs
This uses
Clarity 4.3 ARM
SVI1186
NV0165 0317
Sound Vision Inc.
an overview for 4.1 and 4.2 can be found at
http://web.archive.org/web/20031212120255fw_/http://www.soundvisioninc.com/OEMProducts/C4datasheet072401.pdf
Amusingly this datasheet advertises 'MAME Game emulation' as one of the capabilities despite the chip
clocking in at only 72Mhz
Support chip is
IVL
Technologies
ICS0253R1.0
UA1068ABK-RD
0327 A01491F
RAM chip is
IC42S16400-7T
ROM is
IVL
Technologies
ICS0303-B
(c)1985-1986
3415BAI THAI
--------------
Cartridges contain:
1x MX 29LV040TC-90 (Flash ROM)
1x HC573A
1x ICSI IC89LV52A-24PQ (80C52 MCU with 8KBytes Flash memory, can be read protected)
presumably manages a serial protocol to send data to the main unit
*******************************************************************************/
#include "emu.h"
#include "cpu/arm7/arm7.h"
#include "cpu/arm7/arm7core.h"
#include "bus/generic/slot.h"
#include "bus/generic/carts.h"
#include "screen.h"
#include "softlist.h"
#include "speaker.h"
class easy_karaoke_state : public driver_device
{
public:
easy_karaoke_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
, m_screen(*this, "screen")
, m_cart(*this, "cartslot")
, m_cart_region(nullptr)
{ }
void easy_karaoke(machine_config &config);
private:
virtual void machine_start() override;
virtual void machine_reset() override;
void easy_karaoke_base(machine_config &config);
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(cart_load);
required_device<cpu_device> m_maincpu;
required_device<screen_device> m_screen;
required_device<generic_slot_device> m_cart;
memory_region *m_cart_region;
uint32_t screen_update_storio(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
uint32_t easy_karaoke_state::screen_update_storio(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
return 0;
}
void easy_karaoke_state::machine_start()
{
// if there's a cart, override the standard mapping
if (m_cart && m_cart->exists())
{
m_cart_region = memregion(std::string(m_cart->tag()) + GENERIC_ROM_REGION_TAG);
}
}
void easy_karaoke_state::machine_reset()
{
}
DEVICE_IMAGE_LOAD_MEMBER(easy_karaoke_state::cart_load)
{
uint32_t size = m_cart->common_get_size("rom");
m_cart->rom_alloc(size, GENERIC_ROM16_WIDTH, ENDIANNESS_LITTLE);
m_cart->common_load_rom(m_cart->get_rom_base(), size, "rom");
return image_init_result::PASS;
}
static INPUT_PORTS_START( easy_karaoke )
INPUT_PORTS_END
void easy_karaoke_state::easy_karaoke_base(machine_config &config)
{
ARM9(config, m_maincpu, 72000000); // ARM 720 core
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(easy_karaoke_state::screen_update_storio));
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "easy_karaoke_cart");
m_cart->set_width(GENERIC_ROM16_WIDTH);
m_cart->set_device_load(FUNC(easy_karaoke_state::cart_load));
}
void easy_karaoke_state::easy_karaoke(machine_config &config)
{
easy_karaoke_base(config);
SOFTWARE_LIST(config, "cart_list").set_original("easy_karaoke_cart");
}
ROM_START( easykara )
ROM_REGION( 0x200000, "maincpu", ROMREGION_ERASEFF ) // unknown size
ROM_LOAD( "ics0303-b.bin", 0x000000, 0x200000, NO_DUMP )
ROM_END
CONS( 2004, easykara, 0, 0, easy_karaoke, easy_karaoke, easy_karaoke_state, empty_init, "IVL Technologies", "Easy Karaoke Groove Station", MACHINE_IS_SKELETON )

View File

@ -0,0 +1,107 @@
// license:BSD-3-Clause
// copyright-holders:David Haywood
/*
These seem to be GPL16250 related based on video register use
however the SPI ROM maps directly into CPU space, where you'd
expect internal ROM to be?!
*/
#include "emu.h"
#include "includes/generalplus_gpl16250.h"
class generalplus_gpspi_direct_game_state : public gcm394_game_state
{
public:
generalplus_gpspi_direct_game_state(const machine_config& mconfig, device_type type, const char* tag) :
gcm394_game_state(mconfig, type, tag)
{
}
void init_fif();
void generalplus_gpspi_direct(machine_config &config);
protected:
virtual void machine_start() override;
virtual void machine_reset() override;
private:
};
void generalplus_gpspi_direct_game_state::machine_start()
{
}
void generalplus_gpspi_direct_game_state::machine_reset()
{
m_maincpu->reset(); // reset CPU so vector gets read etc.
}
static INPUT_PORTS_START( gcm394 )
PORT_START("IN0")
PORT_START("IN1")
PORT_START("IN2")
INPUT_PORTS_END
void generalplus_gpspi_direct_game_state::generalplus_gpspi_direct(machine_config &config)
{
GP_SPI_DIRECT(config, m_maincpu, 96000000/2, m_screen);
m_maincpu->porta_in().set(FUNC(generalplus_gpspi_direct_game_state::porta_r));
m_maincpu->portb_in().set(FUNC(generalplus_gpspi_direct_game_state::portb_r));
m_maincpu->portc_in().set(FUNC(generalplus_gpspi_direct_game_state::portc_r));
m_maincpu->porta_out().set(FUNC(generalplus_gpspi_direct_game_state::porta_w));
m_maincpu->space_read_callback().set(FUNC(generalplus_gpspi_direct_game_state::read_external_space));
m_maincpu->space_write_callback().set(FUNC(generalplus_gpspi_direct_game_state::write_external_space));
m_maincpu->set_irq_acknowledge_callback(m_maincpu, FUNC(sunplus_gcm394_base_device::irq_vector_cb));
m_maincpu->add_route(ALL_OUTPUTS, "lspeaker", 0.5);
m_maincpu->add_route(ALL_OUTPUTS, "rspeaker", 0.5);
m_maincpu->set_bootmode(0);
m_maincpu->set_cs_config_callback(FUNC(gcm394_game_state::cs_callback));
FULL_MEMORY(config, m_memory).set_map(&generalplus_gpspi_direct_game_state::cs_map_base);
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
m_screen->set_refresh_hz(60);
m_screen->set_size(320*2, 262*2);
m_screen->set_visarea(0, (320*2)-1, 0, (240*2)-1);
m_screen->set_screen_update("maincpu", FUNC(sunplus_gcm394_device::screen_update));
m_screen->screen_vblank().set(m_maincpu, FUNC(sunplus_gcm394_device::vblank));
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
}
// Is there an internal ROM that gets mapped out or can this type really execute directly from scrambled SPI?
ROM_START( fixitflx )
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( "fixitfelix_md25q16csig_c84015.bin", 0x0000, 0x200000, CRC(605c6863) SHA1(4f6cc2e8388e20eb90c6b05265273650eeea56eb) )
ROM_END
ROM_START( wiwcs )
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( "wwcs.img", 0x0000, 0x800000, CRC(9b86bc45) SHA1(17721c662642a257d3e0f56e351a9a80d75d9110) )
ROM_REGION16_BE(0x400, "i2c", ROMREGION_ERASE00)
ROM_LOAD( "witw_eeprom.bin", 0x0000, 0x400, CRC(9426350b) SHA1(c481ded8b1f61fbf2403532dabb9c0a5c2a33fa2) )
ROM_END
void generalplus_gpspi_direct_game_state::init_fif()
{
uint16_t* spirom16 = (uint16_t*)memregion("maincpu:spidirect")->base();
for (int i = 0; i < 0x800000 / 2; i++)
{
spirom16[i] = bitswap<16>(spirom16[i] ^ 0xdd0d,
3, 1, 11, 9, 6, 14, 0, 2, 8, 7, 13, 15, 4, 5, 12, 10);
}
}
CONS(2017, fixitflx, 0, 0, generalplus_gpspi_direct, gcm394, generalplus_gpspi_direct_game_state , init_fif, "Basic Fun", "Fix It Felix Jr. (Mini Arcade)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
CONS(2018, wiwcs, 0, 0, generalplus_gpspi_direct, gcm394, generalplus_gpspi_direct_game_state , init_fif, "Basic Fun", "Where in the World is Carmen Sandiego? (Handheld)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)

View File

@ -1074,6 +1074,21 @@ ROM_START( vtvsocr )
ROM_LOAD16_WORD_SWAP( "virtualtvsoccer.bin", 0x00000, 0x40000, CRC(2cfe42aa) SHA1(c2cafdbd5cc6491c94efd3f1be4b70c9de737b46) ) ROM_LOAD16_WORD_SWAP( "virtualtvsoccer.bin", 0x00000, 0x40000, CRC(2cfe42aa) SHA1(c2cafdbd5cc6491c94efd3f1be4b70c9de737b46) )
ROM_END ROM_END
ROM_START( hs36red )
ROM_REGION( 0x200000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "mx29lv160cb.u3", 0x00000, 0x200000, CRC(318a81bb) SHA1(8b207e6a5fca53cbf383b79ff570fcdb89639fa3) )
ROM_END
ROM_START( hs36blk )
ROM_REGION( 0x200000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "mx29lv160cbtc.u3", 0x00000, 0x200000, CRC(b5cf91a0) SHA1(399f015fb0580c90928e7f3d73810cc4b6cc70d9) )
ROM_END
ROM_START( dancmix3 )
ROM_REGION( 0x100000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "e28f008sa.u5", 0x00000, 0x100000, CRC(faf6480c) SHA1(68bf79910e091443aecc7bf256cd5378a04c550e) )
ROM_END
void nes_clone_state::init_nes_clone() void nes_clone_state::init_nes_clone()
{ {
} }
@ -1097,3 +1112,12 @@ CONS( 200?, vtvppong, 0, 0, nes_clone_vtvppong, nes_clone, nes_clone_vtvpp
CONS( 200?, pjoypj001, 0, 0, nes_clone, nes_clone, nes_clone_state, init_nes_clone, "Trump Grand", "PowerJoy (PJ001, NES based plug & play)", MACHINE_NOT_WORKING ) CONS( 200?, pjoypj001, 0, 0, nes_clone, nes_clone, nes_clone_state, init_nes_clone, "Trump Grand", "PowerJoy (PJ001, NES based plug & play)", MACHINE_NOT_WORKING )
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?, vtvsocr, 0, 0, nes_clone_vtvsocr, nes_clone, nes_clone_vtvsocr_state, init_nes_clone, "<unknown>", "Virtual TV Soccer", MACHINE_NOT_WORKING )
// might be VT02 hardware, needs decrypting, possibly designed by wellminds (M350 etc.)
CONS( 2010, hs36red, 0, 0, nes_clone, nes_clone, nes_clone_state, init_nes_clone, "HengSheng", "HengSheng 36-in-1 (Red pad)", MACHINE_NOT_WORKING )
CONS( 2010, hs36blk, 0, 0, nes_clone, nes_clone, nes_clone_state, init_nes_clone, "HengSheng", "HengSheng 36-in-1 (Black pad)", MACHINE_NOT_WORKING )
// probably not a plain NES clone, uses extended opcodes found in later chips, but doesn't fit directly in either
// ROM seems very small for a device with sampled music, but size matches chip type
// does access NES-like addresses
CONS( 201?, dancmix3, 0, 0, nes_clone, nes_clone, nes_clone_state, init_nes_clone, "Venom", "TV Dance Mat 4 Games in 1 (Mix Party 3 / Dance Mix 3)", MACHINE_NOT_WORKING )

View File

@ -0,0 +1,68 @@
// license:BSD-3-Clause
// copyright-holders:David Haywood, AJR
#include "emu.h"
#include "cpu/m6502/st2205u.h"
#include "screen.h"
class st22xx_bbl338_state : public driver_device
{
public:
st22xx_bbl338_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 st22xx_bbl338(machine_config &config);
private:
void st22xx_bbl338_map(address_map &map);
required_device<st2xxx_device> m_maincpu;
required_device<screen_device> m_screen;
u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
void st22xx_bbl338_state::st22xx_bbl338_map(address_map &map)
{
map(0x000000, 0x1fffff).rom().region("maincpu", 0);
}
static INPUT_PORTS_START(st22xx_bbl338)
INPUT_PORTS_END
u32 st22xx_bbl338_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
return 0;
}
void st22xx_bbl338_state::st22xx_bbl338(machine_config &config)
{
ST2205U(config, m_maincpu, 4000000); // likely higher clock
m_maincpu->set_addrmap(AS_DATA, &st22xx_bbl338_state::st22xx_bbl338_map);
SCREEN(config, m_screen, SCREEN_TYPE_LCD);
m_screen->set_refresh_hz(60);
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
m_screen->set_size(160, 128); // incorrect
m_screen->set_visarea(0, 160 - 1, 0, 128 - 1);
m_screen->set_screen_update(FUNC(st22xx_bbl338_state::screen_update));
}
ROM_START( bbl338 )
// is internal ROM used? the code in the external ROM contains a bank for 4000-6fff including vectors at least.
// it sets stack to 14f, but quickly jumps to 150 in RAM where there is no code? was something meant to have copied
// code there earlier?
ROM_REGION( 0x200000, "maincpu", 0 )
ROM_LOAD( "en29lv160ab.u1", 0x000000, 0x200000, CRC(2c73e16c) SHA1(e2c69b3534e32ef384c0c2f5618118a419326e3a) )
ROM_END
// this is uses a higher resolution display than the common units, but not as high as the SunPlus based ones
COMP( 201?, bbl338, 0, 0, st22xx_bbl338, st22xx_bbl338, st22xx_bbl338_state, empty_init, "BaoBaoLong", "Portable Game Player BBL-338 (BaoBaoLong, 48-in-1)", MACHINE_IS_SKELETON )

View File

@ -5671,6 +5671,10 @@ static INPUT_PORTS_START( 110dance )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_NAME("Pad Right") PORT_16WAY PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_NAME("Pad Right") PORT_16WAY
INPUT_PORTS_END INPUT_PORTS_END
static INPUT_PORTS_START( gm235upc )
PORT_START("IN0")
INPUT_PORTS_END
static INPUT_PORTS_START( lxts3 ) static INPUT_PORTS_START( lxts3 )
PORT_START("IN0") PORT_START("IN0")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 )
@ -6156,6 +6160,15 @@ ROM_START( lxts3 )
ROM_END ROM_END
ROM_START( gm235upc )
ROM_REGION( 0x800000, "mainrom", 0 )
ROM_LOAD( "39vf3201.u3", 0x00000, 0x400000, CRC(182f8a2c) SHA1(7be56e1063cc8dbb78c419f5adc05b8cd65c8e2f))
// also has RAM
ROM_END
// TODO: this is a cartridge based system (actually, verify this, it seems some versions simply had built in games) move these to SL if verified as from cartridge config // TODO: this is a cartridge based system (actually, verify this, it seems some versions simply had built in games) move these to SL if verified as from cartridge config
// actually it appears that for the cart based systems these are 'fake systems' anyway, where the base unit is just a Famiclone but as soon as you plug in a cart none of // actually it appears that for the cart based systems these are 'fake systems' anyway, where the base unit is just a Famiclone but as soon as you plug in a cart none of
// the internal hardware gets used at all. // the internal hardware gets used at all.
@ -6228,12 +6241,15 @@ CONS( 200?, dance555, 0, 0, vt1682_exsportp, dance555, vt1682_exsport_state
// manual explicitly states it has NTSC output only (unit can be connected to a TV) and both Ranning Horse + Explosion (Bomberman) are the NTSC versions // manual explicitly states it has NTSC output only (unit can be connected to a TV) and both Ranning Horse + Explosion (Bomberman) are the NTSC versions
// has 21.477 Mhz XTAL // has 21.477 Mhz XTAL
CONS( 200?, njp60in1, 0, 0, vt1682_lxts3, njp60in1, vt1682_lxts3_state, njp60in1_init, "<unknown>", "NJ Pocket 60-in-1 handheld 'X zero' (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND) // RNG + linescroll issues CONS( 200?, njp60in1, 0, 0, vt1682_lxts3, njp60in1, vt1682_lxts3_state, njp60in1_init, "<unknown>", "NJ Pocket 60-in-1 handheld 'X zero' (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND) // linescroll issues
// this appears to be related to the NJ Pocket, claims 101-in-1 but has some duplicates. // this appears to be related to the NJ Pocket, claims 101-in-1 but has some duplicates.
// Like the 'Wow Wireless gaming' it incorrectly mixes the PAL version of 'Ranning Horse' with the NTSC version of 'Bomberman', it has no TV output. // Like the 'Wow Wireless gaming' it incorrectly mixes the PAL version of 'Ranning Horse' with the NTSC version of 'Bomberman', it has no TV output.
// has 26.6017 Mhz (6xPAL) XTAL // has 26.6017 Mhz (6xPAL) XTAL
CONS( 200?, unk1682, 0, 0, vt1682_unk1682, lxts3, vt1682_lxts3_state, unk1682_init, "<unknown>", "unknown VT1682-based 101-in-1 handheld (PAL)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND) // RNG + linescroll issues CONS( 200?, unk1682, 0, 0, vt1682_unk1682, lxts3, vt1682_lxts3_state, unk1682_init, "<unknown>", "unknown VT1682-based 101-in-1 handheld (PAL)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND) // linescroll issues
CONS( 2010, lxts3, 0, 0, vt1682_lxts3, lxts3, vt1682_lxts3_state, regular_init, "Lexibook", "Toy Story 3 (Lexibook)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // RNG + linescroll issues CONS( 2010, lxts3, 0, 0, vt1682_lxts3, lxts3, vt1682_lxts3_state, regular_init, "Lexibook", "Toy Story 3 (Lexibook)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // linescroll issues
// there are products on SunPlus type hardware with nearly identical shells 'Mi DiGi World' / 'Mi Digi Diary'
// needs IO ports on sound CPU side, needs write access to space for RAM (inputs are 'mini-keyboard' style)
CONS( 200?, gm235upc, 0, 0, vt1682_dance, gm235upc, vt1682_dance_state, regular_init, "TimeTop", "Ultimate Pocket Console GM-235", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )

View File

@ -12558,6 +12558,9 @@ e9161 //
@source:eacc.cpp @source:eacc.cpp
eacc // eacc //
@source:easy_karaoke.cpp
easykara
@source:ec184x.cpp @source:ec184x.cpp
ec1840 // ec1840 //
ec1841 // ec1841 //
@ -14924,6 +14927,10 @@ wrlshunt // Wireless: Hunting Video Game System
@source:generalplus_gpl16250_spi.cpp @source:generalplus_gpl16250_spi.cpp
bkrankp bkrankp
@source:generalplus_gpl16250_spi_direct.cpp
fixitflx
wiwcs
@source:generalplus_gpl32612.cpp @source:generalplus_gpl32612.cpp
jak_swbstrik jak_swbstrik
jak_tmnthp jak_tmnthp
@ -32271,12 +32278,15 @@ nes // Nintendo Entertainment System
nespal // Nintendo Entertainment System PAL nespal // Nintendo Entertainment System PAL
@source:nes_clone.cpp @source:nes_clone.cpp
pjoypj001
afbm7800 afbm7800
dancmix3
dnce2000 dnce2000
vtvppong hs36blk
papsudok hs36red
nytsudo nytsudo
papsudok
pjoypj001
vtvppong
vtvsocr vtvsocr
@source:nes_sh6578.cpp @source:nes_sh6578.cpp
@ -38122,6 +38132,9 @@ sorcerera // Sorcerer with Dreamdisk fdc
sorcererb // Sorcerer with Digitrio fdc sorcererb // Sorcerer with Digitrio fdc
sorcererd // Sorcerer with Micropolis fdc sorcererd // Sorcerer with Micropolis fdc
@source:st22xx_bbl338.cpp
bbl338
@source:storio.cpp @source:storio.cpp
innotab2 // (c) 2011 V.Tech innotab2 // (c) 2011 V.Tech
storio // (c) 2011 V.Tech storio // (c) 2011 V.Tech
@ -41601,23 +41614,24 @@ wrecking // (c) 1984 Nintendo
dgun2572 dgun2572
@source:vt1682.cpp @source:vt1682.cpp
110dance
dance555
exsprt48
gm235upc
ii8in1 ii8in1
ii32in1 ii32in1
zone7in1
zone7in1p
dance555
miwi2_16
miwi2_7
intact89 intact89
intg5410 intg5410
exsprt48
itvg48 itvg48
xing48
wowwg
110dance
lxts3 lxts3
unk1682 miwi2_16
miwi2_7
njp60in1 njp60in1
unk1682
wowwg
xing48
zone7in1
zone7in1p
@source:vt52.cpp @source:vt52.cpp
vt52 // 1975 Digital Equipment Corporation vt52 // 1975 Digital Equipment Corporation

View File

@ -250,6 +250,7 @@ dvk_ksm.cpp
e100.cpp e100.cpp
e9161.cpp e9161.cpp
eacc.cpp eacc.cpp
easy_karaoke.cpp
ec184x.cpp ec184x.cpp
ec65.cpp ec65.cpp
ec7915.cpp ec7915.cpp
@ -346,6 +347,7 @@ generalplus_gpl16250_nand.cpp
generalplus_gpl16250_rom.cpp generalplus_gpl16250_rom.cpp
generalplus_gpl16250_romram.cpp generalplus_gpl16250_romram.cpp
generalplus_gpl16250_spi.cpp generalplus_gpl16250_spi.cpp
generalplus_gpl16250_spi_direct.cpp
generalplus_gpl32612.cpp generalplus_gpl32612.cpp
geneve.cpp geneve.cpp
geniusiq.cpp geniusiq.cpp
@ -946,6 +948,7 @@ spg2xx_zone.cpp
squale.cpp squale.cpp
ssem.cpp ssem.cpp
st17xx.cpp st17xx.cpp
st22xx_bbl338.cpp
storio.cpp storio.cpp
studio2.cpp studio2.cpp
sun1.cpp sun1.cpp