Foxz.
Foxz.
Hoy les traigo un tutorial que consiste en mostrar una animación con Vs bar y mugshots antes de una batalla pokemón. Para esto usaremos la rutina creada por Jambo51, y necesitaran algunos conocimientos básicos sobre edición hexadecimal y RH en general. Bueno, empecemos…
¿Que necesitamos?
Para empezar, necesitamos las 3 rutinas, yo les dejare las rutinas compiladas, listas para insertar.
RUTINA N°1
RUTINA N°2
RUTINA N°3
Ahora, debemos insertar cada rutina en un espacio que termine en 0, 2, 4, etc…
En este caso, pondré las rutinas en los siguientes offsets:
•Luego, vamos al offset 07FF90, y reemplazamos lo que está ahí por: 00 4A 10 47 AA AA AA 08
Donde: AA AA AA: puntero de la rutina 1.
En mi caso sería: 00 4A 10 47 11 16 80 08
•Luego, vamos al offset 083862, y reemplazamos lo que está ahí por: 01 4C 20 47 00 00 BB BB BB 08
Donde: BB BB BB: puntero de la rutina 2.
En mi caso sería: 00 4A 10 47 51 16 80 08
•Luego, vamos al offset 0D28C6, y reemplazamos lo que está ahí por: 01 49 08 47 00 00 CC CC CC 08
Donde: CC CC CC: puntero de la rutina 3.
En mi caso sería: 00 4A 10 47 A1 16 80 08
•Luego, debemos ir al offset 0801F5 y cambiamos el byte 88 a 78.
Ahora, ¿recuerdan el “FF FF FF” de la rutina 3?
Ahí, se debe colocar el puntero de la tabla de paletas que usaras para los VS bars.
Bueno, esos son todos los pasos a seguir para usar los mugshots, sin embargo, estos aun se pueden personalizar.
Esto funciona si es que, en vez de mostrar los sprites de los entrenadores, se quiere mostrar otra imagen, un mugshot por ejemplo.
Primero, debemos cambiar estos bytes:
•En el offset 0D2F82, colocar “00”
•Luego, insertar los sprites que se va a utilizar, estos sprites deben insertarse comprimidos en Lz77, tanto la imagen como la paleta, de lo contrario la rutina no funcionará.
Para las imágenes, usaremos el NLZ, es más preciso y más fácil de usar que el Unlz.
Y las paletas, bueno, después de varios errores, me di cuenta que tienen esta forma
En donde las letras, AA BB CC DD, son los 16 colores de la paleta, separados por un 00 cada 4 colores. Pueden insertar en un rom cualquiera una paleta como normalmente se hace, abrir su offset con HxD, y darle esta forma si es que no saben comprimirlas, o comprimirlas en NSE 2.0 e insertarlas.
A continuación, debemos crear dos tablas; una para nuestros Mugshots y otra para sus paletas. Para esto, simplemente debemos copiar las tablas de los trainers y de sus paletas.
Trainers: 23957C
Paletas: 239A1C
Por si no quieren buscar ambas tablas, aquí se las dejo:
TABLA DE SPRITES
TABLA DE PALETAS
Ahora, para cambiar adecuadamente algún sprite en la tabla, deben buscar el offset del entrenador al que quieren cambiar, el NSE es una buena opcion.
Una vez encontrado los offset de la paleta y del sprite del entrenador, lo permutamos y lo buscamos en HxD, y simplemente reemplazamos por el puntero del nuevo sprite.
Solo nos faltaría cambiar los siguientes bytes:
Como dato adicional, les dejare un par de offsets que pueden cambiar las características de sus sprites.
A mi me quedo de esta forma.
Ya logramos insertar la rutina correctamente y modificar los sprites, pero aún podemos personalizar la apariencia del vs bar. En otras palabras, podemos modificar tanto el tileset como el raw.
Necesitaran estas direncciones:
Tileset 3F8F60
Paleta 3FA660
Raw (30X20) 3FAC34
Tileset Pointer 0D2954
Raw Pointer 0D2950
Para esto, solo tienen que crear una nueva raw e insertarla con Nlz, abrir la rom con HxD y dirigirse al offset de “Raw Pointer”, ahí podrán ver el puntero de la raw, pues solo deben reemplazar este puntero por el de su raw nueva; para el tileset, debemos hacer el mismo procedimiento y listo.
Tengan en cuenta, que en la animación, la parte superior se desplaza hacia la derecha, mientras que la inferior lo hace hacia la izquierda, y que, gracias a la rutina de Jambo, está carga 2 paletas, una para la barra del prota y otra para el adversario, esto puede resultar incómodo si es que van a solo una barra central, como en mi caso, para corregir esto, debemos ir al offset 0D28EC, y cambiar el “0C” por “00”, de este modo, solo cargara la paleta que designemos independientemente del genero del jugador.
Por último, para utilizar esta rutina esta rutina, debemos hacer un script con un trainerbattle, esta es la estructura básica de un trainerbattle:
La única variación será en la parte de “reserved”, esto designa la paleta que se va a utilizar, por ejemplo: para utilizar la primera paleta pondremos 0x100; para la segunda, 0X200; para la tercera, 0x300, etc.
A mi que quedo de así:
Bueno, es todo, cualquier duda o inconveniente que tengan, pueden hacerla aquí. Además, os dejaré una version descargable: LINK
CRÉDITOS:
• Jambo51 Por su rutina ASM.
• Derlo Por los datos adicionales que recopilo.
¿Que necesitamos?
- Editor Hexadecimal – HxD
- Compilador de rutinas ASM
- VBA
- NSE
- NLZ
- NTME
Para empezar, necesitamos las 3 rutinas, yo les dejare las rutinas compiladas, listas para insertar.
RUTINA N°1
Código:
E5 78 2D 06 2D 0E 00 2D 02 D0 5A 21 05 4D 28 47 57 29 03 D1 11 1C CD 20 01 4D 28 47 01 4D 28 47 A5 FF 07 08 09 00 08 08
Código:
87 28 0A D0 88 28 08 D0 08 4C 24 88 A5 00 65 19 EC 00 05 4D 2D 68 60 19 C0 78 04 1C 0D 1C 16 1C 99 46 0D 9F 02 48 00 47 28 40 04 08 AE 86 03 02 6D 38 08 08
Código:
0E 49 09 88 88 00 40 18 C1 00 0D 48 00 68 41 18 49 78 5A 29 09 D0 57 29 07 D0 08 49 C9 78 01 39 89 00 09 48 09 18 08 68 06 E0 06 49 42 46 26 23 D0 5A 80 00 40 18 00 68 04 49 08 47 AE 86 03 02 28 40 04 08 40 A7 3F 08 FF FF FF 08 D5 28 0D 08
Ahora, debemos insertar cada rutina en un espacio que termine en 0, 2, 4, etc…
En este caso, pondré las rutinas en los siguientes offsets:
•Luego, vamos al offset 07FF90, y reemplazamos lo que está ahí por: 00 4A 10 47 AA AA AA 08
Donde: AA AA AA: puntero de la rutina 1.
En mi caso sería: 00 4A 10 47 11 16 80 08
•Luego, vamos al offset 083862, y reemplazamos lo que está ahí por: 01 4C 20 47 00 00 BB BB BB 08
Donde: BB BB BB: puntero de la rutina 2.
En mi caso sería: 00 4A 10 47 51 16 80 08
•Luego, vamos al offset 0D28C6, y reemplazamos lo que está ahí por: 01 49 08 47 00 00 CC CC CC 08
Donde: CC CC CC: puntero de la rutina 3.
En mi caso sería: 00 4A 10 47 A1 16 80 08
•Luego, debemos ir al offset 0801F5 y cambiamos el byte 88 a 78.
Ahora, ¿recuerdan el “FF FF FF” de la rutina 3?
Ahí, se debe colocar el puntero de la tabla de paletas que usaras para los VS bars.
Bueno, esos son todos los pasos a seguir para usar los mugshots, sin embargo, estos aun se pueden personalizar.
Esto funciona si es que, en vez de mostrar los sprites de los entrenadores, se quiere mostrar otra imagen, un mugshot por ejemplo.
Primero, debemos cambiar estos bytes:
•En el offset 0D2F82, colocar “00”
•Luego, insertar los sprites que se va a utilizar, estos sprites deben insertarse comprimidos en Lz77, tanto la imagen como la paleta, de lo contrario la rutina no funcionará.
Para las imágenes, usaremos el NLZ, es más preciso y más fácil de usar que el Unlz.
Y las paletas, bueno, después de varios errores, me di cuenta que tienen esta forma
Código:
10 20 00 00 00 AA AA BB BB CC CC DD DD 00 AA AA BB BB CC CC DD DD 00 AA AA BB BB CC CC DD DD 00 AA AA BB BB CC CC DD DD
A continuación, debemos crear dos tablas; una para nuestros Mugshots y otra para sus paletas. Para esto, simplemente debemos copiar las tablas de los trainers y de sus paletas.
Trainers: 23957C
Paletas: 239A1C
Por si no quieren buscar ambas tablas, aquí se las dejo:
TABLA DE SPRITES
Código:
58 8D E4 08 00 08 00 00 BC 90 E4 08 00 08 01 00 44 94 E4 08 00 08 02 00 A8 97 E4 08 00 08 03 00 94 9A E4 08 00 08 04 00 58 9E E4 08 00 08 05 00 24 A3 E4 08 00 08 06 00 F0 A5 E4 08 00 08 07 00 A4 A8 E4 08 00 08 08 00 B4 AB E4 08 00 08 09 00 F0 AE E4 08 00 08 0A 00 84 B2 E4 08 00 08 0B 00 60 B6 E4 08 00 08 0C 00 70 B9 E4 08 00 08 0D 00 4C BC E4 08 00 08 0E 00 E4 BF E4 08 00 08 0F 00 CC C2 E4 08 00 08 10 00 58 C6 E4 08 00 08 11 00 04 CA E4 08 00 08 12 00 98 CD E4 08 00 08 13 00 A8 D0 E4 08 00 08 14 00 20 D5 E4 08 00 08 15 00 74 D8 E4 08 00 08 16 00 C4 DB E4 08 00 08 17 00 EC DE E4 08 00 08 18 00 48 E2 E4 08 00 08 19 00 70 E5 E4 08 00 08 1A 00 84 E8 E4 08 00 08 1B 00 40 EC E4 08 00 08 1C 00 AC F0 E4 08 00 08 1D 00 94 F3 E4 08 00 08 1E 00 58 F6 E4 08 00 10 1F 00 F0 FA E4 08 00 10 20 00 D4 FE E4 08 00 08 21 00 C8 02 E5 08 00 08 22 00 30 06 E5 08 00 08 23 00 74 09 E5 08 00 08 24 00 44 0C E5 08 00 08 25 00 A4 0F E5 08 00 08 26 00 B0 13 E5 08 00 10 27 00 E8 17 E5 08 00 08 28 00 1C 1C E5 08 00 08 29 00 FC 1E E5 08 00 08 2A 00 C8 21 E5 08 00 08 2B 00 1C 25 E5 08 00 08 2C 00 20 28 E5 08 00 08 2D 00 9C 2B E5 08 00 08 2E 00 FC 2E E5 08 00 08 2F 00 00 32 E5 08 00 10 30 00 48 35 E5 08 00 08 31 00 A8 38 E5 08 00 08 32 00 A0 3B E5 08 00 08 33 00 A8 3E E5 08 00 08 34 00 94 42 E5 08 00 08 35 00 6C 46 E5 08 00 08 36 00 98 4A E5 08 00 08 37 00 90 4D E5 08 00 08 38 00 CC 50 E5 08 00 08 39 00 F4 53 E5 08 00 08 3A 00 4C 57 E5 08 00 08 3B 00 A8 5A E5 08 00 08 3C 00 18 5E E5 08 00 08 3D 00 74 61 E5 08 00 08 3E 00 90 64 E5 08 00 08 3F 00 38 68 E5 08 00 08 40 00 EC 6B E5 08 00 08 41 00 EC 6E E5 08 00 08 42 00 40 72 E5 08 00 08 43 00 E8 76 E5 08 00 08 44 00 D0 7A E5 08 00 08 45 00 08 80 E5 08 00 08 46 00 7C 84 E5 08 00 08 47 00 58 88 E5 08 00 08 48 00 44 8C E5 08 00 08 49 00 44 90 E5 08 00 08 4A 00 1C 94 E5 08 00 08 4B 00 8C 97 E5 08 00 08 4C 00 34 9B E5 08 00 08 4D 00 98 9E E5 08 00 08 4E 00 40 A2 E5 08 00 08 4F 00 E0 A5 E5 08 00 08 50 00 8C A9 E5 08 00 08 51 00 5C AD E5 08 00 08 52 00 24 B0 E5 08 00 08 53 00 94 B3 E5 08 00 08 54 00 A8 B6 E5 08 00 08 55 00 F0 B9 E5 08 00 08 56 00 F8 BC E5 08 00 08 57 00 08 C0 E5 08 00 08 58 00 EC C3 E5 08 00 08 59 00 2C C7 E5 08 00 08 5A 00 C4 CB E5 08 00 08 5B 00 54 D1 E5 08 00 08 5C 00 C8 D4 E5 08 00 08 5D 00 FC D8 E5 08 00 08 5E 00 D0 DC E5 08 00 08 5F 00 D0 DF E5 08 00 08 60 00 C0 E5 E5 08 00 08 61 00 7C E9 E5 08 00 08 62 00 00 ED E5 08 00 08 63 00 14 F0 E5 08 00 08 64 00 9C F3 E5 08 00 08 65 00 20 F8 E5 08 00 08 66 00 84 FC E5 08 00 08 67 00 60 00 E6 08 00 08 68 00 4C 04 E6 08 00 08 69 00 94 08 E6 08 00 08 6A 00 74 0B E6 08 00 08 6B 00 78 0F E6 08 00 08 6C 00 B0 12 E6 08 00 08 6D 00 0C 16 E6 08 00 08 6E 00 04 19 E6 08 00 08 6F 00 44 1C E6 08 00 08 70 00 98 1F E6 08 00 08 71 00 0C 24 E6 08 00 08 72 00 50 27 E6 08 00 08 73 00 40 2B E6 08 00 08 74 00 B4 2E E6 08 00 08 75 00 DC 31 E6 08 00 08 76 00 94 35 E6 08 00 08 77 00 B0 38 E6 08 00 08 78 00 40 3C E6 08 00 08 79 00 74 40 E6 08 00 08 7A 00 A4 43 E6 08 00 08 7B 00 04 47 E6 08 00 08 7C 00 20 4A E6 08 00 08 7D 00 44 4D E6 08 00 08 7E 00 44 51 E6 08 00 08 7F 00 BC 54 E6 08 00 08 80 00 C4 59 E6 08 00 08 81 00 38 5E E6 08 00 08 82 00 00 64 E6 08 00 08 83 00 88 68 E6 08 00 08 84 00 1C 6C E6 08 00 08 85 00 58 6F E6 08 00 08 86 00 80 72 E6 08 00 08 87 00 B4 75 E6 08 00 08 88 00 18 79 E6 08 00 08 89 00 58 7C E6 08 00 08 8A 00 20 80 E6 08 00 08 8B 00 54 83 E6 08 00 08 8C 00 80 86 E6 08 00 08 8D 00 E8 89 E6 08 00 08 8E 00 70 8D E6 08 00 08 8F 00 CC 90 E6 08 00 08 90 00 44 94 E6 08 00 08 91 00 78 98 E6 08 00 08 92 00 C8 9B E6 08 00 08 93 00
Código:
94 90 E4 08 00 00 00 00 1C 94 E4 08 01 00 00 00 80 97 E4 08 02 00 00 00 6C 9A E4 08 03 00 00 00 30 9E E4 08 04 00 00 00 FC A2 E4 08 05 00 00 00 C8 A5 E4 08 06 00 00 00 7C A8 E4 08 07 00 00 00 8C AB E4 08 08 00 00 00 C8 AE E4 08 09 00 00 00 5C B2 E4 08 0A 00 00 00 38 B6 E4 08 0B 00 00 00 48 B9 E4 08 0C 00 00 00 24 BC E4 08 0D 00 00 00 BC BF E4 08 0E 00 00 00 A4 C2 E4 08 0F 00 00 00 30 C6 E4 08 10 00 00 00 DC C9 E4 08 11 00 00 00 70 CD E4 08 12 00 00 00 80 D0 E4 08 13 00 00 00 F8 D4 E4 08 14 00 00 00 4C D8 E4 08 15 00 00 00 9C DB E4 08 16 00 00 00 C4 DE E4 08 17 00 00 00 20 E2 E4 08 18 00 00 00 48 E5 E4 08 19 00 00 00 5C E8 E4 08 1A 00 00 00 18 EC E4 08 1B 00 00 00 84 F0 E4 08 1C 00 00 00 6C F3 E4 08 1D 00 00 00 30 F6 E4 08 1E 00 00 00 C8 FA E4 08 1F 00 00 00 AC FE E4 08 20 00 00 00 A0 02 E5 08 21 00 00 00 08 06 E5 08 22 00 00 00 4C 09 E5 08 23 00 00 00 1C 0C E5 08 24 00 00 00 7C 0F E5 08 25 00 00 00 88 13 E5 08 26 00 00 00 C0 17 E5 08 27 00 00 00 F4 1B E5 08 28 00 00 00 D4 1E E5 08 29 00 00 00 A0 21 E5 08 2A 00 00 00 F4 24 E5 08 2B 00 00 00 F8 27 E5 08 2C 00 00 00 74 2B E5 08 2D 00 00 00 D4 2E E5 08 2E 00 00 00 D8 31 E5 08 2F 00 00 00 20 35 E5 08 30 00 00 00 80 38 E5 08 31 00 00 00 78 3B E5 08 32 00 00 00 80 3E E5 08 33 00 00 00 6C 42 E5 08 34 00 00 00 44 46 E5 08 35 00 00 00 70 4A E5 08 36 00 00 00 68 4D E5 08 37 00 00 00 A4 50 E5 08 38 00 00 00 CC 53 E5 08 39 00 00 00 24 57 E5 08 3A 00 00 00 80 5A E5 08 3B 00 00 00 F0 5D E5 08 3C 00 00 00 4C 61 E5 08 3D 00 00 00 68 64 E5 08 3E 00 00 00 10 68 E5 08 3F 00 00 00 C4 6B E5 08 40 00 00 00 C4 6E E5 08 41 00 00 00 18 72 E5 08 42 00 00 00 C0 76 E5 08 43 00 00 00 A8 7A E5 08 44 00 00 00 E0 7F E5 08 45 00 00 00 54 84 E5 08 46 00 00 00 30 88 E5 08 47 00 00 00 1C 8C E5 08 48 00 00 00 1C 90 E5 08 49 00 00 00 F4 93 E5 08 4A 00 00 00 64 97 E5 08 4B 00 00 00 0C 9B E5 08 4C 00 00 00 70 9E E5 08 4D 00 00 00 18 A2 E5 08 4E 00 00 00 B8 A5 E5 08 4F 00 00 00 64 A9 E5 08 50 00 00 00 34 AD E5 08 51 00 00 00 FC AF E5 08 52 00 00 00 6C B3 E5 08 53 00 00 00 80 B6 E5 08 54 00 00 00 C8 B9 E5 08 55 00 00 00 D0 BC E5 08 56 00 00 00 E0 BF E5 08 57 00 00 00 C4 C3 E5 08 58 00 00 00 04 C7 E5 08 59 00 00 00 9C CB E5 08 5A 00 00 00 2C D1 E5 08 5B 00 00 00 A0 D4 E5 08 5C 00 00 00 D4 D8 E5 08 5D 00 00 00 A8 DC E5 08 5E 00 00 00 A8 DF E5 08 5F 00 00 00 98 E5 E5 08 60 00 00 00 54 E9 E5 08 61 00 00 00 D8 EC E5 08 62 00 00 00 EC EF E5 08 63 00 00 00 74 F3 E5 08 64 00 00 00 F8 F7 E5 08 65 00 00 00 5C FC E5 08 66 00 00 00 38 00 E6 08 67 00 00 00 24 04 E6 08 68 00 00 00 6C 08 E6 08 69 00 00 00 4C 0B E6 08 6A 00 00 00 50 0F E6 08 6B 00 00 00 88 12 E6 08 6C 00 00 00 E4 15 E6 08 6D 00 00 00 DC 18 E6 08 6E 00 00 00 1C 1C E6 08 6F 00 00 00 70 1F E6 08 70 00 00 00 E4 23 E6 08 71 00 00 00 28 27 E6 08 72 00 00 00 18 2B E6 08 73 00 00 00 8C 2E E6 08 74 00 00 00 B4 31 E6 08 75 00 00 00 6C 35 E6 08 76 00 00 00 88 38 E6 08 77 00 00 00 18 3C E6 08 78 00 00 00 4C 40 E6 08 79 00 00 00 7C 43 E6 08 7A 00 00 00 DC 46 E6 08 7B 00 00 00 F8 49 E6 08 7C 00 00 00 1C 4D E6 08 7D 00 00 00 1C 51 E6 08 7E 00 00 00 94 54 E6 08 7F 00 00 00 9C 59 E6 08 80 00 00 00 10 5E E6 08 81 00 00 00 D8 63 E6 08 82 00 00 00 60 68 E6 08 83 00 00 00 F4 6B E6 08 84 00 00 00 30 6F E6 08 85 00 00 00 58 72 E6 08 86 00 00 00 8C 75 E6 08 87 00 00 00 F0 78 E6 08 88 00 00 00 30 7C E6 08 89 00 00 00 F8 7F E6 08 8A 00 00 00 2C 83 E6 08 8B 00 00 00 58 86 E6 08 8C 00 00 00 C0 89 E6 08 8D 00 00 00 48 8D E6 08 8E 00 00 00 A4 90 E6 08 8F 00 00 00 1C 94 E6 08 90 00 00 00 50 98 E6 08 91 00 00 00 A0 9B E6 08 92 00 00 00 94 9E E6 08 93 00 00 00
Una vez encontrado los offset de la paleta y del sprite del entrenador, lo permutamos y lo buscamos en HxD, y simplemente reemplazamos por el puntero del nuevo sprite.
Solo nos faltaría cambiar los siguientes bytes:
Como dato adicional, les dejare un par de offsets que pueden cambiar las características de sus sprites.
A mi me quedo de esta forma.
Ya logramos insertar la rutina correctamente y modificar los sprites, pero aún podemos personalizar la apariencia del vs bar. En otras palabras, podemos modificar tanto el tileset como el raw.
Necesitaran estas direncciones:
Tileset 3F8F60
Paleta 3FA660
Raw (30X20) 3FAC34
Tileset Pointer 0D2954
Raw Pointer 0D2950
Para esto, solo tienen que crear una nueva raw e insertarla con Nlz, abrir la rom con HxD y dirigirse al offset de “Raw Pointer”, ahí podrán ver el puntero de la raw, pues solo deben reemplazar este puntero por el de su raw nueva; para el tileset, debemos hacer el mismo procedimiento y listo.
Tengan en cuenta, que en la animación, la parte superior se desplaza hacia la derecha, mientras que la inferior lo hace hacia la izquierda, y que, gracias a la rutina de Jambo, está carga 2 paletas, una para la barra del prota y otra para el adversario, esto puede resultar incómodo si es que van a solo una barra central, como en mi caso, para corregir esto, debemos ir al offset 0D28EC, y cambiar el “0C” por “00”, de este modo, solo cargara la paleta que designemos independientemente del genero del jugador.
Por último, para utilizar esta rutina esta rutina, debemos hacer un script con un trainerbattle, esta es la estructura básica de un trainerbattle:
La única variación será en la parte de “reserved”, esto designa la paleta que se va a utilizar, por ejemplo: para utilizar la primera paleta pondremos 0x100; para la segunda, 0X200; para la tercera, 0x300, etc.
A mi que quedo de así:
Bueno, es todo, cualquier duda o inconveniente que tengan, pueden hacerla aquí. Además, os dejaré una version descargable: LINK
CRÉDITOS:
• Jambo51 Por su rutina ASM.
• Derlo Por los datos adicionales que recopilo.
Última edición: