From 00f449c0abf8f52d7e1a826423884b46e2275291 Mon Sep 17 00:00:00 2001 From: darq Date: Fri, 9 Dec 2016 19:57:47 +0100 Subject: [PATCH] Skipping hex values is not so strange for a BCD counter (that would be invalid for a decoder IC); clarified the coincounter_w comment --- src/mame/drivers/shootout.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/mame/drivers/shootout.cpp b/src/mame/drivers/shootout.cpp index a012485d690..ec1565abaec 100644 --- a/src/mame/drivers/shootout.cpp +++ b/src/mame/drivers/shootout.cpp @@ -76,12 +76,15 @@ WRITE8_MEMBER(shootout_state::flipscreen_w) } /* - This is actually a 'real' counter... the first write is always 0x40, then when a coin is inserted the game starts to count from 0x01, - then it counts from 0x02 to 0x09 but strangely it skips the 'hexadecimal letters'... so from 0x09 it goes to - 0x10, 0x11, 0x12, ...0x19, 0x20, and so on... - The game counts up to 0x99, after that, 0x99 is always written... + This is actually a double BCD counter (2 BCD digits packet in a byte)... + The first write is always 0x40, then when a coin is inserted it starts to count from 0x01 up to 0x99. + When it reaches 99 credits, 0x99 is always written... - On the shootoutj and shootoutb sets, it works as above but it counts up to 0x09 instead of 0x99. + On the shootoutj and shootoutb sets, it works as above but it counts up to 0x09 instead of 0x99 (Single BCD digit). + + Note: + This should be an input for a BCD to 7-segment decoder (e.g. a 74LS47), but all the PCBs I've seen don't have 'onboard' + display(s), so this was implemented as normal "coin counter" (after all, they both have the same goal: count credits ;)) */ WRITE8_MEMBER(shootout_state::coincounter_w) {