From 8a72528a739d3fd9670e4ff090551bdf1fd35629 Mon Sep 17 00:00:00 2001 From: ClawGrip Date: Fri, 12 Oct 2018 16:56:28 +0200 Subject: 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 --- src/mame/drivers/twins.cpp | 86 ++++++++++++++++++++++++++++++++-------------- src/mame/mame.lst | 5 +-- 2 files changed, 64 insertions(+), 27 deletions(-) diff --git a/src/mame/drivers/twins.cpp b/src/mame/drivers/twins.cpp index 27f0b3b7e7b..ba886dcc826 100644 --- a/src/mame/drivers/twins.cpp +++ b/src/mame/drivers/twins.cpp @@ -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 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 ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 6163d07d120..869af8124d1 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -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) -- cgit v1.2.3