RetroPie for uConsole and DevTerm CM4

UPDATE: RetroPie on Bookworm 6.6.34

  • Kernel updated to 6.6.34
  • Brightness & Audio keys work out the box
  • Changing emulationstation themes will now persist after reboot
  • PSP, DreamCast, and DOSBox Pure cores added
  • After account creation please run command sudo retropie-device DEVICE_HERE to finish setup.
    • Device choices are uconsole or devterm
  • Big thanks to @mikeschnier for helping tweak this image. I’m just now getting into emulation and it was a you’ve been a big help.

RetroPie on Bookworm 6.6.32

  • Image built using Pi-Gen.
  • APT repo added for LTS kernel updates.
  • Auto-expanding File System.
  • Correct Monitor rotation out the box. - retroarch menu cannot be rotated.
  • Sane charging defaults applied.
  • External WiFi antenna already set in config.txt.
  • Works on both uConsole and DevTerm pick your device in config.txt
    • dtoverlay=clockworkpi-devterm
    • dtoverlay=clockworkpi-uconsole
      • Just comment out the device you’re not using.
  • After account creation please run command retropie-device DEVICE_HERE to finish setup.
    • Device choices are uconsole or devterm

All distros I’ve made for clockwork devices are located below.

Any problems or something i should add let me know!

  • After file system expands and reboots sometime there is just a tiny blue box for user name account creation just put you desired user name and hit enter.

Thank you for giving me a chance to test this Rex! I didn’t think I’d be into a dedicated Retropie image but I actually see a lot of potential here.

While it’s annoying that Retroarch doesn’t have options to rotate its menu while drawing to the framebuffer (I checked, it’s a whole thing), I was blown away by the performance. I wouldn’t have thought the overhead would matter so much but it’s so much faster than Retroarch in a desktop environment — especially when playing with shaders applied.

I’d expect the CM4 to handle every 8 and 16-bit system perfectly, with the added bonus of many of the N64 and Dreamcast games being playable (preferably with an external controller). A handful of low-end GameCube games might run but I’d see that as more of a bonus than a feature.


@mikeschnier Thanks for the review. I really appreciate your help and feedback. I played some psx Tony Hawk 2 it ran great better then I would have expected, reminded me of being back in college.

1 Like

Do yourself a favour and drop this into your shaders folder. Scanlines don’t do much for me, but this has a slot mask CRT setting that looks like how I remember the TV I grew up with: glsl-shaders/crt/shaders/fakelottes.glsl at master · libretro/glsl-shaders · GitHub

1 Like

Will do. 20 characters…

Oh wait, you currently have the DevTerm. I’d recommend waiting until you have a uConsole or are using an external display. I suspect you need at least 720p for the effect. It’s good but at 480p I think you’d mostly just see a moiré pattern.

1 Like

I just use the DevTerm by itself. Hopefully I’ll get my uConsole sooner than later. I’ll wait til I get it to try that out.

It should be possible to use the triggerhappy daemon to get the brightness and volume keys working. I’m transferring a bunch of files over to my install but when I’m done I’ll give it a try and share my config.

Documentation here:

1 Like

It took quite a bit of fiddling but I was able to get it to work. Following along with a post from the Retropie forum, I think what actually worked for me was editing rc.local to launch thd as the current user. Just add the following line above exit 0:

nohup /usr/sbin/thd --triggers /etc/triggerhappy/triggers.d/ --user USERNAMEHERE --deviceglob /dev/input/event* &

Install brightnessctl. Then tell thd which keys to monitor and what commands to run. The format is “KEY_CODE TAB 1(press)/2(hold) TAB Command”. I’ll update this post with the conf I’m using when I have a sec. Edit: Updated.

sudo nano /etc/triggerhappy/triggers.d/uconsole.conf

KEY_BRIGHTNESSUP        1       brightnessctl set +10%
KEY_BRIGHTNESSDOWN      1       brightnessctl set 10%-
KEY_VOLUMEUP    1       /usr/bin/amixer sset PCM,0 2db+
KEY_VOLUMEDOWN  1       /usr/bin/amixer sset PCM,0 2db-
KEY_BRIGHTNESSUP        2       brightnessctl set +10%
KEY_BRIGHTNESSDOWN      2       brightnessctl set 10%-
KEY_VOLUMEUP    2       /usr/bin/amixer sset PCM,0 2db+
KEY_VOLUMEDOWN  2       /usr/bin/amixer sset PCM,0 2db-

I’m not sure if I’m entirely happy with these defaults but it’s a start.


Nice work, I’ll check it out here in a bit on my system.

1 Like

Oh! One other thing. I wasn’t able to persist themes in EmulationStation until I changed permissions: sudo chown -R USERNAME:USERNAME /opt/retropie/configs

Next thing I’m going to look into is getting the mouse buttons recognized. Also the Super Nintendo theme looks very good.

For whatever reason my preferred shader doesn’t look the same as on my other 720p screen, but it still looks pretty good.

An S-Video filter, a little bit of curvature and a slot mask.

Has anyone had any luck running games in MAME? I’ve tried running R-Type in lr-mame2003 and lr-mame2003-plus and it crashed back to EmulationStation. Same files I’ve used in the exact same core.

Update: I suspect MAME doesn’t work in 64-bit Retropie. Instead I am now using the FBNeo core with an appropriate romset and everything works.

I’m going to build a new image tonight with your suggestions. Volume key works now but no visual feedback but you can hear it. I changed it to 5db+/- instead of 2. Theming is persistent now too. I’m also going to precompile Dreamcast and PSP so they just work out the box. Anymore suggestions?

I’d like to get the mouse buttons recognized. I’ll take a stab at it tonight.

1 Like

Updated image available check out the op!

wondering how to map l1-r1 and l2-r2 button to custom keys? as d-pad detects as keyboard, and abxy as controller. and i cannot do this via wizard at start(

Thank you again for all of the useful distros you’ve been porting, Rex! I’ve been messing about with the lr-dosbox-pure core.

Didn’t think Dungeon Keeper would run so well! I’ve been very impressed by the performance.

1 Like