peplus.c: Minor update - NW

Fix coin in cycles to eliminate the Coin-in Timeout errors.  All current sets should be fully playable without issues.
This commit is contained in:
Brian Troha 2014-09-23 16:55:39 +00:00
parent ce2b6a3167
commit e2003e3f1f

View File

@ -168,9 +168,6 @@ NOTE: The Door Open cycling is currently not fully understood. Non Plus program
expect the Door Open bit to cycle. Later versions, Superboard & Wingboards require the Door Open cycling but expect the Door Open bit to cycle. Later versions, Superboard & Wingboards require the Door Open cycling but
at different rates. It's currently not know what if any universal value will work for all sets. at different rates. It's currently not know what if any universal value will work for all sets.
NOTE: Some of the earlier 32K versions currently error out with a Coin-In Timeout error. These sets include:
PP0008, PP0014, PP0023, PP0057, PP0059, PP0063 & PP0064
***********************************************************************************/ ***********************************************************************************/
#include "emu.h" #include "emu.h"
@ -875,7 +872,7 @@ READ8_MEMBER(peplus_state::peplus_input_bank_a_r)
m_last_cycles = m_maincpu->total_cycles(); m_last_cycles = m_maincpu->total_cycles();
} else { } else {
/* Process Next Coin Optic State */ /* Process Next Coin Optic State */
if (curr_cycles - m_last_cycles > 600000/6 && m_coin_state != 0) { if (curr_cycles - m_last_cycles > 10000 && m_coin_state != 0) { // Must be below 100ms (833.3 x 100 cycles) or "Coin-in Timeout" error
m_coin_state++; m_coin_state++;
if (m_coin_state > 5) if (m_coin_state > 5)
m_coin_state = 0; m_coin_state = 0;
@ -918,7 +915,7 @@ READ8_MEMBER(peplus_state::peplus_input_bank_a_r)
m_last_door = m_maincpu->total_cycles(); m_last_door = m_maincpu->total_cycles();
} }
if (curr_cycles - m_last_coin_out > 600000/12 && m_coin_out_state != 0) { // Guessing with 600000 if (curr_cycles - m_last_coin_out > 600000/12 && m_coin_out_state != 0) { // Must be below 700ms or it will time out
if (m_coin_out_state != 2) { if (m_coin_out_state != 2) {
m_coin_out_state = 2; // Coin-Out Off m_coin_out_state = 2; // Coin-Out Off
} else { } else {