Registrarse

[Otros] FR | Recopilación de mini hacks para Fire Red

CompuMax

Discord: CompuMax#0425
Miembro insignia
A continuación les traigo una recopilación de modificaciones o mini hacks para la Fire Red v1.0. La mayoría han sido extraídos del siguiente tema:

Quick Research & Development Thread

Así que los créditos van a sus respectivos autores. A excepción de algunos investigados y realizados por mi.

No los he probado todos y he extraído los que que realmente sugieren un cambio en el funcionamiento de mecánicas o sistemas en el juego o implementan algunos nuevos. He obviado aquellas publicaciones donde solo se da información o explican el funcionamiento de algo y algunas que me han parecido, por decirlo de alguna manera, insignificantes.

La estructura en genaral es la siguiente:
Código:
Offset = 0xAAAAAA
Bytes por defecto: 	BB BB BB BB
Cambiar por:  		CC CC CC CC
Donde:
Offset es la dirección de los datos en la ROM
Bytes por defecto es la información por defecto que trae esa dirección, en caso de querer revertir el cambio
Cambiar por es la información que deben sustituir en la ROM para aplicar la modificación.

Para terminar recordemos algunos términos para facilitar el contenido del tema:

Little-Endian

Según Wikipedia El término inglés endianness ("extremidad") designa el formato en el que se almacenan los datos de más de un byte en un ordenador. A pesar de que el procesador de la GBA está diseñado para trabajar con los dos formatos, Big-Endian y Little-Endian al parecer está programado para trabajar con éste último.

Este formato de almacenamiento de datos lo que implica es que el primer byte leído tendrá menos prioridad que el siguiente que se lea, es decir, si el procesador lee AA y luego BB, el procesador lo interpretará como BB AA. De ahí que tengamos que escribir datos, como punteros por ejemplo, en este orden. Luego cuando se diga escribir el puntero en formato Little-Endian no es más que pasarlo en su forma reversa o como sea que lo conozcan.

Modo THUMB
La CPU de la GBA tiene 2 sets de instrucciones, llamadas ARM y THUMB, para que el procesador entienda que una rutina está programada en un modo u otro sólo se debe setear o no el primer bit del puntero a dicha rutina para que éste identifique si se trata de una rutina ARM o THUMB. Dicho de una forma más comprensible si se tiene una rutina en el offset 0x08224488 y deseamos guardar su puntero para un uso posterior, debemos sumarle uno (1) a dicho offset si se trata de una rutina THUMB o dejarla tal cual si se trata de una rutina ARM.

Offset Alineado
Se le llama Offset Alineado a aquellas direcciones de memoria que son múltiplos de palabras o words de un procesador. Debido a que el procesador de la GBA es de 32 bits, cada word tiene una longitud de 32 bits o 4 bytes, por lo tanto sus offsets alineados corresponden a aquellos terminados en 0, 4, 8 o C en el editor hexadecimal.

Ahora, si se dice: Escribir el puntero en formato Little-Endian en modo THUMB en un Offset Alineado sería agregarle uno al puntero, pasarlo a modo reverso y escribirlo en un offset que termine en 0, 4, 8 o C. Ejemplo:
Código:
Puntero:       08 22 44 88
Modo THUMB:    08 22 44 89
Little-Endian: 89 44 22 08

Ahora a lo que vinimos:

