First of all, nice to find many of you “hardcore-players” at here, it’s great to read your thoughts and opinions about games, rules, tactics etc.
I was wondering (now than here is some very skillful people lurking around) that how hard would it be to have an gadget for tournament use that would show only the scores at separate monitor? That data is located at somewhere in RAM during game so would getting that data be impossible? This way it could be implemented to tournament software, websites, google docs etc. what ever do you use when running a competition. Or best in modern day, implement it as overlay on games which are streamed to network. Is there any interface in lets say WPC platform that could give access to memory? If not, could it be done in redesigned MPU? Also this could be stretched further as LAN interface which you could use to communicate with game (adjust settings etc. remotely). I know it’s a niche customer base but still, there is quite many WPC games that will be used in tournaments so some interest would be there.
I’m not an ee, but implementing such a thing that doesn’t screw up your bus seems more than daunting to me.
Might be easier to try do with some sort of image recognition and a camera?
Problem is that in many games, scores are not shown in DMD very often. But game knows the scores all the time, writes it to some memory bank and just wishing that it could be read from there at certain interval for output to somewhere else than DMD.
Ran across this post on Pinside about a month ago that looks to be a solution for the problem you’re trying to solve:
That said, it looks as if it’s Stern/SAM only via Pinball Browser and not on WPC, but would have to imagine that it might be possible.
ronxo: That’s excellent, how did I miss that, still quite heavy user on Pinside Thanks, I’ll look into it.
Happy to help. Keep us posted if you get it figured out/working
Will do, problem is that I don’t have any SAM-games at my posession, only one Whitestar (T3) + WPC’s.
Ah, but you are a software guy Let’s assume the bus sniffing could be implemented. Say we would be able to read the contents of a RAM location at will, and perhaps do some limited real-time RAM activity monitoring to trigger when it makes sense to read scores. Am I right to assume that the RAM locations for live scores, high scores and other audits are different between different games, so we would need to tell the sniffer e.g. “You’re now in a World Cup Soccer running LX-1 ROM” for it to know where to look? Or are there some common patterns which could be used to find these addresses semi-automatically?
I have been toying with the idea of attaching a test clip on top of the RAM chip, connect the lines to GPIO on a fast enough ARM Cortex based MCU, and then 1) detect WPC RAM write enable, 2) on WPC writes, sniff and mirror the write into MCU RAM, 3) read interesting stuff out of MCU RAM on demand. Still in the idea phase, so there are obviously lots of dragons hidden, but this would in effect emulate a dual-port RAM and should not affect the WPC bus. But then, I’m not an EE either
Oh thanks for bumping this. It did occur to me at some point that if (as you state) you knew what the addresses were, you could watch as they were clocked out (or in for that matter) and that would be a pretty easy way to deal with it that wouldn’t be destructive.
I don’t know enough about APPLE games to know if the scores were always in the same spot. I don’t remember enough about Whitestar games to know. I would be fairly shocked if they were the same in every SAM game (however in SAM (and Spike??) you have on-chip RAM to deal with I believe, so that complicates matters a rather extreme amount. In our current games, I’m fairly certain the scores change places almost every time I compile the game, not to even think about the paging issues involved with a modern os.
I just now found this page, which includes a tool for finding high-scores as well as a file with known locations for 500+ game ROM versions:
There’s also PINemHi, which can extract high-scores from PinMAME nvram files:
Edit: The above is only for high-scores, not live/current/real-time scores. High-scores are an easier problem, but real-time is of course both more fun and what this thread was really about in the first place.