mirror of
https://github.com/holub/mame
synced 2025-04-16 05:24:54 +03:00
new WORKING machines (Plug & Play Double Dance Mania x2) (#7158)
* new WORKING machines ----- Double Dance Mania: Supreme / Dance Supreme [Sean Riddle, David Haywood, Kamaal Brown] Double Dance Mania: Mega 12 [Sean Riddle, David Haywood] * new NOT WORKING ----- My Arcade Wireless Video Game Station 200-in-1 (DGUN-2572) [Sean Riddle, David Haywood]
This commit is contained in:
parent
26f4e0bc62
commit
87762e25b4
@ -3059,6 +3059,7 @@ files {
|
||||
MAME_DIR .. "src/mame/machine/vt1682_alu.cpp",
|
||||
MAME_DIR .. "src/mame/machine/vt1682_timer.h",
|
||||
MAME_DIR .. "src/mame/machine/vt1682_timer.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/vt_unknown.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/compmahj.cpp",
|
||||
}
|
||||
|
||||
|
@ -1,10 +1,18 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Ryan Holtz, David Haywood
|
||||
|
||||
// These all have some kind of startup check
|
||||
// the Virtual Interactive 'Vi' probably also fits here
|
||||
//
|
||||
// The WiWi could also run NES games; SunPlus hardware was in the cartridge, it was a 'fake' system.
|
||||
/* These all have some kind of startup check
|
||||
the Virtual Interactive 'Vi' probably also fits here
|
||||
|
||||
The WiWi could also run NES games; SunPlus hardware was in the cartridge, it was a 'fake' system.
|
||||
|
||||
---
|
||||
|
||||
some of these are just checking a external timer on a port, I think this is one of the SPG features
|
||||
so might need making more generic.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
#include "emu.h"
|
||||
#include "includes/spg2xx.h"
|
||||
@ -71,6 +79,23 @@ protected:
|
||||
virtual void portb_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0) override;
|
||||
};
|
||||
|
||||
class spg2xx_game_ddmsup_state : public spg2xx_game_marc101_state
|
||||
{
|
||||
public:
|
||||
spg2xx_game_ddmsup_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
spg2xx_game_marc101_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
void ddmsup(machine_config &config);
|
||||
|
||||
protected:
|
||||
|
||||
// virtual uint16_t portb_r();
|
||||
virtual void porta_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0) override;
|
||||
// virtual void portb_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0) override;
|
||||
};
|
||||
|
||||
|
||||
class spg2xx_game_marc250_state : public spg2xx_game_marc101_state
|
||||
{
|
||||
public:
|
||||
@ -183,6 +208,17 @@ void spg2xx_game_guitrbus_state::guitrbus(machine_config &config)
|
||||
m_maincpu->portb_out().set(FUNC(spg2xx_game_guitrbus_state::portb_w));
|
||||
}
|
||||
|
||||
void spg2xx_game_ddmsup_state::ddmsup(machine_config &config)
|
||||
{
|
||||
spg2xx(config);
|
||||
|
||||
// m_maincpu->portb_in().set(FUNC(spg2xx_game_ddmsup_state::portb_r));
|
||||
m_maincpu->porta_in().set(FUNC(spg2xx_game_ddmsup_state::porta_r));
|
||||
m_maincpu->porta_out().set(FUNC(spg2xx_game_ddmsup_state::porta_w));
|
||||
// m_maincpu->portb_out().set(FUNC(spg2xx_game_ddmsup_state::portb_w));
|
||||
}
|
||||
|
||||
|
||||
|
||||
// are these Port A behaviors related to IO A Special mode on the SoC?
|
||||
// the bits being tested do seem to be 'ExtClk2 / ExtClk1'
|
||||
@ -364,6 +400,34 @@ void spg2xx_game_marc250_state::porta_w(offs_t offset, uint16_t data, uint16_t m
|
||||
m_prev_porta = data;
|
||||
}
|
||||
|
||||
void spg2xx_game_ddmsup_state::porta_w(offs_t offset, uint16_t data, uint16_t mem_mask)
|
||||
{
|
||||
logerror("%s: porta_w %04x (%04x) %c %c %c %c | %c %c %c %c | %c %c %c %c | %c %c %c %c \n", machine().describe_context(), data, mem_mask,
|
||||
(mem_mask & 0x8000) ? ((data & 0x8000) ? '1' : '0') : 'x',
|
||||
(mem_mask & 0x4000) ? ((data & 0x4000) ? '1' : '0') : 'x',
|
||||
(mem_mask & 0x2000) ? ((data & 0x2000) ? '1' : '0') : 'x',
|
||||
(mem_mask & 0x1000) ? ((data & 0x1000) ? '1' : '0') : 'x',
|
||||
(mem_mask & 0x0800) ? ((data & 0x0800) ? '1' : '0') : 'x',
|
||||
(mem_mask & 0x0400) ? ((data & 0x0400) ? '1' : '0') : 'x',
|
||||
(mem_mask & 0x0200) ? ((data & 0x0200) ? '1' : '0') : 'x',
|
||||
(mem_mask & 0x0100) ? ((data & 0x0100) ? '1' : '0') : 'x',
|
||||
(mem_mask & 0x0080) ? ((data & 0x0080) ? '1' : '0') : 'x',
|
||||
(mem_mask & 0x0040) ? ((data & 0x0040) ? '1' : '0') : 'x',
|
||||
(mem_mask & 0x0020) ? ((data & 0x0020) ? '1' : '0') : 'x',
|
||||
(mem_mask & 0x0010) ? ((data & 0x0010) ? '1' : '0') : 'x',
|
||||
(mem_mask & 0x0008) ? ((data & 0x0008) ? '1' : '0') : 'x',
|
||||
(mem_mask & 0x0004) ? ((data & 0x0004) ? '1' : '0') : 'x',
|
||||
(mem_mask & 0x0002) ? ((data & 0x0002) ? '1' : '0') : 'x',
|
||||
(mem_mask & 0x0001) ? ((data & 0x0001) ? '1' : '0') : 'x');
|
||||
|
||||
if (data & 0x4000)
|
||||
{
|
||||
m_pulse_timer->adjust(attotime::from_hz(6), 0, attotime::from_hz(6));
|
||||
}
|
||||
|
||||
m_prev_porta = data;
|
||||
}
|
||||
|
||||
|
||||
static INPUT_PORTS_START( wiwi18 )
|
||||
PORT_START("P1")
|
||||
@ -614,6 +678,40 @@ static INPUT_PORTS_START( guitrbus )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
|
||||
|
||||
static INPUT_PORTS_START( ddmsup )
|
||||
PORT_START("P1")
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_NAME("P1 Pad Up") PORT_16WAY // NOT A JOYSTICK!!
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_NAME("P1 Pad Left") PORT_16WAY
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_NAME("P1 Pad Right") PORT_16WAY
|
||||
PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_NAME("P1 Pad Down") PORT_16WAY
|
||||
PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Back")
|
||||
PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Select")
|
||||
PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("P1 Pad Up-Left")
|
||||
PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("P1 Pad Up-Right")
|
||||
PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("P1 Pad Down-Left")
|
||||
PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_NAME("P1 Pad Down-Right")
|
||||
PORT_BIT( 0x1c00, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_UNUSED ) // must toggle at rate measured by code for ddmsup
|
||||
PORT_BIT( 0xc000, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
|
||||
PORT_START("P2")
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_NAME("P2 Pad Up") PORT_PLAYER(2) PORT_16WAY // NOT A JOYSTICK!!
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_NAME("P2 Pad Left") PORT_PLAYER(2) PORT_16WAY
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_NAME("P2 Pad Right") PORT_PLAYER(2) PORT_16WAY
|
||||
PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_NAME("P2 Pad Down") PORT_PLAYER(2) PORT_16WAY
|
||||
PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("P2 Pad Up-Left") PORT_PLAYER(2)
|
||||
PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("P2 Pad Up-Right") PORT_PLAYER(2)
|
||||
PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("P2 Pad Down-Left") PORT_PLAYER(2)
|
||||
PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_NAME("P2 Pad Down-Right") PORT_PLAYER(2)
|
||||
PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
|
||||
PORT_START("P3")
|
||||
PORT_BIT( 0xffff, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
void spg2xx_game_wiwi18_state::init_wiwi18()
|
||||
{
|
||||
// workaround for security checks on startup
|
||||
@ -893,6 +991,17 @@ ROM_START( guitrbus )
|
||||
ROM_LOAD16_WORD_SWAP( "winfunguitar.bin", 0x000000, 0x400000, CRC(17419a27) SHA1(19377fcd18b08d3ae8e20de0244b3aaef1b5a66a) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( ddmsup )
|
||||
ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 )
|
||||
ROM_LOAD16_WORD_SWAP( "dancemaniasupreme.bin", 0x000000, 0x800000, CRC(4066a36b) SHA1(1fc8553b03b81bc02c3fcbcdafa2e54d1f2c2306) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( ddmmeg12 )
|
||||
ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 )
|
||||
ROM_LOAD16_WORD_SWAP( "doubledancemania.bin", 0x000000, 0x800000, CRC(fcffb21e) SHA1(802a3c2d6bcbd729b9a483d42d912ca8b9abdccd) )
|
||||
ROM_END
|
||||
|
||||
|
||||
// box marked 'Wireless game console' 'Drahtlose Spielekonsole' 87 Sports games included : 18 hyper sports games, 69 arcade games.
|
||||
// Unit marked 'Hamy System' 'WiWi'
|
||||
// actually a cartridge, but all hardware is in the cart, overriding any internal hardware entirely. see nes_vt.cp 'mc_sp69' for the '69 arcade game' part
|
||||
@ -906,6 +1015,10 @@ CONS( 200?, foxsport, 0, 0, rad_skat, wiwi18, spg2xx_game_wiwi18_state,
|
||||
|
||||
CONS( 2014, marc101, 0, 0, marc101, m489, spg2xx_game_marc101_state, empty_init, "Millennium 2000 GmbH", "Millennium Arcade 101 (M489) (Game Station 2 101-in-1)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
|
||||
|
||||
CONS( 200?, ddmsup, 0, 0, ddmsup, ddmsup, spg2xx_game_ddmsup_state, empty_init, "Senario", "Double Dance Mania: Supreme / Dance Supreme", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // titlescreen is just 'Dance Supreme'
|
||||
|
||||
CONS( 200?, ddmmeg12, 0, 0, ddmsup, ddmsup, spg2xx_game_ddmsup_state, empty_init, "Senario", "Double Dance Mania: Mega 12", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
|
||||
|
||||
CONS( 2015, marc250, 0, 0, marc101, m489, spg2xx_game_marc250_state, init_m527, "Millennium 2000 GmbH", "Millennium Arcade 250 (M527)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
|
||||
|
||||
// has the following strings at the start of the ROM
|
||||
|
103
src/mame/drivers/vt_unknown.cpp
Normal file
103
src/mame/drivers/vt_unknown.cpp
Normal file
@ -0,0 +1,103 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:David Haywood
|
||||
|
||||
// unknown platform capable of running high resolution NES games (VT268?)
|
||||
|
||||
// is the dump good? can't locate any code, some 0x80000 blocks have what might be vectors at the end, but non-standard?
|
||||
|
||||
#include "emu.h"
|
||||
|
||||
#include "cpu/m6502/m6502.h"
|
||||
#include "screen.h"
|
||||
#include "emupal.h"
|
||||
#include "speaker.h"
|
||||
|
||||
class vt_unknown_state : public driver_device
|
||||
{
|
||||
public:
|
||||
vt_unknown_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_palette(*this, "palette"),
|
||||
m_screen(*this, "screen"),
|
||||
m_gfxdecode(*this, "gfxdecode")
|
||||
{ }
|
||||
|
||||
void vt_unknown(machine_config &config);
|
||||
|
||||
private:
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
|
||||
uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
|
||||
void vt_unknown_map(address_map &map);
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<palette_device> m_palette;
|
||||
required_device<screen_device> m_screen;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
};
|
||||
|
||||
uint32_t vt_unknown_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
void vt_unknown_state::machine_start()
|
||||
{
|
||||
}
|
||||
|
||||
void vt_unknown_state::machine_reset()
|
||||
{
|
||||
}
|
||||
|
||||
void vt_unknown_state::vt_unknown_map(address_map &map)
|
||||
{
|
||||
map(0x000000, 0xffff).rom().region("maincpu", 0);
|
||||
}
|
||||
|
||||
static INPUT_PORTS_START( vt_unknown )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static const gfx_layout test_layout =
|
||||
{
|
||||
8,8,
|
||||
RGN_FRAC(1,1),
|
||||
8,
|
||||
{ 0 },
|
||||
{ STEP8(0,1) },
|
||||
{ STEP8(0,8*1) },
|
||||
8 * 1 * 8
|
||||
};
|
||||
|
||||
static GFXDECODE_START( gfx_test )
|
||||
GFXDECODE_ENTRY( "maincpu", 0, test_layout, 0x0, 1 )
|
||||
GFXDECODE_END
|
||||
|
||||
|
||||
void vt_unknown_state::vt_unknown(machine_config &config)
|
||||
{
|
||||
M6502(config, m_maincpu, 8000000); // unknown, assumed to be a 6502 based CPU as it has NES games, but could be emulating them (like the S+Core units, assuming this isn't one)
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &vt_unknown_state::vt_unknown_map);
|
||||
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
m_screen->set_refresh_hz(60);
|
||||
m_screen->set_size(300, 262);
|
||||
m_screen->set_visarea(0, 256-1, 0, 240-1);
|
||||
m_screen->set_screen_update(FUNC(vt_unknown_state::screen_update));
|
||||
|
||||
PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 0x200);
|
||||
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_test);
|
||||
}
|
||||
|
||||
ROM_START( dgun2572 )
|
||||
ROM_REGION( 0x2000000, "maincpu", 0 ) // extra pins on subboard not marked, is this a good dump?
|
||||
ROM_LOAD( "dreamgearwgun.bin", 0x00000, 0x2000000, CRC(92b55c75) SHA1(c7b2319e304a4bf480b5dcd4f24af2e6ba834d0d) )
|
||||
ROM_END
|
||||
|
||||
|
||||
CONS( 201?, dgun2572, 0, 0, vt_unknown, vt_unknown, vt_unknown_state, empty_init, "dreamGEAR", "My Arcade Wireless Video Game Station 200-in-1 (DGUN-2572)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
|
@ -32207,25 +32207,6 @@ ablmini
|
||||
senwld
|
||||
zonefusn
|
||||
|
||||
@source:vt1682.cpp
|
||||
ii8in1
|
||||
ii32in1
|
||||
zone7in1
|
||||
zone7in1p
|
||||
dance555
|
||||
miwi2_16
|
||||
miwi2_7
|
||||
intact89
|
||||
intg5410
|
||||
exsprt48
|
||||
itvg48
|
||||
xing48
|
||||
wowwg
|
||||
110dance
|
||||
lxts3
|
||||
unk1682
|
||||
njp60in1
|
||||
|
||||
@source:newbrain.cpp
|
||||
newbrain //
|
||||
newbraina //
|
||||
@ -38188,6 +38169,8 @@ lexifit
|
||||
marc101
|
||||
marc250
|
||||
guitrbus
|
||||
ddmsup
|
||||
ddmmeg12
|
||||
|
||||
@source:spg2xx_zone.cpp
|
||||
wirels60 // Wireless 60
|
||||
@ -41327,6 +41310,28 @@ vstennisb // (c) 1984 Nintendo Co., Ltd. / Nintendo of Ame
|
||||
vstetris // (c) 1988 Atari
|
||||
wrecking // (c) 1984 Nintendo
|
||||
|
||||
@source:vt_unknown.cpp
|
||||
dgun2572
|
||||
|
||||
@source:vt1682.cpp
|
||||
ii8in1
|
||||
ii32in1
|
||||
zone7in1
|
||||
zone7in1p
|
||||
dance555
|
||||
miwi2_16
|
||||
miwi2_7
|
||||
intact89
|
||||
intg5410
|
||||
exsprt48
|
||||
itvg48
|
||||
xing48
|
||||
wowwg
|
||||
110dance
|
||||
lxts3
|
||||
unk1682
|
||||
njp60in1
|
||||
|
||||
@source:vt52.cpp
|
||||
vt52 // 1975 Digital Equipment Corporation
|
||||
|
||||
|
@ -1069,6 +1069,7 @@ vp60.cpp
|
||||
vsmile.cpp
|
||||
vsmileb.cpp
|
||||
vsmilepro.cpp
|
||||
vt_unknown.cpp
|
||||
vt100.cpp
|
||||
vt1682.cpp
|
||||
vt220.cpp
|
||||
|
Loading…
Reference in New Issue
Block a user