fix a Genesis VDP status bit which was breaking Mega Play 68k->Z80 comms (#7390)

* 315_5313.cpp: only set interlace frame status bit when interlace is enabled

* megaplay.cpp: promote to working
This commit is contained in:
Devin Acker 2020-10-24 18:54:59 -04:00 committed by GitHub
parent 62dbdf7b38
commit 90f1b52d75
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 22 deletions

View File

@ -1078,13 +1078,15 @@ u16 sega315_5313_device::ctrl_port_r()
/* Megalo Mania also fussy - cares about pending flag*/
const int sprite_overflow = 0;
const int odd_frame = m_imode_odd_frame^1;
int odd_frame = 0;
int hblank_flag = 0;
const int dma_active = 0;
int vblank = m_vblank_flag;
const int fifo_empty = 1;
const int fifo_full = 0;
if (m_imode & 1) odd_frame = m_imode_odd_frame ^ 1;
const u16 hpos = get_hposition();
if (hpos > 400) hblank_flag = 1;

View File

@ -3,14 +3,6 @@
/*
Driver is marked as NOT WORKING because interaction between BIOS and 68k side is
not fully understood. The BIOS often doesn't register that a game has been started
and leaves the 'PRESS P1 OR P2 START' message onscreen during gameplay as a result.
If this happens, the games usually then crash when you run out of lives as they end
up in an unknown state.
About MegaPlay:
Megaplay games are specially designed Genesis games, produced for arcade use.
@ -1014,18 +1006,18 @@ didn't have original Sega part numbers it's probably a converted TWC cart
** Probably reused cart case
*/
/* -- */ GAME( 1993, megaplay, 0, megaplay, megaplay, mplay_state, init_megaplay, ROT0, "Sega", "Mega Play BIOS", MACHINE_IS_BIOS_ROOT | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
/* 01 */ GAME( 1993, mp_sonic, megaplay, megaplay, mp_sonic, mplay_state, init_megaplay, ROT0, "Sega", "Sonic The Hedgehog (Mega Play)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
/* 02 */ GAME( 1993, mp_gaxe2, megaplay, megaplay, mp_gaxe2, mplay_state, init_megaplay, ROT0, "Sega", "Golden Axe II (Mega Play) (Rev B)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
/* 02 */ GAME( 1993, mp_gaxe2a,mp_gaxe2, megaplay, mp_gaxe2, mplay_state, init_megaplay, ROT0, "Sega", "Golden Axe II (Mega Play)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
/* 03 */ GAME( 1993, mp_gslam, megaplay, megaplay, mp_gslam, mplay_state, init_megaplay, ROT0, "Sega", "Grand Slam (Mega Play)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
/* 04 */ GAME( 1993, mp_twcup, megaplay, megaplay, mp_twc, mplay_state, init_megaplay, ROT0, "Sega", "Tecmo World Cup (Mega Play)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
/* 05 */ GAME( 1993, mp_sor2, megaplay, megaplay, mp_sor2, mplay_state, init_megaplay, ROT0, "Sega", "Streets of Rage II (Mega Play)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
/* 06 */ GAME( 1993, mp_bio, megaplay, megaplay, mp_bio, mplay_state, init_megaplay, ROT0, "Sega", "Bio-hazard Battle (Mega Play)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
/* 07 */ GAME( 1993, mp_soni2, megaplay, megaplay, mp_soni2, mplay_state, init_megaplay, ROT0, "Sega", "Sonic The Hedgehog 2 (Mega Play)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
/* -- */ GAME( 1993, megaplay, 0, megaplay, megaplay, mplay_state, init_megaplay, ROT0, "Sega", "Mega Play BIOS", MACHINE_IS_BIOS_ROOT | MACHINE_IMPERFECT_GRAPHICS )
/* 01 */ GAME( 1993, mp_sonic, megaplay, megaplay, mp_sonic, mplay_state, init_megaplay, ROT0, "Sega", "Sonic The Hedgehog (Mega Play)", MACHINE_IMPERFECT_GRAPHICS )
/* 02 */ GAME( 1993, mp_gaxe2, megaplay, megaplay, mp_gaxe2, mplay_state, init_megaplay, ROT0, "Sega", "Golden Axe II (Mega Play) (Rev B)", MACHINE_IMPERFECT_GRAPHICS )
/* 02 */ GAME( 1993, mp_gaxe2a,mp_gaxe2, megaplay, mp_gaxe2, mplay_state, init_megaplay, ROT0, "Sega", "Golden Axe II (Mega Play)", MACHINE_IMPERFECT_GRAPHICS )
/* 03 */ GAME( 1993, mp_gslam, megaplay, megaplay, mp_gslam, mplay_state, init_megaplay, ROT0, "Sega", "Grand Slam (Mega Play)", MACHINE_IMPERFECT_GRAPHICS )
/* 04 */ GAME( 1993, mp_twcup, megaplay, megaplay, mp_twc, mplay_state, init_megaplay, ROT0, "Sega", "Tecmo World Cup (Mega Play)", MACHINE_IMPERFECT_GRAPHICS )
/* 05 */ GAME( 1993, mp_sor2, megaplay, megaplay, mp_sor2, mplay_state, init_megaplay, ROT0, "Sega", "Streets of Rage II (Mega Play)", MACHINE_IMPERFECT_GRAPHICS )
/* 06 */ GAME( 1993, mp_bio, megaplay, megaplay, mp_bio, mplay_state, init_megaplay, ROT0, "Sega", "Bio-hazard Battle (Mega Play)", MACHINE_IMPERFECT_GRAPHICS )
/* 07 */ GAME( 1993, mp_soni2, megaplay, megaplay, mp_soni2, mplay_state, init_megaplay, ROT0, "Sega", "Sonic The Hedgehog 2 (Mega Play)", MACHINE_IMPERFECT_GRAPHICS )
/* 08 - Columns 3? see below */
/* 09 */ GAME( 1993, mp_shnb3, megaplay, megaplay, mp_shnb3, mplay_state, init_megaplay, ROT0, "Sega", "Shinobi III (Mega Play)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
/* 10 */ GAME( 1993, mp_gunhe, megaplay, megaplay, mp_gunhe, mplay_state, init_megaplay, ROT0, "Sega", "Gunstar Heroes (Mega Play)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
/* 11 */ GAME( 1993, mp_mazin, megaplay, megaplay, mp_mazin, mplay_state, init_megaplay, ROT0, "Sega", "Mazin Wars / Mazin Saga (Mega Play)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
/* 09 */ GAME( 1993, mp_shnb3, megaplay, megaplay, mp_shnb3, mplay_state, init_megaplay, ROT0, "Sega", "Shinobi III (Mega Play)", MACHINE_IMPERFECT_GRAPHICS )
/* 10 */ GAME( 1993, mp_gunhe, megaplay, megaplay, mp_gunhe, mplay_state, init_megaplay, ROT0, "Sega", "Gunstar Heroes (Mega Play)", MACHINE_IMPERFECT_GRAPHICS )
/* 11 */ GAME( 1993, mp_mazin, megaplay, megaplay, mp_mazin, mplay_state, init_megaplay, ROT0, "Sega", "Mazin Wars / Mazin Saga (Mega Play)", MACHINE_IMPERFECT_GRAPHICS )
/* ?? */ GAME( 1993, mp_col3, megaplay, megaplay, mp_col3, mplay_state, init_megaplay, ROT0, "Sega", "Columns III (Mega Play)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
/* ?? */ GAME( 1993, mp_col3, megaplay, megaplay, mp_col3, mplay_state, init_megaplay, ROT0, "Sega", "Columns III (Mega Play)", MACHINE_IMPERFECT_GRAPHICS )