Registrarse

[Gráficos] Añadir más frames a tus minis

eing

Miembro de honor
Miembro de honor
¡Qué pasa crustáceos!
Hoy me he levantado generoso, y he dicho.. ¿Por qué no aportamos algo a Whack a Hack?

Bien, se trata de un tutorial de como añadir más frames a tus minis.
Y no, no hablo del método del NSE chapuza. (Que además a mi solo me permite añadir 9 frames LOL)
Con esto, conseguiremos que cuando hagamos un cambio de mini (sea cual sea) no hará falta desactivar las zapatillas.


Vale, dejémonos de habladurías y, ¡Comencemos!

Abrimos nuestro rom con el Overworld Editor, o el NSE (Preferiblemente el OwE) y lo ponemos en Modo profesional (Ctrl + M)

Tal que se nos vea así:
NSE:



OverWorld Editor


Una vez puesto en modo profesional, nos vamos al minisprite que queramos añadir más frames.
Por ejemplo yo quiero añadirle más frames al mini nº 7.


Entonces lo primero que haremos será repuntear este mini. ¿Cómo?
Fijándonos en el siguiente dato:

En NSE -> Sprite Pointer: 08324128
En OwE -> Dirección del mini : 08324128

Estos datos, son los offsets que contiene el frame de cada sprite. (Si avanzan al siguiente frame, verán que el offset cambia).

Así que, para copiar el mini entero, habrán de hacer lo siguiente:
En el HxD ir a la dirección 08324128 y copiar hasta el primer frame del siguiente mini (08324a28), es decir copiar 900 bytes. (100 bytes por frame)

Y los copian en una dirección vacía. (Por ejemplo, yo los copiaré en la dirección 0x08700000).

¿Y ya está?
¡NO!
¡Aún queda más magia por hacer!

Bien, ahora insertaremos los frames de correr ENCIMA de los frames normales.
(Es decir, en el NSE u OverWorld Editor cuando vayamos al mini número 7 veremos al mini corriendo)

Una vez hecho esto, tendremos que crear una nueva tabla de frames.
Entonces nuevamente, nos vamos a un espacio libre, por ejemplo el 0x870A000 , y creamos la tabla de frames.
¿Como?
Muy sencillo, escribiendo los punteros de cada frame. Tal que quedaría algo así:

00 00 07 08 00 01 07 08 00 02 07 08 00 03 07 08 00 04 07 08 00 05 07 08 00 06 07 08 00 07 07 08 28 41 32 08 28 42 32 08 28 43 32 08 28 44 32 08 28 45 32 08 28 46 32 08 28 46 32 08 28 47 32 08 28 48 32 08 28 49 32 08
*Nota: Para saber el puntero del siguiente frame hacer lo siguiente: Offset Frame 0 + 100, e ir sumandole 100 a cada frame.

Ya hemos creado la tabla de frames, y ahora para finalizar, toca repuntear la antigua tabla de frames, y los datos son los siguientes:

NSE -> Pointer 3: 0836E350
OwE -> Pointer del sprite: 0836E350

Entonces, en el HxD buscamos esa dirección permutada (50E33608)


Y una vez encontrada:

La sustituimos por la dirección donde se encuentra nuestra tabla de frames!
(0870A000)

Y uala, ahora si hacemos el cambio de mini (con ASM o sin) si tenemos las zapatillas CORRERÁ!

HAVE FUN HACKING!
 

fonix

Avanzando cada día mas!
Respuesta: [GBA][AVANZADO] ¡añadir más frames a tus minis!

Un tutorial completo y bastante bueno jejejeje.
 

Dr._Seuss

Average RomHacker
Respuesta: [GBA][AVANZADO] ¡añadir más frames a tus minis!

Pssada de tutorial, no había pensado en que al cambiar el mini del prota las deportivas darían problemas, ahora que lo sé, voy a aplicar este tuto, sigue asi eing c:
 

FEL!X

ᴛᴜ ᴀᴍɪɢᴏ ᴇʟ ᴇsᴘᴀᴅᴀᴄʜíɴ
Usuario de Oro
Respuesta: [GBA][AVANZADO] ¡añadir más frames a tus minis!

¡Muchas gracias por el tutorial eing! Me irá de perlas para los cambios de mini y para los otros NPCs especiales del juego. Venga, a correr como nunca.
Merci por el aporte. Un abrazo. ;)
 

BLAx501!

