diff --git a/hash/easy_karaoke_cart.xml b/hash/easy_karaoke_cart.xml new file mode 100644 index 00000000000..79c2f216a77 --- /dev/null +++ b/hash/easy_karaoke_cart.xml @@ -0,0 +1,36 @@ + + + + + + + Golden Greats Vol.3 + 2004 + IVL Technologies + + + + + + + + + + + + Golden Greats Vol.4 + 2004 + IVL Technologies + + + + + + + + + + + diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index 0188badce30..82245dc559a 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -4068,6 +4068,7 @@ files { 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_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_romram.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/drivers/xavix2.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/actions_atj2279b.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/e100.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/epic14e.cpp", MAME_DIR .. "src/mame/drivers/esprit.cpp", diff --git a/src/devices/machine/generalplus_gpl16250soc.cpp b/src/devices/machine/generalplus_gpl16250soc.cpp index b8f7ef690cc..c86f3b477a7 100644 --- a/src/devices/machine/generalplus_gpl16250soc.cpp +++ b/src/devices/machine/generalplus_gpl16250soc.cpp @@ -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) { logerror("callback not hooked\n"); diff --git a/src/devices/machine/generalplus_gpl16250soc.h b/src/devices/machine/generalplus_gpl16250soc.h index 095b0692352..50b8f67d8a6 100644 --- a/src/devices/machine/generalplus_gpl16250soc.h +++ b/src/devices/machine/generalplus_gpl16250soc.h @@ -464,10 +464,34 @@ private: uint16_t spi_unk_7943_r(); }; +class generalplus_gpspi_direct_device : public sunplus_gcm394_base_device +{ +public: + template + 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(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(GPAC800, generalplus_gpac800_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 diff --git a/src/mame/drivers/easy_karaoke.cpp b/src/mame/drivers/easy_karaoke.cpp new file mode 100644 index 00000000000..15ad36e96b3 --- /dev/null +++ b/src/mame/drivers/easy_karaoke.cpp @@ -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 m_maincpu; + + required_device m_screen; + required_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 ) diff --git a/src/mame/drivers/generalplus_gpl16250_spi_direct.cpp b/src/mame/drivers/generalplus_gpl16250_spi_direct.cpp new file mode 100644 index 00000000000..702330fc9f8 --- /dev/null +++ b/src/mame/drivers/generalplus_gpl16250_spi_direct.cpp @@ -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) diff --git a/src/mame/drivers/nes_clone.cpp b/src/mame/drivers/nes_clone.cpp index bc9403546e4..ef97c551e1b 100644 --- a/src/mame/drivers/nes_clone.cpp +++ b/src/mame/drivers/nes_clone.cpp @@ -1074,6 +1074,21 @@ ROM_START( vtvsocr ) ROM_LOAD16_WORD_SWAP( "virtualtvsoccer.bin", 0x00000, 0x40000, CRC(2cfe42aa) SHA1(c2cafdbd5cc6491c94efd3f1be4b70c9de737b46) ) 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() { } @@ -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?, vtvsocr, 0, 0, nes_clone_vtvsocr, nes_clone, nes_clone_vtvsocr_state, init_nes_clone, "", "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 ) diff --git a/src/mame/drivers/st22xx_bbl338.cpp b/src/mame/drivers/st22xx_bbl338.cpp new file mode 100644 index 00000000000..dbb4615cded --- /dev/null +++ b/src/mame/drivers/st22xx_bbl338.cpp @@ -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 m_maincpu; + required_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 ) diff --git a/src/mame/drivers/vt1682.cpp b/src/mame/drivers/vt1682.cpp index 366af75ae70..a43ce42046e 100644 --- a/src/mame/drivers/vt1682.cpp +++ b/src/mame/drivers/vt1682.cpp @@ -5671,6 +5671,10 @@ static INPUT_PORTS_START( 110dance ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_NAME("Pad Right") PORT_16WAY INPUT_PORTS_END +static INPUT_PORTS_START( gm235upc ) + PORT_START("IN0") +INPUT_PORTS_END + static INPUT_PORTS_START( lxts3 ) PORT_START("IN0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) @@ -6156,6 +6160,15 @@ ROM_START( lxts3 ) 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 // 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. @@ -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 // has 21.477 Mhz XTAL -CONS( 200?, njp60in1, 0, 0, vt1682_lxts3, njp60in1, vt1682_lxts3_state, njp60in1_init, "", "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, "", "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. // 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 -CONS( 200?, unk1682, 0, 0, vt1682_unk1682, lxts3, vt1682_lxts3_state, unk1682_init, "", "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 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 ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 20766592e34..3855fae81c2 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -12558,6 +12558,9 @@ e9161 // @source:eacc.cpp eacc // +@source:easy_karaoke.cpp +easykara + @source:ec184x.cpp ec1840 // ec1841 // @@ -14924,6 +14927,10 @@ wrlshunt // Wireless: Hunting Video Game System @source:generalplus_gpl16250_spi.cpp bkrankp +@source:generalplus_gpl16250_spi_direct.cpp +fixitflx +wiwcs + @source:generalplus_gpl32612.cpp jak_swbstrik jak_tmnthp @@ -32271,12 +32278,15 @@ nes // Nintendo Entertainment System nespal // Nintendo Entertainment System PAL @source:nes_clone.cpp -pjoypj001 afbm7800 +dancmix3 dnce2000 -vtvppong -papsudok +hs36blk +hs36red nytsudo +papsudok +pjoypj001 +vtvppong vtvsocr @source:nes_sh6578.cpp @@ -38122,6 +38132,9 @@ sorcerera // Sorcerer with Dreamdisk fdc sorcererb // Sorcerer with Digitrio fdc sorcererd // Sorcerer with Micropolis fdc +@source:st22xx_bbl338.cpp +bbl338 + @source:storio.cpp innotab2 // (c) 2011 V.Tech storio // (c) 2011 V.Tech @@ -41601,23 +41614,24 @@ wrecking // (c) 1984 Nintendo dgun2572 @source:vt1682.cpp +110dance +dance555 +exsprt48 +gm235upc ii8in1 ii32in1 -zone7in1 -zone7in1p -dance555 -miwi2_16 -miwi2_7 intact89 intg5410 -exsprt48 itvg48 -xing48 -wowwg -110dance lxts3 -unk1682 +miwi2_16 +miwi2_7 njp60in1 +unk1682 +wowwg +xing48 +zone7in1 +zone7in1p @source:vt52.cpp vt52 // 1975 Digital Equipment Corporation diff --git a/src/mame/mess.flt b/src/mame/mess.flt index 8cb6226d8c9..1deb0466685 100644 --- a/src/mame/mess.flt +++ b/src/mame/mess.flt @@ -250,6 +250,7 @@ dvk_ksm.cpp e100.cpp e9161.cpp eacc.cpp +easy_karaoke.cpp ec184x.cpp ec65.cpp ec7915.cpp @@ -346,6 +347,7 @@ generalplus_gpl16250_nand.cpp generalplus_gpl16250_rom.cpp generalplus_gpl16250_romram.cpp generalplus_gpl16250_spi.cpp +generalplus_gpl16250_spi_direct.cpp generalplus_gpl32612.cpp geneve.cpp geniusiq.cpp @@ -946,6 +948,7 @@ spg2xx_zone.cpp squale.cpp ssem.cpp st17xx.cpp +st22xx_bbl338.cpp storio.cpp studio2.cpp sun1.cpp