From 0747c3ab9896726a23845f8836a852a7b89fb544 Mon Sep 17 00:00:00 2001 From: David Haywood <28625134+DavidHaywood@users.noreply.github.com> Date: Tue, 10 Dec 2019 16:36:31 +0000 Subject: new sets from Sean Riddle, mostly NOT WORKING for now (#6032) * stuff from Sean, will credit later (nw) * (nw) * (nw) * some more SunPlus stuff with NAND type roms (gpnandnand strings in them, need bootstrap) * possible hardware names (nw) * some kind of ARM based GeneralPlus (nw) * proper names (nw) * (nw0 * this is some kind of enhanced chipset, not 100% sure it's VT tho (nw) --- hash/gcslottv.xml | 57 ++++++++++ scripts/target/mame/mess.lua | 1 + src/mame/drivers/generalplus_gpl32612.cpp | 91 ++++++++++++++++ src/mame/drivers/nes_vt.cpp | 86 +++++++++++++-- src/mame/drivers/spg110.cpp | 12 +++ src/mame/drivers/sunplus_gcm394.cpp | 43 +++++++- src/mame/drivers/vii.cpp | 174 +++++++++++++++++++++++++++++- src/mame/drivers/vt1682.cpp | 74 +++++++++++-- src/mame/drivers/xavix.cpp | 17 +++ src/mame/includes/xavix.h | 1 + src/mame/mame.lst | 18 +++- 11 files changed, 556 insertions(+), 18 deletions(-) create mode 100644 hash/gcslottv.xml create mode 100644 src/mame/drivers/generalplus_gpl32612.cpp diff --git a/hash/gcslottv.xml b/hash/gcslottv.xml new file mode 100644 index 00000000000..bb9ab816743 --- /dev/null +++ b/hash/gcslottv.xml @@ -0,0 +1,57 @@ + + + + + + + Aladdin TV + 2002 + Sammy + + + + + + + + + Ginginmaru TV + 2002 + Sammy + + + + + + + + + + Salaryman Kintaro + 2002 + Sammy + + + + + + + + + + Moju-o TV + 2002 + Sammy + + + + + + + + + diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index 15887029603..831e5ae4b66 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -3750,6 +3750,7 @@ files { MAME_DIR .. "src/mame/drivers/spg110.cpp", MAME_DIR .. "src/mame/drivers/vii.cpp", MAME_DIR .. "src/mame/drivers/sunplus_gcm394.cpp", + MAME_DIR .. "src/mame/drivers/generalplus_gpl32612.cpp", MAME_DIR .. "src/mame/drivers/xavix.cpp", MAME_DIR .. "src/mame/video/xavix.cpp", MAME_DIR .. "src/mame/machine/xavix.cpp", diff --git a/src/mame/drivers/generalplus_gpl32612.cpp b/src/mame/drivers/generalplus_gpl32612.cpp new file mode 100644 index 00000000000..6506043139f --- /dev/null +++ b/src/mame/drivers/generalplus_gpl32612.cpp @@ -0,0 +1,91 @@ +// license:BSD-3-Clause +// copyright-holders:David Haywood + + +/***************************************************************************** + + unlike earlier SunPlus / GeneralPlus based SoCs this one seems to be + ARM based + +*****************************************************************************/ + + +#include "emu.h" + +#include "cpu/arm7/arm7.h" +#include "cpu/arm7/arm7core.h" + +#include "screen.h" +#include "speaker.h" + +class generalplus_gpl32612_game_state : public driver_device +{ +public: + generalplus_gpl32612_game_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 gpl32612(machine_config &config); + +private: + virtual void machine_start() override; + virtual void machine_reset() override; + + required_device m_maincpu; + + required_device m_screen; + + uint32_t screen_update_gpl32612(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); +}; + +uint32_t generalplus_gpl32612_game_state::screen_update_gpl32612(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) +{ + return 0; +} + +void generalplus_gpl32612_game_state::machine_start() +{ +} + +void generalplus_gpl32612_game_state::machine_reset() +{ +} + +static INPUT_PORTS_START( gpl32612 ) +INPUT_PORTS_END + + +void generalplus_gpl32612_game_state::gpl32612(machine_config &config) +{ + ARM9(config, m_maincpu, 240000000); // unknown core / frequency, but ARM based + + 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(generalplus_gpl32612_game_state::screen_update_gpl32612)); + + SPEAKER(config, "lspeaker").front_left(); + SPEAKER(config, "rspeaker").front_right(); +} + +// NAND dumps, so there will be a bootloader / boot strap at least + +ROM_START( jak_tmnthp ) + ROM_REGION( 0x8400000, "maincpu", ROMREGION_ERASEFF ) + ROM_LOAD( "tmntheroportal.bin", 0x000000, 0x8400000, CRC(75ec7127) SHA1(cd05f55a1f5a7fd3d1b0658ad6805b8777857a7e) ) +ROM_END + +ROM_START( jak_swbstrik ) + ROM_REGION( 0x8400000, "maincpu", ROMREGION_ERASEFF ) + ROM_LOAD( "starwarsblaster.bin", 0x000000, 0x8400000, CRC(02c3c4d6) SHA1(a6ae05a7d7b2015023113f6baad25458f3c01102) ) +ROM_END + +// year, name, parent, compat, machine, input, class, init, company, fullname, flags +CONS( 200?, jak_tmnthp, 0, 0, gpl32612, gpl32612, generalplus_gpl32612_game_state, empty_init, "JAKKS Pacific Inc", "Teenage Mutanat Ninja Turtles Hero Portal", MACHINE_IS_SKELETON ) +CONS( 200?, jak_swbstrik, 0, 0, gpl32612, gpl32612, generalplus_gpl32612_game_state, empty_init, "JAKKS Pacific Inc", "Star Wars Blaster Strike", MACHINE_IS_SKELETON ) +// Hero Portal Dreamworks Dragons +// Hero Portal Power Rangers +// Hero Portal DC Super Heroes diff --git a/src/mame/drivers/nes_vt.cpp b/src/mame/drivers/nes_vt.cpp index c172b778d1a..7ab17fab4ea 100644 --- a/src/mame/drivers/nes_vt.cpp +++ b/src/mame/drivers/nes_vt.cpp @@ -90,6 +90,7 @@ public: m_exin2(*this, "EXTRAIN2"), m_exin3(*this, "EXTRAIN3"), m_prg(*this, "prg"), + m_initial_e000_bank(0xff), m_ntram(nullptr), m_chrram(nullptr), m_prgbank0(*this, "prg_bank0"), @@ -165,6 +166,10 @@ protected: void nes_vt_xx_map(address_map& map); + /* Misc */ + DECLARE_READ8_MEMBER(rs232flags_region_r); + + uint8_t m_initial_e000_bank; private: /* APU handling */ DECLARE_WRITE_LINE_MEMBER(apu_irq); @@ -177,8 +182,6 @@ private: DECLARE_WRITE8_MEMBER(extraout_01_w); DECLARE_WRITE8_MEMBER(extraout_23_w); - /* Misc */ - DECLARE_READ8_MEMBER(rs232flags_region_r); DECLARE_WRITE8_MEMBER(chr_w); @@ -212,7 +215,7 @@ private: int calculate_real_video_address(int addr, int extended, int readtype); - + required_memory_bank m_prgbank0; required_memory_bank m_prgbank1; required_memory_bank m_prgbank2; @@ -238,6 +241,22 @@ protected: private: }; +class nes_vt_ts_state : public nes_vt_state +{ +public: + nes_vt_ts_state(const machine_config& mconfig, device_type type, const char* tag) : + nes_vt_state(mconfig, type, tag) + { + m_initial_e000_bank = 0x03; // or the banking is just different / ROM is scrambled + } + + void nes_vt_ts(machine_config& config); + +protected: + void nes_vt_ts_map(address_map& map); + +private: +}; class nes_vt_pjoy_state : public nes_vt_state @@ -350,10 +369,12 @@ public: void nes_vt_hh(machine_config& config); void nes_vt_vg(machine_config& config); + void nes_vt_vg_baddma(machine_config& config); void nes_vt_fp(machine_config& config); private: void nes_vt_hh_map(address_map& map); + void nes_vt_hh_baddma_map(address_map& map); void nes_vt_fp_map(address_map& map); DECLARE_WRITE8_MEMBER(vtfp_411e_w); @@ -458,7 +479,7 @@ void nes_vt_state::update_banks() m_prgbank2->set_entry((amod | get_banks(bank)) & (m_numbanks-1)); // e000 - ffff - bank = 0xff; + bank = m_initial_e000_bank; m_prgbank3->set_entry((amod | get_banks(bank)) & (m_numbanks-1)); } @@ -1580,12 +1601,20 @@ void nes_vt_hh_state::nes_vt_hh_map(address_map &map) map(0x4034, 0x4034).w(FUNC(nes_vt_hh_state::vt03_4034_w)); map(0x4014, 0x4014).r(FUNC(nes_vt_hh_state::psg1_4014_r)).w(FUNC(nes_vt_hh_state::vt_fixed_dma_w)); - map(0x414A, 0x414A).r(FUNC(nes_vt_hh_state::vthh_414a_r)); + map(0x4119, 0x4119).r(FUNC(nes_vt_hh_state::rs232flags_region_r)); + map(0x414a, 0x414a).r(FUNC(nes_vt_hh_state::vthh_414a_r)); map(0x411d, 0x411d).w(FUNC(nes_vt_hh_state::vtfp_411d_w)); map(0x6000, 0x7fff).ram(); } +void nes_vt_hh_state::nes_vt_hh_baddma_map(address_map &map) +{ + nes_vt_hh_map(map); + map(0x4014, 0x4014).w(FUNC(nes_vt_hh_state::vt_dma_w)); +} + + READ8_MEMBER(nes_vt_hh_state::vtfp_4119_r) { // would be PAL/NTSC etc. in base system, maybe different here? @@ -1635,6 +1664,16 @@ void nes_vt_dg_state::nes_vt_fa_map(address_map &map) map(0x4242, 0x4242).w(FUNC(nes_vt_dg_state::vtfp_4242_w)); } +void nes_vt_ts_state::nes_vt_ts_map(address_map& map) +{ + nes_vt_map(map); + map(0x0800, 0x1fff).ram(); // how much RAM? + + map(0x5000, 0x57ff).ram(); // plays music if you map this as RAM + + map(0x2040, 0x207f).ram(); // strange regs in vdp area +} + void nes_vt_state::prg_map(address_map &map) { map(0x0000, 0x1fff).bankr("prg_bank0"); @@ -1833,6 +1872,14 @@ void nes_vt_hh_state::nes_vt_vg(machine_config &config) m_ppu->set_palette_mode(PAL_MODE_NEW_VG); } +void nes_vt_hh_state::nes_vt_vg_baddma(machine_config &config) +{ + nes_vt_dg(config); + m_maincpu->set_addrmap(AS_PROGRAM, &nes_vt_hh_state::nes_vt_hh_baddma_map); + + m_ppu->set_palette_mode(PAL_MODE_NEW_VG); +} + // New mystery handheld architecture, VTxx derived void nes_vt_hh_state::nes_vt_hh(machine_config &config) { @@ -1877,6 +1924,12 @@ void nes_vt_vh2009_state::nes_vt_vh2009(machine_config &config) //m_ppu->set_palette_mode(PAL_MODE_NEW_VG); // gives better title screens, but worse ingame, must be able to switch } +void nes_vt_ts_state::nes_vt_ts(machine_config &config) +{ + nes_vt(config); + + m_maincpu->set_addrmap(AS_PROGRAM, &nes_vt_ts_state::nes_vt_ts_map); +} static INPUT_PORTS_START( nes_vt_fp ) PORT_START("CARTSEL") @@ -2132,11 +2185,18 @@ ROM_START( ddrstraw ) ROM_LOAD( "straws-ddr.bin", 0x00000, 0x200000, CRC(ce94e53a) SHA1(10c6970205a4df28086029c0a348225f57bf0cc5) ) // 26LV160 Flash ROM_END +ROM_START( majkon ) + ROM_REGION( 0x200000, "mainrom", ROMREGION_ERASEFF ) + ROM_LOAD( "konamicollectorsseries.bin", 0x00000, 0x100000, CRC(47505e51) SHA1(3bfb05d7cfa2bb4c115335f0383fa4aa59db0b28) ) +ROM_END + ROM_START( ablping ) ROM_REGION( 0x200000, "mainrom", 0 ) ROM_LOAD( "abl_pingpong.bin", 0x00000, 0x200000, CRC(b31de1fb) SHA1(94e8afb2315ba1fa0892191c8e1832391e401c70) ) ROM_END + + #if 0 ROM_START( mc_15kin1 ) ROM_REGION( 0x200000, "mainrom", 0 ) @@ -2218,6 +2278,12 @@ ROM_START( zdog ) ROM_LOAD( "zdog.bin", 0x00000, 0x400000, CRC(5ed3485b) SHA1(5ab0e9370d4ed1535205deb0456878c4e400dd81) ) ROM_END +ROM_START( ts_handy11 ) + ROM_REGION( 0x100000, "mainrom", 0 ) + ROM_LOAD( "tvplaypowercontroller.bin", 0x00000, 0x100000, CRC(9c7fe9ff) SHA1(c872e91ca835b66c9dd3b380e8374b51f12bcae0) ) // 29LV008B +ROM_END + + // earlier version of vdogdemo CONS( 200?, vdogdeme, 0, 0, nes_vt, nes_vt, nes_vt_state, empty_init, "VRT", "V-Dog (prototype, earlier)", MACHINE_NOT_WORKING ) @@ -2247,8 +2313,10 @@ CONS( 200?, mc_dgear, 0, 0, nes_vt, nes_vt, nes_vt_state, empty_init, "dre // all software in this runs in the VT03 enhanced mode, it also includes an actual licensed VT03 port of Frogger. // all games work OK except Frogger which has serious graphical issues -CONS( 2006, vgtablet, 0, 0, nes_vt_vg, nes_vt, nes_vt_hh_state, empty_init, "Performance Designed Products (licensed by Konami)", "VG Pocket Tablet (VG-4000)", MACHINE_NOT_WORKING ) +CONS( 2006, vgtablet, 0, 0, nes_vt_vg, nes_vt, nes_vt_hh_state, empty_init, "Performance Designed Products (licensed by Konami)", "VG Pocket Tablet (VG-4000)", MACHINE_NOT_WORKING ) // raster timing is broken for Frogger // There is a 2004 Majesco Frogger "TV game" that appears to contain the same version of Frogger as above but with no other games, so probably fits here. +CONS( 2004, majkon, 0, 0, nes_vt_vg_baddma, nes_vt, nes_vt_hh_state, empty_init, "Majesco (licensed from Konami)", "Konami Collector's Series Arcade Advanced", MACHINE_NOT_WORKING ) // raster timing is broken for Frogger, palette issues + // this is VT09 based // it boots, most games correct, but palette issues in some games still (usually they appear greyscale) @@ -2257,6 +2325,7 @@ CONS( 2009, cybar120, 0, 0, nes_vt_vg, nes_vt, nes_vt_hh_state, empty_init, " CONS( 2005, vgpocket, 0, 0, nes_vt_vg, nes_vt, nes_vt_hh_state, empty_init, "Performance Designed Products", "VG Pocket (VG-2000)", MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS ) CONS( 200?, vgpmini, 0, 0, nes_vt_vg, nes_vt, nes_vt_hh_state, empty_init, "Performance Designed Products", "VG Pocket Mini (VG-1500)", MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS ) + // Runs fine, non-sport 121 in 1 games perfect, but minor graphical issues in // sport games, also no sound in menu or sport games due to missing PCM // emulation @@ -2314,6 +2383,8 @@ CONS( 200?, gprnrs16, 0, 0, nes_vt, nes_vt, nes_vt_state, empty_ini CONS( 2006, ddrdismx, 0, 0, nes_vt_ddr, nes_vt, nes_vt_state, empty_init, "Majesco (licensed from Konami, Disney)", "Dance Dance Revolution Disney Mix", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // shows (c)2001 Disney onscreen, but that's recycled art from the Playstation release, actual release was 2006 CONS( 2006, ddrstraw, 0, 0, nes_vt_ddr, nes_vt, nes_vt_state, empty_init, "Majesco (licensed from Konami)", "Dance Dance Revolution Strawberry Shortcake", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) + + // unsorted, these were all in nes.xml listed as ONE BUS systems CONS( 200?, mc_dg101, 0, 0, nes_vt, nes_vt, nes_vt_state, empty_init, "dreamGEAR", "dreamGEAR 101 in 1", MACHINE_IMPERFECT_GRAPHICS ) // dreamGear, but no enhanced games? CONS( 200?, mc_aa2, 0, 0, nes_vt, nes_vt, nes_vt_state, empty_init, "", "100 in 1 Arcade Action II (AT-103)", MACHINE_IMPERFECT_GRAPHICS ) @@ -2356,3 +2427,6 @@ CONS( 2017, fapocket, 0, 0, nes_vt_fa, nes_vt_fa, nes_vt_dg_state, emp // Plays intro music but then crashes. same hardware as SY-88x but uses more features CONS( 2016, mog_m320, 0, 0, nes_vt_hh, nes_vt, nes_vt_hh_state, empty_init, "MOGIS", "MOGIS M320 246 in 1 Handheld", MACHINE_NOT_WORKING ) + +// uncertain VT type, odd accesses above PPU space, non-standard first bank (or scrambling) possibly newer than 2001 but most games have a 2001 copyright. Most games are higher colour versions of NES games, so it's an enhanced NES chipset at least but maybe not VT? +CONS( 2001, ts_handy11, 0, 0, nes_vt_ts, nes_vt, nes_vt_ts_state, empty_init, "Techno Source", "Handy Boy 11-in-1 (TV Play Power)", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/spg110.cpp b/src/mame/drivers/spg110.cpp index e496e0f434a..088b5175041 100644 --- a/src/mame/drivers/spg110.cpp +++ b/src/mame/drivers/spg110.cpp @@ -525,6 +525,14 @@ ROM_START( conyteni ) // MCU (I/O?) read protected TODO: add NO_DUMP ROM_END +ROM_START( conyping ) + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "tvvirtualpingpong.bin", 0x000000, 0x200000, CRC(11050f17) SHA1(929f0d8599b7380b5994684424bb91063c4f6569) ) + + // MCU (I/O?) read protected TODO: add NO_DUMP +ROM_END + + // JAKKS Pacific Inc TV games CONS( 2004, jak_capb, 0, 0, spg110_base, jak_capb, spg110_game_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "Classic Arcade Pinball (JAKKS Pacific TV Game)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) @@ -534,3 +542,7 @@ CONS( 2004, jak_spdmo, jak_spdm, 0, spg110_base, jak_spdmo, spg110_game_state, e // this was sold by SDW Games for the US market, ROM not yet verified to be the same, also appears in some mutligames? CONS( 2003, conyteni, 0, 0, spg110_base, conyteni, spg110_game_state, empty_init, "Conny", "TV Virtual Tennis", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // needs motion inputs, and video fixes, setting to PAL + +// from a US SDW Games unit, has SDW Games banners in background so ROM might differ to other regsions +CONS( 2003, conyping, 0, 0, spg110_base, conyteni, spg110_game_state, empty_init, "Conny / SDW Games", "Virtual Ping Pong (Conny / SDW Games)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) + diff --git a/src/mame/drivers/sunplus_gcm394.cpp b/src/mame/drivers/sunplus_gcm394.cpp index dfc1a220d72..0dfa49bc77b 100644 --- a/src/mame/drivers/sunplus_gcm394.cpp +++ b/src/mame/drivers/sunplus_gcm394.cpp @@ -37,6 +37,8 @@ public: void base(machine_config &config); + void nand_init(); + protected: virtual void machine_start() override; virtual void machine_reset() override; @@ -492,11 +494,48 @@ ROM_START( wlsair60 ) ROM_LOAD16_WORD_SWAP( "wlsair60.nand", 0x0000, 0x8400000, CRC(eec23b97) SHA1(1bb88290cf54579a5bb51c08a02d793cd4d79f7a) ) ROM_END +ROM_START( jak_gtg ) + ROM_REGION( 0x4200000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "goldentee.bin", 0x0000, 0x4200000, CRC(87d5e815) SHA1(5dc46cd753b791449cc41d5eff4928c0dcaf35c0) ) +ROM_END + +ROM_START( jak_car2 ) + ROM_REGION( 0x4200000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "cars2.bin", 0x0000, 0x4200000, CRC(4d610e09) SHA1(bc59f5f7f676a8f2a78dfda7fb62c804bbf850b6) ) +ROM_END + +ROM_START( jak_tsm ) + ROM_REGION( 0x4200000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "toystorymania.bin", 0x0000, 0x4200000, CRC(183b20a5) SHA1(eb4fa5ee9dfac58f5244d00d4e833b1e461cc52c) ) +ROM_END + +ROM_START( vbaby ) + ROM_REGION( 0x8400000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "vbaby.bin", 0x0000, 0x8400000, CRC(d904441b) SHA1(3742bc4e1e403f061ce2813ecfafc6f30a44d287) ) +ROM_END + +ROM_START( beambox ) + ROM_REGION( 0x4200000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "beambox.bin", 0x0000, 0x4200000, CRC(a486f04e) SHA1(73c7d99d8922eba58d94e955e254b9c3baa4443e) ) +ROM_END +// the JAKKS ones of these seem to be known as 'Generalplus GPAC500' hardware? CONS(2011, wrlshunt, 0, 0, wrlshunt, wrlshunt, wrlshunt_game_state, empty_init, "Hamy / Kids Station Toys Inc", "Wireless Hunting Video Game System", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) CONS(2009, smartfp, 0, 0, base, gcm394, gcm394_game_state, empty_init, "Fisher-Price", "Fun 2 Learn Smart Fit Park (Spain)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) // Fun 2 Learn 3-in-1 SMART SPORTS ? -// NAND dumps w/ internal bootstrap (and u'nSP 2.0 extended opcodes) -CONS(2010, wlsair60, 0, 0, base, gcm394, gcm394_game_state, empty_init, "Jungle Soft / Kids Station Toys Inc", "Wireless Air 60", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) + +void gcm394_game_state::nand_init() +{ +} + + +// NAND dumps w/ internal bootstrap (and u'nSP 2.0 extended opcodes) (have gpnandnand strings) +// the JAKKS ones seem to be known as 'Generalplus GPAC800' hardware +CONS(2010, wlsair60, 0, 0, base, gcm394, gcm394_game_state, nand_init, "Jungle Soft / Kids Station Toys Inc", "Wireless Air 60", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) +CONS(200?, jak_gtg, 0, 0, base, gcm394, gcm394_game_state, nand_init, "JAKKS Pacific Inc", "Golden Tee Golf (JAKKS Pacific TV Game)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) +CONS(200?, jak_car2, 0, 0, base, gcm394, gcm394_game_state, nand_init, "JAKKS Pacific Inc", "Cars 2 (JAKKS Pacific TV Game)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) +CONS(200?, jak_tsm , 0, 0, base, gcm394, gcm394_game_state, nand_init, "JAKKS Pacific Inc", "Toy Story Mania (JAKKS Pacific TV Game)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) +CONS(200?, vbaby, 0, 0, base, gcm394, gcm394_game_state, nand_init, "VTech", "V.Baby", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) +CONS(200?, beambox, 0, 0, base, gcm394, gcm394_game_state, nand_init, "Hasbro", "Playskool Heroes Transformers Rescue Bots Beam Box (Spain)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/vii.cpp b/src/mame/drivers/vii.cpp index d278831a206..d7c87c8a3e9 100644 --- a/src/mame/drivers/vii.cpp +++ b/src/mame/drivers/vii.cpp @@ -191,6 +191,7 @@ public: void non_spg_base(machine_config &config); void lexizeus(machine_config &config); void taikeegr(machine_config &config); + void shredmjr(machine_config &config); void init_crc(); void init_zeus(); @@ -2077,6 +2078,158 @@ static INPUT_PORTS_START( taikeegr ) PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) INPUT_PORTS_END +static INPUT_PORTS_START( shredmjr ) + PORT_START("P1") + PORT_DIPNAME( 0x0001, 0x0001, "0" ) + PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + + PORT_START("P2") + PORT_DIPNAME( 0x0001, 0x0001, "1" ) + PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + + PORT_START("P3") + PORT_DIPNAME( 0x0001, 0x0001, "2" ) + PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) +INPUT_PORTS_END + static INPUT_PORTS_START( sentx6p ) PORT_START("P1") @@ -3049,6 +3202,19 @@ void spg2xx_game_state::taikeegr(machine_config &config) // m_maincpu->portc_in().set_ioport("P3"); } +void spg2xx_game_state::shredmjr(machine_config &config) +{ + SPG24X(config, m_maincpu, XTAL(27'000'000), m_screen); + m_maincpu->set_addrmap(AS_PROGRAM, &spg2xx_game_state::mem_map_4m); + + spg2xx_base(config); + + m_maincpu->porta_in().set_ioport("P1"); + m_maincpu->portb_in().set_ioport("P2"); + m_maincpu->portc_in().set_ioport("P3"); +} + + void sentx6p_state::machine_start() { spg2xx_game_state::machine_start(); @@ -3640,6 +3806,11 @@ ROM_START( taikeegr ) ROM_LOAD16_WORD_SWAP( "taikee_guitar.bin", 0x000000, 0x800000, CRC(8cbe2feb) SHA1(d72e816f259ba6a6260d6bbaf20c5e9b2cf7140b) ) ROM_END +ROM_START( shredmjr ) + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "shredmasterjr.bin", 0x000000, 0x800000, CRC(95a6dcf1) SHA1(44893cd6ebe6b7f33a73817b72ae7be70c3126dc) ) +ROM_END + ROM_START( sentx6p ) ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASE00 ) @@ -3840,7 +4011,8 @@ CONS( 2006, pvmil, 0, 0, pvmil, pvmil, pvmil_state, e // there are multiple versions of this with different songs, was also sold by dreamGEAR as 'Shredmaster Jr.' (different title screen) // for the UK version the title screen always shows "Guitar Rock", however there are multiple boxes with different titles and song selections. // ROM is glued on the underside and soldered to the PCB, very difficult to remove without damaging. -CONS( 2007, taikeegr, 0, 0, taikeegr, taikeegr, spg2xx_game_state, init_taikeegr, "TaiKee", "Rockstar Guitar / Guitar Rock (PAL)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // bad music timings (too slow) +CONS( 2007, taikeegr, 0, 0, taikeegr, taikeegr, spg2xx_game_state, init_taikeegr, "TaiKee", "Rockstar Guitar / Guitar Rock (PAL)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // bad music timings (too slow) +CONS( 2007, shredmjr, taikeegr, 0, shredmjr, shredmjr, spg2xx_game_state, init_taikeegr, "DreamGear", "Shredmaster Jr (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // bad music timings (too slow), input reading different to above // "go 02d1d0" "do r1 = ff" to get past initial screen (currently bypassed by setting controller sense in RAM earlier, see hack in machine_reset) // a 'deluxe' version of this also exists with extra game modes diff --git a/src/mame/drivers/vt1682.cpp b/src/mame/drivers/vt1682.cpp index 49c77669f2e..a93766589e0 100644 --- a/src/mame/drivers/vt1682.cpp +++ b/src/mame/drivers/vt1682.cpp @@ -99,6 +99,8 @@ public: m_leftdac(*this, "leftdac"), m_rightdac(*this, "rightdac"), m_maincpu(*this, "maincpu"), + m_fullrom(*this, "fullrom"), + m_bank(*this, "cartbank"), m_soundcpu(*this, "soundcpu"), m_maincpu_alu(*this, "mainalu"), m_soundcpu_alu(*this, "soundalu"), @@ -106,7 +108,6 @@ public: m_soundcpu_timer_b_dev(*this, "snd_timerb_dev"), m_system_timer_dev(*this, "sys_timer_dev"), m_screen(*this, "screen"), - m_fullrom(*this, "fullrom"), m_spriteram(*this, "spriteram"), m_vram(*this, "vram"), m_sound_share(*this, "sound_share"), @@ -116,6 +117,7 @@ public: { } void vt_vt1682(machine_config& config); + void regular_init(); protected: virtual void machine_start() override; @@ -125,8 +127,13 @@ protected: required_device m_io; required_device m_leftdac; required_device m_rightdac; -private: required_device m_maincpu; + + void vt_vt1682_map(address_map& map); + + required_device m_fullrom; + required_memory_bank m_bank; +private: required_device m_soundcpu; required_device m_maincpu_alu; required_device m_soundcpu_alu; @@ -136,7 +143,6 @@ private: required_device m_system_timer_dev; required_device m_screen; - required_device m_fullrom; required_device m_spriteram; required_device m_vram; required_shared_ptr m_sound_share; @@ -145,9 +151,10 @@ private: required_device m_render_timer; uint32_t screen_update(screen_device& screen, bitmap_rgb32& bitmap, const rectangle& cliprect); - void vt_vt1682_map(address_map& map); void vt_vt1682_sound_map(address_map& map); + + void rom_map(address_map& map); void spriteram_map(address_map& map); @@ -596,7 +603,10 @@ public: m_io_p4(*this, "IN3") { } + void banked_init(); + void intech_interact(machine_config& config); + void intech_interact_bank(machine_config& config); DECLARE_READ8_MEMBER(porta_r); DECLARE_READ8_MEMBER(portb_r) { return 0x00;/*uint8_t ret = machine().rand() & 0xf; LOGMASKED(LOG_OTHER, "%s: portb_r returning: %1x\n", machine().describe_context(), ret); return ret;*/ }; @@ -612,7 +622,11 @@ protected: virtual void machine_start() override; virtual void machine_reset() override; + void vt_vt1682_map_bank(address_map& map); + private: + DECLARE_WRITE8_MEMBER(inteact_2129_bank_w); + uint8_t m_previous_port_b; int m_input_sense; int m_input_pos; @@ -840,6 +854,8 @@ void vt_vt1682_state::machine_reset() update_banks(); + m_bank->set_entry(0); + m_soundcpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); } @@ -4934,7 +4950,7 @@ uint32_t vt_vt1682_state::screen_update(screen_device& screen, bitmap_rgb32& bit // VT1682 can address 25-bit address space (32MB of ROM) void vt_vt1682_state::rom_map(address_map &map) { - map(0x0000000, 0x1ffffff).rom().region("mainrom", 0); + map(0x0000000, 0x1ffffff).bankr("cartbank"); } // 11-bits (0x800 bytes) for sprites @@ -5115,6 +5131,17 @@ void vt_vt1682_state::vt_vt1682_map(address_map &map) map(0xfffe, 0xffff).r(FUNC(vt_vt1682_state::maincpu_irq_vector_hack_r)); // probably need custom IRQ support in the core instead... } +void intec_interact_state::vt_vt1682_map_bank(address_map& map) +{ + vt_vt1682_map(map); + map(0x2129, 0x2129).w(FUNC(intec_interact_state::inteact_2129_bank_w)); // 2129 UIO +} + +WRITE8_MEMBER(intec_interact_state::inteact_2129_bank_w) +{ + m_bank->set_entry(data & 0x01); +} + /* Vectors / IRQ Levels @@ -5543,6 +5570,29 @@ void intec_interact_state::intech_interact(machine_config& config) m_rightdac->add_route(0, "mono", 0.5); } +void intec_interact_state::intech_interact_bank(machine_config& config) +{ + intech_interact(config); + + m_maincpu->set_addrmap(AS_PROGRAM, &intec_interact_state::vt_vt1682_map_bank); +} + +void vt_vt1682_state::regular_init() +{ + m_bank->configure_entry(0, memregion("mainrom")->base() + 0x0000000); +} + + +void intec_interact_state::banked_init() +{ + m_bank->configure_entry(0, memregion("mainrom")->base() + 0x0000000); + m_bank->configure_entry(1, memregion("mainrom")->base() + 0x2000000); +} + + + + + // the VT1682 can have 0x1000 bytes of internal ROM, but none of the software dumped makes use of it. ROM_START( ii8in1 ) @@ -5560,18 +5610,26 @@ ROM_START( miwi2_16 ) ROM_LOAD( "miwi 2 16 arcade games and drum master vt168.bin", 0x00000, 0x1000000, CRC(00c115c5) SHA1(fa5fdb448dd9b963351d71fe94e2072f5c872a18) ) ROM_END +ROM_START( intact89 ) + ROM_REGION( 0x4000000, "mainrom", 0 ) + ROM_LOAD( "89n1.bin", 0x00000, 0x4000000, CRC(bbcba068) SHA1(0ec1ecc55e9a7050ca20b1349b9712319fd21629) ) +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. -CONS( 200?, ii8in1, 0, 0, intech_interact, intec, intec_interact_state, empty_init, "Intec", "InterAct 8-in-1", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -CONS( 200?, ii32in1, 0, 0, intech_interact, intec, intec_interact_state, empty_init, "Intec", "InterAct 32-in-1", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +CONS( 200?, ii8in1, 0, 0, intech_interact, intec, intec_interact_state, regular_init, "Intec", "InterAct 8-in-1", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +CONS( 200?, ii32in1, 0, 0, intech_interact, intec, intec_interact_state, regular_init, "Intec", "InterAct 32-in-1", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // a 40-in-1 also exists which combines the above -CONS( 200?, miwi2_16, 0, 0, intech_interact, miwi2, intec_interact_state, empty_init, "", "MiWi2 16-in-1 + Drum Master", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +CONS( 200?, miwi2_16, 0, 0, intech_interact, miwi2, intec_interact_state, regular_init, "", "MiWi2 16-in-1 + Drum Master", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // miwi2 7-in-1 Sports +CONS( 200?, intact89, 0, 0, intech_interact_bank, miwi2, intec_interact_state, banked_init, "Intec", "InterAct Complete Video Game 89-in-1", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) + + // Intec Interact Infrazone 15 Shooting Games, 42 Mi kara, 96 Arcade Games + more should run here too // Other standalone Mi Kara units should fit here as well // ViMax seems to be identical software to MiWi2 diff --git a/src/mame/drivers/xavix.cpp b/src/mame/drivers/xavix.cpp index b8d93393023..7fdde0116f9 100644 --- a/src/mame/drivers/xavix.cpp +++ b/src/mame/drivers/xavix.cpp @@ -1494,6 +1494,14 @@ void xavix_cart_state::xavix_cart_evio(machine_config &config) SOFTWARE_LIST(config, "cart_list_evio").set_original("evio"); } +void xavix_cart_state::xavix_cart_gcslottv(machine_config &config) +{ + xavix_cart(config); + NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1); + + SOFTWARE_LIST(config, "cart_list_gcslottv").set_original("gcslottv"); +} + void xavix_cart_state::xavix_cart_ekara(machine_config &config) { @@ -1876,6 +1884,12 @@ ROM_START( evio ) ROM_END +ROM_START( gcslottv ) + ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 ) + ROM_LOAD( "gcslottv.bin", 0x000000, 0x800000, NO_DUMP ) // base game not dumped +ROM_END + + /* XaviX hardware titles (1st Generation) @@ -1990,6 +2004,9 @@ CONS( 2004, jpopira, 0, 0, xavix_i2c_jpopira,jpopira, xavix_i2c_car CONS( 2003, evio, 0, 0, xavix_cart_evio, evio, xavix_cart_state, init_xavix, "Tomy / SSD Company LTD", "Evio (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND /*|MACHINE_IS_BIOS_ROOT*/ ) // inputs? it's a violin controller +CONS( 2002, gcslottv, 0, 0, xavix_cart_gcslottv, evio, xavix_cart_state, init_xavix, "Takara / Sammy / DCT / SSD Company LTD", "Gachinko Contest! Slot machine TV (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND /*|MACHINE_IS_BIOS_ROOT*/ ) // bios not dumped yet + + // Let’s!TVプレイ 超にんきスポット!ころがしほーだい たまごっちりぞーと (Let's! TV Play Chou Ninki Spot! Korogashi-Houdai Tamagotchi Resort) (only on the Japanese list? http://test.shinsedai.co.jp/english/products/Applied/list.html ) This also allows you to use an IR reciever to import a Tamagotchi from compatible games CONS( 2006, ltv_tam, 0, 0, xavix_i2c_24lc04_tam, ltv_tam,xavix_i2c_ltv_tam_state, init_xavix, "Bandai / SSD Company LTD", "Let's! TV Play Chou Ninki Spot! Korogashi-Houdai Tamagotchi Resort (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/includes/xavix.h b/src/mame/includes/xavix.h index b6e8b593193..e56d50f1fbc 100644 --- a/src/mame/includes/xavix.h +++ b/src/mame/includes/xavix.h @@ -762,6 +762,7 @@ public: void xavix_cart_popira(machine_config &config); void xavix_cart_ddrfammt(machine_config &config); void xavix_cart_evio(machine_config &config); + void xavix_cart_gcslottv(machine_config &config); protected: diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 023cde39379..ceb380db2e6 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -14471,6 +14471,10 @@ suprpokr // (c) 1986 Grayhound Electronics suprpokra // (c) 1986 Grayhound Electronics suprpokrb // (c) 1986 Grayhound Electronics +@source:generalplus_gpl32612.cpp +jak_tmnthp +jak_swbstrik + @source:geneve.cpp geneve // 1987 Myarc Geneve 9640 genmod // 1990 Myarc / Ron G. Walters Geneve 9640 Mod @@ -31147,6 +31151,7 @@ gprnrs1 gprnrs16 ddrdismx // (c) 2006 Majesco / Konami [(c) 2001 Disney on title screen] ddrstraw // (c) 2006 Majesco / Konami +majkon ablping vgpocket vgpmini @@ -31165,11 +31170,13 @@ fcpocket mog_m320 fapocket zdog +ts_handy11 @source:vt1682.cpp ii8in1 ii32in1 miwi2_16 +intact89 @source:newbrain.cpp newbrain // @@ -37293,6 +37300,12 @@ starfigh // (c) 1990 SunA smartfp // Smart Fit Park wlsair60 // Wireless Air 60 wrlshunt // Wireless: Hunting Video Game System +jak_car2 +jak_gtg +jak_tsm +vbaby +beambox + @source:supbtime.cpp chinatwn // MAK (c) 1991 Data East Corporation (Japan) @@ -39619,6 +39632,7 @@ vigilanto // (c) 1988 (US) jak_capb // jak_spdmo // conyteni // +conyping // @source:vii.cpp jak_batm // The Batman, 2004 @@ -39661,7 +39675,8 @@ icanpian // tvgogo // pvmil // taikeegr // -sentx6p // +shredmjr // +sentx6p // @source:vsmile.cpp vsmile // @@ -40854,6 +40869,7 @@ popira2 // taikodp // jpopira // evio // +gcslottv // ttv_sw // ttv_lotr // ttv_mx // -- cgit v1.2.3