A veces comento en temas :3
Miembro de honor
Usuario de Platino
Respuesta: [GBA][AVANZADO] ¡añadir más frames a tus minis!

Eres un genio @eing

Un aporte genial que seguro que le viene bien a muchísima gente, a mí el primero :3
 

Sayer301!

UnityLord!
Miembro de honor
Respuesta: [GBA][AVANZADO] ¡añadir más frames a tus minis!

Bueno, el tutorial mola mucho, le da mas flow al asunto para no gastar mas minis en hacerlos corriendo. Grande eing!
 
Última edición:

Nacho

Nadando hasta la otra orilla
Respuesta: [GBA][AVANZADO] ¡añadir más frames a tus minis!

Esto funcion tanto e Ruby como en FR no es así?
 

Adke

weeeh
Respuesta: [GBA][AVANZADO] ¡añadir más frames a tus minis!

Muy buen aporte, muy útil y bien explicado ^^

A ver si te levantas generoso más a menudo :awesome:
 

eing

Miembro de honor
Miembro de honor
Respuesta: [GBA][AVANZADO] ¡añadir más frames a tus minis!

Pssada de tutorial, no había pensado en que al cambiar el mini del prota las deportivas darían problemas, ahora que lo sé, voy a aplicar este tuto, sigue asi eing c:
Gracias!
Y sí, si corres y no tienes los 16 frames, se verá mal. Con esto lo arreglamos ^^

¡Muchas gracias por el tutorial eing! Me irá de perlas para los cambios de mini y para los otros NPCs especiales del juego. Venga, a correr como nunca.
Merci por el aporte. Un abrazo. ;)
Si, es ideal para eso, manejar otro mini y que puedas correr con él.

Eres un genio @eing

Un aporte genial que seguro que le viene bien a muchísima gente, a mí el primero :3
Pues a ver si lo usas!

Bueno, el tutorial mola mucho, le da mas flow al asunto para no gastar mas minis en hacerlos corriendo. Grande eing!
Pues ya tardas en usarlo hahaha así te veo manejar a otros.. a zoro por ejemplo!

Esto funcion tanto e Ruby como en FR no es así?
Yes, funciona en ambos :D

Muy buen aporte, muy útil y bien explicado ^^

A ver si te levantas generoso más a menudo :awesome:
Bueno, no siempre uno se levanta generoso hajaja
 

Skyflyer

En busca de conocimiento
Respuesta: GBA | Gráficos | [AVANZADO] ¡Añadir más frames a tus minis!

A ver si lo he entendido... con esto añades más frames a un mini para poder hacerles la animación de correr?
 

eing

Miembro de honor
Miembro de honor
Respuesta: GBA | Gráficos | [AVANZADO] ¡Añadir más frames a tus minis!

A ver si lo he entendido... con esto añades más frames a un mini para poder hacerles la animación de correr?

Exacto, si no no podrán correr con las zapatillas deportivas.
Ya que un mini normal tiene 8 frames, y uno especial 16.
Entonces para tenerlos corriendo te toca hacer eso.
Y es universal el proceso, sirve tanto para fr como ruby como EM, puesto que es solo aumentar el array de frames
 

FEL!X

ᴛᴜ ᴀᴍɪɢᴏ ᴇʟ ᴇsᴘᴀᴅᴀᴄʜíɴ
Usuario de Oro
Respuesta: GBA | Gráficos | [AVANZADO] ¡Añadir más frames a tus minis!

[...]
Así que, para copiar el mini entero, habrán de hacer lo siguiente:
En el HxD ir a la dirección 08324128 y copiar hasta el primer frame del siguiente mini (08324a28), es decir copiar 900 bytes. (100 bytes por frame)
[...]

*Nota: Para saber el puntero del siguiente frame hacer lo siguiente: Offset Frame 0 + 100, e ir sumandole 100 a cada frame.
[...]
En su día ya comenté éste buen tutorial. Hoy estaba insertando un mini de 32x32 y solo me faltaban los frames de correr por lo que me he vuelto a pasar por este por. De paso quiero añadir unos puntos:

Éste tutorial estaba pensado para minis de 16x32 y por ello el espacio entre cada frame tiene una longitud en hex de 100 bytes.

Pero no por ello solo es aplicable a minis de éste tamaño, también es aplicable a minis de 32x32. En el caso de los minis de 32x32 la longitud en hex es el doble (Lógico, es el doble de base); es decir, la longitud en hex es de 200 bytes para cada frame.

