diff options
Diffstat (limited to 'src/mame/drivers/tecmo.cpp')
-rw-r--r-- | src/mame/drivers/tecmo.cpp | 1347 |
1 files changed, 0 insertions, 1347 deletions
diff --git a/src/mame/drivers/tecmo.cpp b/src/mame/drivers/tecmo.cpp deleted file mode 100644 index 641564fb73e..00000000000 --- a/src/mame/drivers/tecmo.cpp +++ /dev/null @@ -1,1347 +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" - - -void tecmo_state::bankswitch_w(uint8_t data) -{ - m_mainbank->set_entry(data >> 3); -} - -void tecmo_state::adpcm_start_w(uint8_t data) -{ - m_adpcm_pos = data << 8; - m_msm->reset_w(0); -} - -void tecmo_state::adpcm_end_w(uint8_t data) -{ - m_adpcm_end = (data + 1) << 8; -} - -void tecmo_state::adpcm_vol_w(uint8_t data) -{ - 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->data_w(m_adpcm_data & 0x0f); - m_adpcm_data = -1; - } - else - { - m_adpcm_data = m_adpcm_rom[m_adpcm_pos++]; - m_msm->data_w(m_adpcm_data >> 4); - } -} - -/* the 8-bit dipswitches are split across addresses */ -uint8_t tecmo_state::dswa_l_r() -{ - uint8_t port = ioport("DSWA")->read(); - port &= 0x0f; - return port; -} - -uint8_t tecmo_state::dswa_h_r() -{ - uint8_t port = ioport("DSWA")->read(); - port &= 0xf0; - return port>>4; -} - -uint8_t tecmo_state::dswb_l_r() -{ - uint8_t port = ioport("DSWB")->read(); - port &= 0x0f; - return port; -} - -uint8_t 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 - some of the tile roms are half size but the original has a lot of unused data so nothing is missing in game. - the various Mitsubishi custom chips present on original board are implemented with standard ttl chips: - MN50005XTA on the main board is 11 ttl chips - M60002-0118P on the video board is 27 ttl chips - MA7053 sil module on the main board is 4 ttl chips - these are all properly integrated into the design of the boards, not plug-in sub/daughter boards. -*/ -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", 0x38000, 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 ) |