Registrarse

[Gráficos] FR | Cambiar la intro de Gengar VS Nidorino

FEL!X

ᴛᴜ ᴀᴍɪɢᴏ ᴇʟ ᴇsᴘᴀᴅᴀᴄʜíɴ
Usuario de Oro
¡Hola WAH! Hoy os traigo un pequeño tutorial que hace tiempo que quería traer. Nada más ni nada menos que un fantástico tutorial que muchos esperaban y que cualquier hacker debería aplicar. ¿Qué que lograréis hacer? Esto:



Lo que hoy os traigo es una re-make desde el principio del tutorial en inglés de PokéCommunity [Tutorial] Editing the intro battle FR/LG de un fantástico usuario Griego llamado Azoula.

A parte de la traducción he hecho algún que otra extensión o cambio de la explicación para que sea más fácil de seguir para todos y agregado alguna que otra imagen para complementar. He investigado a fondo el tema; espero que lo disfruteis.

Con éste tutorial aprenderás a cambiar los fondos y los sprites de pokemon que se ven en la intro.

Programas a usar
unLZ o NLZ-GBA advance
NTME
Advance Palette Editor (APE)
SphereEditor
Character maker Pro (CMP) (O cualquier otro editor que permita la edición de imagen y de sus paletas.)
Paint
Opcionales:
FreeSpaceFinder (FSF)
VisualBoyAdvance (VBA) con función paletteviewer

Aclaraciones antes de empezar
Trabajaremos con varios archivos y nunca va mal mencionar como funcionan:

Archivo.png -> Es un archivo de imagen el cuál puedes editar con paint.

Archivo.bmp-> Es un archivo de imagen editable tanto en paint como en CMP

Imagen de tileset ->
es una imagen fragmentada en cuadrados de 8x8 pixeles no idénticos que nos sirve para ahorrar espacio en la ROM. Está pensada para no tener que insertar imágenes enteras.

Archivo.act -> Contienen nuestras paletas de colores. Los obtenemos con CMP o mediante la función de guardar paletas del “paletteviewer”.

Archivo.rmp -> Es un archivo de datos de mapa que ordena nuestro tileset para formar la imagen que era antes de fragmentarse en cubos de 8x8. La podemos crear con la opción “Image to Map” del Sphere Editor y editar con NTME.

Archivo.raw -> Es un archivo de datos de mapa al igual que el anterior pero este está hecho de cara a ser insertado a la rom mediante unLZ o NLZ. Lo obtenemos de NTME a partir del tileset y del archivo .rmp.
Trabajaremos con varios programas; no está de más explicar un poco por encima como funcionan:

unLZ -> Es el programa que usaremos para abrir nuestra rom y buscar aquellas imágenes que queramos substituir. Por lo personal, recomiendo NLZ ya que éste, a diferencia del anterior busca por direcciones offsets.

Quiero aclarar que; si no estás trabajando en una rom vacía quizás las direcciones de unLZ que te dé no sean las mismas. Esto se debe a que, como dijo mi amigo @~Naren Jr. las direcciones de unLZ empiezan en un determinado offset y si añades imágenes antes las direcciones posteriores cambiaran. Pero no te preocupes porque te voy a colocar una imagen para que identifiques las direcciones a las que me refiero. Este es el porqué de NLZ ya que la direcciones de unLZ variaran pero los offsets de las imágenes no.

NLZ-GBA advance -> Es el programa que usaremos para abrir nuestra rom y buscar aquellas imágenes que queramos substituir; como ya he dicho se parece a unLZ pero es mejor herramienta en cuanto a búsqueda de offsets.

APE -> Es el programa que usaremos para abrir las paletas de la rom y modificarlas. Recuerda que las paletas están formadas por 16 colores de los cuáles el primer color actúa como transparencia.
SphereEditor -> Es el programa con el cuál crearemos los archivos .rmp y los tilesets. Primero abriremos nuestra imagen con “Image to Map” para hacer el archivo.rmp y abriremos éste para copiar el tileset a paint.

FSF -> Es un programa con el cuál buscaremos espacio libre en nuestra rom para añadir si es necesario imágenes de mayor tamaño.

NTME -> Es el programa con los que crearemos los archivos .raw. Lo haremos mediante un Tileset y un .rmp. Gracias al archivo ,rmp se nos ordenará el tileset automáticamente. Solo faltará decidir que paletas darle al tileset y guardar la raw.

Character maker Pro o CMP -> Con este programa editaremos las imágenes .png o .bmp. Co éste podremos modificar a gusto nuestra imagen y sus paletas.

Tutorial

Nivel de conocimientos: Normal (?)

