summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2024-11-21 12:20:30 +0100
committer hap <happppp@users.noreply.github.com>2024-11-21 12:20:44 +0100
commitcdc5b7fc98b59317ffcba53fd85a0155ed320729 (patch)
treed8ecd6a414b1ca8ace67efee1b5c6e7186281493 /src
parent959ed9664e779f2c810b58c3ff67f06e4b8015de (diff)
mustache: refresh flipscreen like travrusa/dogfgt, small cleanups
Diffstat (limited to 'src')
-rw-r--r--src/mame/irem/travrusa.cpp1
-rw-r--r--src/mame/seibu/mustache.cpp142
-rw-r--r--src/mame/technos/dogfgt.cpp7
3 files changed, 77 insertions, 73 deletions
diff --git a/src/mame/irem/travrusa.cpp b/src/mame/irem/travrusa.cpp
index cd21a38c476..9d2b72da894 100644
--- a/src/mame/irem/travrusa.cpp
+++ b/src/mame/irem/travrusa.cpp
@@ -87,6 +87,7 @@ public:
void init_motorace();
void init_shtridrb();
+ // refresh flipscreen when the dipswitch is changed
DECLARE_INPUT_CHANGED_MEMBER(flipscreen_switch) { flipscreen_w(m_flipscreen); }
protected:
diff --git a/src/mame/seibu/mustache.cpp b/src/mame/seibu/mustache.cpp
index a876d2c84df..0309dba5230 100644
--- a/src/mame/seibu/mustache.cpp
+++ b/src/mame/seibu/mustache.cpp
@@ -3,37 +3,41 @@
/***************************************************************************
- Mustache Boy
- (c)1987 March Electronics
+Mustache Boy
+(c)1987 Seibu Kaihatsu
- (there are also Seibu and Taito logos/copyrights in the ROMs)
+driver by Tomasz Slanina
- driver by Tomasz Slanina
+Region byte is at maincpu $A000:
+- 0 = Seibu
+- 1 = Taito
+- 2 = March
+(The Italy IG S.p.A. version is region 3)
- The hardware is similar to Knuckle Joe.
+The hardware is similar to Knuckle Joe.
Oscillators:
-. OSC1 - 14.318180 Mhz
-. OSC2 - 18.432000 Mhz
-. OSC3 - 12.000000 Mhz
+- OSC1 - 14.318180 Mhz
+- OSC2 - 18.432000 Mhz
+- OSC3 - 12.000000 Mhz
Measured freq:
Z80:
-. Pin 6 - 6001135.77 Hz OSC3/2
-. Pin 16 - 56.747 Hz 56 Hz
+- Pin 6 - 6001135.77 Hz OSC3/2
+- Pin 16 - 56.747 Hz
T5182:
-. Pin 18 - 3577599.xx Hz OSC1/4
+- Pin 18 - 3577599.xx Hz OSC1/4
YM2151:
-. Pin 24 - 3577600.55 OSC1/4
+- Pin 24 - 3577600.55 OSC1/4
***************************************************************************/
#include "emu.h"
-#include "seibusound.h" // for seibu_sound_decrypt on the MAIN cpu (not sound)
+#include "seibusound.h" // for seibu_sound_decrypt on the MAIN cpu (not sound)
#include "t5182.h"
#include "cpu/z80/z80.h"
@@ -57,13 +61,16 @@ public:
m_palette(*this, "palette"),
m_videoram(*this, "videoram"),
m_spriteram(*this, "spriteram"),
- m_dswb(*this, "DSWB")
+ m_dsw(*this, "DSW%u", 1)
{ }
void mustache(machine_config &config);
void init_mustache();
+ // refresh flipscreen when the dipswitch is changed
+ DECLARE_INPUT_CHANGED_MEMBER(flipscreen_switch) { video_control_w(m_videoctrl); }
+
protected:
virtual void video_start() override ATTR_COLD;
@@ -76,10 +83,10 @@ private:
required_shared_ptr<uint8_t> m_videoram;
required_shared_ptr<uint8_t> m_spriteram;
- required_ioport m_dswb;
+ required_ioport_array<2> m_dsw;
tilemap_t *m_bg_tilemap = nullptr;
- uint8_t m_control_byte = 0;
+ uint8_t m_videoctrl = 0;
void videoram_w(offs_t offset, uint8_t data);
void video_control_w(uint8_t data);
@@ -106,14 +113,13 @@ void mustache_state::video_control_w(uint8_t data)
/* It is assumed that screen flipping is controlled by both
hardware (via a DIP switch, labeled "Hard SW" on the
operator's sheet) and software, as in some Irem games */
- flip_screen_set((data & 0x01) ^ BIT(~m_dswb->read(), 7));
+ flip_screen_set((data & 0x01) ^ BIT(~m_dsw[1]->read(), 7));
// tile bank
- if ((m_control_byte ^ data) & 0x08)
- {
- m_control_byte = data;
+ if ((m_videoctrl ^ data) & 0x08)
machine().tilemap().mark_all_dirty();
- }
+
+ m_videoctrl = data;
}
void mustache_state::scroll_w(uint8_t data)
@@ -127,21 +133,18 @@ void mustache_state::scroll_w(uint8_t data)
TILE_GET_INFO_MEMBER(mustache_state::get_bg_tile_info)
{
int const attr = m_videoram[2 * tile_index + 1];
- int const code = m_videoram[2 * tile_index] + ((attr & 0x60) << 3) + ((m_control_byte & 0x08) << 7);
+ int const code = m_videoram[2 * tile_index] + ((attr & 0x60) << 3) + ((m_videoctrl & 0x08) << 7);
int const color = attr & 0x0f;
tileinfo.set(0, code, color, ((attr & 0x10) ? TILE_FLIPX : 0) | ((attr & 0x80) ? TILE_FLIPY : 0));
-
-
}
void mustache_state::video_start()
{
m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mustache_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS_FLIP_X, 8, 8, 64, 32);
-
m_bg_tilemap->set_scroll_rows(4);
- save_item(NAME(m_control_byte));
+ save_item(NAME(m_videoctrl));
}
void mustache_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
@@ -162,7 +165,7 @@ void mustache_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec
code += (attr & 0x0c) << 6;
- if ((m_control_byte & 0xa))
+ if ((m_videoctrl & 0xa))
clip.max_y = visarea.max_y;
else
if (flip_screen())
@@ -188,6 +191,7 @@ uint32_t mustache_state::screen_update(screen_device &screen, bitmap_ind16 &bitm
{
m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
draw_sprites(bitmap, cliprect);
+
return 0;
}
@@ -205,8 +209,8 @@ void mustache_state::memmap(address_map &map)
map(0xd800, 0xd800).portr("P1");
map(0xd801, 0xd801).portr("P2");
map(0xd802, 0xd802).portr("START");
- map(0xd803, 0xd803).portr("DSWA");
- map(0xd804, 0xd804).portr("DSWB");
+ map(0xd803, 0xd803).portr("DSW1");
+ map(0xd804, 0xd804).portr("DSW2");
map(0xd806, 0xd806).w(FUNC(mustache_state::scroll_w));
map(0xd807, 0xd807).w(FUNC(mustache_state::video_control_w));
map(0xe800, 0xefff).writeonly().share(m_spriteram);
@@ -243,16 +247,16 @@ static INPUT_PORTS_START( mustache )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 )
PORT_BIT( 0xf9, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("DSWA")
- PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW 2:1")
+ PORT_START("DSW1")
+ PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW 2:1")
PORT_DIPSETTING( 0x01, DEF_STR( Upright ) )
PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
- PORT_DIPNAME( 0x06, 0x04, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW 2:2,3")
+ PORT_DIPNAME( 0x06, 0x04, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW 2:2,3")
PORT_DIPSETTING( 0x06, DEF_STR( Easy ) )
PORT_DIPSETTING( 0x04, DEF_STR( Normal ) )
PORT_DIPSETTING( 0x02, DEF_STR( Hard ) )
PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x18, 0x18, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW 2:4,5")
+ PORT_DIPNAME( 0x18, 0x18, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW 2:4,5")
PORT_DIPSETTING( 0x10, "1" )
PORT_DIPSETTING( 0x18, "3" )
PORT_DIPSETTING( 0x08, "4" )
@@ -261,8 +265,8 @@ static INPUT_PORTS_START( mustache )
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_START("DSWB")
- PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW 1:1,2,3")
+ PORT_START("DSW2")
+ PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW 1:1,2,3")
PORT_DIPSETTING( 0x00, DEF_STR( 5C_1C ) )
PORT_DIPSETTING( 0x04, DEF_STR( 4C_1C ) )
PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) )
@@ -271,19 +275,18 @@ static INPUT_PORTS_START( mustache )
PORT_DIPSETTING( 0x03, DEF_STR( 1C_2C ) )
PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) )
PORT_DIPSETTING( 0x01, DEF_STR( 1C_5C ) )
- PORT_DIPNAME( 0x18, 0x18, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW 1:4,5")
+ PORT_DIPNAME( 0x18, 0x18, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW 1:4,5")
PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) )
PORT_DIPSETTING( 0x18, DEF_STR( 1C_1C ) )
PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) )
PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) )
- PORT_SERVICE( 0x20, IP_ACTIVE_LOW ) PORT_DIPLOCATION("SW 1:6")
- PORT_DIPNAME( 0x40, 0x40, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW 1:7")
+ PORT_SERVICE( 0x20, IP_ACTIVE_LOW ) PORT_DIPLOCATION("SW 1:6")
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW 1:7")
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW 1:8")
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW 1:8") PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(mustache_state::flipscreen_switch), 0)
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
INPUT_PORTS_END
@@ -293,8 +296,8 @@ static const gfx_layout charlayout =
RGN_FRAC(1,3),
3,
{ RGN_FRAC(0,3), RGN_FRAC(1,3),RGN_FRAC(2,3)},
- {STEP8(7,-1)},
- {STEP8(0,8)},
+ { STEP8(7,-1) },
+ { STEP8(0,8) },
8*8
};
static const gfx_layout spritelayout =
@@ -303,8 +306,8 @@ static const gfx_layout spritelayout =
RGN_FRAC(1,4),
4,
{ RGN_FRAC(1,4), RGN_FRAC(3,4),RGN_FRAC(0,4),RGN_FRAC(2,4)},
- {STEP16(15,-1)},
- {STEP16(0,16)},
+ { STEP16(15,-1) },
+ { STEP16(0,16) },
16*16
};
@@ -356,25 +359,25 @@ ROM_START( mustache )
ROM_LOAD( "mustache.h16", 0x8000, 0x4000, CRC(62552beb) SHA1(ee10991d7de0596608fa1db48805781cbfbbdb9f) )
ROM_REGION( 0x8000, "t5182:external", 0 ) // Toshiba T5182 external ROM
- ROM_LOAD( "mustache.e5", 0x0000, 0x8000, CRC(efbb1943) SHA1(3320e9eaeb776d09ed63f7dedc79e720674e6718) )
+ ROM_LOAD( "mustache.e5", 0x0000, 0x8000, CRC(efbb1943) SHA1(3320e9eaeb776d09ed63f7dedc79e720674e6718) )
ROM_REGION( 0x0c000, "tiles", 0 )
- ROM_LOAD( "mustache.a13", 0x0000, 0x4000, CRC(9baee4a7) SHA1(31bcec838789462e67e54ebe7256db9fc4e51b69) )
- ROM_LOAD( "mustache.a14", 0x4000, 0x4000, CRC(8155387d) SHA1(5f0a394c7671442519a831b0eeeaba4eecd5a406) )
- ROM_LOAD( "mustache.a16", 0x8000, 0x4000, CRC(4db4448d) SHA1(50a94fd65c263d95fd24b4009dbb87707929fdcb) )
+ ROM_LOAD( "mustache.a13", 0x0000, 0x4000, CRC(9baee4a7) SHA1(31bcec838789462e67e54ebe7256db9fc4e51b69) )
+ ROM_LOAD( "mustache.a14", 0x4000, 0x4000, CRC(8155387d) SHA1(5f0a394c7671442519a831b0eeeaba4eecd5a406) )
+ ROM_LOAD( "mustache.a16", 0x8000, 0x4000, CRC(4db4448d) SHA1(50a94fd65c263d95fd24b4009dbb87707929fdcb) )
ROM_REGION( 0x20000, "sprites", 0 )
- ROM_LOAD( "mustache.a4", 0x00000, 0x8000, CRC(d5c3bbbf) SHA1(914e3feea54246476701f492c31bd094ad9cea10) )
- ROM_LOAD( "mustache.a7", 0x08000, 0x8000, CRC(e2a6012d) SHA1(4e4cd1a186870c8a88924d5bff917c6889da953d) )
- ROM_LOAD( "mustache.a5", 0x10000, 0x8000, CRC(c975fb06) SHA1(4d166bd79e19c7cae422673de3e095ad8101e013) )
- ROM_LOAD( "mustache.a8", 0x18000, 0x8000, CRC(2e180ee4) SHA1(a5684a25c337aeb4effeda7982164d35bc190af9) )
+ ROM_LOAD( "mustache.a4", 0x00000, 0x8000, CRC(d5c3bbbf) SHA1(914e3feea54246476701f492c31bd094ad9cea10) )
+ ROM_LOAD( "mustache.a7", 0x08000, 0x8000, CRC(e2a6012d) SHA1(4e4cd1a186870c8a88924d5bff917c6889da953d) )
+ ROM_LOAD( "mustache.a5", 0x10000, 0x8000, CRC(c975fb06) SHA1(4d166bd79e19c7cae422673de3e095ad8101e013) )
+ ROM_LOAD( "mustache.a8", 0x18000, 0x8000, CRC(2e180ee4) SHA1(a5684a25c337aeb4effeda7982164d35bc190af9) )
ROM_REGION( 0x1300, "proms", 0 )
- ROM_LOAD( "mustache.c3",0x0000, 0x0100, CRC(68575300) SHA1(bc93a38df91ad8c2f335f9bccc98b52376f9b483) )
- ROM_LOAD( "mustache.c2",0x0100, 0x0100, CRC(eb008d62) SHA1(a370fbd1affaa489210ea36eb9e365263fb4e232) )
- ROM_LOAD( "mustache.c1",0x0200, 0x0100, CRC(65da3604) SHA1(e4874d4152a57944d4e47306250833ea5cd0d89b) )
+ ROM_LOAD( "mustache.c3", 0x0000, 0x0100, CRC(68575300) SHA1(bc93a38df91ad8c2f335f9bccc98b52376f9b483) )
+ ROM_LOAD( "mustache.c2", 0x0100, 0x0100, CRC(eb008d62) SHA1(a370fbd1affaa489210ea36eb9e365263fb4e232) )
+ ROM_LOAD( "mustache.c1", 0x0200, 0x0100, CRC(65da3604) SHA1(e4874d4152a57944d4e47306250833ea5cd0d89b) )
- ROM_LOAD( "mustache.b6",0x0300, 0x1000, CRC(5f83fa35) SHA1(cb13e63577762d818e5dcbb52b8a53f66e284e8f) ) // 63S281N near SEI0070BU
+ ROM_LOAD( "mustache.b6", 0x0300, 0x1000, CRC(5f83fa35) SHA1(cb13e63577762d818e5dcbb52b8a53f66e284e8f) ) // 63S281N near SEI0070BU
ROM_END
ROM_START( mustachei )
@@ -386,22 +389,22 @@ ROM_START( mustachei )
ROM_LOAD( "10.e5", 0x0000, 0x8000, CRC(efbb1943) SHA1(3320e9eaeb776d09ed63f7dedc79e720674e6718) )
ROM_REGION( 0x0c000, "tiles", 0 )
- ROM_LOAD( "5.a13", 0x0000, 0x4000, CRC(9baee4a7) SHA1(31bcec838789462e67e54ebe7256db9fc4e51b69) )
- ROM_LOAD( "4.a15", 0x4000, 0x4000, CRC(8155387d) SHA1(5f0a394c7671442519a831b0eeeaba4eecd5a406) )
- ROM_LOAD( "3.a16", 0x8000, 0x4000, CRC(4db4448d) SHA1(50a94fd65c263d95fd24b4009dbb87707929fdcb) )
+ ROM_LOAD( "5.a13", 0x0000, 0x4000, CRC(9baee4a7) SHA1(31bcec838789462e67e54ebe7256db9fc4e51b69) )
+ ROM_LOAD( "4.a15", 0x4000, 0x4000, CRC(8155387d) SHA1(5f0a394c7671442519a831b0eeeaba4eecd5a406) )
+ ROM_LOAD( "3.a16", 0x8000, 0x4000, CRC(4db4448d) SHA1(50a94fd65c263d95fd24b4009dbb87707929fdcb) )
ROM_REGION( 0x20000, "sprites", 0 )
- ROM_LOAD( "6.a4", 0x00000, 0x8000, CRC(4a95a89c) SHA1(b34ebbda9b0e591876988e42bd36fd505452f38c) )
- ROM_LOAD( "8.a7", 0x08000, 0x8000, CRC(3e6be0fb) SHA1(319ea59107e37953c31f59f5f635fc520682b09f) )
- ROM_LOAD( "7.a5", 0x10000, 0x8000, CRC(8ad38884) SHA1(e11f1e1db6d5d119afedbe6604d10a6fd6049f12) )
- ROM_LOAD( "9.a8", 0x18000, 0x8000, CRC(3568c158) SHA1(c3a2120086befe396a112bd62f032638011cb47a) )
+ ROM_LOAD( "6.a4", 0x00000, 0x8000, CRC(4a95a89c) SHA1(b34ebbda9b0e591876988e42bd36fd505452f38c) )
+ ROM_LOAD( "8.a7", 0x08000, 0x8000, CRC(3e6be0fb) SHA1(319ea59107e37953c31f59f5f635fc520682b09f) )
+ ROM_LOAD( "7.a5", 0x10000, 0x8000, CRC(8ad38884) SHA1(e11f1e1db6d5d119afedbe6604d10a6fd6049f12) )
+ ROM_LOAD( "9.a8", 0x18000, 0x8000, CRC(3568c158) SHA1(c3a2120086befe396a112bd62f032638011cb47a) )
ROM_REGION( 0x1300, "proms", 0 )
- ROM_LOAD( "d.c3",0x0000, 0x0100, CRC(68575300) SHA1(bc93a38df91ad8c2f335f9bccc98b52376f9b483) )
- ROM_LOAD( "c.c2",0x0100, 0x0100, CRC(eb008d62) SHA1(a370fbd1affaa489210ea36eb9e365263fb4e232) )
- ROM_LOAD( "b.c1",0x0200, 0x0100, CRC(65da3604) SHA1(e4874d4152a57944d4e47306250833ea5cd0d89b) )
+ ROM_LOAD( "d.c3", 0x0000, 0x0100, CRC(68575300) SHA1(bc93a38df91ad8c2f335f9bccc98b52376f9b483) )
+ ROM_LOAD( "c.c2", 0x0100, 0x0100, CRC(eb008d62) SHA1(a370fbd1affaa489210ea36eb9e365263fb4e232) )
+ ROM_LOAD( "b.c1", 0x0200, 0x0100, CRC(65da3604) SHA1(e4874d4152a57944d4e47306250833ea5cd0d89b) )
- ROM_LOAD( "a.b6",0x0300, 0x1000, CRC(5f83fa35) SHA1(cb13e63577762d818e5dcbb52b8a53f66e284e8f) ) // 63S281N near SEI0070BU
+ ROM_LOAD( "a.b6", 0x0300, 0x1000, CRC(5f83fa35) SHA1(cb13e63577762d818e5dcbb52b8a53f66e284e8f) ) // 63S281N near SEI0070BU
ROM_END
void mustache_state::init_mustache()
@@ -445,6 +448,5 @@ void mustache_state::init_mustache()
} // anonymous namespace
-
-GAME( 1987, mustache, 0, mustache, mustache, mustache_state, init_mustache, ROT90, "Seibu Kaihatsu (March license)", "Mustache Boy (Japan)", MACHINE_SUPPORTS_SAVE )
-GAME( 1987, mustachei, mustache, mustache, mustache, mustache_state, init_mustache, ROT90, "Seibu Kaihatsu (IG SPA license)", "Mustache Boy (Italy)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, mustache, 0, mustache, mustache, mustache_state, init_mustache, ROT90, "Seibu Kaihatsu (March license)", "Mustache Boy (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, mustachei, mustache, mustache, mustache, mustache_state, init_mustache, ROT90, "Seibu Kaihatsu (International Games license)", "Mustache Boy (Italy)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/technos/dogfgt.cpp b/src/mame/technos/dogfgt.cpp
index e06af688a63..0c2da4c0912 100644
--- a/src/mame/technos/dogfgt.cpp
+++ b/src/mame/technos/dogfgt.cpp
@@ -49,6 +49,7 @@ public:
void dogfgt(machine_config &config);
+ // refresh flipscreen when the dipswitch is changed
DECLARE_INPUT_CHANGED_MEMBER(flipscreen_switch) { control_w(m_control); }
protected:
@@ -686,6 +687,6 @@ ROM_END
***************************************************************************/
-GAME( 1984, dogfgt, 0, dogfgt, dogfgt, dogfgt_state, empty_init, ROT0, "Technos Japan", "Acrobatic Dog-Fight", MACHINE_SUPPORTS_SAVE )
-GAME( 1985, dogfgtu, dogfgt, dogfgt, dogfgt, dogfgt_state, empty_init, ROT0, "Technos Japan (Data East USA, Inc. license)", "Acrobatic Dog-Fight (USA)", MACHINE_SUPPORTS_SAVE )
-GAME( 1984, dogfgtj, dogfgt, dogfgt, dogfgt, dogfgt_state, empty_init, ROT0, "Technos Japan", "But-ten Ohara's Suit-Cha Luck-a Dog-Fight (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, dogfgt, 0, dogfgt, dogfgt, dogfgt_state, empty_init, ROT0, "Technos Japan", "Acrobatic Dog-Fight", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, dogfgtu, dogfgt, dogfgt, dogfgt, dogfgt_state, empty_init, ROT0, "Technos Japan (Data East USA license)", "Acrobatic Dog-Fight (USA)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, dogfgtj, dogfgt, dogfgt, dogfgt, dogfgt_state, empty_init, ROT0, "Technos Japan", "But-ten Ohara's Suit-Cha Luck-a Dog-Fight (Japan)", MACHINE_SUPPORTS_SAVE )