(yay, doble post)
https://www.dropbox.com/s/hyonz9bjeyo33s6/3D_v2.gba?dl=0
Ahora la cosa sabe pintar triangulitos y cuadriláteros (que en su momento se dividen en triangulitos), y usa el algoritmo del pintor para que las caras de arriba salgan arriba y viceversa (en el eje Z, claro).
Aún así, se ordenan los quads y los triángulos por separado, cosa que significa que si usamos los 2 a la vez las cosas se van a sobreponer - esta demo solo usa quads.
Oh, y aún así, sin texturas, y usando código bastante optimizado, ya empieza a haber problemas de rendimiento al renderizar. Ese número de a la izquierda es el número de ciclos que se tarda en hacerlo - vblank pasa cada 234000 ciclos, así que vamos unas 3 veces más lentos de lo que deberíamos si queremos 60 fps.
Y he puesto el repo en github:
https://github.com/cosarara97/3d-gba