metro.cpp: coin counters (nw)

This commit is contained in:
angelosa 2017-11-27 04:11:34 +01:00
parent 80b4a1272a
commit 23b9c43e56

View File

@ -453,22 +453,23 @@ WRITE8_MEMBER(metro_state::daitorid_portb_w)
***************************************************************************/ ***************************************************************************/
/* IT DOESN'T WORK PROPERLY */
WRITE16_MEMBER(metro_state::metro_coin_lockout_1word_w) WRITE16_MEMBER(metro_state::metro_coin_lockout_1word_w)
{ {
if (ACCESSING_BITS_0_7) if (ACCESSING_BITS_0_7)
{ {
// machine().bookkeeping().coin_lockout_w(0, data & 1); machine().bookkeeping().coin_counter_w(0, data & 1);
// machine().bookkeeping().coin_lockout_w(1, data & 2); machine().bookkeeping().coin_counter_w(1, data & 2);
} }
if (data & ~3) logerror("CPU #0 PC %06X : unknown bits of coin lockout written: %04X\n", space.device().safe_pc(), data); if (data & ~3) logerror("CPU #0 PC %06X : unknown bits of coin lockout written: %04X\n", space.device().safe_pc(), data);
} }
// value written doesn't matter, also each counted coin gets reported after one full second.
// TODO: maybe the counter also controls lockout?
WRITE16_MEMBER(metro_state::metro_coin_lockout_4words_w) WRITE16_MEMBER(metro_state::metro_coin_lockout_4words_w)
{ {
machine().bookkeeping().coin_counter_w((offset >> 1) & 1, offset & 1);
// machine().bookkeeping().coin_lockout_w((offset >> 1) & 1, offset & 1); // machine().bookkeeping().coin_lockout_w((offset >> 1) & 1, offset & 1);
if (data & ~1) logerror("CPU #0 PC %06X : unknown bits of coin lockout written: %04X\n", space.device().safe_pc(), data); if (data & ~1) logerror("CPU #0 PC %06X : unknown bits of coin lockout written: %04X\n", space.device().safe_pc(), data);
} }
@ -715,7 +716,7 @@ static ADDRESS_MAP_START( kokushi_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("IN0") AM_WRITE(metro_soundstatus_w) // To Sound CPU AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("IN0") AM_WRITE(metro_soundstatus_w) // To Sound CPU
AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("IN1") // Inputs AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("IN1") // Inputs
AM_RANGE(0xc00004, 0xc00005) AM_READ_PORT("DSW0") // AM_RANGE(0xc00004, 0xc00005) AM_READ_PORT("DSW0") //
AM_RANGE(0xc00002, 0xc00009) AM_WRITE(metro_coin_lockout_4words_w ) // Coin Lockout AM_RANGE(0xc00002, 0xc00009) AM_WRITE(metro_coin_lockout_4words_w) // Coin Lockout
ADDRESS_MAP_END ADDRESS_MAP_END