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!

TrollandToad.com
Reply
 
Thread Tools
  #1    
Old June 30th, 2011 (1:11 AM).
Mr.Pkmn's Avatar
Mr.Pkmn Mr.Pkmn is offline
Ordinary ASM Magician
     
    Join Date: May 2008
    Posts: 50
    "How can leveling Pokemon be made less boring?": that is the question.

    This is something that bothered me some time ago. When you complete the original game or normal difficulty hacks, your team rarely surpass lv 60. Challenging hacks may require you to grind up to lv 80-90, but the experience needed to reach those levels is 2-3 times the experience to reach lv 50, which can be very frustrating.

    So I came to the conclusion that modifying the way the game gives you the experience or the required experience to gain a level could be a way to solve this problem and speed up things (& ending the game with lv 100 pokes). Since i can't ASM hack, i chose the second way.

    Hacking the experience table
    In Fire Red, around 0x253AE8, there's a table with all the values of the experience curve function stored in double words. Different tables for the different functions (erratic, fluctuating, medium-slow ecc..) exist, leaving the possibility of creating a custom function: linear, parabolic, logarithmic, exponential (lol no), piecewise ecc...
    These functions are stored in this order:
    Quote:
    Medium-Fast
    Erratic
    Fluctuating
    Medium-Slow
    Fast
    Slow
    Medium-Fast
    Medium-Fast
    Don't ask me why there are three Medium-Fast groups (the real one is the first). This might be exploited to create new experience curves (eg: super slow only for legendaries).

    I made this video for testing purposes:




    Hacking the experience gain formula
    This area needs research, but it can potentially do neat things like give a biased value of experience based on the level like in BW, or change the equation from linear to parabolic in order to gain more experience at higher levels.


    My own implementation (Patch included)
    I've decided to simply reduce the pendency of the original curves by dividing their values by a factor which is increased as the level rises. You can see the effect with this graph (old medium-fast compared to new):

    h**p://i52.tinypic.com/2lrlu8.png

    - Little to nothing changes up to level 30+
    - The same experience required to reach lv 50 now allows you to reach lv 59
    - The total experience to reach lv 100 is now halved

    This graph shows you how the new curve follows the experience gained from battle:

    h**p://i56.tinypic.com/wv69t0.png

    Obviously this won't solve the problem of grinding at the lower levels, but you can create your own reducing factor. Please note that an excessive lowering of the needed experience to lv 100 can shorten the lifespan of your hack!
    Attached Files
    File Type: ips Fire Red - Exp Table Patch.ips‎ (3.1 KB, 26 views) (Save to Dropbox)
    Reply With Quote

    Relevant Advertising!

      #2    
    Old July 2nd, 2011 (10:46 AM).
    RHIOneAlbum RHIOneAlbum is offline
    Banned
       
      Join Date: Jun 2011
      Location: Dark Maroon City
      Nature: Serious
      Posts: 214
      Interesting way to come across the question. Usually people just make the poke on give out more exp, or add more trainers, both of which are semi good ideas. But I can also see problems with this, the faster exp groups make it hard to grow early, but easier later on. You are right that wed have to edit the entire group to make it satisfying to players. Would it glitch up though?
      Reply With Quote
        #3    
      Old July 2nd, 2011 (3:37 PM).
      Mr.Pkmn's Avatar
      Mr.Pkmn Mr.Pkmn is offline
      Ordinary ASM Magician
         
        Join Date: May 2008
        Posts: 50
        Quote:
        Originally Posted by RHIOneAlbum View Post
        Interesting way to come across the question. Usually people just make the poke on give out more exp, or add more trainers, both of which are semi good ideas. But I can also see problems with this, the faster exp groups make it hard to grow early, but easier later on. You are right that wed have to edit the entire group to make it satisfying to players. Would it glitch up though?
        This is the most flexible solution, as you can shape the curve for your own needs. My need was reaching lv 100 in a faster way. You may change all pokemon from the Erratic group to the Fast group, or generate a level curve with all values halved. The latter though retains the hard part from lv 50 to lv 100, so while it makes all things faster (especially at the beginning) you'll still have to grind a lot for the final levels.

        In a new game I haven't encountered any glitch, you can also check the video. It might create problems if you already had a save file with the old experience table though.
        Reply With Quote
          #4    
        Old July 4th, 2011 (1:02 PM).
        ~Anbuja's Avatar
        ~Anbuja ~Anbuja is offline
        Let's Keep It Simple
           
          Join Date: Oct 2010
          Location: In Snorlax Stomach
          Gender: Male
          Nature: Lonely
          Posts: 321
          to tell the truth i dont really get the point of shrinking the exp requiriment to rise the v of the pokemon how u did , i wouldt want to get an charizard lv 100 at brock the thing to train them hard and get mroe playtime is the uniqe thing at hacks for me not speeding the game to end it faster.
          but this is just my opinion
          __________________
          Reply With Quote
            #5    
          Old July 4th, 2011 (7:05 PM).
          Mr.Pkmn's Avatar
          Mr.Pkmn Mr.Pkmn is offline
          Ordinary ASM Magician
             
            Join Date: May 2008
            Posts: 50
            Quote:
            Originally Posted by Anbuja's_BlooDY View Post
            to tell the truth i dont really get the point
            You would've gotten the point if you actually read everything, not just watching the proof video.
            Reply With Quote
              #6    
            Old July 4th, 2011 (7:11 PM).
            RHIOneAlbum RHIOneAlbum is offline
            Banned
               
              Join Date: Jun 2011
              Location: Dark Maroon City
              Nature: Serious
              Posts: 214
              Aight, good discovery then. I still don't think it will take over as totally cool and standard, but nice to know that people can do this now. Good job :D
              Reply With Quote
                #7    
              Old July 4th, 2011 (8:35 PM).
              Deokishisu's Avatar
              Deokishisu Deokishisu is offline
              Mr. Magius
                 
                Join Date: Feb 2006
                Location: If I'm online, it's a safe bet I'm at a computer.
                Gender: Male
                Nature: Relaxed
                Posts: 884
                There is a minor problem that might occur with lowering the experience required to get to certain levels. When trading to games not patched with this (or the stock Nintendo games), the levels would likely be reset to whatever they would be with that amount of experience normally when deposited into a box and withdrawn, as stats and such are recalculated upon doing so. Disregard this if experience values and levels aren't recalculated similarly, as I just have a basic understanding of what values go through this check when it happens.

                EDIT: The solution would obviously be to keep the required experience to get to max level the same, and increase the amount of experience earned as a Pokemon levels, as opposed to lowering the requirements as it levels.
                Reply With Quote
                  #8    
                Old July 4th, 2011 (9:51 PM).
                Mr.Pkmn's Avatar
                Mr.Pkmn Mr.Pkmn is offline
                Ordinary ASM Magician
                   
                  Join Date: May 2008
                  Posts: 50
                  Quote:
                  Originally Posted by Deokishisu View Post
                  There is a minor problem that might occur with lowering the experience required to get to certain levels. When trading to games not patched with this (or the stock Nintendo games), the levels would likely be reset to whatever they would be with that amount of experience normally when deposited into a box and withdrawn, as stats and such are recalculated upon doing so. Disregard this if experience values and levels aren't recalculated similarly, as I just have a basic understanding of what values go through this check when it happens.

                  EDIT: The solution would obviously be to keep the required experience to get to max level the same, and increase the amount of experience earned as a Pokemon levels, as opposed to lowering the requirements as it levels.
                  I don't know if this is much of a problem since most hacks are played as standalone games. Some hacks are even more incompatible if they replaced pokemon with fakemon or modified the base stats and such.
                  Yes, the solution is hacking the experience gain formula but i don't know how we can do it. If it is SO important you can add the difference to all levels while maintaining the new experience curve. This will make lv 100 pokemon compatible with the other games.
                  Reply With Quote
                    #9    
                  Old July 5th, 2011 (6:40 AM).
                  TheDarkShark TheDarkShark is offline
                  Metal Headed Hacker
                     
                    Join Date: May 2010
                    Location: Germany
                    Gender: Male
                    Nature: Calm
                    Posts: 56
                    Hacking the formula shouldn't be as hard to do, as it seems (I hope so at least). Simply find the Pokémon's data offset in the RAM, put a break point on write to that offset and change the routine that looks like it could be the one calculating the gained EXP, if there's more than one. I'll see what I can do, but better don't trust into my ASM knowledge too much
                    __________________
                    There are two things every Rom-Hacker should learn:
                    1. Don't give away everything you know!

                    Reply With Quote
                      #10    
                    Old July 5th, 2011 (8:18 AM).
                    Jambo51's Avatar
                    Jambo51 Jambo51 is offline
                    Glory To Arstotzka
                       
                      Join Date: Jun 2009
                      Gender: Male
                      Nature: Quiet
                      Posts: 732
                      Quote:
                      Originally Posted by TheDarkShark View Post
                      Hacking the formula shouldn't be as hard to do, as it seems (I hope so at least). Simply find the Pokémon's data offset in the RAM, put a break point on write to that offset and change the routine that looks like it could be the one calculating the gained EXP, if there's more than one. I'll see what I can do, but better don't trust into my ASM knowledge too much
                      I've already managed to hack the experience formula. I will tell you right now, it's HARD. It's not laid out all nice and simple for you to find.

                      However, keeping in with this thread , I CAN tell you where the game writes the totalled up experience to (That is, the result of the Experience Formula).

                      I can't remember where in the rom exactly this happens, but the game writes the experience gain to 0x02023D50. I hope this will help people to come up with new and interesting ways of using exp gain. This is for the battle exp gain formula. The experience gaining types (slow, erratic etc) all use a LOOK UP table. I don't have the location of said table unfortunately, so you'll have to look it up yourself.

                      Hope this helps! :D
                      __________________
                      Hey guys, please check out my recreations of the gen 1 and 2 music on my custom engine at my SoundCloud! - Here!
                      Reply With Quote
                        #11    
                      Old July 6th, 2011 (1:19 AM).
                      Mr.Pkmn's Avatar
                      Mr.Pkmn Mr.Pkmn is offline
                      Ordinary ASM Magician
                         
                        Join Date: May 2008
                        Posts: 50
                        Quote:
                        Originally Posted by Jambo51 View Post
                        The experience gaining types (slow, erratic etc) all use a LOOK UP table. I don't have the location of said table unfortunately, so you'll have to look it up yourself.
                        If i didn't know i wouldn't have opened this topic
                        Reply With Quote
                          #12    
                        Old July 6th, 2011 (4:45 AM).
                        Jambo51's Avatar
                        Jambo51 Jambo51 is offline
                        Glory To Arstotzka
                           
                          Join Date: Jun 2009
                          Gender: Male
                          Nature: Quiet
                          Posts: 732
                          Quote:
                          Originally Posted by Mr.Pkmn View Post
                          If i didn't know i wouldn't have opened this topic
                          Yeah, I noticed you'd posted the table location after I posted my post. Hope the offset I provided helps though!
                          __________________
                          Hey guys, please check out my recreations of the gen 1 and 2 music on my custom engine at my SoundCloud! - Here!
                          Reply With Quote
                            #13    
                          Old January 25th, 2014 (8:14 AM).
                          wael96 wael96 is offline
                             
                            Join Date: Jul 2013
                            Location: Beijing,China
                            Gender: Male
                            Posts: 38
                            ...This is my result after beating the rival
                            http://user.qzone.qq.com/2992510925/4
                            Reply With Quote
                            Reply

                            Quick Reply

                            Join the conversation!

                            Create an account to post a reply in this thread, participate in other discussions, and more!

                            Create a PokéCommunity Account

                            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 11:36 PM.