Recomendaciones antes de empezar

Antes de empezar con el tutorial te sugiero que tengas en cuenta de que como vas a modificar tu rom pienses en ir haciendo copias de seguridad de ésta. Te ayudarán a no perder tu progreso y a ver los resultados de cada paso del tutorial. Dicho esto; empezamos:

Para empezar tenemos que tener primero las imágenes que queramos insertar preparadas. Para ello tenemos que tener claro unas medidas concretas y unas estructuras determinadas. Par la intro yo escogeré algunos sprites originales de pokemon y alguna editación mía.

Trabajaremos con tres escenas las cuáles cada una tiene sus sprites como componentes de la misma:

Escena1: Nidorino1,Gengar1,Battleground1,BGPlantas
Escena2: Nidorino2, Gengar2
Escena3: Nidorino3,Gengar3,Gengar3final, Battleground2

Yo substituiré a Gengar por Arcanine y a Nidorino por Growlithe:

Escena1

Nidorino1 (Growlithe 1): Es directamente insertable y debe tener un tamaño de 64x64 píxeles. Su paleta debe ser la misma que la de Nidorino1(Growlithe1), es decir, la 004096AC.

Gengar1 (Arcanine1): Es directamente insertable y debe tener un tamaño de 64x64 píxeles. Su paleta debe ser la misma para todos los Arcanines, es decir, la 00405DA4.

Battleground 1 (tiene la estructura más compleja): No lo insertamos directamente. Debe tener un tamaño total 256x512 píxeles. Se compone por diferentes tramos con diferente altura. El primer tramo negro mide 32 de altura, el segundo 128 y el tercero 96. La imagen de fondo mide 96 de altura mientras que el fondo de color mide 160.

Quiero aclarar que el fondo de color (verde en mi caso) no debe ser el color de transparencia sino cualquier otro color. El color que será depende de la paleta que le asignemos; lo ideal es que sea el número 15 como el original.
El negro tampoco debe ser la transparencia; por lo tanto nuestra paleta será; 1 color de transparencia + negro + 14 colores. Su paleta es la 004053D4.

BGPlantas: No se inserta directamente. Tiene un tamaño total de 256x256 y la imagen se situa por encima de la mitad (128 en altura) cuyo tamaño es 256x32 píxeles. La paleta es 004053F4.

Escena2

Gengar2 (Arcanine2): No lo insertamos directamente. Debe tener un tamaño total 256x256 píxeles. El sprite (yo uso uno de 80x80) se sitúa dentro de un cuadro de 96x96 . Su paleta debe ser la misma para todos los Arcanines, es decir, la 00405DA4.

Nidorino2 (Growlithe2): No lo insertamos directamente. Debe tener un tamaño total 256x256 píxeles. El borde de debajo de 256x80 debe estar vacío ya que no se usa. El sprite (yo uso uno de 80x80) debe estar a 16 píxeles del borde derecho y dos píxeles por encima del borde del cuadro. Su paleta es 00406634.

Escena3

Gengar3 (Arcanine3): No lo insertamos directamente. Debe tener un tamaño total 256x512 píxeles. Se compone por cuatro cuadros de 256x128 los cuales constituyen la animación. El sprite (yo uso uno de 80x80) se sitúa por encima de 7 píxeles del borde inferior en cada uno de los 4 cuadros. Su paleta debe ser la misma para todos los Arcanines, es decir, la 00405DA4.

Gengar3final (Arcanine3final): Lo insertamos directamente y debe tener un tamaño total de 64x192 píxeles. Está estructurado en 3 cuadros de 64x64. El primer cuadro sostiene la parte superior del sprite, el segundo la parte superior debe ocupar la mitad de la altura del 64x64 (64x32) y el tercero debe está vacío. Su paleta debe ser la misma para todos los Arcanines, es decir, la 00405DA4.

Nidorino3 (Growlithe3): Lo insertamos directamente y debe tener un tamaño total de 64x320 píxeles. Está estructurado en 5 cuadros de 64x64. El primero son para los movimientos laterales, el segundo para el rugido, el tercero para el movimiento de retroceso, el cuarto para los saltos y el quinto para el ataque con salto final. Su paleta debe ser la misma que la de Nidorino1(Growlithe1), es decir, la 004096AC.

Battleground2: No lo insertamos directamente. Debe tener un tamaño total 256x256 píxeles. El fondo del bosque tiene un tamaño de 256x96 y está a una diferencia de altura de 32 respecto al borde superior y, por lo tanto, a una diferencia de 128 del borde inferior. Está formado por dos paletas la 004053D4 y la 00407430.
Para empezar a insertar los elementos previos; abrimos unLZ o NLZ. Yo usaré para el ejemplo unLZ aunque teneis todas las direcciones previamente así que no debería ser complicado encontrar nada.

