Buenas, respecto a lo que ha dicho Yaw del texto, creo que ese no el metodo apropiado, para mostrar valores de variables deberías usar PA_OutputText; (la llamada es la misma). Respecto a lo del tamaño final, supongo que lo de los 4MB se referíra a tenerlo cargado en memoria, pero si usas un sistema de fichero como por ejemplo GBFS, no tienes esa limitación (corregirme si me equivoco). Para hacer Saves, todavia no me he mirado el tema, pero si que te adelanto que se pueden hacer Loads.
Veamos a ver si te puedo explicar lo de los sprites de forma que se me entienda.
Cuando convertimos una imágen que vamos a usar como sprites. Sabemos que obtenemos un fichero en .c que contiene la informacion de cada pixel de la imágen. Vamos en definitiva la imágen se convierte en un vector de char (enteros), que contienen un valor númerico, que se corresponde con el color de la paleta que tiene que dibujar. Vamos a suponer que yo tengo una imágen de 160x32 :
Bien esa imágen al convertirla se transformara en un array de char con una longitud de (160x32) 5120. Cuando yo creo un sprite, a partir de una imágen única de por ejemplo 32x32, en la llamada a crear sprite simplemente le paso el nombre del vector y ya esta. Pero aqui viene que el vector es más grande de lo que queremos mostrar. Bueno que sepais que el metodo de crear sprite, va cargando la imágen empezando por el primer pixel de la imágen (Esquina superior Izquierda), luego hacía la derecha, y despues pasa a la "siguiente linea", vamos el sentido de lectura de toda la vida. Entonces si yo le digo que cree un sprite de 32x32, lo que va hacer es cogerme los 1024 (32x32) primero valores y ponermelos en pantalla en forma de matriz (32x32). Que hay que hacer para poder coger más cachos de imágen. Bueno lo primero, es cambiar la forma en que se ve, por que si lo dejo como esta, si intenta coger los primeros 1024 pixels, lo que hara sera cogerme los primeros 32 en la 1 linea, los siguiente 32, en la linea de abajo, así hasta llenar los 1024, pero como el ancho de la imágen no es de 32, la imágen no se va a corresponder con lo que yo quiero (podeís hacer la prueba y así lo entendereís mejor). Bien ya tengo la imágen como debe estar :
Pues ahora es muy sencillo de hacer, en mi imágen se puede ver que son 5 "cachos" de 32x32. Yo me puedo crear unos defines para los COMIENZOS de cada imágen de la siguiente forma:
#DEFINE CACHO0 (void*)&miBoton_Bitmap[1024*0] //32x32x0
#DEFINE CACHO1 (void*)&miBoton_Bitmap[1024*1]
#DEFINE CACHO2 (void*)&miBoton_Bitmap[1024*2]
....
Así hasta tener todos, y con eso ya podemos llamar a crear sprites de 32x32, porque cogera y para el primer cacho tomara valores desde la posición 0 hasta la 1024, y para el siguiente cacho, lo mismo pero ya no tiene que empezar desde 0, porque el trozo que nos interesa empieza a partir de la 1024, y así sucesivamente
PD: Lo he releido y no se sí os quedara claro. Así que podéis preguntar.