• 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.

[ASM & Hex] [Leon's ROM Base] Shedinja Evolution

90
Posts
5
Years
  • Hello,

    Nincada in a patched Leon's ROMbase won't create a new Shedinja despite that you have extra party pokemon slot and a pokeball in your inventory.
    It does evolve into Ninjask though.

    =========
    I have looked into the evolution methods table in Firered 0x42FC4 and compared #13 table (Allow Pokemon Creation) 0x430EC and #14 table (Create New Pokemon) 0x43110 with vanilla and there are no suspicious differences or corruption.

    So i am assuming that the game somehow cannot read that we have a pokeball in our inventory and so refuse to add Shedinja into our party.
    Maybe it is because of bag expansion or something? Which is too heavy for me.
    =========

    Does anyone know how to fix this, or just simply allow Shedinja to appear without any pokeball requirement?
    Thanks in advance.

    //Edit : Tested in vanilla that you don't need any pokeball to obtain Shedinja. So the problem should be the evolution routine.
     
    Last edited:
    192
    Posts
    6
    Years
  • Actually, is the evolution's table was expanded to more slots that have in Vanilla. I know how to fix this but I copied and save in to a text file.
     
    853
    Posts
    3
    Years
    • Seen Nov 9, 2023
    Hello,

    Nincada in a patched Leon's ROMbase won't create a new Shedinja despite that you have extra party pokemon slot and a pokeball in your inventory.
    It does evolve into Ninjask though.

    =========
    I have looked into the evolution methods table in Firered 0x42FC4 and compared #13 table (Allow Pokemon Creation) 0x430EC and #14 table (Create New Pokemon) 0x43110 with vanilla and there are no suspicious differences or corruption.

    So i am assuming that the game somehow cannot read that we have a pokeball in our inventory and so refuse to add Shedinja into our party.
    Maybe it is because of bag expansion or something? Which is too heavy for me.
    =========

    Does anyone know how to fix this, or just simply allow Shedinja to appear without any pokeball requirement?
    Thanks in advance.

    //Edit : Tested in vanilla that you don't need any pokeball to obtain Shedinja. So the problem should be the evolution routine.

    Instead of looking in vanilla, look in the files for leon base and see if it changes the evo method.
     
    9
    Posts
    3
    Years
    • Seen Apr 27, 2024
    First off, I want to thank you for the Shedinja-HP fix you posted in the Simple Modifications directory. Shedinja is one of my favorite Pokemon and I'm super excited to use the new and improved version in my rom hack.
    However, I have the same problem as the OP here and I noticed there seems to be no definition for the Nincada-Shedinja evolution method in the CFRU src/evolution.c
    The getEvolutionTargetSpecies() function has the Ninjask evolution method but skips over Shedinja. There is a IsLevelUpEvolutionMethod() that includes a case for the Shedinja evolution method but there is no other mention anywhere in the file. And that particular function only returns a bool, so I don't think it's what I'm looking for.
    I've only just started ROM hacking recently, on top of having limited coding experience, so I'm not sure where else to look. Is there some other place in the CFRU engine I should be looking? Did I accidently delete something when setting up? The CFRU github src/evolution.c looks identical so I'm not sure what I'm missing.
    Any help is much appreciated!
     
    853
    Posts
    3
    Years
    • Seen Nov 9, 2023
    First off, I want to thank you for the Shedinja-HP fix you posted in the Simple Modifications directory. Shedinja is one of my favorite Pokemon and I'm super excited to use the new and improved version in my rom hack.
    However, I have the same problem as the OP here and I noticed there seems to be no definition for the Nincada-Shedinja evolution method in the CFRU src/evolution.c
    The getEvolutionTargetSpecies() function has the Ninjask evolution method but skips over Shedinja. There is a IsLevelUpEvolutionMethod() that includes a case for the Shedinja evolution method but there is no other mention anywhere in the file. And that particular function only returns a bool, so I don't think it's what I'm looking for.
    I've only just started ROM hacking recently, on top of having limited coding experience, so I'm not sure where else to look. Is there some other place in the CFRU engine I should be looking? Did I accidently delete something when setting up? The CFRU github src/evolution.c looks identical so I'm not sure what I'm missing.
    Any help is much appreciated!

    Thanks for the thanks, :).

    ok so I haven't tested it myself yet, but the evolution method, should be either Level and New Pokemon, or Level But New Pokemon.

    I doubt you've deleted something accidentally. The evo methods are actually defined and expanded from DPE. then you just need to make sure the cfru config is set to evo method 16.

    Also since you're new I recommend you get the program Hex Maniac Advance, that should help you learn, find things, and make changes.

    But your starting knowledge is fine, its not where you start that matters in this but how much effort and time you're willing and able to invest.


    For example, I had 0 knowledge about rom hacking, or coding in general before I joined this community, and I was able to make that shedinja fix.

    If you've got the time, read as much as you can, and when you find something you don't understand try to find a definition or summary of it.


    also it should help you to know this distinction as soon as possible, to understand what other people are talking about as these terms are very commonly used.
    (took me far too long to understand and never realized a definition was right in the help section)

    What's the difference between binary hacking and using a decompilation/disassembly?

    "Binary hacking" in a nutshell can be defined as using various tools to edit a .gba or .gbc file to get the results you want.
    If you use a decomp/disasm, the difference is that you're editing the source code in order to build your own custom ROM.

    A good scripting tutorial will also help.

    If you're editing in binary, and using cfru, you'll need a hex editor (Hex maniac advance)
    Advance Map 1.9.5 ( a map editor)
    XSE (and an event scripter)
     
    Last edited:
    9
    Posts
    3
    Years
    • Seen Apr 27, 2024
    Sorry for taking so long to reply, I wanted to look into the resources you recommended before coming back. At first, I had no idea what you meant by the Level And New Pokemon/Level But New Pokemon. After downloading HexManiac Advance and going through a couple of tutorials I think I'm headed in the right direction. I also went ahead and did your tutorial to get the DPE expanded evolution table to show up properly(and it is so much faster than recompiling every time I get a great new idea!)
    However I'm still having problems with Shedinja. I opened a vanilla firered rom to make sure I had the correct evolution methods for Nincada but upon testing all I got was Ninjask. I went ahead and tried different combinations of the Level And New Pokemon/Level But New Pokemon and I'm pretty sure the problem is with the Level But New Pokemon method. Whichever pokemon I set to that method won't appear and if I set both to it, Nincada simply won't evolve at all. If worst comes to worst, I'll simply treat Shedinja as a seperate evolutionary line and give it an evo-stone method but I'd at least like to figure why it isn't working before moving on.
    Once again, I appreciate any help you can offer!
     
    853
    Posts
    3
    Years
    • Seen Nov 9, 2023
    Sorry for taking so long to reply, I wanted to look into the resources you recommended before coming back. At first, I had no idea what you meant by the Level And New Pokemon/Level But New Pokemon. After downloading HexManiac Advance and going through a couple of tutorials I think I'm headed in the right direction. I also went ahead and did your tutorial to get the DPE expanded evolution table to show up properly(and it is so much faster than recompiling every time I get a great new idea!)
    However I'm still having problems with Shedinja. I opened a vanilla firered rom to make sure I had the correct evolution methods for Nincada but upon testing all I got was Ninjask. I went ahead and tried different combinations of the Level And New Pokemon/Level But New Pokemon and I'm pretty sure the problem is with the Level But New Pokemon method. Whichever pokemon I set to that method won't appear and if I set both to it, Nincada simply won't evolve at all. If worst comes to worst, I'll simply treat Shedinja as a seperate evolutionary line and give it an evo-stone method but I'd at least like to figure why it isn't working before moving on.
    Once again, I appreciate any help you can offer!

    It's no problem. :) Nothing wrong with doing your due diligence.
    Yeah I saw your like, on the tutorial, I'd forgotten I even wrote that lol.

    Hmm, sorry you're still having trouble with the evolution, did you have a open space in your party?

    When I get some time, I'll try to test it myself in cfru.
     
    Last edited:
    9
    Posts
    3
    Years
    • Seen Apr 27, 2024
    The more I read on here, the more I realize I need to learn, but I am so excited to finally have the opportunity to create my own custom Pokemon game.

    I did have an extra space in my party, as well as an extra pokeball in my bag. I tested by feeding Nincada rare candies to level 20, in case that's relevant.

    Whenever you can find time, that would be awesome!
     
    853
    Posts
    3
    Years
    • Seen Nov 9, 2023
    The more I read on here, the more I realize I need to learn, but I am so excited to finally have the opportunity to create my own custom Pokemon game.

    I did have an extra space in my party, as well as an extra pokeball in my bag. I tested by feeding Nincada rare candies to level 20, in case that's relevant.

    Whenever you can find time, that would be awesome!

    Yeah its a good feeling to be learning all these new things, and making your vision a reality. :)

    I see you've found a lot of my tutorials, while you're at it, here check this one out too, this one is on the topic of hexadecimal. :)
    https://www.pokecommunity.com/showthread.php?t=445500

    Knowing that will help when it comes to reading data. its also helpful to know basic byte structure, like one byte can store a value from 0, to 0xFF.

    For nincada I can't imagine what's going on there, I doubt you've set something up wrong from what you say, especially since it is evolving, it would be a different thing
    if you got to 20 and nothing happened but I'll see what I can see.
     
    853
    Posts
    3
    Years
    • Seen Nov 9, 2023
    The more I read on here, the more I realize I need to learn, but I am so excited to finally have the opportunity to create my own custom Pokemon game.

    I did have an extra space in my party, as well as an extra pokeball in my bag. I tested by feeding Nincada rare candies to level 20, in case that's relevant.

    Whenever you can find time, that would be awesome!

    So, I figured CFRU was the problem, but didn't think I'd find anything, but I did...

    check this screen shot see anything missing? -_-
    [Leon's ROM Base] Shedinja Evolution


    that function is meant to list the functions/code for each evo method in order but it completely skips shedinja and goes straight to beauty.

    Meaning there's literally no case for how to evolve shedinja included in CFRU. So its not possible.
     
    9
    Posts
    3
    Years
    • Seen Apr 27, 2024
    Rather unfortunate but that just means I have to go with the backup solution I came up with. In my rom hack, Nincada will evolve by holding the Shed Shell item instead of just plain leveling. If it happens during the day you'll get Ninjask and at night for Shedinja. It's a bit of a bummer you can't get both at once like in official games but oh well. I can always just catch a second Nincada.

    Thanks for taking the time to look into it for me!
     
    192
    Posts
    6
    Years
  • Hello!
    Sorry for the slow reply...
    Here we go!
    Before we begins, all credits is for Spherical Ice's and Sea Dragon in the Quick Research & Development
    https://www.pokecommunity.com/showthread.php?t=205158

    Same principles apply for FireRed, but the offsets are as follows:

    @ CE762 change 80 00 to C0 00 (00 01 if you expanded to 16 evolution methods, etc.)
    @ CE766 change 44 50 to 00 00

    To make Shedninja's dex entries appear, at CE858 change 54 44 to 00 00

    Link for the posts:
    https://www.pokecommunity.com/showthread.php?p=9195813#post9195813 (Part 01)
    https://www.pokecommunity.com/showthread.php?p=9491701#post9491701 (Part 02)
     
    853
    Posts
    3
    Years
    • Seen Nov 9, 2023
    Great job finding the solution DjTarma, what's crazy is I liked that post some time back apparently and completely forgot it existed.
    To make the change simpler though you can copy those byte changes directly into DPE's byte replacement file, and it will automatically make the changes whenever you make from then on.

    I can't understand right now, how the calculation is done, but its a good idea to try and figure out what the value for CE762 should be for the other possible # of evolutions too.

    But this is an excellent example of the importance of binary knowledge, since its at the byte level there are just somethings you can calculate easier with it. possibly even things that are only possible for binary even.

    If I can ever get my dang decomp to build again, I can test and see if expansion causes that issue for decomps too, or its just a dpe problem.
    Sure wish I could get this pinned for the CFRU discord... anyway I made the change to mine and went ahead and attached my edited byte replacement file below.
    (haven't done any tests yet, just added the byte changes you mentioned to the list)


    Rather unfortunate but that just means I have to go with the backup solution I came up with. In my rom hack, Nincada will evolve by holding the Shed Shell item instead of just plain leveling. If it happens during the day you'll get Ninjask and at night for Shedinja. It's a bit of a bummer you can't get both at once like in official games but oh well. I can always just catch a second Nincada.

    Thanks for taking the time to look into it for me!



     

    Attachments

    • bytereplacement.zip
      871 bytes · Views: 2
    Last edited:
    9
    Posts
    3
    Years
    • Seen Apr 27, 2024
    Thank you both for taking the time to look into my problem, you guys are awesome!
     
    Back
    Top