Post by Aryan 10 on Jun 18, 2017 10:01:04 GMT 5.5
I have researched the gba games to get some data that will be intresting to see and research, here's what I have found yet.
I will keep updating the thread on my new findings. You can also submit your research.
FireRed
Basic and Unused Scripts
0x081A4EB4 and 0x081A4EC1
Something to do with trainer battles... Is this used by the core game engine?
0x081A6843
This script handles hidden-item Signposts. Inputs are 0x8005 (item ID) and 0x8006 (amount). If the item ID is 0 (item: ??) then it is treated as a Coins pickup.
0x081A6955
Script for the PC.
0x081A6AC8
Script for SURF. It does not include the badge check; that is evidently done in ASM before this is called.
0x081A6B0D
Script for current that is too fast to SURF in.
0x081A7705
Script for the Mystery Gift questionnaire.
0x081A77A0
Appears to be the script that is executed if you press Select without having a Key Item registered to that button.
0x081A8D49
I have no idea, but it has something to do with digging up an item. Where in FireRed can you do that?
0x081A8D97
Script for Pokeb healing after whiting out.
0x081A8DD8
Script for Mom healing after whiting out.
0x081A8DFD
Script for whiting out (on the overworld, in battles, or both?).
0x081A6C32
Script for Town Map tile?
0x081AD008
Script for a Fame Checker entry. This actually runs inside the Fame Checker. The others probably do, too.
0x081BE2B7
Script for WATERFALL. Like the SURF script, the badge check is performed elsewhere.
0x081BE38B
Script for DIVE (submerging). Apparently an R/S/E leftover. Like SURF and WATERFALL, there's no badge check here.
0x081BE3D4
Script for DIVE (emerging). No badge check.
0x081BE420
Script for if you try to use DIVE when you cannot emerge at the spot you're currently standing on.
0x081BF546
Internal script for hatching an EGG (by walking).
0x081BFB65
Script executed when REPEL wears off.
String Offsets
0x0826CF8C - 0x0826D19D
Nicknames of the Pokemon you can receive in in-game trades.
0x081C55C9
Strings for saving the game.
0x081B2DF8 - 0x081BB1B3(?)
L/R help strings.
Pokémon names: 0x08245EE0 - 11 bytes per name
Attack names: 0x08247094 - 13 bytes per name
Ability names: 0x0824F1A0 - 13 bytes per name
Type names: 0x0824F1A0 - 7 bytes per name
Useful Data
Base stats: 0x08254784 - 28 bytes per Pokémon
Evolution data: 0x08259754 - table of pointers
Moveset data: 0x0825D7B4 - table of pointers
Footprint data: 0x0843FAB0 - table of pointers
Pokémon front sprites: 0x082350AC - table of pointers
Pokémon back sprites: 0x0823654C - table of pointers
Regular palettes: 0x0823730C - table of pointers, Pokémon palettes are compressed
Shiny palettes: 0x082380CC - table of pointers
Icon sprites data: 0x083D37A0 - table of pointers, icon sprites are not compressed (512 bytes for each frame, two frames)
Icon palette data: 0x083D3E80 - 1 byte per icon, references one of three below palettes
Icon palettes: 0x083D3740 - 3 palettes
Item data: 0x083DB028 - 44 bytes per item
Item images/palletes table: 0x083D4294 - 8 bytes per item
Pickup item table: 0x08250848
TM data: 0x0845A80C
TM compatibility data: 0x08252BC8 - 1 byte per 8 TMs
Move Tutor data: 0x08459B60 - 15 moves
Move Tutor compatibility data: 0x08459B7E - 1 byte per 8 attacks, so 2
Item limiters: 0x0809A8AE and 0x08098998 (number of items)
Type effectiveness table: 0x0824F050
Useful Palletes
Oak introduction background: 0x0846056A
Sand footprints: 0x08398FA8
Emerald
Useful Data
Item images/palletes: 0x08614410 - 8 bytes per item
Item data: 0x085839A0 - 44 bytes per item
Item limiters: 0x081B001E and 0x080D7466
I will keep updating the thread on my new findings. You can also submit your research.
FireRed
Basic and Unused Scripts
0x081A4EB4 and 0x081A4EC1
Something to do with trainer battles... Is this used by the core game engine?
0x081A6843
This script handles hidden-item Signposts. Inputs are 0x8005 (item ID) and 0x8006 (amount). If the item ID is 0 (item: ??) then it is treated as a Coins pickup.
0x081A6955
Script for the PC.
0x081A6AC8
Script for SURF. It does not include the badge check; that is evidently done in ASM before this is called.
0x081A6B0D
Script for current that is too fast to SURF in.
0x081A7705
Script for the Mystery Gift questionnaire.
0x081A77A0
Appears to be the script that is executed if you press Select without having a Key Item registered to that button.
0x081A8D49
I have no idea, but it has something to do with digging up an item. Where in FireRed can you do that?
0x081A8D97
Script for Pokeb healing after whiting out.
0x081A8DD8
Script for Mom healing after whiting out.
0x081A8DFD
Script for whiting out (on the overworld, in battles, or both?).
0x081A6C32
Script for Town Map tile?
0x081AD008
Script for a Fame Checker entry. This actually runs inside the Fame Checker. The others probably do, too.
0x081BE2B7
Script for WATERFALL. Like the SURF script, the badge check is performed elsewhere.
0x081BE38B
Script for DIVE (submerging). Apparently an R/S/E leftover. Like SURF and WATERFALL, there's no badge check here.
0x081BE3D4
Script for DIVE (emerging). No badge check.
0x081BE420
Script for if you try to use DIVE when you cannot emerge at the spot you're currently standing on.
0x081BF546
Internal script for hatching an EGG (by walking).
0x081BFB65
Script executed when REPEL wears off.
String Offsets
0x0826CF8C - 0x0826D19D
Nicknames of the Pokemon you can receive in in-game trades.
0x081C55C9
Strings for saving the game.
0x081B2DF8 - 0x081BB1B3(?)
L/R help strings.
Pokémon names: 0x08245EE0 - 11 bytes per name
Attack names: 0x08247094 - 13 bytes per name
Ability names: 0x0824F1A0 - 13 bytes per name
Type names: 0x0824F1A0 - 7 bytes per name
Useful Data
Base stats: 0x08254784 - 28 bytes per Pokémon
Evolution data: 0x08259754 - table of pointers
Moveset data: 0x0825D7B4 - table of pointers
Footprint data: 0x0843FAB0 - table of pointers
Pokémon front sprites: 0x082350AC - table of pointers
Pokémon back sprites: 0x0823654C - table of pointers
Regular palettes: 0x0823730C - table of pointers, Pokémon palettes are compressed
Shiny palettes: 0x082380CC - table of pointers
Icon sprites data: 0x083D37A0 - table of pointers, icon sprites are not compressed (512 bytes for each frame, two frames)
Icon palette data: 0x083D3E80 - 1 byte per icon, references one of three below palettes
Icon palettes: 0x083D3740 - 3 palettes
Item data: 0x083DB028 - 44 bytes per item
Item images/palletes table: 0x083D4294 - 8 bytes per item
Pickup item table: 0x08250848
TM data: 0x0845A80C
TM compatibility data: 0x08252BC8 - 1 byte per 8 TMs
Move Tutor data: 0x08459B60 - 15 moves
Move Tutor compatibility data: 0x08459B7E - 1 byte per 8 attacks, so 2
Item limiters: 0x0809A8AE and 0x08098998 (number of items)
Type effectiveness table: 0x0824F050
Useful Palletes
Oak introduction background: 0x0846056A
Sand footprints: 0x08398FA8
Emerald
Useful Data
Item images/palletes: 0x08614410 - 8 bytes per item
Item data: 0x085839A0 - 44 bytes per item
Item limiters: 0x081B001E and 0x080D7466