I thought about this some time ago, and even did some experiments. The idea was to use an x86 SBC as the hardware (something like an UDOO bolt or LattePanda) and run a minimal version of linux on it - for example with no desktop environement. x86 would be ideal as there would be no need for cross-compiler setup (although perhaps some wrangling of libraries to get a compatible development environment).
For software I created this as a working proof of concept:
https://github.com/fallahn/osgcIt basically runs a front-end executable (written with SFML of course
) that allows browsing games similarly to Kodi for videos or RetroArch for emulators.
Games themselves are then built as DLLs (or SOs as we're on linux) instead of executables. Then they can be copied to an SD card or the storage of the SBC so that the frontend can load the games at runtime.
With a bit of work and a 3D printed case, maybe it could be turned into a console-like device