Connecting old iPac - keyboard mode
-
Hi there,
I running Retropie 4.2 on a Pi3 from the pre made SD card image.
Setup so far was good. I'm interested only in emulations of Mame, C64, Gameboy and maybe Apple II and Atari 800. Very old systems which require digital 4 way joystick plus 2-4 buttons.
First I got a Xbox 360 type controller setup and working fine, but particularly for some old Mame games there is something about the joystick emulation that makes it very hard to control direction (i.e. Pacman, DonkeyKong, etc.).So I decided to try to setup my (very) old Ultimarc iPac. It must be first generation. Probably 10 years old. It acts as a keyboard (I converted it to USB). The keys sent follow the MAME standard layout (Left Ctrl=Fire1, Left Alt=Fire2, Space=Fire3, cursor keys=joy1).
When I run through the EmulationStation controller setup it is recognized as keyboard, but for some reason not all keys are detected. For example "Left Alt", which would be "B" in EmulationStation is not detected.
I'm not sure, if the Pi or the Raspian OS have other/special needs for key codes like "Left Alt", "Left Ctrl", etc, or if EmulationStation cannot detect them properly.
I cannot even rule out, that there is broken cable in the ipac, but I doubt that.Has anyone experience with such a device (very, very old Ultimarc iPac)?
Is there a way I can display key codes on the Pi? Some kind of visualisation tool, of what key press has been received?
How do I need to specify keys like "Left Alt", "Left Ctrl" if I edit the config file manually?Hope this is not a too stupid first post.
I did search here and elsewhere but couldn't find an answer.Cheers,
Robin
-
@Emacs I use an old IPAC4 with great success. It is a PS2 device by default, but came with a USB adapter--probably the same as how you are using yours. So, I am very confident you can get yours working just fine. Do you happen to recall if you ever programmed it with WinIPAC back in the day? It might be nice to know that, as you might have programmed the switches to respond differently.
In any case, WinIPAC is a good way to check your configuration, test keys etc. if you have access to a windows machine. Otherwise, I have two other suggestions:
- Try running the
advk
utility that comes with AdvanceMAME. I have not done it, but I used the similaradvm
utility to troubleshoot mouse connections. You will probably need to plug in another keyboard so you can interact with command line, but if you drop to a command prompt and try entering/opt/retropie/emulators/advmame/1.4/bin/advk
it should present some kind of running indicator of the keys being pressed. Then, start pressing your buttons and see what AdvanceMAME would be getting for inputs.
Of course, you might not actually be using AdvMAME for emulation, but this is the quickest way to a utility for testing keys that I can think of. It is also already installed AFIK.
- If you can connect a second keyboard and press TAB to get into the on-screen menus for lr-mame2003 (or advancemame for that matter), you should be able to try mapping a game's inputs for testing. Pick a button for input and try to map a key and see what comes up. lr-mame2003 should represent the input as two at once--it should register the retropad virtual input as configured in retroarch, and it should pickup the raw key. You should see both appear on the screen as you are mapping the button. This is not as nice as using the utility above, but it may be quick and easy for you.
- Try running the
-
@caver01
Thank you very much for the quick and great reply !
advk sounds exactly like the tool I was looking for, just to rule out any broken connection on the ipac. I am using lr-mame2010 for emulation though.My ipac was purchased 2003 and I'm not sure, if it could be programmed at all. It comes with the big replaceable chip instead of the Surface mounted chip the newer ones use. It has two jumper switches on the board, labelled "Mame" and "Alt".
I'll see what advk shows me. I have a Windows bootcamp partition on my MacBook, which I can use to give WinIPAC a try, if advk doesn't enlighten me.
Cheers & thank you,
Robin
-
@Emacs i am pretty sure the old ones are programmable. I have the old ones and im pretty positive i had programmed them. I actually have a spare chip because i bought two extras. I had a japanese metal neo candy machine and i had the coin slot wired up but static shock when touching the cabinet fried the chip on the ipac. So i bought two chips so i could fix it and have a spare.
-
@Emacs Here's my old IPAC4. Perfectly programmable. I really love this controller, although it is rather big.
-
It seems to be indeed a cabling issue on my side.
On the Ultimarc site they even had the old winipac software which came with my 2003 board.
I used that to test the proper function of the buttons and got the same intermittent behaviour.
So, I guess I'll be getting out the soldering iron tonight and re-wire that thing.Cheers,
Robin
-
@Emacs did you ever get the advk utility working? I am curious if that works.
-
@caver01 : yes, I did use the advk tool. Had to install AdvMame 1.4 first, because it wasn't on my pie.
Then it worked perfectly and was exactly the kind of tool I was looking for. For debugging the wiring, much better than the Winipac.
I have the whole controller rewired now and about to test it with Retropi.Cheers,
Robin
-
Just ran it through the control config and all is working fine now.
One microswitch seems to be broken, but it's not an important one.
EmulationStation works fine, Mame fine, Gameboy fine, C64 fine too - just can't figure out how to exit that one. Long press on select and then Start works fine for Mame and Gameboy though.Many thanks for the help here !
Cheers,
Robin -
@Emacs C64 emulation with VICE? I don't use it, but looking at the docs, it's not a libretro core, it is a stand-alone, so the retroarch hotkeys don't apply to that emulator. However, it looks like you can exit by pressing ESC key on a keyboard. On my cabinet, I have a dedicated button wired to my IPAC that is setup to send the ESC key, so I can get out of almost every emulator that way. Your IPAC probably has a "shift" function, and according to Ultimarc, you can engage that by holding down Player 1 START, then various keys can be pressed to issue alternate commands. Player 2 START sends ESC when shifted. So. . . you might try pressing Player1 START and Player2 START at the same time. That should send ESC from the IPAC and exit out of VICE.
Just understand that you potentially have two hotkey mechanisms going on here. In RetroArch games, you have the actual hotkeys you have been using to exit MAME and Gameboy, but your controller's shift function works in a similar way. The RetroArch hotkey only applies when you are running a libretro core emulator, but the Ultimarc shift function is always enabled (unless you changed it using the WinIPAC utility).
-
@caver01 thanks again. I read a bit now and I think I understand the role of retroarch, acting as an interface between emulationstation and the various emulators.
That clears up a lot!
You are right about the shift function on my ipac too.
But I cannot end the Vice version on Retropie - even when using a keyboard. I need to open the vice menu (F12) and then navigate to "Quit vice".
But it's okay. For C64 emulation I find myself grabbing for the keyboard quite often.Cheers,
Robin
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.