Registrarse

[Otros] FR | Agregar nuevos tipos sin sustituir!

Berserker1523

2-Intentando discernir qué es lo más importante...
Introducción



Muy buenas a todos gente! He decidido traerles la adaptación del tutorial de ShyRayq:
https://web.archive.org/web/20160531010632/https://www.pokecommunity.com/showthread.php?t=313872 de PokeCommunity para Rojo Fuego, la traducción la podrán encontrar aquí: https://whackahack.com/foro/t-26860/fr-otros-agregar-tipos-cero-sin-sustituir-traducido-por-mi-pokecommunity , pero aprovechando que este último no tiene imagenes y me parece que está un poco mal explicado, aprovecho también para explicarles algunas cosas más. Literalmente no dormí por hacer esto así que espero que si notan algún error decidmelo por favor. Sin más preámbulos vamos allá!


Herramientas a utilizar:

  • NSE 2.0
  • Character Maker Pro (CMP)
  • Un heditor Hexadecimal, v.gr. , HxD
  • Una ROM de Rojo Fuego (también pueden encontrar los offsets de Fire Red en cualquiera de los tutoriales antes mencionados)
  • Un editor de imágenes, v.gr. , paint, paint.net


1. Los Iconos de los Tipos

Primero abrimos la ROM en NSE 2.0



En el panel "Edit Sprites" oprimimos "Navigate", se nos abre una ventana, en la parte derecha ampliamos la carpeta que se ve, ambiamos "BPRE", "Hud", "PKMN" y por último damos clic en "Status".



En la parte derecha de esa misma "sub"-ventana, donde pone "Image" escribimos E95D10 y debajo, donde dice "Palette", ponemos E95CF0. Le damos a "open" (abajo a la derecha de la misma "sub"-ventana) y "close".



Ahora para exportar la imagen y poderla editar, vamos arriba a la derecha (o pueden presionar "Ctrl + Shift + E") donde dice "File", "Export", "Export Bitmap" y seleccionan donde guardar la imagen.





Editando la imagen para agregar un nuevo tipo​

En este caso, yo insertaré el tipo Hada, pero ustedes pueden insertar el (los) que quieran. Para modificar la imagen, si necesitan ampliarla (como lo he hecho yo) ya sea en ancho o alto (yo amplié este último) deben tener en cuenta que el número de píxeles del alto y el ancho deben ser divisibles por ocho. Por ejemplo, las dimensiones de la imagen original son 128x128 (128/8 = 16), yo la amplié a 128x144 (128 / 8= 16 || 144 / 8 = 18).



Como dato curioso, ShyRayq, menciona que, teóricamente, se pueden agregar hasta 250 tipos, es decir, que la imagen puede tener dimensiones arbitrarias.



Editando la Paleta

Algo en lo que tuve muchos problemas al seguir el tutorial, fue el tema de las paletas (de hecho fue la primera vez que trabajaba con ellas), lo cual no se explica. Les explicaré como organizar la paleta para que, parcialmente, no tengan ningún inconveniente.

Abran el CMP y su imagen. Aquí yo ya tengo la paleta organizada, pero seguramente a ustedes no les aparecerá igual.



Lo que deben hacer es organizar los colores de manera que:
  • El primero color sea el color de fondo (en este caso el verde oscuro).
  • Los demás colores queden de forma parecida a la imagen de abajo (No sé si esto es necesario).
  • Deben dejar un color para el texto en una posición determinada de la paleta (el que aparece en la interfaz pokémon, no el nombre de los tipos), y un color para la sombra de este, este primero también es el color de la sombra de las imagen con el tipo.

Aquí pueden ver como funciona:






