Raspicade-Retrogame-2Player-Pi2 + Advance Mame = ...
  • Anyone out there having any trouble with latest incarnation of the Retrogame controller utility not playing nice with advMame? Tried the old B+ version on my Pi2 and that fires up Roms okay but this one doesnt seem to unless i edit the /home/pi/.advance/advmame.rc

    This is the error I'm getting:
    invalid argument 'keyboard[1,scan0] or keyboard[0,lctrl]' for option 'input_map[p1_button4]'.
    Invalid key 'lctrl'.
    Valid format is keyboard[BOARD, KEY]/joystick_button[JOYSTICK,BUTTON]/mouse_button[MOUSE,BUTTON]

    Once i edit the "lctrl" key in advmame.rc it fires up okay but the button allocations are all over the place and unusable.

    Posted about this in another thread but the issue has evolved some so thought I'd start a new thread.

    Thanks


  • The problem is the formatter, not retrogame. pygame reports it as 'left ctrl', but advmame needs it to be reported as 'lcontrol'. I'll get it fixed.
  • Ah great. Thanks very much.
  • How do you edit keys in advmame.rc? I am having the same issue with the invalid key 'lctrl'.
  • I'd wait till the formatter is fix but if you cant wait.


    for right now, if you just go into /home/pi/.advance/advmame.rc

    so sudo nano /home/pi/.advance/advmame.rc

    that should fix it (it will revert back if you use the controller config again though)
  • like TheStrayMongrel said, nano /home/pi/.advance/advmame.rc
    change 'lctrl' to 'lcontrol'
  • Ah beautiful, changing "lctrl" to "lcontrol" has totally fixed the controller issue @mholgatem, thanks very much!

    There was one further question i have about the key allocations. The PiPlay controller config calls for a button to be allocated for "exit program". By this time I'm all out of buttons and by giving one button two functions it seems to stuff it up (and button combinations dont seem to work). Is there a way to get rid of this option seeing that the Retrogame config has this functionality built into a prelonged press of the start and coin button?

    Also once i get the dialogue up for the quit game i can scroll through the "exit or continue" but dont seem to be able to select either of them. What should i be pressing to activate the quit game?

    Thanks again
  • retrogame's 'vulcan pinch' is just the same as the 'escape' key. The piplay controller config is based on the 'key_up' event. so you should be able to just assign the vulcan pinch to the 'exit_program'. If that doesn't work, I have a modified version on my github repository that allows for 6 combo buttons (with no waiting). you can grab it here: https://github.com/mholgatem/gpio-controller
  • Okay thanks @mholgatem will check it out. Any ideas why I'm unable to selected an option (continue or exit) after opening the exit_program dialogue box?
  • no, I'm not sure. I'll have to look into it.
  • Okay so comparing your config and the original one was a great insight into what I had to change and the like @mholgatem, so thanks for that. Got in and got my hands dirty and adjusted it all to suit.. then stumbled at the final hurdle when trying to "make" the file.

    Gave me this error:
    gcc -Wall -03 -fomit-frame-pointer -funroll-loops -s retrogame.c -o retrogame
    retrogame.c:166:55: error: expected ')' before ';' token
    Makefile:8: recipe for target 'retrogame' failed
    make: *** [retrogame] Error 1

    Everything looks okay in the script, any ideas?

    Thanks
  • ok, so the important line in all of that is this:
    retrogame.c:166:55: error: expected ')' before ';' token
    the error occurs at line 166, column 55. You are missing a closing parenthesis ')'. So check around that area and count up all of the opening parenthesis '(' and make sure that there is a closing one for each as well.
  • Hmm yeah strange though in that the line of code at 166 looks like this, exactly the same as the line above and below (bar the GPIO pin positions) and all seems okay. Would that strangely need to be different than the others for the others, surely not?

    const unsigned long comboMask2 = (1L << 16) | (1L << 32);
  • The error is just catching at 166, so it may be that a closed parenthesis is missing somewhere before that. you can email me the code that you have and I'll take a look at it for you.
    holgate.mark1@gmail.com
  • Will do when i get home from work. Thank you.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!