summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2025-01-02 00:27:26 +0100
committer hap <happppp@users.noreply.github.com>2025-01-02 00:27:26 +0100
commitab34107f9f6487444682837e106edaed0c35c491 (patch)
tree278f709d9fde1f209f8fae366b5dda2b9e8c2731
parent5452941b100fd0c25906a787afc2e2c9233734b5 (diff)
scyclone: remove flipscreen support in favor of working upright 2-player mode
-rw-r--r--src/mame/taito/scyclone.cpp22
1 files changed, 13 insertions, 9 deletions
diff --git a/src/mame/taito/scyclone.cpp b/src/mame/taito/scyclone.cpp
index 3c04f6e60e6..77b00b8e303 100644
--- a/src/mame/taito/scyclone.cpp
+++ b/src/mame/taito/scyclone.cpp
@@ -27,10 +27,11 @@
Notes:
(to check on hardware)
- the stars scroll backwards when in cocktail mode, the direction changes when the screen
+ The stars scroll backwards when in cocktail mode, the direction changes when the screen
is flipped but is still reversed compared to upright. We would have no way of knowing
- if we're in cocktail mode without checking the dipswitch, so I think this is a game bug
- furthermore the game seems to set what I believe to be the 'flipscreen' bit for player 2
+ if we're in cocktail mode without checking the dipswitch, so I think this is a game bug.
+
+ Furthermore, the game seems to set what I believe to be the 'flipscreen' bit for player 2
even when in 'upright' mode, so it's possible this romset was only really made for a
cocktail table?
*/
@@ -245,7 +246,7 @@ uint32_t scyclone_state::draw_starfield(screen_device &screen, bitmap_rgb32 &bit
bool noclipped = false;
- if (m_vidctrl & 0x08)
+ if (flip_screen())
{
dx = 255 - dx;
dy = 255 - 32 - dy;
@@ -277,7 +278,7 @@ uint32_t scyclone_state::draw_bitmap_and_sprite(screen_device &screen, bitmap_rg
int realx = 0;
int realy = 0;
- if (m_vidctrl & 0x08)
+ if (flip_screen())
{
realx = 255 - ((x*8) + i);
realy = 255 - 32 - y;
@@ -384,12 +385,15 @@ void scyclone_state::vram_w(offs_t offset, uint8_t data)
void scyclone_state::vidctrl_w(uint8_t data)
{
// ---- facu
- // f = flipscreen (always set during player 2 turn, even in upright mode?!)
+ // f = flipscreen? (always set during player 2 turn, even in upright mode?!)
// a = alternates during attract mode, enabled during gameplay
// u = unknown but used (set to 1 during gameplay)
// c = coinlock
m_vidctrl = data;
+ // breaks upright mode, so it's commented out
+ //flip_screen_set(BIT(data, 3));
+
if (data & 0xf0)
{
logerror("vidctrl_w %02x\n", data);
@@ -599,12 +603,12 @@ static INPUT_PORTS_START( scyclone )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL PORT_CONDITION("DSW0", 0x04, EQUALS, 0x00)
PORT_START("DSW0")
- PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) ) PORT_DIPLOCATION("DSW0:1,2")
+ PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) ) PORT_DIPLOCATION("DSW0:1,2")
PORT_DIPSETTING( 0x00, "2" )
PORT_DIPSETTING( 0x01, "3" )
PORT_DIPSETTING( 0x02, "4" )
PORT_DIPSETTING( 0x03, "5" )
- PORT_DIPNAME( 0x04, 0x04, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("DSW0:3")
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("DSW0:3")
PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
PORT_DIPSETTING( 0x04, DEF_STR( Upright ) )
PORT_DIPNAME( 0x08, 0x00, "Disable Collision (Buggy!)" ) PORT_DIPLOCATION("DSW0:4") // this causes the game to malfunction, likely leftover debug feature
@@ -751,4 +755,4 @@ ROM_END
} // anonymous namespace
-GAME( 1980, scyclone, 0, scyclone, scyclone, scyclone_state, empty_init, ROT270, "Taito Corporation", "Space Cyclone", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1980, scyclone, 0, scyclone, scyclone, scyclone_state, empty_init, ROT270, "Taito Corporation", "Space Cyclone", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )