View Single Post
  #219    
Old March 15th, 2012 (8:18 PM). Edited March 16th, 2012 by redriders180.
redriders180's Avatar
redriders180 redriders180 is offline
Mastermind of Pokemon Glazed
     
    Join Date: Jun 2010
    Location: Path of Victory, Tunod
    Gender: Male
    Nature: Quirky
    Posts: 540
    Quote:
    Originally Posted by SwiftSign View Post
    You are right, 0x8004 0x1 hatches an egg that is 2nd in the party, etc.

    The only trouble now is identifying where the egg is. I've had a look at JPAN's Pokemon data decryption thread from years ago, in which he has a routine that can return a species, even in egg form - but that can't give a permission.

    Ideally something like

    Check (egg) species -> Locate species -> setvar 0x8004 to position

    Especially if it's a one of pokemon, so there can't be more than one, so there is no trouble in accidentally hatching a normal pokemon instead. Anything to identify where the egg is would be a great start ><.
    You actually don't need ASM for this one. I quote from the list of specials, courtesy of JPAN:
    Quote:
    Originally Posted by JPAN
    [Special 0x]147 checks your pokemon in position referenced by 0x8004 and returns to the given variable its pokemon number. returns 0x19c if an egg.
    So all you need to do is use set the variable 0x8004 to 0x0, special2 LASTRESULT 0x147, compare LASTRESULT 0x19C, if 0x1 goto @hatch, if 0x0, add 0x1 to 0x8004, and repeat. You also need to build in a failsafe for if they don't have an egg, so the script won't loop you forever.

    Quote:
    Originally Posted by sonic1 View Post

    As for this, now i'm outta time, but i'll try to do something to you. Thing is, there's a routine in the rom, a powerful one, that has ENTIRE access to a pokemon's data, and can change anything about it!
    List of things discovered that the routine can change (don't mind the hex numbers):
    Spoiler:

    0x00 - Pokémon ID
    0x01 - Trainer IDs
    0x02 - Nickname Max Length 1 (r6 should be the nickname's address)
    0x03 - Font / Language
    0x04 - Sanity
    0x05 - Sanity
    0x06 - Sanity
    0x07 - OT Name Max Length
    0x08 - Marks
    0x09 - Checksum
    0x0A - Filler
    0x0B - Species
    0x0C - Held Item
    0x0D - Attack 1
    0x0E - Attack 2
    0x0F - Attack 3
    0x10 - Attack 4
    0x11 - PP 1
    0x12 - PP 2
    0x13 - PP 3
    0x14 - PP 4
    0x15 - PP Bonuses
    0x16 - Coolness
    0x17 - Beauty
    0x18 - Cuteness
    0x19 - Exp. Points
    0x1A - HP EV
    0x1B - Attack EV
    0x1C - Defense EV
    0x1D - Speed EV
    0x1E - Sp. Attack EV
    0x1F - Sp. Defense EV
    0x20 - Happiness
    0x21 - Smartness
    0x22 - Pokérus Status
    0x23 - Catch Location
    0x24 - Catch Level
    0x25 -
    0x26 - Hometown / Poké Ball / Trainer Gender
    0x27 - HP IV
    0x28 - Attack IV
    0x29 - Defense IV
    0x2A - Speed IV
    0x2B - Sp. Attack IV
    0x2C - Sp. Defense IV
    0x2D - IsEgg
    0x2E - Ability Bit
    0x2F - Toughness
    0x30 - Sheen
    0x31 - OT Gender
    0x32 -
    0x33 -
    0x34 -
    0x35 -
    0x36 -
    0x37 - Status Ailment
    0x38 - Level
    0x39 - Current HP
    0x3A - Total HP
    0x3B - Attack
    0x3C - Defense
    0x3D - Speed
    0x3E - Sp. Attack
    0x3F - Sp. Defense
    0x43 - Hall Of Fame ribbon
    0x50 - Obedience




    Well, i explained this in the last post. Its the naming type, which is gonna through r0. But that can be easily changed, i think, so this is the least of our worries.

    My main worry is how you're gonna convert the letters bytes into usable codes.
    My first problem is that the method you posted earlier is that it stores the value in only five variables, which basically means two letter per variable, and this is NOT what I want...I want one letter per variable. I'm sure I could whip up a seperation script, though. After doing this, the game applies a cipher, and applies my method of conversion, which I won't reveal right here, so I don't have someone who's playing my rom hack in the future stumble upon it, and suddenly find him or herself able to create a team of six level 100 Arceus. If you really want/need to know, feel free to PM me. And thanks for your help!

    Oh yea...thanks for that routine...but after a quick glance, it seems to all be stuff I can already access.
    __________________


    I think I'm done with ROM hacking. I'll still pop in and visit, though.


    Reply With Quote