Volviendo al tema, y ¿cómo se editan las paletas? Pues en CMP vamos arriba, en la barra de menú, donde dice "Paletas" y luego "Editar Paleta" (o simplemente Shift + E). Se les abrirá una "sub"-ventana. Para cambiar de posición un color, lo seleccionan (presionan clic izquierdo y pasa el ratón encima de él y sueltan), le dan a "cortar", dan clic al lado del color donde lo quieren poner y presionan "pegar copia" (o simplemente ctrl + v). No olviden asignar sabiamente el colo del texto (y sombra del texto de los tipos) y el de la sombra.





Una vez arreglada la paleta, procedemos a insertar en la ROM. Abrimos NSE 2.0, y como antes, vamos a "Navigate", y abrímos las carpetas "Pokémon", "BPRE", "Hud", "PKMN", y abrímos "status". Colocamos de nuevo la dirección de la imagen y la paleta y aquí viene el cambio: en la parte derecha a donde ponemos las direcciones, donde pone "Size" cambiamos el ancho "Width" y el alto "Height" por el que ampliamos dividido entre 8. En mi caso yo solo amplié el alto a 144, por lo tanto pongo "18". No importa si debajo sale "mal" la imagen, denle a "open" y "close".



Ahora en la barra de menú, vamos a "File", "Import", "import Sprite Data" (o simplemente Ctrl + I). Le dan a "load sprite", cargan su imagen y si cambiaron la paleta (que seguro hicieron), seleccionan al lado "Image + Palette", y le dan a "Save".



Luego vamos a "File", "Insert", "Insert Image Data", automáticamente les buscará espacio libre, anotan el "data offset" porque lo utilizaremos después y por último "save". Luego, el mismo procedimiento con la paleta, "File", "Insert", "Palette Data", anotan el offset donde lo insertarán y guardan.



Ahora vamos a cambiar los punteros de la imagen y la paleta en la ROM. Abren HxD y con Ctrl + F (Buscar) escogen valores hexadecimales y ponen: 105DE908 , allí cambian ese valor por el puntero a su imagen con Ctrl + B para pegar o escribiendo directamente.



Cómo volver la dirección offset un puntero?

Pues si tu direccion offset es xxyyzz, lo separas de a 2 valores: xx yy zz, lo inviertes de esta manera: zz yy xx y le agregas un 08 al final: zz yy xx 08. Por ejemplo:

A mí se me insertó la imagen en 0x80CBA8, en puntero sería: A8 CB 80 08 y eso es lo que escribo


Lo mismo para la paleta, con Ctrl + F buscan los valores hexadecimales F05CE908 (estos están un poco más arriba) y los reemplazan por el puntero al offset donde se insertó su paleta.





Ahora procedemos a realizar los cambios para que el juego pueda leer que hemos insertado un nuevo tipo en la imagen y/o modificado la posición de los otros. Usando Ctrl+G (ir a...) vamos al offset 44D570, allí copiamos la longitud de 60 bytes y pegamos (con Ctrl + B) en un espacio libre.



Qué hacen todos estos valores? Pues son los datos que asignan un tipo con una imagen usando una serie de coordenadas:

(Imagen del tutorial de ShyRayq)



Para hallar la coordenada de un icono:
  • Miren las columnas, estás son 0, 4, 8 o C, en adelante.
  • Miren las filas, son 0, 20, 40, 60, 80, A0, en adelante.
  • Tomen el número de la fila y la columna, y unanlos.

Por ejemplo, en la imagen, el tipo Lumo se encuentra en la fila 100, columna 0. Su coordenada es 0x100. El tipo "Fajro" (Fuego), está en la columna 4, fila 20, su coordenada es 0x24 (0x ya que son números hexadecimales).

¿cómo añadimos la coordenada a la tabla? cada una está compuesta por 4 bytes:
  • El primer byte refiere al ancho del icono. Para los Tipos tienen ancho de 0x20 y los iconos de pp, precición, etc, tienen ancho de 0x28.
  • El segundo Byte es es la altura del icono. Todos tienen altura de 0x0C.
  • El tercer y cuarto Byte son la coordenada en sí y debe escribirse parecida a los punteros.

