Este tema es una adaptación/traducción del tema con el mismo nombre en el foro de Skeetendo, al igual que los créditos correspondientes de cada información. Muchos de los términos se mantendrán en ingles para evitar crear confusiones con otros tutoriales.
La intención del tema es compartir aquellos offsets de relevancia en los juegos de segunda generación.
El tema se compondrá de dos partes. La primera será la adaptación/traducción y la segunda serán los aportes hechos por hackers de habla hispana.
Datos de vuelo
0x15319
El formato es [Map Bank] [Map Number] [X Position] [Y Position]
Animaciones de Tileset
Has querido cambiar la animación de algún Tile? O cambiar la animación de corte en los arboles (CUT) o la animación de Headbutt para que coincida con tus nuevos gráficos? Puedes hacerlo usando TLP (Tile Layer Pro) siguiendo estos offsets y editando todo lo que quieras. La animación de la flor parece que se compone de 4 cuadros, pero en realidad solo se usan 2, los que están a todo color.
0x8CB0B - Headbut animation
0x8CC04 - Cut animation
0xFC348 - Water Animation
0xFC3A7 - Flower Animation
0xFC420 - Lava Animation
0xFC57D - Sprout Tower Pillar Animation
0xFC8AD - Whirlpool Animation?
0xFC57D - Sprout Tower Pillar Animation
0xFC8AD - Whirlpool Animation?
Cambiando TM’s
0x11A66-11A97 TM que puedes enseñar.
0x11A98-11AA3 HM que puedes enseñar. (Hay un espacio libre!!!)
Básicamente es una lista de las TM y el ataque que enseñan cada una.
Cambianado los Sprites del Menu de Pokemon
0x8E976 - Gold
0x8E95B - Silver
Es una lista en el orden del Pokedex, del Sprite que es utilizado por cada Pokemon en el menú de “equipo”. Los valores son los siguientes:
01-Poliwag
02-Jigglypuff
03-Diglett
04-Pikachu
05-Staryu-
06-Magikarp
07-Bird
08-Rhydon
09-Clefairy
0A-Oddish
0B-Scyther
0C-Gengar
0D-Lapras
0E-MrMime
0F-Eevee
10-Miltank
11-Shellder
12-Grimer
13-Ekans
14-Voltorb
15-Squirtle
16-Bulbasaur
17-Charmander
18-Weedle
19-Unown
1A-Geodude
1B-Machoke
1C-Egg
1D-Tentacool
1E-Butterfree
1F-Zubat
20-Snorlax
21-Ho-oh
22-Lugia
23-Gyrados
24-Slowpoke
25-Sudowoodo
26-Charizard
Cambiando el Monologo de introduccion.
0x624e – Cambia a 00 para desactivar el video de introducción (Lapras, Charizard lanzando Fire, etc.)
0x62bf – Cambia a 00 para desactivar el movimiento de las nubes en la pantalla del título.
0x5faa - Cambia a 00 para desactivar el monologo de “poner el reloj a tiempo”
0x906ae – Hora inicial (Si desactivas el monologo del reloj, la hora inicial del juego será la que especifiques aquí)
0x5FC2 - Sprite de Prof. Oak (1ra. vez)
0x6017 - Sprite de Prof. Oak (2da. vez)
0x5FDE – Sprite Pokemon.
0x6061 - Pokemon Cry.
0x6037 – Sprite del Protagonista.
0x60C0 - Sprite del Protagonista 2da. Vez (Solo si escribes tu nombre)
0x15319 – Donde inicia el juego. Formato: [Map Bank][Map][X][Y]
0x5cea – Dinero con el que inicias.
Spritesheets
0x1468C-146BF - Pointer table to Spritesets
0x146C0-146CA - Spriteset (Pallet Town)
0x146CB-146D5 - Spriteset (Viridian City)
0x146D6-146E0 - Spriteset (Pewter City)
0x146E1-146EB - Spriteset (Cinnabar Island)
0x146EC-146F7 - Spriteset (Cerulean)
0x146F8-14701 - Spriteset (Saffron)
0x14702-1470C - Spriteset (Celadon)
0x1470D-14717 - Spriteset (Lavender)
0x14718-14722 - Spriteset (Vermilion)
0x14723-1472D - Spriteset (Fuchsia)
0x1472E-14738 - Spriteset (League)
0x14739-14745 - Spriteset (New Bark Town)
0x14746-1474E - Spriteset (Cherrygrove City)
0x1474F-14759 - Spriteset (Mt. Silver)
0x1475A-14764 - Spriteset (Violet)
0x14765-1476F - Spriteset (Ecruteak)
0x14770-1477A - Spriteset (Azalea)
0x1477B-14785 - Spriteset (Goldenrod)
0x14786-14790 - Spriteset (Cianwood City)
0x14791-1499B - Spriteset (Olivine)
0x1479C-147A6 - Spriteset (Lake of Rage)
0x147A7-147B1 - Spriteset (Mahogany)
0x147B2-147BC - Spriteset (Blackthorn)
0x147BD-147C7 - Spriteset (Caves)
0x147C8-147D2 - Spriteset (S.S. Aqua + Etc.)
0x147D3-147DD - Spriteset (Special)
Es una lista de Sprite (overworld) que estarán disponibles en los mapas. Si se utiliza un Sprite que no está en la lista, se mostrará el Sprite del protagonista. Para agregar un Sprite a estas listas, tienes que reemplazar otro Sprite. Además, los spritesheets sólo se vuelven a cargar cuando entras en un mapa a través de un Warp (una puerta, un túnel, etc.), y no a través de una conexión de mapa. Esta es una de las razones de que haya casetas entre pueblos y rutas. Puede que se tenga que colocar un Sprite en más de un spritesheet para conseguir que se muestre correctamente en el juego. Por ejemplo, si pones un Sprite en Cherrygrove también debes hacerlo en New Bark Town, ya que no hay casetas entre los dos poblados.
Overworld Sprites
0x141A9 – Sprite por defecto del protagonista
0x147DE-14A17 – Datos de los overworld Sprites, el formato es de 6-bytes:
[Pointer de los Graficos (2-byte)]
[Tamaño?]
[Bank]
[Frames?]
[Paleta por Defecto]
Tamaño = 0C sprite que caminan, 40 sprite estáticos
Frames = 01 sprite que caminan, 03 sprite estáticos
Editando la Fuente.
0xF8001 - 2byte pointer a los Gráficos de la fuente.
0xF8008 - Byte que indica en que banco esta.
0xF800A - 8D 1bpp 72 - 2Bpp
Te has preguntado cómo Koolboyman hizo que la fuente del Prism tenga una sombra detrás?
Simplemente repuntea la fuente a un espacio en blanco a un tramo de espacio en blanco y la dibujas en el TLP. Tambien tendrás que cambiar a 2bpp para que el juego lo cargue como un gráfico de 4 colores, en lugar de un gráfico de 2 colores como lo hace normalmente.
0xF8046 - 0x30 para 1bpp, 0x60 para 2bpp
0xF8049 - 2byte Pointer a los estilos de bordes
0xF8055 - Byte que indica en que banco esta
0xF8057 - 0x8D for 1bpp, 0x72 for 2Bpp
Estos dos datos son independientes, puedes tener una fuente de 4 colores con bordes de 2 colores y viceversa.
Tabla de Trigger
0x94000 - Inicio de Tabla.
Formato: [Map Bank] [[Map No.] [2 Byte Pointer hacia la Ram]
Si alguna vez has añadido un evento de disparo (trigger) al juego y no ha funcionado, esta tabla es la razón. Cada vez que añadas un trigger a un mapa, dicho mapa debe ser incluido en esta lista. Lo mas sencillo es reemplazar uno de los mapas en los cuales no quieres tener triggers, como por ejemplo en la Ruta 29, si no quieres tener el tutorial de “atrapar Pokemon” puedes sobrescribir esta información y agregar otro mapa.
Entrenadores!
0x518A6 – Cuantos grupos de Entrenadores hay.
0x80000 – Tabla de Pointer a las iamgenes de entrenadores.
0x3993E – Tabla de Pointer a los datos de entrenados. Se usan 2-byte pointer para cada entrenador y en orden, empezando con Falkner.
0xE9027 - Tabla con la cancion que se escucha cada vez que un Entrenador te “mira”.
0x27283 - Tabla que determina los DVs de cada grupo de entrenador. 2-bytes por cada grupo de entrenador.
0x 1B0955 Nombres de los grupos de Entrenadores.
Con esto, puedes hacer muchas cosas. Puedes repuntear el grupo de entrenador de los líderes de gimnasio, para tener multiples peleas con ellos a manera de revancha o cambiarles el nombre o darles más Pokémon. También es útil para añadir más entrenadores de un cierto tipo o activar batallas para el Profesor Oak, que cuenta con sus propios datos de entrenador pero la información de batalla es la misma que la de Elite Four Will.
0x39562 – Tabla que determina cuánto dinero te da cada grupo de entrenador.
Para calcular el dinero de cada batalla, se multiplica el valor encontrado en esta tabla por (8 * [pokemon más nivelado del enemigo]).
Básicamente, puedes encontrar el byte del dinero que te da cada entrenador con la siguiente formula:
0x39564 + ([Trainer Group] - 1) * 7
(Credit to Miksy91)
Capturando Pokemon
0x23994- 2-Byte Pointer para el nombre que usa el tutorial de "como capturar Pokemon"
Para cambiar el nombre de "Dude" del tipo que te enseña a capturar pokemon solo tienes que repuntear a un espacio en blanco en el mismo banco y escribir el nombre que desees, seguido de x50. Tan simple como eso.
Minusculas!
0x1150= Determina los caracteres usados en el codigo "POKé" de la tabla de texto.
Si te molesta que la palabra pokemon salga en mayúsculas por el carácter "POKé", puedes cambiarlo a “Poké” para que aparezca en minúsculas.
0xEA = Byte usado en el texto para el caracter "é"
Util si quieres escibir cosas con acento en la “e”.
Nuevo Pokedex
0x40D60 – Orden del Nuevo Pokedex
Esta lista determina el orden de los pokemon para "New Pokedex". Útil para aquellos tienen nuevos pokemon en su hack.
Sprite de espaldas
0x3F9CB - Sprites de espalda del protagonista
48 x 48 pixels
0x3FB5B - Sprites de espalda del “Dude”
48 x 48 pixels
Estos sprites se pueden insertar con Agixp poniendo el offset manualmente.
Matando Cosas
No descripción en el menu de inicio.
0x12C75-12C7B
0x12C7F-12C92
Cambia todo a 00 para desactivar la descripción en el menu de inicio, como en las versiones clásicas de pokemon (Red&Blue)
“Matar” la cama y el mapa del cuarto de Hiro (Tauwasser)
0x181BE7 – Cambia a 01 para prevenir que se carguen la cama y el mapa. Después cambia el mapa del cuarto de jugador para que no tenga escaleras y mágicamente la cama aparece donde debería estar, pero tiene el inconveniente de no permitir que lo cambies con el PC.
Editando Ataques
0x41AFE = Inicio de datos.
Formato:
[Attack Animation] [Effect] [Base Power] [Type] [Accuracy] [PP] [00]
0x347F3 – Ataques con alta probabilidad de golpe critico. La lista termina con 0xFF.
Repunteando Cosas
Ho-oh on Title Screen
0x62D7 Pointer a gráficos de Ho-oh.
0x62DD Banco a gráficos de Ho-oh.
0xE4260 Datos originales de los gráficos de Ho-oh.
Los gráficos están organizados de forma extraña debido a la forma en que agita sus alas, ya que el cuerpo y la cara permanecen en el mismo lugar. Se puede exportar la imagen original usando AGIXP. Sólo deselecciona la casilla de “Trainer Pic-Extracting” e introduce el offset manualmente; Deja la primera casilla de tamaño (X/Y) en blanco y pon 48 en la segunda.
Nombre de los “TIPOS”
0x509AE = Pointer a tabla de nombres de tipos.
Los tipos que están sin utilizar apuntan al tipo “NORMAL”. Puedes cambiar el pointer a otro espacio del banco y renombrar los tipos sin utilizar para crear tus propios tipos, como el Fairy.
Datos de movimientos y evolución de los Pokemon.
0x427BD-429B2 Pointers a los datos de movimientos y evolución de los Pokemon.
Aquí puedes cambiar los ataques que un Pokemon aprende por nivel y sus evoluciones. El orden de los pointers va de acuerdo al Pokedex.
Tabla de intercambios
0xFCB9C- Pointer (2-Byte) a la tabla de intercambios.
¿Quieres añadir en algunos nuevos intercambios en lugar de sólo la sobrescribir de viejos? Simplemente repuntea la tabla, copia el contenido de la anterior y empieza a añadir nuevos datos a la tabla.
Items Beta
Pokeflute -
Si usas un editor de items y cambias el item x38 para que tenga la opción de “use”, te llevaras la sorpresa de que se trata de la Pokeflute. El problema es que no reproduce la cambion y tienes que cambiar su nombre de Teru-Sama a “Pokeflute”, pero funciona.
Pokémon stats (IIMarckus)
0x51B0B (Pokemon Gold) 32 bytes por Pokémon. Bytes del 25–32 representan las TMs/HMs, solo que se leen por bits y no por bytes.
Graficos (Blazichu)
0x253FF Trainer Card.
0x2547F Graficos de Trainer Card
0x C0000 Graficos Overworld Sprites.
0x E4000 Texto de “Nintendo y Gamefreak” al inicio del juego.
0x10F31 Graficos de la mochila.
0x86D26 Graficos cuando terminas el juego.
0x50580 Sprite pescando.
0x8EABE Sprites de los Pokemon en el Menu.
0xE4B80 Logo de Gamefreak al inicio del juego. (1-bpp)
Concurso Caza Bichos- Parque Nacional
0x97d87 Pokemon Crystal
0x97bb8 Pokemon Gold / Silver
Structura: [Chance (%)] [Pokemon] [Level min.] [Level max.]
Items
$68A0 Tabla de items
Formato: [Precio] [Precio] [Efecto cuando se porta/matiene] [Variable] [Opciones cuando se selecciona] [Bolso Mochila] [Puedo usarlo?]
Opciones cuando se selecciona
- 00 = Give/Toss/Select
- 10 = Use/Give/Toss/Select
- 40 = Give/Toss
- 80 = Select
- C0 = Use
Bolso Mochila
- 1 = Items
- 2 = Key items
- 3 = Balls
- 4 = TM/HM
Puedo usarlo?
- 00 = Can't use/No se puede usar
- 06 = Pokeball
- 40 = Aparece texto en el Menu del Item
- 50 = Aparece el Menu de la Pokemon Party
- 55 = Aparece el Menu de la Pokemon Party + Aliviar cambio de Status
- 60 = Tiene efecto especial al entrenador fuera de batalla (Bike/Escape Rope)
Mini Sprite Pokemon
0x8EA70- Tabla de Mini sprite del menu pokemon.
0x8EABE Gráficos de los mini sprites.
Esta tabla manda en las animaciones de los minis de los pokemon. Se pueden agregar 3 minisprite más; al inicio de la tabla se repite el valor de Poliwag y al final hay dos espacios libres para agregar, además el banco cuenta con el espacio exacto para agregar los gráficos de los minis
Emoticons
$143A8 –Pointer a tabla de Emoticons.
$143C1 –Inicio de la tabla de Emoticons.
Formato: [Pointer-2byte] [Length] [Bank] [Duracion??] [Terminacion??]
0x14409 Gráficos de los Emoticons.
Puedes repuntear la tabla y almacenar los graficos en otro banco diferente para tener más variedad de emoticons. La lista según su valor hex:
00 = Signo de Exclamación
01 = Signo de Interrogación
02 = Feliz
03 = Triste?
04 = Corazon
05 = Rayo
06 = Durmiendo
07 = Pescado
Arboles “Headbutt”
0xBA3E6 Tabla.
Formato:
[Map Bank] [Map No] [List number]
0xBA470
[List number (2-byte pointers)]
2nd pointer = 01
3rd pointer = 02
4th pointer = 03
List 01:
Venonat LV21
Venomoth LV24
Pineco LV23
Exeggcute LV22
Exeggcute LV24
List 02:
Hoothoot LV20
Noctowl LV26
Heracross LV24
Aipom LV24
Aipom LV25
List 03:
Ledian LV29
Ariados LV31
=================================================
Offsets para Tile Layer Pro (Por G0LD Z!)
415f5 - Animacion Slowpoke en modo busqueda del pokedex
8e9f4 - Sprites de pokemon en el menu (Solo Silver)
1C03C - Tiles de techos de las casas (son 5 pero creo que se puede repuntear para agregar mas)
113F1 - Tiles de ilustraciones de la mochila
F80F4 - Tiles del worldmap
====================================================
Offsets para Pokemon Cristal (Por @Crystal_ )
Map headers: 0x94034
Ejemplo:
En total 9 bytes por mapa. Los mapas estan ordenados por sus ID.
Secondary map headers: 0x94dd8
No tienen longitud fija
Tablas de Pokemon que aparecen pescando: 0x924e3
Ejemplo:
Hay 12 tablas, una detras de otra. Cada mapa utilizará una de ellas según lo que su map_header indique. Un '$0' en lugar del nombre de un Pokemon indica que es Pokemon que aparecera ahí se trae de mas adelante:
Pokemon que aparecen dormidos al caer de un arbol de headbutt:
0x3eb5d
[dormidos_noche][0xff][dormidos_dia][0xff][dormidos_mañana][0xff]
Pokemon que aparecen en el bug catching contest: 0x97d87
La estructura es, para cada pokemon:
[% aparicion sobre 100][Pokemon][level min][level max]
Rutina que determina que DVs tiene que tener un pokemon para ser shiny:
Crystal: 0x8a68
En este caso puedo añadir que para G/S: 0x9052
Tabla que indica a que horas sera mañana/dia/noche: 0x14044. Sin embargo, cambios en esa tabla no se actualizan en el pokegear, tan solo tienen efecto en la paleta utilizada en el overworld y en los eventos que puedan depender de que tiempo del dia es.
Experiencia recibida: La formula que determina los exp points obtenidos en funcion del base exp del pokemon debilitado es Base Exp * level / 7 (y por 1.5 si es trainer o si el pokemon es de diferente ID que el trainer. Sabiendo esto, el '7' de esa formula se encuentra en el offset 0x3eec1. Puede ser util si alguien esta buscado ralentizar o acelerar el crecimiento de los pokemon de una forma mas rapida que modificar cada base exp de cada uno de los 251 pokemon.
Probabiliad de que un pokemon salvaje aparezca con un held item de acuerdo a lo indicado en su base stats data structure, es decir, siempre y cuando la especie de pokemon tenga algun item indicado como held item.
0x3e933: Probabilidad de que un pokemon salvaje no tenga held item. Es 0xC0, que corresponde a 75% (25% de aparecer con item)
0x3e93c: Probabilidad de que aparezca el segundo held item, sabiendo que el pokemon [si] lleva held item. Es 0x14 que corresponde a 8% de 25%, es decir a 2% en total.
La intención del tema es compartir aquellos offsets de relevancia en los juegos de segunda generación.
El tema se compondrá de dos partes. La primera será la adaptación/traducción y la segunda serán los aportes hechos por hackers de habla hispana.
Datos de vuelo
0x15319
El formato es [Map Bank] [Map Number] [X Position] [Y Position]
Animaciones de Tileset
Has querido cambiar la animación de algún Tile? O cambiar la animación de corte en los arboles (CUT) o la animación de Headbutt para que coincida con tus nuevos gráficos? Puedes hacerlo usando TLP (Tile Layer Pro) siguiendo estos offsets y editando todo lo que quieras. La animación de la flor parece que se compone de 4 cuadros, pero en realidad solo se usan 2, los que están a todo color.
0x8CB0B - Headbut animation
0x8CC04 - Cut animation
0xFC348 - Water Animation
0xFC3A7 - Flower Animation
0xFC420 - Lava Animation
0xFC57D - Sprout Tower Pillar Animation
0xFC8AD - Whirlpool Animation?
0xFC57D - Sprout Tower Pillar Animation
0xFC8AD - Whirlpool Animation?
Cambiando TM’s
0x11A66-11A97 TM que puedes enseñar.
0x11A98-11AA3 HM que puedes enseñar. (Hay un espacio libre!!!)
Básicamente es una lista de las TM y el ataque que enseñan cada una.
Cambianado los Sprites del Menu de Pokemon
0x8E976 - Gold
0x8E95B - Silver
Es una lista en el orden del Pokedex, del Sprite que es utilizado por cada Pokemon en el menú de “equipo”. Los valores son los siguientes:
01-Poliwag
02-Jigglypuff
03-Diglett
04-Pikachu
05-Staryu-
06-Magikarp
07-Bird
08-Rhydon
09-Clefairy
0A-Oddish
0B-Scyther
0C-Gengar
0D-Lapras
0E-MrMime
0F-Eevee
10-Miltank
11-Shellder
12-Grimer
13-Ekans
14-Voltorb
15-Squirtle
16-Bulbasaur
17-Charmander
18-Weedle
19-Unown
1A-Geodude
1B-Machoke
1C-Egg
1D-Tentacool
1E-Butterfree
1F-Zubat
20-Snorlax
21-Ho-oh
22-Lugia
23-Gyrados
24-Slowpoke
25-Sudowoodo
26-Charizard
Cambiando el Monologo de introduccion.
0x624e – Cambia a 00 para desactivar el video de introducción (Lapras, Charizard lanzando Fire, etc.)
0x62bf – Cambia a 00 para desactivar el movimiento de las nubes en la pantalla del título.
0x5faa - Cambia a 00 para desactivar el monologo de “poner el reloj a tiempo”
0x906ae – Hora inicial (Si desactivas el monologo del reloj, la hora inicial del juego será la que especifiques aquí)
0x5FC2 - Sprite de Prof. Oak (1ra. vez)
0x6017 - Sprite de Prof. Oak (2da. vez)
0x5FDE – Sprite Pokemon.
0x6061 - Pokemon Cry.
0x6037 – Sprite del Protagonista.
0x60C0 - Sprite del Protagonista 2da. Vez (Solo si escribes tu nombre)
0x15319 – Donde inicia el juego. Formato: [Map Bank][Map][X][Y]
0x5cea – Dinero con el que inicias.
Spritesheets
0x1468C-146BF - Pointer table to Spritesets
0x146C0-146CA - Spriteset (Pallet Town)
0x146CB-146D5 - Spriteset (Viridian City)
0x146D6-146E0 - Spriteset (Pewter City)
0x146E1-146EB - Spriteset (Cinnabar Island)
0x146EC-146F7 - Spriteset (Cerulean)
0x146F8-14701 - Spriteset (Saffron)
0x14702-1470C - Spriteset (Celadon)
0x1470D-14717 - Spriteset (Lavender)
0x14718-14722 - Spriteset (Vermilion)
0x14723-1472D - Spriteset (Fuchsia)
0x1472E-14738 - Spriteset (League)
0x14739-14745 - Spriteset (New Bark Town)
0x14746-1474E - Spriteset (Cherrygrove City)
0x1474F-14759 - Spriteset (Mt. Silver)
0x1475A-14764 - Spriteset (Violet)
0x14765-1476F - Spriteset (Ecruteak)
0x14770-1477A - Spriteset (Azalea)
0x1477B-14785 - Spriteset (Goldenrod)
0x14786-14790 - Spriteset (Cianwood City)
0x14791-1499B - Spriteset (Olivine)
0x1479C-147A6 - Spriteset (Lake of Rage)
0x147A7-147B1 - Spriteset (Mahogany)
0x147B2-147BC - Spriteset (Blackthorn)
0x147BD-147C7 - Spriteset (Caves)
0x147C8-147D2 - Spriteset (S.S. Aqua + Etc.)
0x147D3-147DD - Spriteset (Special)
Es una lista de Sprite (overworld) que estarán disponibles en los mapas. Si se utiliza un Sprite que no está en la lista, se mostrará el Sprite del protagonista. Para agregar un Sprite a estas listas, tienes que reemplazar otro Sprite. Además, los spritesheets sólo se vuelven a cargar cuando entras en un mapa a través de un Warp (una puerta, un túnel, etc.), y no a través de una conexión de mapa. Esta es una de las razones de que haya casetas entre pueblos y rutas. Puede que se tenga que colocar un Sprite en más de un spritesheet para conseguir que se muestre correctamente en el juego. Por ejemplo, si pones un Sprite en Cherrygrove también debes hacerlo en New Bark Town, ya que no hay casetas entre los dos poblados.
Overworld Sprites
0x141A9 – Sprite por defecto del protagonista
0x147DE-14A17 – Datos de los overworld Sprites, el formato es de 6-bytes:
[Pointer de los Graficos (2-byte)]
[Tamaño?]
[Bank]
[Frames?]
[Paleta por Defecto]
Tamaño = 0C sprite que caminan, 40 sprite estáticos
Frames = 01 sprite que caminan, 03 sprite estáticos
Editando la Fuente.
0xF8001 - 2byte pointer a los Gráficos de la fuente.
0xF8008 - Byte que indica en que banco esta.
0xF800A - 8D 1bpp 72 - 2Bpp
Te has preguntado cómo Koolboyman hizo que la fuente del Prism tenga una sombra detrás?
Simplemente repuntea la fuente a un espacio en blanco a un tramo de espacio en blanco y la dibujas en el TLP. Tambien tendrás que cambiar a 2bpp para que el juego lo cargue como un gráfico de 4 colores, en lugar de un gráfico de 2 colores como lo hace normalmente.
0xF8046 - 0x30 para 1bpp, 0x60 para 2bpp
0xF8049 - 2byte Pointer a los estilos de bordes
0xF8055 - Byte que indica en que banco esta
0xF8057 - 0x8D for 1bpp, 0x72 for 2Bpp
Estos dos datos son independientes, puedes tener una fuente de 4 colores con bordes de 2 colores y viceversa.
Tabla de Trigger
0x94000 - Inicio de Tabla.
Formato: [Map Bank] [[Map No.] [2 Byte Pointer hacia la Ram]
Si alguna vez has añadido un evento de disparo (trigger) al juego y no ha funcionado, esta tabla es la razón. Cada vez que añadas un trigger a un mapa, dicho mapa debe ser incluido en esta lista. Lo mas sencillo es reemplazar uno de los mapas en los cuales no quieres tener triggers, como por ejemplo en la Ruta 29, si no quieres tener el tutorial de “atrapar Pokemon” puedes sobrescribir esta información y agregar otro mapa.
Entrenadores!
0x518A6 – Cuantos grupos de Entrenadores hay.
0x80000 – Tabla de Pointer a las iamgenes de entrenadores.
0x3993E – Tabla de Pointer a los datos de entrenados. Se usan 2-byte pointer para cada entrenador y en orden, empezando con Falkner.
0xE9027 - Tabla con la cancion que se escucha cada vez que un Entrenador te “mira”.
0x27283 - Tabla que determina los DVs de cada grupo de entrenador. 2-bytes por cada grupo de entrenador.
0x 1B0955 Nombres de los grupos de Entrenadores.
Con esto, puedes hacer muchas cosas. Puedes repuntear el grupo de entrenador de los líderes de gimnasio, para tener multiples peleas con ellos a manera de revancha o cambiarles el nombre o darles más Pokémon. También es útil para añadir más entrenadores de un cierto tipo o activar batallas para el Profesor Oak, que cuenta con sus propios datos de entrenador pero la información de batalla es la misma que la de Elite Four Will.
0x39562 – Tabla que determina cuánto dinero te da cada grupo de entrenador.
Para calcular el dinero de cada batalla, se multiplica el valor encontrado en esta tabla por (8 * [pokemon más nivelado del enemigo]).
Básicamente, puedes encontrar el byte del dinero que te da cada entrenador con la siguiente formula:
0x39564 + ([Trainer Group] - 1) * 7
(Credit to Miksy91)
Capturando Pokemon
0x23994- 2-Byte Pointer para el nombre que usa el tutorial de "como capturar Pokemon"
Para cambiar el nombre de "Dude" del tipo que te enseña a capturar pokemon solo tienes que repuntear a un espacio en blanco en el mismo banco y escribir el nombre que desees, seguido de x50. Tan simple como eso.
Minusculas!
0x1150= Determina los caracteres usados en el codigo "POKé" de la tabla de texto.
Si te molesta que la palabra pokemon salga en mayúsculas por el carácter "POKé", puedes cambiarlo a “Poké” para que aparezca en minúsculas.
0xEA = Byte usado en el texto para el caracter "é"
Util si quieres escibir cosas con acento en la “e”.
Nuevo Pokedex
0x40D60 – Orden del Nuevo Pokedex
Esta lista determina el orden de los pokemon para "New Pokedex". Útil para aquellos tienen nuevos pokemon en su hack.
Sprite de espaldas
0x3F9CB - Sprites de espalda del protagonista
48 x 48 pixels
0x3FB5B - Sprites de espalda del “Dude”
48 x 48 pixels
Estos sprites se pueden insertar con Agixp poniendo el offset manualmente.
Matando Cosas
No descripción en el menu de inicio.
0x12C75-12C7B
0x12C7F-12C92
Cambia todo a 00 para desactivar la descripción en el menu de inicio, como en las versiones clásicas de pokemon (Red&Blue)
“Matar” la cama y el mapa del cuarto de Hiro (Tauwasser)
0x181BE7 – Cambia a 01 para prevenir que se carguen la cama y el mapa. Después cambia el mapa del cuarto de jugador para que no tenga escaleras y mágicamente la cama aparece donde debería estar, pero tiene el inconveniente de no permitir que lo cambies con el PC.
Editando Ataques
0x41AFE = Inicio de datos.
Formato:
[Attack Animation] [Effect] [Base Power] [Type] [Accuracy] [PP] [00]
0x347F3 – Ataques con alta probabilidad de golpe critico. La lista termina con 0xFF.
Repunteando Cosas
Ho-oh on Title Screen
0x62D7 Pointer a gráficos de Ho-oh.
0x62DD Banco a gráficos de Ho-oh.
0xE4260 Datos originales de los gráficos de Ho-oh.
Los gráficos están organizados de forma extraña debido a la forma en que agita sus alas, ya que el cuerpo y la cara permanecen en el mismo lugar. Se puede exportar la imagen original usando AGIXP. Sólo deselecciona la casilla de “Trainer Pic-Extracting” e introduce el offset manualmente; Deja la primera casilla de tamaño (X/Y) en blanco y pon 48 en la segunda.
Nombre de los “TIPOS”
0x509AE = Pointer a tabla de nombres de tipos.
Los tipos que están sin utilizar apuntan al tipo “NORMAL”. Puedes cambiar el pointer a otro espacio del banco y renombrar los tipos sin utilizar para crear tus propios tipos, como el Fairy.
Datos de movimientos y evolución de los Pokemon.
0x427BD-429B2 Pointers a los datos de movimientos y evolución de los Pokemon.
Aquí puedes cambiar los ataques que un Pokemon aprende por nivel y sus evoluciones. El orden de los pointers va de acuerdo al Pokedex.
Tabla de intercambios
0xFCB9C- Pointer (2-Byte) a la tabla de intercambios.
¿Quieres añadir en algunos nuevos intercambios en lugar de sólo la sobrescribir de viejos? Simplemente repuntea la tabla, copia el contenido de la anterior y empieza a añadir nuevos datos a la tabla.
Items Beta
Pokeflute -
Si usas un editor de items y cambias el item x38 para que tenga la opción de “use”, te llevaras la sorpresa de que se trata de la Pokeflute. El problema es que no reproduce la cambion y tienes que cambiar su nombre de Teru-Sama a “Pokeflute”, pero funciona.
Pokémon stats (IIMarckus)
0x51B0B (Pokemon Gold) 32 bytes por Pokémon. Bytes del 25–32 representan las TMs/HMs, solo que se leen por bits y no por bytes.
Graficos (Blazichu)
0x253FF Trainer Card.
0x2547F Graficos de Trainer Card
0x C0000 Graficos Overworld Sprites.
0x E4000 Texto de “Nintendo y Gamefreak” al inicio del juego.
0x10F31 Graficos de la mochila.
0x86D26 Graficos cuando terminas el juego.
0x50580 Sprite pescando.
0x8EABE Sprites de los Pokemon en el Menu.
0xE4B80 Logo de Gamefreak al inicio del juego. (1-bpp)
Concurso Caza Bichos- Parque Nacional
0x97d87 Pokemon Crystal
0x97bb8 Pokemon Gold / Silver
Structura: [Chance (%)] [Pokemon] [Level min.] [Level max.]
Items
$68A0 Tabla de items
Formato: [Precio] [Precio] [Efecto cuando se porta/matiene] [Variable] [Opciones cuando se selecciona] [Bolso Mochila] [Puedo usarlo?]
Opciones cuando se selecciona
- 00 = Give/Toss/Select
- 10 = Use/Give/Toss/Select
- 40 = Give/Toss
- 80 = Select
- C0 = Use
Bolso Mochila
- 1 = Items
- 2 = Key items
- 3 = Balls
- 4 = TM/HM
Puedo usarlo?
- 00 = Can't use/No se puede usar
- 06 = Pokeball
- 40 = Aparece texto en el Menu del Item
- 50 = Aparece el Menu de la Pokemon Party
- 55 = Aparece el Menu de la Pokemon Party + Aliviar cambio de Status
- 60 = Tiene efecto especial al entrenador fuera de batalla (Bike/Escape Rope)
Mini Sprite Pokemon
0x8EA70- Tabla de Mini sprite del menu pokemon.
0x8EABE Gráficos de los mini sprites.
Esta tabla manda en las animaciones de los minis de los pokemon. Se pueden agregar 3 minisprite más; al inicio de la tabla se repite el valor de Poliwag y al final hay dos espacios libres para agregar, además el banco cuenta con el espacio exacto para agregar los gráficos de los minis
Emoticons
$143A8 –Pointer a tabla de Emoticons.
$143C1 –Inicio de la tabla de Emoticons.
Formato: [Pointer-2byte] [Length] [Bank] [Duracion??] [Terminacion??]
0x14409 Gráficos de los Emoticons.
Puedes repuntear la tabla y almacenar los graficos en otro banco diferente para tener más variedad de emoticons. La lista según su valor hex:
00 = Signo de Exclamación
01 = Signo de Interrogación
02 = Feliz
03 = Triste?
04 = Corazon
05 = Rayo
06 = Durmiendo
07 = Pescado
Arboles “Headbutt”
0xBA3E6 Tabla.
Formato:
[Map Bank] [Map No] [List number]
0xBA470
[List number (2-byte pointers)]
2nd pointer = 01
3rd pointer = 02
4th pointer = 03
List 01:
Venonat LV21
Venomoth LV24
Pineco LV23
Exeggcute LV22
Exeggcute LV24
List 02:
Hoothoot LV20
Noctowl LV26
Heracross LV24
Aipom LV24
Aipom LV25
List 03:
Ledian LV29
Ariados LV31
=================================================
Offsets para Tile Layer Pro (Por G0LD Z!)
415f5 - Animacion Slowpoke en modo busqueda del pokedex
8e9f4 - Sprites de pokemon en el menu (Solo Silver)
1C03C - Tiles de techos de las casas (son 5 pero creo que se puede repuntear para agregar mas)
113F1 - Tiles de ilustraciones de la mochila
F80F4 - Tiles del worldmap
====================================================
Offsets para Pokemon Cristal (Por @Crystal_ )
Map headers: 0x94034
Ejemplo:
Código:
OlivinePokeCenter1F_MapHeader: ; 0x94034
; bank, tileset, permission
db BANK(OlivinePokeCenter1F_SecondMapHeader), $7, 3
; second map header
dw OlivinePokeCenter1F_SecondMapHeader
; location on world map, music, time of day, fishing group
db $1b, MUSIC_POKEMON_CENTER, 1, 1
; 0x9403d
Secondary map headers: 0x94dd8
No tienen longitud fija
Tablas de Pokemon que aparecen pescando: 0x924e3
Ejemplo:
Código:
FishGroup1:
FishGroup1_Old: ; 924e3
db $b3, MAGIKARP, 10
db $d9, MAGIKARP, 10
db $ff, KRABBY, 10
FishGroup1_Good: ; 924ec
db $59, MAGIKARP, 20
db $b2, KRABBY, 20
db $e6, KRABBY, 20
db $ff, $0, 0
FishGroup1_Super: ; 924f8
db $66, KRABBY, 40
db $b2, $0, 1
db $e6, KRABBY, 40
db $ff, KINGLER, 40
Código:
TimeFishGroups: ; 9266f
; 0
db CORSOLA, 20 ; nite
db STARYU, 20 ; day
; 1
db CORSOLA, 40 ; nite
db STARYU, 40 ; day
; 2
db SHELLDER, 20 ; nite
db SHELLDER, 20 ; day
; 3
db SHELLDER, 40 ; nite
db SHELLDER, 40 ; day
(...)
Pokemon que aparecen dormidos al caer de un arbol de headbutt:
0x3eb5d
[dormidos_noche][0xff][dormidos_dia][0xff][dormidos_mañana][0xff]
Pokemon que aparecen en el bug catching contest: 0x97d87
La estructura es, para cada pokemon:
[% aparicion sobre 100][Pokemon][level min][level max]
Rutina que determina que DVs tiene que tener un pokemon para ser shiny:
Crystal: 0x8a68
En este caso puedo añadir que para G/S: 0x9052
Tabla que indica a que horas sera mañana/dia/noche: 0x14044. Sin embargo, cambios en esa tabla no se actualizan en el pokegear, tan solo tienen efecto en la paleta utilizada en el overworld y en los eventos que puedan depender de que tiempo del dia es.
Experiencia recibida: La formula que determina los exp points obtenidos en funcion del base exp del pokemon debilitado es Base Exp * level / 7 (y por 1.5 si es trainer o si el pokemon es de diferente ID que el trainer. Sabiendo esto, el '7' de esa formula se encuentra en el offset 0x3eec1. Puede ser util si alguien esta buscado ralentizar o acelerar el crecimiento de los pokemon de una forma mas rapida que modificar cada base exp de cada uno de los 251 pokemon.
Probabiliad de que un pokemon salvaje aparezca con un held item de acuerdo a lo indicado en su base stats data structure, es decir, siempre y cuando la especie de pokemon tenga algun item indicado como held item.
0x3e933: Probabilidad de que un pokemon salvaje no tenga held item. Es 0xC0, que corresponde a 75% (25% de aparecer con item)
0x3e93c: Probabilidad de que aparezca el segundo held item, sabiendo que el pokemon [si] lleva held item. Es 0x14 que corresponde a 8% de 25%, es decir a 2% en total.
Última edición: