GBC | Recopilación de Offsets útiles

Avisos

Like Tree27Gracias
Respuesta
 
Herramientas Desplegado
  #1  
12/11/2013
Predeterminado GBC | Recopilación de Offsets útiles
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
================================================== ==

[B]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
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:

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
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:

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.
Gracias: Edo, Rata, Cheve_X y 9 más.

Última edición por Chamber; 11/12/2014 a las 06:40
  #2  
13/11/2013
Predeterminado Respuesta: [GBC]Offset Utiles
Por dios, porque no vi este aporte, es super util para los que hackeamos GBC, son direcciones importantisimas, edito despues con offsets que he encontrado

PD: Tema agregado a importante :P
Gracias: Chamber
  #3  
13/11/2013
Predeterminado Respuesta: [GBC]Recopilacion de Offset Utiles
buenas tardes , yo sinceramente no entiendo mucho lo que son estos datos ya que recién me estoy familiarizando con el hexadecimal , pero como dice GOLD es un gran aporte para los que aman el hack GBC como nosotros , espero aprender aun mas de ustedes , por favor no dejen de postear tutoriales... y muchas gracias por los aportes
Gracias: Chamber
  #4  
13/11/2013
Predeterminado Respuesta: [GBC]Recopilacion de Offset Utiles
Dicho por WiZaRD Ver mensaje
buenas tardes , yo sinceramente no entiendo mucho lo que son estos datos ya que recién me estoy familiarizando con el hexadecimal , pero como dice GOLD es un gran aporte para los que aman el hack GBC como nosotros , espero aprender aun mas de ustedes , por favor no dejen de postear tutoriales... y muchas gracias por los aportes
No es tan dificil entender Wizard, te dare una explicacion breve de los datos mas comunes que encuentras.

Cuando se habla de Tabla, significa un conjunto de datos con cierta estructura, como en el caso de la tabla de ataques que tu estas ya familiarizado.

Al hablar de pointer de la tabla, quiere decir que es el puntero que indica donde inicia la tabla, asi, con este dato, tu puedes mover la tabla de lugar para agregar mas datos y despues solo cambias el pointer indicando la nueva localizacion de la tabla. Es es el Repunteo.

Por ultimo estan los datos, esos que hay que cambiar para hacer las modificaciones al juego. Siempre obedecen una esturtura y dicha estructura esta explicada en cada seccion.

Si tienes alguna duda en particular, solo dilo. Saludos!
  #5  
17/11/2013
Predeterminado Respuesta: [GBC]Recopilacion de Offset Utiles
Agrego estas tres offsets para el tile layer pro

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
Gracias: Chamber
  #6  
22/11/2013
Predeterminado Respuesta: [GBC]Recopilacion de Offset Utiles
Este es cortesia del buen GOLD Z!

0x1C0E45 - Graficos del Pokegear
  #7  
30/11/2013
Predeterminado Respuesta: [GBC]Recopilacion de Offset Utiles
Voy a dejar unos cuantos de Pokemon Crystal, si alguien los quisiera para G/S no tendria mas que coger algunos bytes de los datos a partir (o alrededor) del offset indicado en una ROM de Crystal, y buscar esos datos en en una ROM de Gold / Silver.



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
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:

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
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:

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.
Gracias: Dark_MAX y Chamber
  #8  
06/12/2013
Predeterminado Respuesta: [GBC]Recopilacion de Offset Utiles
Agregado al indice los offsets para pokemon cristal, que el vago autor no los agrego, ademas agregados dos offsets por mi, disfrutad!!!
Gracias: Chamber
  #9  
09/01/2014
Predeterminado Respuesta: [GBC]Recopilacion de Offset Utiles
Pointer de la tabla de movimentos.

Esta información es para poder usar los 3 espacios restantes en la tabla de movimientos (FC, FD, FE).

He encontrado 5 rutinas que hacen referencia a la ubicación de los movimientos, aunque solo sé que las primeras dos estan relacionadas con los movimientos que usa nuestro oponente en batalla y con los movimientos de nuestra party. De cualquier forma aconsejo modificar las 5 rutinas para evitar problemas. En cada rutina hay que modificar el pointer y el bank al que es dirigido.

Código:
Pokemon del rival: 
$DA7F = Pointer
$DA8B = Bank

Pokemon propios:
$37f79 = Pointer
$37F82 = Bank

$394D3 = Pointer
$394DF = Bank

$3D4AC = Pointer
$3D4B8 = Bank

$50974 = Pointer
$5097D = Bank
Edito: Ademas de repuntear los datos de la estructura de ataques, al parecer el juego tiene rutinas separadas para los PP. Ahora encontre estas 6 sutinas que comparten "llamadas" con las 5 anteriores. En estas el pointer que se define no es el inicio de los datos de los movimientos, si no el inicio de la Data del PP del primer ataque. Yo por ejemplo repuntie los datos de los movimetentos a $99500, pero al modificar las rutinas del PP el pointer que tomo es $99505 (6 bytes despues).

Aqui las direcciones:

Código:
$664F
$6658

Pokemon Propios:
$F968
$F971

$39813
$3981C

$398BD
$398C6

$3F42D
$3F436

$42554
$4255D
Edit2: Sigo en la investigacion, ahora tuve un fallo donde no cargan los nombres de los pokemon al usar los ataques.

Edit3: Falsa alarma, el fallo de los nombres se debia a un error mio. Hasta el momento no he encontrado bugs repunteando los movimientos.

Edit4:Rutina que carga el poder de los movimientos:
$13646 = Pointer de la tabla (offset + 2)
$1364F = Bank

Edit5: En un momento subo nuevas rutinas.
Gracias: Cheve_X

Última edición por Chamber; 01/04/2014 a las 08:13
  #10  
16/01/2014
Predeterminado Respuesta: [GBC]Recopilacion de Offset Utiles
Repunteo de las rutinas del pokedex.

Para el pokemon REƎVOLUTION he tenido que mover el pokedex y sus datos de lugar por que necesitaba ese espacio en blanco para crecer los Learnset de los pokemon. No creo que mucha gente haga uso de esta información pero la dejo de cualquier forma. Gracias a @Crystal_ por la idea.

1.- Se copia del offset $4000 al $41AFD en G/S (ó $41AFA en C).
2.- Se pega la informacion en cualquier otro banco LIMPIO, teniendo cuidado que se pegue desde el INICIO del mismo.
3.- Repuntean en las siguientes dos direcciones con el siguiente formato:

$12D07
$FB9DB


; Formato 3E ZZ 21 XX YY CF

ZZ = Bank
XX YY = 2-Byte pointer.

NOTA: Basta con solo cambiar el No. de Banco, ya que los demás pointers deben ser los mismos y no deberían ser modificados

Edit: Esta información esta incompleta, hacen falta localizar otras rutinas aun.
Gracias: Rata

Última edición por Chamber; 01/04/2014 a las 18:52
Respuesta

Herramientas
Desplegado

Permisos para publicar mensajes
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los BB code están Activado
Los Emoticones están Activado
El código [IMG] está Activado
El Código HTML está Desactivado
Trackbacks are Activado
Pingbacks are Activado
Refbacks are Desactivado



Extra
Estilo clásico
La franja horaria es GMT +1. Ahora son las 06:36.
Skin Afternoon por Sage