Freeplay CM3 GBA clone Kit.
-
I will try to continu in English from now on, as @Flavor (Ed Mandy, the project leader) will otherway not be able to read here.
I advance, so first I found in my stock an unpowered USB Hub working for Wifi+USB keyboard. I dont wanted to use a powered Hub, I have only one Freeplay CM3I also understand functioning off the power momentary switch. In general you must hold it till the green led comes on. This was not working in Recalbox, and the reason is simple. The gpio 20 must be activated during loading of the system, to maintain the power. I resolved this for the moment with an entrance in config.txt.
dtoverlay=gpio-shutdown,gpio_pin=20,active_low=0,gpio_pull=down
And for shutdown, same procedure with desactivation. Therefore I badly needed for Recalbox my tooth stick.....
So, this should be in start and shutdown shells, peanuts and I will make this in near future.
But first, I must have the GBA-box on my local network, I think my job from today. -
@Substring
Allez la France, a... bad, channel, excuse. So I have now connected keyboard, Wifi and hdmi screen, together with Recalbox 180330 (that I know). The waveshare display is not my issue for the moment, I dont think this would be a major problem.. But all games works fine ! With sound from speaker. And no software errors at all. So I am now on the gamepad, that Recalbox dont recognize. I was stealing the Retropie version of modified mk_arcade_joystick.ko and installed it in /lib/modules/4.4.13-v7/extra and /lib32/modules/4.4.13-v7/extra. I also copied es_input.cfg modified with the Freeplay GPIO into recalbox/share/system/.emulationstation and same with share_init...
But he cannot find always the gamepad. So, I am swimming and as I have the source for mk_arcade_joystick.ko, maybe because it is an 4.14 version, it dont run under 4.4. ? But it is C so may be compiler difference or other problem. I dig further. -
@dragu kernel modules are valid for the X.Y branch, don't expect them to run on a different version
-
@Substring
I keep digging, finding the apple under the bananas. -
@Substring
Yes, and after control I can confirm that the actual version in Recalbox is 4.9.4 A and seems to work with PIx GPIO connections to controller. So there should be a solution. Its basically a C Program loaded as object in run-time by the kernel. -
@Substring
I think that the actual installed mk_arcade_joystick_rpi.ko that works on PI3 should also work on CM3. Problem, the GPIO is different, so I ask myself where to configurate this. I have in etc/modprobe.de a file mk_arcade_joystick.conf, described also with the kernel object. And insideoptions mk_arcade_joystick_rpi map=4 gpio=4,17,6,5,19,26,16,24,23,18,15,14,-20,-1,-1,-1,-1 hkmode=2 options mk_arcade_joystick_rpi map=4 gpio=4,17,6,5,19,26,16,24,23,18,15,14,-20,-1,-1,-1,-1 hkmode=2
Problem also, map=4 seams strange to me. I think @LumberJack could help here, because he is the keeper of mk_arcade_joystick_rpi.ko.
-
@dragu the most probable reason is that the ko included in freeplaytch/retropie is not the hotkey branch that we are using, but the master branch, which has different options. I should sooner upgrade the hotkey branch that will have the same features as the master branch (tested by @ian57 and myself). I may compile one for you if you wish
-
@Substring
I compared an older Freeplaytech image from 21.03.18 and the .ko is exactly the same as we use in Recalbox, I made Hex compare and length also 11864, so it should work with basic gpio buttons. In this case, in /etc/modprobe.d/mk_arcade_joystick.conf you have thisoptions mk_arcade_joystick_rpi map=4 gpio=4,17,6,5,19,26,16,24,23,18,15,14,-20
Later on he recompiled mk_arcade_joystick_rpi.c with own modifications. But this could just be a second step. Normal buttons should work as they work for PI3 also. now GPIO is different, where he knows this and than you have in the description from mk_arcade_joystick_rpi :
Then create the file
/etc/modprobe.d/mk_arcade_joystick.conf
:sudo nano /etc/modprobe.d/mk_arcade_joystick.conf
and add the module configuration :
options mk_arcade_joystick_rpi map=1,2
With my basic knowledge of Linux, I am hanging, but I believe that it is before all a configuration problem.
-
@Substring
And exactly when I was writing, I have some reactions on the GBA buttons ! Some wrong but it begins to work, yeah ! The apple is near. -
@Substring
@LumberJack
So, for the daily report. I have always the problem that I dont arrive to register my own gpio schematics in Recalbox. By chance vertical axe from standard Recalbox is the same in Freeplay, so this works. And with sdl2-jstest he show me :Joystick Name: 'GPIO Controller 1' Joystick Path: '/dev/input/event2' Joystick GUID: 15000000010000000100000000010000 Joystick Number: 0 Number of Axes: 2 Number of Buttons: 9 Number of Hats: 0 Number of B***s: 0 GameController: not a gamepad Axis code 0: 0 Axis code 1: 1 Button code 0: 304 Button code 1: 305 Button code 2: 307 Button code 3: 308 Button code 4: 310 Button code 5: 311 Button code 6: 314 Button code 7: 315 Button code 8: 316
In /etc/modprobe.d I have mk_arcade_joystick,conf (and also under name mk_arcade_joystick_rpi.conf this line
options mk_arcade_joystick_rpi map=4 gpio=4,17,6,5,19,26,16,24,23,18,15,14,-20
But I dont arrive to register in /dev/input/js0.
Also if I indicate in recalbox.conf map=4, what should be legal after the github description# ------------ 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=4
Recalbox dies with kernel panic, this should be an issue in Recalbox.
So, my only chance, I think, to redefine it under map=1. That's it for the moment. -
@dragu said in Freeplay CM3 GBA clone Kit.:
map=4 gpio=4,17,6,5,19,26,16,24,23,18,15,14,-20
this is what you'd add in te line. But:
- not yet handled
- our KO doesn't handle custom mappings. this is why told you i'd compile one for you
-
@Substring
Thanks, that is an answer. The problem, github is a horror of software version management, you dont find no old sources. In the Freeplay support files that are inside the .IMG release, I have the latest source versions from him also with hotkey modifications. If it could help you :
http://zclub.eu/Freeplayhome.7z -
@dragu said in Freeplay CM3 GBA clone Kit.:
The problem, github is a horror of software version management
it's the best one ever, trust me. You just need ot learn how to use it.
Here is an upgraded hk version of the driver. Use
map=5 gpio=4,17,6,5,19,26,16,24,23,18,15,14,20,-1
-
@Substring
So quick ? Thanks alot for your work, I will give feedback in short.
In between one picture from my testing place, Hub with keyboard and Wifi stick, HDMI mini to HDMI-HDMI to VGA adapter and power supply -
@dragu sexy !
-
@Substring
I am on the way to reload the system after the crash. Also concerning mk_arcade_joystick_rpi, there is some confusion about the file in /etc/modprobe.d
Described in github is mk_arcade_joystick.conf, but it seems that mk_arcade_joystick_rpi.conf is the good one, as what you read in the web. Logical, no ? -
@Substring
There is no crash anymore with map=5 in recalbox.conf. Concerning mk_arcade_joystick_rpi.ko, I tried out with both versions of the .conf file in /etc/modprobe.d, but evtest fails to find a controller. -
@dragu check with lsmod if it's loaded + don't load it through recalbox.conf, it doesn't take all parameters.
rmmod
the ko, then manuallymodprobe
it with your parameters -
@Substring
Hi friend, in lsmod the driver is not existing (was there before) and with modprobe I have following feedback# # modprobe mk_arcade_joystick_rpi map=5 # modprobe: can't load module mk_arcade_joystick_rpi (extra/mk_arcade_joystick_rpi.ko): Invalid argument
-
@Substring
Some more small info. If I put him map=1 (I suppose same with 1,2) in recalbox.conf, the driver is loaded correctly as with the version before and also same behavior.