¿Cómo escribo mi coordenada? Por ejemplo tomemos el icono del tipo Fuego, su coordenada es 0x24, añadimos tantos 0s a la izquierda para llenar 4 digitos: 0024, los separamos en grupos de a 2 dígitos: 00 24 y por último los invertimos: 24 00.



Por ejemplo, para el tipo Hada, el cuál se encuentra en la columna 0 y fila 100, lo cual da 0x100, le agregamos tantos 0s a la izquierda para que sea de 4 dígitos: 0100, separo de a 2 dígitos: 01 00, e invierto: 00 01. Esta es la coordenada para el nuevo tipo que agregué! (Y así sucesivamente pueden hallar las coordenadas para cuales sean que añadan).



Si han insertado la imagen y abren el juego, tal vez vean que los tipos salen "cuadrados" y no con el bordeado que llevan, y además puede que les salga una línea a la derecha del color del tipo siguiente a este en la imagen.



Para solucionar lo segundo, pueden cambiar el ancho de los tipos, en vez de 0x20, 0x1F. Si alguien tiene una mejor solución o una a lo primero, pueden escribirme o postear aquí y yo con gusto lo agregaré al tutorial.

Ahora tenemos que repuntear, busquen el valor 70D54408 con Ctrl + F en su ROM, reemplazenlo por el puntero al offset donde pusieron los datos.




Probar que van bien

Berserker1523 dijo:
Datos de los Pokémon (Pokédex, es decir, de todos los pokes disponibles en el juego, no los del equipo del jugador) : "Real": 24FF4C
Hipotético: 24FF68 (datos bulbasaur).

Información útil: La longitud hipotética de los datos de un pokémon es de 17 Bytes (23 en decimal), los bytes n°7 y n°8 son los 2 tipos de pokémon (si tiene un solo tipo, tendrán el mismo valor). Luego de esto, vienen 2 bytes de valor 00, 1 byte de valor 03 seguido de otros 2 bytes de valor 00. Luego de esto empiza el siguiente Pokémon en la Pokédex (Ivysaur).
Entonces pueden cambiar el valor del byte n°7 o n°8 de un Pokémon para que sea:

Normal = 00
Lucha = 01
Volador = 02
Veneno = 03
Tierra = 04
Roca= 05
Bicho= 06
Fantasma= 07
Acero= 08
??? = 09
Fuego= 0A
Agua= 0B
Planta = 0C
Electrico= 0D
Psíquico = 0E
Hielo= 0F
Dragon = 10
Siniestro = 11

El nuevo tipo empezará desde 0x17, en mi caso el Hada, el 0x18, otro tipo que quieran agregar y así sucesivamente.



(No muestro una imagen In-Game porque no tengo a bulbasaur xD)
Y así probar que su imagen del tipo se ve bien y correcta!



2. Editando las Efectividades


Vamos a la dirección offset 24A7BC con Ctrl + G (Ir a...) y copiamos una longitud de 0x150 bytes y pegamos en un espacio libre.



Examinen los primeros 3 valores: 00 05 05. La efectividad es puesta en 3 bytes:
  • El primer Byte es el tipo atacante. (Mirar la tabla en "Probar que va bien").
  • El segundo Byte esel tipo defensor.
  • El tercer byte es el multiplicador de daño.

En este caso, el tipo atacante es el normal, el defensor el roca, y el multiplicador de daño es 0.5x , los movimientos de tipo normal le hacen la mitad del daño a los pokémon de tipo roca.

Lo multiplicadores normales son:
05 = 0.5x (no es efectivo)
00 = 0x (no afecta)
14 = 2.0x (super efectivo)

Pero ustedes también pueden colocar el multiplicador que quieran! por ejemplo, 5.6x de daño. Para hacerlo: tomen su multiplicador "5.6", multipliquenlo por 10 (5.6*10= 56), y por último, conviertan este número a Hexadecimal (56 = 0x38). Lo malo de esto es que no les saldrá el mensaje de "es super efectivo", etc, al atacar, eso deben cambiarlo ustedes con ASM.

