From 4e3fb779dcfe2dfe34feec7a816d4c9dfd4ee13b Mon Sep 17 00:00:00 2001 From: mixxmaster Date: Fri, 25 Sep 2015 20:01:28 +0800 Subject: [PATCH 1/3] Seperate Space Warp into it's own skeleton driver. --- scripts/target/mame/arcade.lua | 1 + src/mame/arcade.lst | 4 +- src/mame/drivers/galaxian.c | 20 ------- src/mame/drivers/spcwarp.c | 102 +++++++++++++++++++++++++++++++++ 4 files changed, 106 insertions(+), 21 deletions(-) create mode 100644 src/mame/drivers/spcwarp.c diff --git a/scripts/target/mame/arcade.lua b/scripts/target/mame/arcade.lua index 189cc1f27ee..88ae7681ae9 100644 --- a/scripts/target/mame/arcade.lua +++ b/scripts/target/mame/arcade.lua @@ -3534,6 +3534,7 @@ files { MAME_DIR .. "src/mame/drivers/slotcarn.c", MAME_DIR .. "src/mame/drivers/smsmcorp.c", MAME_DIR .. "src/mame/drivers/sothello.c", + MAME_DIR .. "src/mame/drivers/spcwarp.c", MAME_DIR .. "src/mame/drivers/splus.c", MAME_DIR .. "src/mame/drivers/spool99.c", MAME_DIR .. "src/mame/drivers/sprcros2.c", diff --git a/src/mame/arcade.lst b/src/mame/arcade.lst index 529864f503c..1499d192536 100644 --- a/src/mame/arcade.lst +++ b/src/mame/arcade.lst @@ -278,7 +278,6 @@ ckongis // porter // 1982 bootleg (Arcade TV Game List - P.98, Left, 15 from bottom) tdpgal // 1983 Design Labs / Thomas Automatics guttangt -spcwarp // 1983 Century Electronics UK LTD // Has some similarities with Moon Cresta but Board is very different rockclim // (c)1981 Taito @@ -1624,6 +1623,9 @@ huncholy // (c) 1984 Seatongrove (c) CVS quasar // (c) 1980 Zelco Games Italy quasara // (c) 1980 Zelco Games Italy +// Unknown Century Electronics hardware (CVS?) +spcwarp // 1983 Century Electronics UK LTD + // Midway "Astrocade" games seawolf2 // (c) 1978 spacezap // (c) 1980 diff --git a/src/mame/drivers/galaxian.c b/src/mame/drivers/galaxian.c index e47a72c4aca..813674baacc 100644 --- a/src/mame/drivers/galaxian.c +++ b/src/mame/drivers/galaxian.c @@ -6750,25 +6750,6 @@ ROM_START( galaxian ) ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) ) ROM_END -/* Suspected of being Space Warp - ASCII shows "COPYRIGHT 1983", "CENTURY ELECTRONICS UK LTD" in swarpt7f.bin */ -/* S2650 CPU, not Z80. gfx is like cosmos(cvs.c) */ -ROM_START( spcwarp ) - ROM_REGION( 0x4000, "maincpu", 0 ) - ROM_LOAD( "swarpt7f.bin", 0x0000, 0x1000, CRC(04d744e3) SHA1(db8218510052a05670cb0b722b73d3f10464788c) ) - ROM_LOAD( "swarpt7h.bin", 0x1000, 0x1000, CRC(34a36536) SHA1(bc438515618683b2a7c29637871ee00ed95ad7f8) ) -/* ROMCMP reports "BADADDR xxxxxx-xxxxx". Observed data sequence repeated every 32 bytes */ - ROM_LOAD( "swarpt7m.bin", 0x2000, 0x1000, BAD_DUMP CRC(a2dff6c8) SHA1(d1c72848450dc5ff386dc94a26e4bf704ccc7121) ) -/* Stripped "repaired" rom. Was original rom supposed to be 0x1000 or 0x800? */ -// ROM_LOAD( "swarpt7m-repair.bin", 0x2000, 0x0800, CRC(109f95cf) SHA1(d99171ffd6639fec28966edaf7cce3a4df5e948d) ) - - ROM_REGION( 0x1000, "gfx1", 0 ) - ROM_LOAD( "swarpb1h.bin", 0x0000, 0x0800, CRC(6ee3b5f7) SHA1(8150f2ecd59d3a165c0541b550664c56d049edd5) ) - ROM_LOAD( "swarpb1k.bin", 0x0800, 0x0800, CRC(da4cee6b) SHA1(28b91381658f598fa62049489beee443232825c6) ) - - ROM_REGION( 0x0020, "proms", 0 ) /* unknown - using Galaxian's prom for now */ - ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) ) -ROM_END - ROM_START( galaxiana ) ROM_REGION( 0x4000, "maincpu", 0 ) ROM_LOAD( "7f.bin", 0x0000, 0x1000, CRC(4335b1de) SHA1(e41e3d90dac738cf71377f3b476ec67b14dee27a) ) @@ -10826,7 +10807,6 @@ GAME( 1980, luctoday, 0, galaxian, luctoday, galaxian_state, galax GAME( 19??, chewing, luctoday, galaxian, luctoday, galaxian_state, galaxian, ROT90, "", "Chewing Gum", MACHINE_SUPPORTS_SAVE ) GAME( 1982, catacomb, 0, galaxian, catacomb, galaxian_state, galaxian, ROT90, "MTM Games", "Catacomb", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) GAME( 19??, omega, theend, galaxian, omega, galaxian_state, galaxian, ROT270, "bootleg?", "Omega", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, spcwarp, 0, galaxian, galaxian, galaxian_state, galaxian, ROT90, "Century Electronics", "Space Warp?", MACHINE_NOT_WORKING | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) /* these games require the coin lockout mechanism to be disabled */ GAME( 1981, warofbug, 0, galaxian, warofbug, galaxian_state, nolock, ROT90, "Armenia / Food and Fun Corp", "War of the Bugs or Monsterous Manouvers in a Mushroom Maze", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/spcwarp.c b/src/mame/drivers/spcwarp.c new file mode 100644 index 00000000000..418799827ae --- /dev/null +++ b/src/mame/drivers/spcwarp.c @@ -0,0 +1,102 @@ +// license:BSD-3-Clause +// copyright-holders:kazblox +/* +Space Warp(?) +it's completely unknown if this is actually Space Warp but it contains Galaxian-like GFX +ASCII shows "COPYRIGHT 1983", "CENTURY ELECTRONICS UK LTD" in swarpt7f.bin +gfx is like cosmos according to hap(cvs.c) +*/ + +#include "emu.h" +#include "cpu/s2650/s2650.h" + +class spcwarp_state : public driver_device +{ +public: + spcwarp_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu") + { } + + virtual void machine_start(); + virtual void machine_reset(); + required_device m_maincpu; +}; + +//INTERRUPT_GEN_MEMBER(spcwarp_state::spcwarp_main_cpu_interrupt) +//{ +// device.execute().set_input_line_vector(0, 0x03); +//} + +static ADDRESS_MAP_START( spcwarp_map, AS_PROGRAM, 8, spcwarp_state ) + AM_RANGE(0x0000, 0x3fff) AM_ROM +ADDRESS_MAP_END + +static INPUT_PORTS_START( spcwarp ) + PORT_START("IN0") + PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) +INPUT_PORTS_END + +void spcwarp_state::machine_start() +{ +} + +void spcwarp_state::machine_reset() +{ +} + +static MACHINE_CONFIG_START( spcwarp, spcwarp_state ) + + /* basic machine hardware */ + MCFG_CPU_ADD("maincpu", S2650, XTAL_14_31818MHz/16) // clock is a complete guess + MCFG_CPU_PROGRAM_MAP(spcwarp_map) + //MCFG_CPU_VBLANK_INT_DRIVER("screen", spcwarp_state, spcwarp_main_cpu_interrupt) // ??? + //MCFG_S2650_FLAG_HANDLER(WRITELINE(spcwarp_state, write_s2650_flag)) // ??? + + /* video hardware */ + /* todo: this */ + + /* audio hardware */ + MCFG_SPEAKER_STANDARD_MONO("mono") + /* todo: this */ + +MACHINE_CONFIG_END + +ROM_START( spcwarp ) + ROM_REGION( 0x4000, "maincpu", 0 ) + ROM_LOAD( "swarpt7f.bin", 0x0000, 0x1000, CRC(04d744e3) SHA1(db8218510052a05670cb0b722b73d3f10464788c) ) + ROM_LOAD( "swarpt7h.bin", 0x1000, 0x1000, CRC(34a36536) SHA1(bc438515618683b2a7c29637871ee00ed95ad7f8) ) +/* ROMCMP reports "BADADDR xxxxxx-xxxxx". Observed data sequence repeated every 32 bytes */ + ROM_LOAD( "swarpt7m.bin", 0x2000, 0x1000, BAD_DUMP CRC(a2dff6c8) SHA1(d1c72848450dc5ff386dc94a26e4bf704ccc7121) ) +/* Stripped "repaired" rom. Was original rom supposed to be 0x1000 or 0x800? */ +// ROM_LOAD( "swarpt7m-repair.bin", 0x2000, 0x0800, CRC(109f95cf) SHA1(d99171ffd6639fec28966edaf7cce3a4df5e948d) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "swarpb1h.bin", 0x0000, 0x0800, CRC(6ee3b5f7) SHA1(8150f2ecd59d3a165c0541b550664c56d049edd5) ) + ROM_LOAD( "swarpb1k.bin", 0x0800, 0x0800, CRC(da4cee6b) SHA1(28b91381658f598fa62049489beee443232825c6) ) +ROM_END + +GAME( 1983, spcwarp, 0, spcwarp, spcwarp, driver_device, 0, ROT90, "Century Electronics", "Space Warp?", MACHINE_IS_SKELETON ) \ No newline at end of file From 70a8c7c1631bc24fefabc2445b59db04f6c9a746 Mon Sep 17 00:00:00 2001 From: kazblox Date: Sat, 26 Sep 2015 08:47:41 +0800 Subject: [PATCH 2/3] extra notes for Astro Wars in galaxia.c (nw) --- src/mame/drivers/galaxia.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/mame/drivers/galaxia.c b/src/mame/drivers/galaxia.c index f5e67f1e1c4..1e52fa6f881 100644 --- a/src/mame/drivers/galaxia.c +++ b/src/mame/drivers/galaxia.c @@ -54,6 +54,9 @@ Manual and Schematic for Galaxia can be found at: http://www.zzzaccaria.com/manuals/SuperGalaxiansTechnicalManual.zip http://www.zzzaccaria.com/manuals/GalaxiaSchematics.zip +The manual for Astro Wars can also be found at: +http://www.opdenkelder.com/Astrowars_manual.zip + HW has many similarities with quasar.c / cvs.c / zac2650.c --- From 13bbe5e7cee7528f867ca20ceead8711cdfb75c7 Mon Sep 17 00:00:00 2001 From: kazblox Date: Sun, 27 Sep 2015 00:31:02 +0800 Subject: [PATCH 3/3] spcwarp.c - fix romsize in memory map, remove a bit of guesswork Still gets nowhere in booting. --- src/mame/drivers/spcwarp.c | 56 +++++++++++++------------------------- 1 file changed, 19 insertions(+), 37 deletions(-) diff --git a/src/mame/drivers/spcwarp.c b/src/mame/drivers/spcwarp.c index 418799827ae..67fb9257bf9 100644 --- a/src/mame/drivers/spcwarp.c +++ b/src/mame/drivers/spcwarp.c @@ -5,6 +5,12 @@ Space Warp(?) it's completely unknown if this is actually Space Warp but it contains Galaxian-like GFX ASCII shows "COPYRIGHT 1983", "CENTURY ELECTRONICS UK LTD" in swarpt7f.bin gfx is like cosmos according to hap(cvs.c) + +9/25/2015 - Initial commit of skeleton driver + +TODO: +-merge with cvs_state + */ #include "emu.h" @@ -23,41 +29,13 @@ public: required_device m_maincpu; }; -//INTERRUPT_GEN_MEMBER(spcwarp_state::spcwarp_main_cpu_interrupt) -//{ -// device.execute().set_input_line_vector(0, 0x03); -//} - static ADDRESS_MAP_START( spcwarp_map, AS_PROGRAM, 8, spcwarp_state ) - AM_RANGE(0x0000, 0x3fff) AM_ROM + AM_RANGE(0x0000, 0x2fff) AM_ROM ADDRESS_MAP_END static INPUT_PORTS_START( spcwarp ) - PORT_START("IN0") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + //PORT_START("SENSE") + //PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") INPUT_PORTS_END void spcwarp_state::machine_start() @@ -76,13 +54,17 @@ static MACHINE_CONFIG_START( spcwarp, spcwarp_state ) //MCFG_CPU_VBLANK_INT_DRIVER("screen", spcwarp_state, spcwarp_main_cpu_interrupt) // ??? //MCFG_S2650_FLAG_HANDLER(WRITELINE(spcwarp_state, write_s2650_flag)) // ??? - /* video hardware */ - /* todo: this */ + /* TODO video hardware */ + /* copypaste from cvs.c */ + //MCFG_SCREEN_ADD("screen", RASTER) + //MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) + //MCFG_SCREEN_REFRESH_RATE(50) + //MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) + //MCFG_SCREEN_SIZE(256, 256) + //MCFG_SCREEN_VISIBLE_AREA(0*8, 30*8-1, 2*8, 32*8-1) - /* audio hardware */ + /* TODO audio hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - /* todo: this */ - MACHINE_CONFIG_END ROM_START( spcwarp ) @@ -99,4 +81,4 @@ ROM_START( spcwarp ) ROM_LOAD( "swarpb1k.bin", 0x0800, 0x0800, CRC(da4cee6b) SHA1(28b91381658f598fa62049489beee443232825c6) ) ROM_END -GAME( 1983, spcwarp, 0, spcwarp, spcwarp, driver_device, 0, ROT90, "Century Electronics", "Space Warp?", MACHINE_IS_SKELETON ) \ No newline at end of file +GAME( 1983, spcwarp, 0, spcwarp, spcwarp, driver_device, 0, ROT90, "Century Electronics", "Space Warp?", MACHINE_IS_SKELETON )