Registrarse

Rubí | ¿Se puede editar la cantidad de bloques permitidos en el tileset principal?

Estado
Cerrado para nuevas respuestas.

Edo

You've met with a terrible fate, haven't you?
Miembro de honor
Sé que la cantidad máxima es de 512, pero, ¿se puede editar la cantidad de bloques permitidos en el tileset principal?
 

Rata

Veterano en Gráficos
O: Nunca me había hecho la pregunta, puto Edillo.
La verdad es que no tengo idea, pero espero que alguien
pueda decirlo.
Tal vez pueda agrandarse el bloque con ASM o con alguna
modificación de datos por HEX.

Saludos! ^^
 
  • Me gusta
Reacciones : Edo

CelticFrostie

Sexador de pollos
Que yo sepa no, si lo expandes en horizontal como ya te dije te cargas el blocklist, y en vertical no los lee directamente, para que los lea habría que saber esto primero:

"Cada tile tiene una información almacenada en 2 bytes, con la siguiente estructura:

XXXXXXXX YYYYZZXX

Entonces habría que modificar la rutina de carga de los tiles de los mapas."

^ (Esta información fue proporcionada a Aguiar por Cosarara, yo no me meto en éstos fregaos)

Ahora me explico.
Los bits X son el número de tiles por tileset: 2^10=1024 tiles, o lo que es lo mismo, 256 bloques, no 512 xD (si no me equivoco).
Bits Y: Número de paletas, 2^4=16 (se reflejan sólo 13 porque las 3 restantes son utilizadas para otras cosas)
Bits Z: Posición del tile en el bloque (Arriba izquierda, arriba derecha, abajo izquierda y abajo derecha) 2^2=4

Bien, sabiendo toda esta maravillosa información, habría que conocer esa rutina que dice Cositararita para conseguir de alguna manera que lea partes de 3 bytes, y allá poner los bits X que queramos (hasta 8, claro), ya que paletas, por muchas que queramos, la VRAM no carga más de 256 colores por pantalla (16 paletas), y la lías. Si alguien tiene alguna manera de hacerlas dinámicas (?) supongo que sí, aunque no creo que sea fácil.
A cambiar los bits Z no le veo mucho el sentido, no sé lo que pasaría la verdad, si tendríamos bloques de más de 4 tiles o nos cargaríamos todo. Aunque no sé con seguridad si también podríamos cambiar el número de bloques, igual estoy equivocado y por mucho "cambiar la rutina de los tiles de los mapas" que haya, seguro que hay algo que GBA te acaba impidiendo hacerlo (?)
La verdad es que siempre me ha gustado saber de éste tema, sacar a GBA de sus límites gráficos (véanse mis dudas desde que llegué al foro: "¿gold, como puedo hacer que las paletas tengan más de 16 colores? ¿y más de 16 paletas? ¿eing, las 3 que faltan en los mapas, qué pasa con ellas?")

Abriría una investigación sobre esto, pero la verdad no me veo con los conocimientos suficientes (solo sé la teoría y ni eso) para progresar o conseguir algo.
Y de todas formas, si se consiguiera, esas rutinas o soluciones que suelen romper (parcialmente) los límites de GBA suelen dar problemas [véase Aumentar paletas para minis], que alguien me corrija si es posible, por favor xD

Saludos!
 

Sayer301!

UnityLord!
Miembro de honor
A ver no puede ser tan dificil como lo estás planteando @Flame
son 512 bloques del tileset y 384 los del tileset secundario como máximo.

Lo que hacen un total de 896, se que no soy especialista en esto, pero casi todas las tablas y mierdas similares se toman como aumentar el byte al máximo y repuntear la tabla para tener mas espacio.

Por ejemplo, los minis, el número máximo esta en 256 minis, aunque el ROM solo interprete 151 ¿Por que? Porque el número que tiene predefinido Nintendo para esto es 97 (151 en hex) si esto lo cambiamos por FF tendríamos 256 minis.

No es exactamente como os estoy contando, pero es para dar una idea, porque no creo que sea tan complicado.

Pues se me ocurre exportar el bloque del tileset 0, hacer una copia del ROM, cambiar algunos bloques y reinsertar el bloque antes exportado, si el advance map es una mierda, que probablemente lo sea, necesitará repuntear esto a otra dirección.

Cojemos la otra ROM, de la que exportamos los bloques y la comparamos con la que lo importamos, primero, antes de darnos un monton de datos diferentes donde estará ahora el tileblock, nos debería dar una dirección permutada, probablemente en esa misma línea, o ampliando la tabla de bloques que saldrá en la dirección permutada se conseguiría facilmente o eso imagino.

El único problema que veo sería modificar la rutina de forma que que el bloque por ejemplo 245 que antes pertenecia al tileset secundario, pase a formar parte del primario, pero todo es investigar, seguro que @eing, @Javi4315♪ o @MoonLover~ tienen alguna respuesta mágica.
 
Estado
Cerrado para nuevas respuestas.
Arriba