Con lo de imágenes directamente insertables me refiero a las que no tienen un raw. Son el Nidorino1, Gengar1 y la animación de ataque final de Nidorino (Nidorino3). Yo haré el ejemplo con Nidorino1 pero son los mismos pasos para todos los demás.

1: Abrimos nuestra ROM en unLZ y nos vamos a la dirección de Nidorino1 que es 234 en unLZ (004096CC si usas NLZ) mediante el botón “GoTo”:



2: Hacemos click en “Import” y abrimos nuestra imagen.



3: Con nuestra imagen ya importada le damos a “Write to Rom” para guardar este cambio a nuestra ROM; saldrá un mensaje como éste; dadle a “OK”.



4: Entonces comprobamos que nuestra imagen está insertada abriéndola en VBA. Muy bien, imagen insertada pero… ¡OPS! Esos no son los colores. ¡Tenemos que substituir la paleta!



5: Abrimos nuestra ROM en APE y buscamos el offset de la paleta que queremos substituir; en este caso para Nidorino1 la 004096AC. Le damos a cargar y obtenemos la paleta que buscábamos:


6: Ahora vamos a importar nuestra paleta; en mi caso, los colores de Growlithe 1. Le damos al botón de importar de la esquina inferior derecha y buscamos nuestra paleta. ¡Cuidado! Por defecto nos busca el formato de paleta APE (.gpl). Dadle click a .act y acto seguido a “Abrir”.



7: Para finalizar le dais click a “Guardar” y…¡Listo! ¡Imagen insertada con sus paletas!

Ahora solo falta repetir el proceso con las otras imágenes. Decir por adelantado que la paleta del Nidorino1 y Nidorino3 son la misma así que no tendrás tanto trabajo.
El tercer paso es el más complejo ya que no insertaremos las imágenes directamente sino que insertaremos sus tilesets conjuntamente de la raw que ordena estos tilesets para formar las imágenes que acabamos viendo en rom.

En esta parte los pasos son todos los mismos para todas las imágenes a excepción del montaje de la raw, debido a que son paletas diferentes. Pero no os preocupeís que dejaré las paletas correspondietes a cada raw.

Las imágenes que substituiremos aquí son; el Gengar2 y 3, el Nidorino2 y ambos battleground. Empezamos:

1: Yo; como primer paso insertaré la paleta porqué así podré identificar los cambios que hago en mi rom. Para este ejemplo usaré a Arcanine3 en lugar de Gengar3 así que le pondré sus paletas. Abrimos APE y substituimos la paleta; en el caso del tercer Gengar la 00405DA4. Es lo mismo que hicimos en los pasos 5, 6 y 7 de la Parte 2.

2: Ahora vamos a hacer el archivo.rmp. Abrimos Sphere Editor y le damos a “Import” en “Image to Map”. Abrimos la imagen y guardamos el archivo.rmp:


Le damos las mismas dimensiones para la base y la altura – 8 para ambas – y le damos a “Ok” y acto seguido a “Sí” (Lo que comfirmamos es que el tileset no duplique tiles y así ocupe menos):



3: Continuando con Sphere abrimos el Archivo.rmp que acabamos de crear. (lo puedes arrastar de la pantalla al programa para abrirlo directamente). Le damos al botón de nuestro teclado Print Screen o “PrtScr” y lo pegamos en un paint.


4: Recortamos todo lo demás y dejamos solo nuestro tileset intacto. Lo guardamos como imagen bmp de 24 bits.



5: Ahora con CMP abrimos nuestro Tileset y la imagen en sí y le damos a “Editar la paleta” y copiamos la paleta.


6: Acto seguido editamos la paleta del tileset; pegamos la paleta correcta a continuación y borramos la anterior substituyendo así la paleta. Después vamos al cuadrado del primer tile y los volvemos transparente. Guardamos como .png y ¡Listo!


7: Ahora abrimos NTME y le damos a “Open tilest” para cargar el archivo .png que acabamos de crear en CMP y después de esto a “Open TileMap” en “From Sphere RMP File” para cargar el archivo .rmp que hicimos en el paso 2.

Acto seguido, nos vamos a la pestaña “PaletteMap” y seleccionamos la paleta que corresponda a la rom. En el caso de Gengar3 (Arcanine3) es la paleta 5. Entonces dibujamos nuestras imagenes con la paleta (no hace falta poner ceros ya que se ponen por defecto):


Este paso; a diferencia de los otros es variable ya que tendremos que escoger la paleta correspondiente dependiendo de la imagen que queramos substituir:

