Raspberry Pi 4

For information, Recalbox IS NOT compatible with Raspberry Pi 4 yet.
Pour information, Recalbox N'EST PAS encore compatible avec le Raspberry Pi 4.

The Recalbox Team.

Freeplay CM3 GBA clone Kit.


  • Banned

    @Substring
    I have the impression that this object dont accept arguments for map other as 1,2.
    I am always somewhere astonished about in general software in Linux, as parameter files seems to be an acknowledged territory. I was about long time ago making with my team software for bigger companies, it was never software that had constant values inside that could at a certain moment change. By hardware or environnement. :)


  • Banned

    @Substring
    Other thing on the schedule was the 3.2" waveshare tft screen, and this was a straight, because not necessary to use ED's driver, the waveshare32b.dtbo in /boot/overlays is working fine.


  • Banned

    Something else that I found out about this tiny waveshare displays, there are too much parameters in the description :)
    If you just limit to the 3 not out commented, you have lcd screen + hdmi output all together, It seems to me that somebody was already asking this.

    #Waveshare 3.2 TFT Screen
    #same resolution for hdmi and tft
    #hdmi_force_hotplug=1
    #hdmi_group=2                
    #hdmi_mode=1                 
    #hdmi_mode=87                
    hdmi_cvt=320 240 60 1 0 0 0
    dtparam=spi=on              
    dtoverlay=waveshare32b:rotate=270,speed=82000000,fps=60
    

  • Staff
    Moderator
    Creator
    Team

    @dragu of course it is working fine, we put it here for this ;)


  • Staff
    Moderator
    Creator
    Team

    @dragu I have a lot of work right now... so I cannot answer whenever I want, sorry.

    For your problem, you need to pur the gpio config right in a conf file because the recalbox scripts do not take into account the gpio parameter from the recalbox.conf config file.

    Add the module in /etc/module.conf file

    snd_bcm2835
    uinput
    usbhid
    mk_arcade_joystick_rpi
    

    and create /etc/modprobe.d/mk_arcade_joystick.conf file with your parameters :

    blacklist ads7846 
    #options mk_arcade_joystick_rpi map=1,2
    # gpio with button order: Y-,Y+,X-,X+,start,select,a,b,tr,y,x,tl
    options mk_arcade_joystick_rpi map=5 gpio=4,17,6,5,19,26,16,24,23,18,15,14,20,-1
    

    It should work for now...
    the next release of recalbox should handle the gpio parameter in recalbox.conf


  • Banned

    @ian57
    Be assured that I appreciate your and all other work in this non-profit organization for rotten gamblers.
    I will test in the next hour, the GBA becomes adult only when it sounds through the speaker, "Shake it baby" ;)


  • Banned

    @ian57
    I just tested, but he still dont want to load the driver. The file in /etc/modprobe.d was already existing before, but also he refused already than to load the driver by modprobe. That seems the biggest problem, but when I put him map=1 or map=1,2 in recalbox.conf, he load the driver without other order, but with the basic gpio as always.

    modprobe mk_arcade_joystick_rpi

    modprobe: can't load module mk_arcade_joystick_rpi (extra/mk_arcade_joystick_rpi.ko): Invalid argument



  • @dragu once again : the current recalbox-config.sh won't handle anything behind map=5 from the recalbox.conf. That's why ian suggested to manyally force the load ofnthe module. This also mean you must disable it in the recalbox.conf


  • Banned

    @Substring
    I am not sure about this. I just changed in recalbox.conf all the relations to the gpio-controller as following

    # ------------ D2 - GPIO Controllers ------------ #
    ## GPIO Controllers
    ## enable controllers on GPIO with mk_arcarde_joystick_rpi (0,1)
    #controllers.gpio.enabled=1
    ## mk_gpio arguments, map=1 for one controller, map=1,2 for 2 (map=1,map=1,2)
    #controllers.gpio.args=map=5
    

    but nothing changed, no driver loaded.
    with in modules.conf

    snd_bcm2835
    uinput
    usbhid
    mk_arcade_joystick_rpi
    

    and the driver is here

    sftp://root@Freeplay/lib/modules/4.4.13-v7/extra/mk_arcade_joystick_rpi.ko 14`972
    


  • @dragu have you added the file that ian mentionned ?


  • Staff
    Moderator
    Creator
    Team

    @Dragu you should test with modprobe :

    modprobe mk_arcade_joystick_rpi map=5 gpio=4,17,6,5,19,26,16,24,23,18,15,14,20,-1
    

    and double check that you are really using the mk_arcade module from @Substring ... the master version with HK management included


  • Banned

    @ian57
    As I made over 20 years of software development as teamleader, you can imagine that I am able to follow 3 simple instructions. :)
    So, the driver file is exactly what @Substring linked for download, installed on the right place and with the right length (as you see in my sftp line from before)
    Modprobe is not functioning with this ko, with or without parameters, so result

    # modprobe mk_arcade_joystick_rpi map=5 gpio=4,17,6,5,19,26,16,24,23,18,15,14,20,-1
    modprobe: can't load module mk_arcade_joystick_rpi (extra/mk_arcade_joystick_rpi.ko): Invalid argument
    

  • Staff
    Moderator
    Creator
    Team

    @Dragu I think it comes from the parameter. @Substring which release of module did you send to Dragu? Master with HK or only master?



  • @ian57 HK patched with the patch we've tested 2 minths ago to make the hotkeybtn on par with master


  • Banned

    @ian57
    @Substring
    Concerning the Freeplay GPIO layout, there are 2 common pins with MAP 1. It is Up,4, and Down,17. So with this both existing pins for old and new mk_arcade_joystick_rpi.ok ( old -> length = 11864, new compiled ->length = 14972 MAP 1 is functioning and driver loaded.
    Could it be that the blocking of other maps is in the script recalbox-config.sh ?
    I mean second part with rmmod.

    if [ "$command" == "gpiocontrollers" ];then
        command="module"
        mode="load"
        extra1="mk_arcade_joystick_rpi"
        extra2="map=1,2"
    fi
    
    if [ "$command" == "module" ];then
        modulename="$extra1"
        map="$extra2"
        # remove in all cases
        rmmod /lib/modules/`uname -r`/extra/${modulename}.ko 2>&1 | recallog
    
        if [ "$mode" == "load" ];then
            echo "`logtime` : loading module $modulename args = $map" 2>&1 | recallog
            insmod /lib/modules/`uname -r`/extra/${modulename}.ko $map 2>&1 | recallog
        [ "$?" ] || exit 1
        fi
        exit 0
    fi
    


  • @dragu as i said : the script diesn't handle enough parameters yet. Check ~/logs/recalbox.log you'll get some details


  • Banned

    @Substring

    [       14.39] enabling mk_arcade_joystick_rpi
    [       14.36] updated wifi settings : ssid=
    [       14.42] ---- recalbox-config.sh ----
    [       14.46] rmmod: can't unload module 'mk_arcade_joystick_rpi': No such file or directory
    [       14.51] [       14.48] : loading module mk_arcade_joystick_rpi args = map=4
    

    As you see, I tried with 4, he loaded the driver, but other chaotic mapping. Minimum some advance.



  • @dragu it's not taking further parameters, we had that problem with ian already. But still, manually loading it should work


  • Banned

    @Substring
    I think I will take a big hammer, or stay with retropie. The whole story is crazy.
    Just to repeat :

    1. Calling mk_arcade_joystick_rpi map=1 (1,2) from recalbox.conf loads the driver (with in this case wrong gpio's)
    2. Not calling mk_arcade_joystick_rpi in recalbox.conf but trying to load it under modprobe mk_arcade_joystick_rpi (all map=x) load the driver under NO condition, always argument error, also with map=1 or map=1,2.
    3. This driver dont load under modprobe in Recalbox. Point.
    4. Modifying recalbox-config.sh brings nothing, so somewhere in this piece of software is mess.

  • Banned

    @Substring
    @ian57
    YEAH ! I have it.
    I was just modifying S26recalboxsystem and recalboxsystem.sh to make the animal accept map=5. But first with no result.
    So, I started modprobe with option -D and that was the beginning of the solution

    # modprobe -D mk_arcade_joystick_rpi
    insmod /lib/modules/4.4.13-v7/extra/mk_arcade_joystick_rpi.ko map=5 gpio=4,17,6,5,19,26,16,24,23,18,15,14,23,-1
    

    Because this showed that he correctly found the definitions in modprobe.d.
    After I remember the argument story. Perhaps something wrong here, and that was really the problem, it was necessary to crop last parameter from

    options mk_arcade_joystick_rpi map=5 gpio=4,17,6,5,19,26,16,24,23,18,15,14,23,-1
    

    to

    options mk_arcade_joystick_rpi map=5 gpio=4,17,6,5,19,26,16,24,23,18,15,14,23
    

    he just accept 13 gpio definitions, not 14
    and now, problem resolved, all keys working on Freeplay GBA :)
    As you see with 23, I put Hotkey on R1, right shoulder button. Because he is otherway unused in Recalbox. And it works also.
    Time to move to next story :)

    I also arrived to load the driver in recalbox.conf.
    But first I modified back, recalbox-config.sh and S26recalboxsystem, not necessary anymore. I am sure other people will need at a certain moment this :

    
    # ------------ D2 - GPIO Controllers ------------ #
    ## GPIO Controllers
    ## enable controllers on GPIO with mk_arcarde_joystick_rpi (0,1)
    controllers.gpio.enabled=1
    ## mk_gpio arguments, map=1 for one controller, map=1,2 for 2 (map=1,map=1,2)
    controllers.gpio.args="map=5 gpio=4,17,6,5,19,26,16,24,23,18,15,14,23"
    
    

Log in to reply
 

Want to support us ?

399
Online

68175
Users

18964
Topics

141662
Posts

Looks like your connection to Recalbox Forum was lost, please wait while we try to reconnect.