Antes de hacer algún cambio, noten estos valores al final:



FE FE 00 significa que todo lo que este después es afectado por profecía (Foresight) 00 07 00 denota que normal le hace 0 de daño al fantasma y 01 07 00 lo mismo con el tipo lucha, pero al estar entre FE FE 00, pueden dañar si utilizan Profecía. El FF FF 00 significa el final de la tabla.

Entonces si quieren editar las efectividades para sus nuevos tipos, muevan estos últimos valores mencionados a la derecha y usen 17, 18, etc. Si quieren que su tipo sea afectado por profecía, entonces pongan su efectividad después del FE FE 00.

Una vez terminados de editar, tenemos que repuntear la tabla. Busquen los valores hexadecimales BC A7 24 08 con Ctrl+ F y cambienlos por el puntero al offset de su tabla. Una vez cambiado, deben volver a buscar este valor y repuntear unas (9 veces? creo, luego edito y les digo cuántas son exactamente, comenten o envíenme un MP para avisarles).


Probar que va bien​

3. Editar el nombre del tipo que aparece en la interfaz de batalla, abajo a la derecha cuando seleccionas un ataque[/SIZE][/B][/CENTER]

(Imagen de ShyRayq)



Como pueden notar, abajo en la esquina derecha no sale el nombre del tipo que agregó, eso haremos ahora!

Con Ctrl + G (Ir a...) vamos al offset 0x24A90C Los datos que nos intersan son estos (longitud 7E):



Como siempre, movemos a un espacio libre. Podrán creer que son datos hexadecimales random, pero no es así, en realidad son letras!

A = bb
B = bc
C = bd
D = be
E = bf
F = c0
G = c1
H = c2
I = c3
J = c4
K = c5
L = c6
M = c7
N = c8
O = c9
P = ca
Q = cb
R = cc
S = cd
T = ce
U = cf
V = d0
W = d1
X = d2
Y = d3
Z = d4

Lo primero que dice es NORMAL, LUCHA, etc. Las "FF" son el final del nombre y los "00" son la alineación (para quien quiera saber sobre esto último, escríbame y le aviso cuando actualice el tutorial con lo que es la "alineación", ando apurado ahora).

Para agregar los nombres de nuestros tipos, primero tenemos que hacer espacio para "TIPO", "PODER, "PP", "PRECISIÓN" y "EFECTO", ya que aquellos iconos son técnicamente tipos. Solo creamos una entrada de 7 bytes de largo con seis "00" y un "FF" para cada uno, es decir, 5 veces:



Luego, añadan sus nuevos nombres (Usen la tabla antes pasada para convertirlos a Hexadecimal)

Aquí mi ejemplo con el tipo Hada:

(Perdonen que tuve que tomar la imagen de Fire Red ya que me lié con la de Rojo Fuego que tenía, luego la cambio, es lo mismo solo que los tipos están en inglés, podéis comprobarlo si queréis)


Ahora solo hace falta repuntear, con Ctrl + F busquen los valores hexadecimales 0CA92408 y cambienlos por el puntero al offset donde pusieron la tabla. Deben hacer el último unas 5 veces (o hasta que el editor hexadecimal no encuentre el susodicho valor)



Bueno gente, espero les haya sido de mucha utilidad, soy consciente de los pequeños fallos que presento pero seguro que alguno de ustedes puede pasarnos la solución. Si les agrada, puedo hacer un tutorial para enseñar a cambiar la ini de las herramientas para que no tengan que ponerle su tipo a un pokémon/movimiento a mano. (Seguramente en estos días actualice para mostrarles como hacerlo con G3T). Si tienen alguna duda no -duden- en preguntar, nos vemos!
 

Inferno

Miembro insignia
Miembro insignia
Respuesta: [Rojo Fuego] Agregar nuevos tipos sin sustituir!