Para el Battleground1 pintaremos en NTME con la paleta 2 aquello que substituye el fondo de los árboles y con la paleta 1 el fondo de color.
Para el BGPlantas pintaremos en NTME con la paleta 1.
Para el Battleground2 pintaremos en NTME con la paleta 1.
Para el Gengar2 y Gengar3 pintaremos en NTME con la paleta 5.
Para el Nidorino2 pintaremos en NTME con la paleta 6.

8: Para terminar abrimos unLZ y insertamos nuestro tileset (¡TILESET!¡No imagen!) con el mismo procedimiento que en la parte 2. Finalmente, vamos a la dirección de la raw correspondiente y le damos a “Load Raw” para cargar la raw que acabamos de hacer en el paso 7 y guardamos como si de una imagen se tratara.

¡Y así termina el tutorial! El procedimiento es el mismo para las otras imágenes con Raw solo tienes que acordarte de poner la paleta adecuada en el paso 7.

Direcciones​

Escenas1y2
*Background*
P0-Fondo negro
P1- Plantas que tapan ambos sprites (BG0) “BGPlantas” / Color naranja 15 del segundo cuadro del Battleground 1 para la segunda escena (BG3) [004053B4]
P2-Battleground 1- parte superior: bosque (BG3) [004053D4]
P3-Battleground 1- parte inferior: hierba (BG3)
P4-Vacía?
P5-Paleta para todos los Gengars [00405DA4]
P6-Nidorino2 (BG1-Escena2) [00406634]

*Sprite*
P1-Nidorino1y3 [004096AC]
P2-(?) [00409A1C]

Escena3 (Solo cambian offsets para P1 y P2)
P1-Battleground 2- parte superior: bosque (BG1) [00407430]
P2-Battleground 2- parte inferior: hierba (BG1) y movimiento de la planta final [004053F4]
Dejo aquí la lista que os ayudará a encontrar todo aquello que necesiteis buscar. Podeis insertar mediante la busqueda en unLZ o mediante los offsets con NLZ:

Primera escena:

Nidorino1: Se sitúa en la dirección unLZ 234 y su offset es 004096CC

Gengar1: Se sitúa en la dirección unLZ 233 y su offset es 0040926C

Background1: Se sitúa en la dirección unLZ 221 y su offset es 00405414. Su raw en 222 y su offset es 00405890.

BGPlantas: Se sitúan en la dirección unLZ 223 y su offset es 0405B28. Su raw en 224 y su offset es 0405CDC.

Segunda escena:

Nidorino2: Se sitúa en la dirección unLZ 227 y su offset es 00406654. Su raw en 228 y su offset es 004071D0.

Gengar2: Se sitúa en la dirección unLZ 225 y su offset es 00405DC4. Su raw en 226 y su offset es 0040644C.

Tercera escena:

Gengar3: Se sitúa en la dirección unLZ 231 y su offset es 00407B9C. Su raw en 232 y su offset es 00405DA4.

Nidorino3: Se sitúa en la dirección unLZ 237 y su offset es 0040A3E4. Es la animación de ataque final.

Gengar3final: Se sitúa en la dirección unLZ 236 y su offset es 00409D20. Es Gengar recibiendo el ataque final durante el flash.

Background2: Se sitúa en la dirección unLZ 229 y su offset es 00407470. Su raw en 230 y su offset es 00407A50.

Líneas finales​

Para terminar decir que cualquier error que veáis o cualquier duda que tengáis no tengáis miedo a preguntar. A medida que preguntáis haré reediciones del post con algo parecido a “Preguntas Frecuentes”. Al fin y al cabo, todos somos hackers y todos juntos aportamos.

Ha sido un placer rehacer el tutorial desde el principio ya que con el de Pokecomunity muchos pasos tenían errores o explicaciones poco detalladas. A mí me costó muchas horas y con este tutorial espero aliviar esto. Siguiendo este tutorial he conseguido hacer todo en muchísimo menos tiempo así que me alegro de haber conseguido compartir esto con el resto de la comunidad.

Prometo ir editando el post.

¡Un abrazo a todos! ¡Nos vemos! FEL!X
PD: Espero no haberos contagiado el “vayarollodetextitis” :D

Doy paso a “Preguntas Frecuentes”:



Siempre va bien aclarar esto. Cuando unLZ detecta que la imagen es mayor a la que se quiere substituir te pedirá que repuntees. ¿Qué qué es repuntear? Pues simplemente es redireccionar la imagen a un nuevo espacio para que cuando la rom la busque la busque ahí donde has repunteado. Para no sobrescribir un espacio vacío usamos FSF.

