diff options
author | Angelo Salese <angelosa@users.noreply.github.com> | 2019-11-06 01:37:33 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-11-06 01:37:33 +0100 |
commit | a9222ff5d03e1db73c866aab659e77a22718e208 (patch) | |
tree | 5b7583121dab7476f7b49daa7fa26401c00f2813 | |
parent | b5cecab6642243586692a93f6192c6e9cb11a95d (diff) |
This should actually fail validation but oh well (nw)
-rw-r--r-- | src/mame/drivers/psikyo.cpp | 57 |
1 files changed, 35 insertions, 22 deletions
diff --git a/src/mame/drivers/psikyo.cpp b/src/mame/drivers/psikyo.cpp index 8b00d79f581..775c1789483 100644 --- a/src/mame/drivers/psikyo.cpp +++ b/src/mame/drivers/psikyo.cpp @@ -29,6 +29,15 @@ Tengai (J) 1996 SH404 SH404 has MCU, ymf278-b for sound To Do: +- All games uses PORT_VBLANK and legacy screen parameters (which is already + bad per-se), with also naive and unlikely measurements (i.e. exactly 59.30 + or 59.90 Hz). + The most blunt examples of something being wrong with timings are with + Gunbird and Tengai: they both have FOUR frames of input lag, the real thing + doesn't sport anything like that. + Given the above, all games are marked with MACHINE_IMPERFECT_TIMING until + somebody provides accurate H/Vsync signals for at least one game of this + driver. - Flip Screen support NOTE: Despite being mentioned in the manual Strikers 1945 doesn't seem to @@ -1033,8 +1042,9 @@ void psikyo_state::sngkace(machine_config &config) /* video hardware */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + // TODO: accurate measurements m_screen->set_refresh_hz(59.3); - m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ // we're using PORT_VBLANK + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); m_screen->set_size(320, 256); m_screen->set_visarea(0, 320-1, 0, 256-32-1); m_screen->set_screen_update(FUNC(psikyo_state::screen_update)); @@ -1079,8 +1089,9 @@ void psikyo_state::gunbird(machine_config &config) /* video hardware */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + // TODO: accurate measurements m_screen->set_refresh_hz(59.3); - m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ // we're using PORT_VBLANK + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); m_screen->set_size(320, 256); m_screen->set_visarea(0, 320-1, 0, 256-32-1); m_screen->set_screen_update(FUNC(psikyo_state::screen_update)); @@ -1120,8 +1131,9 @@ void psikyo_state::s1945bl(machine_config &config) /* Bootleg hardware based on /* video hardware */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + // TODO: accurate measurements m_screen->set_refresh_hz(59.3); - m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ // we're using PORT_VBLANK + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); m_screen->set_size(320, 256); m_screen->set_visarea(0, 320-1, 0, 256-32-1); m_screen->set_screen_update(FUNC(psikyo_state::screen_update_bootleg)); @@ -1163,8 +1175,9 @@ void psikyo_state::s1945(machine_config &config) /* video hardware */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); - m_screen->set_refresh_hz(59.90); /* verified on pcb */ - m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ // we're using PORT_VBLANK + // TODO: accurate measurements + m_screen->set_refresh_hz(59.90); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); m_screen->set_size(320, 256); m_screen->set_visarea(0, 320-1, 0, 256-32-1); m_screen->set_screen_update(FUNC(psikyo_state::screen_update)); @@ -1951,24 +1964,24 @@ void psikyo_state::init_s1945bl() ***************************************************************************/ -GAME( 1993, samuraia, 0, sngkace, samuraia, psikyo_state, init_sngkace, ROT270, "Psikyo", "Samurai Aces (World)", MACHINE_SUPPORTS_SAVE ) // Banpresto? -GAME( 1993, sngkace, samuraia, sngkace, sngkace, psikyo_state, init_sngkace, ROT270, "Psikyo", "Sengoku Ace (Japan, set 1)", MACHINE_SUPPORTS_SAVE ) // Banpresto? -GAME( 1993, sngkacea, samuraia, sngkace, sngkace, psikyo_state, init_sngkace, ROT270, "Psikyo", "Sengoku Ace (Japan, set 2)", MACHINE_SUPPORTS_SAVE ) // Banpresto? +GAME( 1993, samuraia, 0, sngkace, samuraia, psikyo_state, init_sngkace, ROT270, "Psikyo", "Samurai Aces (World)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING ) // Banpresto? +GAME( 1993, sngkace, samuraia, sngkace, sngkace, psikyo_state, init_sngkace, ROT270, "Psikyo", "Sengoku Ace (Japan, set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING ) // Banpresto? +GAME( 1993, sngkacea, samuraia, sngkace, sngkace, psikyo_state, init_sngkace, ROT270, "Psikyo", "Sengoku Ace (Japan, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING ) // Banpresto? -GAME( 1994, gunbird, 0, gunbird, gunbird, psikyo_state, init_gunbird, ROT270, "Psikyo", "Gunbird (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, gunbirdk, gunbird, gunbird, gunbirdj, psikyo_state, init_gunbird, ROT270, "Psikyo", "Gunbird (Korea)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, gunbirdj, gunbird, gunbird, gunbirdj, psikyo_state, init_gunbird, ROT270, "Psikyo", "Gunbird (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, gunbird, 0, gunbird, gunbird, psikyo_state, init_gunbird, ROT270, "Psikyo", "Gunbird (World)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING ) +GAME( 1994, gunbirdk, gunbird, gunbird, gunbirdj, psikyo_state, init_gunbird, ROT270, "Psikyo", "Gunbird (Korea)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING ) +GAME( 1994, gunbirdj, gunbird, gunbird, gunbirdj, psikyo_state, init_gunbird, ROT270, "Psikyo", "Gunbird (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING ) -GAME( 1994, btlkroad, 0, gunbird, btlkroad, psikyo_state, init_gunbird, ROT0, "Psikyo", "Battle K-Road", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, btlkroadk, btlkroad, gunbird, btlkroadk, psikyo_state, init_gunbird, ROT0, "Psikyo", "Battle K-Road (Korea)", MACHINE_SUPPORTS_SAVE ) // game code is still multi-region, but sound rom appears to be Korea specific at least +GAME( 1994, btlkroad, 0, gunbird, btlkroad, psikyo_state, init_gunbird, ROT0, "Psikyo", "Battle K-Road", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING ) +GAME( 1994, btlkroadk, btlkroad, gunbird, btlkroadk, psikyo_state, init_gunbird, ROT0, "Psikyo", "Battle K-Road (Korea)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING ) // game code is still multi-region, but sound rom appears to be Korea specific at least -GAME( 1995, s1945, 0, s1945, s1945, psikyo_state, init_s1945, ROT270, "Psikyo", "Strikers 1945 (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, s1945a, s1945, s1945, s1945a, psikyo_state, init_s1945a, ROT270, "Psikyo", "Strikers 1945 (Japan / World)", MACHINE_SUPPORTS_SAVE ) // Region dip - 0x0f=Japan, anything else=World -GAME( 1995, s1945j, s1945, s1945, s1945j, psikyo_state, init_s1945j, ROT270, "Psikyo", "Strikers 1945 (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, s1945n, s1945, s1945n, s1945, psikyo_state, init_gunbird, ROT270, "Psikyo", "Strikers 1945 (World, unprotected)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, s1945nj, s1945, s1945n, s1945j, psikyo_state, init_gunbird, ROT270, "Psikyo", "Strikers 1945 (Japan, unprotected)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, s1945k, s1945, s1945, s1945j, psikyo_state, init_s1945, ROT270, "Psikyo", "Strikers 1945 (Korea)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, s1945bl, s1945, s1945bl, s1945bl, psikyo_state, init_s1945bl, ROT270, "bootleg", "Strikers 1945 (Hong Kong, bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, s1945, 0, s1945, s1945, psikyo_state, init_s1945, ROT270, "Psikyo", "Strikers 1945 (World)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING ) +GAME( 1995, s1945a, s1945, s1945, s1945a, psikyo_state, init_s1945a, ROT270, "Psikyo", "Strikers 1945 (Japan / World)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING ) // Region dip - 0x0f=Japan, anything else=World +GAME( 1995, s1945j, s1945, s1945, s1945j, psikyo_state, init_s1945j, ROT270, "Psikyo", "Strikers 1945 (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING ) +GAME( 1995, s1945n, s1945, s1945n, s1945, psikyo_state, init_gunbird, ROT270, "Psikyo", "Strikers 1945 (World, unprotected)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING ) +GAME( 1995, s1945nj, s1945, s1945n, s1945j, psikyo_state, init_gunbird, ROT270, "Psikyo", "Strikers 1945 (Japan, unprotected)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING ) +GAME( 1995, s1945k, s1945, s1945, s1945j, psikyo_state, init_s1945, ROT270, "Psikyo", "Strikers 1945 (Korea)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING ) +GAME( 1995, s1945bl, s1945, s1945bl, s1945bl, psikyo_state, init_s1945bl, ROT270, "bootleg", "Strikers 1945 (Hong Kong, bootleg)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING ) -GAME( 1996, tengai, 0, s1945, tengai, psikyo_state, init_tengai, ROT0, "Psikyo", "Tengai (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, tengaij, tengai, s1945, tengaij, psikyo_state, init_tengai, ROT0, "Psikyo", "Sengoku Blade: Sengoku Ace Episode II / Tengai", MACHINE_SUPPORTS_SAVE ) // Region dip - 0x0f=Japan, anything else=World +GAME( 1996, tengai, 0, s1945, tengai, psikyo_state, init_tengai, ROT0, "Psikyo", "Tengai (World)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING ) +GAME( 1996, tengaij, tengai, s1945, tengaij, psikyo_state, init_tengai, ROT0, "Psikyo", "Sengoku Blade: Sengoku Ace Episode II / Tengai", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING ) // Region dip - 0x0f=Japan, anything else=World |