Este proyecto, desarrollado por Dzoba, es una impresionante demostración de ingeniería inversa y programación creativa para la calculadora gráfica TI-89 (y su sucesor, la TI-89 Titanium). Se trata de un motor de raycasting 2D personalizado, similar a los utilizados en juegos clásicos como Wolfenstein 3D, pero adaptado para funcionar en el hardware limitado de una calculadora. El motor, construido sobre la base del 'FAT Engine' (Fixed Angle Texturing) original de 2002, permite renderizar entornos 3D con paredes texturizadas, escaleras, sprites de enemigos y niveles generados proceduralmente.
¿Cómo funciona? El motor de raycasting funciona lanzando rayos virtuales desde la posición del jugador en diferentes direcciones. La distancia a la que cada rayo impacta en una pared se calcula, y esta información se utiliza para determinar la altura de la pared visible desde la perspectiva del jugador. El FAT Engine se encarga de aplicar texturas a estas paredes, creando una ilusión de profundidad y detalle. La generación procedural de niveles significa que cada vez que se inicia el juego, se crea un nuevo laberinto, aumentando la rejugabilidad. El uso de un 'Z-buffer' es crucial para la correcta visualización de los sprites y la correcta oclusión de los elementos en la escena, asegurando que los objetos más cercanos se dibujen sobre los más lejanos.
Aplicaciones y casos de uso: Aunque principalmente un proyecto de demostración, este trabajo demuestra la capacidad de la TI-89 para realizar tareas complejas. Podría inspirar a otros desarrolladores a crear juegos y aplicaciones más sofisticadas para estas calculadoras. El proyecto incluye varios demos: un dungeon crawler completo, una demostración de escaleras texturizadas, un juego de la vida (Conway's Game of Life) optimizado para el hardware, y un efecto de plasma en escala de grises en tiempo real. También se incluyen herramientas para transferir archivos a la calculadora a través de USB.
Consideraciones: El proyecto tiene limitaciones inherentes al hardware de la TI-89. La velocidad del procesador (10MHz) y la resolución de la pantalla (160x100 con 4 tonos de gris) imponen restricciones significativas. El código está optimizado para el hardware HW2, pero una versión simplificada (sin texturas) es compatible con la TI-89 Titanium (HW4). Para la TI-89 estándar, es necesario liberar memoria en la ROM Flash para cargar el motor. El código fuente del FAT Engine original tiene una licencia restrictiva, por lo que el proyecto se distribuye bajo la licencia MIT para el código personalizado, respetando los derechos de autor del autor original del FAT Engine.
