El primer Metal Gear salió en 1987 para el MSX, pero la saga despegó de verdad con Metal Gear Solid, lanzado en 1998 para la primera PlayStation. Lo que en 1998 pedía una consola completa hoy cabe en un microcontrolador. David Montero Crespo lo demostró con su port de MGS al ESP32-S3, que reseñó Hackaday.

¿De dónde sale el código del juego?

El proyecto se apoya por completo en el trabajo de decompilación MGS Reversing del equipo FoxdieTeam, que reconstruyó el código fuente del juego a partir del binario original. Lo que un equipo decompila, otro lo puede volver a compilar, y Montero Crespo eligió como destino el ESP32 de Espressif.

No bastó con clonar el repositorio y compilar con el ESP32 como objetivo. Según explica en su blog, tuvo que modificar el código para absorber las diferencias de comportamiento entre el procesador MIPS de la PlayStation y los núcleos Xtensa del microcontrolador.

¿Con qué hardware se juega?

Para hacerlo jugable, montó el módulo ESP32-S3 sobre una placa perforada y armó una consola portátil mínima con tres piezas.

  • Un joystick analógico sacado del control de un dron
  • Una pantalla LCD con controlador ILI9341
  • Una escalera de resistencias para leer los botones

La escalera de resistencias permite leer varios botones con una sola entrada analógica, porque cada botón produce un voltaje distinto en el mismo pin.

Otros juegos de PlayStation en el ESP32

No es la primera vez que el ESP32-S3 mueve gráficos de nivel PlayStation. Hackaday ya había mostrado un clon de Wipeout que corre de forma nativa en el mismo microcontrolador.

Para los seguidores de la saga, Hackaday también publicó una réplica del comunicador Codec de Metal Gear Solid. Y quien buscaba engranajes de metal de verdad puede cortarlos en casa con una máquina hecha a mano.