qna_rh
Thread Id: 27948
Thread Name: [Duda] Comprimir imágenes para unLZ-GBA
#0
Dani_SR_17 28493
Hola a todos, necesito sustituir una imagen de mi rom por otra que yo tengo. El problema es que, al extraer la imagen de la rom, pesa 4,84KB y la mía 3,88KB.

Total, que intenté insertar la mía pero me dice que es más grande, ahí me quede ¿:.

Después de un rato, probé a ver donde estaba la foto de la rom, y ver cuanto ocupaba en la rom, ocupa 50bytes, es decir, mucho menos ¿:.

En cambio, si inserto la mía, sigue ocupando lo mismo, 3,88KB.

La cosa es, ¿Como puedo comprimir mi imagen?
Lo digo, porque si inserto la imagen en por ejemplo 2D0000, va perfecto, pero aplasto infinidad de datos.

En cambio, si lo inserto en 730000 o 800000 (son ejemplos eh), no aplasto datos porque hay espacio, pero cuando debe aparecer esa imagen en el juego, se queda en negro...
#1
Brock 25910
Cuando UNLZ te dice que la imagen es demasiado grande, te da un numero, ese numero en hexaddecimal debes pasarlo a decimal, y esos son los bytes que debes buscar:
EXTRA: Si la imagen es muy grande, osea, mas grande que la original, no vas a poder insertarla, peor no pasa nada.

PASO Nº3) Te saldra un mensaje de error, y un numero en decimal, no pasa nada, haz lo siguiente, le das a ACEPTAR:



PASO Nº4) Ahora abre el siguiente LINK: Conversor binario/decimal/hexadecimal Y Pones en el apartado Hexadecimal, el numero que te dio el UNLZ, y automaticamente te dara un numero DECIMAL...
Algo así: ( EDITO: Con la Calculadora Windows se puede hacer directamente, pero si nunca la utilizaste, sigue el tuto normalmente)


PASO Nº5) Ahora abre el FSF, y pones en BYTES a buscar, el numero decimal que te dio el Link, le das a buscar, y te dara un OFFEST, le das a copiar:




Y PASO FINAL Nº5) Abres otra vez el UNLZ, y repites los pasos 1 y 2, y cuando te salga el mensaje para clickear las 4 casillas, te saldra un OFFEST Abajo, justo lo que esperabamos.. Eliminas TODO menos los 00 principales, y pones el OFFEST que te dio el FSF, algo así:

Te marque el lugar con XXXXX y con eso, ya esta todo, le das a OK, y te dice que se repunteo, y ya esta

Todo esto esta hecho con un Trainer, pero es igual en la imahen que tiens.
#2
Dani_SR_17 28493


Ya te lo he explicado por skype, el problema no es eso, si saber se insertarla.

La cosa es que la imagen original, si la extraigo de la rom, pesa 4,84 KB.
En cambio si la busco dentro de la rom, pesa 50 bytes.

Por eso, al intentar insertar la mía que pesa 3,88 KB, me pide el repunteo, lo que necesito es bajar esos 3,88 KB a menos de 50 bytes.
#3
cosarara97 12296
Iniciado por Dani_SR_17

Ya te lo he explicado por skype, el problema no es eso, si saber se insertarla.

La cosa es que la imagen original, si la extraigo de la rom, pesa 4,84 KB.
En cambio si la busco dentro de la rom, pesa 50 bytes.

Por eso, al intentar insertar la mía que pesa 3,88 KB, me pide el repunteo, lo que necesito es bajar esos 3,88 KB a menos de 50 bytes.


¿De qué imagen estamos hablando? Porque veo complicado esto de que pase de 50 bytes a varios KBs.
Oh, ¿y cómo haces eso de "buscarla dentro del ROM" exactamente?

PD: La función de unLZ.gba ya es exactamente esa, comprimir y descomprimir con lz77 (aunque no se lo bien que lo hace).
#4
Dani_SR_17 28493
Iniciado por cosarara97
¿De qué imagen estamos hablando? Porque veo complicado esto de que pase de 50 bytes a varios KBs.
Oh, ¿y cómo haces eso de "buscarla dentro del ROM" exactamente?


Se trata de la imagen del menu de "info" de los Pokémon. La que determina las diferentes pestañas de stats, nivel, ataques, etc...