Como todos sabrán al llevar uno o más huevos en el equipo e ir a curar a los pokémon en un Centro Pokémon, se muestra en la máquina la cantidad total de los pokémon que llevamos en nuestro equipo incluyendo los huevos. Con el siguiente cambio lo que estamos haciendo es reemplazar la función que cuenta los pokémon de nuestro equipo por otra que cuenta los pokémon excepto los huevos. Haciendo que aparezca en la máquina las pokéball correspondientes a los pokémon de nuestro equipo exceptuando los huevos.
Código:
Offset = 0x083B8E
Bytes por defecto: 	BD F7 55 F8
Cambiar por:  		08 F0 D5 FA
Autor: Sagiri Fuente
Con esta modificación lo que vamos a hacer es ignorar la configuración que tenga el juego en el Tipo de Combate y evitará que pregunte si deseas cambiar de pokémon una vez derrotes algún pokémon enemigo, agregando un poco de dificultad a los combates.
Código:
Offset =  0x1D8727
Bytes por defecto: 	2B 04 D0 3D 02
Cambiar por:  		28 92 87 1D 08
Autor: DoesntKnowHowToPlay Fuente
Primero insertar el siguiente script de batalla en cualquier parte:
Código:
29 00 FE F4 03 02 AA 92 87 1D 08 2B 04 D0 3D 02 02 00 00 40 00 92 87 1D 08 28 35 87 1D 08
FE F4 03 02 es el puntero de la RAM donde se almacenará el byte que determinará si se usa o no el modo Mantener.
Luego en 0x1D8727 colocar 28 XX XX XX XX, donde XX XX XX XX es el puntero al script de batalla que se insertó anteriormente.
Uso:
Código:
writebytetooffset 0xAA 0x203F4FE
Nota: Asegurarse de escribir un writebytetooffset 0x0 0x203F4FE despues de las batallas para que no se use el modo MANTENER por siempre
Autor: Squeetz Fuente
Con esta modificación haremos que nuestro juego corra más rápido al usar el Modo Turbo en la Visual Voy Advance
Código:
Offset = 0x000890
Bytes por defecto: 00 B5 09 4A 91 8B 09 48 08 40 91 8B 90 83 91 8B 01 20 08 40 00 28 05 D1 01 23 91 8B
Cambiar por:  	   00 B5 05 4A 13 88 01 20 83 43 13 80 02 DF 13 88 03 42 FB D0 00 BD C0 46 0C 31 00 03
Autor: NewDenverCity Fuente
Como se habrán dado cuenta los Nidoran son la única especie de pokémon que cuentan con su identificador de género en su nombre. Para eliminar esta preferencia y añadirles el indicador de género después del nombre como los demás, solo basta con hacer los siguientes cambios:
Código:
Offset =  0x136238
Bytes por defecto: 	20 2C 01 D0 1D
Cambiar por:  		00 2C 01 D0 00
Offset =  0x1218E4
Bytes por defecto: 	20 2C 01 D0 1D
Cambiar por:  		00 2C 01 D0 00
Offset =  0x049718
Bytes por defecto: 	1D 28 01 D0 20
Cambiar por:  		00 92 87 1D 00
Finalmente reemplazar el símbolo al final del nombre de los Nidoran por el byte FF
Autor: Sagiri Fuente
Como el título lo dice, escribir este valor en esa dirección de la RAM nos permitirá correr sin necesidad de mantener presionado el botón B. Para ello se puede hacer mediante un script.
Código:
Escribir 02 en 0x02037078
Nota: Si se entra en uno de los menús, se tiene una batalla o se usa un warp, el efecto desaparece.
Autor: sonic1 Fuente
Esta modificación nos permite correr en mapas de interiores como casas y edificios.
Código:
Offset =  0xBD494
Byte por defecto: 	08
Cambiar por:  		00
Autor: HackMew Fuente
Esta modificación elimina la necesidad de la activación de la flag de las zapatillas para correr.
Código:
Offset = 0x05BA3A
Bytes por defecto =	12 F0 49 FE
Cambiar por = 		01 20 C0 46
Autor: Sagiri Fuente
El offset 0x078C1C contiene un número entero de 32-bits
Este valor indica la duración en cantidad de frames o fotogramas, La GBA opera aproximadamente a 60fps.
Su valor por defecto es 0x8B0A0000 que leído en Little-Endian se traduce a 0x00000A8B.
Luego A8B = 2699 y dividiendo entre los fps, se tiene: 2699/60 ≈ 45 segundos.
Para ajustar la duración a nuestro gusto solo basta con multiplicar la cantidad de segundos por los fps (60) y escribirlo en dicho offset en formato Little-Endian
Autor: DiegoIsAwesome y CompuMax Fuente
Para mostrar el número de pokémon vistos en vez de los capturados en la pantalla de continuar como en la GEN IV. Hacer los siguientes cambios:
Código:
Bytes por defecto: 01 20
Cambiar los valores en los siguientes offsets.
0x00CF56: 00 20
0x00CF64: 00 20
0x0F803C: 00 20
0x0F8044: 00 20
Autor: Jambo51 Fuente
En el siguiente offset se encuentra la información donde parecerá el protagonista una vez pase la Liga Pokémon.
Código:
Offset = 0x3EEBF8
Bytes por defecto: 	03 00 06 00 08 00 00 00
03 00 - Banco del Mapa
06 00 - Posición X
08 00 - Posición Y
00 00 - Número de Mapa
Se pueden ajustar estos valores para cambiar de destino
Autor: tkim Fuente
En el siguiente offset se encuentra la información donde aparecerá el protagonista una vez se inicie una nueva partida o Juego Nuevo.
Código:
0x54A00: Posición Y
0x54A04: Banco del Mapa
0x54A06: Número de Mapa
0x54A08: Posición X
A diferencia de la modificación anterior estos valores son de un solo byte.
Autor: DiegoIsAwesome y CompuMax Fuente
Código:
Offset = 0x054B60
Bytes por defecto =	B8 0B
Al iniciar un juego se comienza con $3000 = 0x0BB8 en Little-Endian es B8 0B.
Para ajustar el dinero inicial pasar de decimal a hexadecimal y escribir en formato Little-Endian
Ejemplo: Empezar con $50.000 = 0x50C3 entonces escribimos C3 50 en 0x054B60 y listo!
Autor: DiegoIsAwesome y CompuMax Fuente
Para aplicar efectos de tinte a la pantalla como escala de grises o sepia se debe escribir el el siguiente offset el byte correspondiente al efecto deseado.
Código:
Offset = 0x02036E28
Sin efecto =	00
Efecto Gris =	01
Efecto Sepia =	02
Nota: Se necesita Refrescar la Pantalla para que los cambios tengan efecto
Autor: Shiny Quagsire Fuente
Para refrescar completamente las paletas del Tileset se puede llamar la función mapdata_load_assets_to_gpu_and_full_redraw ubicada en 0x08055148, en modo THUMB.
Ejemplo:
Código:
'--------------------
callasm 0x08055149
'--------------------
Nota: Esta función solo refresca los backgrounds y no los sprites, por lo que si se usa en conjunto con la modificación Pantalla a Escala de Grises y Sepia solo aplicará el tinte al mapa y no a los sprites
Autor: CompuMax y Knizz por su IDB para IDA Pro
Para refrescar completamente el overworld del protagonista se puede llamar la función 0x0805BE60 en modo THUMB.
Código:
Ejemplo:
'--------------------
callasm 0x0805BE61
'--------------------
Nota: Esta función solo refresca el sprite del protagonista y no el resto de los sprites, por lo que si se usa en conjunto con las modificaciones Pantalla a Escala de Grises y Sepia Refrescar Backgrounds solo aplicará el tinte al mapa y y al protagonista y no al resto de los sprites. De momento no le localizado alguna función que redibuje completamente todos los sprites. Por lo que si se quiere aplicar un tinte a todos los elementos del mapa, tanto backgrounds como sprites, es necesario hacer un warp
Autor: CompuMax y Knizz por su IDB para IDA Pro
Para aumentar de 5 DST a 12 DST (máximo soportado) hacer los siguientes cambios:
Código:
Offset = 0x1DD0C8
Bytes por defecto:	00 C5
Cambiar por:  		00 CC
Autor: Jambo51 & Xencleamas Fuente 1 Fuente 2
Para ajustar el nivel en que nacen los pokémon al eclosionar los huevos se debe escribir el mismo valor en hexadecimal en los siguientes offsets:
Código:
Byte por defecto  = 05
0x1375B0: XX
0x046CBE: XX
0x04623E: XX
Donde XX es el valor del nivel a usar en hexadecimal
Autor: Jambo51 Fuente
Para ajustar el números de pokémon vistos/capturados correspondientes a la pokédex regional es necesario hacer los siguientes cambios:
Código:
Offset = 0x104BF2
Byte por defecto = 96
Luego cambiar por el número máximo de pokémon menos uno (-1) en hexadecimal
Autor: MrDollSteak Fuente
Si se ajusta el números de pokémon vistos/capturados correspondientes a la pokédex regional, también es necesario ajustar el número de pokémon mostrados en las páginas de Hábitat en la Pokédex Regional, para ello hacer los siguientes cambios:
Código:
Offset = 0x106828
Byte por defecto = 97
Luego cambiar por el número máximo de pokémon en hexadecimal
Autor: MrDollSteak Fuente
Para remover el cheque de medallas para el uso de Movimientos Ocultos o MO es necesario aplicar los siguientes cambios:
Código:
Offset = 0x124620
Bytes por defecto =	82 21 09 01 60 18 4A F7 53 F8
Cambiar por =		01 20 00 00 00 00 00 00 00 00
Autor: Telinc1 Fuente
Los pokémon suelen huir mientras estamos en el Safari si les lanzamos piedras repetidas veces, con el siguiente cambio evitaremos que estos huyan incluso si llegamos a las 20 piedras lanzadas, cantidad máxima de lanzamientos que el juego permite antes de que el pokémon escape.
Código:
Offset = 0x169D4
Byte por defecto =	06
Cambiar por =		00
Autor: Shiny Quagsire Fuente
Al obtener o encontrar un objeto, Máquina Oculta o Máquina Técnica en el juego, se reproduce el mismo sonido que al subir un nivel. Para corregir esto es necesario hacer los siguientes cambios:
MSG_FIND o MSG_OBTAIN
Código:
Offset = 0x1A6765
Bytes por defecto =	01 01
Al conseguir una MT/MO
Código:
Offset = 0x1A6769
Bytes por defecto = 01 01
Ahora 01 01 corresponde al Fanfare 0x101
Luego reemplazar por los siguientes Fanfares:
0x102 Fanfare de Obtener Objeto
0x105 Fanfare de Obtener MT/MO
respectivamente. Ambos deben estar escrito en Little-Endian
Autor: RichterSnipes Fuente
La tabla se encuentra en el siguiente offset:
Código:
Offset = 0x250848
Cada entrada de la tabla está compuesta por 4 bytes. Los primeros 2 bytes son el índice
del objeto, los siguientes 2 bytes son las probabilidades de obtener el ítem más las
probabilidades del ítem del anterior.
Código:
8B 00 0F 00 = 15% (x0F = 15) probabilidad de Oran Berry (objeto x8B)
85 00 19 00 = 10% (x19 - x0F = xA, 10) probabilidad de Cheri Berry (objeto x85)
86 00 23 00 = 10% (x23 - x19 = xA, 10) probabilidad de Chesto Berry (objeto x86)
87 00 2D 00 = 10% (x2D - x23 = xA, 10) probabilidad de Cheri Berry (objeto x87)
88 00 37 00 = 10% (x37 - x2D = xA, 10) probabilidad de Rawst Berry (objeto x88)
89 00 41 00 = 10% (x41 - x37 = xA, 10) probabilidad de Aspear Berry (objeto x89)
8C 00 4B 00 = 10% (x4B - x41 = xA, 10) probabilidad de Persim Berry (objeto x8C)
2A 01 50 00 = 5% (x50 - x4B = x5) probabilidad de TM10 (objeto x12A)
45 00 55 00 = 5% (x55 - x50 = x5) probabilidad de PP Up (objeto x45)
44 00 5A 00 = 5% (x5A - x55 = x5) probabilidad de Rare Candy (objeto x44)
6E 00 5F 00 = 5% (x5F - x5A = x5) probabilidad de Nugget (objeto x6E)
A3 00 60 00 = 5% (x60 - x5F = x5) probabilidad de Spelon Berry (objeto xA3)
A4 00 61 00 = 1% (x61 - x60 = x1) probabilidad de Pamtre Berry (objeto xA4)
A5 00 62 00 = 1% (x62 - x61 = x1) probabilidad de Watmel Berry (objeto xA5)
A6 00 63 00 = 1% (x63 - x62 = x1) probabilidad de Durin Berry (objeto xA6)
A7 00 01 00 = 1% (x55 - x50 = x1) probabilidad de Belue Berry (objeto xA7)
Ajustar de acuerdo a las necesidades.
Nota: Por alguna razón el que debería ser el primer objeto está de útimo en la tabla
Autor: DoesntKnowHowToPlay Fuente
Al entrar a un mapa se reproduce la musica que tengamos conigurada en el A-Map. Pero podemos reproducir otra diferente mediante scripts de nivel para ello haremos uso del comando de script playsong2.
Ejemplo:
Código:
'---------------
#dynamic 0x800000

