A menudo revisamos las compilaciones ESP32 en este sitio para el beneficio de Raspberry Pi (se abre en una nueva pestaña) o RP2040 (se abre en una nueva pestaña)basado en cortes geniales, pero no podíamos dejar pasar este. La creación de Jeroen Domburg de spritesmods.com (se abre en una nueva pestaña) y traído a nuestra atención por Hackaday (se abre en una nueva pestaña)el diminuto microcontrolador dentro de esta máquina de pinball impresa en 3D demuestra ser capaz de hacer más que lanzar unas pocas bolas de metal.
Esto se debe a que está ejecutando un emulador X86 lo suficientemente potente como para poner en movimiento el clásico Pinball Fantasies DOS de 1992 de Digital Illusions. La parte de programación de la compilación parece bastante complicada, ya que Domburg se enfrentó a un código que tenía comentarios trilingües, bromas y lagunas.
"Pinball Fantasies fue escrito completamente en ensamblador x86 codificado a mano", escribe Domburg en su publicación excepcionalmente detallada. (se abre en una nueva pestaña) del proyecto. "Como lo había planeado [to] use un ESP32S3 como el espíritu de la pequeña mesa de pinball, no pude usarlo directamente; el núcleo Xtensa de este chip no sabe qué pensar de las instrucciones x86. Entonces, mi idea inicial fue convertir lentamente el código a C: ensamblar los archivos de ensamblaje x86, vincularlos a un marco de archivos C, luego convertir lentamente las rutinas de ensamblaje a C hasta que todo se convierta y me quede con un código C limpio. "
Por supuesto, eso no funcionó, por lo que Domburg cambió de rumbo, interpretando el código como si estuviera escrito para una máquina virtual en particular y luego emulando esa máquina. Usando un emulador 8086 escrito en C, agregó los gráficos, las llamadas IO y DOS que usa el juego y nada más. Domburg descubrió en el camino que, aunque solo muestra parte de la mesa donde está la bola, todo el juego de pinball se guarda en la memoria, lo que significa que puede modificarse para mostrar toda la mesa si lo desea.
El hardware incluía un ESP32-S3, que tiene un procesador de doble núcleo Xtensa LX7 de 240 MHz, medio megabyte de RAM y viene con una útil interfaz LCD paralela integrada. Esta pantalla es una LCD de 320x640, además de un pequeño amplificador y altavoz para audio y algunos botones para proporcionar entrada. Los extras opcionales incluyen una segunda pantalla LCD y un émbolo para dar al pinball un movimiento de inicio auténtico. El estuche está impreso en 3D, y si desea intentar construir uno, puede encontrar aún más información en Github de Domburg. (se abre en una nueva pestaña).
Deja una respuesta