Para buscarla, pues he mirado en unLZ-GBA donde está, y he mirado desde donde empieza dicha foto, hasta el primer FF.
#5
cosarara97 12296
Iniciado por Dani_SR_17
Se trata de la imagen del menu de "info" de los Pokémon. La que determina las diferentes pestañas de stats, nivel, ataques, etc...

Para buscarla, pues he mirado en unLZ-GBa donde está, y he mirado desde donde empieza dicha foto, hasta el primer FF.


Solo las cadenas de texto acaban en FF, las imágenes no.
Ahora edito para explicar como acaban las imágenes, tengo que buscarlo.

EDIT: Las imágenes llevan el tamaño total (descomprimido, eso es) al principio, son los primeros 4 bytes, no hay ningún byte especial para marcar el final.

EDIT2: No son los primeros 4 bytes, son el segundo el tercero y el cuarto en little endian.

EDIT3: Solo para añadir, el primer byte de algo comprimido en lz77 es siempre 0x10.
#6
Dani_SR_17 28493
Iniciado por cosarara97
Solo las cadenas de texto acaban en FF, las imágenes no.
Ahora edito para explicar como acaban las imágenes, tengo que buscarlo.

EDIT: Las imágenes llevan el tamaño total (descomprimido, eso es) al principio, son los primeros 4 bytes, no hay ningún byte especial para marcar el final.

EDIT2: No son los primeros 4 bytes, son el segundo el tercero y el cuarto en little endian.


Mmm, vale, pero, entonces, ¿Por que me pide repuntear?
Mira aquí tienes una imagen de los datos de la imagen que hay en la rom:
Screenshot by Lightshot
Y aquí de la que quiero insertar:
Screenshot by Lightshot
#7
cosarara97 12296
Lo más probable es que unLZ sea algo malo a la hora de comprimir. Podrías probar con NLZ Advance o hacer lo que se ha hecho toda la vida - aguantarse y repuntear ;)
#8
Dani_SR_17 28493
Iniciado por cosarara97
Lo más probable es que unLZ sea algo malo a la hora de comprimir. Podrías probar con NLZ Advance o hacer lo que se ha hecho toda la vida - aguantarse y repuntear ;)


El problema, es que si repunteo por alguna extraña razón la pantalla se queda en negro en ese menú y el juego se bloquea...
#9
cosarara97 12296
Iniciado por Dani_SR_17
El problema, es que si repunteo por alguna extraña razón la pantalla se queda en negro en ese menú y el juego se bloquea...


Bueno, pues centrémonos en esto. Primero de todo, prueba con NLZ Advance. Después, para que podamos intentarlo por nuestro lado necesitamos:
1 - ROM base! No te has leído las relgas de dudas, eh? e_e En mi época te llevabas un buen warn ;)
2 - Dirección de la imágen o índice en unLZ
3 - Info extra: estás tocando la paleta?
#10
Dani_SR_17 28493
Iniciado por cosarara97
Bueno, pues centrémonos en esto. Primero de todo, prueba con NLZ Advance. Después, para que podamos intentarlo por nuestro lado necesitamos:
1 - ROM base! No te has leído las relgas de dudas, eh? e_e En mi época te llevabas un buen warn ;)
2 - Dirección de la imágen o índice en unLZ
3 - Info extra: estás tocando la paleta?


1 - Rom base Fire Red
2 - En unLZ esta rondando 1970, puede variar, no preguntes porque.
3 - La imagen exportada ya está con su correspondiente paleta.
#11
cosarara97 12296
Iniciado por Dani_SR_17
3 - La imagen exportada ya está con su correspondiente paleta.


No entiendo esto, explícate. Cambias la paleta o no?
#12
Dani_SR_17 28493
Iniciado por cosarara97
No entiendo esto, explícate. Cambias la paleta o no?


