# GamePi20/Joy Bonnet/Picade collaboration

**URL:** <https://forum.makecode.com/t/gamepi20-joy-bonnet-picade-collaboration/9211>\
**Category:** Collaboration\
**Created:** [July 15, 2021, 4:53am UTC](https://forum.makecode.com/t/gamepi20-joy-bonnet-picade-collaboration/9211 "2021-07-15T04:53:23Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![Vegz78](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/vegz78/32/1201_2.png) [@Vegz78](https://forum.makecode.com/u/Vegz78)\
**Post date:** [July 15, 2021, 4:53am UTC](https://forum.makecode.com/t/gamepi20-joy-bonnet-picade-collaboration/9211/1 "2021-07-15T04:53:23Z")

</div>

Hi,

I am looking for people to collaborate with to figure out how to configure and test the use of the [GamePi20](https://www.waveshare.com/wiki/GamePi20)(GPIO), [Joy Bonnet](https://www.adafruit.com/product/3464)(GPIO) and [Picade](https://shop.pimoroni.com/products/picade?variant=29210087489619)(?) DIY Arcade controllers for use with MakeCode Arcade games running natively on Raspberry Pis(Zero etc.), launched from RetroPie or RecalBox using the McAirpos launcher.

I don’t have easy access to these controllers myself and they seem to be pretty common and in demand for DYI Arcade he projects with MakeCode.

Any help is greatly appreciated and I will follow up to the best of my abilities.

Please join or create a corresponding issue here at GutHub for easier collaboration:

> **[Vegz78/McAirpos](https://github.com/Vegz78/McAirpos/issues?q=is:issue%2Bgamepi20%2BOR%2Bbonnet%2BOR%2BPicade%2B)**
>
> MakeCode Arcade games in RetroPie and Recalbox 7.1.1-Reloaded!, running natively as ELF executables on Raspberry Pi OS with 1-2 gamepads - Vegz78/McAirpos

---

<div class="post-metadata">

**Author:** ![Vegz78](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/vegz78/32/1201_2.png) [@Vegz78](https://forum.makecode.com/u/Vegz78)\
**Post date:** [July 15, 2021, 4:09pm UTC](https://forum.makecode.com/t/gamepi20-joy-bonnet-picade-collaboration/9211/2 "2021-07-15T16:09:12Z")

</div>

Forgot to mention the [Retroflag GPi CASE](https://retroflag.com/GPi-CASE.html)(GPIO), which I have encountered quite frequently.

It would also be great to achieve a configuration for and test with MakeCode Arcade games and McAirpos!

Hopefully/Maybe they are so similar in their controller interface, that if we get one working, it will also work for the other ones with no or little modification. Anyways, I am guessing the knowledge of one at least will go a long way in helping with configuring the others.

Hope to hear from someone with any of these popular devices!

---

<div class="post-metadata">

**Author:** ![Vegz78](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/vegz78/32/1201_2.png) [@Vegz78](https://forum.makecode.com/u/Vegz78)\
**Post date:** [July 30, 2021, 5:51am UTC](https://forum.makecode.com/t/gamepi20-joy-bonnet-picade-collaboration/9211/3 "2021-07-30T05:51:28Z")

</div>

The GamePi20 handheld GPIO controller now confirmed working with McAirpos:

> <https://github.com/Vegz78/McAirpos/issues/18#issuecomment-889184610>
>
> I have a problem. I have gamepi20 and i would like to run some MakeCode games on… it. I installed McAirpos from git as you described: curl -sL https://raw.githubusercontent.com/Vegz78/McAirpos/master/install.sh | bash -
> 
> Everything installed fine. But after running game I see dark screen and after about 15 seconds retropie shows game select menu again.
> 
> Anyone has the same problem? I tried to running games on built in screen and i connect monitor wiht HDMI and the problem is still occurs.

Thanks to the GitHub user @marjian88 for collaborating and testing!

Anyone with a popular Joy Bonnet, Picade, Retroflag GPi CASE, or maybe the fun [PSPi](https://othermod.com/category/projects/) who would like to collaborate on getting them working with MakeCode Arcade games, or already have successful experiences with them that they would like to share with the community, please open a respective issue at the [McAirpos GitHub repo](https://github.com/Vegz78/McAirpos)!

---

<div class="post-metadata">

**Author:** ![Vegz78](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/vegz78/32/1201_2.png) [@Vegz78](https://forum.makecode.com/u/Vegz78)\
**Post date:** [September 2, 2021, 9:35pm UTC](https://forum.makecode.com/t/gamepi20-joy-bonnet-picade-collaboration/9211/4 "2021-09-02T21:35:05Z")

</div>

Happy to announce that the popular Picade DIY arcade controller today was confirmed working with McAirpos!:

> <https://github.com/Vegz78/McAirpos/issues/22#issuecomment-911939494>
>
> thanx for this great tool!
> I try to get my games up and running on a picade and… retroflag GPi case.
> 
> So far, I go with the picade, since I get the games at least up and running. I see the start screen with animations and hear sound.
> 
> But my input will not work. Not a single button.
> 
> What I've done so far:
> 
> used evtest to find out which scan codes I need:
> 
> \`\`\`
> evtest
> No device specified, trying to scan all of /dev/input/event\*
> Not running as root, no devices may be available.
> Available devices:
> /dev/input/event0: gpio\_keys
> Select the device event number \[0-0\]: 0
> Input driver version is 1.0.1
> Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100
> Input device name: "gpio\_keys"
> Supported events:
> Event type 0 (EV\_SYN)
> Event type 1 (EV\_KEY)
> Event code 1 (KEY\_ESC)
> Event code 23 (KEY\_I)
> Event code 24 (KEY\_O)
> Event code 28 (KEY\_ENTER)
> Event code 29 (KEY\_LEFTCTRL)
> Event code 42 (KEY\_LEFTSHIFT)
> Event code 44 (KEY\_Z)
> Event code 45 (KEY\_X)
> Event code 56 (KEY\_LEFTALT)
> 
> Event code 57 (KEY\_SPACE)
> 
> Event code 103 (KEY\_UP)
> 
> Event code 105 (KEY\_LEFT)
> Event code 106 (KEY\_RIGHT)
> Event code 108 (KEY\_DOWN)
> Event code 116 (KEY\_POWER)
> \`\`\`
> 
> configures my \`/sd/arcade.cfg\` according to this map:
> 
> \`\`\`
> SCAN\_CODES=/dev/input/event0
> BTN\_LEFT=105
> BTN\_RIGHT=106
> BTN\_UP=103
> BTN\_DOWN=108
> BTN\_A=29
> BTN\_B=56
> BTN\_LEFT2=0
> BTN\_RIGHT2=0
> BTN\_UP2=0
> BTN\_DOWN2=0
> BTN\_A2=0
> BTN\_B2=0
> BTN\_RESET=28
> BTN\_EXIT=1
> BTN\_MENU=23
> \`\`\`
> 
> use the \`nomap\` option to start the games.
> Still, nothing happends. Any Idea?
> 
> \`\`\`
> /home/pi/McAirpos/McAirpos/uinput-mapper/input-read -v -p /dev/input/event0
> Input: 0 Type: EV\_KEY
> KEY\_ESC → (\[0, EV\_KEY\], KEY\_ESC)
> KEY\_UP → (\[0, EV\_KEY\], KEY\_UP)
> KEY\_LEFT → (\[0, EV\_KEY\], KEY\_LEFT)
> KEY\_LEFTSHIFT → (\[0, EV\_KEY\], KEY\_LEFTSHIFT)
> 
> SCAN\_CODES=/dev/input/event0
> KEY\_Z → (\[0, EV\_KEY\], KEY\_Z)
> 
> KEY\_X → (\[0, EV\_KEY\], KEY\_X)
> KEY\_LEFTALT → (\[0, EV\_KEY\], KEY\_LEFTALT)
> KEY\_POWER → (\[0, EV\_KEY\], KEY\_POWER)
> KEY\_RIGHT → (\[0, EV\_KEY\], KEY\_RIGHT)
> KEY\_DOWN → (\[0, EV\_KEY\], KEY\_DOWN)
> KEY\_I → (\[0, EV\_KEY\], KEY\_I)
> KEY\_O → (\[0, EV\_KEY\], KEY\_O)
> KEY\_SPACE → (\[0, EV\_KEY\], KEY\_SPACE)
> KEY\_ENTER → (\[0, EV\_KEY\], KEY\_ENTER)
> KEY\_LEFTCTRL → (\[0, EV\_KEY\], KEY\_LEFTCTRL)
> 
> \`\`\`
> 
> and here are the logs (\`/tmp/McAirpos.log\`):
> 
> \`\`\`
> nomap argument detected,
> launCharc starting /home/pi/RetroPie/roms/makecode/arcade-Brick-Breaker2.elf with no automatic gamepad mappings...
> \[-1607608811\] GC block 16376b @ 0x20000000
> \[0\] runtime starting, pid=31899...
> \[17\] FB: BCM2708 FB at 640x480 640x960 bpp=32
> \[31\] FB: BCM2708 FB at 640x480 640x960 bpp=32 2560
> \[49\] init keys
> \[49\] read config: /sd/arcade.cfg
> \[97\] SCAN\_CODES=/dev/input/event0
> \[113\] BTN\_LEFT=105
> \[128\] BTN\_RIGHT=106
> \[143\] BTN\_UP=103
> \[158\] BTN\_DOWN=108
> \[174\] BTN\_A=29
> \[202\] BTN\_B=56
> \[217\] BTN\_LEFT2=0
> \[232\] BTN\_RIGHT2=0
> \[248\] BTN\_UP2=0
> \[263\] BTN\_DOWN2=0
> \[278\] BTN\_A2=0
> \[293\] BTN\_B2=0
> \[309\] BTN\_RESET=28
> \[324\] BTN\_EXIT=1
> \[339\] BTN\_MENU=23
> \[355\] config done
> \[370\] sx=4 sy=4 ox=0 oy=0 32=1
> \[385\] fbuf=0x76235000 sz:1228800
> \[403\] loop
> \[424\] GC block 16376b @ 0x20004000
> \[1316\] PCM name: 'default'
> \[1333\] PCM state: PREPARED
> \`\`\`

Thank you very much to the [MakeCode Arcade fan](https://twitter.com/RalfDMueller/status/1431538625502711808) and GitHub user [@rdmueller](https://github.com/rdmueller) for all his help and testing!

He has also hinted that he might make a go at getting the Retroflag GPi case’s controller to work with MakeCode Arcade games on the Raspberry Pi with McAirpos, so stay tuned!

Still hoping for help in a [new Github issue](https://github.com/Vegz78/McAirpos/issues?q=is%3Aissue+is%3Aclosed) for each of these controllers:

- Joy Bonnet
- Retroflag GPi
- PSPi (Othermod reports “_…there might not be much work needed to make it work on my setup. I’m running basically stock RetroPie with a custom controller driver, and the driver is compatible with just about everything out there…_”)

Maybe also @Neslou soon will write two summaries for us of his [experiences with the GPi and the PSPi](https://forum.makecode.com/t/makecode-arcade-on-recalbox/5914/3)?

---

<div class="post-metadata">

**Author:** ![Vegz78](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/vegz78/32/1201_2.png) [@Vegz78](https://forum.makecode.com/u/Vegz78)\
**Post date:** [December 17, 2021, 4:18pm UTC](https://forum.makecode.com/t/gamepi20-joy-bonnet-picade-collaboration/9211/5 "2021-12-17T16:18:05Z")

</div>

The very helpful @redmueller stepped up to the challenge once again and offered a lot of valuable help on getting McAirpos and MakeCode Arcade games to run with controller support on the Retroflag GPi case running the newest Recalbox version 8.0.

I am happy to convey that all the GPi buttons minus the in-game menu button seem to be detected out of the box and are tested successfully!:

> <https://github.com/Vegz78/McAirpos/issues/28>
>
> Once again with the great and valuable help from @rdmueller during our work on u…pgrading uinput-mapper with Python 3.x support and getting MakeCode Arcade(MCA) games to run with McAirpos on Recalbox version 8.0, I am happy to announce that McAirpos has been tested successfully to work out of the box with button mappings for the Retroflag GPi case!
> 
> The only missing button is the MCA games' in-game menu button.
> 
> This missing button and possible future optimizations in a custom \_arcade1.py\_ script tailored for the GPi for best performance might be uploaded and announced here in the future.
> 
> Stay tuned and thank you very much, @rdmueller!!!

Now, the remaining controllers in this thread for which verified button support is still missing are:

- Joy Bonnet
- PSPi

Anyone else who wants to help/collaborate further?

---

<div class="post-metadata">

**Author:** ![MrFranko](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/mrfranko/32/6920_2.png) [@MrFranko](https://forum.makecode.com/u/MrFranko)\
**Post date:** [October 1, 2022, 9:36pm UTC](https://forum.makecode.com/t/gamepi20-joy-bonnet-picade-collaboration/9211/6 "2022-10-01T21:36:30Z")

</div>

Hi, thanks for your great extension, I was able to test it on Waveshare Game Hat with Raspberry Pi 3 running RetroPie, all buttons are working fine 🤘, unfortunately only from console, because MakeCode is not showing in EmulationStation. I checked all your install steps twice, MakeGame folder was created with permission, es\_systems.cfg was updated , theme was updated.  
Any idea what can i check?

---

<div class="post-metadata">

**Author:** ![Vegz78](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/vegz78/32/1201_2.png) [@Vegz78](https://forum.makecode.com/u/Vegz78)\
**Post date:** [October 3, 2022, 5:21pm UTC](https://forum.makecode.com/t/gamepi20-joy-bonnet-picade-collaboration/9211/7 "2022-10-03T17:21:54Z")

</div>

Due to often long moderation times on this forum, could I please ask you to create an issue here instead, @MrFranko?

> **[Issues · Vegz78/McAirpos](https://github.com/Vegz78/McAirpos/issues)**
>
> MakeCode Arcade games in RetroPie, Recalbox 7/8 and Batocera, running natively as ELF executables on Raspberry Pi OS/Linux ARM with 1-2 gamepads - Issues · Vegz78/McAirpos

---

<div class="post-metadata">

**Author:** ![MrFranko](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/mrfranko/32/6920_2.png) [@MrFranko](https://forum.makecode.com/u/MrFranko)\
**Post date:** [October 5, 2022, 8:25pm UTC](https://forum.makecode.com/t/gamepi20-joy-bonnet-picade-collaboration/9211/8 "2022-10-05T20:25:19Z")

</div>

I will check different RetroPie distribution and then contact you by GiHub 👍

BTW, is this forum dead? 👻 💀 I can see that posts are approved once a day, or after weekend 🤔 🙄

---

<div class="post-metadata">

**Author:** ![Vegz78](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/vegz78/32/1201_2.png) [@Vegz78](https://forum.makecode.com/u/Vegz78)\
**Post date:** [January 5, 2023, 12:34am UTC](https://forum.makecode.com/t/gamepi20-joy-bonnet-picade-collaboration/9211/9 "2023-01-05T00:34:41Z")

</div>

By the way, the PiBoy with a RPi4 would also be cool to test with MakeCode Arcade games!

-If anyone wants to try, please create such an issue at the McAirpos repo on GitHub. 😉

---

<div class="post-metadata">

**Author:** ![Vegz78](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/vegz78/32/1201_2.png) [@Vegz78](https://forum.makecode.com/u/Vegz78)\
**Post date:** [January 5, 2023, 12:34am UTC](https://forum.makecode.com/t/gamepi20-joy-bonnet-picade-collaboration/9211/10 "2023-01-05T00:34:43Z")

</div>

Happy new year!

Any luck with your Waveshare Game Hat on the Raspberry Pi 3 running RetroPie, @MrFranko?

---

<div class="post-metadata">

**Author:** ![Vegz78](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/vegz78/32/1201_2.png) [@Vegz78](https://forum.makecode.com/u/Vegz78)\
**Post date:** [January 6, 2023, 5:51pm UTC](https://forum.makecode.com/t/gamepi20-joy-bonnet-picade-collaboration/9211/11 "2023-01-06T17:51:59Z")

</div>

By the way, anybody who knows what microchip is hiding inside generic no-brand devices like these, and if they could run Linux/MCA games?

 ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/2X/2/2b7f88f7067eb524d1e59759a406f32e7021bcdd.jpeg)  
Source: [https://www.netonnet.no/art/gaming/spillogkonsoll/ovrig/others-ob-2-6-8-bit-portable-gaming-240-in-1-white/1024807.17573/](https://www.netonnet.no/art/gaming/spillogkonsoll/ovrig/others-ob-2-6-8-bit-portable-gaming-240-in-1-white/1024807.17573/)