He seguido el tutorial teniendo en cuenta la longitud de 0x200 bytes y ha quedado perfecto :D Gracias de nuevo.


Demostración matemática:


Caso mini 16x32


  • 16x32 = 512 pixeles = 512 Puntos de color
    (A cada pixel se le asigna una paleta)
  • Cantidad de bytes=512/2=256 bytes
    (2 Colores de la paleta independientes por byte)
  • Longitud en HxD= 100 bytes (en hex)
    (256 es igual a 0x100 )

Caso mini 32x32


  • 32x32 = 1024 pixeles = 1024 Puntos de color
    (A cada pixel se le asigna una paleta)
  • Cantidad de bytes=1024/2=512 bytes
    (2 Colores de la paleta independientes por byte)
  • Longitud en HxD= 200 bytes (en hex)
    (512 es igual a 0x200 )

[...]

Y así es en todos los casos. Recordad que HxD da la longitud en hex en forma predefinida, por lo tanto son 0x100 bytes

Un abrazo :blush:

Pd/Extra: En NSE y OwE no me abren los frames que he insertado, el programa me sigue leyendo los 9 frames. Por lo que hace al juego, no problem, corre. No hay que preocuparse, en el juego si se ha seguido el procedimieto funciona erfecto.
Si uno está interesado en cambiar los frames de correr de nuevo y tiene el mismo problem siempre puede insertarlos en los primeros 8 frames en una copia de la rom con NSE o OwE, ir a HxD, copiar la cadena de bytes de los 9 frames, volver la rom y pegar los frames corriendo con HxD en el frame 10
 

eing

Miembro de honor
Miembro de honor
Respuesta: GBA | Gráficos | [AVANZADO] ¡Añadir más frames a tus minis!

En su día ya comenté éste buen tutorial. Hoy estaba insertando un mini de 32x32 y solo me faltaban los frames de correr por lo que me he vuelto a pasar por este por. De paso quiero añadir unos puntos:

Éste tutorial estaba pensado para minis de 16x32 y por ello el espacio entre cada frame tiene una longitud en hex de 100 bytes.

Pero no por ello solo es aplicable a minis de éste tamaño, también es aplicable a minis de 32x32. En el caso de los minis de 32x32 la longitud en hex es el doble (Lógico, es el doble de base); es decir, la longitud en hex es de 200 bytes para cada frame.

He seguido el tutorial teniendo en cuenta la longitud de 0x200 bytes y ha quedado perfecto :D Gracias de nuevo.


Demostración matemática:


Caso mini 16x32


  • 16x32 = 512 pixeles = 512 Puntos de color
    (A cada pixel se le asigna una paleta)
  • Cantidad de bytes=512/2=256 bytes
    (2 Colores de la paleta independientes por byte)
  • Longitud en HxD= 100 bytes (en hex)
    (256 es igual a 0x100 )

Caso mini 32x32


  • 32x32 = 1024 pixeles = 1024 Puntos de color
    (A cada pixel se le asigna una paleta)
  • Cantidad de bytes=1024/2=512 bytes
    (2 Colores de la paleta independientes por byte)
  • Longitud en HxD= 200 bytes (en hex)
    (512 es igual a 0x200 )

[...]

Y así es en todos los casos. Recordad que HxD da la longitud en hex en forma predefinida, por lo tanto son 0x100 bytes

Un abrazo :blush:

Pd/Extra: En NSE y OwE no me abren los frames que he insertado, el programa me sigue leyendo los 9 frames. Por lo que hace al juego, no problem, corre. No hay que preocuparse, en el juego si se ha seguido el procedimieto funciona erfecto.
Si uno está interesado en cambiar los frames de correr de nuevo y tiene el mismo problem siempre puede insertarlos en los primeros 8 frames en una copia de la rom con NSE o OwE, ir a HxD, copiar la cadena de bytes de los 9 frames, volver la rom y pegar los frames corriendo con HxD en el frame 10
Exacto, funciona para todo tipo de minis! Y todo tipo de roms!
La realidad es que esto es solo el uso de la logica + repunteo y ya esta! 0 segretos jaja

Y volviendo a lo ultimo, si quieres ver los frames corriendo basta con cambiar el offset pointer 3 del mini normal por el corriendo y ya lo ves!
Eso si despues de editar pon de nuevo el frame bornal hajaj
 

Saisar

