mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
New WORKING clone (#4127)
* New WORKING clone ---------------------------------- Twins [David Torres, ClawGrip, Recreativas.org] It seems that the set from Ecogames is the older and original version, and that Electronic Devices later licensed it. There are also some other ED licensed games from Ecogames: http://www.tilt.it/deb/edevg-en.html The games shows 1993, and the PCB is also marked with "191193" * Add "twinseg" * Make the Ecogames the parent set * Rename "twins" and clones to make the Ecogames set the new parent
This commit is contained in:
parent
484aef7697
commit
8a72528a73
@ -8,6 +8,36 @@ Electronic Devices, 1994
|
||||
PCB Layout
|
||||
----------
|
||||
|
||||
ECOGAMES Twins
|
||||
_________________________________________________________
|
||||
| LABEL: VIDEOR-191193 |
|
||||
| ____________________ _____________ |
|
||||
| | U24 40PIN DEVICE | | IMSG176P-66| ____|
|
||||
| |__________________| |____________| |
|
||||
| |___
|
||||
| ___________ 74HC574 ___________ 74HC574 ----|
|
||||
| | D43256AC | | D43256AC | ----|
|
||||
| |__________| 74LS245 |__________| 74LS245 ----|
|
||||
| ----|
|
||||
| 74LS245 74HC573 74LS245 74HC573 ----|
|
||||
| ____________ ____________ __________________ ----|
|
||||
| | 84256A-10L| | 84256A-10L| | AY-3-8910A | ----|
|
||||
| |___________| |___________| |_________________| ----|
|
||||
| _____________ _____________ ----|
|
||||
| | 1 27C4001 | | 2 27C4001 | ----|
|
||||
| |____________| |____________| ___________________ ----|
|
||||
| |U30 40PIN DEVICE | ----|
|
||||
| 74LS245 74LS245 74HC573 |_________________| ----|
|
||||
| ----|
|
||||
| 74HC573 74HC573 74HC74 ____|
|
||||
| __________________ |
|
||||
| |NEC V30 9327N5 | 74HC04 24C2AB1 |___
|
||||
| |_________________| XTAL8MHz |
|
||||
|________________________________________________________|
|
||||
|
||||
|
||||
ELECTRONIC DEVICES Twins
|
||||
|
||||
This is a very tiny PCB,
|
||||
only about 6 inches square.
|
||||
|
||||
@ -23,13 +53,12 @@ only about 6 inches square.
|
||||
| AY3-8910 |
|
||||
| D70116|
|
||||
|-----------------------|
|
||||
|
||||
Notes:
|
||||
V30 clock : 8.000MHz (16/2)
|
||||
AY3-8910 clock : 2.000MHz (16/8)
|
||||
VSync : 50Hz
|
||||
|
||||
|
||||
|
||||
seems a similar board to Hot Blocks
|
||||
|
||||
same TPC1020 AFN-084C chip
|
||||
@ -52,12 +81,12 @@ Spider PCB appears almost identical but uses additional 'blitter' features.
|
||||
It is possible the Twins PCB has them too and doesn't use them.
|
||||
|
||||
|
||||
Twins (set 2) is significantly changed hardware, uses a regular RAMDAC hookup for plaette etc.
|
||||
Twins (Electronic Devices license, set 2) is significantly changed hardware, uses a regular RAMDAC hookup for plaette etc.
|
||||
|
||||
|
||||
To access Service Mode in Spider you must boot with P1 Left and P1 Right held down,
|
||||
this requires the -joystick_contradictory switch on the commandline.
|
||||
|
||||
|
||||
*/
|
||||
|
||||
#include "emu.h"
|
||||
@ -69,7 +98,6 @@ this requires the -joystick_contradictory switch on the commandline.
|
||||
#include "screen.h"
|
||||
#include "speaker.h"
|
||||
|
||||
|
||||
class twins_state : public driver_device
|
||||
{
|
||||
public:
|
||||
@ -84,8 +112,8 @@ public:
|
||||
{ }
|
||||
|
||||
void spider(machine_config &config);
|
||||
void twinsed1(machine_config &config);
|
||||
void twins(machine_config &config);
|
||||
void twinsa(machine_config &config);
|
||||
|
||||
private:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
@ -125,9 +153,9 @@ private:
|
||||
|
||||
void ramdac_map(address_map &map);
|
||||
void spider_io(address_map &map);
|
||||
void twins_io(address_map &map);
|
||||
void twinsed1_io(address_map &map);
|
||||
void twins_map(address_map &map);
|
||||
void twinsa_io(address_map &map);
|
||||
void twins_io(address_map &map);
|
||||
};
|
||||
|
||||
|
||||
@ -290,7 +318,7 @@ void twins_state::twins_map(address_map &map)
|
||||
map(0x00000, 0xfffff).rw(FUNC(twins_state::spider_blitter_r), FUNC(twins_state::spider_blitter_w));
|
||||
}
|
||||
|
||||
void twins_state::twins_io(address_map &map)
|
||||
void twins_state::twinsed1_io(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x0003).w("aysnd", FUNC(ay8910_device::address_data_w)).umask16(0x00ff);
|
||||
map(0x0002, 0x0002).r("aysnd", FUNC(ay8910_device::data_r));
|
||||
@ -314,8 +342,6 @@ void twins_state::video_start()
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
uint32_t twins_state::screen_update_twins(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
int y,x,count;
|
||||
@ -392,11 +418,11 @@ static INPUT_PORTS_START(twins)
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(twins_state::twins)
|
||||
MACHINE_CONFIG_START(twins_state::twinsed1)
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", V30, 8000000)
|
||||
MCFG_DEVICE_PROGRAM_MAP(twins_map)
|
||||
MCFG_DEVICE_IO_MAP(twins_io)
|
||||
MCFG_DEVICE_IO_MAP(twinsed1_io)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
@ -418,11 +444,11 @@ MACHINE_CONFIG_START(twins_state::twins)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
/* The second set has different palette hardware and a different port map */
|
||||
|
||||
/* The Ecogames set and the Electronic Devices second set has different palette hardware
|
||||
and a different port map than Electronic Devices first set */
|
||||
|
||||
|
||||
void twins_state::twinsa_io(address_map &map)
|
||||
void twins_state::twins_io(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x0000).w("ramdac", FUNC(ramdac_device::index_w));
|
||||
map(0x0002, 0x0002).w("ramdac", FUNC(ramdac_device::mask_w));
|
||||
@ -439,11 +465,11 @@ void twins_state::ramdac_map(address_map &map)
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(twins_state::twinsa)
|
||||
MACHINE_CONFIG_START(twins_state::twins)
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", V30, XTAL(16'000'000)/2) /* verified on pcb */
|
||||
MCFG_DEVICE_PROGRAM_MAP(twins_map)
|
||||
MCFG_DEVICE_IO_MAP(twinsa_io)
|
||||
MCFG_DEVICE_IO_MAP(twins_io)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
@ -563,9 +589,6 @@ void twins_state::spider_io(address_map &map)
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(twins_state::spider)
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", V30, 8000000)
|
||||
@ -594,7 +617,19 @@ MACHINE_CONFIG_START(twins_state::spider)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
/* ECOGAMES Twins */
|
||||
ROM_START( twins )
|
||||
ROM_REGION( 0x100000, "maincpu", 0 )
|
||||
ROM_LOAD16_BYTE( "2.u8", 0x000000, 0x080000, CRC(1ec942b0) SHA1(627deb739c50f93c4cb61b8baf2a07213f1613b3) )
|
||||
ROM_LOAD16_BYTE( "1.u9", 0x000001, 0x080000, CRC(4417ff34) SHA1(be992128fe48556a0a7c018953702b4ce9076526) )
|
||||
|
||||
/* Unused */
|
||||
ROM_REGION( 0x000100, "extra", 0 )
|
||||
ROM_LOAD("24c02.u15", 0x000000, 0x000100, CRC(5ba30b14) SHA1(461f701879b76f1784705e067a5b6b31bfda4606) )
|
||||
ROM_END
|
||||
|
||||
/** Electronic Devices Twins */
|
||||
ROM_START( twinsed1 )
|
||||
ROM_REGION( 0x100000, "maincpu", 0 )
|
||||
ROM_LOAD16_BYTE( "1.bin", 0x000000, 0x080000, CRC(d5ef7b0d) SHA1(7261dca5bb0aef755b4f2b85a159b356e7ac8219) )
|
||||
ROM_LOAD16_BYTE( "2.bin", 0x000001, 0x080000, CRC(8a5392f4) SHA1(e6a2ecdb775138a87d27aa4ad267bdec33c26baa) )
|
||||
@ -618,7 +653,7 @@ hmm, we're only emulating 1x ay-3-8910, is the other at port 0 on this?
|
||||
|
||||
*/
|
||||
|
||||
ROM_START( twinsa )
|
||||
ROM_START( twinsed2 )
|
||||
ROM_REGION( 0x100000, "maincpu", 0 )
|
||||
ROM_LOAD16_BYTE( "lp.bin", 0x000000, 0x080000, CRC(4f07862e) SHA1(fbda1973f79c6938c7f026a4db706e78781c2df8) )
|
||||
ROM_LOAD16_BYTE( "hp.bin", 0x000001, 0x080000, CRC(aaf74b83) SHA1(09bd76b9fc5cb7ba6ffe1a2581ffd5633fe440b3) )
|
||||
@ -630,7 +665,8 @@ ROM_START( spider )
|
||||
ROM_LOAD16_BYTE( "21.bin", 0x000000, 0x080000, CRC(ff224206) SHA1(d8d45850983542e811facc917d016841fc56a97f) )
|
||||
ROM_END
|
||||
|
||||
GAME( 1994, twins, 0, twins, twins, twins_state, empty_init, ROT0, "Electronic Devices", "Twins (set 1)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1994, twinsa, twins, twinsa, twins, twins_state, empty_init, ROT0, "Electronic Devices", "Twins (set 2)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1993, twins, 0, twins, twins, twins_state, empty_init, ROT0, "Ecogames", "Twins", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1994, twinsed1, twins, twinsed1, twins, twins_state, empty_init, ROT0, "Ecogames (Electronic Devices license)", "Twins (Electronic Devices license, set 1)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1994, twinsed2, twins, twins, twins, twins_state, empty_init, ROT0, "Ecogames (Electronic Devices license)", "Twins (Electronic Devices license, set 2)", MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1994, spider, 0, spider, twins, twins_state, empty_init, ROT0, "Buena Vision", "Spider", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1994, spider, 0, spider, twins, twins_state, empty_init, ROT0, "Buena Vision", "Spider", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
|
||||
|
@ -37936,8 +37936,9 @@ gq863 //
|
||||
|
||||
@source:twins.cpp
|
||||
spider //
|
||||
twins // (c) 1994
|
||||
twinsa // (c) 1994
|
||||
twins // (c) 1993 Ecogames
|
||||
twinsed1 // (c) 1994 Electronic Devices
|
||||
twinsed2 // (c) 1994 Electronic Devices
|
||||
|
||||
@source:tx0.cpp
|
||||
tx0_64kw // April 1956 MIT TX-0 (64kw RAM)
|
||||
|
Loading…
Reference in New Issue
Block a user