• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Simple Questions (PLEASE USE THE SEARCH BUTTON BEFORE ASKING)

Status
Not open for further replies.

karatekid552

What happens if I push it?....
  • 1,771
    Posts
    11
    Years
    I did look through the tutorials extensively:

    ShyRayq's tutorial is specifically for Firered, since FR/LG's type sprites are different from RSE's.

    So, I looked at destinedjagold's tutorial on how to add new types, since Emerald is closely related to Ruby. However, that tutorial removes the contest system within the game. So, it still technically replaces something instead of adding something.

    Tropical Sunlight did a tutorial on how to change other types, which is useless for me.

    Coolboyman's tutorial on which bytes go to which type was possibly the ONLY tutorial that was useful to me. That's how I set up the Strengths/Weaknesses/Resistances.

    Ahh, I'm sorry, I skimmed your post and missed that is was for Emerald. I have checked and the stats table does not have an egg entry (even though the sprite table does).

    The best way to do this would be through ASM and changing the routine that loads the type sprites. All you need to do is adjust them for the extension.

    As for changing egg type, I would assume you want to change to Normal. You could swap everything about fairy and normal, and then change all of the Pokemon, but this would take a while (though, if you waste too much time trying to change the egg, then this might be more efficient.) All eggs use the same type, so I would look for an ASM routine that specifically checks for the egg's number: 412. Most likely, they would have stored the byte as 206 and then loaded it and done an lsl 0x1 to multiply by 2. This way, they don't wast 4 bytes storing it.
     

    Tlachtli

    Crit happens.
  • 267
    Posts
    12
    Years
    I found it. Give me a moment to sort out exactly how it works, though.

    Okay, at 0x8045CC4, there is a word. It is 0x00000471, which is half of 0x8E2. This is because it is in a loop that is entered only if the first entry doesn't match (thus removing two.) Because every entry in the table is 2 bytes, the counter goes up in halves. Hope this helps.:) This is FR, if you need another game, let me know. I have them all now. (It wasn't hard to get the rest, just -4 on the offset of the second pointer.)

    Hrm, well I changed the word to be half my new table's length but still no dice on the entries outside of the original length. Now I'm puzzled. Could there be more than one limiter, or do you think it's something else entirely?
     
  • 48
    Posts
    10
    Years
    • Seen Mar 7, 2014
    How do you change the catching rate of a fishing rod? In advance map, there is the option to change "encounter rate" which works perfectly fine for grass, but when I try sliding the bar for fishing rods the fishing encounter rate does not change. Its as if the fishing rod has a set catching percentage. I slid the bar to no chance and 100% chance to make sure, and sure enough the catch rate didn't change. Help?
     

    karatekid552

    What happens if I push it?....
  • 1,771
    Posts
    11
    Years
    Hrm, well I changed the word to be half my new table's length but still no dice on the entries outside of the original length. Now I'm puzzled. Could there be more than one limiter, or do you think it's something else entirely?

    There is only one routine I found that deals with the Egg Moves. Are you sure your table is formatted properly?

    Here are my own notes on it, given to me by MrDollSteak:

    Code:
    ~Egg Move Structures: 
     
    Egg Move Table is located at: 
    25EF0C 
     
    It is pointed to twice, once at 045C50 and once at 045CC8 
     
    The table is listed in the form 
     
    ?? 4E/4F, and then move indexes. 
     
    ?? refers to 20+ a pokemon's index. 
    which is then followed by 4E or 4F depending on the index. 
     
    ie. Bulbasaurs index is 01 00 
    thus its entry starts off with 
    21 4E, 
    whereas Chimecho with an index of 9B 01, would have an entry starting with 
    9B 4F. 
     
    The moves themselves are then listed in their respective indexes, until the next Pokemon. 
     
     
    This would make it seems like the table could be expanded rather simply, by repointing it, and just adding index entries as one would please.

    So every Pokemon is the index + 0x4E20.
     

    Tlachtli

    Crit happens.
  • 267
    Posts
    12
    Years

    I'm pretty much positive my table's set up properly. For example, here's my entry for Chimecho:
    Code:
    BB 4F 32 00 AE 00 5F 00 8A 00 42 01 69 00 1D 01 11 01
    0x4FBB is 0x4E20 plus his index (411 or 0x19B), and the indices of the moves are listed after. One of the moves is Hypnosis (0x005F).

    I go in-game and put a Chimecho mother with a Gardevoir father who knows Psychic and Hypnosis. Baby comes out knowing Psychic (a compatible TM) but not Hypnosis (an egg move), so that just leaves me confused. Pointers are right, the limiter word was changed to half the table length, and the table itself should be formatted properly.
     

    karatekid552

    What happens if I push it?....
  • 1,771
    Posts
    11
    Years
    I'm pretty much positive my table's set up properly. For example, here's my entry for Chimecho:
    Code:
    BB 4F 32 00 AE 00 5F 00 8A 00 42 01 69 00 1D 01 11 01
    0x4FBB is 0x4E20 plus his index (411 or 0x19B), and the indices of the moves are listed after. One of the moves is Hypnosis (0x005F).

    I go in-game and put a Chimecho mother with a Gardevoir father who knows Psychic and Hypnosis. Baby comes out knowing Psychic (a compatible TM) but not Hypnosis (an egg move), so that just leaves me confused. Pointers are right, the limiter word was changed to half the table length, and the table itself should be formatted properly.

    Hmmm, I don't know. I'll do some research.

    Try swapping the moves around and see if that changes anything.
     
    Last edited:
  • 79
    Posts
    16
    Years
    • Seen Apr 13, 2014
    I have a new question, and I'd like to re-ask one that didn't get answered.

    New Question: How do I de-link the houses that are linked together in Ruby? For example, maps 2.0 and 6.7 (among several others) are linked, and any tile changes on one are automatically done to the other. I'd rather not make a whole bunch of new maps just to give each town its own style of houses, so my only option is to de-link them, and I'm pretty sure it's possible. I remember reading something about it somewhere on this site, but I can't seem to find it now...

    And the other question:

    I guess I wasn't very clear with the description. The way the tall grass behaves, it normally hides most of the sprite. This is achieved by the entire graphic covering the player at all times. I changed the tiles for the tall grass and it gives me this:
    Spoiler:

    Whereas I would like the tiles to behave like the normal grass:
    Spoiler:

    but still force the player to walk, and call up the tall grass battle screen (and be a different color, but that's manageable because it's different tiles). I'd imagine this is ASM related.

    Edit: Apparently, this behavior byte causes even the tiles on the lower level to cover the player, as seen here.
    Spoiler:


    After a bit more exploring, I think I found the cause of the problems. In normal grass, both the player and the grass overlay have a priority of 2. In tall grass, the player gets priority 3, and the top of his head and the grass are 2. I'm fairly sure I'd be able to fix this if I had the address for the ASM routine for the tall grass. Could someone help me out, or point me to how I would find this address?
     

    Tlachtli

    Crit happens.
  • 267
    Posts
    12
    Years
    Hmmm, I don't know. I'll do some research.

    Try swapping the moves around and see if that changes anything.

    Well this whole thing has taken a turn for the stranger. I tried a Graveler[m] (knowing Self-Destruct and Rollout) x Sudowoodo[f] and the baby Sudowoodo came out knowing Self-destruct (an original egg move) but not Rollout (an added egg move, as well as a tutor-possible move). I'm not really sure what to make of that. The whole Sudowoodo entry is within the length of the original table (shown below), so I'm not sure why only some of the listed moves would work.

    Sudowood entry:
    Code:
    D9 4E [B]78 00[/B] AE 00 6F 00 CB 00 6A 1D 00 [B]CD 00[/B] 48 01
    0x0078 = Self-Destruct
    0x00CD = Rollout

    On a side note I was under the impression that in Gen 3 tutorable moves could be passed through breeding, so it seems like Sudowoodo should have hatched with Rollout even if the egg moves weren't working.

    EDIT: Worth noting are that test with Poke's, Koffing worked with new egg moves (Curse in this case) while Chimeco didin't work with any egg moves, old or new.
     
    Last edited:

    karatekid552

    What happens if I push it?....
  • 1,771
    Posts
    11
    Years
    Well this whole thing has taken a turn for the stranger. I tried a Graveler[m] (knowing Self-Destruct and Rollout) x Sudowoodo[f] and the baby Sudowoodo came out knowing Self-destruct (an original egg move) but not Rollout (an added egg move, as well as a tutor-possible move). I'm not really sure what to make of that. The whole Sudowoodo entry is within the length of the original table (shown below), so I'm not sure why only some of the listed moves would work.

    Sudowood entry:
    Code:
    D9 4E [B]78 00[/B] AE 00 6F 00 CB 00 6A 1D 00 [B]CD 00[/B] 48 01
    0x0078 = Self-Destruct
    0x00CD = Rollout

    On a side note I was under the impression that in Gen 3 tutorable moves could be passed through breeding, so it seems like Sudowoodo should have hatched with Rollout even if the egg moves weren't working.

    Try a clean rom or a backup just before expanding. I'm thinking that there is a limit on egg moves. hmmm

    I have a new question, and I'd like to re-ask one that didn't get answered.

    New Question: How do I de-link the houses that are linked together in Ruby? For example, maps 2.0 and 6.7 (among several others) are linked, and any tile changes on one are automatically done to the other. I'd rather not make a whole bunch of new maps just to give each town its own style of houses, so my only option is to de-link them, and I'm pretty sure it's possible. I remember reading something about it somewhere on this site, but I can't seem to find it now...

    And the other question:

    You need to repoint the data by hand. I would suggest just making a new map and changing warps. It is so much easier.
     
  • 79
    Posts
    16
    Years
    • Seen Apr 13, 2014
    You need to repoint the data by hand. I would suggest just making a new map and changing warps. It is so much easier.

    Well in the interest of learning, how would I go about doing it the hard way (repointing the data)? What all data would I need to repoint?
     

    karatekid552

    What happens if I push it?....
  • 1,771
    Posts
    11
    Years
    Well in the interest of learning, how would I go about doing it the hard way (repointing the data)? What all data would I need to repoint?

    I'm glad you want to learn. You would need to repoint any data that is shared, ie any things with the same pointers and offsets. I think, but I'm not sure, if you open up the professional header view in A-Map, and change the offsets to free space, and then save, it will repoint for you. Not sure though.
     
  • 79
    Posts
    16
    Years
    • Seen Apr 13, 2014
    I'm glad you want to learn. You would need to repoint any data that is shared, ie any things with the same pointers and offsets. I think, but I'm not sure, if you open up the professional header view in A-Map, and change the offsets to free space, and then save, it will repoint for you. Not sure though.

    So I just change Map Offset and Border Offset, right? I don't touch map footer, and it will make a new footer for me without affecting the other linked maps?
     

    Tlachtli

    Crit happens.
  • 267
    Posts
    12
    Years
    Try a clean rom or a backup just before expanding. I'm thinking that there is a limit on egg moves. hmmm.

    No luck on a clean rom either, so that tells me there must be some other limit on egg moves. Unless it's a hardware limit (extremely unlikely) my gut says there'll be some way to get this working.

    I have literally no ASM experience, but I'm wondering if something in the routine that handles egg moves is mucking this up. It seems like it would be a simple case of "if the father has it and it is present on the list, pass it on" but maybe there's something else to it. My only other thought would be another limiter in a different section of the rom completely (in the breeding routine itself maybe?). I'll just keep poking at it and see if anything comes up.
     

    MrDollSteak

    Formerly known as 11bayerf1
  • 858
    Posts
    15
    Years
    No luck on a clean rom either, so that tells me there must be some other limit on egg moves. Unless it's a hardware limit (extremely unlikely) my gut says there'll be some way to get this working.

    I have literally no ASM experience, but I'm wondering if something in the routine that handles egg moves is mucking this up. It seems like it would be a simple case of "if the father has it and it is present on the list, pass it on" but maybe there's something else to it. My only other thought would be another limiter in a different section of the rom completely (in the breeding routine itself maybe?). I'll just keep poking at it and see if anything comes up.

    Just to double check, you are using Fire Red right?

    Also in regards to Sudowoodo

    D9 4E 78 00 AE 00 6F 00 CB 00 6A 1D 00 CD 00 48 01

    There's your problem.

    6A 1D is not a good entry. Moves are supposed to be 2 bytes long, in the form XX YY where YYXX is the move index number.
    6A 1D would be the move 1D6A which just cannot exist, as the limit is 1FF (on vanilla anyway)
    you're probably missing a 00 after the 6A, which is screwing up new entries.

    This is probably the case with Chimecho too.
     
    Last edited:

    Alice

    (>^.(>0.0)>
  • 3,077
    Posts
    15
    Years
    I'm hacking Ruby, and want to leave Pokemon contests in the game almost untouched. The only change I've made is to move the maps to a different bank. Problem is that when you finish a contest, it warps you back to the map that the contest hall was originally in, not where I moved it to. I've looked through the scripts, and I can't figure out where this happens. Is it an ASM thing? How can I change it?
     

    GoGoJJTech

    (☞゚ヮ゚)☞ http://GoGoJJTech.com ☜(゚ヮ゚☜)
  • 2,475
    Posts
    11
    Years
    I'm hacking Ruby, and want to leave Pokemon contests in the game almost untouched. The only change I've made is to move the maps to a different bank. Problem is that when you finish a contest, it warps you back to the map that the contest hall was originally in, not where I moved it to. I've looked through the scripts, and I can't figure out where this happens. Is it an ASM thing? How can I change it?

    It is an ASM thing. You'd have to move the map back unless you want to dig through the command table.
     

    Tlachtli

    Crit happens.
  • 267
    Posts
    12
    Years
    Just to double check, you are using Fire Red right?

    Also in regards to Sudowoodo

    D9 4E 78 00 AE 00 6F 00 CB 00 6A 1D 00 CD 00 48 01

    There's your problem.

    6A 1D is not a good entry. Moves are supposed to be 2 bytes long, in the form XX YY where YYXX is the move index number.
    6A 1D would be the move 1D6A which just cannot exist, as the limit is 1FF (on vanilla anyway)
    you're probably missing a 00 after the 6A, which is screwing up new entries.

    This is probably the case with Chimecho too.

    Emerald, but the indices, tables, and pointer format will be the same between the two. It's a typo I guess I missed, it was supposed to be 0x006A (Harden) and 0x001D (Headbutt), but I missed a 00 between them. I'll go back over my hex and see if I made any other mistakes like that.

    My Chimeco one is fine though, so maybe it's just that Sudowoodo's entry is throwing the whole rest of the table off. Maybe other mistakes like that too, I'll go back and check.
    Code:
    BB 4F 32 00 AE 00 5F 00 8A 00 42 01 69 00 1D 01 11 01 F8 00 FF FF
    0x4FBB = Chimecho index +0x4E20
    0x0032 = Disable
    0x00AE = Curse
    0x005F = Hypnosis
    0x008A = Dream Eater
    0x0142 = Cosmic Power
    0x0069 = Recover
    0x011D = Skill Swap
    0x0111 = Wish
    0x00F8 = Future Sight
    0xFFFF = End of table
    EDIT: Good catch, that Sudowoodo typo was the problem all along. If I'd been paying attention at all, I would have noticed something was up when the table first came out an odd number of bytes long ~_~

    Either way, my new egg move set seems to be working:
    Simple Questions (PLEASE USE THE SEARCH BUTTON BEFORE ASKING)
     
    Last edited:

    ThorhianTheUltimate

    No, im not Thorzain
  • 14
    Posts
    10
    Years
    • Seen Feb 17, 2017
    Hey guys, I just wanted to ask a quick question about whether or not there are Native Linux ROM hacking tools around. That would be pretty nice, currently im trying to get some stuff working in WINE.
     

    xZippy

    Strange Member
  • 10
    Posts
    10
    Years
    • He/Him
    • Seen Feb 5, 2022
    You know how in Emerald you see a big symbol appear on the screen before you fight someone from Team Magma or Aqua? Is it possible to edit that?

    Is it also possible to edit the region map in Emerald?
     
    Status
    Not open for further replies.
    Back
    Top