Hola, gracias de nuevo por sus comentarios, ahora voy a responder sus preguntas.
naxeras escribió:Tengo una pregunta acerca de los niveles, ¿Como los cargas?, es decir ¿las texturas y esas cosas las va cogiendo del cartucho?, ¿en PC no carga el nivel completo en memoria RAM?, lo digo por las pantallas de carga en PC.
Las texturas y sprites (objetos y enemigos), estan en rom descomprimidos, aunque los sprites estan recortados a un tamaño mas o menos al espacio usado, pero esto no quiere decir que los sprites son mas pequeños, en PC todos los sprites tienen un tamaño de 64x64 aunque la gran mayoria no usan ese espacio. En mi engine los sprites en tamaño "Y" puede ser 32 o 64, y en tamaño "X" puede ser casi cualquiera(64, 62, 60, 58, 56...), yo hice esto asi para ahorrar velocidad al momento de dibujarlos, y ademas para ahorrar un poco de espacio en rom.
En pc todo esta comprimido y se descomprime todo en RAM.
naxeras escribió:¿Cabe cualquier nivel del juego original?
¿Tienes que rehacer los niveles o la estructura se puede poner importar de la version de PC?
Si, la estructura de los niveles esta hecho directamente de la version de PC, aunque estan descomprimidos. Mas adelante voy a hacer que se pueda utilizar los archivos "GAMEMAPS" y "MAPHEAD" del juego original, porque asi ocupa menos espacio.
naxeras escribió:¿Crees que conseguirás los 15 fps estables que garantizan la fluidez de esta versión?
Voy a intentarlo, aunque nunca se puede alcanzar los 15fps si hay tantos objetos/enemigos en pantalla. Desde la ultima version (10 de enero de 2014), ya he optimizado un poco: el codigo para dibujar sprites ahora es de 38 ciclos menos por columna dibujada. Practicamente en cada version he optimizado un poco y todavia se puede optimizar, sobretodo en el engine principal (raycast).
realbrucest escribió:¿A qué se debe que hayas optado por dibujar en VRAM la escena girada 90 grados?
Lo estuve mirando con el gensKmod y me resultó muy curioso al ocurrírseme cuál es la razón para ello.
Los tiles estan ordenados de esa manera por dos cosas: primero porque para dibujar las texturas se hace mas facil, se dibuja de arriba hacia abajo es decir, por columnas(en realidad se dibuja del centro hacia arriba y del centro hacia abajo), segundo para poder hacer uso del DMA para transferir a la VRAM mas rapido, solo se necesitan unas 80 lineas para transferir todo el buffer(16KB).