summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatarGravatar David Haywood <28625134+DavidHaywood@users.noreply.github.com>2019-12-10 16:36:31 +0000
committerGravatarGravatar R. Belmont <rb6502@users.noreply.github.com>2019-12-10 11:36:31 -0500
commit0747c3ab9896726a23845f8836a852a7b89fb544 (patch) (github)
tree8ea8553b010a9864825846dd074a1f90542f3253
parentbac7549a44568b835401b66ea75bf9efa468ab02 (diff)
downloadmame-0747c3ab9896726a23845f8836a852a7b89fb544.tar.bz2
mame-0747c3ab9896726a23845f8836a852a7b89fb544.zip
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)
-rw-r--r--hash/gcslottv.xml57
-rw-r--r--scripts/target/mame/mess.lua1
-rw-r--r--src/mame/drivers/generalplus_gpl32612.cpp91
-rw-r--r--src/mame/drivers/nes_vt.cpp86
-rw-r--r--src/mame/drivers/spg110.cpp12
-rw-r--r--src/mame/drivers/sunplus_gcm394.cpp43
-rw-r--r--src/mame/drivers/vii.cpp174
-rw-r--r--src/mame/drivers/vt1682.cpp74
-rw-r--r--src/mame/drivers/xavix.cpp17
-rw-r--r--src/mame/includes/xavix.h1
-rw-r--r--src/mame/mame.lst18
11 files changed, 556 insertions, 18 deletions
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 @@
+<?xml version="1.0"?>
+<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
+<softwarelist name="gcslottv" description="Gachinko Contest! Slot machine TV cartridges">
+ <!-- cartridges contain the ROM only, the XaviX CPU and BIOS are in the base unit
+
+ ***********************************************************************************
+
+ -->
+
+ <software name="aladdin" supported="no">
+ <description>Aladdin TV</description>
+ <year>2002</year>
+ <publisher>Sammy</publisher>
+ <part name="cart" interface="ekara_cart">
+ <dataarea name="rom" size="0x400000">
+ <rom name="slotslc01black.bin" size="0x400000" crc="d18ff203" sha1="8d62051565bfb1cc9eb14e4161ed892014e97c9c"/>
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="ginginma" supported="no">
+ <description>Ginginmaru TV</description>
+ <year>2002</year>
+ <publisher>Sammy</publisher>
+ <info name="alt_title" value="ギンギン丸TV"/>
+ <part name="cart" interface="ekara_cart">
+ <dataarea name="rom" size="0x400000">
+ <rom name="slotslc01orange.bin" size="0x400000" crc="f3e9c746" sha1="e242587406e9e4fa76ddb5120211e2eb996e36f8"/>
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="salarymn" supported="no">
+ <description>Salaryman Kintaro</description>
+ <year>2002</year>
+ <publisher>Sammy</publisher>
+ <info name="alt_title" value="サラリーマン金太郎"/>
+ <part name="cart" interface="ekara_cart">
+ <dataarea name="rom" size="0x400000">
+ <rom name="slotslc05red.bin" size="0x400000" crc="b30e908e" sha1="f9ad6b93bcf626ba1d5222af13088565a5d4a729"/>
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="mojuotv" supported="no">
+ <description>Moju-o TV</description>
+ <year>2002</year>
+ <publisher>Sammy</publisher>
+ <info name="alt_title" value="猛獣王TV"/>
+ <part name="cart" interface="ekara_cart">
+ <dataarea name="rom" size="0x800000">
+ <rom name="slotslc07yellow.bin" size="0x800000" crc="461a9ede" sha1="e41b97409e17ce16fe522a3a45c4577c6dbed522"/>
+ </dataarea>
+ </part>
+ </software>
+
+</softwarelist>
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<cpu_device> m_maincpu;
+
+ required_device<screen_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, "<unknown>", "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<vrt_vt1682_io_device> m_io;
required_device<dac_12bit_r2r_device> m_leftdac;
required_device<dac_12bit_r2r_device> m_rightdac;
-private:
required_device<cpu_device> m_maincpu;
+
+ void vt_vt1682_map(address_map& map);
+
+ required_device<address_map_bank_device> m_fullrom;
+ required_memory_bank m_bank;
+private:
required_device<cpu_device> m_soundcpu;
required_device<vrt_vt1682_alu_device> m_maincpu_alu;
required_device<vrt_vt1682_alu_device> m_soundcpu_alu;
@@ -136,7 +143,6 @@ private:
required_device<vrt_vt1682_timer_device> m_system_timer_dev;
required_device<screen_device> m_screen;
- required_device<address_map_bank_device> m_fullrom;
required_device<address_map_bank_device> m_spriteram;
required_device<address_map_bank_device> m_vram;
required_shared_ptr<uint8_t> m_sound_share;
@@ -145,9 +151,10 @@ private:
required_device<timer_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, "<unknown>", "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, "<unknown>", "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 //