DIY Arcade Console with Rp2040 Pico

So satisfying to follow this thread! Amazing work!

How close are you, @AqeeAqee, and/or the others here to maybe release one or more cheap DIY sets or shopping lists, or readymade handhelds based on the Pico and with a common and official hardware/compile entry for easy programming here?:

PS: By the way, I am really stuck here with ARM Linux .elf compilations no longer running on newer Recalbox distros or smaller RPi boards or in the GPi case(Haven’t found the culprit yet). Anything here already familiar to you or that you would recommend me to do next?:
https://forum.makecode.com/t/makecode-arcade-on-raspberry-pi-including-retropie-recalbox-batocera-etc/14267/12

Following the video link of @MasonChen, I found he had made a PCB for Pico, PicoGame. Looks nice, running Arcade game or general programs on Pico, with unplugable screen&Pico slot. It’s just what I am tending to do, but not yet. Not sure whether it for selling.

As to RPi, I am using RetroPie, it work well, except unsteady terminate sometime. And never tried Recalbox, have no any experience about Recalbox, sorry :joy:

2 Likes

Hi is it possible to put multipul games on the pico? Thx

[Just replied your another thread]

Multiple game on Pico is impossible based on current MCA framework. Bootloader firmware(in where my multiple games store/load program laid) is read only, instead of programable like other chips(STM32F4 and SAMD51).

Hi @AqeeAqee was wondering if u could use one of these psp joysticks for the project? It looks something like this

thx,
SoftTalker

This kind of analog joysticks are supported by Makecode Arcade. I use them on my custom board to replace dirction buttons, with STM32F412 chip(like the one on Meowbit, but more powerful).
But we cant make it work on RP2040 right now, cause the analog read function doesn’t implemented in RP2040 core(codal-rp2040). I have submit an issue for a long time, but no any response yet.

3 Likes

I’m excited to see the performance on the rp2350!

2 Likes

Aww dang it

Inspired by this thread, I ran a Summer workshop for a handful of kids who built Pi Pico-based MakeCode Arcade handhelds and created original games for them. The kids had a blast but the ‘3D-printed Game Boy’ models I repurposed for the project were a pain to produce and assemble. To save others grief I designed a new handheld from scratch and documented the complete build the process. You can read the instructions here and download the 3D models from cults3D. If you’re an educator and want a free non-commercial license just ping me.

Here’s my daughter rocking some Jumpy Platformer:

Big thanks to @AqeeAqee and the others who’ve explored and documented the state of RP2040 compatibility!

4 Likes

Hi all, I recently saw an interesting video https://www.youtube.com/watch?v=tMfg4Eu8SMw . It seems that makecode arcade supports esp32-s3? The hardware uses vm to save files. Does anyone know how to do it?

Did you manage to solve the problem? I have the same problem, it’s black and white.

most likely smooooth as butter

@tobysimonds @wendre-prog

This looks like all colors are shown in a kind of “grayscale mode”, by its color index in MCA. White, index=1, shows black; and Black, index=15, show white; and other colors show a gray, more higher index is, more dark. Right?
Later, I happened know that MCA using a feature of ST7735, called LAT, look-up table (for colors). When refresh each frame, instead of send color value(RGB) to the LCD, MCA send RGB indexes, 4-bit each, like 0x000 for color 0, 0xAAA for color 10. Ofcause, MCA should set exactly RGB values for these RGB indexes, at init and before first frame be send out, this is RGBSET cmd (command ID=0x2D) of ST7735.
So your case is probably cause: MCA send this command, by LCD doesn’t received, or not support, I guess.

This never happend on my ST7735 screens, so I can’t prove that right now.
A quick test: set color palette in your code.

  • If it works, that means RGBSET command works, but failed in init phase. You need add palette set at first of each project.
  • If not, your LCD not support this command, which MCA required. Change another LCD. As far as I know the most popular ST7735R and ST7735S supports.
1 Like

In Panic Screen, MCA make a fresh start, init screen in kind of “Safe mode”. It doesn’t set color palette, just send color 12-bit RGB values (4bit-4bit-4bit), (which actually mapping to LAT default values). MCA draw pixel color with color RGB values directly (White=0xFFF; Black=0x000; Red=0xF00; Yellow=0xFF0, etc.).

1 Like

Hi, thanks for you info - i’ve managed to make a basic device (standard buttons/screen and sound) Did you manage to make any GP connections work? I’ve been trying to use Pins to light up a LED connected to GP26 but no joy. I was also hoping that I could add some extra buttons!

pins.setPull(26, PinPullMode.PullNone);

pins.digitalWritePin(26, 1)

sorry should @AqeeAqee as I appreciate this is an old post.