28938-3D_en_GBA
#0
cosarara97 12296
Bueno, pues el otro día me pregunté: ¿Sería posible hacer un juego de pokémon para GBA en 3D? (Como D/P, con las limitaciones gráficas correspondientes). - Unos lo hacen en RPGMaker, otros hacemos cosas raras.
Obviamente la pregunta es a nivel teórico, ya que no tengo suficiente interés para ponerme a hacerlo.

La GBA no tiene ninguna unidad 3D de hardware, de modo que hay que hacer todo el rendering por software, como en los viejos tiempos. Hubieron algunos títulos comerciales que lo hicieron, en este blog hay una lista (quizá falta alguno): 3D graphics on the Game Boy Advance: How well could it be done? - GBA feature at Thunderbolt

El tema está en repintar toda la pantalla cada frame (por que por algo es un juego en 3D) en modo de bitmap (sin usar tiles), y conseguir que la cosa tire con un framerate decente.
Para esto hay que usar el modo 4 de la GBA y hacer page-flipping.

Además, los floats de GBA son lentos, de modo que hay que usar Fixed-point math y otros trucos para los cálculos.

Con todo esto, y unas cuantas mates (he tenido que aprender a hacer multiplicación de matrices y proyectar puntos en un plano 2d :O), he escrito una demo:
https://www.dropbox.com/s/vnjho1ihaanazp4/3D.gba?dl=0


Código fuente (necesita tonclib y devkitpro): https://www.dropbox.com/s/5cx25gqy8t37hh7/3d_on_gba.tar?dl=0