Hey John. Apologies for my lack of feedback on your build. Been lurking in the background and following the threads, but not had the time to reply properly as yet.
Just to say what everyone else already has said, your MFME cab looks great, and its great to see you finally complete it (minus some tweaks) and I feel humbled that I have helped in some ways, as others have to, to get you to where you are now.
Your payouts seem a lot 'smoother' than mine are, so maybe you could talk me through what you have done. Mine pays out all in one go after collecting the bank, but yours seems to pay the money in little bursts of £3 or £4 or so just like the real machine does and I prefer yours to mine.
When I build mine about 1 year ago now, I was building totally blind and I wish there was someone else who had built one so I could see what they had done, as I made a fair few mistakes on the way and a few things I wished I had added (such as a USB, Headphone jack at the front) but that being said, I play mine regularly and have a bar-stool next to it which makes it a lot more comfortable to play. There is now 93 games on mine all fully working, and I have a massive list of games still to add to it. The main thing I needed on mine was paying out and taking coins otherwise to me, it wouldn't be something I'd ever play, so it was something I set out to try and find a way of doing. And I'm glad I've been able to help otehrs get that side of things working too. Again, feel humbled that other people are now taking these cabs on and I love seeing what people are creating.
Thanks Jamie for your kind words. As you know, I certainly wouldn't have managed to build mine and get it all working without your help.
The software on mine works by reading the memory address 0x96e0a4.
I've spoken to Wizard and he's happy for people to know what address holds the value to pay out. Although he has said that this address may change in the next version of the software.
The software I wrote takes a snapshot of the value at this address when the machine starts.
It then continually compares the value at this address to see if it has incremented.
If the value increases it keeps monitoring it until it reaches £1 at which point it instructs the £1 hopper to pay out 1 coin and deducts that amount from the total that the value has incremented.
If the software polls the value at the address a couple of times and it hasn't changed then it pays out the rest in 10p's.
So.... here's an example of a pay out.....
I win £1.60
The value at the address counts up 10... 20.... 30.... 40.... (at this point my software is just taking the original value of the address away from the new value to calculate the amount it should pay out - but it's not paid anything out at this point)... 50... 60... 70... (it obviously can't pay out whilst this is going on as it would end up just telling the 10p hopper to pay out 3 coins, then 2 coins, then 3 coins, the 1 coin. etc all the way to £1.60).... 80,.... 90..... 100.... at this point I know that I've won at least a pound so I instruct the £1 hopper to pay a coin out and deduct the 100 from the total... 10....20...30....40....50....60....60.....60.... (at this point the count hasn't changed so I know that I can now pay out 6 coins from the 10p hopper and that's the final amount paid).
My software also monitors that the £1 hopper pays out the coin and, if not, it sends instructions to the 10p hopper to pay out 10 coins and alerts the user that the £1 hopper is empty with a verbal message.
The software was my first attempt at C++ and it seems to work ok. I sent it to Wizard just in case he was interested and I've not heard back so I presume he's still pissing his pants at it but.... it does get the job done! lol
If you need more info Jamie then please let me know.