inv_gba
Thread Id: 28009
Thread Name: Pokemon Emerald Specials
#0
Dark Sneasel 28274
NOTA: Esta en ingles. Lo voy a traducir en unos dias.

As the thread title says, this thread is about the Emerald specials. The Emerald specials are much less documented than the ones in Fire Red so the purpose of this thread is to get more information on them.

Iniciado por Shiny Quagsire
I think the best way to go about some of these commands would be direct reverse engineering. Also, it should be noted that using special_2 some specials can return a value to a specified variable, which is also important to be documented. As such, here's some of my small contributions:

The special table in Emerald is 0x20E entries long, with each function being located in the table at 081DBA64.
If these offsets could be futher confirmed as to what they do, either by means of looking at every used special thus far or further research, that would be nice.


Here is a few list of specials:


0xF8-choosing pokemon screen, however you can't choose any
0xFB-deletes party
0xFC-player's computer
0xFE-show's region map
0x101-trade, trades with last pokemon you saw, can be fainted though
0x106-berry blender maximum speed records
0x109-someone's PC, player's PC, log off
0x10A-hall of fame, corrupted if you haven't beaten E4
0x10B-Diploma for completing pokedex
0x111-http://i.snag.gy/S9gs1.jpg
0x112-takes you to boot screen, probably from battle frontier saving and quiting
0x113-credits
0x114-little earthquake, messes up a few tiles
0x116-camera doesn't follow
0x117-makes camera follow player
0x11C-screen goes red, starts shaking
0x12E-same as 0x3
0x133-big earthquake
0x134-now in floor
0x139-wild battle with last seen pokemon
0x13A-same but cool kyogre thing before battling
0x13b-same but diff. image
0x13d-small earthquake
0x13f-https://www.dropbox.com/s/jakaalhn6ibvf2p/it.AVI (it's supposed to be once, I spammed)
0x141-player falls from roof to entrance of mao
0x142-showpokepic with (?) pokemon doing an animation
0x145-battle with last pokemon you've seen
0x174-opens bag
0x17C-answer the lady's quiz
0x17D-profile
0x184-opens bag
0x186-make a quiz
0x190-pressing start you can see the player's name is all nonsense now
0x191-opens pokeblock case
0x196-messes up a bunch of tiles
0x199-shows town name like it would when you walk into it
0x19A-same as^
0x19B-a little bit of dust comes from the ceiling during a short earthquake
0x19D-player moves down a few pixels. can be used more than once and the effects stack until warp
0x1A0-1A2-communication error
0x1A3-Wireless communication status, shows how many people are battling, trading and in the union room
0x1A7-choose something, but none of my pokemon can participate
0x1AD-Pokemon Jump records
0x1B0-moves the screen a little bit to the right
0x1B8-"Battle Tower Single" and a huge box cover most of the screen
0x1BE-shows a very small box that says "exit" at the tip of the screen
0x1C2-opens battle pyramid bag
0x1C4-pokemon choosing screen, say's DON'T HAVE for my pokemon, and once you give them an item it says the item's name
0x1C7-shows BP
0x1CD-shows a small box in the screen with nothing in it
0x1CF-makes a box that says "Powder" and "0" in the screen. probably for the thing near Fallarbor town
0x1D6-Groudon and Kyogre fighting
0x1D7-opens Pokenav
0x1D8-opens menu like the scientist did to make sure you call Mr.Stone
0x1DD-teach mega punch, choose pokemon to learn
0x1E4-a shaking mirrage tower follows you
0x1E5-fossil falls
0x1E6-nickname pokemon, but it shows a yellow bulbasaur in the icon
0x1EA-confetti
0x1F4-multichoice: Slateport City and exit
0x1F7-Really tall grass appears
0x1FC-Same as 0x1D6
0x1FE-screen does this
0x1FF-berry crush pressing speed rankings
0x201-tell the girl that can't laugh's dad the words
0x20F-takes you to boot screen
0x210-same as ^
0x211-player can't move
0x212-same as ^
0x213-0x214-same as ^
0x215-same as 0x20F
Iniciado por Shiny Quagsire
Just based on some initial decompiling, here's a list of specials that are confirmed to do absolutely nothing:

  • 0x23 Nothing (bx lr)
  • 0x4E - Puts byte 0x0 at 0203A030
  • 0x5A - Takes a halfword from 020375E4, doubles it, and adds it to the ram location 02039F00, then takes a halfword from the resulting RAM location and stores it at 020375DE
  • 0x65 - Loads a dword from 03005D8C (seems to be a saveblock), adds 0x2e51, then loads a byte from the resulting location and stores it to LASTRESULT.
  • 0x67 - Also loads more stuff from one of the saveblocks
  • 0x68 - More stuff from same saveblock
  • 0x75 - More stuff from same saveblock
  • 0x84 - More stuff from same saveblock, although this one seems to do a bit more with the data it's reading.
  • 0x92 - Stores value from saveblock at 020375DE
  • 0xA6 - Saveblock stuffs
  • 0xB3 - Saveblock stuff, returns only with special 2
  • 0xB7 - Loads byte at 0202433A and stores it to variable specified in special 2
  • 0xE5 - Something with vblank callback
  • 0xF4 - RAM stuffs
  • 0x115 - Absolutely nothing (bx lr)
  • 0x11B Nothing (bx lr)
  • 0x14B - Nothing (bx lr)
  • 0x157 - Stuff with trainer data
  • 0x173 - Stuff with that one saveblock
  • 0x17B - Stuff with that one saveblock
  • 0x17f - Ditto
  • 0x180 - Ditto
  • 0x182 - Ditto
  • 0x183 - Ditto
  • 0x18A - Ditto
  • 0x192-0x194 - Ditto
  • 0x1B4 - Loads byte from 030030FC and stores it to specified variable in special 2
  • 0x1BC - Stores 0x0 at 02039F2A
  • 0x1CC - Loads stuff from trainer saveblock to special 2 variable
  • 0x1F0 - Does stuff with trainer block data. Lots of or'ing.
[/SPOILER]
NOTE: Gonna make all of that one list soon.
#1
BLAx/Atlas 26580
Jejejejejeje, info de ShinyQuagsire, ese hombre es un fiera. Gracias por traer esto de Pokeco/PHO, será muy util a los hackers de Emerald :)
#2
Cheve_X 15014
Vaya! Recien veo éste tema... Pues habrá que desamblar el Rom para chequear esas rutinas a ver que hacen y probarlas In-Game :3 Muchas gracias por el aportazo!