En mi caso me ha dado 4E0.. pero ¡Cuidado! unLZ te dice el tamaño en hexadecimal así que debes convertirlo en decimal para que FSF te busque el espacio correspondiente. Copia el offset que te da FSF en unLZ y dale strike a “Automatically fix pointers”. Dale a “OK” y listo, te saldrá un mensaje diciendo que el pointer ha cambiado. Ya tienes tu imagen insertada.


Por otra parte, seguramente también te interese:

FR | Gráficos | Cambiar intro por una imagen de @Jo7a
FR | Gráficos | Insertar portada de 240 colores de @Moon Lover~
FR | Gráficos | Editar Charizard de @JorgeZero
FR | Gráficos | Cómo cambiar los largesprites de la intro de @~Ruki! posteado por @Sayer301!
 
Última edición:

Dani_SR_17

¡Pokémon LionHeart!
Respuesta: FR | Gráficos | Cambiar la intro de Gengar VS Nidorino

No me entretengo mucho, que no tengo mucho tiempo, pero ¡BRAVO!

Aun siendo un tutorial sacado de otro, está muchísimo más completo y explicado, ten por seguro que lo usaré dentro de no mucho.
 

Pacodelopio

Entrenador Pkmn
Respuesta: FR | Gráficos | Cambiar la intro de Gengar VS Nidorino

Ijoder ahora mismo lo pruebo!!!!
De hecho yo intente hacerlo pero la imagen en q sale el back cn l fondo naranja no tnia manera ninguna d hacerlo buen tutorial... Luego edito y te comento que tal muxas gracias gran aporte

____________________


Bueno me ha salido aunque con un bug en la parte del fondo naranja, no sale solo un fondo naranja si no que además sale algun tile de mas pero lo demas todo perfecto.
Otro dia pongo imagen del bug.

Yo creo que es a la hora de pintar con ntme, porque hay veces que no se sabe cuantos cuadritos pintar yo he optado por pintar 80 cuadritos porque las imagenes eran 80 x 80 (las de los sprites) menos los de 64 x 64
 
Última edición:
M

Miembro eliminado 28262

Invitado
Respuesta: FR | Gráficos | Cambiar la intro de Gengar VS Nidorino

He aplicado todos esos tutoriales y son la polla!
es fantástico que aparte de traducir el tutorial de Azoula
hayas creado tu propia versión, en lugar de hacer un copypaste
Muchisimas gracias!

PD: Deberías añadir el tutorial de Sayer para cambiar los Largesprite en los "intereses"
así sería una minisección completa.

Saludos y Buenas vibras!
Gracias!
 

Aguiar

Colega de los colegas
Miembro del equipo
Staff
Respuesta: FR | Gráficos | Cambiar la intro de Gengar VS Nidorino

Un aporte de puta madre. Muchas gracias por traerlo tan bien explicado y traducido.
 

Sayer301!

UnityLord!
Miembro de honor
Respuesta: FR | Gráficos | Cambiar la intro de Gengar VS Nidorino

Fuck yeah, te has coronado Felix, un tuto así mola que te cagas, ahora a ver que se le ocurre a cada uno!! Muchas gracias por traer esto y sigue engorilao!!!
 

Jo7a

Kiero mi nick amarillo D:
Respuesta: FR | Gráficos | Cambiar la intro de Gengar VS Nidorino

De 10.
Tutos asi son los que mas faltan, con cosas innovadoras como esta.
Ya me enseñaste el tuto original y dije: Mola que te cagas!

Que al pelo que lo hayas traido en español, eres un crack ;D
 

Gold

Porrero a tiempo parcial
Miembro insignia
Respuesta: FR | Gráficos | Cambiar la intro de Gengar VS Nidorino

Me gusta el tutorial, aunque para ser sincero en vez de esforzarme en cambiar eso mejor lo desactivo y me lo salto :v

Deberías añadir el tutorial de Sayer para cambiar los Largesprite en los "intereses"
así sería una minisección completa.
Ehhhm, el tutorial es mio, yo lo redacté en Inglés y español, y le pedí a Sayer que lo posteara por mi.
 

Naren Jr.

Puto amo
Usuario de Platino
Respuesta: FR | Gráficos | Cambiar la intro de Gengar VS Nidorino

Felicidades :) ha sido una gran redacción paso a paso, ademas de ello has definido cada una de las acciones realizadas, hacia tiempo no se veía un tutorial así.

Solo entré a comentarte, y sabes jaja lo probaré de una!

Con lo bien explicado que esta dan ganas de hacerlo de una!

Un saludin
 
Arriba