That makes sense was just laying out my board and noticed yours was different.
I've added the game specific sound handling for Pharaoh. It's in the V00.22 branch on GitHub.
I didn't have much time, so I hope I didn't mess things up.
short version - the stock hardware is working about 98%, totally good enough for most casual players. The APC hardware takes a bit of effort to get set up, but once you get past that, it's top notch. If anyone needs sound files for Pharaoh, let me know.
Update from the weekend:
I've been working on two angles here - 1 to run with the original sound board, and 2 to use the APC sound hardware and sound files on the SD card.
Let's start with the original hardware:
At first, running the stock sound card, it worked really good, except that the sounds in the bonus countdown seemed a bit "choppy", and that the end song would get cut off when it went into attract mode (if you're familiar with Pharaoh, you know this game end song). Didn't really like that, but the end song had come back after switching between the two modes. Now I'm back to the stock hardware, and amoksolderer had suggested tweaking the LISY throttle value to adjust the speed at which pinmame is running. I've messed around with that a bit, and the bonus countdown still isn't right. It doesn't help that I have no computer near this machine, so to make a change I have to power down, remove the card, run upstairs, make the change, run back down and start over. But I did make it a little faster (I could notice the change in speed, but the countdown still wasn't right) and a little slower (still no love). But now the game over song is getting chopped off again. I think I'm going to leave it as is and step away for a bit. I'll probably tweak it a bit more later.
Now to the APC sound hardware and the SD card. First, I realized I messed up with the sound numbers...there are 32 sound numbers. In hex (like pinmame uses), that's 00-1f. When you get to 20, it's only looking at the lowest 5 bits, so it's all the same and it just starts repeating. So 20-3f are the same as 00-1f, and I'm sure if you checked, 60-7f would be the same, too. Anyway, in that mode, the sound info I provided previously was not right, because even though the sounds are the same, Pinmame is actually asking for sounds 20-3f, so you have to name the files this way. And the update that was made (based on my wrong numbers) had to be updated again. I went in and corrected the numbers in the APC code on my local version, converted and renamed all the files (since some of the 32 files have multiple versions, there were actually 72 files to convert), and now when I run the APC sound hardware, it seems to work perfectly. The sound is awesome, there is zero hum coming out of the speaker, I'm getting the proper random voice calls, and I can hear the background droning sounds increase in pitch and speed as the ball lasts longer. I've got a hunch that this background sound is starting at a higher than normal pitch, but I'll have to look into that (or just ignore it).
I'm totally digging this APC project!
Jeff
Quoted from Grangeomatic:
I've got a hunch that this background sound is starting at a higher than normal pitch, but I'll have to look into that (or just ignore it).
Well, you really have a sensitive set of ears.
I'm currently redoing the handling of machine dependent rules (like sound) and I found a bug in the code that makes the BG sound to start from the second tune.
I'm playing my Jungle Lord for months and never realized it
You can correct this by changing line 840 in USBcontrol.ino from
SoundSeries[2] = 1;
to
SoundSeries[2] = 0;
then it should start with the right tune.
But the machine dependent code will change significantly anyway. In the future it's going to be a modular approach which can also handle switch, lamp and solenoid based exceptions.
But apart from that the APC generated sound is working 100%? No issues with bonus count down and end song?
Quoted from RatShack:
M100 is next after I wrap up GTB System1-80B.
That means you're almost done with GTB System1-80B?
Quoted from AmokSolderer:
Well, you really have a sensitive set of ears.
But apart from that the APC generated sound is working 100%? No issues with bonus count down and end song?
Must be the musician in me....
I can make the interim change for now, or just live with it
Yes, sound via APC seems to be 100%, bonus countdown and end song included. It even plays the annoying taunts during attract mode!
On my side, I'm in the middle of installing the APC in my Firepower... I'm improvising some supports for the board and have to cut some zip ties to reorganize the connectors to reach their locations on the board... But it's going well so far! I'll have an update shortly.
Quick feedback (minor), on the connector layout drawing (APC_Connectors.png), a red cross is missing to indicate the pin to cut on sys7_2J5
Question about RR8: can the 18K SIP9 be substituted with a 20K SIP9? When I ordered parts, the 18K was unavailable and I have some 20K from a different project. It looks like it's being used as a voltage divider, but I don't fully understand the schematic. Thanks!
The Arduino is programmed and the APC board is finally installed in my Firepower, yes! I have at this point only the minimum harnesses (switches, displays, power), and no Pi.
I'm trying to set up the display by following the instructions in "/DOC/Settings.md". The doc says to go through the options by pressing start until "a single 6 is shown on the player 4 display" (Firepower being a system 6 game, with 6 digit displays). Unfortunately I never get this "6" showing up in the 4th display...
The 4th player display cycles through these values:
"-0939-"
"-306--"
"-01066"
"0-4---"
"-00170"
"-30093"
"------"
"------"
and then back to "-0939-" but never "-----6" or "-----7".
I suspect the issue is related to the 2 blank options ("------"), they might be where the "6" and the "7" should have showed up. Maybe the system tries to display the "6" or the "7" on the missing 7th digit... which results into an empty display...
Quoted from AmokSolderer:
That means you're almost done with GTB System1-80B?
Yes. The 80B prototype board is still running strong. Testing the solid state flipper board for reliability issues.
Quoted from waveman:
It looks like it's being used as a voltage divider, but I don't fully understand the schematic.
Yes, it's a voltage divider and with 20K for RR8 the voltage at the input pins of the Arduino will go up from 3.28V to 3.4V. In the Datasheet of the Atmel Controller they state an absolute maximum voltage of 4V, so you're still well below the limit. You might slightly reduce the lifetime of the controller, but I'd assume this to be negligible.
Quoted from matiou:
Maybe the system tries to display the "6" or the "7" on the missing 7th digit... which results into an empty display...
Exactly, up to now System6 displays are treated the same way as System7 and according to the System6 schematics a number at strobe 16 in the lower display row will not produce any output. I also see that the handling of the credit display is different, so I don't expect the menu navigation to work either.
This is not a big deal, but nevertheless it's probably going to take some iterations before these display are working perfectly. I'd therefore like to finish the exception handling I'm currently working on before we start with the displays. I hope this is OK for you.
Until then I'd recommend to select the first "------" after "-30093" and play with it. My guess is that except of the missing 7th digit and the credit display it should work OK with this setting.
Quoted from RatShack:
Yes. The 80B prototype board is still running strong. Testing the solid state flipper board for reliability issues.
Do you have a pic or a video to share?
Quoted from AmokSolderer:
Yes, it's a voltage divider and with 20K for RR8 the voltage at the input pins of the Arduino will go up from 3.28V to 3.4V. In the Datasheet of the Atmel Controller they state an absolute maximum voltage of 4V, so you're still well below the limit. You might slightly reduce the lifetime of the controller, but I'd assume this to be negligible.
Thanks a lot for you reply. I'll give this a try with 20K
Quoted from matiou:
Quick feedback (minor), on the connector layout drawing (APC_Connectors.png), a red cross is missing to indicate the pin to cut on sys7_2J5
Almost missed this. Thanks for the info, I'm going to correct it.
As mentioned I've changed the handling of machine specific exceptions to a modular approach. This allows you to do individual changes to your machine in your own module.
Take a look at
https://github.com/AmokSolderer/APC/blob/V00.22/DOC/PinMame_howto.md#programming-exceptions
to see how it works. As always, feedback is welcome.
If you want to try it you have to switch to the V00.22 branch on GitHub.
matiou V00.22 also features System6 display support. It's my first try, so don't expect too much, but please play around a bit and tell me what does work and what doesn't.
Quoted from AmokSolderer:
matiou V00.22 also features System6 display support. It's my first try, so don't expect too much, but please play around a bit and tell me what does work and what doesn't.
Awesome, thanks! Unfortunately I won't be able to test much right now... As you may have seen in the news, Texas is a mess right now. I lost power/heat/water so cannot really play with pinballs... But I'm ok! I will let you know when I can get back to it.
Quoted from matiou:
As you may have seen in the news, Texas is a mess right now.
Apparently I didn't follow the news closely, so I wasn't aware of the situation being that bad in Texas.
My best wishes for you and your family. Looking forward to hearing from you when the power is back.
Quoted from AmokSolderer:
My best wishes for you and your family. Looking forward to hearing from you when the power is back.
Thanks! Power and internet are back since yesterday night. I'll resume the tests soon! (I still have no water, but who needs water to play pinball )
Quoted from AmokSolderer:
matiou V00.22 also features System6 display support. It's my first try, so don't expect too much, but please play around a bit and tell me what does work and what doesn't.
Ok so I installed 0.22 and now I can see the "6" when browsing the display options... yes!
However the "credit" display is still messed up when i try to go through all the options, it does not show the option index correctly. The "player 4" display seems to work and shows the selected setting value... I managed to blindly go to "save settings" by counting my steps, and it worked (I successfully got a setting file created on the sd card)
What happens exactly, does the credit display show anything at all? If yes does this change when you cycle through the settings?
Quoted from AmokSolderer:
What happens exactly, does the credit display show anything at all? If yes does this change when you cycle through the settings?
yes, the credit display is showing some numbers... here is what i get when going through "system" options:
credit / player #4
----19 / -----6 display type
----65 / -----3 active game
-3--6- / -----3 nb of balls
----5- / -----1 free game
----34 / -----2 connect type
-43--- / -----0 dim inserts
--5-52 / ----00 speaker volume
-3---- / ----00 led lamps
-4--80 / -----0 sol ext board
----7- / -----0 debug mode
--4-25 / ------ restore default
-73-4- / ------ exit settings
but i guess the most important is that now i can clearly see the selected values, so i'm no longer blocked (i just have to count my steps when going into the options)... thanks for the very quick fix!
I think I found the problem. V00.22 has been updated, please try again.
BTW, I've also changed the sound exception handling slightly to make it work better with Sys11 machines. The documentation has been updated accordingly:
https://github.com/AmokSolderer/APC/blob/V00.22/DOC/PinMame_howto.md#programming-exceptions
Quoted from AmokSolderer:
I think I found the problem. V00.22 has been updated, please try again.
Yep it's working, I now see the option numbers! Thanks again for a quick fix!
I managed to go further into my tests... and have some issues, but they might be on my side.
Display test works... Lamp test works but does not turn on all lamps... Solenoids are not triggered... Sound works but super loud...
I need a bit of time to figure all this out!
Quoted from matiou:
Sound works but super loud...
Are you using the digital volume control or the old pot on connector 10J4?
It might be that Williams used another pot value for System6, so try to disconnect 10J4 and use the digital volume control instead.
Quoted from AmokSolderer:
Are you using the digital volume control or the old pot on connector 10J4?
It might be that Williams used another pot value for System6, so try to disconnect 10J4 and use the digital volume control instead.
Continuing my System 6 adventures:
- I'm now using the digital volume control and it's working well... I'll debug later what was wrong with the pot.
- The lamps are working well in "single lamp test", turning one by one. However, the lamp index on the display seems wrong (not incrementing well and many lamps are showing the same index)
- For the solenoids... well I need to troubleshoot a bit more: the F2 fuse blew, I guess the board triggered a locked solenoid.
Quoted from matiou:
I'm now using the digital volume control and it's working well... I'll debug later what was wrong with the pot.
Remember to set the volume of the digital volume control back to zero before you reconnect 10J4 or the volumes will add up. But I'd recommend to use the digital volume control anyway, as the old pots can be quite bitchy sometimes.
Quoted from matiou:
However, the lamp index on the display seems wrong (not incrementing well and many lamps are showing the same index)
You're using the test mode of the Base Code, right? Looks like I have to add some System6 display support there also.
Quoted from AmokSolderer:
The testmode of the BaseCode should now support System6 displays, so you could give it another try.
wow you're fast
yep that fixed it... the lamp index is now incrementing nicely. thanks!
little remark about lamp test, not blocking: in test mode 4, all the lamps turn on, one by one, no problem. in test mode 5, all the lamps turn on except the 8 first (first column of the lamp matrix).
i will test the solenoids tomorrow... right now everybody sleeps in the house, I cannot make noise!
Quoted from matiou:
wow you're fast
Yeah, usually it's not much work to do the changes, the problem is more to remember where these display related changes are necessary at all. Therefore it's good that you're pointing me to the right places.
Quoted from matiou:
in test mode 5, all the lamps turn on except the 8 first (first column of the lamp matrix).
This is a relic from the past. I skipped the first column because the games I started with had the first column reserved for backbox lamps and I wanted only the playfield lamps to be flashing. But in the meantime I learned that there're a lot of games handling it differently (like your Firepower), so it doesn't make much sense to keep it this way and I just changed it.
Quoted from AmokSolderer:
(...) I just changed it.
And it's confirmed working, all lights are now blinking!
Ok now for the solenoids... I did not want to risk to blow the solenoid fuse again, so I decided to test with some LEDs... I built myself a little board with an old 9 pin connector:
PXL_20210225_042701758 (resized).jpg
Then I went to "test mode 3" with my board plugged in successively in 2J9, 2J11 and 2J12
My results using this test mode:
- no LED is staying locked on... good!
- solenoids 1 to 16 are pulsed correctly (they turn on the matching LED)... good!
- the special solenoids 17 to 22 (2J12) were not pulsed during the test mode (led stayed off)... maybe normal ?
- every time solenoids 1 to 8 are pulsed, they're followed by solenoid 12 being pulsed as well... I tried to put "BC_ACselectRelay = 0;" in BaseCode.ino but it did not change anything
Quoted from matiou:
every time solenoids 1 to 8 are pulsed, they're followed by solenoid 12 being pulsed as well... I tried to put "BC_ACselectRelay = 0;" in BaseCode.ino but it did not change anything
Ok I found my mistake! I went to the game settings option and changed the ac relay option to zero and now the test behaves well (no more unwanted pulses on 12). So my only solenoid test issue left is about solenoid 17 and above not being pulsed.
Quoted from matiou:
So my only solenoid test issue left is about solenoid 17 and above not being pulsed.
Well, that sounds like U18 is not working. I guess we can assume that the IC was correctly soldered during manufacturing, so could you check whether you soldered pin 1 of P2 (at the Arduino) correctly? A missing solder joint there would cause the solenoids 17 - 24 to stay off.
And please also check the soldering of the pins of Q17, Q18, Q23, Q24, Q29, Q30, Q35 and Q36. If you've accidentally created a short there it might have blown U18, although in this case I'd expect U18 to be visually damaged.
We're 8000km apart and you just located a cold solder joint on my board impressive!
I fixed the joint arduino/p2 and now my leds are flashing!
Great to see you're enjoying Pinside! Did you know Pinside is able to run thanks to donations from our visitors? Please donate to Pinside, support the site and get anext to your username to show for it! Donate to Pinside