Juha Lilja built a thumb-sized arcade cabinet that runs DOS games by streaming them over Wi-Fi from a nearby PC to an M5Stack AtomS3R development board. The cabinet computes nothing locally. It displays what the host sends and returns input events. That is the entire firmware contract.
Control is handled without a joystick or external buttons. Tilting the physical cabinet acts as a directional input via the AtomS3R's onboard motion sensor. The touchscreen registers single, double, and long-press clicks. The host PC runs the game, encodes the screen, and handles all logic. The client is intentionally dumb, which makes the system flexible enough to stream any DOS application, not just games.
The full code and a technical notes file covering the finer implementation details are on GitHub at apn201/Micro_Arcade. The notes file is where the project gets interesting: latency handling, input event encoding, and the streaming architecture are all documented separately from the main readme. Read those before you watch the demo video.
[READ ORIGINAL →]