Ultimarc A-Pac with 5k Potentiometers
-
This is great information, Ive been researching my build of a 4 player Warlords for a few months now. You seem to have learned a lot of stuff here! Watching to see your ground breaking progress, not many of these being built with 4 spinners! :-)
-
I typed up a draft, I don't think I can edit posts so I may regret posting it if I find something isn't accurate or I made typos. ;)
Teh Googles of the Interwebz, reference links that helped create this listing:
https://retropie.org.uk/forum/topic/12972/ultimarc-a-pac-with-5k-potentiometers/16?loggedin=true
https://www.ultimarc.com/a-pac.html
http://forum.arcadecontrols.com/index.php/topic,155328.msg1629561.html#msg1629561
http://www.advancemame.it/doc-advmame#8.9Prep assumptions:
--Have warlords.zip romset for MAME
--Have an Ultimarc A-Pac analog interface
--Have a Raspberry Pi 3
--Have four Clarostat 5k potentiometers
----I found some medical use potentiometers with knob for $7.50 shipped apiece on ebay, the longer the shaft the better to allow for mounting into a panel
----The original Atari Pots had a clutch to help with aggressive public use, there is a seller on KLOV but the pots are around $25 apiece.
--Have a USB controller and keyboard
--Have a cheap 4 port USB hub
--Have the desired arcade buttons
--For basic Pi interactions I'd recommend having the following free programs installed on the PC- Win32DiskImager, WinSCP, Putty, Notepad++
--Have a monitor which can be about anything since Pi is so versatile.
----Examples, Computer monitor with d-sub VGA connector will require an Hdmi to vga adapter. Will require computer speakers for sound out of the 3.5mm jack.
----HDMI direct to an HDMI TV which also handles the sound
----Computer monitor with dvi with HDMI to DVI conversion cable
----Arcade monitor if you use a product like Arpicade or the other Pi Jamma interfaces on the market. (I was unsuccessful getting a J-Pac to work with an arcade CGA monitor, btw)
----Using the Pi's 3.5mm jack to output video via the Red/Yellow/White RCA cablesA-Pac details:
--A generic wiring example for the pots is found here- https://www.ultimarc.com/a-pac.html
--Explanation of pot function via BYOAC reply#1- http://forum.arcadecontrols.com/index.php/topic,155328.msg1629561.html#msg1629561
--The A-Pac is seen as 2 joysticks with and X and Y axis each. For warlords P1 paddle is the Joystick 1 X axis, P2 paddle is Joystick 1 Y axis, P3 paddle is Joystick 2 X axis, P4 paddle is Joystick 2 Y axis
--For orientation imagine holding the pot with the back facing you, the shaft away from you and the 3 prongs pointing downward.
---The far left tab goes to Ground on A-Pac
---The middle tab goes to Right Paddle on A-Pac
---The far right tab goes to the Left Paddle on A-Pac
---Do this wiring setup for all 4 paddles. Remember that the A-Pac is being setup like paddle 1 is 1Left/Right, paddle 2 is 1Up/Down, paddle 3 is 2Left/Right, paddle 4 is 2Up/Down
--Wire up however many buttons you'll need, I used 4 buttons for the player button to catch the fireball, and 1 button for credit.Easy test setup:
--Install wolfmame .106 on a PC
--Plug the A-pac into a USB port and confirm it is working via the crosshatch's found at: Open Control Panel, Game Devices. You will see two A-PAC Gamepad devices shown. Select each one and check for correct operation. The top one in the list is the player 1 side, the lower one is player 2.
--Start Warlords in MAME
--Hit tab and map the paddle entries by hitting enter on the relevant entry then spin the paddle to register the value
--They will look like this
Paddle Analog = J1 X Axis
Paddle Dec = J1 X Axis + (spin counter-clockwise)
Paddle Asc = J1 X Axis - (spin clockwise)
Paddle 2 Analog = J1 Y Axis
Paddle 2 Dec = J1 Y Axis +
Paddle 2 Asc = J1 Y Axis -
Paddle 3 Analog = J2 X Axis
Paddle 3 Dec = J2 X Axis +
Paddle 3 Asc = J2 X Axis -
Paddle 4 Analog = J2 Y Axis
Paddle 4 Dec = J2 Y Axis +
Paddle 4 Asc = J2 Y Axis -Raspberry Pi setup:
--Install Retropie on a microSD card for Raspberry Pi 3 using Win32diskimager on PC
---You'll need to enable SSH, turn on WiFi, then get the IP address for the Pi which are all things done from the Retropie menu and easily google-able (ETAPrime is a great YT resource on the basics, too)
--Plug a 4 port USB hub into one of the Pi ports so you have plenty of USB connection points
--Plug a USB controller into the Pi
--Plug a USB keyboard into the Pi
--Install Advance MAME
---Note- Spinner function will work with any of the Advance MAME versions, but you'll have to change the related .rc file pertaining to the specific advmame version used.
--Transfer warlords.zip to the arcade folder on the pi using WinSCP on PC
--Start warlords, and be sure it is set to open with advance mame (tap a button when warlords is starting at the onscreen prompt)
--Use Tab to edit the controls for this game. For all 4 paddle entries remap the Analog/Desc/Asc entries to irrelevant keyboard characters like d and g, that way there won't be any conflicts with the upcoming .rc paddle configuration settings.
--Plug the A-Pac into the Pi and rebootConfigure the Paddle for MAME on the Pi:
--Pi does NOT allow you to map the paddle from the MAME Tab menu, like it does in wolfmame on a PC, so you have to manually edit a .rc configuration file.--From the Pi you will want to test the paddle interface using a tool
--F4 to command
--sudo nano /opt/retropie/emulators/advmame/bin/advj
--spin the pots and ensure they register changes similar to the examples below
---pot 1
---joy 1, [-------], 0/0 [-number here changes with pot /], 0/1 [ xxxx ]
---pot 2
---joy 1, [------], 0/0 [-xxxx /], 0/1 [number here changes with pot ]
---pot3
---joy 2, [-----], 0/0 [-number here changes with pot /], 0/1 [xxxx /]
---pot4
---joy 2, [-----], 0/0 [-xxxx /], 0/1 [ number changes with pot /]
--Section 8.9.5 gives hints about how to decipher the info from the advj utility- http://www.advancemame.it/doc-advmame#8.9
---joystick[JOY,CONTROL,AXE]
---JOY Number of physical joystick: 0, 1, 2, 3, ...
---CONTROL Number or name of physical control of the joystick: 0, 1, 2, 3, ...
---AXE Number or name of physical axe of the control: 0, 1, 2, 3 ...--the following will have to be updated in the advance mame .rc configuration file
--hit f4, type sudo nano /opt/retropie/configs/mame-advmame/advmame.rc
---p1 paddle set to joystick[1,0,0]
---p2 paddle set to joystick[1,0,1]
---p3 paddle set to joystick[2,0,0]
---p4 paddle set to joystick[2,0,1]
--use Alt X then Y to save the advmame.rc changes--Reboot the Pi and ensure Warlords allows the player shield to move back and forth.
---If your shield moves opposite to how you turn the paddle, you'll need to switch the wiring for each paddle. Switch the ground wire with the Left wire on the A-Pac (This is effectively flipping the far left and far right tabs at the potentiometer, meaning it is reversing the action)
---Upon starting Warlords with the A-Pac installed, you can use the Tab menu to map the 4 player buttons and the credit button.
---The 4 players are activated at game start by hitting the capture button for each player in the designated time-frame. Any player position desired from 1 to 4 players, is activated by hitting the button much like Gauntlet.
---The game goes to the last King/Castle surviving whereupon the game ends.Optional Ideas:
--Images related to Warlords can be copied onto the Pi so that Splashscreens can be set to randomize the images upon bootup.
--Booting to single Rom (original thread on topic is found on BYOAC in the Raspberry Pi section)
---Setup Booting into a Single Rom
---Optional methods- Login to the Pi using Putty from your computer or F4 from the Retropie menu
---Type> sudo nano /opt/retropie/configs/all/autostart.sh
---Add as the top line>
---/opt/retropie/supplementary/runcommand/runcommand.sh 0 SYS mame-advmame ~/RetroPie/roms/arcade/warlords.zip
---Note- If you want to lock out any pi menus and force the player to stay in just one game, simply don't map the "UI Cancel" (found in MAME Config via TAB) to any available buttons on the control panel.Ongoing Caveats and problems:
--I am unable to get the above to work properly for booting to one game via AdvanceMAME. The game will load then a few seconds later a black screen with some error coding appears. I'd love to know how to fix this problem that is specific to advmame, if anyone knows.
--In the MAME Tab menu, the dip switch section will allow you to set the game to FreePlay but the freeplay setting doesn't hold upon the next time going into the game. Which requires a credit button be wired into the setup.The build:
--I will update this thread with pics since BYOAC makes it easy to upload images- http://forum.arcadecontrols.com/index.php/topic,155058.0.html
--Also thinking that it would be fun to add Breakout and Pong if Advance MAME works with those titles...more research
--I got both the daughter and wife to try a game of warlords tonight and they both thought it was going to be a fun addition for winter. Painting the cocktail cab gray instead of black seems to have allowed it entry from the garage into the house for winter.....unlike the yellow shop cat which sheds..... :( -
Exidy Circus works properly under this setup.
Super Breakout works properly.
Unable to get PONG or Breakout working with AdvanceMAME on Pi.
Avalanche "works" but the paddle doesn't go clear to each side so you can't catch all the falling rocks. :( -
@1500points It sounds like some new info has come in regarding the lr-mame2003 mouse input changes. It turns out, they added a method to set per-player mouse indices. Not sure yet how/if splitting the axes works with this new setup, but it is good news for folks who have multiple analog input choices on their control panels.
-
@caver01, Here is a new question.
Using this configuration, playing Atari Avalanche with Advance MAME.
The paddle doesn't reach clear to each side of the horizontal field of rocks. It won't reach the far left row of rocks or the far right.I tried all of the analog control settings and bumped them way up to like 100 paddle speed, 100 centering, and 200% sensitivity. The stop positions don't change.
Is this an emulation mistake in the design possibly?
Or would avalanche need a real spinner like used with Tempest?Which leads to the next question....How hard will it be to get a turbo twist spinner to act like a "paddle" for the setup? Since it is seen as a mouse rather than joystick with axes?
learning, learning, learning..... -
@1500points is that an arcade game? I am not familiar with it but I could try it. I have two Turbo Twists on my cab.
-
Indeed it is. I found it easily via
[Redacted]
. An early game that is not widely known but it just might be one of the best of that era. I've only seen one original, at a retro arcade near Chicago. The pre-cursor to Activision's Kaboom. -
@1500points Ahh. Looking at this online now. According to this, it uses a 5k pot with a slip-clutch knob. I love that we have these old reference materials! Not sure how using the actual controls electronics would help with MAME, but it is neat to see the details and all of the effort that went into making these things.
-
Cool, I didn't realize old manuals were available like that one.
Someone on KLOV sells Atari slip clutch pots but they are $25 US apiece. I don't think that will solve this particular issue about reaching the ends of the field, though. -
@1500points I am away from my system for the day, but does that mean the "rocks" that fall on the sides are un-catchable?
-
@caver01 said in Ultimarc A-Pac with 5k Potentiometers:
@1500points I am away from my system for the day, but does that mean the "rocks" that fall on the sides are un-catchable?
correct, the first column of rocks and the last column of rocks. the edge of the player's "bucket" won't reach so they just fall to the ground.
-
@1500points Well, I tried it in both advancemame and lr-mame2003 and they both work fine with my spinner in this game. No problems hitting the hard edge of the screen. I kinda suck at that game, but the edges are within reach. It makes me wonder if there is a way to expand the range or calibrate the max and min values on your controller board.
In a two player game you share the same spinner, but that is probably perfectly emulating the way the game works. The game only ever had but one control, two serve buttons and Players 1 and 2 start buttons.
-
@1500points said in Ultimarc A-Pac with 5k Potentiometers:
--hit f4, type sudo nano /opt/retropie/configs/mame-advmame/advmame.rc
---p1 paddle set to joystick[1,0,0]hi all..
I was doing a little more testing tonight, to try and understand all the elements, slow progress but learning, and the guide above is brilliant, thanks again for taking the time to share it.
I was wondering, in the .rc file are we looking to change
input_map[p1_paddlex] //replacing "auto" with "joystick[1,0,0]"
did you add the same to player1 paddley in your set up? I am testing both and finding no good news at the moment, so trying to narrow things down.
best
Rob
-
@biglouieuk, here is specifically what is in the .rc files to make the a-pac setup work:
input_map[p1_paddlex] joystick[1,0,0]
input_map[p2_paddlex] joystick[1,0,1]
input_map[p3_paddlex] joystick[2,0,0]
input_map[p4_paddlex] joystick[2,0,1]you might want to run the input test to make sure yours is seen the same way, and double check how you wired the pots to the a-pac since that would vary the details.
In my case, the 1 and 2 in the first entry designate joystick 1 or 2 on apac.
the 0 in the middle digit just means joystick
and the last digit is 0 for x axis, 1 for y axis@caver01 I'm setting up a fresh image for use with a turbo twist 2 spinner which will tell me if avalanche behaves differently with a different device.
did you just make the paddle 1 x set to the mouse[xxxx] entries in the .rc file? -
@1500points These are the relevant entries from my .rc file:
device_raw_mousedev[0] /dev/input/mouse0 device_raw_mousedev[1] /dev/input/mouse1 device_raw_mousedev[2] /dev/input/mouse2 device_raw_mousetype[0] ps2 device_raw_mousetype[1] ps2 device_raw_mousetype[2] ps2 input_map[p1_dialx] mouse[0,x] mouse[1,x] mouse[2,x] input_map[p1_paddlex] mouse[0,x] mouse[1,x] mouse[2,x] input_map[p1_paddley] mouse[0,y] mouse[1,y] mouse[2,y] input_map[p1_stickx] mouse[0,x] mouse[1,x] mouse[2,x] input_map[p1_trackballx] mouse[0,x] mouse[1,x] mouse[2,x] input_map[p1_trackbally] mouse[0,y] mouse[1,y] mouse[2,y] input_map[p2_dialx] -mouse[0,y] -mouse[1,y] -mouse[2,y] input_map[p2_stickx] -mouse[0,y] -mouse[1,y] -mouse[2,y] input_map[p2_trackballx] mouse[0,x] mouse[1,x] mouse[2,x] input_map[p2_trackbally] mouse[0,y] mouse[1,y] mouse[2,y]
-
OK, used your Mouse setup for the X entries.
Avalanche in AdvMAME works just fine with the Turbo Twist 2. The bucket moves farther to the edges than it does using the A-Pac/Pot device input.So that particular title is a good one for Spinners (Mouse) instead of Paddle (Pots)
-
@1500points Yeah, but what I cannot tell is whether that game is using the Paddle input, or the Dial input, as I have both mapped. Do you know? Perhaps Dial works better (or differently) than Paddle? I am away from my Pi, otherwise I could test by dropping a few input_maps out of the file to see what it uses/needs.
-
Maybe just TAB and look at the input GUI menu and it will say what the control is. I suppose you might already know.
-
Tempest is Dial, Avalanche is listed as Paddle in the TAB GUI
-
@1500points Ok, I figured. My configuration in AdvanceMAME is a catch-all, as you can see. I have all inputs mapped to mouse0 1 and 2 so everything works for every ROM. There was a time, however, when I was using AdvanceMAME to run Golden Tee. For these titles, I had to specify a ROM prefix on lines to override like this:
gt2k/input_map[p1_trackbally] mouse[0,y]
For this one ROM (and several other lines like it for other ROMs) I dropped all but one of the mouse inputs for the trackball Y-axis. This was because I did not want players to CHEAT by using the spinner instead of the trackball to make a perfectly straight shot!
Anyway, this probably doesn't solve your POT/Paddle distance issue, but you could do something similar by ROM so that certain games retain your existing paddle input map while other titles can have a line to override to a mouse device.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.