Buahh gran aporte, se nota que le has puesto empeño, sin duda un tutorial que servirá a todas esas personas que usen Rojo fuego como ROM, además lo has explicado de una forma clara, sin olvidar los detalles e incluyendo imágenes para hacer que cualquiera pueda seguir el tutorial al pié de la letra.

Además, el hecho de que hayas tenido que buscar las direcciones para Rojo Fuego le dan aún más valor al tutorial, te felicito, buen tutorial.

No dejes de traernos este tipo de aportes.
Un saludo :D
 
M

Miembro eliminado 28262

Invitado
Respuesta: [Rojo Fuego] Agregar nuevos tipos sin sustituir!

Hay varias partes que pudiste haberte ahorrado pero creo que el tutoria te ha quedado bastante decente. Felicidades.

Y gracias por traerlo a wah! ;)
 

Bugrhak

A long time ago I used to call myself "Subzero".
Respuesta: [Rojo Fuego] Agregar nuevos tipos sin sustituir!

Y yo que al ver el tuto pensaba que era para la ROM española... decepción, engaño...

La verdad es que tal y como lo has explicando, se hace sencillo para cualquiera.
Sin duda te lo has currao, salta a la vista, aunque, en la parte de la edición gráfica podrías haberte ahorrado la parte de reacomodar las paletas usando solo NSE (ya sea el 1.7, o el 2.0).
Enhorabuena, me alegro que por fin hayas posteado el tuto, y también me alegra ver como te vas adentrando en este mundillo. Sigue así!
 

Berserker1523

2-Intentando discernir qué es lo más importante...
Respuesta: [Rojo Fuego] Agregar nuevos tipos sin sustituir!

♠Subzero♠;401508 dijo:
Y yo que al ver el tuto pensaba que era para la ROM española... decepción, engaño...
Todos los offsets son para Rojo Fuego, ya hay un tuto para Fire Red aquí en el foro, pero está mal explicado/traducido y ni imagenes tiene. Ya me dí cuenta que muchas de las imagenes que usé fueron de FR (las de cambios gráficos, las de HxD son todas de Rojo Fuego), tal vez porque creí que mostrar la modificación en cualquiera de las 2 daría igual, se me pasó por completo, luego las cambiaré, saludos.

Pd: De hecho la única que muestra FR es la de la explicación de las paletas xD (y las que digo son del tutorial de shyRayq)
 

Jason

PkPower déjame poner tildes en mi nick ¬¬
Respuesta: [Rojo Fuego] Agregar nuevos tipos sin sustituir!