No, la paleta sigue siendo la misma, solo que la imagan que quiero insertar obviamente ya tiene su paleta correspondiente.
Puesto que no es más que la misma imagen, pero de una rom Española.
#13
G0LD_ZTHVARD0X! 27515
Deberias saber que en UNLZGBA si no llegas a la imagen directamente a su numero de indice de seguro unlzgba te dara una offset incorrecta y por eso se congela, prueba usando NLZ, trabaja mas preciso, y ¿cual es el miedo de repuntear? si hay un sinfin de espacio en el ROM no se porque lo quieres evitar.
#14
Dani_SR_17 28493
Iniciado por LaGordaBlissey
Deberias saber que en UNLZGBA si no llegas a la imagen directamente a su numero de indice de seguro unlzgba te dara una offset incorrecta y por eso se congela, prueba usando NLZ, trabaja mas preciso, y ¿cual es el miedo de repuntear? si hay un sinfin de espacio en el ROM no se porque lo quieres evitar.


¿Te refieres a lo de si voy dándole a "next" o a "previous"?

Lo vuelvo a repetir, me da igual repuntear, pero cuando repunteo donde hay espacio (mas de 700000) es cuando se queda en negro la pantalla...
Si repunteo aplastando datos, por ejemplo rondando por 2D0000 funciona bien...
#15
Cheve_X 15014
Pues haber, yo tambien recomiendo el Nlz, además ya ves como va a insertar la imagen sin guardarla en el Rom y luego decides si cargarla o no.
Solo exportas la imagen y no la paleta verdad? Porque puede que al comerte un par de 00 (depende la paleta) se jode.
Otra cosa: Cuando dices que se queda negro, se queda negro y se congela, o se queda negro y se reinicia el rom?
#16
Dani_SR_17 28493
Iniciado por HolyNight~
Pues haber, yo tambien recomiendo el Nlz, además ya ves como va a insertar la imagen sin guardarla en el Rom y luego decides si cargarla o no.
Solo exportas la imagen y no la paleta verdad? Porque puede que al comerte un par de 00 (depende la paleta) se jode.
Otra cosa: Cuando dices que se queda negro, se queda negro y se congela, o se queda negro y se reinicia el rom?


Si, solo exporto la imagen, porque la paleta ya está en la rom.

Cuando se queda en negro se congela.

---------------------------------------------- Edito para aclarar ----------------------------------------------

Bueno, vamos a ver voy a intentar aclararlo todo un poco:

-Uso Fire Red.
-Intento cambiar está imagen, por la misma, pero la que está en la rom esta en inglés:
-La paleta ya está en la rom, puesto que es todo igual, solo cambia la imagen en sí.
-Si repunteo la imagen en direcciones superiores a 700000, es decir, donde hay espacio libre, la pantalla se queda en negro y el juego se bloquea.
-La imagen que está en la rom, si la exporto pesa 4,84 KB, en cambio la que quiero insertar pesa 3,88 KB.
-Acabo de probar NLZ, si no cambio el offset, me dice: "Old data is biggest than new. Cancelling"

Bueno, nunca he cambiado imágenes ni nada, tened un poco de comprensión :shy:

[MENTION=12296]cosarara97[/MENTION], [MENTION=27515]LaGordaBlissey[/MENTION], [MENTION=15014]HolyNight~[/MENTION]
#17
cosarara97 12296

He repunteado con NLZ Advance a 0x870000. Todo correcto.
#18
cosarara97 12296
Bueno, por algún motivo, youtube es retrasado y me ha bajado la calidad del video una barbaridad (edit: oh, ya no. bien.). El beep del micro es culpa mía (ese micro me costó como 5€, heh). Oh, sí, y tengo la voz más alegre que se ha oido nunca en este video.
YouTube Video
https://www.youtube.com/watch?v=Nozc_Vsa--o
#19
Dani_SR_17 28493
Iniciado por cosarara97
Bueno, por algún motivo, youtube es retrasado y me ha bajado la calidad del video una barbaridad (edit: oh, ya no. bien.). El beep del micro es culpa mía (ese micro me costó como 5€, heh). Oh, sí, y tengo la voz más alegre que se ha oido nunca en este video.
YouTube Video
https://www.youtube.com/watch?v=Nozc_Vsa--o


Muchas gracias de verdad :D

En el hack te daré agradecimientos, te puedes creer que lo hice bien, es decir, lo que no sabía es que cuando ponía "Amount of pointer found : 1 ...." ya había que darle a "Write to rom" :leaking:


Bueno, dicho esto, ya se puede cerrar el post :D
#20
Tito Sayer301 26309
Pueees cierro!