mirror of
https://github.com/holub/mame
synced 2025-04-16 05:24:54 +03:00
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:
parent
c1741e625b
commit
7936345809
36
hash/easy_karaoke_cart.xml
Normal file
36
hash/easy_karaoke_cart.xml
Normal 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>
|
@ -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",
|
||||
|
@ -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");
|
||||
|
@ -464,10 +464,34 @@ private:
|
||||
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(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
|
||||
|
160
src/mame/drivers/easy_karaoke.cpp
Normal file
160
src/mame/drivers/easy_karaoke.cpp
Normal 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 )
|
107
src/mame/drivers/generalplus_gpl16250_spi_direct.cpp
Normal file
107
src/mame/drivers/generalplus_gpl16250_spi_direct.cpp
Normal 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)
|
@ -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, "<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 )
|
||||
|
68
src/mame/drivers/st22xx_bbl338.cpp
Normal file
68
src/mame/drivers/st22xx_bbl338.cpp
Normal 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 )
|
@ -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, "<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.
|
||||
// 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>", "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 )
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user