Hago lo que puedo para ayudar a los demás ;)
Respuesta: GBA | Gráficos | [AVANZADO] ¡Añadir más frames a tus minis!

Ok muchas gracias, pero una pregunta. Si expandi los frames del mini... Como hago para llamar a ese frame del mini? osea, como hago aparecer ese frame que le agrege a mi mini
 

eing

Miembro de honor
Miembro de honor
Respuesta: GBA | Gráficos | [AVANZADO] ¡Añadir más frames a tus minis!

Ok muchas gracias, pero una pregunta. Si expandi los frames del mini... Como hago para llamar a ese frame del mini? osea, como hago aparecer ese frame que le agrege a mi mini
Los frames que puedes agregar con este tutorial son 8 mas de lo normal.
Aunque bueno si un mini solo tiene un frame, con este modo le puedes añadir los 15 restantes.

Btw, si el mini es el tuyo veras los frames al pulsar “b” para correr.
Si es otro mini tienes que buscar el applymovement que simula correr para que se vea.
(Hay un pequeño truco que es que uses esos 8 frames adicionales para crear comportamientos del mini).
 

Omega

Walking to the next new world...
Miembro de honor
Respuesta: GBA | Gráficos | [AVANZADO] ¡Añadir más frames a tus minis!

En su tiempo consulte este tutorial pero no comente, y ahora lo necesito otra vez xD
Bueno, es un gran tutorial y bastante útil si no quieres ver un mini que corre sin moverse, o simplemente quieres expandirle sus frames para que pueda caminar, muchas gracias por subirlo hace ya bastante tiempo y al día de hoy seguir respondiendo dudas :boogie:

Saludos!!!
 

Nacho

Nadando hasta la otra orilla
Bueno sufrí tratando de que funcionara el tutorial, gracias a Eing por la investigación, el caso es que yo lo apliqué en FR, y no funcionaba, así que hay que tener en cuenta estas cosa también. ( Sería bueno que refundieran el tutorial los moderadores con este aporte y el de Felix.)


El caso es que Eing no explica bien la tabla (al menos para FR) la cual debe tener la siguiente estructura:

XX XX XX 08 00 01 00 00, si el frame es 16x32 ó

XX XX XX 08 00 02 00 00, si el frame es 32x32


finalmente para que funcione del todo correctamente en las configuraciones de preferencia del NSE, deben editar la animación de "standar" a "player" si no el mini no reconocerá los movimientos de correr.
 

Edstereo

U Got Woomy
Respuesta: GBA | Gráficos | [AVANZADO] ¡Añadir más frames a tus minis!

¡Vaya, pero que buen Tutorial!

Es sencillo y muy bien explicado, ni en mis mejores años hubiera usado la logica asi xD. Ante todo un muy buen tutorial, me tocara probarlo en Emerald ahora.
 

Nacho

Nadando hasta la otra orilla
Chic@s ando con problemas al expandir la tabla de minis . Ni idea la causa. Es posible que esta sea la razón? Expandi los frames de un mini para que pueda correr. Ojala me. Puedan ayudar.
 

eing

Miembro de honor
Miembro de honor
Chic@s ando con problemas al expandir la tabla de minis . Ni idea la causa. Es posible que esta sea la razón? Expandi los frames de un mini para que pueda correr. Ojala me. Puedan ayudar.
¿Qué problemas tienes a la hora de expandir la tabla de minis?
Si en principio solo es repuntearla a un nuevo offset y ya está. (Al no ser que haya algun byte/s por ahí suelto/s indicando un límite..)
En este tutorial, lo único que haces es repuntear, pero en vez de la tabla de minis, la tabla de animación de ese mini en concreto, para que pase a tener de 8 frames a 16. (Para que pueda correr..)
De echo, seria buenko averiguar que byte determina si tiene 8 o 16, y así poder verlo en la herramienta, pero en su dia no lo encontré.

Y ONTOPIC: sí, este tutorial dice 100 bytes pero porque el tamaño del mini a cambiar es de 16x132. Si fuese mayor hay que hacer la operación que dice @FEL!X.

Btw, que haceis aún rom hackeando?
Rom hackear está bien para pequeñas modificaciones (por ejemplo einglocke) o crear retos que no afecten en exceso el rom.
Para hacer cosas completamente nuevas (aunque sea en 2D) si es de pokémon lo mejor es tirar de decomp.
Creo que cuanto mas apoyo tenga, mejor.
 
Arriba