// license:BSD-3-Clause // copyright-holders:Bryan McPhail /*************************************************************************** Vapor Trail (World version) (c) 1989 Data East Corporation Vapor Trail (USA version) (c) 1989 Data East USA Kuhga (Japanese version) (c) 1989 Data East Corporation Notes: ----- - If you activate the service mode dip switch during the gameplay, it acts like invicibility either for player 1 and player 2. It works for all sets. Emulation by Bryan McPhail, mish@tendril.co.uk added pal & prom-maps - Highwayman. ***************************************************************************/ #include "emu.h" #include "includes/vaportra.h" #include "cpu/m68000/m68000.h" #include "sound/2203intf.h" #include "sound/ym2151.h" #include "sound/okim6295.h" #include "screen.h" #include "speaker.h" /******************************************************************************/ READ8_MEMBER(vaportra_state::irq6_ack_r) { m_maincpu->set_input_line(M68K_IRQ_6, CLEAR_LINE); return (0); } WRITE8_MEMBER(vaportra_state::irq6_ack_w) { m_maincpu->set_input_line(M68K_IRQ_6, CLEAR_LINE); } /******************************************************************************/ void vaportra_state::main_map(address_map &map) { map(0x000000, 0x07ffff).rom(); map(0x100000, 0x100001).portr("PLAYERS"); map(0x100002, 0x100003).portr("COINS"); map(0x100004, 0x100005).portr("DSW"); map(0x100000, 0x100003).w(FUNC(vaportra_state::priority_w)); map(0x100007, 0x100007).w(m_soundlatch, FUNC(generic_latch_8_device::write)); map(0x200000, 0x201fff).rw(m_deco_tilegen[1], FUNC(deco16ic_device::pf1_data_r), FUNC(deco16ic_device::pf1_data_w)); map(0x202000, 0x203fff).rw(m_deco_tilegen[1], FUNC(deco16ic_device::pf2_data_r), FUNC(deco16ic_device::pf2_data_w)); map(0x240000, 0x24000f).w(m_deco_tilegen[1], FUNC(deco16ic_device::pf_control_w)); map(0x280000, 0x281fff).rw(m_deco_tilegen[0], FUNC(deco16ic_device::pf1_data_r), FUNC(deco16ic_device::pf1_data_w)); map(0x282000, 0x283fff).rw(m_deco_tilegen[0], FUNC(deco16ic_device::pf2_data_r), FUNC(deco16ic_device::pf2_data_w)); map(0x2c0000, 0x2c000f).w(m_deco_tilegen[0], FUNC(deco16ic_device::pf_control_w)); map(0x300000, 0x3009ff).ram().w(FUNC(vaportra_state::palette_w)).share("palette"); map(0x304000, 0x3049ff).ram().w(FUNC(vaportra_state::palette_ext_w)).share("palette_ext"); map(0x308001, 0x308001).rw(FUNC(vaportra_state::irq6_ack_r), FUNC(vaportra_state::irq6_ack_w)); map(0x30c000, 0x30c001).w(m_spriteram, FUNC(buffered_spriteram16_device::write)); map(0x318000, 0x3187ff).mirror(0xce0000).ram().share("spriteram"); map(0xffc000, 0xffffff).ram(); } /******************************************************************************/ void vaportra_state::sound_map(address_map &map) { map(0x000000, 0x00ffff).rom(); map(0x100000, 0x100001).rw("ym1", FUNC(ym2203_device::read), FUNC(ym2203_device::write)); map(0x110000, 0x110001).rw("ym2", FUNC(ym2151_device::read), FUNC(ym2151_device::write)); map(0x120000, 0x120001).rw("oki1", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); map(0x130000, 0x130001).rw("oki2", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); map(0x140000, 0x140001).r(m_soundlatch, FUNC(generic_latch_8_device::read)); map(0x1f0000, 0x1f1fff).ram(); map(0x1fec00, 0x1fec01).rw(m_audiocpu, FUNC(h6280_device::timer_r), FUNC(h6280_device::timer_w)).mirror(0x3fe); map(0x1ff400, 0x1ff403).rw(m_audiocpu, FUNC(h6280_device::irq_status_r), FUNC(h6280_device::irq_status_w)).mirror(0x3fc); } /******************************************************************************/ static INPUT_PORTS_START( vaportra ) PORT_START("PLAYERS") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START2 ) PORT_START("COINS") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("DSW") PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Lives ) ) PORT_DIPSETTING( 0x0000, "2" ) PORT_DIPSETTING( 0x0003, "3" ) PORT_DIPSETTING( 0x0002, "4" ) PORT_DIPSETTING( 0x0001, "5" ) PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) ) PORT_DIPSETTING( 0x0008, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x000c, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x0004, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Bonus_Life ) ) PORT_DIPSETTING( 0x0020, "150k, 300k and 600k" ) PORT_DIPSETTING( 0x0030, "200k and 600k" ) PORT_DIPSETTING( 0x0010, "300k only" ) PORT_DIPSETTING( 0x0000, DEF_STR( None ) ) PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Allow_Continue ) ) PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) PORT_DIPSETTING( 0x0040, DEF_STR( Yes ) ) PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0700, 0x0700, DEF_STR( Coin_A ) ) PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x0100, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x0700, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x0600, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x0500, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x0400, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0x0300, DEF_STR( 1C_5C ) ) PORT_DIPSETTING( 0x0200, DEF_STR( 1C_6C ) ) PORT_DIPNAME( 0x3800, 0x3800, DEF_STR( Coin_B ) ) PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x0800, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x3800, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x3000, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x2800, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x2000, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0x1800, DEF_STR( 1C_5C ) ) PORT_DIPSETTING( 0x1000, DEF_STR( 1C_6C ) ) PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Flip_Screen ) ) PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_SERVICE( 0x8000, IP_ACTIVE_LOW ) INPUT_PORTS_END /******************************************************************************/ static const gfx_layout charlayout = { 8,8, RGN_FRAC(1,2), 4, { RGN_FRAC(0,2)+8,RGN_FRAC(0,2)+0,RGN_FRAC(1,2)+8,RGN_FRAC(1,2)+0 }, { STEP8(0,1) }, { STEP8(0,8*2) }, 8*16 }; static const gfx_layout tilelayout = { 16,16, RGN_FRAC(1,2), 4, { RGN_FRAC(0,2)+8,RGN_FRAC(0,2)+0,RGN_FRAC(1,2)+8,RGN_FRAC(1,2)+0 }, { STEP8(16*8*2,1), STEP8(0,1) }, { STEP16(0,8*2) }, 32*16 }; static GFXDECODE_START( gfx_vaportra ) GFXDECODE_ENTRY( "gfx1", 0x000000, charlayout, 0x000, 0x500 ) /* Characters 8x8 */ GFXDECODE_ENTRY( "gfx1", 0x000000, tilelayout, 0x000, 0x500 ) /* Tiles 16x16 */ GFXDECODE_ENTRY( "gfx2", 0x000000, charlayout, 0x000, 0x500 ) /* Characters 8x8 */ GFXDECODE_ENTRY( "gfx2", 0x000000, tilelayout, 0x000, 0x500 ) /* Tiles 16x16 */ // ok GFXDECODE_ENTRY( "gfx3", 0x000000, tilelayout, 0x100, 16 ) /* Sprites 16x16 */ GFXDECODE_END /******************************************************************************/ DECO16IC_BANK_CB_MEMBER(vaportra_state::bank_callback) { return ((bank >> 4) & 0x7) * 0x1000; } void vaportra_state::machine_start() { save_item(NAME(m_priority)); } void vaportra_state::machine_reset() { m_priority[0] = 0; m_priority[1] = 0; } MACHINE_CONFIG_START(vaportra_state::vaportra) /* basic machine hardware */ MCFG_DEVICE_ADD(m_maincpu, M68000,XTAL(24'000'000)/2) /* Custom chip 59 */ MCFG_DEVICE_PROGRAM_MAP(main_map) MCFG_DEVICE_VBLANK_INT_DRIVER("screen", vaportra_state, irq6_line_assert) MCFG_DEVICE_ADD(m_audiocpu, H6280, XTAL(24'000'000)/4) /* Custom chip 45; Audio section crystal is 32.220 MHz but CPU clock is confirmed as coming from the 24MHz crystal (6Mhz exactly on the CPU) */ MCFG_DEVICE_PROGRAM_MAP(sound_map) /* video hardware */ MCFG_DEVICE_ADD(m_spriteram, BUFFERED_SPRITERAM16) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(58) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) MCFG_SCREEN_UPDATE_DRIVER(vaportra_state, screen_update) MCFG_SCREEN_PALETTE("colors") MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, m_palette, gfx_vaportra) MCFG_PALETTE_ADD(m_palette, 1280) MCFG_DEVICE_ADD(m_deco_tilegen[0], DECO16IC, 0) MCFG_DECO16IC_SPLIT(0) MCFG_DECO16IC_PF1_SIZE(DECO_64x32) MCFG_DECO16IC_PF2_SIZE(DECO_64x32) MCFG_DECO16IC_PF1_TRANS_MASK(0x0f) MCFG_DECO16IC_PF2_TRANS_MASK(0x0f) MCFG_DECO16IC_PF1_COL_BANK(0x00) MCFG_DECO16IC_PF2_COL_BANK(0x20) MCFG_DECO16IC_PF1_COL_MASK(0x0f) MCFG_DECO16IC_PF2_COL_MASK(0x0f) MCFG_DECO16IC_BANK1_CB(vaportra_state, bank_callback) MCFG_DECO16IC_BANK2_CB(vaportra_state, bank_callback) MCFG_DECO16IC_PF12_8X8_BANK(0) MCFG_DECO16IC_PF12_16X16_BANK(1) MCFG_DECO16IC_GFXDECODE("gfxdecode") MCFG_DEVICE_ADD(m_deco_tilegen[1], DECO16IC, 0) MCFG_DECO16IC_SPLIT(0) MCFG_DECO16IC_PF1_SIZE(DECO_64x32) MCFG_DECO16IC_PF2_SIZE(DECO_64x32) MCFG_DECO16IC_PF1_TRANS_MASK(0x0f) MCFG_DECO16IC_PF2_TRANS_MASK(0x0f) MCFG_DECO16IC_PF1_COL_BANK(0x30) MCFG_DECO16IC_PF2_COL_BANK(0x40) MCFG_DECO16IC_PF1_COL_MASK(0x0f) MCFG_DECO16IC_PF2_COL_MASK(0x0f) MCFG_DECO16IC_BANK1_CB(vaportra_state, bank_callback) MCFG_DECO16IC_BANK2_CB(vaportra_state, bank_callback) MCFG_DECO16IC_PF12_8X8_BANK(2) MCFG_DECO16IC_PF12_16X16_BANK(3) MCFG_DECO16IC_GFXDECODE("gfxdecode") MCFG_DEVICE_ADD(m_spritegen, DECO_MXC06, 0) MCFG_DECO_MXC06_GFX_REGION(4) MCFG_DECO_MXC06_GFXDECODE("gfxdecode") /* sound hardware */ SPEAKER(config, "mono").front_center(); GENERIC_LATCH_8(config, m_soundlatch); m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, 0); MCFG_DEVICE_ADD("ym1", YM2203, XTAL(32'220'000)/8) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) MCFG_DEVICE_ADD("ym2", YM2151, XTAL(32'220'000)/9) // uses a preset LS163 to force the odd speed MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 1)) /* IRQ 2 */ MCFG_SOUND_ROUTE(0, "mono", 0.60) MCFG_SOUND_ROUTE(1, "mono", 0.60) MCFG_DEVICE_ADD("oki1", OKIM6295, XTAL(32'220'000)/32, okim6295_device::PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) MCFG_DEVICE_ADD("oki2", OKIM6295, XTAL(32'220'000)/16, okim6295_device::PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) MACHINE_CONFIG_END /******************************************************************************/ ROM_START( vaportra ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */ ROM_LOAD16_BYTE( "fl_02-1.bin", 0x00000, 0x20000, CRC(9ae36095) SHA1(c8d11a6033a44277a267915b4ca471c43acd1143) ) ROM_LOAD16_BYTE( "fl_00-1.bin", 0x00001, 0x20000, CRC(c08cc048) SHA1(b28f95856817b8a8cb6cc588d48e95196cbf52fd) ) ROM_LOAD16_BYTE( "fl_03.bin", 0x40000, 0x20000, CRC(80bd2844) SHA1(3fcaa409c7134388fa9458df8e8aaecc93f085e6) ) ROM_LOAD16_BYTE( "fl_01.bin", 0x40001, 0x20000, CRC(9474b085) SHA1(5510309ddab5fbf1dbb0a7b1e424a5dff5ec263d) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound CPU */ ROM_LOAD( "fj04", 0x00000, 0x10000, CRC(e9aedf9b) SHA1(f7bcf8f666015140aaad8ee5cf619636934b7066) ) ROM_REGION( 0x080000, "gfx1", 0 ) ROM_LOAD( "vtmaa00.bin", 0x000000, 0x80000, CRC(0330e13b) SHA1(dce70667ea738295332556752d1305c5e941b383) ) /* chars & tiles */ ROM_REGION( 0x100000, "gfx2", 0 ) ROM_LOAD( "vtmaa02.bin", 0x000000, 0x80000, CRC(091ff98e) SHA1(814dc08c055bad5368955a4b1fe6a706b58adc02) ) /* tiles 3 */ ROM_LOAD( "vtmaa01.bin", 0x080000, 0x80000, CRC(c217a31b) SHA1(e259d48190d6890781fb0338e17e14822876babb) ) /* tiles 2 */ ROM_REGION( 0x100000, "gfx3", 0 ) ROM_LOAD( "vtmaa03.bin", 0x000000, 0x80000, CRC(1a30bf81) SHA1(00e6c713e12133a99d64ca80638c9cbc8e26b2c8) ) /* sprites */ ROM_LOAD( "vtmaa04.bin", 0x080000, 0x80000, CRC(b713e9cc) SHA1(af33943d75d2ee3a7385f624537008dca9e1d5d8) ) ROM_REGION( 0x40000, "oki1", 0 ) /* ADPCM samples */ ROM_LOAD( "fj06", 0x00000, 0x20000, CRC(6e98a235) SHA1(374564b4e494d03cd1330c06e321b9452c22a075) ) ROM_REGION( 0x40000, "oki2", 0 ) /* ADPCM samples */ ROM_LOAD( "fj05", 0x00000, 0x20000, CRC(39cda2b5) SHA1(f5c5a305025d451ab48f84cd63e36a3bbdefda96) ) ROM_REGION( 0x200, "proms", 0 ) ROM_LOAD( "fj-27.bin", 0x00000, 0x00200, CRC(65045742) SHA1(5dfb6c85a70b208cd16d3bf8ec1897e77f4a9b7d) ) ROM_REGION( 0x0a00, "plds", 0 ) ROM_LOAD( "pal16l8a.6l", 0x0000, 0x0104, CRC(ee748e8f) SHA1(6ffe8b11f076305e82f64e0a12b76ffe725ce345) ) ROM_LOAD( "pal16l8b.13g", 0x0200, 0x0104, CRC(6da13bda) SHA1(d7bade089d87015e1e95fbf3f292db4688ee4624) ) ROM_LOAD( "pal16l8b.13h", 0x0400, 0x0104, CRC(62a9e098) SHA1(7b7c371c040d250d41fde021d191d62ce95bfc20) ) ROM_LOAD( "pal16l8b.14g", 0x0600, 0x0104, CRC(036768aa) SHA1(96185989031e0a9b38ff29bf4cf6162482d33964) ) ROM_LOAD( "pal16l8b.14h", 0x0800, 0x0104, CRC(bf421fce) SHA1(e8b0895b1fe99a3d5b3dcca004a7bfd1a09766b2) ) ROM_END ROM_START( vaportra3 ) // 74 bytes of 68k code have been changed compared to vaportra set ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */ ROM_LOAD16_BYTE( "fl02-3.bin", 0x00000, 0x20000, CRC(6c59be54) SHA1(ce60be53fb2cc3a26a28e8632c8638771d3db3c9) ) // == fl_02-1.bin (99.973297%) ROM_LOAD16_BYTE( "fl00-3.bin", 0x00001, 0x20000, CRC(69f8bef4) SHA1(7249d097c33adac9b42dd98d1328ad1c496ff927) ) // == fl_00-1.bin (99.970245%) ROM_LOAD16_BYTE( "fl_03.bin", 0x40000, 0x20000, CRC(80bd2844) SHA1(3fcaa409c7134388fa9458df8e8aaecc93f085e6) ) ROM_LOAD16_BYTE( "fl_01.bin", 0x40001, 0x20000, CRC(9474b085) SHA1(5510309ddab5fbf1dbb0a7b1e424a5dff5ec263d) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound CPU */ ROM_LOAD( "fj04", 0x00000, 0x10000, CRC(e9aedf9b) SHA1(f7bcf8f666015140aaad8ee5cf619636934b7066) ) ROM_REGION( 0x080000, "gfx1", 0 ) // original DE board with mask rom split into 4 roms ROM_LOAD16_BYTE( "fl23", 0x00000, 0x20000, CRC(6089f9e7) SHA1(a036068398a8e72c8fcf29fadaaad5a8930c2bfe) ) ROM_LOAD16_BYTE( "fl25", 0x00001, 0x20000, CRC(3989290a) SHA1(7d2d8a334d4c206298d806eac4f2cd46e7d4f918) ) ROM_LOAD16_BYTE( "fl24", 0x40000, 0x20000, CRC(41551bfa) SHA1(bc636fec6d610f651101656d6e9ad06656ce516a) ) ROM_LOAD16_BYTE( "fl26", 0x40001, 0x20000, CRC(dc67fa5c) SHA1(459a1ee059d6bb2fb2c6744fffeb25b915b29e67) ) ROM_REGION( 0x100000, "gfx2", 0 ) ROM_LOAD( "vtmaa02.bin", 0x000000, 0x80000, CRC(091ff98e) SHA1(814dc08c055bad5368955a4b1fe6a706b58adc02) ) /* tiles 3 */ ROM_LOAD( "vtmaa01.bin", 0x080000, 0x80000, CRC(c217a31b) SHA1(e259d48190d6890781fb0338e17e14822876babb) ) /* tiles 2 */ ROM_REGION( 0x100000, "gfx3", 0 ) ROM_LOAD( "vtmaa03.bin", 0x000000, 0x80000, CRC(1a30bf81) SHA1(00e6c713e12133a99d64ca80638c9cbc8e26b2c8) ) /* sprites */ ROM_LOAD( "vtmaa04.bin", 0x080000, 0x80000, CRC(b713e9cc) SHA1(af33943d75d2ee3a7385f624537008dca9e1d5d8) ) ROM_REGION( 0x40000, "oki1", 0 ) /* ADPCM samples */ ROM_LOAD( "fj06", 0x00000, 0x20000, CRC(6e98a235) SHA1(374564b4e494d03cd1330c06e321b9452c22a075) ) ROM_REGION( 0x40000, "oki2", 0 ) /* ADPCM samples */ ROM_LOAD( "fj05", 0x00000, 0x20000, CRC(39cda2b5) SHA1(f5c5a305025d451ab48f84cd63e36a3bbdefda96) ) ROM_REGION( 0x200, "proms", 0 ) ROM_LOAD( "fj-27.bin", 0x00000, 0x00200, CRC(65045742) SHA1(5dfb6c85a70b208cd16d3bf8ec1897e77f4a9b7d) ) ROM_REGION( 0x0a00, "plds", 0 ) ROM_LOAD( "pal16l8a.6l", 0x0000, 0x0104, CRC(ee748e8f) SHA1(6ffe8b11f076305e82f64e0a12b76ffe725ce345) ) ROM_LOAD( "pal16l8b.13g", 0x0200, 0x0104, CRC(6da13bda) SHA1(d7bade089d87015e1e95fbf3f292db4688ee4624) ) ROM_LOAD( "pal16l8b.13h", 0x0400, 0x0104, CRC(62a9e098) SHA1(7b7c371c040d250d41fde021d191d62ce95bfc20) ) ROM_LOAD( "pal16l8b.14g", 0x0600, 0x0104, CRC(036768aa) SHA1(96185989031e0a9b38ff29bf4cf6162482d33964) ) ROM_LOAD( "pal16l8b.14h", 0x0800, 0x0104, CRC(bf421fce) SHA1(e8b0895b1fe99a3d5b3dcca004a7bfd1a09766b2) ) ROM_END ROM_START( vaportrau ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */ ROM_LOAD16_BYTE( "fj02", 0x00000, 0x20000, CRC(a2affb73) SHA1(0d49397cc9891047a0b92e92e2e3d0e7fcaf8db9) ) ROM_LOAD16_BYTE( "fj00", 0x00001, 0x20000, CRC(ef05e07b) SHA1(0e505709fa251e6b30f019c0c28ee9ba2b29a50a) ) ROM_LOAD16_BYTE( "fj03", 0x40000, 0x20000, CRC(44893379) SHA1(da1340bc1821a552c317cb9a7c1ba69eb080b055) ) ROM_LOAD16_BYTE( "fj01", 0x40001, 0x20000, CRC(97fbc107) SHA1(b2899eb4347c0471397b83051e46c94dff3526f5) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound CPU */ ROM_LOAD( "fj04", 0x00000, 0x10000, CRC(e9aedf9b) SHA1(f7bcf8f666015140aaad8ee5cf619636934b7066) ) ROM_REGION( 0x080000, "gfx1", 0 ) ROM_LOAD( "vtmaa00.bin", 0x000000, 0x80000, CRC(0330e13b) SHA1(dce70667ea738295332556752d1305c5e941b383) ) /* chars & tiles */ ROM_REGION( 0x100000, "gfx2", 0 ) ROM_LOAD( "vtmaa02.bin", 0x000000, 0x80000, CRC(091ff98e) SHA1(814dc08c055bad5368955a4b1fe6a706b58adc02) ) /* tiles 3 */ ROM_LOAD( "vtmaa01.bin", 0x080000, 0x80000, CRC(c217a31b) SHA1(e259d48190d6890781fb0338e17e14822876babb) ) /* tiles 2 */ ROM_REGION( 0x100000, "gfx3", 0 ) ROM_LOAD( "vtmaa03.bin", 0x000000, 0x80000, CRC(1a30bf81) SHA1(00e6c713e12133a99d64ca80638c9cbc8e26b2c8) ) /* sprites */ ROM_LOAD( "vtmaa04.bin", 0x080000, 0x80000, CRC(b713e9cc) SHA1(af33943d75d2ee3a7385f624537008dca9e1d5d8) ) ROM_REGION( 0x40000, "oki1", 0 ) /* ADPCM samples */ ROM_LOAD( "fj06", 0x00000, 0x20000, CRC(6e98a235) SHA1(374564b4e494d03cd1330c06e321b9452c22a075) ) ROM_REGION( 0x40000, "oki2", 0 ) /* ADPCM samples */ ROM_LOAD( "fj05", 0x00000, 0x20000, CRC(39cda2b5) SHA1(f5c5a305025d451ab48f84cd63e36a3bbdefda96) ) ROM_REGION( 0x200, "proms", 0 ) ROM_LOAD( "fj-27.bin", 0x00000, 0x00200, CRC(65045742) SHA1(5dfb6c85a70b208cd16d3bf8ec1897e77f4a9b7d) ) ROM_REGION( 0x0a00, "plds", 0 ) ROM_LOAD( "pal16l8a.6l", 0x0000, 0x0104, CRC(ee748e8f) SHA1(6ffe8b11f076305e82f64e0a12b76ffe725ce345) ) ROM_LOAD( "pal16l8b.13g", 0x0200, 0x0104, CRC(6da13bda) SHA1(d7bade089d87015e1e95fbf3f292db4688ee4624) ) ROM_LOAD( "pal16l8b.13h", 0x0400, 0x0104, CRC(62a9e098) SHA1(7b7c371c040d250d41fde021d191d62ce95bfc20) ) ROM_LOAD( "pal16l8b.14g", 0x0600, 0x0104, CRC(036768aa) SHA1(96185989031e0a9b38ff29bf4cf6162482d33964) ) ROM_LOAD( "pal16l8b.14h", 0x0800, 0x0104, CRC(bf421fce) SHA1(e8b0895b1fe99a3d5b3dcca004a7bfd1a09766b2) ) ROM_END ROM_START( kuhga ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */ ROM_LOAD16_BYTE( "fp02-3.bin", 0x00000, 0x20000, CRC(d0705ef4) SHA1(781efbf36d9dda543895e0a59cd4d72667439a93) ) ROM_LOAD16_BYTE( "fp00-3.bin", 0x00001, 0x20000, CRC(1da92e48) SHA1(6507bd9bbc31ee03e38b82cc135aebf090902761) ) ROM_LOAD16_BYTE( "fp03.bin", 0x40000, 0x20000, CRC(ea0da0f1) SHA1(ca40e694cb0aa0c13672c14fd4a389bc6d26cbc6) ) ROM_LOAD16_BYTE( "fp01.bin", 0x40001, 0x20000, CRC(e3ecbe86) SHA1(382e959111ec37ad94da8fd6dcefe2d2aab346b6) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound CPU */ ROM_LOAD( "fj04", 0x00000, 0x10000, CRC(e9aedf9b) SHA1(f7bcf8f666015140aaad8ee5cf619636934b7066) ) ROM_REGION( 0x080000, "gfx1", 0 ) ROM_LOAD( "vtmaa00.bin", 0x000000, 0x80000, CRC(0330e13b) SHA1(dce70667ea738295332556752d1305c5e941b383) ) /* chars & tiles */ ROM_REGION( 0x100000, "gfx2", 0 ) ROM_LOAD( "vtmaa02.bin", 0x000000, 0x80000, CRC(091ff98e) SHA1(814dc08c055bad5368955a4b1fe6a706b58adc02) ) /* tiles 3 */ ROM_LOAD( "vtmaa01.bin", 0x080000, 0x80000, CRC(c217a31b) SHA1(e259d48190d6890781fb0338e17e14822876babb) ) /* tiles 2 */ ROM_REGION( 0x100000, "gfx3", 0 ) ROM_LOAD( "vtmaa03.bin", 0x000000, 0x80000, CRC(1a30bf81) SHA1(00e6c713e12133a99d64ca80638c9cbc8e26b2c8) ) /* sprites */ ROM_LOAD( "vtmaa04.bin", 0x080000, 0x80000, CRC(b713e9cc) SHA1(af33943d75d2ee3a7385f624537008dca9e1d5d8) ) ROM_REGION( 0x40000, "oki1", 0 ) /* ADPCM samples */ ROM_LOAD( "fj06", 0x00000, 0x20000, CRC(6e98a235) SHA1(374564b4e494d03cd1330c06e321b9452c22a075) ) ROM_REGION( 0x40000, "oki2", 0 ) /* ADPCM samples */ ROM_LOAD( "fj05", 0x00000, 0x20000, CRC(39cda2b5) SHA1(f5c5a305025d451ab48f84cd63e36a3bbdefda96) ) ROM_REGION( 0x200, "proms", 0 ) ROM_LOAD( "fj-27.bin", 0x00000, 0x00200, CRC(65045742) SHA1(5dfb6c85a70b208cd16d3bf8ec1897e77f4a9b7d) ) ROM_END /* Pals ---- Fuse Plot - 1 ? PAL16L8/A/A-2/A-4 * DD PAL16L8/A/A-2/A-4* QP20* QF2048* G0* F0* L0 11111111111111111111111111111111* L32 10111011101110111111111111111111* L64 00000000000000000000000000000000* L96 00000000000000000000000000000000* L128 00000000000000000000000000000000* L160 00000000000000000000000000000000* L192 00000000000000000000000000000000* L224 00000000000000000000000000000000* L256 11111111111111111111111111111111* L288 10101011101101111111111111111111* L320 00000000000000000000000000000000* L352 00000000000000000000000000000000* L384 00000000000000000000000000000000* L416 00000000000000000000000000000000* L448 00000000000000000000000000000000* L480 00000000000000000000000000000000* L512 11111111111111111111111111111111* L544 10011011101101111111111111111111* L576 00000000000000000000000000000000* L608 00000000000000000000000000000000* L640 00000000000000000000000000000000* L672 00000000000000000000000000000000* L704 00000000000000000000000000000000* L736 00000000000000000000000000000000* L768 11111111111111111111111111111111* L800 01011011101101111111111111111111* L832 00000000000000000000000000000000* L864 00000000000000000000000000000000* L896 00000000000000000000000000000000* L928 00000000000000000000000000000000* L960 00000000000000000000000000000000* L992 00000000000000000000000000000000* L1024 11111111111111111111111111111111* L1056 01101011101101111111111111111111* L1088 00000000000000000000000000000000* L1120 00000000000000000000000000000000* L1152 00000000000000000000000000000000* L1184 00000000000000000000000000000000* L1216 00000000000000000000000000000000* L1248 00000000000000000000000000000000* L1280 11111111111111111111111111111111* L1312 10100111101101111111111111111111* L1344 00000000000000000000000000000000* L1376 00000000000000000000000000000000* L1408 00000000000000000000000000000000* L1440 00000000000000000000000000000000* L1472 00000000000000000000000000000000* L1504 00000000000000000000000000000000* L1536 11111111111111111111111111111111* L1568 11111111111111111011111110111111* L1600 00000000000000000000000000000000* L1632 00000000000000000000000000000000* L1664 00000000000000000000000000000000* L1696 00000000000000000000000000000000* L1728 00000000000000000000000000000000* L1760 00000000000000000000000000000000* L1792 11111111111111111111111111111111* L1824 11111111111111111111101110111111* L1856 00000000000000000000000000000000* L1888 00000000000000000000000000000000* L1920 00000000000000000000000000000000* L1952 00000000000000000000000000000000* L1984 00000000000000000000000000000000* L2016 00000000000000000000000000000000* C3E44* ? Fuse Plot - TD0 ? PAL16L8B/D/H-15 * DD PAL16L8B/D/H-15* QP20* QF2048* G0* F0* L0 11111111111111111111111111111111* L32 10101111111111111111111111111111* L64 00000000000000000000000000000000* L96 00000000000000000000000000000000* L128 00000000000000000000000000000000* L160 00000000000000000000000000000000* L192 00000000000000000000000000000000* L224 00000000000000000000000000000000* L256 11111111111111111111111111111111* L288 11111111111110111111111111111111* L320 11111111111111111011111111111111* L352 11111111111111111111101111111111* L384 00000000000000000000000000000000* L416 00000000000000000000000000000000* L448 00000000000000000000000000000000* L480 00000000000000000000000000000000* L512 11111111111111111111111111111111* L544 11111111111111111111011111101111* L576 00000000000000000000000000000000* L608 00000000000000000000000000000000* L640 00000000000000000000000000000000* L672 00000000000000000000000000000000* L704 00000000000000000000000000000000* L736 00000000000000000000000000000000* L768 11111111111111111111111111111111* L800 11111111111111111111101111101111* L832 00000000000000000000000000000000* L864 00000000000000000000000000000000* L896 00000000000000000000000000000000* L928 00000000000000000000000000000000* L960 00000000000000000000000000000000* L992 00000000000000000000000000000000* L1024 11111111111111111111111111111111* L1056 10011111101111111111111111111111* L1088 00000000000000000000000000000000* L1120 00000000000000000000000000000000* L1152 00000000000000000000000000000000* L1184 00000000000000000000000000000000* L1216 00000000000000000000000000000000* L1248 00000000000000000000000000000000* L1280 11111111111111111111111111111111* L1312 01011111101111111111111111111111* L1344 00000000000000000000000000000000* L1376 00000000000000000000000000000000* L1408 00000000000000000000000000000000* L1440 00000000000000000000000000000000* L1472 00000000000000000000000000000000* L1504 00000000000000000000000000000000* L1536 11111111111111111111111111111111* L1568 01101111101111111111111111111111* L1600 00000000000000000000000000000000* L1632 00000000000000000000000000000000* L1664 00000000000000000000000000000000* L1696 00000000000000000000000000000000* L1728 00000000000000000000000000000000* L1760 00000000000000000000000000000000* L1792 11111111111111111111111111111111* L1824 10100111111111111111111111111111* L1856 11111111111111111111111110111011* L1888 10011111101111111111111111111111* L1920 01011111101111111111111111111111* L1952 00000000000000000000000000000000* L1984 00000000000000000000000000000000* L2016 00000000000000000000000000000000* C52BB* ? Fuse Plot - TD1 ? PAL16L8B/D/H-15 * DD PAL16L8B/D/H-15* QP20* QF2048* G0* F0* L0 11111111111111111111111111111111* L32 10111011111111111111111111111111* L64 00000000000000000000000000000000* L96 00000000000000000000000000000000* L128 00000000000000000000000000000000* L160 00000000000000000000000000000000* L192 00000000000000000000000000000000* L224 00100000000000000000000000000000* L256 11111111111111111111111111111111* L288 11101111101110111111111111111111* L320 00000000000000000000000000000000* L352 00000000000000000000000000000000* L384 00000000000000000000000000000000* L416 00000000000000000000000000000000* L448 00000000000000000000000000000000* L480 00000000000000000000000000000000* L512 11111111111111111111111111111111* L544 11101111011110111111111111111111* L576 00000000000000000000000000000000* L608 00000000000000000000000000000000* L640 00000000000000000000000000000000* L672 00000000000000000000000000000000* L704 00000000000000000000000000000000* L736 00100000000000000000000000000000* L768 11111111111111111111111111111111* L800 10111111101110111111111111111111* L832 00000000000000000000000000000000* L864 00000000000000000000000000000000* L896 00000000000000000000000000000000* L928 00000000000000000000000000000000* L960 00000000000000000000000000000000* L992 00000000000000000000000000000000* L1024 11111111111111111111111111111111* L1056 10111111011110111111111111111111* L1088 00000000000000000000000000000000* L1120 00000000000000000000000000000000* L1152 00000000000000000000000000000000* L1184 00000000000000000000000000000000* L1216 00000000000000000000000000000000* L1248 00000000000000000000000000000000* L1280 11111111111111111111111111111111* L1312 11100111111111111111111111111111* L1344 00000000000000000000000000000000* L1376 00000000000000000000000000000000* L1408 00000000000000000000000000000000* L1440 00000000000000000000000000000000* L1472 00000000000000000000000000000000* L1504 00000000000000000000000000000000* L1536 11111111111111111111111111111111* L1568 10110111111111111111111111111111* L1600 00000000000000000000000000000000* L1632 00000000000000000000000000000000* L1664 00000000000000000000000000000000* L1696 00000000000000000000000000000000* L1728 00000000000000000000000000000000* L1760 00000000000000000000000000000000* L1792 11111111111111111111111111111111* L1824 11101011111111111111111111111111* L1856 00000000000000000000000000000000* L1888 00000000000000000000000000000000* L1920 00000000000000000000000000000000* L1952 00000000000000000000000000000000* L1984 00000000000000000000000000000000* L2016 00000000000000000000000000000000* C3EBA* ? Fuse Plot - TD2 ? PAL16L8B/D/H-15 * DD PAL16L8B/D/H-15* QP20* QF2048* G0* F0* L0 11111111111111111111111111111111* L32 11110111011110110111111111111111* L64 00000000000000000000000000000000* L96 00000000000000000000000000000000* L128 00000000000000000000000000000000* L160 00000000000000000000000000000000* L192 00000000000000000000000000000000* L224 00000000000000000000000000000000* L256 11111111111111111111111111111111* L288 11111011011110110111111111111111* L320 00000000000000000000000000000000* L352 00000000000000000000000000000000* L384 00000000000000000000000000000000* L416 00000000000000000000000000000000* L448 00000000000000000000000000000000* L480 00000000000000000000000000000000* L512 11111111111111111111111111111111* L544 11111011101110111011111111111111* L576 00000000000000000000000000000000* L608 00000000000000000000000000000000* L640 00000000000000000000000000000000* L672 00000000000000000000000000000000* L704 00000000000000000000000000000000* L736 00000000000000000000000000000000* L768 11111111111111111111111111111111* L800 11110111101110111011111111111111* L832 00000000000000000000000000000000* L864 00000000000000000000000000000000* L896 00000000000000000000000000000000* L928 00000000000000000000000000000000* L960 00000000000000000000000000000000* L992 00000000000000000000000000000000* L1024 11111111111111111111111111111111* L1056 11111011011110111011111111111111* L1088 00000000000000000000000000000000* L1120 00000000000000000000000000000000* L1152 00000000000000000000000000000000* L1184 00000000000000000000000000000000* L1216 00000000000000000000000000000000* L1248 00000000000000000000000000000000* L1280 11111111111111111111111111111111* L1312 11110111011110111011111111111111* L1344 00000000000000000000000000000000* L1376 00000000000000000000000000000000* L1408 00000000000000000000000000000000* L1440 00000000000000000000000000000000* L1472 00000000000000000000000000000000* L1504 00000000000000000000000000000000* L1536 11111011101101111011111111111111* L1568 11101111111111111111111111111111* L1600 00000000000000000000000000000000* L1632 00000000000000000000000000000000* L1664 00000000000000000000000000000000* L1696 00000000000000000000000000000000* L1728 00000000000000000000000000000000* L1760 00000000000000000000000000000000* L1792 11111011101101111011111111111111* L1824 10111111111111111111111111111111* L1856 00000000000000000000000000000000* L1888 00000000000000000000000000000000* L1920 00000000000000000000000000000000* L1952 00000000000000000000000000000000* L1984 00000000000000000000000000000000* L2016 00000000000000000000000000000000* C3DEC* ? Fuse Plot - TD3 ? PAL16L8B/D/H-15 * DD PAL16L8B/D/H-15* QP20* QF2048* G0* F0* L0 11111111111111111111111111111111* L32 11111010111111111111111111111111* L64 11111101111111111111111111111111* L96 00000000000000000000000000000000* L128 00000000000000000000000000000000* L160 00000000000000000000000000000000* L192 00000000000000000000000000000000* L224 00000000000000000000000000000000* L256 11111111111111111111111111111111* L288 11111011111111111111111111111111* L320 10111111111111111111111111111111* L352 00000000000000000000000000000000* L384 00000000000000000000000000000000* L416 00000000000000000000000000000000* L448 00000000000000000000000000000000* L480 00000000000000000000000000000000* L512 11111111111111111111111111111111* L544 11111110111111111111111110111111* L576 00000000000000000000000000000000* L608 00000000000000000000000000000000* L640 00000000000000000000000000000000* L672 00000000000000000000000000000000* L704 00000000000000000000000000000000* L736 00000000000000000000000000000000* L768 11111111111111111111111111111111* L800 11111110111111111111101111111111* L832 00000000000000000000000000000000* L864 00000000000000000000000000000000* L896 00000000000000000000000000000000* L928 00000000000000000000000000000000* L960 00000000000000000000000000000000* L992 00000000000000000000000000000000* L1024 11111111111111111111111111111111* L1056 11111011111111111011111111111111* L1088 00000000000000000000000000000000* L1120 00000000000000000000000000000000* L1152 00000000000000000000000000000000* L1184 00000000000000000000000000000000* L1216 00000000000000000000000000000000* L1248 00000000000000000000000000000000* L1280 11111111111111111111111111111111* L1312 10111111111111111011111111111111* L1344 00000000000000000000000000000000* L1376 00000000000000000000000000000000* L1408 00000000000000000000000000000000* L1440 00000000000000000000000000000000* L1472 00000000000000000000000000000000* L1504 00000000000000000000000000000000* L1536 11111111111111111111111111111111* L1568 10111111111110111111111111111111* L1600 00000000000000000000000000000000* L1632 00000000000000000000000000000000* L1664 00000000000000000000000000000000* L1696 00000000000000000000000000000000* L1728 00000000000000000000000000000000* L1760 00000000000000000000000000000000* L1792 00000000000000000000000000000000* L1824 00000000000000000000000000000000* L1856 00000000000000000000000000000000* L1888 00000000000000000000000000000000* L1920 00000000000000000000000000000000* L1952 00000000000000000000000000000000* L1984 00000000000000000000000000000000* L2016 00000000000000000000000000000000* C3D54* ? */ /******************************************************************************/ void vaportra_state::init_vaportra() { uint8_t *RAM = memregion("maincpu")->base(); for (int i = 0x00000; i < 0x80000; i++) RAM[i] = bitswap<8>(RAM[i],0,6,5,4,3,2,1,7); } /******************************************************************************/ GAME( 1989, vaportra, 0, vaportra, vaportra, vaportra_state, init_vaportra, ROT270, "Data East Corporation", "Vapor Trail - Hyper Offence Formation (World revision 1)", MACHINE_SUPPORTS_SAVE ) GAME( 1989, vaportra3, vaportra, vaportra, vaportra, vaportra_state, init_vaportra, ROT270, "Data East Corporation", "Vapor Trail - Hyper Offence Formation (World revision 3?)", MACHINE_SUPPORTS_SAVE ) GAME( 1989, vaportrau, vaportra, vaportra, vaportra, vaportra_state, init_vaportra, ROT270, "Data East USA", "Vapor Trail - Hyper Offence Formation (US)", MACHINE_SUPPORTS_SAVE ) GAME( 1989, kuhga, vaportra, vaportra, vaportra, vaportra_state, init_vaportra, ROT270, "Data East Corporation", "Kuhga - Operation Code 'Vapor Trail' (Japan revision 3)", MACHINE_SUPPORTS_SAVE )