mirror of
https://github.com/holub/mame
synced 2025-04-16 05:24:54 +03:00
Plug and Play bits (working and not working machines) (#7509)
* replaced dgun2869 dump with good one [Sean Riddle] * also did some work on the dreamGear unit, works now * an innotab2 driver entry was also added to hold the software list, but the ROM isn't dumped yet machines promoted to WORKING ------ My Arcade Retro Micro Controller - 220 Built-In Video Games (DGUN-2869) [Zup, Team Europe, Sean Riddle] new WORKING machines ------ Code Lyoko (25-in-1 handheld) [KaruzoHikari, Team Europe, David Haywood] My Arcade Pac-Man Pocket Player (DGUNL-3227) [Sean Riddle] new NOT WORKING machines ------ Palace Arcade [Sean Riddle, Kamaal Brown] new NOT WORKING Software List entries ------ vtech_innotab_cart.xml : Mickey Mouse Clubhouse (UK) [Team Europe]
This commit is contained in:
parent
5de4b92378
commit
334c801c55
25
hash/vtech_innotab_cart.xml
Normal file
25
hash/vtech_innotab_cart.xml
Normal file
@ -0,0 +1,25 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
|
||||
<!--
|
||||
license:CC0
|
||||
-->
|
||||
<softwarelist name="vtech_innotab_cart" description="VTech InnoTAB 1/2/3 Cartridges">
|
||||
<!-- NOT InnoTAB Max - those are compatible with InnoTV instead -->
|
||||
|
||||
<!-- These are NAND Flash ROMs containing a FAT16 filesystem -->
|
||||
<!-- Some cartridges contain no ROM, but just bridges between edge connector pins. -->
|
||||
|
||||
<!-- pinout is identical to Storio cartridges -->
|
||||
|
||||
<software name="mmousec" supported="no">
|
||||
<description>Mickey Mouse Clubhouse (UK)</description>
|
||||
<year>2011</year>
|
||||
<publisher>VTech</publisher>
|
||||
<part name="cart" interface="vtech_storio_cart">
|
||||
<dataarea name="rom" size="0x8400000">
|
||||
<rom name="80-230403-103 - Mickey Mouse Clubhouse (UK).bin" size="0x8400000" crc="839567a9" sha1="bd4e2c8138d6f62bcac1978745a2b752bcefb07d" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
</softwarelist>
|
@ -4036,7 +4036,7 @@ files {
|
||||
MAME_DIR .. "src/mame/drivers/spg2xx_jakks_sharp.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/spg2xx_jakks_tvtouch.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/spg2xx_zone.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/spg2xx_zone_32bit.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/spg2xx_senca.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/spg2xx_senario.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/spg2xx_senario_poker.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/spg2xx_mysprtch.cpp",
|
||||
|
@ -56,9 +56,9 @@ INPUT_PORTS_END
|
||||
|
||||
void generalplus_gpl_unknown_state::map(address_map &map)
|
||||
{
|
||||
map(0x000000, 0x00ffff).ram(); // unknown, RAM/ROM? there are jumps to this region, doesn't seem the usual unSP 8000-ffff ROM mapping
|
||||
map(0x000000, 0x00bfff).ram(); // unknown, RAM?
|
||||
map(0x00c000, 0x00ffff).ram(); // unknown, ROM? there are jumps to this region, doesn't seem the usual unSP 8000-ffff ROM mapping
|
||||
|
||||
// there are calls to 0x0f000 (internal ROM?)
|
||||
map(0x200000, 0x3fffff).ram(); // almost certainly RAM where the SPI ROM gets copied
|
||||
}
|
||||
|
||||
@ -97,22 +97,34 @@ void generalplus_gpl_unknown_state::generalplus_gpl_unknown(machine_config &conf
|
||||
PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 0x8000);
|
||||
}
|
||||
|
||||
// exact size of internal ROM is unknown, but it appears to occupy at least 0xc000 - 0xffff (word addresses) in unSP space
|
||||
|
||||
ROM_START( mapacman )
|
||||
//ROM_REGION( 0x2000, "maincpu", ROMREGION_ERASEFF )
|
||||
//ROM_LOAD16_WORD_SWAP( "internal.rom", 0x000000, 0x2000, NO_DUMP ) // exact size unknown
|
||||
ROM_REGION( 0x8000, "maincpu", ROMREGION_ERASEFF )
|
||||
ROM_LOAD16_WORD_SWAP( "internal.rom", 0x000000, 0x8000, NO_DUMP )
|
||||
|
||||
ROM_REGION( 0x800000, "spi", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "fm25q16a.bin", 0x000000, 0x200000, CRC(aeb472ac) SHA1(500c24b725f6d3308ef8cbdf4259f5be556c7c92) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( taspinv )
|
||||
//ROM_REGION( 0x2000, "maincpu", ROMREGION_ERASEFF )
|
||||
//ROM_LOAD16_WORD_SWAP( "internal.rom", 0x000000, 0x2000, NO_DUMP ) // exact size unknown
|
||||
ROM_REGION( 0x8000, "maincpu", ROMREGION_ERASEFF )
|
||||
ROM_LOAD16_WORD_SWAP( "internal.rom", 0x000000, 0x8000, NO_DUMP )
|
||||
|
||||
ROM_REGION( 0x800000, "spi", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "tinyarcade_spaceinvaders.bin", 0x000000, 0x200000, CRC(11ac4c77) SHA1(398d5eff83a4e94487ed810819085a0e44582908) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( parcade )
|
||||
ROM_REGION( 0x8000, "maincpu", ROMREGION_ERASEFF )
|
||||
ROM_LOAD16_WORD_SWAP( "internal.rom", 0x000000, 0x8000, NO_DUMP )
|
||||
|
||||
ROM_REGION( 0x800000, "spi", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "palacearcade_gpr25l3203_c22016.bin", 0x000000, 0x400000, CRC(98fbd2a1) SHA1(ffc19aadd53ead1f9f3472475606941055ca09f9) )
|
||||
ROM_END
|
||||
|
||||
// for correctly offset disassembly use
|
||||
// unidasm palacearcade_gpr25l3203_c22016.bin -arch unsp12 -xchbytes -basepc 200000 >palace.txt
|
||||
|
||||
// first 0x2000 bytes in ROM are blank, ROM data maps fully in RAM at 200000, but there are calls to lower regions
|
||||
// is it possible the SunPlus here is only handling sound / graphics, not gameplay?
|
||||
@ -121,3 +133,5 @@ CONS( 2017, mapacman, 0, 0, generalplus_gpl_unknown, generalpl
|
||||
|
||||
// multiple different units appear to share the same ROM with a jumper to select game, it should be verified in each case that the external ROM was not changed.
|
||||
CONS( 2017, taspinv, 0, 0, generalplus_gpl_unknown, generalplus_gpl_unknown, generalplus_gpl_unknown_state, empty_init, "Super Impulse", "Space Invaders (Tiny Arcade)", MACHINE_IS_SKELETON )
|
||||
|
||||
CONS( 2017, parcade, 0, 0, generalplus_gpl_unknown, generalplus_gpl_unknown, generalplus_gpl_unknown_state, empty_init, "Hasbro", "Palace Arcade", MACHINE_IS_SKELETON )
|
||||
|
@ -24,7 +24,7 @@
|
||||
#include "includes/megadriv_rad.h"
|
||||
|
||||
// todo, use actual MD map, easier once maps are part of base class.
|
||||
void megadriv_radica_state::megadriv_radica_map(address_map &map)
|
||||
void megadriv_radica_state::megadriv_base_map(address_map &map)
|
||||
{
|
||||
map(0x000000, 0x3fffff).r(FUNC(megadriv_radica_state::read)); /* Cartridge Program Rom */
|
||||
map(0xa00000, 0xa01fff).rw(FUNC(megadriv_radica_state::megadriv_68k_read_z80_ram), FUNC(megadriv_radica_state::megadriv_68k_write_z80_ram));
|
||||
@ -34,11 +34,42 @@ void megadriv_radica_state::megadriv_radica_map(address_map &map)
|
||||
map(0xa10000, 0xa1001f).rw(FUNC(megadriv_radica_state::megadriv_68k_io_read), FUNC(megadriv_radica_state::megadriv_68k_io_write));
|
||||
map(0xa11100, 0xa11101).rw(FUNC(megadriv_radica_state::megadriv_68k_check_z80_bus), FUNC(megadriv_radica_state::megadriv_68k_req_z80_bus));
|
||||
map(0xa11200, 0xa11201).w(FUNC(megadriv_radica_state::megadriv_68k_req_z80_reset));
|
||||
map(0xa13000, 0xa130ff).r(FUNC(megadriv_radica_state::read_a13));
|
||||
map(0xc00000, 0xc0001f).rw(m_vdp, FUNC(sega315_5313_device::vdp_r), FUNC(sega315_5313_device::vdp_w));
|
||||
map(0xe00000, 0xe0ffff).ram().mirror(0x1f0000).share("megadrive_ram");
|
||||
}
|
||||
|
||||
void megadriv_radica_state::megadriv_radica_map(address_map &map)
|
||||
{
|
||||
megadriv_base_map(map);
|
||||
map(0xa13000, 0xa130ff).r(FUNC(megadriv_radica_state::read_a13));
|
||||
}
|
||||
|
||||
uint16_t megadriv_dgunl_state::read_a16300(offs_t offset, uint16_t mem_mask)
|
||||
{
|
||||
return 0x5a5a;
|
||||
}
|
||||
|
||||
uint16_t megadriv_dgunl_state::read_a16302(offs_t offset, uint16_t mem_mask)
|
||||
{
|
||||
return m_a1630a;
|
||||
}
|
||||
|
||||
void megadriv_dgunl_state::write_a1630a(offs_t offset, uint16_t data, uint16_t mem_mask)
|
||||
{
|
||||
m_a1630a = data;
|
||||
m_bank = (data & 0x07) * 8;
|
||||
}
|
||||
|
||||
void megadriv_dgunl_state::megadriv_dgunl_map(address_map &map)
|
||||
{
|
||||
megadriv_base_map(map);
|
||||
|
||||
map(0xa16300, 0xa16301).r(FUNC(megadriv_dgunl_state::read_a16300));
|
||||
map(0xa16302, 0xa16303).r(FUNC(megadriv_dgunl_state::read_a16302));
|
||||
|
||||
map(0xa1630a, 0xa1630b).w(FUNC(megadriv_dgunl_state::write_a1630a));
|
||||
}
|
||||
|
||||
uint16_t megadriv_radica_state::read(offs_t offset)
|
||||
{
|
||||
return m_rom[(((m_bank * 0x10000) + (offset << 1)) & (0x400000 - 1))/2];
|
||||
@ -120,6 +151,17 @@ static INPUT_PORTS_START( megadriv_msi_6button )
|
||||
PORT_START("UNK")
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( megadriv_dgunl_1player )
|
||||
PORT_INCLUDE( megadriv_radica_3button )
|
||||
|
||||
PORT_MODIFY("PAD1") // the unit only has 2 buttons, A and C, strings are changed to remove references to C, even if behavior in Pac-Mania still exists and differs between them
|
||||
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNUSED ) // disable 'C'
|
||||
//PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) // disable 'A'
|
||||
|
||||
PORT_MODIFY("PAD2")
|
||||
PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
INPUT_PORTS_END
|
||||
|
||||
void megadriv_radica_6button_state::machine_start()
|
||||
{
|
||||
md_base_state::machine_start();
|
||||
@ -144,6 +186,14 @@ void megadriv_radica_3button_state::machine_start()
|
||||
save_item(NAME(m_bank));
|
||||
}
|
||||
|
||||
|
||||
void megadriv_dgunl_state::machine_start()
|
||||
{
|
||||
megadriv_radica_3button_state::machine_start();
|
||||
m_a1630a = 0;
|
||||
save_item(NAME(m_a1630a));
|
||||
}
|
||||
|
||||
void megadriv_radica_3button_state::machine_reset()
|
||||
{
|
||||
m_bank = 0;
|
||||
@ -174,6 +224,11 @@ void megadriv_radica_6button_state::megadriv_radica_6button_ntsc(machine_config
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &megadriv_radica_state::megadriv_radica_map);
|
||||
}
|
||||
|
||||
void megadriv_dgunl_state::megadriv_dgunl_ntsc(machine_config &config)
|
||||
{
|
||||
md_ntsc(config);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &megadriv_dgunl_state::megadriv_dgunl_map);
|
||||
}
|
||||
|
||||
ROM_START( rad_sf2 )
|
||||
ROM_REGION( 0x400000, "maincpu", 0 )
|
||||
@ -233,7 +288,15 @@ ROM_START( msi_sf2 )
|
||||
// and is probably leftover from one of the multigame systems, hacked to only launch one game. We should emulate it...
|
||||
// .. but the game ROM starts at 0xc8000 so we can cheat for now
|
||||
ROM_LOAD16_WORD_SWAP( "29lv320.bin", 0x000000, 0xc8000, CRC(465b12f0) SHA1(7a058f6feb4f08f56ae0f7369c2ca9a9fe2ed40e) )
|
||||
ROM_CONTINUE(0x00000,0x338000)
|
||||
ROM_CONTINUE(0x00000,0x338000)
|
||||
ROM_END
|
||||
|
||||
ROM_START( dgunl3227 )
|
||||
ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASE00 )
|
||||
// populated in init function
|
||||
|
||||
ROM_REGION( 0x400000, "rom", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "myarcadepacman_s99jl032hbt1_9991227e_as_s29jl032h55tai01.bin", 0x000000, 0x400000, CRC(ecead966) SHA1(971e8da6eb720f670f4148c7e07922e4f24eb609) )
|
||||
ROM_END
|
||||
|
||||
|
||||
@ -253,6 +316,76 @@ void megadriv_radica_6button_state::init_megadriv_radica_6button_ntsc()
|
||||
m_megadrive_io_write_data_port_ptr = write16sm_delegate(*this, FUNC(md_base_state::megadrive_io_write_data_port_6button));
|
||||
}
|
||||
|
||||
void megadriv_dgunl_state::init_dgunl3227()
|
||||
{
|
||||
uint8_t* rom = memregion("rom")->base();
|
||||
uint8_t* dst = memregion("maincpu")->base();
|
||||
|
||||
int baseaddr, size, dstaddr;
|
||||
//baseaddr = 0x200000; size = 0x40000; // unknown data (unused menu data maybe?)
|
||||
//baseaddr = 0x240000; size = 0x20000; // 'sample' program with UWOL header later too (lower part of menu program)
|
||||
//baseaddr = 0x260000; size = 0x20000; // pirate version of Columns with Sega text removed
|
||||
//baseaddr = 0x280000; size = 0x20000; // Fatal Labyrinth
|
||||
//baseaddr = 0x2a0000; size = 0x20000; // pirate version of Block Out with EA logo and text removed
|
||||
//baseaddr = 0x2c0000; size = 0x20000; // Flicky
|
||||
//baseaddr = 0x2e0000; size = 0x20000; // Shove It
|
||||
//baseaddr = 0x300000; size = 0x40000; // pirate version of Space Invaders 90 with Taito logos and copyright removed (also upper part of menu program - has extra header + bits of code for '202 in 1' menu which has been hacked to run the 3-in-1 menu)
|
||||
|
||||
// the following 3 games are available to select from the menu on this system
|
||||
//baseaddr = 0x340000; size = 0x40000; // Pac-Attack / Pac-Panic (used by this unit)
|
||||
//baseaddr = 0x380000; size = 0x40000; // Pac-Mania (used by this unit)
|
||||
//baseaddr = 0x3c0000; size = 0x40000; // Pac-Man (used by this unit) (2nd copy of header about halfway through?)
|
||||
|
||||
// copy 1st part of menu code
|
||||
baseaddr = 0x240000;
|
||||
size = 0x020000;
|
||||
dstaddr = 0x000000;
|
||||
for (int i = 0; i < size; i++)
|
||||
{
|
||||
dst[(i ^ 3) + dstaddr] = rom[baseaddr + i];
|
||||
}
|
||||
|
||||
// copy 2nd part of menu code
|
||||
baseaddr = 0x300000;
|
||||
size = 0x040000;
|
||||
dstaddr = 0x0c0000;
|
||||
for (int i = 0; i < size; i++)
|
||||
{
|
||||
dst[(i ^ 3) + dstaddr] = rom[baseaddr + i];
|
||||
}
|
||||
|
||||
// copy pac-panic to first bank
|
||||
baseaddr = 0x340000;
|
||||
size = 0x040000;
|
||||
dstaddr = 0x100000;
|
||||
for (int i = 0; i < size; i++)
|
||||
{
|
||||
dst[(i ^ 3) + dstaddr] = rom[baseaddr + i];
|
||||
}
|
||||
|
||||
// copy pac-mania to 2nd bank
|
||||
baseaddr = 0x380000;
|
||||
size = 0x040000;
|
||||
dstaddr = 0x180000;
|
||||
for (int i = 0; i < size; i++)
|
||||
{
|
||||
dst[(i ^ 3) + dstaddr] = rom[baseaddr + i];
|
||||
}
|
||||
|
||||
// copy pac-man to 3nd bank
|
||||
baseaddr = 0x3c0000;
|
||||
size = 0x040000;
|
||||
dstaddr = 0x200000;
|
||||
for (int i = 0; i < size; i++)
|
||||
{
|
||||
dst[(i ^ 3) + dstaddr] = rom[baseaddr + i];
|
||||
}
|
||||
|
||||
// other data isn't copied because it's never referenced, therefore we don't know how it gets accessed
|
||||
|
||||
init_megadriv();
|
||||
}
|
||||
|
||||
// US versions show 'Genesis' on the menu, show a www.radicagames.com splash screen, and use NTSC versions of the ROMs, sometimes region locked
|
||||
// EU versions show 'Mega Drive' on the menu, show a www.radicagames.com splash screen, and use PAL versions of the ROMs, sometimes region locked
|
||||
// UK versions show "Mega Drive' on the menu, show a www.radicauk.com splash screen, and use PAL versions of the ROMs, sometimes region locked
|
||||
@ -285,3 +418,8 @@ CONS( 2004, rad_orun, 0, 0, megadriv_radica_3button_pal, megadriv_radic
|
||||
// From a European unit but NTSC? - code is hacked from original USA Genesis game with region check still intact? (does the clone hardware always identify as such? or does the bypassed boot code skip the check?)
|
||||
// TODO: move out of here eventually once the enhanced MD part is emulated rather than bypassed (it's probably the same as the 145-in-1 multigame unit, but modified to only include this single game)
|
||||
CONS( 2018, msi_sf2, 0, 0, megadriv_radica_6button_ntsc, megadriv_msi_6button, megadriv_radica_6button_state, init_megadriv_radica_6button_ntsc, "MSI / Capcom / Sega", "Street Fighter II: Special Champion Edition (MSI Plug & Play) (Europe)", 0)
|
||||
|
||||
// this seems to have been hacked down from a larger multi-game unit, there are also a bunch of (unused?) pirate versions of MegaDrive / Genesis games in the ROM
|
||||
// this is the only 'Pocket Player' unit to use Genesis on a Chip tech, the others are NES on a chip.
|
||||
// some versions of this unit have an additional "Add Credits with 'A' or 'B'" screen after you select Pac-Man, this version does not.
|
||||
CONS( 2018, dgunl3227, 0, 0, megadriv_dgunl_ntsc, megadriv_dgunl_1player, megadriv_dgunl_state, init_dgunl3227, "dreamGEAR", "My Arcade Pac-Man Pocket Player (DGUNL-3227)", 0 )
|
||||
|
@ -1274,13 +1274,14 @@ ROM_START( ppgc200g )
|
||||
ROM_LOAD( "m29dw641.u2", 0x00000, 0x800000, CRC(b16dc677) SHA1(c1984fde4caf9345d41d127db946d1c21ec43ae0) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( dgun2869 )
|
||||
ROM_START( dgun2869 )
|
||||
ROM_REGION( 0x1000000, "mainrom", 0 )
|
||||
// 80000-bffff would not read consistently, but also appears to be missing some data entirely
|
||||
ROM_LOAD( "dgun2869.bin", 0x00000, 0x1000000, BAD_DUMP CRC(00ab846e) SHA1(721a6edf69d2eb75ee815eb3567c07d4d163d65f) ) // 29GL128
|
||||
ROM_LOAD( "myarcaderetromicro_s29gl128p11tfiv1_0001227e.bin", 0x00000, 0x1000000, CRC(5e7fded2) SHA1(cf55ae7a128e3254a22933150caf94e269303ffb) ) // 29GL128
|
||||
ROM_IGNORE(0x100)
|
||||
ROM_END
|
||||
|
||||
|
||||
|
||||
void nes_vt_state::init_protpp()
|
||||
{
|
||||
// this gets the tiles correct
|
||||
@ -1457,5 +1458,4 @@ CONS( 200?, dgun2500, 0, 0, nes_vt_16mb, nes_vt, nes_vt_state, empty_init, "d
|
||||
CONS( 201?, ppgc200g, 0, 0, nes_vt_pal_8mb, nes_vt, nes_vt_state, empty_init, "Fizz Creations", "Plug & Play Game Controller with 200 Games (Supreme 200)", MACHINE_IMPERFECT_GRAPHICS )
|
||||
|
||||
// unknown tech level, it's most likely a vt09 or vt369 but isn't using any of the extended features
|
||||
// NOT WORKING for now due to Flash ROM being faulty, giving inconsistent reads for some game areas (eg. Fishing) and seemingly having data entirely missing for Crystal Ball
|
||||
CONS( 201?, dgun2869, 0, 0, nes_vt_16mb, nes_vt, nes_vt_state, empty_init, "dreamGEAR", "My Arcade Retro Micro Controller - 220 Built-In Video Games (DGUN-2869)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
CONS( 201?, dgun2869, 0, 0, nes_vt_16mb, nes_vt, nes_vt_state, empty_init, "dreamGEAR", "My Arcade Retro Micro Controller - 220 Built-In Video Games (DGUN-2869)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
|
@ -1,6 +1,10 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Ryan Holtz, David Haywood
|
||||
|
||||
// JungleTac developed systems sold by Performance Designed Products, Lexibook etc.
|
||||
// these are mostly handhelds with built in screens, and seem to be newer(?) revisions of the software
|
||||
// of note, the way the audio is stored for Tiger Rescue has been updated and the core does not handle it properly at the moment
|
||||
|
||||
#include "emu.h"
|
||||
#include "includes/spg2xx.h"
|
||||
|
||||
|
@ -83,6 +83,7 @@ public:
|
||||
|
||||
void init_oplayer();
|
||||
void init_m505neo();
|
||||
void init_cdlyoko();
|
||||
|
||||
protected:
|
||||
virtual uint16_t porta_r() override;
|
||||
@ -884,6 +885,14 @@ ROM_START( oplayer )
|
||||
ROM_LOAD16_WORD_SWAP( "oplayer.bin", 0x0000000, 0x4000000, CRC(aa09c358) SHA1(df2855cdfdf2b693636cace8768e579b9d5bc657) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( cdlyoko ) // P1-25IN1-MAIN-V11 2011.05.09 on PCB
|
||||
ROM_REGION( 0x4000000, "maincpu", ROMREGION_ERASE00 )
|
||||
ROM_LOAD16_WORD_SWAP( "clg001z.u2", 0x0000000, 0x1000000, CRC(1e73b910) SHA1(6f6cece054fcf91ff78962358804471794c58615) )
|
||||
ROM_RELOAD(0x1000000,0x1000000)
|
||||
ROM_RELOAD(0x2000000,0x1000000)
|
||||
ROM_RELOAD(0x3000000,0x1000000)
|
||||
ROM_END
|
||||
|
||||
ROM_START( dnv200fs )
|
||||
ROM_REGION( 0x8000000, "maincpu", ROMREGION_ERASE00 )
|
||||
ROM_LOAD16_WORD_SWAP( "famsport200in1.u2", 0x0000000, 0x8000000, CRC(f59221e2) SHA1(d532cf5a80ffe9d527efcccbf380a7a860f0fbd9) )
|
||||
@ -984,6 +993,25 @@ void oplayer_100in1_state::init_m505neo()
|
||||
ROM[0x43c30 + (0x2000000 / 2)] = 0xf165; // boot main bank
|
||||
}
|
||||
|
||||
void oplayer_100in1_state::init_cdlyoko()
|
||||
{
|
||||
uint16_t* rom16 = (uint16_t*)memregion("maincpu")->base();
|
||||
int size = memregion("maincpu")->bytes();
|
||||
|
||||
std::vector<u16> buffer(size / 2);
|
||||
|
||||
for (int i = 0; i < size / 2; i++)
|
||||
{
|
||||
buffer[bitswap<25>(i, 0x18, 0x17, 0x16, 0x15, 0x13, 0x8, 0x12, 0x11, 0x14, 0x10, 0xf, 0xe, 0xd, 0xc, 0xb, 0xa, 0x9, 0x7, 0x6, 0x5, 0x4, 0x3, 0x2, 0x1, 0x0)] = rom16[i];
|
||||
}
|
||||
|
||||
std::copy(buffer.begin(), buffer.end(), &rom16[0]);
|
||||
|
||||
// patch a startup check, like oplayer
|
||||
for (int i = 0; i < 4; i++)
|
||||
rom16[0x493ed + ((0x1000000 * i) / 2)] = 0xf165;
|
||||
}
|
||||
|
||||
|
||||
void denver_200in1_state::init_denver()
|
||||
{
|
||||
@ -1019,11 +1047,12 @@ CONS( 200?, mywicodx, 0, 0, zon32bit, zon32bit, mywicodx_state, empty_init,
|
||||
// Shows Mi Guitar 2 in the menu, it seems likely that there was an earlier version on VT1682 hardware as there is a very similar Guitar game (with the same song selection) in those multigames
|
||||
CONS( 200?, mywicogt, 0, 0, zon32bit, mywicogt, mywicogt_state, empty_init, "<unknown> / Senca", "My Wico Guitar", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
|
||||
|
||||
// issues with 'low battery' always showing, but otherwise functional
|
||||
CONS( 200?, oplayer, 0, 0, zon32bit_bat, oplayer, oplayer_100in1_state, init_oplayer, "OPlayer / Senca", "OPlayer Mobile Game Console (MGS03-white) (Family Sport 100-in-1)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
|
||||
|
||||
CONS( 2012, m505neo, 0, 0, zon32bit_bat, oplayer, oplayer_100in1_state, init_m505neo, "Millennium 2000 GmbH / Senca", "Millennium M505 Arcade Neo Portable Spielkonsole (Family Sport 100-in-1)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
|
||||
|
||||
CONS( 2011, cdlyoko, 0, 0, zon32bit_bat, oplayer, oplayer_100in1_state, init_cdlyoko, "Ingo Devices SL / Senca", "Code Lyoko (25-in-1 handheld)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
|
||||
|
||||
// a version of this exists with the 'newer' style title screen seen in m505neo
|
||||
CONS( 2012, m521neo, 0, 0, zon32bit_bat, oplayer, denver_200in1_state, init_m521neo, "Millennium 2000 GmbH / Senca", "Millennium M521 Arcade Neo 2.0 (Family Sport 220-in-1) ", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
|
||||
|
@ -1,7 +1,8 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Ryan Holtz, David Haywood
|
||||
|
||||
/* 'Zone' systems */
|
||||
// JungleTac developed systems sold by under the 'Zone' and 'Wireless' brands these are mostly higer capacity (60+ game) units
|
||||
// also Waixing developed systems for the lower capacity (~40 game) units
|
||||
|
||||
#include "emu.h"
|
||||
#include "includes/spg2xx.h"
|
||||
|
@ -45,11 +45,14 @@ public:
|
||||
{ }
|
||||
|
||||
void vtech_storio(machine_config &config);
|
||||
void vtech_innotab(machine_config &config);
|
||||
|
||||
private:
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
|
||||
void vtech_storio_base(machine_config &config);
|
||||
|
||||
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(cart_load);
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
@ -94,7 +97,7 @@ static INPUT_PORTS_START( vtech_storio )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
void vtech_storio_state::vtech_storio(machine_config &config)
|
||||
void vtech_storio_state::vtech_storio_base(machine_config &config)
|
||||
{
|
||||
ARM9(config, m_maincpu, 240000000); // ARM926EJ-S CPU core (probably 240MHz, but not sure)
|
||||
|
||||
@ -111,9 +114,20 @@ void vtech_storio_state::vtech_storio(machine_config &config)
|
||||
m_cart->set_width(GENERIC_ROM16_WIDTH);
|
||||
m_cart->set_device_load(FUNC(vtech_storio_state::cart_load));
|
||||
|
||||
}
|
||||
|
||||
void vtech_storio_state::vtech_storio(machine_config &config)
|
||||
{
|
||||
vtech_storio_base(config);
|
||||
SOFTWARE_LIST(config, "cart_list").set_original("vtech_storio_cart");
|
||||
}
|
||||
|
||||
void vtech_storio_state::vtech_innotab(machine_config &config)
|
||||
{
|
||||
vtech_storio_base(config);
|
||||
SOFTWARE_LIST(config, "cart_list").set_original("vtech_innotab_cart");
|
||||
}
|
||||
|
||||
// BIOS is 1 GBIT (128M × 8 BIT) CMOS NAND EEPROM (Toshiba TC58NVG0S3ETA00)
|
||||
|
||||
// ROM image from VTech, not padded to the real ROM size
|
||||
@ -171,6 +185,11 @@ ROM_START( storionl )
|
||||
ROM_LOAD( "nldut-pack_20111017.bin", 0x000000, 0x03af81c6, CRC(6cfac599) SHA1(d16b45fd287c9d823bde13b88eb6c8158ac2b475) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( innotab2 )
|
||||
ROM_REGION( 0x08400000, "maincpu", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "innotab2.bin", 0x000000, 0x08400000, NO_DUMP )
|
||||
ROM_END
|
||||
|
||||
// year, name, parent, compat, machine, input, class, init, company, fullname, flags
|
||||
CONS( 2011, vreader, 0, 0, vtech_storio, vtech_storio, vtech_storio_state, empty_init, "VTech", "V.Reader (US, English, 2011-10-17)", MACHINE_IS_SKELETON )
|
||||
CONS( 2011, vreadercaen, vreader, 0, vtech_storio, vtech_storio, vtech_storio_state, empty_init, "VTech", "V.Reader (CA, English, 2011-10-17)", MACHINE_IS_SKELETON )
|
||||
@ -181,3 +200,5 @@ CONS( 2011, storioes, vreader, 0, vtech_storio, vtech_storio, vtech_sto
|
||||
CONS( 2011, storioesa, vreader, 0, vtech_storio, vtech_storio, vtech_storio_state, empty_init, "VTech", "Storio (ES, Spanish, 2011-06-17?)", MACHINE_IS_SKELETON )
|
||||
CONS( 2011, storiofr, vreader, 0, vtech_storio, vtech_storio, vtech_storio_state, empty_init, "VTech", "Storio (FR, French, 2011-10-17)", MACHINE_IS_SKELETON )
|
||||
CONS( 2011, storionl, vreader, 0, vtech_storio, vtech_storio, vtech_storio_state, empty_init, "VTech", "Storio (NL, Dutch, 2011-10-17)", MACHINE_IS_SKELETON )
|
||||
// the InnoTAB 1/2/3 seem closely related?
|
||||
CONS( 2011, innotab2, 0, 0, vtech_innotab, vtech_storio, vtech_storio_state, empty_init, "VTech", "InnoTAB 2 (UK)", MACHINE_IS_SKELETON )
|
||||
|
@ -20,6 +20,7 @@ public:
|
||||
void megadriv_radica_map(address_map &map);
|
||||
|
||||
protected:
|
||||
void megadriv_base_map(address_map &map);
|
||||
int m_bank;
|
||||
|
||||
private:
|
||||
@ -57,5 +58,29 @@ public:
|
||||
virtual void machine_start() override;
|
||||
};
|
||||
|
||||
class megadriv_dgunl_state : public megadriv_radica_3button_state
|
||||
{
|
||||
public:
|
||||
megadriv_dgunl_state(const machine_config& mconfig, device_type type, const char* tag)
|
||||
: megadriv_radica_3button_state(mconfig, type, tag)
|
||||
{}
|
||||
public:
|
||||
void megadriv_dgunl_ntsc(machine_config &config);
|
||||
|
||||
void init_dgunl3227();
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
|
||||
private:
|
||||
uint16_t read_a16300(offs_t offset, uint16_t mem_mask);
|
||||
uint16_t read_a16302(offs_t offset, uint16_t mem_mask);
|
||||
void write_a1630a(offs_t offset, uint16_t data, uint16_t mem_mask);
|
||||
|
||||
void megadriv_dgunl_map(address_map &map);
|
||||
uint16_t m_a1630a;
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif // MAME_INCLUDES_MEGADRIV_RAD_H
|
||||
|
@ -14854,6 +14854,7 @@ rp200
|
||||
@source:generalplus_gpl_unknown.cpp
|
||||
mapacman
|
||||
taspinv
|
||||
parcade
|
||||
|
||||
@source:generalplus_gpl162xx_lcdtype.cpp
|
||||
pcp8718
|
||||
@ -22310,6 +22311,7 @@ rad_sonic
|
||||
rad_sonicp
|
||||
rad_orun
|
||||
msi_sf2
|
||||
dgunl3227
|
||||
|
||||
@source:megadriv_sunplus_hybrid.cpp
|
||||
reactmd
|
||||
@ -38107,15 +38109,16 @@ sorcererb // Sorcerer with Digitrio fdc
|
||||
sorcererd // Sorcerer with Micropolis fdc
|
||||
|
||||
@source:storio.cpp
|
||||
vreader // (c) 2011 V.Tech
|
||||
vreadercaen // (c) 2011 V.Tech
|
||||
vreadercafr // (c) 2011 V.Tech
|
||||
innotab2 // (c) 2011 V.Tech
|
||||
storio // (c) 2011 V.Tech
|
||||
storiode // (c) 2011 V.Tech
|
||||
storioes // (c) 2011 V.Tech
|
||||
storioesa // (c) 2011 V.Tech
|
||||
storiofr // (c) 2011 V.Tech
|
||||
storionl // (c) 2011 V.Tech
|
||||
vreader // (c) 2011 V.Tech
|
||||
vreadercaen // (c) 2011 V.Tech
|
||||
vreadercafr // (c) 2011 V.Tech
|
||||
|
||||
@source:sothello.cpp
|
||||
sothello // (c) 1986 Success / Fujiwara.
|
||||
@ -38392,6 +38395,16 @@ sentx6p //
|
||||
sentx6puk
|
||||
sentx6pd
|
||||
|
||||
@source:spg2xx_senca.cpp
|
||||
cdlyoko
|
||||
dnv200fs
|
||||
m505neo
|
||||
m521neo
|
||||
mywicodx
|
||||
mywicogt
|
||||
oplayer
|
||||
zon32bit
|
||||
|
||||
@source:spg2xx_shredmjr.cpp
|
||||
taikeegr //
|
||||
rockstar
|
||||
@ -38430,16 +38443,7 @@ zone100 //
|
||||
lx_jg7415 //
|
||||
lx_jg7410
|
||||
zonemini
|
||||
react
|
||||
|
||||
@source:spg2xx_zone_32bit.cpp
|
||||
mywicodx //
|
||||
mywicogt
|
||||
zon32bit // Zone 32-bit
|
||||
oplayer
|
||||
dnv200fs
|
||||
m505neo
|
||||
m521neo
|
||||
react
|
||||
|
||||
@source:spiders.cpp
|
||||
spiders // (c) 1981 Sigma Ent. Inc.
|
||||
|
@ -934,6 +934,7 @@ spg2xx_pdc.cpp
|
||||
spg2xx_playvision.cpp
|
||||
spg2xx_senario.cpp
|
||||
spg2xx_senario_poker.cpp
|
||||
spg2xx_senca.cpp
|
||||
spg2xx_shredmjr.cpp
|
||||
spg2xx_skannerztv.cpp
|
||||
spg2xx_smarttv.cpp
|
||||
@ -942,7 +943,6 @@ spg2xx_tvgogo.cpp
|
||||
spg2xx_vii.cpp
|
||||
spg2xx_wiwi.cpp
|
||||
spg2xx_zone.cpp
|
||||
spg2xx_zone_32bit.cpp
|
||||
squale.cpp
|
||||
ssem.cpp
|
||||
st17xx.cpp
|
||||
|
Loading…
Reference in New Issue
Block a user