'---------------
#org @start
compare 0x40C6 0x0
if 0x1 call @play_song
end

'---------------
#org @play_song
playsong2 0x15A
return
'---------------
Aquí se reproduce la música 0x15A si la variable 0x40C6 está seteada en 0x0 al entrar al mapa, de lo contrario reproduce la música por defecto configurada en A-Map.
Autor: Spherical Ice Fuente
El filtro aplicado en Hagamos Memoria es a Escala de Grises. Si queremos editar dicho filtro debemos ir a los siguientes offsets y aplicar el cambio correspondiente.
Código:
Offsets = 0x00572B0 y 0x057274
Cambiar ambos a 02 para Sepia o 00 para Normal
Autor: Desconocido, cualquier información al respecto será bien recibida
La tabla de punteros de los Text Box tipo 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, etc. se encuentra en el siguiente offset:
Código:
Offset = 0x160450
Sí, puedes usar XSE para descompilar estos scripts
y no dudes en agregar todo lo que desees... ¡permanentemente!
Por lo tanto, no tendrá que llamar al asm de transparencia en
cada secuencia de comandos que desee, sino automáticamente.
Autor: kearnseyboy6 Fuente
Para cambiar el ajuste de las opciones al empezar un nuevo juego, solo basta con ir al offset correspondiente y hacer los ajustes necesarios aplicando cada una de las fórmulas.
VELOC. TEXTO - IMAGEN
Código:
Offset = 0x5496C
Escribir XX 20, donde XX = [VELOC. TEXTO] + [IMAGEN] * 8
VELOC. TEXTO: 0 = LENTA, 1 = MEDIA, 2 = RÁPIDA
IMAGEN: 0 = TIPO 1, 1 = TIPO 2, etc.
SONIDO - TIPO COMBATE - ANIM. COMBATE
Código:
Offset = 0x5499C
Escribir XX 20, donde XX = [SONIDO] + [TIPO COMBATE] * 2 + [ANIM. COMBATE] * 4
SONIDO: 0 = MONO, 1 = ESTÉREO
TIPO COMBATE: 0 = CAMBIO, 1 = MENTENER
ANIM. COMBATE: 0 = SÍ, 1 = NO
CONTROLES
Código:
Offset = 0x549A2
Escribir XX 20, donde XX = [CONTROLES]
CONTROLES: 0 = AYUDA, 1 = LR, 2 = L=A
Autor: Navenatox Fuente
Para remover o desactivar permanentemente el sistema de ayuda, basta con ir al siguiente offset y hacer el siguiente cambio.
Código:
Offset = 0x13B8C2 
Bytes por defecto =	1D D1
Cambiar por =		1D E0
Autor: GoGoJJTech Fuente
Los Tipos de Imágen de los textos se encuentran organizados en una tabla, para buscar las imágenes y editarlas, basta con ir al siguiente offset:
Código:
Offset = 0x471E8C
Estructura [XX XX XX XX][YY YY YY YY]
Donde XX XX XX XX es el puntero de la imagen
y YY YY YY YY es el puntero de la paleta
Ambos descompridos
La tabla posee 10 entradas como se muestra en el submenú OPCIONES
Autor: Desconocido, cualquier información al respecto será bien recibida
Código:
Offset = 0x41F42D
Bytes por defecto = 02 0F 1A 04
AA BB CC DD
Donde AA Cordenada X
BB Coordenada Y
CC Ancho
DD Alto
Estos valores van divididos entre 8 ya que se calculan numeros de tiles
Autor: Deokishisu Fuente
Los Pokémon están limitados a un total de 255 puntos de esfuerzo (EV por sus siglas en inglés) por estadística y 510 puntos de esfuerzo en total. Sin embargo, dado que las estadísticas se calculan dividiendo el esfuerzo entre 4 y sin tener en cuenta el resto, solo se requieren 252 puntos de esfuerzo para maximizar una estadística. En la Generación VI, el límite se cambió de 255 a 252, evitando el desperdicio de EV. Como resultado, la cantidad máxima de puntos de estadísticas adicionales que puede ser adquirida por el entrenamiento EV para una estadística dada es de 63. Para realziar este ajuste hay que ir a los siguienetes offsets y hacer el siguiente cambio:
Código:
Offsets = 0x0439FC y 0x043A02 
Byte por defecto =	FF
Cambiar por =		FC
Autor: Touched Fuente
Como se sabe, cada Overworld Sprite tiene una dirección de datos con 0x24 bytes de datos.
El 14to byte determina que tipo de huella aparecerá cuando camines por la arena. El byte
debería tener alguno de los siguientes valores:
Código:
0x00 (Sin Huellas)
0x01 (Huellas)
0x02 (Huellas de Bicicleta)
Cualquier otro valor puede causar que el juego se congele cuando camines en la arena.
Autor: Kalarie Fuente
Para hacer que el tiempo en el safari sea infinito debemos hacer el siguiente cambio:
Código:
Offset = 0xA0F1A
Bytes por defecto =	01 38
Cambiar por =		00 38
El juego seguira tomando 600 pasos, pero estos nunca decrementaran
Autor: FamiliaWerneck Fuente
Evitar que se borren al ser seleccionadas en la bolsa
Código:
Offset = 0xA1E30
Bytes por defecto =	01 38
Cambiar por =		00 38
Luego insertar el siguiente código en un offset alineado:
Código:
Rutina que borra Pokeball
00 F0 04 F8 A1 46 F0 BC 01 BC 00 47 04 48 00 88 0C 28 02 D9 00 21 00 F0 01 F8 01 21 01 4A 10 47 30 AD 03 02 D9 A1 09 08
Offset = 0x2D924
Bytes por defecto =	A1 46 F0 BC 01 BC 00 47
Cambiar por = 		00 48 00 47 XX XX XX XX
Donde XX XX XX XX es el puntero a la rutina anterior en modo THUMB
Con esta modificación no gastarás pokéball si no capturas un pokémon salvaje
Autor: FamiliaWerneck Fuente
En el A-Map con la vista en modo profesional (CTRL+H) en el 5to byte del map header
Código:
cambiar a 00 para activar vuelo
cambiar a 01 para desactivarlo
De esta manera podemos ajustar en que lugares se puede usar vuelo y en cuales no
Autor: Chrunch Fuente
Código:
Offsets = 0x09B430 y 0x09B440
Byte por defecto =	04
Reemplazar por 05, la cantidad máxima de dígitos
Luego en 0x09B47A cambiar 64 por 69 (es una coordenada x así que no estoy seguro si este valor es exacto o no)
Autor: BluRose Fuente
Al darle a un NPC un byte de comportamiento 0xC, que corresponde a Oculto o Hidden en la Fire Red este crashea el juego al entrar a un mapa donde se encuentre ese NPC ya que el puntero a dicha funión está rellena de ceros. Para corregir esto hacer el siguiente cambio:
Código:
Offset = 0x39FBF8
Bytes por defecto =	00 00 00 00
Cambiar por =		B5 FF 05 08
Si quieres ocultar el NPC como lo hace en RSE, poner en su lugar F1 31 06 08
Autor: CompuMax
Para deshabilitar permanentemente las descripciones de cada categoría del menú START. Solo se debe hacer el siguiente ajuste:
Código:
Offset = 0x113034
Bytes por defecto =	F0 F6 74 FF
Cambiar por = 		00 00 00 00
Autor: Deokishisu Fuente
Para quitar completamente la animación que se muestra al usar una Máquina Oculta como la barra negra, grito del pokémon, sprite y todo lo que se muestra al usar una MO fuera de batalla se debe hacer el siguiente cambio:
Código:
Offset = 0x860C2
Bytes por defecto =	06 20 FD F7 BE F9 3B 20 FD F7 97 FB
Cambiar por =		00 00 00 00 00 00 00 00 00 00 00 00
Autor: Spherical Ice Fuente
Al hacer nuestros hacks, las imágenes de lugares no suelen coincidir con nuestros nuevos lugares, a menos que no se edite la región. Para eliminar estas imágenes solo se debe hacer el siguiente cambio:
Código:
Offset	 Bytes por defecto	Cambiar por
0xF8121	 06 00 0E 01		00 00 00 00
0xF8168	 FF F7 D2 FF		00 00 00 00
0x56C96  A1 F0 81 FA		00 00 00 00
0xF82BE	 00 F0 55 F9		00 00 00 00
Autor: Telinc1 Fuente
Como sabran el Huevo Suerte o Lucky Egg en inglés, es un objeto que al ser equipado a un pokémon, éste obtendrá un 50% más de experiencia. Para editar este factor de ganancia tenemos los siguientes datos:
Código:
Rutina que verifica la posesión del Huevo Suerte: 0x21DBA
Byte que determina el factor de multiplicación: 0x21DC2
Bytes por defecto =	96 o 150 en decimal
El 150 corresponde al 1.5 de experiencia ganada.
Luego cambiar por el nuevo factor de multiplicación por 100, pasado a hexadecimal. Ejemplo:
Para un factor de 2.0 = 2.0x100 = 200, pasado a hex sería 0xFA. Cambiar 96 por FA y tendremos un factor de multiplicación de 100% adicional de experiencia o 200% en total
Autor: AkameTheBulbasaur Fuente
Esta modificación evita que se pueda cancelar la evolución de un pokémon mientras este esté evolucionando.
Código:
Offset		Bytes por defecto		Cambiar por
0x043156	02 D1				02 E0
0x0CE90C	1C D1				1C E0
0x0CF566 	17 D1				17 E0
0x126C26	47 F7 19 FB 00 28 18 D1		C0 46 C0 46 C0 46 C0 46
0x126C4C 	08 D9				08 E0
Autor: Sagiri Fuente
En la GEN III, Protección, Detección y Aguante están buggeados.
Se supone que el juego lee la probabilidad de una tabla que tiene solo 4 entradas, por lo que lee datos basura después de la cuarta protección consecutiva.
Para obtener el comportamiento correcto, como el a partir de la GEN V, sin límite, hacer los siguientes cambios:
Código:
Offset =  0x26FB6 
Bytes por defecto =	04 7A 64 00 A4 18 1D F0 84 FF 21 88
Cambiar por = 		01 7A 14 88 CC 40 1D F0 84 FF 21 1C
Si alguna vez logra obtener 16 protecciones consecutivas, fallará la siguiente debido a la precisión.
Autor: Mr.Pkmn Fuente
Cuando un pokémon es herido por quemaduras o está QUEMADO, pierde 1/8 de sus PS al final de cada turno. A partir de la séptima generación ahora el daño de la quemadura, pasa a ser solo de 1/16 de los PS totales. Para tener estos nuevos ajustes hacer el siguiente cambio:
Código:
Offset = 0x01856A 
Bytes por defecto =	00
Cambiar por =		09
Autor: Delta231 Fuente
Un Pokémon paralizado tiene una probabilidad del 25% de no moverse en un turno debido a una parálisis total del mismo. Además la velocidad del Pokémon afectado por esta condición se reduce un 75%, dejándolo con solo el 25% de su velocidad original.
En la séptima generación ahora la parálisis pasa a reducir la velocidad del Pokémon al 50% de la original. Para tener estos nuevos ajustes hacer los siguientes cambios:
Código:
Offset	  Bytes por defecto	Cambiar por
0x014E60  80 08			40 08
0x014F40  BF 08			7F 08
Autor: Delta231 Fuente
Piel Tosca es una habilidad que hiere a los Pokémon que usen un movimiento de contacto contra el poseedor de la habilidad. En la GEN III hace que el atacante pierda 1/16 de sus PS Máx. Pero a partir de la GEN IV el atacante pierde 1/8 de sus PS Máx. Para corregir esto hacer los siguientes cambios:
Código:
Offset =  0x1AADA 
Bytes por defecto =	00 09
Cambiar por = 		C0 08
Autor: HidoranBlaze Fuente
Para eliminar el aumento de estadísticas provisto al obtener a medida que se obtienen las medallas, basta con hacer los siguientes cambios:
Velocidad
Código:
Offset		Bytes por defecto		Cambiar por
0x014E1A	00 06				00 20
0x014F02	00 06				00 20
Ataque
Código:
0x03EE24	00 06				00 20
Defensa
Código:
0x03EE56	00 06				00 20
Ataque Especial
Código:
0x03EE8C	00 06				00 20
Defensa Especial
Código:
0x03EEC4	00 06				00 20
Autor: SP458 Fuente
Para desbloquear la Pokédex Nacional automáticamente sin necesidad de activar la flag correspondiente, se pueden hacer el siguiente cambio:
Código:
Offset		Bytes por defecto	Cambiar por
0x06E25C	00 B5 0A 48		01 20 70 47
Autor: Sagiri Fuente
A pesar de que Buceo es una MO, en la Fire Red se puede borrar como cualquier otra MT, para darle un comportamiento de MO solo basta hacer el siguiente cambio:
Código:
Offset		Byte por defecto	Cambiar por
0x125AB6	06			07
Autor: Sagiri Fuente
Muchas veces solemos crear objetos que sustituyan los movimientos de las MO, por lo que ya no necesitaríamos usar dichos movimientos de los pokémon fuera de combate. Para eliminar las opciones de dichos movimientos del menú pokémon debemos hacer los siguientes cambios:
Código:
Offset		Bytes por defecto	Cambiar por
0x122A8C	0C			00
0x45A76E	94 00			00 00
Autor: mbcm10ww Fuente
Para habilitar o deshabilitar el uso de la bicicleta en un mapa solo debemos abrir el modo profesional en A-Map y en el Map Header o Cabecera del Mapa
ubicarse en el 25to byte (o el cuarto si contamos empezando por el final) y ajustar de acuerdo a las necesidades
Código:
00 = No se puede usar la bicicleta
01 = Se puede usar la bicicleta
Autor: aar2697 Fuente
Seguramente habrán notado que cuando se expanden los pokémon, no aparecen los nuevos pokémon agregados en A-Map, esto se debe a que el programa está diseñado para elegir entre las 412 especies que vienen por defecto en la GEN III.
Para que los pokémon expandidos aparezcan se debe hacer lo siguiente:
Convertir la nueva cantidad de pokémon a hexadecimal y pasarlo a Little-Endian, por ejemplo:
Código:
Nueva cantidad de pokémon: 548
Pasado a Hexadecimal: 02 24
En formato Little-Endian: 24 02
Ahora abrir A-Map con un editor hexadecimal e ir a los siguientes offsets dependiendo de la versión que usas.
Código:
Para Advance Map 1.92 ir a D027C
Para Advance Map 1.95 Ir a 77DD5
Y cambiar 9C 01 = 019C = 412 por la nueva cantidad de pokémon para tu hack
Autor: Aryan 10 Fuente
En GEN III la experiencia se reparte en fracciones del 50% incluso al pokémon que batalló,
pero en la GEN VI los que participan obtienen 100% y el resto 50%
Para obtener estos resultados hacer los siguientes cambios:
Código:
Offsets		Bytes por defecto	Cambiar por
0x21C3A 	29 1C			02 21
Autor: Awakward./Trev Fuente
Encontrar Unowns fuera de las Cámaras Sete crashea el juego, para solucionarlo hacer los siguientes cambios:
Código:
Offset =  0x82A10 
Bytes por defecto =	C9 2C 13 D0
Cambiar por = 		00 00 00 00
Autor: Squeetz Fuente
El índice de golpe crítico es la probabilidad que tiene un ataque de ser crítico. Según el índice de golpe crítico que tenga el Pokémon al atacar, tendrá más o menos probabilidad de causarlo. En todas las generaciones la probabilidad base de realizar un golpe crítico es del 6,25% (Indice 0), para todos los ataques que, en la descripción no aparezca "alta probabilidad de golpe crítico" o "suele ser crítico". El índice de golpe crítico no puede ser mayor de 4, ni menor de 0.
En la GEN III la tabla de índices de Golpes Críticos es la siguiente:
Código:
I (Índice) 	0 	1 	2 	3 	4
Ratio (%) 	6,25% 	12,5% 	25% 	33,3% 	50%
Pero en la GEN VI se actualizó a la siguiente tabla:
Código:
I (Índice) 	0 	1 	2 	3 o más
Ratio (%) 	6,25% 	12,5% 	50% 	100%
Para actualizar a la nueva tabla, hacer los siguientes cambios:
Código:
Offset =  0x250530 
Bytes por defecto =	10 00 08 00 04 00 03 00 02 00
Cambiar por = 		10 00 08 00 02 00 01 00 01 00
Autor: Chacha Dinosaur Fuente
En la GEN III un Golpe Crítico ocasiona 100% más de daño, pero en la GEN VI se redujo este porcentaje al 50%.
Para pasar de 2x a 1.5x como en la GEN VI, hacer los siguientes cambios:
Insertar la siguiente rutina en un espacio libre alineado:
Código:
.align 2
.thumb

