summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/tecmo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/tecmo.cpp')
-rw-r--r--src/mame/drivers/tecmo.cpp1341
1 files changed, 0 insertions, 1341 deletions
diff --git a/src/mame/drivers/tecmo.cpp b/src/mame/drivers/tecmo.cpp
deleted file mode 100644
index b0f431cb693..00000000000
--- a/src/mame/drivers/tecmo.cpp
+++ /dev/null
@@ -1,1341 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Nicola Salmoria
-/***************************************************************************
-
-tecmo.cpp
-
-driver by Nicola Salmoria
-
-TODO:
-- raster effect in Gemini Wing THE END ending, needs a side-by-side test with
- a real board and maybe waitstate penalties;
-
-Notes:
-- btanb: missing drums in backfirt, there isn't any ADPCM / rom that makes
- that to happen (code still tries to writes on that, but it's just nop'ed);
-
-Silkworm memory map (preliminary)
-
-0000-bfff ROM
-c000-c1ff Background video RAM #2
-c200-c3ff Background color RAM #2
-c400-c5ff Background video RAM #1
-c600-c7ff Background color RAM #1
-c800-cbff Video RAM
-cc00-cfff Color RAM
-d000-dfff RAM
-e000-e7ff Sprites
-e800-efff Palette RAM, groups of 2 bytes, 4 bits per gun: xB RG
- e800-e9ff sprites
- ea00-ebff characters
- ec00-edff bg #1
- ee00-efff bg #2
-f000-f7ff window for banked ROM
-
-read:
-f800 IN0 (heli) bit 0-3
-f801 IN0 bit 4-7
-f802 IN1 (jeep) bit 0-3
-f803 IN1 bit 4-7
-f806 DSWA bit 0-3
-f807 DSWA bit 4-7
-f808 DSWB bit 0-3
-f809 DSWB bit 4-7
-f80e SYS_3 bit 0 (swap jeep/heli, proto sets only)
-f80f COIN
-
-write:
-f800-f801 bg #1 x scroll
-f802 bg #1 y scroll
-f803-f804 bg #2 x scroll
-f805 bg #2 y scroll
-f806 ????
-f808 ROM bank selector
-f809 ????
-f80b ????
-
-***************************************************************************/
-
-#include "emu.h"
-#include "includes/tecmo.h"
-
-#include "cpu/z80/z80.h"
-#include "machine/gen_latch.h"
-#include "machine/watchdog.h"
-#include "sound/3526intf.h"
-#include "sound/3812intf.h"
-#include "speaker.h"
-
-
-WRITE8_MEMBER(tecmo_state::bankswitch_w)
-{
- m_mainbank->set_entry(data >> 3);
-}
-
-WRITE8_MEMBER(tecmo_state::adpcm_start_w)
-{
- m_adpcm_pos = data << 8;
- m_msm->reset_w(0);
-}
-
-WRITE8_MEMBER(tecmo_state::adpcm_end_w)
-{
- m_adpcm_end = (data + 1) << 8;
-}
-
-WRITE8_MEMBER(tecmo_state::adpcm_vol_w)
-{
- m_msm->set_output_gain(ALL_OUTPUTS, (data & 15) / 15.0);
-}
-
-WRITE_LINE_MEMBER(tecmo_state::adpcm_int)
-{
- if (m_adpcm_pos >= m_adpcm_end ||
- m_adpcm_pos >= m_adpcm_rom.bytes())
- m_msm->reset_w(1);
- else if (m_adpcm_data != -1)
- {
- m_msm->write_data(m_adpcm_data & 0x0f);
- m_adpcm_data = -1;
- }
- else
- {
- m_adpcm_data = m_adpcm_rom[m_adpcm_pos++];
- m_msm->write_data(m_adpcm_data >> 4);
- }
-}
-
-/* the 8-bit dipswitches are split across addresses */
-READ8_MEMBER(tecmo_state::dswa_l_r)
-{
- uint8_t port = ioport("DSWA")->read();
- port &= 0x0f;
- return port;
-}
-
-READ8_MEMBER(tecmo_state::dswa_h_r)
-{
- uint8_t port = ioport("DSWA")->read();
- port &= 0xf0;
- return port>>4;
-}
-
-READ8_MEMBER(tecmo_state::dswb_l_r)
-{
- uint8_t port = ioport("DSWB")->read();
- port &= 0x0f;
- return port;
-}
-
-READ8_MEMBER(tecmo_state::dswb_h_r)
-{
- uint8_t port = ioport("DSWB")->read();
- port &= 0xf0;
- return port>>4;
-}
-
-
-void tecmo_state::rygar_map(address_map &map)
-{
- map(0x0000, 0xbfff).rom();
- map(0xc000, 0xcfff).ram();
- map(0xd000, 0xd7ff).ram().w(FUNC(tecmo_state::txvideoram_w)).share("txvideoram");
- map(0xd800, 0xdbff).ram().w(FUNC(tecmo_state::fgvideoram_w)).share("fgvideoram");
- map(0xdc00, 0xdfff).ram().w(FUNC(tecmo_state::bgvideoram_w)).share("bgvideoram");
- map(0xe000, 0xe7ff).ram().share("spriteram");
- map(0xe800, 0xefff).ram().w(m_palette, FUNC(palette_device::write8)).share("palette");
- map(0xf000, 0xf7ff).bankr("mainbank");
- map(0xf800, 0xf800).portr("JOY1");
- map(0xf801, 0xf801).portr("BUTTONS1");
- map(0xf802, 0xf802).portr("JOY2");
- map(0xf803, 0xf803).portr("BUTTONS2");
- map(0xf804, 0xf804).portr("SYS_0");
- map(0xf805, 0xf805).portr("SYS_1");
- map(0xf806, 0xf806).r(FUNC(tecmo_state::dswa_l_r));
- map(0xf807, 0xf807).r(FUNC(tecmo_state::dswa_h_r));
- map(0xf808, 0xf808).r(FUNC(tecmo_state::dswb_l_r));
- map(0xf809, 0xf809).r(FUNC(tecmo_state::dswb_h_r));
- map(0xf80f, 0xf80f).portr("SYS_2");
- map(0xf800, 0xf802).w(FUNC(tecmo_state::fgscroll_w)).share("fgscroll");
- map(0xf803, 0xf805).w(FUNC(tecmo_state::bgscroll_w)).share("bgscroll");
- map(0xf806, 0xf806).w("soundlatch", FUNC(generic_latch_8_device::write));
- map(0xf807, 0xf807).w(FUNC(tecmo_state::flipscreen_w));
- map(0xf808, 0xf808).w(FUNC(tecmo_state::bankswitch_w));
- map(0xf80b, 0xf80b).w("watchdog", FUNC(watchdog_timer_device::reset_w));
-}
-
-void tecmo_state::gemini_map(address_map &map)
-{
- map(0x0000, 0xbfff).rom();
- map(0xc000, 0xcfff).ram();
- map(0xd000, 0xd7ff).ram().w(FUNC(tecmo_state::txvideoram_w)).share("txvideoram");
- map(0xd800, 0xdbff).ram().w(FUNC(tecmo_state::fgvideoram_w)).share("fgvideoram");
- map(0xdc00, 0xdfff).ram().w(FUNC(tecmo_state::bgvideoram_w)).share("bgvideoram");
- map(0xe000, 0xe7ff).ram().w(m_palette, FUNC(palette_device::write8)).share("palette");
- map(0xe800, 0xefff).ram().share("spriteram");
- map(0xf000, 0xf7ff).bankr("mainbank");
- map(0xf800, 0xf800).portr("JOY1");
- map(0xf801, 0xf801).portr("BUTTONS1");
- map(0xf802, 0xf802).portr("JOY2");
- map(0xf803, 0xf803).portr("BUTTONS2");
- map(0xf804, 0xf804).portr("SYS_0");
- map(0xf805, 0xf805).portr("SYS_1");
- map(0xf806, 0xf806).r(FUNC(tecmo_state::dswa_l_r));
- map(0xf807, 0xf807).r(FUNC(tecmo_state::dswa_h_r));
- map(0xf808, 0xf808).r(FUNC(tecmo_state::dswb_l_r));
- map(0xf809, 0xf809).r(FUNC(tecmo_state::dswb_h_r));
- map(0xf80f, 0xf80f).portr("SYS_2");
- map(0xf800, 0xf802).w(FUNC(tecmo_state::fgscroll_w)).share("fgscroll");
- map(0xf803, 0xf805).w(FUNC(tecmo_state::bgscroll_w)).share("bgscroll");
- map(0xf806, 0xf806).w("soundlatch", FUNC(generic_latch_8_device::write));
- map(0xf807, 0xf807).w(FUNC(tecmo_state::flipscreen_w));
- map(0xf808, 0xf808).w(FUNC(tecmo_state::bankswitch_w));
- map(0xf80b, 0xf80b).w("watchdog", FUNC(watchdog_timer_device::reset_w));
-}
-
-void tecmo_state::silkworm_map(address_map &map)
-{
- map(0x0000, 0xbfff).rom();
- map(0xc000, 0xc3ff).ram().w(FUNC(tecmo_state::bgvideoram_w)).share("bgvideoram");
- map(0xc400, 0xc7ff).ram().w(FUNC(tecmo_state::fgvideoram_w)).share("fgvideoram");
- map(0xc800, 0xcfff).ram().w(FUNC(tecmo_state::txvideoram_w)).share("txvideoram");
- map(0xd000, 0xdfff).ram();
- map(0xe000, 0xe7ff).ram().share("spriteram");
- map(0xe800, 0xefff).ram().w(m_palette, FUNC(palette_device::write8)).share("palette");
- map(0xf000, 0xf7ff).bankr("mainbank");
- map(0xf800, 0xf800).portr("JOY1");
- map(0xf801, 0xf801).portr("BUTTONS1");
- map(0xf802, 0xf802).portr("JOY2");
- map(0xf803, 0xf803).portr("BUTTONS2");
- map(0xf804, 0xf804).portr("SYS_0");
- map(0xf805, 0xf805).portr("SYS_1");
- map(0xf806, 0xf806).r(FUNC(tecmo_state::dswa_l_r));
- map(0xf807, 0xf807).r(FUNC(tecmo_state::dswa_h_r));
- map(0xf808, 0xf808).r(FUNC(tecmo_state::dswb_l_r));
- map(0xf809, 0xf809).r(FUNC(tecmo_state::dswb_h_r));
- map(0xf80e, 0xf80e).portr("SYS_3");
- map(0xf80f, 0xf80f).portr("SYS_2");
- map(0xf800, 0xf802).w(FUNC(tecmo_state::fgscroll_w)).share("fgscroll");
- map(0xf803, 0xf805).w(FUNC(tecmo_state::bgscroll_w)).share("bgscroll");
- map(0xf806, 0xf806).w("soundlatch", FUNC(generic_latch_8_device::write));
- map(0xf807, 0xf807).w(FUNC(tecmo_state::flipscreen_w));
- map(0xf808, 0xf808).w(FUNC(tecmo_state::bankswitch_w));
- map(0xf809, 0xf809).nopw(); /* ? */
- map(0xf80b, 0xf80b).nopw(); /* ? if mapped to watchdog like in the others, causes reset */
-}
-
-void tecmo_state::rygar_sound_map(address_map &map)
-{
- map(0x0000, 0x3fff).rom();
- map(0x4000, 0x47ff).ram();
- map(0x8000, 0x8001).w("ymsnd", FUNC(ym3526_device::write));
- map(0xc000, 0xc000).r("soundlatch", FUNC(generic_latch_8_device::read)).w(FUNC(tecmo_state::adpcm_start_w));
- map(0xd000, 0xd000).w(FUNC(tecmo_state::adpcm_end_w));
- map(0xe000, 0xe000).w(FUNC(tecmo_state::adpcm_vol_w));
- map(0xf000, 0xf000).w("soundlatch", FUNC(generic_latch_8_device::acknowledge_w));
-}
-
-void tecmo_state::silkwormp_sound_map(address_map &map)
-{
- map(0x0000, 0x7fff).rom();
- map(0x8000, 0x87ff).ram();
- map(0xa000, 0xa001).w("ymsnd", FUNC(ym3812_device::write));
- map(0xc000, 0xc000).r("soundlatch", FUNC(generic_latch_8_device::read));
- map(0xcc00, 0xcc00).w("soundlatch", FUNC(generic_latch_8_device::acknowledge_w));
-}
-
-void tecmo_state::backfirt_sound_map(address_map &map)
-{
- silkwormp_sound_map(map);
- map(0x2000, 0x207f).ram(); // Silkworm set #2 has a custom CPU which writes code to this area
-}
-
-void tecmo_state::tecmo_sound_map(address_map &map)
-{
- backfirt_sound_map(map);
- map(0xc000, 0xc000).w(FUNC(tecmo_state::adpcm_start_w));
- map(0xc400, 0xc400).w(FUNC(tecmo_state::adpcm_end_w));
- map(0xc800, 0xc800).w(FUNC(tecmo_state::adpcm_vol_w));
-}
-
-static INPUT_PORTS_START( tecmo_default )
- PORT_START("JOY1")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY
-
- PORT_START("BUTTONS1")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 )
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 )
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN )
-
- PORT_START("JOY2")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
-
- PORT_START("BUTTONS2")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN )
-
- PORT_START("SYS_0")
- PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNKNOWN )
-
- PORT_START("SYS_1")
- PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNKNOWN )
-
- PORT_START("SYS_2")
- PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNKNOWN )
-
- PORT_START("SYS_3")
- PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNKNOWN )
-
- PORT_START("DSWA")
- PORT_DIPUNUSED_DIPLOC( 0x01, IP_ACTIVE_HIGH, "SW1:!1" )
- PORT_DIPUNUSED_DIPLOC( 0x02, IP_ACTIVE_HIGH, "SW1:!2" )
- PORT_DIPUNUSED_DIPLOC( 0x04, IP_ACTIVE_HIGH, "SW1:!3" )
- PORT_DIPUNUSED_DIPLOC( 0x08, IP_ACTIVE_HIGH, "SW1:!4" )
- PORT_DIPUNUSED_DIPLOC( 0x10, IP_ACTIVE_HIGH, "SW1:!5" )
- PORT_DIPUNUSED_DIPLOC( 0x20, IP_ACTIVE_HIGH, "SW1:!6" )
- PORT_DIPUNUSED_DIPLOC( 0x40, IP_ACTIVE_HIGH, "SW1:!7" )
- PORT_DIPUNUSED_DIPLOC( 0x80, IP_ACTIVE_HIGH, "SW1:!8" )
-
- PORT_START("DSWB")
- PORT_DIPUNUSED_DIPLOC( 0x01, IP_ACTIVE_HIGH, "SW2:!1" )
- PORT_DIPUNUSED_DIPLOC( 0x02, IP_ACTIVE_HIGH, "SW2:!2" )
- PORT_DIPUNUSED_DIPLOC( 0x04, IP_ACTIVE_HIGH, "SW2:!3" )
- PORT_DIPUNUSED_DIPLOC( 0x08, IP_ACTIVE_HIGH, "SW2:!4" )
- PORT_DIPUNUSED_DIPLOC( 0x10, IP_ACTIVE_HIGH, "SW2:!5" )
- PORT_DIPUNUSED_DIPLOC( 0x20, IP_ACTIVE_HIGH, "SW2:!6" )
- PORT_DIPUNUSED_DIPLOC( 0x40, IP_ACTIVE_HIGH, "SW2:!7" )
- PORT_DIPUNUSED_DIPLOC( 0x80, IP_ACTIVE_HIGH, "SW2:!8" )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( rygar )
- PORT_INCLUDE(tecmo_default)
-
- PORT_MODIFY("BUTTONS1")
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE1 )
-
- PORT_MODIFY("SYS_0")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START2 )
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START1 )
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 )
-
- PORT_MODIFY("DSWA")
- PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:!1,!2")
- PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x03, DEF_STR( 1C_3C ) )
- PORT_DIPNAME( 0x0C, 0x00, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:!3,!4")
- PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0C, DEF_STR( 1C_3C ) )
- PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:!5,!6")
- PORT_DIPSETTING( 0x30, "2" )
- PORT_DIPSETTING( 0x00, "3" )
- PORT_DIPSETTING( 0x10, "4" )
- PORT_DIPSETTING( 0x20, "5" )
- PORT_DIPNAME( 0x40, 0x40, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:!7")
- PORT_DIPSETTING( 0x40, DEF_STR( Upright ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
-
- PORT_MODIFY("DSWB")
- PORT_DIPNAME( 0x03, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:!1,!2")
- PORT_DIPSETTING( 0x00, "50000 200000 500000" )
- PORT_DIPSETTING( 0x01, "100000 300000 600000" )
- PORT_DIPSETTING( 0x02, "200000 500000" )
- PORT_DIPSETTING( 0x03, "100000" )
- PORT_DIPNAME( 0x30, 0x00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:!5,!6")
- PORT_DIPSETTING( 0x00, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x10, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x20, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x30, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x40, 0x00, "2P Can Start Anytime" ) PORT_DIPLOCATION("SW2:!7")
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPSETTING( 0x40, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x80, 0x80, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW2:!8")
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPSETTING( 0x80, DEF_STR( Yes ) )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( gemini )
- PORT_INCLUDE(tecmo_default)
-
- PORT_MODIFY("SYS_1")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 )
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 )
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN1 )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN2 )
-
- PORT_MODIFY("BUTTONS1")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 )
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 )
-
- PORT_MODIFY("JOY2")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
-
- PORT_MODIFY("BUTTONS2")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
-
- PORT_MODIFY("DSWA")
- PORT_DIPNAME( 0x07, 0x00, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:!1,!2,!3")
- PORT_DIPSETTING( 0x06, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x03, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x04, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x05, DEF_STR( 1C_6C ) )
- PORT_DIPNAME( 0x08, 0x00, "Final Round Continuation" ) PORT_DIPLOCATION("SW1:!4")
- PORT_DIPSETTING( 0x00, "Round 6" )
- PORT_DIPSETTING( 0x08, "Round 7" )
- PORT_DIPNAME( 0x70, 0x00, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:!5,!6,!7")
- PORT_DIPSETTING( 0x60, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x10, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x20, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x30, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x40, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x50, DEF_STR( 1C_6C ) )
- PORT_DIPNAME( 0x80, 0x00, "Buy in During Final Round" ) PORT_DIPLOCATION("SW1:!8")
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPSETTING( 0x80, DEF_STR( Yes ) )
-
- PORT_MODIFY("DSWB")
- PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:!1,!2")
- PORT_DIPSETTING( 0x03, "2" )
- PORT_DIPSETTING( 0x00, "3" )
- PORT_DIPSETTING( 0x01, "4" )
- PORT_DIPSETTING( 0x02, "5" )
- PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:!3,!4")
- PORT_DIPSETTING( 0x00, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x04, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x08, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0c, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x70, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:!5,!6,!7")
- PORT_DIPSETTING( 0x00, "50000 200000" )
- PORT_DIPSETTING( 0x10, "50000 300000" )
- PORT_DIPSETTING( 0x20, "100000 500000" )
- PORT_DIPSETTING( 0x30, "50000" )
- PORT_DIPSETTING( 0x40, "100000" )
- PORT_DIPSETTING( 0x50, "200000" )
- PORT_DIPSETTING( 0x60, "300000" )
- PORT_DIPSETTING( 0x70, DEF_STR( None ) )
- PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:!8")
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( backfirt )
- PORT_INCLUDE(tecmo_default)
-
- PORT_MODIFY("BUTTONS1")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 )
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 )
-
- PORT_MODIFY("BUTTONS2")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
-
- PORT_MODIFY("SYS_1")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START2 )
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START1 )
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN1 )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN2 )
-
- PORT_MODIFY("DSWA")
- PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:!1,!2")
- PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x03, DEF_STR( 1C_6C ) ) // limit of 9?
- PORT_DIPNAME( 0x0C, 0x00, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:!3,!4")
- PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0C, DEF_STR( 1C_3C ) )
- PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:!5")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x10, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:!6")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x20, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:!7")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x40, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:!8")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x80, DEF_STR( On ) )
-
- PORT_MODIFY("DSWB")
- PORT_DIPNAME( 0x07, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:!1,!2,!3")
- PORT_DIPSETTING( 0x00, "50000 200000 500000" )
- PORT_DIPSETTING( 0x01, "100000 300000 800000" )
- PORT_DIPSETTING( 0x02, "50000 200000" )
- PORT_DIPSETTING( 0x03, "100000 300000" )
- PORT_DIPSETTING( 0x04, "50000" )
- PORT_DIPSETTING( 0x05, "100000" )
- PORT_DIPSETTING( 0x06, "200000" )
- PORT_DIPSETTING( 0x07, DEF_STR( None ) )
- PORT_DIPNAME( 0x38, 0x00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:!4,!5,!6")
- PORT_DIPSETTING( 0x00, "0" )
- PORT_DIPSETTING( 0x08, "1" )
- PORT_DIPSETTING( 0x10, "2" )
- PORT_DIPSETTING( 0x18, "3" )
- PORT_DIPSETTING( 0x20, "4" )
- PORT_DIPSETTING( 0x28, "5" )
- PORT_DIPSETTING( 0x30, "6" )
- PORT_DIPSETTING( 0x38, "7" )
- PORT_DIPNAME( 0x40, 0x40, "Continue" ) PORT_DIPLOCATION("SW2:!7")
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x00, "Invulnerability" ) PORT_DIPLOCATION("SW2:!8")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x80, DEF_STR( On ) )
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( silkworm )
- PORT_INCLUDE(tecmo_default)
-
- PORT_MODIFY("BUTTONS1")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 )
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 )
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 )
-
- PORT_MODIFY("JOY2")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
-
- PORT_MODIFY("BUTTONS2")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2)
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2)
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2)
-
- PORT_MODIFY("SYS_2")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 )
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 )
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN1 )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN2 )
-
- PORT_MODIFY("DSWA")
- PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:!1,!2")
- PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x03, DEF_STR( 1C_3C ) )
- PORT_DIPNAME( 0x0C, 0x00, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:!3,!4")
- PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0C, DEF_STR( 1C_3C ) )
- PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:!5,!6")
- PORT_DIPSETTING( 0x30, "2" )
- PORT_DIPSETTING( 0x00, "3" )
- PORT_DIPSETTING( 0x10, "4" )
- PORT_DIPSETTING( 0x20, "5" )
- PORT_DIPNAME( 0x80, 0x80, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:!8")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x80, DEF_STR( On ) )
-
- PORT_MODIFY("DSWB")
- PORT_DIPNAME( 0x07, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:!1,!2,!3")
- PORT_DIPSETTING( 0x00, "50000 200000 500000" )
- PORT_DIPSETTING( 0x01, "100000 300000 800000" )
- PORT_DIPSETTING( 0x02, "50000 200000" )
- PORT_DIPSETTING( 0x03, "100000 300000" )
- PORT_DIPSETTING( 0x04, "50000" )
- PORT_DIPSETTING( 0x05, "100000" )
- PORT_DIPSETTING( 0x06, "200000" )
- PORT_DIPSETTING( 0x07, DEF_STR( None ) )
- PORT_DIPNAME( 0x70, 0x30, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:!5,!6,!7")
-// PORT_DIPSETTING( 0x60, "0" ) /* Not listed in manual */
-// PORT_DIPSETTING( 0x70, "0" ) /* Not listed in manual */
-// PORT_DIPSETTING( 0x00, "0" ) /* Not listed in manual */
- PORT_DIPSETTING( 0x10, "1" )
- PORT_DIPSETTING( 0x20, "2" )
- PORT_DIPSETTING( 0x30, "3" )
- PORT_DIPSETTING( 0x40, "4" )
- PORT_DIPSETTING( 0x50, "5" )
- PORT_DIPNAME( 0x80, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW2:!8") /* Listed as "NC" in manual */
- PORT_DIPSETTING( 0x80, DEF_STR( No ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
-INPUT_PORTS_END
-
-
-// Bootleg/prototype sets don't have the "disable continue" feature (dip B, sw 8) and coin inputs are switched.
-// They also have a "swap vehicle" feature which allows 1P to be the jeep and 2P to be the heli.
-// Setting dip B, sw 7 on enables the feature and it is performed on the start screen with an extra input @ 1P button 4 (jamma pin 25, maps to 0xf80e bit 0).
-// Seems this feature was removed for the production release of the game.
-static INPUT_PORTS_START( silkwormp )
- PORT_INCLUDE(tecmo_default)
-
- PORT_MODIFY("BUTTONS1")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 )
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 )
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 )
-
- PORT_MODIFY("JOY2")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
-
- PORT_MODIFY("BUTTONS2")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2)
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2)
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2)
-
- PORT_MODIFY("SYS_2")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 )
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 )
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 ) // Coin inputs are switched
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 )
-
- PORT_MODIFY("SYS_3")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON4 ) // Vehicle swap extra button
-
- PORT_MODIFY("DSWA")
- PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:!1,!2")
- PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x03, DEF_STR( 1C_3C ) )
- PORT_DIPNAME( 0x0C, 0x00, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:!3,!4")
- PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0C, DEF_STR( 1C_3C ) )
- PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:!5,!6")
- PORT_DIPSETTING( 0x30, "2" )
- PORT_DIPSETTING( 0x00, "3" )
- PORT_DIPSETTING( 0x10, "4" )
- PORT_DIPSETTING( 0x20, "5" )
- PORT_DIPNAME( 0x40, 0x00, "Allow Vehicle Swap" ) PORT_DIPLOCATION("SW1:!7")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x40, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:!8")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x80, DEF_STR( On ) )
-
- PORT_MODIFY("DSWB")
- PORT_DIPNAME( 0x07, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:!1,!2,!3")
- PORT_DIPSETTING( 0x00, "50000 200000 500000" )
- PORT_DIPSETTING( 0x01, "100000 300000 800000" )
- PORT_DIPSETTING( 0x02, "50000 200000" )
- PORT_DIPSETTING( 0x03, "100000 300000" )
- PORT_DIPSETTING( 0x04, "50000" )
- PORT_DIPSETTING( 0x05, "100000" )
- PORT_DIPSETTING( 0x06, "200000" )
- PORT_DIPSETTING( 0x07, DEF_STR( None ) )
- PORT_DIPNAME( 0x70, 0x60, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:!5,!6,!7")
- PORT_DIPSETTING( 0x00, "1" )
- PORT_DIPSETTING( 0x40, "2" ) // from the Tecmo US manual
- PORT_DIPSETTING( 0x60, "3" ) // (although conflicting info exists, so unverified)
- PORT_DIPSETTING( 0x30, "4" )
- PORT_DIPSETTING( 0x50, "5" )
- // no allow continue setting
-INPUT_PORTS_END
-
-
-static GFXDECODE_START( gfx_tecmo )
- GFXDECODE_ENTRY( "gfx1", 0, gfx_8x8x4_packed_msb, 256, 16 ) /* colors 256 - 511 */
- GFXDECODE_ENTRY( "gfx2", 0, gfx_8x8x4_packed_msb, 0, 16 ) /* colors 0 - 255 */
- GFXDECODE_ENTRY( "gfx3", 0, gfx_8x8x4_row_2x2_group_packed_msb, 512, 16 ) /* colors 512 - 767 */
- GFXDECODE_ENTRY( "gfx4", 0, gfx_8x8x4_row_2x2_group_packed_msb, 768, 16 ) /* colors 768 - 1023 */
-GFXDECODE_END
-
-
-void tecmo_state::machine_start()
-{
- m_mainbank->configure_entries(0, 32, memregion("maincpu")->base() + 0x10000, 0x800);
-
- save_item(NAME(m_adpcm_pos));
- save_item(NAME(m_adpcm_end));
- save_item(NAME(m_adpcm_data));
-}
-
-void tecmo_state::machine_reset()
-{
- m_adpcm_pos = 0;
- m_adpcm_end = 0;
- m_adpcm_data = -1;
-}
-
-void tecmo_state::rygar(machine_config &config)
-{
- /* basic machine hardware */
- Z80(config, m_maincpu, XTAL(24'000'000)/4); /* verified on pcb */
- m_maincpu->set_addrmap(AS_PROGRAM, &tecmo_state::rygar_map);
- m_maincpu->set_vblank_int("screen", FUNC(tecmo_state::irq0_line_hold));
-
- Z80(config, m_soundcpu, XTAL(4'000'000)); /* verified on pcb */
- m_soundcpu->set_addrmap(AS_PROGRAM, &tecmo_state::rygar_sound_map);
-
- WATCHDOG_TIMER(config, "watchdog");
-
- /* video hardware */
- SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
- m_screen->set_raw(XTAL(24'000'000)/4, 384,0,256,264,16,240); // 59.18 Hz
- m_screen->set_screen_update(FUNC(tecmo_state::screen_update));
- m_screen->set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_tecmo);
- PALETTE(config, m_palette).set_format(palette_device::xBRG_444, 1024).set_endianness(ENDIANNESS_BIG);
-
- TECMO_SPRITE(config, m_sprgen, 0);
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- generic_latch_8_device &soundlatch(GENERIC_LATCH_8(config, "soundlatch"));
- soundlatch.data_pending_callback().set_inputline(m_soundcpu, INPUT_LINE_NMI);
- soundlatch.set_separate_acknowledge(true);
-
- ym3526_device &ymsnd(YM3526(config, "ymsnd", XTAL(4'000'000))); /* verified on pcb */
- ymsnd.irq_handler().set_inputline(m_soundcpu, 0);
- ymsnd.add_route(ALL_OUTPUTS, "mono", 1.0);
-
- MSM5205(config, m_msm, XTAL(400'000)); /* verified on pcb, even if schematics shows a 384khz resonator */
- m_msm->vck_legacy_callback().set(FUNC(tecmo_state::adpcm_int)); /* interrupt function */
- m_msm->set_prescaler_selector(msm5205_device::S48_4B); /* 8KHz */
- m_msm->add_route(ALL_OUTPUTS, "mono", 0.50);
-}
-
-void tecmo_state::gemini(machine_config &config)
-{
- rygar(config);
-
- /* basic machine hardware */
- // xtal found on bootleg, to be confirmed on a real board
- m_maincpu->set_clock(XTAL(8'000'000));
- m_maincpu->set_addrmap(AS_PROGRAM, &tecmo_state::gemini_map);
-
- m_soundcpu->set_addrmap(AS_PROGRAM, &tecmo_state::tecmo_sound_map);
-
- ym3812_device &ymsnd(YM3812(config.replace(), "ymsnd", XTAL(4'000'000)));
- ymsnd.irq_handler().set_inputline(m_soundcpu, 0);
- ymsnd.add_route(ALL_OUTPUTS, "mono", 1.0);
-}
-
-void tecmo_state::geminib(machine_config &config)
-{
- gemini(config);
- // 24.18 MHz OSC / 59.62 Hz, bootleg only?
- m_screen->set_raw(24180000/4, 384,0,256,264,16,240);
-}
-
-void tecmo_state::silkworm(machine_config &config)
-{
- gemini(config);
-
- /* basic machine hardware */
- m_maincpu->set_clock(6000000);
- m_maincpu->set_addrmap(AS_PROGRAM, &tecmo_state::silkworm_map);
-}
-
-void tecmo_state::backfirt(machine_config &config)
-{
- gemini(config);
-
- /* this pcb has no MSM5205 */
- config.device_remove("msm");
- m_soundcpu->set_addrmap(AS_PROGRAM, &tecmo_state::backfirt_sound_map);
-}
-
-void tecmo_state::silkwormp(machine_config &config)
-{
- silkworm(config);
-
- /* bootleg pcb doesn't have the MSM5205 populated */
- config.device_remove("msm");
- m_soundcpu->set_addrmap(AS_PROGRAM, &tecmo_state::silkwormp_sound_map);
-}
-
-
-/***************************************************************************
-
- Game driver(s)
-
-***************************************************************************/
-
-/* Rygar
-Tecmo 1986
-
-PCB Layouts
------------
-
-6002-A
-|-----------------------------------------------------------------|
-|DSW2 4MHz 24MHz |
-|DSW1 M4069 |
-| |-|
-| Z80B MN50005XTA | |
-|1 5.5P | |
-|8 | |
-|W 4.5M | |
-|A MA7053 6116 |-|
-|Y DIP28 6264 |
-| Z80A 6.7K |
-| 3.5J |
-| 2.4H |
-| |-|
-| 6116 | |
-| 1.1E | |
-| M5205 YM3526 | |
-| 400kHz | |
-| VOL M4066 MBM2148 |-|
-| M5224 MBM2148 |
-|M51516 M5224 YM3014 MBM2148 CN4 |
-|-----------------------------------------------------------------|
-Notes:
- Z80B - clock 6.000MHz [24/4]
- Z80A - clock 4.000MHz
- M5205 - clock 400kHz
- YM3526 - clock 4.000MHz
- CN4 - RGB/Sync connector for video output to monitor
- MN50005XTA - Mitsubishi DIP28 custom chip. On the bootleg this chip
- is replaced by a plug-in daughterboard containing a
- few logic chips
- MA7053 - Mitsubishi SIL28 custom ceramic module
- M5224 - Equivalent to LM324 OP AMP
- DIP28 - unpopulated socket
- DSW1/2 - 8-position Dip Switches
- 6116 - 2kx8 SRAM
- 6264 - 8kx8 SRAM
- 2148 - 1kx4 SRAM
-
- Measurements -
- OSC1 - 23.99999MHz
- XTAL1 - 3.999187MHz
- VSync - 59.1856Hz
- HSync - 15.1436kHz
-
-
-6002B
-|-----------------------------------------------------------------|
-| 6116 |
-| 18.6R |
-| 17.6P |-|
-| 16.6N | |
-|4164 4164 4164 4164 15.6M | |
-|4164 4164 4164 4164 14.6L | |
-|4164 4164 4164 4164 13.6K | |
-|4164 4164 4164 4164 |-|
-|4164 4164 4164 4164 12.6J |
-| |
-| 11.6H |
-| |
-| 10.6E |-|
-| | |
-| 9.6D | |
-| | |
-| 8.6C | |
-| M60002-0118P |-|
-| 6116 7.6B |
-| 6116 |
-|-----------------------------------------------------------------|
-Notes:
- M60002-0118P - Mitsubishi DIP42 custom chip. On the bootleg this chip
- is replaced by a plug-in daughterboard containing a
- few logic chips
- 4164 - 64kx1 DRAM
- 6116 - 2kx8 SRAM
-*/
-
-ROM_START( rygar )
- ROM_REGION( 0x20000, "maincpu", 0 )
- ROM_LOAD( "5.5p", 0x00000, 0x08000, CRC(062cd55d) SHA1(656e29c890f5de964920b7841b3e11469cd20051) ) /* code */
- ROM_LOAD( "cpu_5m.bin", 0x08000, 0x04000, CRC(7ac5191b) SHA1(305f39d974f906f9bc24e9fe2ca58e647925ab63) ) /* code */
- ROM_LOAD( "cpu_5j.bin", 0x10000, 0x08000, CRC(ed76d606) SHA1(39c8a07e9a1f218ad088d00a2c9dfc993efafb6b) ) /* banked at f000-f7ff */
-
- ROM_REGION( 0x10000, "soundcpu", 0 )
- ROM_LOAD( "cpu_4h.bin", 0x0000, 0x2000, CRC(e4a2fa87) SHA1(ed58187dbbcf59358496a98ffd6c227a87d6c433) )
-
- ROM_REGION( 0x08000, "gfx1", 0 )
- ROM_LOAD( "cpu_8k.bin", 0x00000, 0x08000, CRC(4d482fb6) SHA1(57ad838b6d30b49dbd2d0ec425f33cfb15a67918) ) /* characters */
-
- ROM_REGION( 0x20000, "gfx2", 0 )
- ROM_LOAD( "vid_6k.bin", 0x00000, 0x08000, CRC(aba6db9e) SHA1(43eb6f4f92afb5fbc11adc7e2ab04878ab56cb17) ) /* sprites */
- ROM_LOAD( "vid_6j.bin", 0x08000, 0x08000, CRC(ae1f2ed6) SHA1(6e6a33e665ba0884b7f57e9ad69d3f51e41d9e7b) ) /* sprites */
- ROM_LOAD( "vid_6h.bin", 0x10000, 0x08000, CRC(46d9e7df) SHA1(a24e0bea310a03636af704a0ad3f1a9cc4aafe12) ) /* sprites */
- ROM_LOAD( "vid_6g.bin", 0x18000, 0x08000, CRC(45839c9a) SHA1(eaee5767d8b0b62b991c089ef51b922e89850b79) ) /* sprites */
-
- ROM_REGION( 0x20000, "gfx3", 0 )
- ROM_LOAD( "vid_6p.bin", 0x00000, 0x08000, CRC(9eae5f8e) SHA1(ed83b608ca57b9bf69fa866d9b8f55d16b7cff63) )
- ROM_LOAD( "vid_6o.bin", 0x08000, 0x08000, CRC(5a10a396) SHA1(12ebed3952ff35a2c275cb27c915f82183048cd4) )
- ROM_LOAD( "vid_6n.bin", 0x10000, 0x08000, CRC(7b12cf3f) SHA1(6b9d8cad6e15317df01bab0591fab09199ca6d40) )
- ROM_LOAD( "vid_6l.bin", 0x18000, 0x08000, CRC(3cea7eaa) SHA1(1dd194d5672dfe71c2b27d2d7b76f5a611cff76f) )
-
- ROM_REGION( 0x20000, "gfx4", 0 )
- ROM_LOAD( "vid_6f.bin", 0x00000, 0x08000, CRC(9840edd8) SHA1(f19a1a1d932214037144c533ad07ed81256c34e7) )
- ROM_LOAD( "vid_6e.bin", 0x08000, 0x08000, CRC(ff65e074) SHA1(513c1bad336ef5d871f15d6ba8943020f98d1f4a) )
- ROM_LOAD( "vid_6c.bin", 0x10000, 0x08000, CRC(89868c85) SHA1(f21550f40e7a177e95c40f2726c651f85ca8edce) )
- ROM_LOAD( "vid_6b.bin", 0x18000, 0x08000, CRC(35389a7b) SHA1(a887a89f9bbb5979bb589468d80efba1f243690b) )
-
- ROM_REGION( 0x4000, "adpcm", 0 ) /* ADPCM samples */
- ROM_LOAD( "cpu_1f.bin", 0x0000, 0x4000, CRC(3cc98c5a) SHA1(ea1035be939ed1a994f3273b33412c85dda0973e) )
-ROM_END
-
-ROM_START( rygar2 )
- ROM_REGION( 0x20000, "maincpu", 0 )
- ROM_LOAD( "5p.bin", 0x00000, 0x08000, CRC(151ffc0b) SHA1(0eb877f2c68d3d1f52d7b12d0a8ad08c9932c054) ) /* code */
- ROM_LOAD( "cpu_5m.bin", 0x08000, 0x04000, CRC(7ac5191b) SHA1(305f39d974f906f9bc24e9fe2ca58e647925ab63) ) /* code */
- ROM_LOAD( "cpu_5j.bin", 0x10000, 0x08000, CRC(ed76d606) SHA1(39c8a07e9a1f218ad088d00a2c9dfc993efafb6b) ) /* banked at f000-f7ff */
-
- ROM_REGION( 0x10000, "soundcpu", 0 )
- ROM_LOAD( "cpu_4h.bin", 0x0000, 0x2000, CRC(e4a2fa87) SHA1(ed58187dbbcf59358496a98ffd6c227a87d6c433) )
-
- ROM_REGION( 0x08000, "gfx1", 0 )
- ROM_LOAD( "cpu_8k.bin", 0x00000, 0x08000, CRC(4d482fb6) SHA1(57ad838b6d30b49dbd2d0ec425f33cfb15a67918) ) /* characters */
-
- ROM_REGION( 0x20000, "gfx2", 0 )
- ROM_LOAD( "vid_6k.bin", 0x00000, 0x08000, CRC(aba6db9e) SHA1(43eb6f4f92afb5fbc11adc7e2ab04878ab56cb17) ) /* sprites */
- ROM_LOAD( "vid_6j.bin", 0x08000, 0x08000, CRC(ae1f2ed6) SHA1(6e6a33e665ba0884b7f57e9ad69d3f51e41d9e7b) ) /* sprites */
- ROM_LOAD( "vid_6h.bin", 0x10000, 0x08000, CRC(46d9e7df) SHA1(a24e0bea310a03636af704a0ad3f1a9cc4aafe12) ) /* sprites */
- ROM_LOAD( "vid_6g.bin", 0x18000, 0x08000, CRC(45839c9a) SHA1(eaee5767d8b0b62b991c089ef51b922e89850b79) ) /* sprites */
-
- ROM_REGION( 0x20000, "gfx3", 0 )
- ROM_LOAD( "vid_6p.bin", 0x00000, 0x08000, CRC(9eae5f8e) SHA1(ed83b608ca57b9bf69fa866d9b8f55d16b7cff63) )
- ROM_LOAD( "vid_6o.bin", 0x08000, 0x08000, CRC(5a10a396) SHA1(12ebed3952ff35a2c275cb27c915f82183048cd4) )
- ROM_LOAD( "vid_6n.bin", 0x10000, 0x08000, CRC(7b12cf3f) SHA1(6b9d8cad6e15317df01bab0591fab09199ca6d40) )
- ROM_LOAD( "vid_6l.bin", 0x18000, 0x08000, CRC(3cea7eaa) SHA1(1dd194d5672dfe71c2b27d2d7b76f5a611cff76f) )
-
- ROM_REGION( 0x20000, "gfx4", 0 )
- ROM_LOAD( "vid_6f.bin", 0x00000, 0x08000, CRC(9840edd8) SHA1(f19a1a1d932214037144c533ad07ed81256c34e7) )
- ROM_LOAD( "vid_6e.bin", 0x08000, 0x08000, CRC(ff65e074) SHA1(513c1bad336ef5d871f15d6ba8943020f98d1f4a) )
- ROM_LOAD( "vid_6c.bin", 0x10000, 0x08000, CRC(89868c85) SHA1(f21550f40e7a177e95c40f2726c651f85ca8edce) )
- ROM_LOAD( "vid_6b.bin", 0x18000, 0x08000, CRC(35389a7b) SHA1(a887a89f9bbb5979bb589468d80efba1f243690b) )
-
- ROM_REGION( 0x4000, "adpcm", 0 ) /* ADPCM samples */
- ROM_LOAD( "cpu_1f.bin", 0x0000, 0x4000, CRC(3cc98c5a) SHA1(ea1035be939ed1a994f3273b33412c85dda0973e) )
-ROM_END
-
-/* There is a known bootleg board which uses U locations but without Tecmo etchings which is a match for rygar3 */
-ROM_START( rygar3 )
- ROM_REGION( 0x20000, "maincpu", 0 )
- ROM_LOAD( "cpu_5p.bin", 0x00000, 0x08000, CRC(e79c054a) SHA1(1aaffa53d121d5c55899bf18e85c42333fe0df54) ) /* code */
- ROM_LOAD( "cpu_5m.bin", 0x08000, 0x04000, CRC(7ac5191b) SHA1(305f39d974f906f9bc24e9fe2ca58e647925ab63) ) /* code */
- ROM_LOAD( "cpu_5j.bin", 0x10000, 0x08000, CRC(ed76d606) SHA1(39c8a07e9a1f218ad088d00a2c9dfc993efafb6b) ) /* banked at f000-f7ff */
-
- ROM_REGION( 0x10000, "soundcpu", 0 )
- ROM_LOAD( "cpu_4h.bin", 0x0000, 0x2000, CRC(e4a2fa87) SHA1(ed58187dbbcf59358496a98ffd6c227a87d6c433) )
-
- ROM_REGION( 0x08000, "gfx1", 0 )
- ROM_LOAD( "cpu_8k.bin", 0x00000, 0x08000, CRC(4d482fb6) SHA1(57ad838b6d30b49dbd2d0ec425f33cfb15a67918) ) /* characters */
-
- ROM_REGION( 0x20000, "gfx2", 0 )
- ROM_LOAD( "vid_6k.bin", 0x00000, 0x08000, CRC(aba6db9e) SHA1(43eb6f4f92afb5fbc11adc7e2ab04878ab56cb17) ) /* sprites */
- ROM_LOAD( "vid_6j.bin", 0x08000, 0x08000, CRC(ae1f2ed6) SHA1(6e6a33e665ba0884b7f57e9ad69d3f51e41d9e7b) ) /* sprites */
- ROM_LOAD( "vid_6h.bin", 0x10000, 0x08000, CRC(46d9e7df) SHA1(a24e0bea310a03636af704a0ad3f1a9cc4aafe12) ) /* sprites */
- ROM_LOAD( "vid_6g.bin", 0x18000, 0x08000, CRC(45839c9a) SHA1(eaee5767d8b0b62b991c089ef51b922e89850b79) ) /* sprites */
-
- ROM_REGION( 0x20000, "gfx3", 0 )
- ROM_LOAD( "vid_6p.bin", 0x00000, 0x08000, CRC(9eae5f8e) SHA1(ed83b608ca57b9bf69fa866d9b8f55d16b7cff63) )
- ROM_LOAD( "vid_6o.bin", 0x08000, 0x08000, CRC(5a10a396) SHA1(12ebed3952ff35a2c275cb27c915f82183048cd4) )
- ROM_LOAD( "vid_6n.bin", 0x10000, 0x08000, CRC(7b12cf3f) SHA1(6b9d8cad6e15317df01bab0591fab09199ca6d40) )
- ROM_LOAD( "vid_6l.bin", 0x18000, 0x08000, CRC(3cea7eaa) SHA1(1dd194d5672dfe71c2b27d2d7b76f5a611cff76f) )
-
- ROM_REGION( 0x20000, "gfx4", 0 )
- ROM_LOAD( "vid_6f.bin", 0x00000, 0x08000, CRC(9840edd8) SHA1(f19a1a1d932214037144c533ad07ed81256c34e7) )
- ROM_LOAD( "vid_6e.bin", 0x08000, 0x08000, CRC(ff65e074) SHA1(513c1bad336ef5d871f15d6ba8943020f98d1f4a) )
- ROM_LOAD( "vid_6c.bin", 0x10000, 0x08000, CRC(89868c85) SHA1(f21550f40e7a177e95c40f2726c651f85ca8edce) )
- ROM_LOAD( "vid_6b.bin", 0x18000, 0x08000, CRC(35389a7b) SHA1(a887a89f9bbb5979bb589468d80efba1f243690b) )
-
- ROM_REGION( 0x4000, "adpcm", 0 ) /* ADPCM samples */
- ROM_LOAD( "cpu_1f.bin", 0x0000, 0x4000, CRC(3cc98c5a) SHA1(ea1035be939ed1a994f3273b33412c85dda0973e) )
-ROM_END
-
-ROM_START( rygarj )
- ROM_REGION( 0x20000, "maincpu", 0 )
-
- ROM_LOAD( "cpuj_5p.bin", 0x00000, 0x08000, CRC(b39698ba) SHA1(01a5a12a71973ad117b0bbd763e470f89c439e45) ) /* code */
- ROM_LOAD( "cpuj_5m.bin", 0x08000, 0x04000, CRC(3f180979) SHA1(c4c2e9f83b06b8677978800bfcc39f4ba3b344ab) ) /* code */
- ROM_LOAD( "cpuj_5j.bin", 0x10000, 0x08000, CRC(69e44e8f) SHA1(e979760a3582e64788c043adf7e475f0e1b75033) ) /* banked at f000-f7ff */
-
- ROM_REGION( 0x10000, "soundcpu", 0 )
- ROM_LOAD( "cpu_4h.bin", 0x0000, 0x2000, CRC(e4a2fa87) SHA1(ed58187dbbcf59358496a98ffd6c227a87d6c433) )
-
- ROM_REGION( 0x08000, "gfx1", 0 )
- ROM_LOAD( "cpuj_8k.bin", 0x00000, 0x08000, CRC(45047707) SHA1(deb47f5ec4b22e55e0393d8108e4ffb67dd68e12) ) /* characters */
-
- ROM_REGION( 0x20000, "gfx2", 0 )
- ROM_LOAD( "vid_6k.bin", 0x00000, 0x08000, CRC(aba6db9e) SHA1(43eb6f4f92afb5fbc11adc7e2ab04878ab56cb17) ) /* sprites */
- ROM_LOAD( "vid_6j.bin", 0x08000, 0x08000, CRC(ae1f2ed6) SHA1(6e6a33e665ba0884b7f57e9ad69d3f51e41d9e7b) ) /* sprites */
- ROM_LOAD( "vid_6h.bin", 0x10000, 0x08000, CRC(46d9e7df) SHA1(a24e0bea310a03636af704a0ad3f1a9cc4aafe12) ) /* sprites */
- ROM_LOAD( "vid_6g.bin", 0x18000, 0x08000, CRC(45839c9a) SHA1(eaee5767d8b0b62b991c089ef51b922e89850b79) ) /* sprites */
-
- ROM_REGION( 0x20000, "gfx3", 0 )
- ROM_LOAD( "vid_6p.bin", 0x00000, 0x08000, CRC(9eae5f8e) SHA1(ed83b608ca57b9bf69fa866d9b8f55d16b7cff63) )
- ROM_LOAD( "vid_6o.bin", 0x08000, 0x08000, CRC(5a10a396) SHA1(12ebed3952ff35a2c275cb27c915f82183048cd4) )
- ROM_LOAD( "vid_6n.bin", 0x10000, 0x08000, CRC(7b12cf3f) SHA1(6b9d8cad6e15317df01bab0591fab09199ca6d40) )
- ROM_LOAD( "vid_6l.bin", 0x18000, 0x08000, CRC(3cea7eaa) SHA1(1dd194d5672dfe71c2b27d2d7b76f5a611cff76f) )
-
- ROM_REGION( 0x20000, "gfx4", 0 )
- ROM_LOAD( "vid_6f.bin", 0x00000, 0x08000, CRC(9840edd8) SHA1(f19a1a1d932214037144c533ad07ed81256c34e7) )
- ROM_LOAD( "vid_6e.bin", 0x08000, 0x08000, CRC(ff65e074) SHA1(513c1bad336ef5d871f15d6ba8943020f98d1f4a) )
- ROM_LOAD( "vid_6c.bin", 0x10000, 0x08000, CRC(89868c85) SHA1(f21550f40e7a177e95c40f2726c651f85ca8edce) )
- ROM_LOAD( "vid_6b.bin", 0x18000, 0x08000, CRC(35389a7b) SHA1(a887a89f9bbb5979bb589468d80efba1f243690b) )
-
- ROM_REGION( 0x4000, "adpcm", 0 ) /* ADPCM samples */
- ROM_LOAD( "cpu_1f.bin", 0x0000, 0x4000, CRC(3cc98c5a) SHA1(ea1035be939ed1a994f3273b33412c85dda0973e) )
-ROM_END
-
-ROM_START( silkworm )
- ROM_REGION( 0x20000, "maincpu", 0 )
- ROM_LOAD( "silkworm.4", 0x00000, 0x10000, CRC(a5277cce) SHA1(3886a3f3d1230d49d541f884c5b29938e13f98c8) ) /* c000-ffff is not used */
- ROM_LOAD( "silkworm.5", 0x10000, 0x10000, CRC(a6c7bb51) SHA1(75f6625459ab65f2d47a282c1295d4db38f5fe51) ) /* banked at f000-f7ff */
-
- ROM_REGION( 0x20000, "soundcpu", 0 )
- ROM_LOAD( "silkworm.3", 0x0000, 0x8000, CRC(b589f587) SHA1(0be5e2bf3daf3e28d63fdc8c89bb6fe7c48c6c3f) )
-
- ROM_REGION( 0x08000, "gfx1", 0 )
- ROM_LOAD( "silkworm.2", 0x00000, 0x08000, CRC(e80a1cd9) SHA1(ef16feb1113acc7401f8951158b25f6f201196f2) ) /* characters */
-
- ROM_REGION( 0x40000, "gfx2", 0 )
- ROM_LOAD( "silkworm.6", 0x00000, 0x10000, CRC(1138d159) SHA1(3b938606d448c4effdfe414bbf495b50cc3bc1c1) ) /* sprites */
- ROM_LOAD( "silkworm.7", 0x10000, 0x10000, CRC(d96214f7) SHA1(a5b2be3ae6a6eb8afef2c18c865a998fbf4adf93) ) /* sprites */
- ROM_LOAD( "silkworm.8", 0x20000, 0x10000, CRC(0494b38e) SHA1(03255f153824056e430a0b8595103f3b58b1fd97) ) /* sprites */
- ROM_LOAD( "silkworm.9", 0x30000, 0x10000, CRC(8ce3cdf5) SHA1(635248514c4e1e5aab7a2ed4d620a5b970d4a43a) ) /* sprites */
-
- ROM_REGION( 0x40000, "gfx3", 0 )
- ROM_LOAD( "silkworm.10", 0x00000, 0x10000, CRC(8c7138bb) SHA1(0cfd69fa77d5b546f7dad80537d8d2497ae758bc) ) /* tiles #1 */
- ROM_LOAD( "silkworm.11", 0x10000, 0x10000, CRC(6c03c476) SHA1(79ad800a2f4ba6d44ba5a31210cbd8566bb357b6) ) /* tiles #1 */
- ROM_LOAD( "silkworm.12", 0x20000, 0x10000, CRC(bb0f568f) SHA1(b66c6d0407ed0b068c6bf07987f1b923d4a6e4f8) ) /* tiles #1 */
- ROM_LOAD( "silkworm.13", 0x30000, 0x10000, CRC(773ad0a4) SHA1(f7576e1ac8c779b33d7ec393555fd097a34257fa) ) /* tiles #1 */
-
- ROM_REGION( 0x40000, "gfx4", 0 )
- ROM_LOAD( "silkworm.14", 0x00000, 0x10000, CRC(409df64b) SHA1(cada970bf9cc8f6522e7a71e00fe873568852873) ) /* tiles #2 */
- ROM_LOAD( "silkworm.15", 0x10000, 0x10000, CRC(6e4052c9) SHA1(e2e3d7221b75cb044449a25a076a93c3def1f11b) ) /* tiles #2 */
- ROM_LOAD( "silkworm.16", 0x20000, 0x10000, CRC(9292ed63) SHA1(70aa46fcc187b8200c5d246870e2e2dc4b2985cb) ) /* tiles #2 */
- ROM_LOAD( "silkworm.17", 0x30000, 0x10000, CRC(3fa4563d) SHA1(46e3cc41491d63efcdda43c84c7ac1385a1926d0) ) /* tiles #2 */
-
- ROM_REGION( 0x8000, "adpcm", 0 ) /* ADPCM samples */
- ROM_LOAD( "silkworm.1", 0x0000, 0x8000, CRC(5b553644) SHA1(5d39d2251094c17f7b732b4861401b3516fce9b1) )
-ROM_END
-
-ROM_START( silkwormj )
- ROM_REGION( 0x20000, "maincpu", 0 )
- ROM_LOAD( "silkwormj.4", 0x00000, 0x10000, CRC(6df3df22) SHA1(9d6201c2df014bdb6877dfff936dddde1fe6fbd0) ) /* c000-ffff is not used */
- ROM_LOAD( "silkworm.5", 0x10000, 0x10000, CRC(a6c7bb51) SHA1(75f6625459ab65f2d47a282c1295d4db38f5fe51) ) /* banked at f000-f7ff */
-
- ROM_REGION( 0x20000, "soundcpu", 0 )
- ROM_LOAD( "silkwormj.3", 0x0000, 0x8000, CRC(b79848d0) SHA1(d8162ab847bd0768572454d9775b0e9ed92b9519) )
-
- ROM_REGION( 0x08000, "gfx1", 0 )
- ROM_LOAD( "silkworm.2", 0x00000, 0x08000, CRC(e80a1cd9) SHA1(ef16feb1113acc7401f8951158b25f6f201196f2) ) /* characters */
-
- ROM_REGION( 0x40000, "gfx2", 0 )
- ROM_LOAD( "silkworm.6", 0x00000, 0x10000, CRC(1138d159) SHA1(3b938606d448c4effdfe414bbf495b50cc3bc1c1) ) /* sprites */
- ROM_LOAD( "silkworm.7", 0x10000, 0x10000, CRC(d96214f7) SHA1(a5b2be3ae6a6eb8afef2c18c865a998fbf4adf93) ) /* sprites */
- ROM_LOAD( "silkworm.8", 0x20000, 0x10000, CRC(0494b38e) SHA1(03255f153824056e430a0b8595103f3b58b1fd97) ) /* sprites */
- ROM_LOAD( "silkworm.9", 0x30000, 0x10000, CRC(8ce3cdf5) SHA1(635248514c4e1e5aab7a2ed4d620a5b970d4a43a) ) /* sprites */
-
- ROM_REGION( 0x40000, "gfx3", 0 )
- ROM_LOAD( "silkworm.10", 0x00000, 0x10000, CRC(8c7138bb) SHA1(0cfd69fa77d5b546f7dad80537d8d2497ae758bc) ) /* tiles #1 */
- ROM_LOAD( "silkworm.11", 0x10000, 0x10000, CRC(6c03c476) SHA1(79ad800a2f4ba6d44ba5a31210cbd8566bb357b6) ) /* tiles #1 */
- ROM_LOAD( "silkworm.12", 0x20000, 0x10000, CRC(bb0f568f) SHA1(b66c6d0407ed0b068c6bf07987f1b923d4a6e4f8) ) /* tiles #1 */
- ROM_LOAD( "silkworm.13", 0x30000, 0x10000, CRC(773ad0a4) SHA1(f7576e1ac8c779b33d7ec393555fd097a34257fa) ) /* tiles #1 */
-
- ROM_REGION( 0x40000, "gfx4", 0 )
- ROM_LOAD( "silkworm.14", 0x00000, 0x10000, CRC(409df64b) SHA1(cada970bf9cc8f6522e7a71e00fe873568852873) ) /* tiles #2 */
- ROM_LOAD( "silkworm.15", 0x10000, 0x10000, CRC(6e4052c9) SHA1(e2e3d7221b75cb044449a25a076a93c3def1f11b) ) /* tiles #2 */
- ROM_LOAD( "silkworm.16", 0x20000, 0x10000, CRC(9292ed63) SHA1(70aa46fcc187b8200c5d246870e2e2dc4b2985cb) ) /* tiles #2 */
- ROM_LOAD( "silkworm.17", 0x30000, 0x10000, CRC(3fa4563d) SHA1(46e3cc41491d63efcdda43c84c7ac1385a1926d0) ) /* tiles #2 */
-
- ROM_REGION( 0x8000, "adpcm", 0 ) /* ADPCM samples */
- ROM_LOAD( "silkworm.1", 0x0000, 0x8000, CRC(5b553644) SHA1(5d39d2251094c17f7b732b4861401b3516fce9b1) )
-ROM_END
-
-// 6217A
-// SILKWORM H T737
-// board have Japanese label "ADONO"
-// this set shows "AD" (revision?) on title screen
-// sound cpu isn't attempting to use samples, so removed the parent rom reference, have to assume it doesn't exist like the other proto set
-ROM_START( silkwormp )
- ROM_REGION( 0x20000, "maincpu", 0 )
- ROM_LOAD( "silkworm_pr4ma.4", 0x00000, 0x10000, CRC(5e2a39cc) SHA1(e2fb0fa2d4e3d439935b7814c8572224eddf271e) ) /* c000-ffff is not used */
- ROM_LOAD( "silkworm.5", 0x10000, 0x10000, CRC(a6c7bb51) SHA1(75f6625459ab65f2d47a282c1295d4db38f5fe51) ) /* banked at f000-f7ff */
-
- ROM_REGION( 0x20000, "soundcpu", 0 )
- ROM_LOAD( "silkworm_sound.3", 0x0000, 0x8000, CRC(c67c5644) SHA1(0963eda467dbc18806a4f0a9525a093d2fcb82fb) )
-
- ROM_REGION( 0x08000, "gfx1", 0 )
- ROM_LOAD( "sw.2", 0x00000, 0x08000, CRC(1acc54be) SHA1(b210e4c0753bc84171ca418f3fcf07f0e6965390) ) /* characters */
-
- ROM_REGION( 0x40000, "gfx2", 0 )
- ROM_LOAD( "silkworm.6", 0x00000, 0x10000, CRC(1138d159) SHA1(3b938606d448c4effdfe414bbf495b50cc3bc1c1) ) /* sprites */
- ROM_LOAD( "silkworm.7", 0x10000, 0x10000, CRC(d96214f7) SHA1(a5b2be3ae6a6eb8afef2c18c865a998fbf4adf93) ) /* sprites */
- ROM_LOAD( "silkworm.8", 0x20000, 0x10000, CRC(0494b38e) SHA1(03255f153824056e430a0b8595103f3b58b1fd97) ) /* sprites */
- ROM_LOAD( "silkworm.9", 0x30000, 0x10000, CRC(8ce3cdf5) SHA1(635248514c4e1e5aab7a2ed4d620a5b970d4a43a) ) /* sprites */
-
- ROM_REGION( 0x40000, "gfx3", 0 )
- ROM_LOAD( "silkworm.10", 0x00000, 0x10000, CRC(8c7138bb) SHA1(0cfd69fa77d5b546f7dad80537d8d2497ae758bc) ) /* tiles #1 */
- ROM_LOAD( "silkworm.11", 0x10000, 0x10000, CRC(6c03c476) SHA1(79ad800a2f4ba6d44ba5a31210cbd8566bb357b6) ) /* tiles #1 */
- ROM_LOAD( "silkworm.12", 0x20000, 0x10000, CRC(bb0f568f) SHA1(b66c6d0407ed0b068c6bf07987f1b923d4a6e4f8) ) /* tiles #1 */
- ROM_LOAD( "silkworm.13", 0x30000, 0x10000, CRC(773ad0a4) SHA1(f7576e1ac8c779b33d7ec393555fd097a34257fa) ) /* tiles #1 */
-
- ROM_REGION( 0x40000, "gfx4", 0 )
- ROM_LOAD( "silkworm.14", 0x00000, 0x10000, CRC(409df64b) SHA1(cada970bf9cc8f6522e7a71e00fe873568852873) ) /* tiles #2 */
- ROM_LOAD( "silkworm.15", 0x10000, 0x10000, CRC(6e4052c9) SHA1(e2e3d7221b75cb044449a25a076a93c3def1f11b) ) /* tiles #2 */
- ROM_LOAD( "silkworm.16", 0x20000, 0x10000, CRC(9292ed63) SHA1(70aa46fcc187b8200c5d246870e2e2dc4b2985cb) ) /* tiles #2 */
- ROM_LOAD( "silkworm.17", 0x30000, 0x10000, CRC(3fa4563d) SHA1(46e3cc41491d63efcdda43c84c7ac1385a1926d0) ) /* tiles #2 */
-ROM_END
-
-/*
- markings: CPU board: HE 202 (silkscreen) SK-50 (sticker)
- video board: HE 203 (silkscreen)
- main cpu: zilog Z8400BPS Z80B @ 6MHz 8609
- sound cpu: sharp LH0080A Z80A @ 4MHz 8705
- this set shows "GF" (revision?) on title screen
- this seems to be a bootleg of a prototype, not sure if it's the other proto set hacked or another rev proto
-*/
-ROM_START( silkwormb )
- ROM_REGION( 0x20000, "maincpu", 0 )
- ROM_LOAD( "e3.4", 0x00000, 0x10000, CRC(3d86fd58) SHA1(7245186259e08bda33a7dc0d5f895f847c94519b) )
- ROM_LOAD( "silkworm.5", 0x10000, 0x10000, CRC(a6c7bb51) SHA1(75f6625459ab65f2d47a282c1295d4db38f5fe51) )
-
- ROM_REGION( 0x20000, "soundcpu", 0 )
- ROM_LOAD( "e2.3", 0x0000, 0x8000, CRC(b7a3fb80) SHA1(de52ef3c8b22f083816a42cbf239e8f9dbee2424) )
-
- ROM_REGION( 0x08000, "gfx1", 0 )
- ROM_LOAD( "silkworm.2", 0x00000, 0x08000, CRC(e80a1cd9) SHA1(ef16feb1113acc7401f8951158b25f6f201196f2) ) /* characters */
-
- ROM_REGION( 0x40000, "gfx2", 0 )
- ROM_LOAD( "silkworm.6", 0x00000, 0x10000, CRC(1138d159) SHA1(3b938606d448c4effdfe414bbf495b50cc3bc1c1) ) /* sprites */
- ROM_LOAD( "silkworm.7", 0x10000, 0x10000, CRC(d96214f7) SHA1(a5b2be3ae6a6eb8afef2c18c865a998fbf4adf93) ) /* sprites */
- ROM_LOAD( "silkworm.8", 0x20000, 0x10000, CRC(0494b38e) SHA1(03255f153824056e430a0b8595103f3b58b1fd97) ) /* sprites */
- ROM_LOAD( "silkworm.9", 0x30000, 0x10000, CRC(8ce3cdf5) SHA1(635248514c4e1e5aab7a2ed4d620a5b970d4a43a) ) /* sprites */
-
- ROM_REGION( 0x40000, "gfx3", 0 )
- ROM_LOAD( "silkworm.10", 0x00000, 0x10000, CRC(8c7138bb) SHA1(0cfd69fa77d5b546f7dad80537d8d2497ae758bc) ) /* fg tiles TMM24512 */
- ROM_LOAD( "e10.11", 0x10000, 0x08000, CRC(c0c4687d) SHA1(afe05eb7e5a65c995aeac9ea773ad79eb053303f) ) /* fg tiles TMM24256 */
- ROM_LOAD( "silkworm.12", 0x20000, 0x10000, CRC(bb0f568f) SHA1(b66c6d0407ed0b068c6bf07987f1b923d4a6e4f8) ) /* fg tiles TMM24512 */
- ROM_LOAD( "e12.13", 0x30000, 0x08000, CRC(fc472811) SHA1(e862ec9b38f3f3a1f4668fbc587063eee8e9e821) ) /* fg tiles 27C256 */
-
- ROM_REGION( 0x40000, "gfx4", 0 )
- ROM_LOAD( "silkworm.14", 0x00000, 0x10000, CRC(409df64b) SHA1(cada970bf9cc8f6522e7a71e00fe873568852873) ) /* bg tiles TMM24512 */
- ROM_LOAD( "e14.15", 0x10000, 0x08000, CRC(b02acdb6) SHA1(6be74bb89680b79b3a5d13af638ed5a0bb077dad) ) /* bg tiles 27C256 */
- ROM_LOAD( "e15.16", 0x20000, 0x08000, CRC(caf7b25e) SHA1(2c348af9d03efd801cbbc06deb02869bd6449518) ) /* bg tiles 27C256 */
- ROM_LOAD( "e16.17", 0x30000, 0x08000, CRC(7ec93873) SHA1(0993a3b3e5ca84ef0ea32159825e379ba4cc5fbb) ) /* bg tiles 27C256 */
-ROM_END
-
-/*
-
-main cpu Z80A
-sound cpu Z80A* see note
-sound ic ym3812 + 3014
-Osc 8Mhz and 24Mhz
-
-*Note:The sound cpu was protected inside a epoxy block fit on a 40 pin socket in reverse of cpu board (solder side).
- By dissolving resin the small sub pcb contains Z80A (identified by pins),76c28 (6116),a 74ls00 and 74ls138.
-
-ROMs B4,B5 main program
-B2 sound program
-B3 character gfx
-B6 to B9 object gfx
-B10 to B13 foreground gfx
-B14 to B17 background gfx
-All eprom/rom are 27256,27512
-
-RAMs:
--ram (cpu board):
-6264 main/work
-6116 (sub pcb*),6116, 2114 x3 sound
-6116 character
--ram (video board):
-6116 scroll
-6116 foreground
-6116 background
-4164 x20 object/sprites
-
-*/
-
-ROM_START( backfirt )
- ROM_REGION( 0x20000, "maincpu", 0 )
- ROM_LOAD( "b5-e3.bin", 0x00000, 0x10000, CRC(0ab3bd4d) SHA1(2653d099c894304d3f9c2b2de9a7fed67be7b6dc) ) /* c000-ffff is not used */
- ROM_LOAD( "b4-f3.bin", 0x10000, 0x10000, CRC(150b6949) SHA1(31870a2f471b71d79a4daa0b5baca0d941de12e4) ) /* banked at f000-f7ff */
-
- ROM_REGION( 0x20000, "soundcpu", 0 )
- ROM_LOAD( "b2-e10.bin", 0x00000, 0x08000, CRC(9b2ac54f) SHA1(7c10e00235dc2668dee5c97ea5c6dc7722f35f03) )
-
- ROM_REGION( 0x08000, "gfx1", 0 )
- ROM_LOAD( "b3-c10.bin", 0x00000, 0x08000, CRC(08ce729f) SHA1(8e426251b20edfb10f0837b3106b4f333bc114a4) ) /* characters */
-
- ROM_REGION( 0x40000, "gfx2", 0 )
- ROM_LOAD( "b6-c2.bin", 0x00000, 0x10000, CRC(c8c25e45) SHA1(d771d5e7d2d8082680f73b778ef2d88f2e9b8591) ) /* sprites */
- ROM_LOAD( "b7-d2.bin", 0x10000, 0x10000, CRC(25fb6a57) SHA1(7f411af7417fa901d65194c348ecec58c61b7cf7) ) /* sprites */
- ROM_LOAD( "b8-e2.bin", 0x20000, 0x10000, CRC(6bccac4e) SHA1(e042d049761affe4d3d0eac3c7a24f428643a9cf) ) /* sprites */
- ROM_LOAD( "b9-h2.bin", 0x30000, 0x10000, CRC(566a99b8) SHA1(a78825f0a85235399e66906cffafda98445a89a2) ) /* sprites */
-
- ROM_REGION( 0x40000, "gfx3", 0 )
- ROM_LOAD( "b13-p1.bin", 0x00000, 0x10000, CRC(8c7138bb) SHA1(0cfd69fa77d5b546f7dad80537d8d2497ae758bc) ) /* tiles #1 */
- ROM_LOAD( "b12-p2.bin", 0x10000, 0x10000, CRC(6c03c476) SHA1(79ad800a2f4ba6d44ba5a31210cbd8566bb357b6) ) /* tiles #1 */
- ROM_LOAD( "b11-p2.bin", 0x20000, 0x10000, CRC(0bc84b4b) SHA1(599041108d09fd61aab2b0aeac0e07715887476c) ) /* tiles #1 */
- ROM_LOAD( "b10-p3.bin", 0x30000, 0x10000, CRC(ec149ec3) SHA1(7817dc2659fe4ba3bb810df278378d51d97065b3) ) /* tiles #1 */
-
- ROM_REGION( 0x40000, "gfx4", 0 )
- ROM_LOAD( "b17-s1.bin", 0x00000, 0x10000, CRC(409df64b) SHA1(cada970bf9cc8f6522e7a71e00fe873568852873) ) /* tiles #2 */
- ROM_LOAD( "b16-s2.bin", 0x10000, 0x10000, CRC(6e4052c9) SHA1(e2e3d7221b75cb044449a25a076a93c3def1f11b) ) /* tiles #2 */
- ROM_LOAD( "b15-s2.bin", 0x20000, 0x10000, CRC(2b6cc20e) SHA1(4815819288753400935836cc1b0b69f4c4b43ddc) ) /* tiles #2 */
- ROM_LOAD( "b14-s3.bin", 0x30000, 0x08000, CRC(4d29637a) SHA1(28e85925138256b8ce5a1c4a5df5b219b1b6b197) ) /* tiles #2 */ // half size is correct, rom type 27256
-ROM_END
-
-ROM_START( gemini )
- ROM_REGION( 0x20000, "maincpu", 0 )
- ROM_LOAD( "4-5s", 0x00000, 0x10000, CRC(ce71e27a) SHA1(5aac0434edd39e444687d9988c7f49e0752a4900) ) /* c000-ffff is not used */
- ROM_LOAD( "5-6s", 0x10000, 0x10000, CRC(216784a9) SHA1(ec74a3753e5b6384b875125ec0db7beea0a6aa6d) ) /* banked at f000-f7ff */
-
- ROM_REGION( 0x10000, "soundcpu", 0 )
- ROM_LOAD( "gw03-5h.rom", 0x0000, 0x8000, CRC(9bc79596) SHA1(61de9ddd45140e8ed88173294bd26147e2abfa21) )
-
- ROM_REGION( 0x08000, "gfx1", 0 )
- ROM_LOAD( "gw02-3h.rom", 0x00000, 0x08000, CRC(7acc8d35) SHA1(05056e9f077e7571b314390b508c72d56ad0f43b) ) /* characters */
-
- ROM_REGION( 0x40000, "gfx2", 0 )
- ROM_LOAD( "gw06-1c.rom", 0x00000, 0x10000, CRC(4ea51631) SHA1(9aee0f1ba210ac953dc193cfc739322966b6de8a) ) /* sprites */
- ROM_LOAD( "gw07-1d.rom", 0x10000, 0x10000, CRC(da42637e) SHA1(9885c52823279f26871092c77bdbe027df08268f) ) /* sprites */
- ROM_LOAD( "gw08-1f.rom", 0x20000, 0x10000, CRC(0b4e8d70) SHA1(55069f3df1c8db83f306d46b8262fd23585e6013) ) /* sprites */
- ROM_LOAD( "gw09-1h.rom", 0x30000, 0x10000, CRC(b65c5e4c) SHA1(699e1a9e72b8d94edae7382ba119fe5da113514d) ) /* sprites */
-
- ROM_REGION( 0x40000, "gfx3", 0 )
- ROM_LOAD( "gw10-1n.rom", 0x00000, 0x10000, CRC(5e84cd4f) SHA1(e85320291027a16619c87fc2365448367bda454a) ) /* tiles #1 */
- ROM_LOAD( "gw11-2na.rom", 0x10000, 0x10000, CRC(08b458e1) SHA1(b3426faa57dca51dc053db44fa4968425d8bf3ee) ) /* tiles #1 */
- ROM_LOAD( "gw12-2nb.rom", 0x20000, 0x10000, CRC(229c9714) SHA1(f4f47d6b379c973c22f9ae7d7bec7041cdf3f737) ) /* tiles #1 */
- ROM_LOAD( "gw13-3n.rom", 0x30000, 0x10000, CRC(c5dfaf47) SHA1(c3202ca8c7f3c5c7dc9acdc09c1c894e168ef9fe) ) /* tiles #1 */
-
- ROM_REGION( 0x40000, "gfx4", 0 )
- ROM_LOAD( "gw14-1r.rom", 0x00000, 0x10000, CRC(9c10e5b5) SHA1(a81399b85d8f3ddca26883ec3535cb9044c35ada) ) /* tiles #2 */
- ROM_LOAD( "gw15-2ra.rom", 0x10000, 0x10000, CRC(4cd18cfa) SHA1(c197a098a7c1e5220aad039383a40702fe7c4f21) ) /* tiles #2 */
- ROM_LOAD( "gw16-2rb.rom", 0x20000, 0x10000, CRC(f911c7be) SHA1(3f49f6c4734f2b644d93c4a54249aae6ff080e1d) ) /* tiles #2 */
- ROM_LOAD( "gw17-3r.rom", 0x30000, 0x10000, CRC(79a9ce25) SHA1(74e3917b8e7a920ceb2135d7ef8fb2f2c5176b21) ) /* tiles #2 */
-
- ROM_REGION( 0x8000, "adpcm", 0 ) /* ADPCM samples */
- ROM_LOAD( "gw01-6a.rom", 0x0000, 0x8000, CRC(d78afa05) SHA1(b02a739b045f5cddf943ce59226ef234463eeebe) )
-ROM_END
-
-ROM_START( geminij )
- ROM_REGION( 0x20000, "maincpu", 0 )
- ROM_LOAD( "gw04-5s.rom", 0x00000, 0x10000, CRC(ff9de855) SHA1(34167af8456a081f68b338f10d4319ce1e703fd4) ) /* c000-ffff is not used */
- ROM_LOAD( "gw05-6s.rom", 0x10000, 0x10000, CRC(5a6947a9) SHA1(18b7aeb0f0e2c396bc759118dd7c45fd6070b804) ) /* banked at f000-f7ff */
-
- ROM_REGION( 0x10000, "soundcpu", 0 )
- ROM_LOAD( "gw03-5h.rom", 0x0000, 0x8000, CRC(9bc79596) SHA1(61de9ddd45140e8ed88173294bd26147e2abfa21) )
-
- ROM_REGION( 0x08000, "gfx1", 0 )
- ROM_LOAD( "gw02-3h.rom", 0x00000, 0x08000, CRC(7acc8d35) SHA1(05056e9f077e7571b314390b508c72d56ad0f43b) ) /* characters */
-
- ROM_REGION( 0x40000, "gfx2", 0 )
- ROM_LOAD( "gw06-1c.rom", 0x00000, 0x10000, CRC(4ea51631) SHA1(9aee0f1ba210ac953dc193cfc739322966b6de8a) ) /* sprites */
- ROM_LOAD( "gw07-1d.rom", 0x10000, 0x10000, CRC(da42637e) SHA1(9885c52823279f26871092c77bdbe027df08268f) ) /* sprites */
- ROM_LOAD( "gw08-1f.rom", 0x20000, 0x10000, CRC(0b4e8d70) SHA1(55069f3df1c8db83f306d46b8262fd23585e6013) ) /* sprites */
- ROM_LOAD( "gw09-1h.rom", 0x30000, 0x10000, CRC(b65c5e4c) SHA1(699e1a9e72b8d94edae7382ba119fe5da113514d) ) /* sprites */
-
- ROM_REGION( 0x40000, "gfx3", 0 )
- ROM_LOAD( "gw10-1n.rom", 0x00000, 0x10000, CRC(5e84cd4f) SHA1(e85320291027a16619c87fc2365448367bda454a) ) /* tiles #1 */
- ROM_LOAD( "gw11-2na.rom", 0x10000, 0x10000, CRC(08b458e1) SHA1(b3426faa57dca51dc053db44fa4968425d8bf3ee) ) /* tiles #1 */
- ROM_LOAD( "gw12-2nb.rom", 0x20000, 0x10000, CRC(229c9714) SHA1(f4f47d6b379c973c22f9ae7d7bec7041cdf3f737) ) /* tiles #1 */
- ROM_LOAD( "gw13-3n.rom", 0x30000, 0x10000, CRC(c5dfaf47) SHA1(c3202ca8c7f3c5c7dc9acdc09c1c894e168ef9fe) ) /* tiles #1 */
-
- ROM_REGION( 0x40000, "gfx4", 0 )
- ROM_LOAD( "gw14-1r.rom", 0x00000, 0x10000, CRC(9c10e5b5) SHA1(a81399b85d8f3ddca26883ec3535cb9044c35ada) ) /* tiles #2 */
- ROM_LOAD( "gw15-2ra.rom", 0x10000, 0x10000, CRC(4cd18cfa) SHA1(c197a098a7c1e5220aad039383a40702fe7c4f21) ) /* tiles #2 */
- ROM_LOAD( "gw16-2rb.rom", 0x20000, 0x10000, CRC(f911c7be) SHA1(3f49f6c4734f2b644d93c4a54249aae6ff080e1d) ) /* tiles #2 */
- ROM_LOAD( "gw17-3r.rom", 0x30000, 0x10000, CRC(79a9ce25) SHA1(74e3917b8e7a920ceb2135d7ef8fb2f2c5176b21) ) /* tiles #2 */
-
- ROM_REGION( 0x8000, "adpcm", 0 ) /* ADPCM samples */
- ROM_LOAD( "gw01-6a.rom", 0x0000, 0x8000, CRC(d78afa05) SHA1(b02a739b045f5cddf943ce59226ef234463eeebe) )
-ROM_END
-
-/*
- hsync is 15.742kHz
- vsync is 59.629Hz
- hsync pulse is 5.3uS
- vsync pulse is 8 raster lines
-
-The non matching EPROM is a modified version of gw04-5s.rom with the following changes:
-- offset 0x0A4A contains 0x6F instead of 0x1F
-- offset 0x0A4E contains 0xAA instead of 0xFA
- */
-
-ROM_START( geminib )
- ROM_REGION( 0x20000, "maincpu", 0 )
- ROM_LOAD( "g-2.6d", 0x00000, 0x10000, CRC(cd79c5b3) SHA1(355aae2346d49d14a801fad05d49376581d329c6) ) /* c000-ffff is not used */
- ROM_LOAD( "gw05-6s.rom", 0x10000, 0x10000, CRC(5a6947a9) SHA1(18b7aeb0f0e2c396bc759118dd7c45fd6070b804) ) /* banked at f000-f7ff */
-
- ROM_REGION( 0x10000, "soundcpu", 0 )
- ROM_LOAD( "gw03-5h.rom", 0x0000, 0x8000, CRC(9bc79596) SHA1(61de9ddd45140e8ed88173294bd26147e2abfa21) )
-
- ROM_REGION( 0x08000, "gfx1", 0 )
- ROM_LOAD( "gw02-3h.rom", 0x00000, 0x08000, CRC(7acc8d35) SHA1(05056e9f077e7571b314390b508c72d56ad0f43b) ) /* characters */
-
- ROM_REGION( 0x40000, "gfx2", 0 )
- ROM_LOAD( "gw06-1c.rom", 0x00000, 0x10000, CRC(4ea51631) SHA1(9aee0f1ba210ac953dc193cfc739322966b6de8a) ) /* sprites */
- ROM_LOAD( "gw07-1d.rom", 0x10000, 0x10000, CRC(da42637e) SHA1(9885c52823279f26871092c77bdbe027df08268f) ) /* sprites */
- ROM_LOAD( "gw08-1f.rom", 0x20000, 0x10000, CRC(0b4e8d70) SHA1(55069f3df1c8db83f306d46b8262fd23585e6013) ) /* sprites */
- ROM_LOAD( "gw09-1h.rom", 0x30000, 0x10000, CRC(b65c5e4c) SHA1(699e1a9e72b8d94edae7382ba119fe5da113514d) ) /* sprites */
-
- ROM_REGION( 0x40000, "gfx3", 0 )
- ROM_LOAD( "gw10-1n.rom", 0x00000, 0x10000, CRC(5e84cd4f) SHA1(e85320291027a16619c87fc2365448367bda454a) ) /* tiles #1 */
- ROM_LOAD( "gw11-2na.rom", 0x10000, 0x10000, CRC(08b458e1) SHA1(b3426faa57dca51dc053db44fa4968425d8bf3ee) ) /* tiles #1 */
- ROM_LOAD( "gw12-2nb.rom", 0x20000, 0x10000, CRC(229c9714) SHA1(f4f47d6b379c973c22f9ae7d7bec7041cdf3f737) ) /* tiles #1 */
- ROM_LOAD( "gw13-3n.rom", 0x30000, 0x10000, CRC(c5dfaf47) SHA1(c3202ca8c7f3c5c7dc9acdc09c1c894e168ef9fe) ) /* tiles #1 */
-
- ROM_REGION( 0x40000, "gfx4", 0 )
- ROM_LOAD( "gw14-1r.rom", 0x00000, 0x10000, CRC(9c10e5b5) SHA1(a81399b85d8f3ddca26883ec3535cb9044c35ada) ) /* tiles #2 */
- ROM_LOAD( "gw15-2ra.rom", 0x10000, 0x10000, CRC(4cd18cfa) SHA1(c197a098a7c1e5220aad039383a40702fe7c4f21) ) /* tiles #2 */
- ROM_LOAD( "gw16-2rb.rom", 0x20000, 0x10000, CRC(f911c7be) SHA1(3f49f6c4734f2b644d93c4a54249aae6ff080e1d) ) /* tiles #2 */
- ROM_LOAD( "gw17-3r.rom", 0x30000, 0x10000, CRC(79a9ce25) SHA1(74e3917b8e7a920ceb2135d7ef8fb2f2c5176b21) ) /* tiles #2 */
-
- ROM_REGION( 0x8000, "adpcm", 0 ) /* ADPCM samples */
- ROM_LOAD( "gw01-6a.rom", 0x0000, 0x8000, CRC(d78afa05) SHA1(b02a739b045f5cddf943ce59226ef234463eeebe) )
-ROM_END
-
-/*
- video_type is used to distinguish Rygar, Silkworm and Gemini Wing.
- This is needed because there is a difference in the tile and sprite indexing.
-*/
-void tecmo_state::init_rygar()
-{
- m_video_type = 0;
-}
-
-void tecmo_state::init_silkworm()
-{
- m_video_type = 1;
-}
-
-void tecmo_state::init_gemini()
-{
- m_video_type = 2;
-}
-
-
-GAME( 1986, rygar, 0, rygar, rygar, tecmo_state, init_rygar, ROT0, "Tecmo", "Rygar (US set 1)", MACHINE_SUPPORTS_SAVE )
-GAME( 1986, rygar2, rygar, rygar, rygar, tecmo_state, init_rygar, ROT0, "Tecmo", "Rygar (US set 2)", MACHINE_SUPPORTS_SAVE )
-GAME( 1986, rygar3, rygar, rygar, rygar, tecmo_state, init_rygar, ROT0, "Tecmo", "Rygar (US set 3 Old Version)", MACHINE_SUPPORTS_SAVE )
-GAME( 1986, rygarj, rygar, rygar, rygar, tecmo_state, init_rygar, ROT0, "Tecmo", "Argus no Senshi (Japan)", MACHINE_SUPPORTS_SAVE )
-GAME( 1987, gemini, 0, gemini, gemini, tecmo_state, init_gemini, ROT90, "Tecmo", "Gemini Wing (World)", MACHINE_SUPPORTS_SAVE ) // No regional "Warning, if you are playing ..." screen
-GAME( 1987, geminij, gemini, gemini, gemini, tecmo_state, init_gemini, ROT90, "Tecmo", "Gemini Wing (Japan)", MACHINE_SUPPORTS_SAVE ) // Japan regional warning screen
-GAME( 1987, geminib, gemini, geminib, gemini, tecmo_state, init_gemini, ROT90, "bootleg", "Gemini Wing (bootleg)", MACHINE_SUPPORTS_SAVE ) // regional warning screen is blanked (still get a delay)
-GAME( 1988, silkworm, 0, silkworm, silkworm, tecmo_state, init_silkworm, ROT0, "Tecmo", "Silk Worm (World)", MACHINE_SUPPORTS_SAVE ) // No regional "Warning, if you are playing ..." screen
-GAME( 1988, silkwormj, silkworm, silkworm, silkworm, tecmo_state, init_silkworm, ROT0, "Tecmo", "Silk Worm (Japan)", MACHINE_SUPPORTS_SAVE ) // Japan regional warning screen
-GAME( 1988, silkwormp, silkworm, silkwormp, silkwormp, tecmo_state, init_silkworm, ROT0, "Tecmo", "Silk Worm (prototype)", MACHINE_SUPPORTS_SAVE ) // prototype
-GAME( 1988, silkwormb, silkworm, silkwormp, silkwormp, tecmo_state, init_silkworm, ROT0, "bootleg", "Silk Worm (bootleg)", MACHINE_SUPPORTS_SAVE ) // bootleg of (a different?) prototype
-GAME( 1988, backfirt, 0, backfirt, backfirt, tecmo_state, init_gemini, ROT0, "Tecmo", "Back Fire (Tecmo, bootleg)", MACHINE_SUPPORTS_SAVE )