Research & Development Got a well-founded knack with ROM hacking? Love reverse-engineering the Pokémon games? Or perhaps you love your assembly language. This is the spot for polling and gathering your ideas, and then implementing them! Share your hypothesis, get ideas from others, and collaborate to create!

Reply
 
Thread Tools
  #1    
Old June 24th, 2014 (12:07 PM). Edited February 6th, 2016 by GoGoJJTech.
GoGoJJTech's Avatar
GoGoJJTech GoGoJJTech is offline
(☞゚ヮ゚)☞ http://GoGoJJTech.com ☜(゚ヮ゚☜)
  • Gold Tier
 
Join Date: Nov 2012
Location: Earth
Age: 18
Gender: Female
Nature: Jolly
Posts: 2,477
So I've come to the conclusion that the Emerald special table list isn't really well-documented other than the post below this one by my close friend Danny.

So since I'm more technical, as are most of my other friends, I've decided to open up this thread since we're hopping on the Emerald train anyway. Toot toot here we go:

Formatting Codes
-

Format is special number, whether it requires "special" or "special2", and the Fire Red equivalent.
Spoiler:
0x0 (Special) [0x0] ~ Heals player's Pokémon party silently
0x1 (???) [0x1] ~ Does something with player facing and location
0x2 (Special) [0x2] ~ Door warp script (fade black until finished warping)
0x3 (Special) [0x3] ~ Same screen effect as 02. Peculiar behaviour, warps to last used warp, or to center-map if last change was made by a screen transition, or trapped in Battle link if used after game start (I'm assuming this is map 0.0 he's talking about, so it could be Petalburg City for Emerald)
0x4 (Special) [0x4] ~
Spoiler:
Updates the value in 02031DBC by analyzing the data from the party copy at (03005008)+0x38
Notes - 02031DBC is var 8004 in Fire Red, the equivalent of this in Emerald is 020375E0.
03005008 in Fire Red is 03005D8C in Emerald, AKA, save block 1.

0x5 (Special) [0x5] ~
Spoiler:
Places a pointer to a function for posterior execution to 03000e84. The weird part is that that function only kills itself, erasing the content of 03000e84.
Notes - Not sure where he got 03000E84 from, it loads 03000E89. In Emerald, it's 03000E19
The function is link-related, it probably kills itself because there's no linking to be done.

0x92 (Special) [0x8F] ~ Gets the player's X coordinate and stores it in var 0x8004, and the Y coordinate in 0x8005
0x1F3 (Special) [0x16F] ~
Spoiler:
Enables the National Pokédex, and sets flag 0x896. Variable 0x4046 is set to 770 (0x302) for some reason I don't understand right now!


It's super late right now, of course this isn't the end of the list. I'll be updating as I go.
__________________
I believe in Jesus Christ my Savior. If you do too, and aren't scared to admit it, then copy and paste this into your signature.
The HGSS Music Patch - The BW/2 Music Patch - ASM: Switch Music Based on Seasons
Romhack.me Profile - Pokecommunity Profile - Youtube Channel

Support me at my site!
Pokémon Platinum Red and Blue
Reply With Quote

Relevant Advertising!

  #2    
Old June 24th, 2014 (12:07 PM).
Danny0317's Avatar
Danny0317 Danny0317 is offline
Fluorite's back, brah
  • Gold Tier
 
Join Date: Jun 2013
Location: Miami, FL
Age: 17
Gender: Male
Nature: Hasty
Posts: 1,075
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.

Quote:
Originally Posted by Shiny Quagsire View Post
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 lists of specials:

Spoiler:
Quote:
Originally Posted by Le pug View Post
0x12E - not sure, but clicking once will do a sound warp to blackness but if you continuously click on the script it'll warp you to map 0.0 in the center location (X,Y)
0x8 - takes you to a secret base with a guy in it. Can warp back to original position.
0x9 - warps you to warp 0 on map 0.0
0xA - same as 0x9
0xD - deletes everything on your computer. Nah, jk. Idk what it does
0xE - brings up menu "Decorate, Put Away, Toss, Cancel"
0xF - message "There is no registry" then brings up menu "Decorate, Pack Up, Cancel"
0x18 - teleports you to X1, Y3 of the current map
0x1A - PC shut off sound and tile is set to something else
0x1B - "Please Wait ... ... B Button: Cancel Mixing Records..." followed by twinkling sound and the Mixing Records textbox doesn't go away. Kind of cool though cus you walk around with the message box up and if you go to a new location, it moves up and down with the sign in the top left corner telling you where you are.
0x1D - locks player in place (aka lock command)
0x1E - unlocks player in place (aka release command)
0x21 - "Please Wait ... ... B Button: Cancel" then battle with a level 4 Poochyena ... maybe saving the professor? Anyways, it'll save your progress then give you a communication error. epic troll special.
0x22 - "Please Wait ... ... B Button: Cancel" then message pops up after fade out saying "Communication standby ... please wait" then communication error
0x24 - brings up player info and Would you like to save? message. without a lock in your script, you can walk around with the message up.
0x27 - voodoo ritual where clones of you appear in a circle staring at each other.. usually one of them has a palette error
0x29 - deletes all pokemon in party unless its storing it to be retrieved by some variable or special
0x30 - turns all hidden sprites into soil sprite (sprite #60)
0x3A - same as #raw 0x56 aka it pops up a ! emote box above the player's head
special 0x9B <-- actual riding animation (cable car)
special 0x9A <----- optional. it's the player warp to the top of the cave. Pretty much only way the effect will look good... unless you're just gonna edit 0x9B for graphics
1c7 and 1BE
Spoiler:
Quote:
Originally Posted by Dark Sneasel
0x3- warp from where you came from
0x8- want to make your secret base here?
0x9- Petalburg Pokemon center, door opens
0xE- Secret base stuff, decorate, put away, etc
0xF- there is no registry
0x18-warps you
0x1B-mixing records
0x21-Results are different. This was one of them: http://i.snag.gy/hl9mq.jpg and after the battle you save the game.
0x22-communication
0x24-Save game box. Stays in the screen unless waitstate is used.
0x2A-Choose pokemon for something.
0x2B-Screen goes black, music gets very corrupted.
0x2F-Choose from the berry section of the bag.
0x3A-! over player and faces down
0x3B-A battle theme seems to start playing.
0x3E-Battle last battled pokemon/trainer.
0x3F-Withdraw Pokemon, deposit, etc.
0x5F-Music seems to get corrupted.
0x60-Save, glitchy if no save state
0x61-Sprite changes to the berry watering one. Doesn't work without waitstate.
0x62-Trainer profile
0x63-Seems to say what you last said in the trainer profile. Doesn't work without waitstate.
0x6A-Weird noise, and says "SHAKE IT DO THE DIET DANCE"
0x6F-Tells me the story of a trainer with a glitchy name.
0x70-http://i.snag.gy/XAEeM.jpg
0x74-Shows me a list of decorations.
0x78-A bunch of secret base choices and how many you have.
0x8D-Screen goes black
0x90-Says "Badges" Says the last message that has been said.
0x9D-Cable car.
0x9D-Set the clock
0x9E-See the clock
0x9F-Starter choosing bag scene.
0xA0-Wally scene
0xA1-Nickname
0xA2-Shows your party
0xA4-Berry blender
0xA5-Tells me I don't have enough coins, shows coins.
0xB2-The Gabby and Ty TV stuff.
0xBF-Choose a pokemon, then get the choices summary, and store.
0xC0-http://i.snag.gy/i0HiF.jpg
0xC5-Egg hatch of the first Pokemon in your party. If it's not an egg it hatches anyways and it becomes level 5 and if it is, it actually hatches.
0xC7-http://i.snag.gy/DbIyQ.jpg
0xCB-After a few secs it puts you in front of player's house
0xD0 - starts the safari. setvar 0x40A4 0x2 is needed as the next command for it to work. (for safari menu, setflag 0x88C) more info click here
0xD1 - ends the safari.
0xD3-Opens this http://i.snag.gy/imkep.jpg (pokeblock case)
0xD8-Tells me to go to grassy areas and look more carefully. Most likely from the Birch script.
0xD9-PC animation
0xDA-Animation reverses?
0xDE-Choose pokemon, shows NOT ABLE for mine
0xDF-Show's your first pokemon's moves screen
0xE3-Move relearner
0xF1-battle factory switching
0xEF-battle tent battle with "School Kid KEITH" after testing with Shiny Quagsire, it was discovered that you must put a var before it. Here is what happens with the vars/
Spoiler:
setvar 0x8004 0x?
special 0xEF
0x0 normal
0x1 last trainer you battled, flees when you're gonna lose
0x2 freezes game
0x3 he seems to have a fainted team
0x4 the battle facililty with the old guy
0x5 battle arena
0x8 steven battle
0x9 double battle, he flees when you're about to lose

0xF4-Silences the music
0xF8-Choosing pokemon screen, however you can't choose any
0xFB-Deletes party
0xFC-Player's computer
0xFD-Very glitchy PC
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
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
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 http://i.snag.gy/b64L0.jpg
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
Quote:
Originally Posted by sonic1 View Post
Hey, for emerald i have something too:
Specials:
28 - Saves pokemon party into RAM. Used for situations of switching parties (battle frontier)
29 - Restores that party
2A - Lets you choose 3 pokemons and puts their party slot in 0x203CEF8
3B - Plays trainer encounter music (not the battle one) according to the 8015 (trainer number) VAR. Used in the game internal script of trainer spotting.
91 - Map Refresh. Used in setmaptiles. Similar to FireRed 0x8E.
AE - WildBattle using Tree wild Data.
F4 - Stops any music from playing.
FE - Shows worldmap.
1F3 - Sets National Dex
Quote:
Originally Posted by Shiny Quagsire View Post
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.

NOTE: Gonna make all of that one list soon.

More specials discoveries. Quotes are used for a bit of the original script I took it from. I'll update this as I keep finding more

Spoiler:
special 0x9B and 0x9A
Quote:
setvar 0x8004 0x0
special 0x9B
special 0x9A
waitstate
release
end
so for setvar 0x8004, if it's 0x0, player rides UP, if 0x1 player rides, DOWN
special 0x9B is the actual cable car animation
special 0x9A is so the player warps to the new location after the animation

special 0xF8
Quote:
setvar 0x8005 0x3
special 0xF8
As DarkSneasel said: 0xF8-Choosing pokemon screen
So this special is used in Battle Frontier in determining how many pokemon you're bringing in with you. 0x3 means that it'll check for 3 entries. So then 0x4 means it'll check for 4 entries, and so on (between 0x1-0x6 of course)

special 0x1BE
Quote:
special 0x1C7
setvar 0x400E 0x0
setvar 0x8004 0x9
setvar 0x8006 0x0
special 0x1BE
waitstate
So this is used for menus in the battle frontier. special 0x1BE brings up the menu box, depending on what 0x8004 is. What's interesting about this though is that some of the vars actually show OWs for pokemon dolls or even images of items on screen without a real menu. One of them even has the lettering change font size? Might need to look into that (0x7) Now for each var number:
Spoiler:
setvar 0x8004 0x1
Spoiler:

setvar 0x8004 0x2
Spoiler:

setvar 0x8004 0x3
Spoiler:

setvar 0x8004 0x4
Spoiler:

setvar 0x8004 0x5
Spoiler:

setvar 0x8004 0x6
Spoiler:

setvar 0x8004 0x7
Spoiler:

setvar 0x8004 0x8
Spoiler:

setvar 0x8004 0x9
Spoiler:

setvar 0x8004 0xA
Spoiler:

setvar 0x8004 0xB
Spoiler:

setvar 0x8004 0xC
Spoiler:


special 0xA2
Quote:
special 0xA2
waitstate
compare 0x8004 0xFF
if 0x5 goto 0x825E7BF
compare 0x8004 0xFF
if 0x1 goto 0x825E943
So this one pops up a pokemon select menu. Choose your pokemon and the if 0x5 statement pretty much continues with the script. the if 0x1 part is if the player chooses the Cancel button on the menu. It'll go to a another script which can be used as a cancel "Oh you don't want my help? Bye then" kind of thing.

special 0x1B2
Quote:
special 0xA2
waitstate
special 0x1B2
compare 0x8006 0x0
if 0x1 goto 0x825E8B7
compare 0x8006 0x1
if 0x1 goto 0x825E8C5
compare 0x8006 0x2
if 0x1 goto 0x825E8D3
compare 0x8006 0x3
if 0x1 goto 0x825E8E1
compare 0x8006 0x4
if 0x1 goto 0x825E8EF
compare 0x8006 0x5
if 0x1 goto 0x825E8FD
So this one uses the last special we talked about 0xA2 to pull up the menu to choose our pokemon. There's a little bit more to this script but if you wanna look at it's entirety go to 0x25E775. The numbers next to var 0x8006 are for which stat it looks at. From what I understand, special 0x1B2 looks up the chosen pokemon's stats and looks for whichever is highest and the stats are in order I.E. HP is 0x0, Attack is 0x1. About as much as I could get out of it.

special 0x1C7 and 0x1BE
Spoiler:

Spoiler should be good enough info. 1C7 is for BP, 1BE is for description. Goes with setvar 0x8004.

special 0x1C9
This is the special that is needed in order to remove the BP box from special 0x1C7. For some reason the music goes quiet also.. maybe it's just me.

special 0x1DB
This one might need a little more research but as far as I can tell, it removes the boxes off the screen as well, maybe for description box of 0x1BE. Makes the game quiet also.

So looking at Snizzle4rizzle's main post, you see that 0x1C7


special2 events
0x149
Quote:
special2 LASTRESULT 0x149
compare LASTRESULT 0x19C
if 0x1 goto @youhaveEggAlready
so this event is checking if you have an egg in your party if 0x1 then goto script where you have egg
__________________
Reply With Quote
  #3    
Old June 25th, 2014 (10:33 AM).
Shiny Quagsire's Avatar
Shiny Quagsire Shiny Quagsire is offline
I'm Still Alive, Elsewhere
     
    Join Date: May 2009
    Location: Hoenn Safari Zone
    Age: 19
    Gender: Male
    Nature: Jolly
    Posts: 700
    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. Just underneath that table is the std table used by callstd. 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.

    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. Also, Dark Sneasel, do you think we could get these added into the main post to further complete things? Just so we have an idea of what specials need documenting is all.

    EDIT: Clarification for a few things, 0xC0 is the daycare Pokemon special (ie for taking in/out pokemon) and 0xC7 is the battle records used in the upstairs in the Pokemon Center (it fills up more when you do link battles). 0xD3 is used for the Pokeblock feeders in the Safari Zone (I think),
    __________________



    Reply With Quote
      #4    
    Old June 26th, 2014 (5:54 AM).
    Phenom2122's Avatar
    Phenom2122 Phenom2122 is offline
       
      Join Date: Jun 2014
      Gender: Male
      Nature: Quiet
      Posts: 45
      I'm glad to see more and more Emerald stuff :D At the moment I am busy working on figuring out all the flags, going through each map one by one. I will join this mission to figure out these specials soon but there is so much to do. I am on a mission to find the emerald equivalent to any useful fire red offsets, it's easy to do with a hex editor if you have the offsets from two different games to work with but ultimately I just need to finally get round to learning how to speak ASM, I think that's my next goal after flag hunting.

      Thanks for doing this guys, it was a very pleasant surprise to come here and see this thread
      Reply With Quote
        #5    
      Old July 23rd, 2014 (7:02 PM).
      Danny0317's Avatar
      Danny0317 Danny0317 is offline
      Fluorite's back, brah
      • Gold Tier
       
      Join Date: Jun 2013
      Location: Miami, FL
      Age: 17
      Gender: Male
      Nature: Hasty
      Posts: 1,075
      Well, I updated some stuff up to 101 =)
      __________________
      Reply With Quote
        #6    
      Old July 24th, 2014 (12:42 AM).
      U.Flame's Avatar
      U.Flame U.Flame is offline
      Suuuper Busy
         
        Join Date: Jun 2008
        Location: Sapphire City in future Hoenn
        Age: 22
        Gender: Male
        Nature: Jolly
        Posts: 1,254
        I'm interested in the ones that have you battle the last seen Pokemon/trainer. Sounds like something I accidentally did in Sapphire a long time ago. If its the same, it's certainly interesting enough to warrent some cloning testing right? There're also other factors if I'm correct. Latia/os is the result if you watched the TV report about them.
        __________________
        Hacks I'm working on:
        Pokemon Sapphire Hoenn's Rebirth - My own hack, making progress whenever possible.
        3rd Gen Multiplayer Project - Research and development, occasionally testing, sometimes with support.
        Pokemon Cursed/Creepy White - Group project, on hiatus for now with plans to return eventually.
        Animal Crossing Wild World playing as an animal - experimental, messing with models and textures

        Hacks I've worked on in the past:
        Pokemon Ruby Destiny Broken Timeline (pre-reboot) - Assisted with maps
        Pokemon HeartGold Prince Boo Edition - Experimental project with three small changes. Made at the request of YouTube LPer PrinceBoo21.

        Been super busy with work, life, and laptop problems. Hopefully I can get back into it soon, I fear I'm already rusty. Meanwhile I'm considering writing some of my hacks as a series of fanfics.

        Times I've been ninja'd: 18
        Times I've ninja'd people: 3
        Reply With Quote
          #7    
        Old August 10th, 2014 (10:43 AM). Edited August 11th, 2014 by operator.
        operator's Avatar
        operator operator is offline
           
          Join Date: Jul 2014
          Age: 24
          Gender: Female
          Posts: 36
          0x9 actually warps you back to the map you were in when you called 0x8, and at the same coordinates as you left it even, but yes without a reference it'll just do as Le pug says. (although I thought you were sent to coords 0,0 ((or maybe the centre of the map)) and not warp 0?)
          __________________
          persistence is more interesting to me than knowledge

          I don’t really know how to do anything, but I can make it happen eventually
          Reply With Quote
            #8    
          Old September 12th, 2014 (7:19 AM). Edited September 12th, 2014 by Le pug.
          Le pug's Avatar
          Le pug Le pug is offline
          Creator of Pokémon: Discovery / Fat Kid
          • Crystal Tier
           
          Join Date: Aug 2013
          Location: Le bed
          Age: 24
          Gender: Male
          Nature: Bold
          Posts: 784
          0x9D-Cable car

          Doesn't work. Also, space your image links from the hyphen so that we can easily click on them. And organize this list!!

          0x90-Says "Badges"

          This is wrong. It says whatever was just last said. Idk what text you looked at to get you badges but yeah just update that. Like if Bob said "hey" and you used this special it'd say "hey". It locks you into place however and special 0x1E or a release command doesn't free you.

          0xD3-Opens this http://i.snag.gy/imkep.jpg its called a pokeblock yo
          __________________







          /// Pokémon: Discovery
          /// Pokémon: Fat Kid
          /// Tile Insertion Tutorial For AdvanceMap
          /// Pokémon Emerald Specials Resource Thread
          /// Pokémon Emerald Decapitalization Patch
          /// Emerald Titlescreen Cloud Removal Tutorial
          /// Tutorial For Fixing Any ROM-related Bug
          Reply With Quote
            #9    
          Old September 12th, 2014 (10:59 AM). Edited September 12th, 2014 by Danny0317.
          Danny0317's Avatar
          Danny0317 Danny0317 is offline
          Fluorite's back, brah
          • Gold Tier
           
          Join Date: Jun 2013
          Location: Miami, FL
          Age: 17
          Gender: Male
          Nature: Hasty
          Posts: 1,075
          Some don't work unless you put waitstate after them. Pretty sure cable car was one of them. And thanks, I'll update the list.
          __________________
          Reply With Quote
            #10    
          Old September 12th, 2014 (1:03 PM). Edited September 13th, 2014 by Le pug.
          Le pug's Avatar
          Le pug Le pug is offline
          Creator of Pokémon: Discovery / Fat Kid
          • Crystal Tier
           
          Join Date: Aug 2013
          Location: Le bed
          Age: 24
          Gender: Male
          Nature: Bold
          Posts: 784
          Quote:
          Originally Posted by Dark Sneasel View Post
          Some don't work unless you put waitstate after them. Pretty sure cable car was one of them. And thanks, I'll update the list.
          That wasn't the problem, but we discussed it on irc.
          __________________







          /// Pokémon: Discovery
          /// Pokémon: Fat Kid
          /// Tile Insertion Tutorial For AdvanceMap
          /// Pokémon Emerald Specials Resource Thread
          /// Pokémon Emerald Decapitalization Patch
          /// Emerald Titlescreen Cloud Removal Tutorial
          /// Tutorial For Fixing Any ROM-related Bug
          Reply With Quote
            #11    
          Old October 4th, 2014 (7:09 PM). Edited September 26th, 2015 by Aruaruu.
          Aruaruu Aruaruu is offline
             
            Join Date: Sep 2011
            Gender: Male
            Posts: 199
            • special 0x1CB 'Paying BP amount set in var
            • special 0x1C8 'Updating BP box that was brought up by special 0x1C7
            Set the BP cost with setvar 0x8008 0xCOST and before the specials, put copyvar 0x8004 0x8008.
            If I understand correctly, that loads the set value and the specials then remove and update current BP.

            I know it was already noted in the first post, but you can use this with the above to make a "not enough BP" condition.
            Code:
            special2 0x4001 0x1CC
            comparevars 0x4001 0x8008
            if 0xCONDITION goto @
            Reply With Quote
              #12    
            Old October 23rd, 2014 (5:58 PM).
            looneyman1's Avatar
            looneyman1 looneyman1 is offline
            The Psycho Pokemon
               
              Join Date: Sep 2013
              Gender: Male
              Nature: Jolly
              Posts: 621
              Something we could use is a means to enable the emerald berry system to earlier 3rd gen games, especially with regard to the EV berries. It'd take a lot of hassle out of trying to EV train pokemon in a fire red hack since fire red is overwhelmingly overused but it lacks so many important features that make many parts of the game a lot easier. Might it be possible to find the line of code that enables EV berries then impliment that into a fire red ROM somehow? granted berries are ridiculously rare in FR/LG but if we can manage this at least we can then make a fire red hack that allows one to buy those berries at the Celadon Department Store or something
              Reply With Quote
                #13    
              Old October 23rd, 2014 (6:09 PM).
              HidoranBlaze's Avatar
              HidoranBlaze HidoranBlaze is offline
                 
                Join Date: Apr 2013
                Age: 21
                Gender: Male
                Posts: 253
                Quote:
                Originally Posted by looneyman1 View Post
                Something we could use is a means to enable the emerald berry system to earlier 3rd gen games, especially with regard to the EV berries. It'd take a lot of hassle out of trying to EV train pokemon in a fire red hack since fire red is overwhelmingly overused but it lacks so many important features that make many parts of the game a lot easier. Might it be possible to find the line of code that enables EV berries then impliment that into a fire red ROM somehow? granted berries are ridiculously rare in FR/LG but if we can manage this at least we can then make a fire red hack that allows one to buy those berries at the Celadon Department Store or something
                First of all, why are you asking this here? Second, why don't you go find out how to do it yourself. Since almost everyone here is hacking Emerald, I doubt they'd help you there. And if rare berries are an issue, just sell them in a market in your hack? Way better than waiting for the berries to grow, imo.
                Reply With Quote
                  #14    
                Old October 23rd, 2014 (8:23 PM).
                looneyman1's Avatar
                looneyman1 looneyman1 is offline
                The Psycho Pokemon
                   
                  Join Date: Sep 2013
                  Gender: Male
                  Nature: Jolly
                  Posts: 621
                  Quote:
                  Originally Posted by HidoranBlaze View Post
                  First of all, why are you asking this here? Second, why don't you go find out how to do it yourself. Since almost everyone here is hacking Emerald, I doubt they'd help you there. And if rare berries are an issue, just sell them in a market in your hack? Way better than waiting for the berries to grow, imo.
                  No need to be rude you know, and I'm asking this here because it's a matter of trying to figure out how to implement a later mechanic to an earlier game. It shouldn't be that big a stretch to the 4th gen phys/special split used in a number of 3rd gen hacks. Even with emerald starting to become more popular it still remains that FR is the preferred platform at the moment, and I only asked because If I knew how to do it I'd implement it myself afterward, do you get it now?????? I shouldn't have had to explain my reasons, it's pretty damn obvious.
                  Reply With Quote
                    #15    
                  Old October 23rd, 2014 (8:58 PM). Edited October 23rd, 2014 by HidoranBlaze.
                  HidoranBlaze's Avatar
                  HidoranBlaze HidoranBlaze is offline
                     
                    Join Date: Apr 2013
                    Age: 21
                    Gender: Male
                    Posts: 253
                    Quote:
                    Originally Posted by looneyman1 View Post
                    No need to be rude you know, and I'm asking this here because it's a matter of trying to figure out how to implement a later mechanic to an earlier game. It shouldn't be that big a stretch to the 4th gen phys/special split used in a number of 3rd gen hacks. Even with emerald starting to become more popular it still remains that FR is the preferred platform at the moment, and I only asked because If I knew how to do it I'd implement it myself afterward, do you get it now?????? I shouldn't have had to explain my reasons, it's pretty damn obvious.
                    Then ask your questions in a different thread. This is a thread to figure out the specials in Emerald. This isn't a thread to ask "how can I implement this feature in Firered?" Make a thread for the berry system in FR if it doesn't already exist, do a bit of research yourself, and if you can't figure things out, then ask. If you're asking questions about FR on a thread where most of the researchers hack EM, let's be real, you're not going to get much help. I'm sorry if I'm sounding harsh, but again, you were going off topic, and there's rules for this forum.
                    Also, my question still stands, why not just have a mart that sells EV berries in your hack? That's totally doable with scripting, and doesn't require a single ounce of ASM at all. I get why you want berry growing; it's a mechanic that's existed for years. But nobody really likes berry growing. They just want the product.
                    If you want to keep talking with me about this, VM me, since I don't want to go off-topic here.
                    Reply With Quote
                      #16    
                    Old April 13th, 2015 (6:00 AM).
                    LCCoolJ95's Avatar
                    LCCoolJ95 LCCoolJ95 is offline
                    Limited Capacity
                       
                      Join Date: May 2009
                      Location: The World That Never Was
                      Age: 22
                      Gender: Male
                      Nature: Naive
                      Posts: 525
                      Is there a special that checks to see what Pokémon you have in your party in order to battle a Legendary Pokémon? Like for example, having the three Regis in order to fight Regigigas. In a ROM hack in the Sideshow Showcase, Pokémon Kanto Black has that feature using the special 0x17C. What's the Emerald equivalent?
                      __________________
                      "The greatest obstacle in life is Yourself. Overcome it, and you will achieve the greatest accomplishment of all." -Art Beins, 1982

                      Pokémon Theta Emerald EX: https://www.pokecommunity.com/showthread.php?t=386240
                      Reply With Quote
                        #17    
                      Old April 13th, 2015 (6:27 AM).
                      Danny0317's Avatar
                      Danny0317 Danny0317 is offline
                      Fluorite's back, brah
                      • Gold Tier
                       
                      Join Date: Jun 2013
                      Location: Miami, FL
                      Age: 17
                      Gender: Male
                      Nature: Hasty
                      Posts: 1,075
                      Quote:
                      Originally Posted by LCCoolJ95 View Post
                      Is there a special that checks to see what Pokémon you have in your party in order to battle a Legendary Pokémon? Like for example, having the three Regis in order to fight Regigigas. In a ROM hack in the Sideshow Showcase, Pokémon Kanto Black has that feature using the special 0x17C. What's the Emerald equivalent?
                      There's not one that I know of, BUT I do know that Itari (if that's still his name) made an ASM routine to check for pokemon in your party, it's in the quick research thread.
                      __________________
                      Reply With Quote
                        #18    
                      Old April 13th, 2015 (4:07 PM).
                      Percy's Avatar
                      Percy Percy is offline
                      look at my signature
                         
                        Join Date: Sep 2014
                        Location: Philippines
                        Gender: Male
                        Nature: Lonely
                        Posts: 2,433
                        Quote:
                        Originally Posted by LCCoolJ95 View Post
                        Is there a special that checks to see what Pokémon you have in your party in order to battle a Legendary Pokémon? Like for example, having the three Regis in order to fight Regigigas. In a ROM hack in the Sideshow Showcase, Pokémon Kanto Black has that feature using the special 0x17C. What's the Emerald equivalent?
                        To add on to what Dark Sneasel said, here's the said link.
                        (And itari is now known as Hopeless Masquerade).
                        __________________
                        [you're so easy to manipulate ]
                        Reply With Quote
                          #19    
                        Old April 17th, 2015 (5:24 AM).
                        Year7Class1's Avatar
                        Year7Class1 Year7Class1 is offline
                        Year 7 Class 1 Fan
                           
                          Join Date: Apr 2015
                          Location: Philippines
                          Gender: Male
                          Nature: Calm
                          Posts: 24
                          What about the giving nickname thingy? I already search for i think 1 hour searching for that. When I use 9E (R/S) It only show a clock. -.-
                          __________________
                          Pokemon Kunzite
                          Please help me...
                          Reply With Quote
                            #20    
                          Old May 16th, 2015 (7:47 PM). Edited May 17th, 2015 by You Watanabe.
                          You Watanabe's Avatar
                          You Watanabe You Watanabe is offline
                          Now Leaving...
                             
                            Join Date: Feb 2014
                            Location: Shiganshina District, Wall Maria
                            Gender: Female
                            Nature: Adamant
                            Posts: 430
                            Can you also list the specials which are empty, unused, or useless? I'm personally translating out JPAN's FireRed Hacked Engine's specials to Emerald. I got two specials translated but I dunno which special I will use for that so that is why I'm asking empty slots (noted that I knew where the table is).

                            Quote:
                            Originally Posted by Shiny Quagsire View Post
                            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. Just underneath that table is the std table used by callstd. 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.

                            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. Also, Dark Sneasel, do you think we could get these added into the main post to further complete things? Just so we have an idea of what specials need documenting is all.

                            EDIT: Clarification for a few things, 0xC0 is the daycare Pokemon special (ie for taking in/out pokemon) and 0xC7 is the battle records used in the upstairs in the Pokemon Center (it fills up more when you do link battles). 0xD3 is used for the Pokeblock feeders in the Safari Zone (I think),
                            Thanks! I can now finally test my personal translations. XD

                            EDIT: Can be the special table expandable? Will it be having limiter stuff?
                            __________________

                            Userpage


                            Pokémon Dark Jade Version (Coming Soon!)


                            The Omsoc Empire (Coming Soon!)
                            Reply With Quote
                              #21    
                            Old May 18th, 2015 (6:43 AM).
                            Touched's Avatar
                            Touched Touched is offline
                            Resident ASMAGICIAN
                               
                              Join Date: Jul 2014
                              Gender: Male
                              Posts: 623
                              Quote:
                              Originally Posted by Sky High View Post
                              Can you also list the specials which are empty, unused, or useless? I'm personally translating out JPAN's FireRed Hacked Engine's specials to Emerald. I got two specials translated but I dunno which special I will use for that so that is why I'm asking empty slots (noted that I knew where the table is).



                              Thanks! I can now finally test my personal translations. XD

                              EDIT: Can be the special table expandable? Will it be having limiter stuff?
                              Of course it's expandable. You'll have to change two routines (max) if there are limiters. However there is little point in expanding it. First reason I have for this is that there are countless nops - you can just replace those without fear of breaking anything. There should be more than enough. Second reason is that it wastes space - you'd have to repoint the entire special table to do this. Why not repoint the script command table instead (or replace a nop there)? It would waste less space and allow better functionality than specials...
                              __________________

                              A Pokemon that is discriminated!
                              Support squirtle and make it everyone's favourite.
                              Reply With Quote
                                #22    
                              Old May 18th, 2015 (7:38 PM).
                              You Watanabe's Avatar
                              You Watanabe You Watanabe is offline
                              Now Leaving...
                                 
                                Join Date: Feb 2014
                                Location: Shiganshina District, Wall Maria
                                Gender: Female
                                Nature: Adamant
                                Posts: 430
                                Quote:
                                Originally Posted by Touched View Post
                                Of course it's expandable. You'll have to change two routines (max) if there are limiters. However there is little point in expanding it. First reason I have for this is that there are countless nops - you can just replace those without fear of breaking anything. There should be more than enough. Second reason is that it wastes space - you'd have to repoint the entire special table to do this. Why not repoint the script command table instead (or replace a nop there)? It would waste less space and allow better functionality than specials...
                                I see. So, you suggest me to use the script command table than specials table. Hmm. Ok. Well, I just want to know the table location, and how will Jpan's special routines will work there (actually, I know how to use and insert commands as I have gone to battle string loader hack). Tutor me dude.
                                Reply With Quote
                                  #23    
                                Old May 19th, 2015 (3:38 AM).
                                Touched's Avatar
                                Touched Touched is offline
                                Resident ASMAGICIAN
                                   
                                  Join Date: Jul 2014
                                  Gender: Male
                                  Posts: 623
                                  Quote:
                                  Originally Posted by Sky High View Post
                                  I see. So, you suggest me to use the script command table than specials table. Hmm. Ok. Well, I just want to know the table location, and how will Jpan's special routines will work there (actually, I know how to use and insert commands as I have gone to battle string loader hack). Tutor me dude.
                                  This is getting a bit off-topic so you might want to join #rhm on the IRC if you have more questions. The script tables are labelled in both of the IDBs in my signature, so check there if you need to find them. The routines that read the script table have limiters in the form of a pointer to the last command, so it should be quite easy to change and repoint this table. Script routines take a pointer to the script environment as their sole argument and return a boolean indicating whether they still need to do work or not. The reading of parameters is all handled by the commands routine, so you can have variadic commands too if you wish. Obviously this would mean rewriting JPAN's routines to accept script parameters instead of variables. You would also need a script editor that can handle modified script tables and configure it appropriately (Red Alien). If you need example routines, check either IDB and read through some of the script command routines. Most of them are fairly simple.
                                  __________________

                                  A Pokemon that is discriminated!
                                  Support squirtle and make it everyone's favourite.
                                  Reply With Quote
                                    #24    
                                  Old May 24th, 2015 (1:50 AM).
                                  Artemis64 Artemis64 is offline
                                     
                                    Join Date: Mar 2014
                                    Location: Singapore
                                    Gender: Male
                                    Nature: Hasty
                                    Posts: 85
                                    special 0x11C is not to set the screen to red, it is the orb expansion screen (when the Red/Blue Orb) is used. Whether the color of the sphere of light is red or blue depends on the variable 0x800D- setvar 0x800D 0x0 sets the color to red, and setvar 0x800D 0x1 sets it to blue.
                                    Reply With Quote
                                      #25    
                                    Old June 13th, 2015 (3:35 PM).
                                    ProClifo's Avatar
                                    ProClifo ProClifo is offline
                                    The Village Pirate Cat
                                       
                                      Join Date: Sep 2008
                                      Location: Norway
                                      Age: 20
                                      Gender: Male
                                      Nature: Lonely
                                      Posts: 90
                                      Is this worth looking into?

                                      http://www.reddit.com/r/PokemonROMhacks/comments/39qpl6/battle_tent_prizes_and_unknown_specials/
                                      __________________
                                      Click to visit Jiggmin's Village
                                      Reply With Quote
                                      Reply
                                      Quick Reply

                                      Sponsored Links
                                      Thread Tools

                                      Posting Rules
                                      You may not post new threads
                                      You may not post replies
                                      You may not post attachments
                                      You may not edit your posts

                                      BB code is On
                                      Smilies are On
                                      [IMG] code is On
                                      HTML code is Off

                                      Forum Jump


                                      All times are GMT -8. The time now is 4:37 AM.