Programmer Runs DOOM on a MOVESPEED USB Flash Drive Using File Copies

People have spent years proving that DOOM will run on nearly any device that offers a screen and a little processing power. Aaron Christophel recently pushed that habit further by getting the game working on a MOVESPEED MSSU10 USB flash drive.
This stick has 128 GB of storage and a built-in color screen, which is quite small but nonetheless sharp at 428 by 142 pixels. Inside, there are two distinct chips to keep everything running: a Silicon Motion SM2320G for the USB connection and memory, and a C*Core CCM4101 microcontroller. The latter, which is based on an Arm Cortex-M4F CPU and contains 128 KB of RAM and 2 MB of flash storage, is what drives the display. When everything is working well, this second chip simply displays the transfer speed, available capacity, and temperature. Christophel measured its clock speed at 40.2 MHz, which is significantly lower than the 200 MHz mentioned in the datasheet.
Sale

MOVE SPEED 128GB USB Drive with Smart Display 1090MB/s USB 3.2 Gen2 and Type C SSD Memory Stick for…
- Plug and Data View: Smart display USB drive adopting advanced intelligent recognition technology and adhering to the design of plug-and-play. Equipped…
- AI Intelligent Temperature Control: Design for optimal heat management upgrades from basic temperature monitoring to AI intelligent temperature…
- 1090MB/s Fast Transmission: Save significant time costs powered by USB 3.2 Gen 2 high-speed control chip, it achieves an ultra-fast read speed of up…

He hacked DMC100-DOOM, a lightweight version of the old DOOM game, by replacing the original display software with a modified version. He’d reverse engineered the screen interface and the link between the two devices, resulting in some firmware that allows the microcontroller to run the game and draw visuals straight onto the screen. Even better, only the display chip receives updated code, while the storage controller remains same. The stick still appears to be a standard USB drive on any machine.

There are no buttons on the device, so you control it via the display, watching as data scrolls up and down the screen. The display chip polls the storage chip every 50 milliseconds via a simple two-wire connection, reading counters that indicate how many sectors have been written or read. Then there is some software on the computer that converts a standard keyboard into a program that sends precisely timed file transfers. Fast writing moves the player forward, while reading turns him right. A combination of both fires the weapon, whereas the other transfer rates do different functions, such as having the player strafe or opening the menu. The right edge of the screen displays the current command, as well as the link speed and throughput.

It all runs at roughly 13 frames per second, which isn’t good to say the least, and the game logic itself continues to tick over at 35 times per second. Due to memory limitations, you can only play the first level, and there is no sound. The inputs have a delay of roughly 100 milliseconds, which is a shame, however if you have a SWD debug probe, you may update the firmware. The source code, pre-built files, and flashing instructions are available on GitHub. After the upgrade, the stick continues to act normally because it is just running the game, making standard file transfers the sole way to move, turn, and shoot.
[Source]
Programmer Runs DOOM on a MOVESPEED USB Flash Drive Using File Copies
#Programmer #Runs #DOOM #MOVESPEED #USB #Flash #Drive #File #Copies