Hola,
El ícono y el nombre me los toma bien, pero, tú sabes si el orden en el que se ponen las debilidades y resistencias en la tabla importa?
Porque no me muestra el mensaje de "super eficaz" ni "poco eficaz" cuando toca.
Puse el tipo HADA en el 18, dejando el 17 vacío (FF FF FF FF) para que me coincida bien con el Gen 3 Tools 2.5
:(
Gracias
 

Berserker1523

2-Intentando discernir qué es lo más importante...
Respuesta: [Rojo Fuego] Agregar nuevos tipos sin sustituir!

Hola,
El ícono y el nombre me los toma bien, pero, tú sabes si el orden en el que se ponen las debilidades y resistencias en la tabla importa?
Porque no me muestra el mensaje de "super eficaz" ni "poco eficaz" cuando toca.
Puse el tipo HADA en el 18, dejando el 17 vacío (FF FF FF FF) para que me coincida bien con el Gen 3 Tools 2.5
:(
Gracias
No, el orden en que las pongas no importa, si quieres pones todas las eficacias incluso antes de las que ya están, lo que debes de tener en cuenta es que el nuevo tipo tiene el número 0x17.

Además, decir que esto es de Rojo Fuego Español y no Fire Red, los offsets para este último los encontrarás en los tutoriales que dejo al principio. Dicho esto, el G3T no te servirá con la ROM española (eso creo, me refiero sin editar ningún archivo del programa), debes cambiar muchísimas cosas de la INI.

Ahora, si usas Fire Red, yo tengo G3T versión 2.9 y lo único que debes hacer es abrir la carpeta "customisation", editar el archivo "Pokemon Editor" con bloc de notas o lo que sea, y donde dice "Types", debajo de "dark", poner 17= 1° tipo que tengas, 18 = 2° tipos que agregaste, etc. Ejemplo: 17 = Hada. Después, si quieres editar el tipo de los movimientos, debesde abrir el archivo "Moves Editor", en la misma carpeta, y hacer el mismo procedimiento.
 

Lukeadoss

Usuario de oro
Respuesta: [Rojo Fuego] Agregar nuevos tipos sin sustituir!

Gracias seguro me servirá de mucho :d
 
Respuesta: [Rojo Fuego] Agregar nuevos tipos sin sustituir!

Hola, tengo una duda..
Soy nuevo en esto de añadir tipos etc...
y, cuando edito la imagen (de la tabla de tipos). el Character Maker Pro no la reconoce, amplié la imagen, no sé si será por eso...
dice "File "tabla de tipos" (nombre de la imagen) is not effective...
 

Rubire4

Usuario mítico
Respuesta: [Rojo Fuego] Agregar nuevos tipos sin sustituir!

Hola, tengo una duda..
Soy nuevo en esto de añadir tipos etc...
y, cuando edito la imagen (de la tabla de tipos). el Character Maker Pro no la reconoce, amplié la imagen, no sé si será por eso...
dice "File "tabla de tipos" (nombre de la imagen) is not effective...
Es un bug del character maker pro que se produce muy comúnmente con los archivos PNG. Si quieres seguir utilizando el archivo PNG haz lo siguiente:
Abre la imagen, copia todo, abre una nueva ventana de Paint y pega ahí la imagen, y guarda como un nuevo archivo.
Con esto ya funcionará. Si no necesitas necesariamente que sea PNG puedes guardarlo como Bitmap de 24 bits.
Acostúmbrate a hacer esto porque el error es muy común.
 

Johanito_

Novato
Buen tuto queria aprender a insertar tipos porque lo unico que uso el HxD es para expandir la rom a 32mb no sabia más gracias
 

Kevin RD

Héroe de WaH
Buenas, sé que esto lleva un tiempo subido, y no sé si se me vaya a ser aclarada la pregunta pero igual la hago:
Qué pasaría si yo ya he logrado con éxito este Tutorial agregando el Tipo Hada, pero luego oficialmente en una siguiente Generación de Pokémon GF crea un nuevo Tipo (Tipo Madera por poner un ejemplo), y yo quisiera actualizar mi proyecto agregando también ese "nuevo Tipo". ¿Lo podría hacer sin problemas? ¿O ya no podría hacerlo?
 

Rubire4

Usuario mítico
Buenas, sé que esto lleva un tiempo subido, y no sé si se me vaya a ser aclarada la pregunta pero igual la hago:
Qué pasaría si yo ya he logrado con éxito este Tutorial agregando el Tipo Hada, pero luego oficialmente en una siguiente Generación de Pokémon GF crea un nuevo Tipo (Tipo Madera por poner un ejemplo), y yo quisiera actualizar mi proyecto agregando también ese "nuevo Tipo". ¿Lo podría hacer sin problemas? ¿O ya no podría hacerlo?
Podrías hacerlo perfectamente siempre y cuando hayas guardado los offsets donde hayas insertado las nuevas tablas e imágenes. Solo tendrías que hacer el tutorial con tus offsets en vez de los que se indican.
Ten en cuenta que lo único que has hecho en el tutorial es mover unas tablas de sitio para poder modificarlas a placer.
Es como si te mudas: claro que podrás seguir recibiendo cartas, lo único que tienes que hacer es cambiar tu dirección.
 
Arriba