I recently put together a retro gaming setup using a Raspberry Pi 5 and a custom 3D-printed arcade fight stick.
Here is how the finished project looks:

The Hardware
For the controller housing, I printed this Arcade Controller Fight Stick model on Makerworld.
It required printing the middle layer a couple of times because the first one warped on the print bed. Once I got a flat print, everything aligned properly. I populated it with some LED buttons and a standard arcade joystick, all wired into a USB controller board.
For the computer, I put a Raspberry Pi 5 into a NES-style case from Amazon. It looks like a miniature NES console and keeps the Pi cooled.

Configuration and Gameplay
I have been using this to play some old arcade games, starting with les: Turtles in Time**.
Getting the controller configured took some troubleshooting. When you first boot up, RetroPie handles the main system menus where you navigate and select games. The controller configured there right away without any issues.
However, once you launch a game, RetroArch takes over to handle the emulator and actual gameplay controls. Getting the controller to work inside RetroArch was a pain and it took a lot of trial and error to get the button mapping to register correctly for the emulator.
Now that the controls are mapped, it works great. I’ll probably print a second one soon for two-player.