ldr r4, damage
ldr r1, crit
ldrb r1, [r1, #0x0]
add r1, r1, #0x1
mul r1, r0
lsr r1, r1, #0x1
ldr r3, return
bx r3

.align 2
damage: .word 0x02023D50
crit: .word 0x02023D71
return: .word 0x0801E5ED
Compilada:
Código:
03 4C 04 49 09 78 01 31 41 43 49 08 02 4B 18 47 50 3D 02 02 71 3D 02 02 ED E5 01 08
En 0x1E5E4 colocar 00 4B 18 47 XX XX XX XX, donde XX XX XX XX es el puntero a la rutina anterior en modo THUMB en formato Little-Endian.

Luego insertar la siguiente rutina en un espacio libre alineado:
Código:
.align 2
.thumb

mov r1, #0x0
strh r1, [r6, #0x0]
ldr r1, crit
ldrb r1, [r1, #0x0]
add r1, r1, #0x1
mul r1, r0
lsr r1, r1, #0x1
ldr r3, return
bx r3

.align 2
crit: .word 0x02023D71
return: .word 0x0801E6E5
Compilada:
Código:
00 21 31 80 03 49 09 78 01 31 41 43 49 08 02 4B 18 47 C0 46 71 3D 02 02 E5 E6 01 08
En 0x1E6DC colocar 00 4B 18 47 YY YY YY YY 00 00, donde YY YY YY YY es el puntero a esta última rutina en modo THUMB en formato Little-Endian
Autor: Chacha Dinosaur Fuente
Uno de los bugs más conocidos de la Fire Red es el de la Categoría o Especies de Pokédex, y esto es si una categoría de Pokémon tiene dos palabras, la Pokédex solo mostrará erróneamente la primera palabra. Por ejemplo, mientras que la categoría de Beedrill es "Poison Bee Pokémon", aparece en el juego como "Poison Pokémon". Para corregir este fallo hacer el siguiente cambio:
Código:
Offsets = 0x10583C y 0x105856
Byte por defecto =	00
Cambiar por =		FF
Autor: HackMew Fuente
En la GEN III, los datos de las Fortalezas Individuales o IV (por sus siglas en inglés) de un Pokémon se almacenan en un entero de 32 bits. Sin embargo, cuando se captura un Pokémon Errante, solo se transfieren los últimos 8 bits. Mientras que el HP IV no se ve afectado, el Pokémon solo puede tener un Ataque máximo de 7 IV y los otros IV siempre serán 0.
Para solucionar este glitch y almacenar los 32 bits correspondientes a sus IVs hay que hacer los siguientes cambios:
Código:
Offsets	Bytes por defecto	Cambiar por
0x40A92	21 78 1F 20 0A 1C	21 68 69 60 20 E0
Autor: HackMew Fuente
Debido a que se supone que Mew no debería ser capturado de manera salvaje, sino por eventos, este pokémon no tiene obediencia a menos que se le configure esta por script. Pero si queremos facilitar las cosas y que este obedezca al ser capturado debemos hacer los siguientes cambios:
Código:
Offset = 0x1D402	
Bytes por defecto: 	97	
Cambiar por:  		00
Autor: NintendoBoyDX Fuente
Al igual que en caso anterior, para corregir la obediencia de Deoxys es necesario hacer los siguientes cambios:
Código:
Offset = 0x1D3F0	
Bytes por defecto: 	88 42 0F D0	
Cambiar por:  		00 00 00 00
Autor: NintendoBoyDX Fuente
Todos sabemos que al entrar a una batalla el fondo o background, al igual que los entrenadores, el protagonista o el pokémon salvaje; lo que está en la mitad superior de la pantalla entra desde la izquierda hasta su parte más derecha y lo que está en la mitad inferior de la manera contraria, simulando un efecto rotatorio de la cámara al empezar el combate. Pero a la hora de insertar fondos que no tienen simetría horizontal no queda muy bien esa entrada. Para eliminar la animación de entrada del fondo basta con hacer la siguiente modificación:
Código:
Offsets     Bytes por defecto	Cambiar por
0x24EFE4    1C 00 00 04            D0 70 03 02
Autor: CompuMax
Código:
Offsets     Bytes por defecto	Cambiar por
0x09FDD4    3F 42 0F 00         FF C9 9A 3B
0x08A006    06                  09
0x09FE52    06                  09
0x09FE62    06                  09
Autor: jirachiwishmaker Fuente
Código:
Offsets     Bytes por defecto	Cambiar por
0x11CE6E    0B D0               00 00
0x11CA2C    5A F7 78 FE         00 F0 0E FA
Autor: Taの境界 Fuente
Código:
Offsets     Bytes por defecto	Cambiar por
0x0441D6    01                  00
0x125AA8    01                  00
Autor: JPAN Fuente
Código:
Offsets     Bytes por defecto	Cambiar por
0x08C836    03                  0F
Autor: Spherical Ice Fuente.
Código:
Offsets     Bytes por defecto	Cambiar por
0x110F44    01 30               00 20
0x110F50    EF D9               C0 46
Autor: Darthatron Fuente.

Esto ha sido todo por ahora.

:)

Finalmente si alguien desea aportar algún otro fix o mini hack, lo puede dejar en los comentarios y con gusto lo agregaré. Tambien pueden reportar cualquier error con la redacción o el funcionamiento de las modificaciones ya que no las he comprobado todas.

¡Saludos!

CompuMax
 
Última edición:

Gosuto

Spriter de las Tinieblas
Respuesta: [FR] Recopilación de mini hacks para Fire Red

Simplemente increíble el aporte compu, se el tiempo que te tomo formar el post pero a valido la pena la espera. Se que a mas de uno le ayudara o le servira de algo.

Sigue con esos aportes, tan utiles e increibles.

PD: no soy de comentar muchoo y tampoco de extenderme asi que eso jajaja
 
Respuesta: [FR] Recopilación de mini hacks para Fire Red

Se nota que te dedicaste solamente a eso. Es impresionante como recopilaste uno por uno, debió de ser tedioso. Me tomé el tiempo de leer cada uno, y todos son de mucha utilidad, espero que sigas actualizando éste tema. Qué está muy interesante. ¡Está excelente, sigue así!
 

hacanoca

Héroe de WaH
Respuesta: [FR] Recopilación de mini hacks para Fire Red

¡Esto está genial Compumax!
En un sólo tema se tiene acceso a una gran cantidad de maravillas que podemos aplicar en nuestros hacks.
Está fabuloso, muchas gracias por todo este trabajo y este increíble aporte.
 

kakarotto

Leyenda de WaH
Respuesta: [FR] Recopilación de mini hacks para Fire Red

Espectacular bro! Estos aportes si que merecen la pena y todo muy bien explicado.
10/10
 

Versekr Dark

Usuario mítico
Respuesta: [FR] Recopilación de mini hacks para Fire Red

Como siempre de los mejores aportes, y todavía hay muchas mas cosas que sacar de ese thread jaja xD, cada día actualizan mas cosas y esta muy extenso, hay rutinas y muchos mas bytes tanto para Em y R/S, espero la segunda parte por que yo se que tanto tu como ese post están muy chetados :D.
 

Eddie

U Got Woomy
Respuesta: [FR] Recopilación de mini hacks para Fire Red

Este es el post salvavidas de FR.

Excelente aporte,todo esta bien elaborado,se recopilan cosas que te facilitan el no estar viendo Post y post tras otro.

Como siempre has hecho un gran trabajo y espero que continue.

¡Gracias!
 

Naren Jr.

Puto amo
Usuario de Platino
Respuesta: [FR] Recopilación de mini hacks para Fire Red

Definitivamente es un gran aporte, pequeñas cosas que marcan la diferencia en un Hack.

Seria espectacular rotar algunas a la base español y en breves (Cuando tenga acceso a mi PC)

También tengo una que otra interesante, así que en breve complemento mas.
 

Lunos

Enfrentando a La Organización
Miembro insignia
Re: [FR] Recopilación de mini hacks para Fire Red

Explicaciones simples, tema prolijo y ordenado, y extremadamente util. Eso si, yo creo que faltan los creditos especificos de los usuarios que postearon cada uno de estos cambios de byte.
Aun asi, este es un excelente aporte @CompuMax y se irá directo a mis marcadores ^^

EDITO: Ay, se me habia olvidado, yo tambien tengo algunas cosirijillas que aportar.

En el offset 09FDD4 escribir: FF C9 9A 3B
En los offsets 08A006, 09FE52 y 09FE62 escribir: 09
Fuente.

En el offset 11CE6E escribir: 00 00
En el offset 11CA2C escribir: 00 F0 0E FA
Fuente.

En los offsets 441D6 y 125AA8 escribir: 00
Fuente.

En el offset 8C836 escribir: 0F
Fuente.

En el offset 110F44 escribir: 00 20
En el offset 110F50 escribir: C0 46
Fuente.

Algunos de estos y varios de los que tú ya pusiste en el post principal los posteé en temas individuales que pueden encontrar yendo a mi perfil o a la sección de Tutoriales GBA, pero creo que este tema es mas general y va directo al punto, asi que merece la pena tenerlos aquí.

EDITO2: Por cierto, la modificación en el post principal para habilitar el uso de MOs en el overworld sin importar cuantas medallas tengas solo funciona si usas la MO en cuestión desde el menú especificamente, como lo decia el post principal escrito por karatekid552.
 
Última edición:

CompuMax

Discord: CompuMax#0425
Miembro insignia
Respuesta: [FR] Recopilación de mini hacks para Fire Red

Se agregaron los cambios enviados por Lunos al post principal y se agregaron la fuente y los autores de algunas de las modificaciones. Cabe destacar que al principio del post dejo claro de donde he sacado la mayoría de las modificaciones y a quién van los créditos. Aún así en lo que tenga algo de tiempo trataré de ordenarlo con el formato de los últimos cambios.
 

CompuMax

Discord: CompuMax#0425
Miembro insignia
Respuesta: [FR] Recopilación de mini hacks para Fire Red

Espero que el doble post valga la pena!

Agregados todos los créditos y enlaces al código fuente de cada modificación.

Gracias a Lunos por el inmenso trabajo que realizó buscando dicha información, ordenándola y agregándola al post principal.

Ahora si, no hay excusa para no dar créditos al autor oficial de las modificaciones.
 

Lunos

Enfrentando a La Organización
Miembro insignia
Re: [FR] Recopilación de mini hacks para Fire Red

Holi. Vengo a dejar un regalito que conseguí hace algunas horas.
Código:
Offset = 0x12F9E8
Bytes por defecto: 	ED F9 12 08
Cambiar por:  		79 FD 12 08
Autor: Joexv Fuente
 

~Criisss

Usuario mítico
Respuesta: Re: [FR] Recopilación de mini hacks para Fire Red

Holi. Vengo a dejar un regalito que conseguí hace algunas horas.
Código:
Offset = 0x12F9E8
Bytes por defecto: 	ED F9 12 08
Cambiar por:  		79 FD 12 08
Autor: Joexv Fuente
Increible Lunos, es algo que quise hacer siempre sin borrar toda la intro y lo encontraste en un post de 2016, en un tema de miles de páginas, eso es saber buscar.

Al tema en general, esto es un aportazo, todo muy simple y útil,los felicito a los 2, CompuMax y Lunos, terrible recopilación y todos con su fuente.

También comento para agregar uno. Hoy estuve investigando un poco y encontré una correción simple para la animación de la hierba muy alta, que tenía ganas de usar. Esto es lo que hallé. Todos los créditos son para knizz:

Código:
Offset = 0x08059f34
Bytes por defecto: 	00 B5 00 06 00 0E 02 28 01 D0 D1 28 01 D1 01 20 00 E0 00 20 02 BC 08 47 00 20 70 47
Cambiar por:  		00 21 00 06 00 0E 02 28 01 D0 D1 28 01 D1 01 20 00 E0 00 20 00 21 70 47 03 28 F5 E7
Luego, solo hay que poner el comportamiento byte 0x3 al bloque en A-map

Lo probé hoy y funciona perfecto

Fuente

Resultado:



(Hasta tiene nuevo background yay!)
 
Última edición:

Lunos

Enfrentando a La Organización
Miembro insignia
Respuesta: [FR] Recopilación de mini hacks para Fire Red

Holi. Vengo a dejar otro regalito.
Código:
Offset = 0x110F24
Bytes por defecto: 	00 22
Cambiar por:  		28 E0

Offset = 0x11192A
Bytes por defecto: 	01 30
Cambiar por:  		04 20

Offset = 0x110AEC
Bytes por defecto: 	F0 B5
Cambiar por:  		70 47

Offset = 0x1123BC
Bytes por defecto: 	F0 B5
Cambiar por:  		70 47
Autores: JPAN & AkameTheBulbasaur Fuente 1 Fuente 2
 

Azulado

Ex-Creador de Genshin Emblem no es un hack de PKMN
alguien puede decirme que numero de bytess pongo para que los huevos nazcan en nivel 1
 

Azulado

Ex-Creador de Genshin Emblem no es un hack de PKMN
Para ajustar el números de pokémon vistos/capturados correspondientes a la pokédex regional es necesario hacer los siguientes cambios:
Código:
Offset = 0x104BF2
Byte por defecto = 96
Luego cambiar por el número máximo de pokémon menos uno (-1) en hexadecimal
Autor: MrDollSteak Fuente

quiero saber cual es la cantidad para 900 pokemons en la pokedex si alguien de ustedes me dicen se los agradecia mucho

PD:y tambien aqui en A-Map quiero poner 937 pokemon asique ayudenme aqui tambien

Seguramente habrán notado que cuando se expanden los pokémon, no aparecen los nuevos pokémon agregados en A-Map, esto se debe a que el programa está diseñado para elegir entre las 412 especies que vienen por defecto en la GEN III.
Para que los pokémon expandidos aparezcan se debe hacer lo siguiente:
Convertir la nueva cantidad de pokémon a hexadecimal y pasarlo a Little-Endian, por ejemplo:
Código:
Nueva cantidad de pokémon: 548
Pasado a Hexadecimal: 02 24
En formato Little-Endian: 24 02
Ahora abrir A-Map con un editor hexadecimal e ir a los siguientes offsets dependiendo de la versión que usas.
Código:
Para Advance Map 1.92 ir a D027C
Para Advance Map 1.95 Ir a 77DD5
Y cambiar 9C 01 = 019C = 412 por la nueva cantidad de pokémon para tu hack
Autor: Aryan 10 Fuente
 
Última edición:

Lunos

Enfrentando a La Organización
Miembro insignia
quiero saber cual es la cantidad para 900 pokemons en la pokedex si alguien de ustedes me dicen se los agradecia mucho
No existe tal cantidad. En un solo byte el maximo numero que puedes introducir es 0xFF, es decir, 255.
No puedes poner 900 Pokémon en la Pokédex Regional si no modificás el codigo fuente del juego, diseñas una inyección de codigo en C reescribiendo las funciones de codigo relacionadas a la Pokédex Regional, o utilizás los proyectos de decompilación hechos por Pret.
PD:y tambien aqui en A-Map quiero poner 937 pokemon asique ayudenme aqui tambien
937 en decimal pasa a ser 0x3A9 en hexadecimal, por lo que tendrias que escribir A9 03 en el offset indicado ahí dependiendo de la versión de AMap que utilices.
 

Azulado

Ex-Creador de Genshin Emblem no es un hack de PKMN
No existe tal cantidad. En un solo byte el maximo numero que puedes introducir es 0xFF, es decir, 255.
No puedes poner 900 Pokémon en la Pokédex Regional si no modificás el codigo fuente del juego, diseñas una inyección de codigo en C reescribiendo las funciones de codigo relacionadas a la Pokédex Regional, o utilizás los proyectos de decompilación hechos por Pret.

937 en decimal pasa a ser 0x3A9 en hexadecimal, por lo que tendrias que escribir A9 03 en el offset indicado ahí dependiendo de la versión de AMap que utilices.
y como le haces para hacer que se vean todos los pokemon hasta calyrex
 

Lunos

Enfrentando a La Organización
Miembro insignia
y como le haces para hacer que se vean todos los pokemon hasta calyrex
Te dí toda la información que necesitas en el post. ¿Acaso no lo has leido? :S ...
Lo que no mencioné, fue expandir la cantidad de Pokémon que Advance Map puede leer, pero eso ya está posteado en el post principal de este tema.
Quiero decir, tú mismo quoteaste la sección relevante en tu post anterior.
 
Arriba