# 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:** 1\
**Showing post:** 4

<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)?

---

_[View the full topic](https://forum.makecode.com/t/gamepi20-joy-bonnet-picade-collaboration/9211)._
