Close
0%
0%

Metal Gear Solid (PS1) on the ESP32-S3

A native port of the 1998 PlayStation classic running on a $15 ESP32-S3 microcontroller, featuring software rasterization, a custom FreeRTOS

Public Chat
Similar projects worth following
0 followers
  • Description
  • Details
  • Files 0
  • Components 0
  • Logs 0
  • Instructions 0
  • Discussion 0
I have loved Metal Gear Solid since I was a kid. When I got a tiny ESP32-S3 board, one question stuck with me: could a PlayStation game run on something this small?

This project is a native port of MGS (PlayStation, 1998) to the ESP32-S3. The game’s C source, reconstructed by the FoxdieTeam mgs_reversing decompilation, is compiled straight to Xtensa machine code. Everything the PlayStation hardware used to provide has been replaced with software.

The Software Architecture
The port has three main layers between the game and the SoC:

MGS Engine: The decompiled C code, compiled to Xtensa using GCC 14.2.

Psyz & GTE: Xeeynamo’s reimplementation of the PlayStation SDK in C. The entire GTE geometry coprocessor is modelled in software. I added 41 missing GTE macros, using the game’s own MIPS assembly as the spec.

Platform Layer: A custom cooperative scheduler running inside FreeRTOS, a virtual CD drive over FAT, and software rasterization.

Enjoy this project?

Share

Discussions

Does this project spark your interest?

Become a member to follow this project and never miss any updates