Registrarse

[RH - Gráficos] Extension de los 255 tiles permitidos en modo 8BPP

Estado
Cerrado para nuevas respuestas.

Juanjo

Hacker del pasado... Compilador del presente
Miembro insignia
Extension de los 255 tiles permitidos en modo 8BPP​

Hola, ¿Qué tal?

Sin duda se preguntarán el por qué ese título, qué carajos quiero hacer, por qué esperé como 3 años sin volver al foro y al hacerlo vengo con una pregunta en dudas como si nada, si la duda es para ruby o si el pollo es frito cuando se asa. Pero lo cierto es esto, el pollo es la concepción divina más impor...

Estoy intentado volver a aproximarme al rom hacking creando un hack diferente y mucho más sencillo al que sería mi obra maestra (Apocalipsis) y así limar algunas asperezas. Como llevo más de un año viviendo en Europa estoy extrañando Colombia así que por qué no un Hack para promocionar el turismo a mi país.

Para ello creé el siguiente World Map compeltamente original y que su parecido con cierto país es mera coincidencia....


Contrario a lo que muchos piensan, el problema con este mapa no es la paleta (en Ruby se podrían insertar mapas de 256 colores) sino el tamaño del tileset. En este caso el siguiente:


Como el lector podrá apreciar en la imagen propiamente dicha, las dimensiones de dicho tileset son 128×192 píxeles (o 16×24 tiles), excediendo así en 164 los tiles máximos permitidos según el modo linear 8BPP (que se maneja en los mapas de R/S/E). Como se que casi todos hackean FR imaginaría que no han pasado por esto.

Siguiendo mi instinto bastante terco y en honor al poderoso dios Pollo, decidí insertar el mapa a la maldita sea con Cyclone (Ya que el NTME ni me permitió cargar un tileset mayor a 255) ¿El resultado? Bueno, pensé que sería más grave y vería todo el mapa (y zonas aledañas) completamente crasheados pero no:



Las paletas funcionaron, y hasta el tileset funcionó. Sin embargo el problema acá es el RAW. Si el estimado lector observase el último tile que aparece correctamente, notará que corresponde al tile número 255 (FF) del tileset mencionado anterioremente. Además, el tileset ha sido perfectamente insertado en su totalidad, como demuestra el visor de tiles del VBA:


Dejando al estimado lector todo lo mencionado anteriormente y sin pedir absolutamente ninguna disculpa por desaparecer de una comunidad que me ha dado tanto y marcó mi vida para siempre y que sueño con ustedes y que ustedes son geniales y que viva WAH abajo Pokeforos, resistan y quitame el warn de Serg!o y baneen a Ash o Rojo

Dejo la pregunta enunciada debidamente planteada:

¿Es posible usar más de 255 tiles en modo 8BPP sin que la RAW se vuelva loca?​

No siendo más me despido deseandoles una existencia genial, feliz hackeo y que los quiero mucho, mi WAH del alma...

Que el pollo los bendiga.


Edit: SI me vana saludar por favor indíquenme sus nicknames correspondientes a como yo los conocí... Ya casi la mitad que me saluda no tengo ni idea quienes son y tengo que irme hasta lo más profundo de sus perfiles hasta dar con la pista y me perturba un poco... Este robot ha envejecido un poco con sus poderes de adivinación...
 

Kaiser de Emperana

Called in hand
Te respondo el mensaje de perfil por acá xD.
(Para los que miren el tema Juanjo me preguntó por este tema)

La verdad es que no miré mucho más el como hacerlo, pero me doy una idea a grandes razgos de como sería el procedimiento y cuales serían los problemas.

Primero que nada.
¿Por qué el worldmap están en 8bpp?
Porque el pokenav tiene una función que te permite hacer zoom al mapa, para poder usar las funcions de escalamiento el juego necesita poner el bg del mapa en modo 1 aunque sea. Así que cambiando el mapa a 4bpp, efectívamente se rompería esta función.

Aparte del pokenav, el mapa se muestra en tres lugares. El mapa del centro pokemon, el mapa de vuelo y el mapa de el área de la pokedex. Si mal, todos stos lugares tienen los BG en modo 0, pero por otro lado tienen la configuración del bg específico del mapa en 256 colores.

Para cambiar el mapa a 4bpp, lo que hay que hacer es cambiar el modo de los BG a modo 0, (Lo que se escribe en el registro DISPCNT). Y además configuar el BG específico para que esté a 16 colores (registro BGXCNT).

En ruby el modo se configura directamente escribiendo en el registro, así que poniendo un breakpoint de escritura no debería de ser dificil de encontrar el punto en el que se hace y modificarlo. La configuración de BGXCNT, la verdad que nunca miré como es que se hace en este rom, así que no te sabría decir con seguridad, pero es probable que tambien se escriba directamente.

Cambiar el mapa a 4bpp es cosa de ponerse a buscar como hacer el procedimiento que expliqué y probar hasta que ande. Que es justamente lo que me dio pereza hacer... Porque las cuatro instancias donde el mapa es visible usan los BG en distinto orden así que habría que ponerse a ver una por una y asegurarse de que efectivamente no se está rompiendo nada.
No es que sea un trabajo dificil del todo, pero la verdad es que es algo tedioso.

Así que como mencioné al prncipio, pero espero que te sirva de algo...

(Para ir probando, podrías cambiar el bg y la raw por unas de 4bpp y cambair la configuracón manualmente desde el vba)
 
Estado
Cerrado para nuevas respuestas.
Arriba