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!

Draconius GO
Reply
 
Thread Tools
  #51    
Old December 6th, 2015 (2:35 AM).
Spherical Ice's Avatar
Spherical Ice Spherical Ice is offline
  • Crystal Tier
 
Join Date: Nov 2007
Location: Bristol, UK
Age: 19
Posts: 5,235
Quote:
Originally Posted by BluRose View Post
One thing that sticks out in my mind is that the lower priorities are the highest values...
In that case, FE does not represent 254, as the format is in two's complement. So FE is actually representing -2.
__________________

A Pokemon that is discriminated!
Support squirtle and make it everyone's favourite.
Reply With Quote

Relevant Advertising!

  #52    
Old December 6th, 2015 (3:28 AM).
Achromatic's Avatar
Achromatic Achromatic is online now
i don't have a user title
  • Crystal Tier
 
Join Date: Nov 2009
Gender: Male
Nature: Bold
Posts: 13,682
Just saw this. FBI, I had no idea you were capable of all this stuff. Sounds exciting though and can't wait to see how it turns out. 8)
__________________
Former PC Super Friend
Fun Thread Templates
Reply With Quote
  #53    
Old December 6th, 2015 (6:12 AM).
BluRose BluRose is offline
blu rass
     
    Join Date: Apr 2014
    Location: hyakkoku city
    Age: 16
    Gender: Male
    Nature: Timid
    Posts: 721
    Quote:
    Originally Posted by DizzyEgg View Post
    Got it. One more thing. Bluerose explained the difference between accuracy and "effect_accuracy" which is the chance of the secondary effect happening. Though, how will you know which effect to apply? In vanilla games, there is one more byte responsible for the effect, for example 0x11 nay be the chance of paralyzing and 0x12 the chance of poisoning.
    That would be the "script_id", likely referring to the Battle Script. However, he told me (and then linked to all) to leave that field "empty" (0x0) for all moves.
    I don't know, but I'll bet that FBI wants to entirely redo the effects and such so that we might be able to add more effects later on (from the OP: "It'd mean that battle scripting is also not going to be needed for Fire Red hacking, as you can just add to the source.")
    We'll probably have to go through all of these moves and then add on the Script ID later or something. Or maybe he's going to have the effects set in stone by their IDs and controlled by some code elsewhere? I don't know, haha...

    Two other things:
    http://bulbapedia.bulbagarden.net/wiki/Move_data_structure_in_Generation_III
    And one other thing to keep in mind is that we'll have to fix a few of the bugs in the original games (one that comes to mind is that the charging turn for Focus Punch has a higher priority than switching out, which can cause your Pokémon to use it before switching out in a Double Battle).
    __________________
    am i cool yet
    Reply With Quote
      #54    
    Old December 6th, 2015 (8:31 AM).
    Jambo51's Avatar
    Jambo51 Jambo51 is offline
    Glory To Arstotzka
       
      Join Date: Jun 2009
      Gender: Male
      Nature: Quiet
      Posts: 732
      Kleenexfeu has just told me about this, and I am definitely interested in helping or getting involved - especially since I need a battle engine myself and it makes sense to have the same battle engine at the core of my engine and your FireRed proposal.

      I can worry about porting it to C++ and to match with my engine, so I'm not worried about that.
      __________________
      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
        #55    
      Old December 6th, 2015 (10:38 AM).
      FBI's Avatar
      FBI FBI is offline
      Free supporter
      • Silver Tier
       
      Join Date: Jan 2013
      Location: Unknown Island
      Gender: Male
      Posts: 1,812
      Quote:
      Originally Posted by BluRose View Post
      I don't believe FBI answered the "this and accuracy" question, only really saying that it should be equal in the case of Acid Armor, which is true.
      "Effect Accuracy" is going to be the chance of the secondary effect happening. It should be 0 for Acid Armor because Acid Armor doesn't have a secondary effect. For example, Aurora Beam--a move with a 10% chance of lowering attack--has a table that should look something like this (correct me if I'm wrong, someone):
      Code:
      struct move_table {
          u8 script_id; 0x00
          u8 base_power; 0x41
          u8 type; 0x0F //I don't have a tool with me so going off of memmory here for ice type
          u8 accuracy; 0x64
          u8 PP; 0x14
          u8 effect_accuracy; 0x0A //10% chance of lowering attack
          u8 affected_targets; 0x00
          u8 priority; 0x0
          u8 contact : 0;
          u8 protect : 1;
          u8 magic_coat : 0;
          u8 snatch : 0;
          u8 mirror_move : 1;
          u8 kings_2,k : 1;
          u8 crit_chance : 0;
          u8 padding_field : 0;
          u8 is_special; 0x1
          u16 move_id; 0x3E //again, no tool, going off of memory here
      };
      And, also, Gen 3 Tools has a Move Editor which has the full list of priorities~ One thing that sticks out in my mind is that the lower priorities are the highest values...
      And, the "padding_field" is just filler to make the bitfield 8 bits, right?
      Yeah, padding is just padding. As for negative priorities, can you post a table for a negative move? I might have to change some fields to be signed depending on the values. Thanks for clarifying the accuracy thing btw.

      Quote:
      Originally Posted by DizzyEgg View Post
      Got it. One more thing. Bluerose explained the difference between accuracy and "effect_accuracy" which is the chance of the secondary effect happening. Though, how will you know which effect to apply? In vanilla games, there is one more byte responsible for the effect, for example 0x11 nay be the chance of paralyzing and 0x12 the chance of poisoning.
      Doesn't even matter. That'd be done in the move specific battle script. I don't think you can change say, that thunder applies paralysis in a tool can you? If the answer is no, the we'll just put it into the move script.

      Quote:
      Originally Posted by Achromatic View Post
      Just saw this. FBI, I had no idea you were capable of all this stuff. Sounds exciting though and can't wait to see how it turns out. 8)
      Thanks :D

      Quote:
      Originally Posted by BluRose View Post
      That would be the "script_id", likely referring to the Battle Script. However, he told me (and then linked to all) to leave that field "empty" (0x0) for all moves.
      I don't know, but I'll bet that FBI wants to entirely redo the effects and such so that we might be able to add more effects later on (from the OP: "It'd mean that battle scripting is also not going to be needed for Fire Red hacking, as you can just add to the source.")
      We'll probably have to go through all of these moves and then add on the Script ID later or something. Or maybe he's going to have the effects set in stone by their IDs and controlled by some code elsewhere? I don't know, haha...

      Two other things:
      http://bulbapedia.bulbagarden.net/wiki/Move_data_structure_in_Generation_III
      And one other thing to keep in mind is that we'll have to fix a few of the bugs in the original games (one that comes to mind is that the charging turn for Focus Punch has a higher priority than switching out, which can cause your Pokémon to use it before switching out in a Double Battle).
      This is kind of a design issue I've been tinkering with. I'm unsure if I should make a dual task based system, or an invested callbacks system :/

      This is sort of what I'm looking at:
      Code:
      Setup (task):
      	- Graphics set up BGs
      	- Object sliding
      	- Battle_init -> set map load/exit callbacks/structs for battle
      	- del(setup)
      
      Battle (task):
      	- Turn counter ++
      	- Trainer was challenged/run send out anims for each side (BS)
      	- player pick move to use
      	- AIs pick move to use
      	- execute moves -> Run "battle script" tasks for move
      	- update battle field
      	- check battle is over -> end (captured, frontier mode loss, dex, money, revert forms, ect)
      	- give exp, learn move, evolve checks
      	Back to turn counter ++
      
      Battle End:
      	- free resources
      	- exit to map
      In doing it this way, we need to exit to the main loop to update things, so you'll need a dual task-system. One for the entire "loop" and another for the battle script. I've left out a lot of detail in this pseudo frame, just to keep it simple.

      So there won't be classic BS commands, and I don't think existing BS commands would be compatible since the RAM data structures are completely different and some of the ROM tables have been reworked as well. In any case, I imagine making a library of functions and in the BS you just call a series of them for the behavior you want. I'll be extracting a lot of the resources from the default game in regards to this.

      Quote:
      We'll probably have to go through all of these moves and then add on the Script ID later or something.
      Yeah, since we haven't made a move script table yet, nor have we started to. If someone wanted to go ahead and do that, you can :/

      Quote:
      Originally Posted by Jambo51 View Post
      Kleenexfeu has just told me about this, and I am definitely interested in helping or getting involved - especially since I need a battle engine myself and it makes sense to have the same battle engine at the core of my engine and your FireRed proposal.

      I can worry about porting it to C++ and to match with my engine, so I'm not worried about that.
      Hey Jambo! I look forward to your contributions :D


      ---

      I apologize for the lack of updates these past couple of days. I've been hooked into watching shows, but I marathon-ed them all , so I'll get back to work shortly. There are some unpushed changes which I'll get to pusing as well.
      __________________
      ...
      Reply With Quote
        #56    
      Old December 6th, 2015 (11:58 AM). Edited December 6th, 2015 by BluRose.
      BluRose BluRose is offline
      blu rass
         
        Join Date: Apr 2014
        Location: hyakkoku city
        Age: 16
        Gender: Male
        Nature: Timid
        Posts: 721
        Quote:
        Originally Posted by FBI View Post
        Yeah, padding is just padding. As for negative priorities, can you post a table for a negative move? I might have to change some fields to be signed depending on the values. Thanks for clarifying the accuracy thing btw.

        Doesn't even matter. That'd be done in the move specific battle script. I don't think you can change say, that thunder applies paralysis in a tool can you? If the answer is no, the we'll just put it into the move script.
        Spoiler:



        Thanks :D



        This is kind of a design issue I've been tinkering with. I'm unsure if I should make a dual task based system, or an invested callbacks system :/

        This is sort of what I'm looking at:
        Code:
        Setup (task):
        	- Graphics set up BGs
        	- Object sliding
        	- Battle_init -> set map load/exit callbacks/structs for battle
        	- del(setup)
        
        Battle (task):
        	- Turn counter ++
        	- Trainer was challenged/run send out anims for each side (BS)
        	- player pick move to use
        	- AIs pick move to use
        	- execute moves -> Run "battle script" tasks for move
        	- update battle field
        	- check battle is over -> end (captured, frontier mode loss, dex, money, revert forms, ect)
        	- give exp, learn move, evolve checks
        	Back to turn counter ++
        
        Battle End:
        	- free resources
        	- exit to map
        In doing it this way, we need to exit to the main loop to update things, so you'll need a dual task-system. One for the entire "loop" and another for the battle script. I've left out a lot of detail in this pseudo frame, just to keep it simple.

        So there won't be classic BS commands, and I don't think existing BS commands would be compatible since the RAM data structures are completely different and some of the ROM tables have been reworked as well. In any case, I imagine making a library of functions and in the BS you just call a series of them for the behavior you want. I'll be extracting a lot of the resources from the default game in regards to this.

        Yeah, since we haven't made a move script table yet, nor have we started to. If someone wanted to go ahead and do that, you can :/
        Spoiler:



        Hey Jambo! I look forward to your contributions :D


        ---

        I apologize for the lack of updates these past couple of days. I've been hooked into watching shows, but I marathon-ed them all , so I'll get back to work shortly. There are some unpushed changes which I'll get to pusing as well.
        Well, here's one for Vital Throw:
        Spoiler:
        Vital Throw:
        Code:
        struct move_table {
            u8 script_id; 0x0
            u8 base_power; 0x46
            u8 type; 0x2
            u8 accuracy; 0x64
            u8 PP; 0xA
            u8 effect_accuracy; 0x0
            u8 affected_targets; 0x0
            u8 priority; 0xFF //-1 priority*
            u8 contact : 1;
            u8 protect : 1;
            u8 mirror_move: 1;
            u8 snatch: 0;
            u8 mirror_coat: 0;
            u8 kings_2,k : 1;
            u8 crit_chance : 0;
            u8 padding_field : 0;
            u8 is_special; 0x0
            u16 move_id; 0xE9
        };
        
        script:
        Vital Throw, 0x0, 0x46, 0x2, 0x64, 0xA, 0x0, 0x0, 0xFF, 0x27, 0x0, 0xE9
        
        //* negative priories:  FF=-1, FE=-2, FD=-3, etc., like Spherical Ice said earlier (and according to the Bulbapedia article on Priority combined with values shown G3T)


        We can change that Thunder applies paralysis in a tool, but it's via changing its move script. For example, both Thunder and Thunderbolt have the same move script, and that is to apply Paralysis to the target and then be directed to the normal damage. Ice Beam and Blizzard do, too, except Blizzard has to be modified to Gen IV and above standards, which state that Blizzard has 100% accuracy while Hailing.

        *misses BSP already*

        DizzyEgg and I are working on the python Move Scripts but have not begun on tables.
        What do you mean by the Move Script Table, then? Just a bunch of values that correspond to a script that does a certain thing (for example, -Accuracy Script, +Attack Script, Paralysis Chance Script, etc.)?

        EDIT: ACTUALLY, Thunder has its own specific move script which tells us that, if raining, then the accuracy is 100%. Then it goes to the Paralysis one which goes to the damaging one. But Blizzard does actually have the exact same effect as Ice Beam in Generation III.

        EDIT EDIT: Also, are you going to make it so that a value of 0x0 for accuracy never misses, like in Vanilla? Or should we just make it 0xFF to make it simpler?

        EDIT EDIT EDIT: Lastly, do we want to use the padding byte in the bitfield to account for Brightpowder? The only reason I ask is that only a little over half (~11:8 ratio) of the moves are affected by Brightpowder (at least, in Generation III, I have no idea about VI). Bulbapedia states, however, along with Smogon, that Brightpowder just increases Evasiveness in total by 10%, so I really don't know.

        FINAL EDIT: First batch of 51 move bytes from the end (Psycho Boost):
        These do not account for possible changes to the padding at the end of the bitfield based off of Brightpowder.
        Spoiler:
        Code:
        Meteor Mash, 0x0, 0x64, 0x8, 0x55, 0xA, 0x14, 0x0, 0x0, 0x33, 0x0, 0x135
        Astonish, 0x0, 0x1E, 0x7, 0x64, 0xF, 0x1E, 0x0, 0x0, 0x13, 0x0, 0x136
        Weather Ball, 0x0, 0x32, 0x0, 0x64, 0xA, 0x0, 0x0, 0x0, 0x32, 0x1, 0x137
        Aromatherapy, 0x0, 0x0, 0xC, 0x0, 0x5, 0x0, 0x10, 0x0, 0x8, 0x2, 0x138
        Fake Tears, 0x0, 0x0, 0x11, 0x64, 0x14, 0x0, 0x0, 0x0, 0x16, 0x2, 0x139
        Air Cutter, 0x0, 0x37, 0x2, 0x5F, 0x19, 0x0, 0x8, 0x0, 0x32, 0x1, 0x13A
        Overheat, 0x0, 0x8C, 0xA, 0x5A, 0x5, 0x64, 0x0, 0x0, 0x33, 0x1, 0x13B
        Odor Sleuth, 0x0, 0x0, 0x0, 0x64, 0x28, 0x0, 0x0, 0x0, 0x12, 0x2, 0x13C
        Rock Tomb, 0x0, 0x32, 0x5, 0x50, 0xA, 0x64, 0x0, 0x0, 0x12, 0x0, 0x13D
        Silver Wind, 0x0, 0x3C, 0x6, 0x64, 0x5, 0xA, 0x0, 0x0, 0x32, 0x1, 0x13E
        Metal Sound, 0x0, 0x0, 0x8, 0x55, 0x28, 0x0, 0x0, 0x0, 0x16, 0x2, 0x13F
        GrassWhistle, 0x0, 0x0, 0xC, 0x37, 0xF, 0x0, 0x0, 0x0, 0x16, 0x2, 0x140
        Tickle, 0x0, 0x0, 0x0, 0x64, 0x14, 0x0, 0x0, 0x0, 0x36, 0x2, 0x141
        Cosmic Power, 0x0, 0x0, 0xE, 0x0, 0x14, 0x0, 0x10, 0x0, 0x8, 0x2, 0x142
        Water Spout, 0x0, 0x96, 0xB, 0x64, 0x5, 0x0, 0x8, 0x0, 0x12, 0x1, 0x143
        Signal Beam, 0x0, 0x4B, 0x6, 0x64, 0xF, 0xA, 0x0, 0x0, 0x32, 0x1, 0x144
        Shadow Punch, 0x0, 0x3C, 0x7, 0x0, 0x14, 0x0, 0x0, 0x0, 0x33, 0x0, 0x145
        Extrasensory, 0x0, 0x50, 0xE, 0x64, 0x1E, 0xA, 0x0, 0x0, 0x12, 0x1, 0x146
        Sky Uppercut, 0x0, 0x55, 0x1, 0x5A, 0xF, 0x0, 0x0, 0x0, 0x33, 0x0, 0x147
        Sand Tomb, 0x0, 0xF, 0x4, 0x46, 0xF, 0x64, 0x0, 0x0, 0x32, 0x1, 0x148
        Sheer Cold, 0x0, 0x1, 0xF, 0x1E, 0x5, 0x0, 0x0, 0x0, 0x12, 0x1, 0x149
        Muddy Water, 0x0, 0x5F, 0xB, 0x55, 0xA, 0x1E, 0x20, 0x0, 0x32, 0x1, 0x14A
        Bullet Seed, 0x0, 0xA, 0xC, 0x64, 0x1E, 0x0, 0x0, 0x0, 0x32, 0x0, 0x14B
        Aerial Ace, 0x0, 0x3C, 0x2, 0x0, 0x14, 0x0, 0x0, 0x0, 0x33, 0x0, 0x14C
        Icicle Spear, 0x0, 0xA, 0xF, 0x64, 0x1E, 0x0, 0x0, 0x0, 0x32, 0x0, 0x14D
        Iron Defense, 0x0, 0x0, 0x8, 0x0, 0xF, 0x0, 0x10, 0x0, 0x8, 0x2, 0x14E
        Block, 0x0, 0x0, 0x0, 0x64, 0x5, 0x0, 0x0, 0x0, 0x16, 0x2, 0x14F
        Howl, 0x0, 0x0, 0x0, 0x0, 0x28, 0x0, 0x10, 0x0, 0x8, 0x2, 0x150
        Dragon Claw, 0x0, 0x50, 0x10, 0x64, 0xF, 0x0, 0x0, 0x0, 0x33, 0x0, 0x151
        Frenzy Plant, 0x0, 0x96, 0xC, 0x5A, 0x5, 0x0, 0x0, 0x0, 0x32, 0x1, 0x152
        Bulk Up, 0x0, 0x0, 0x1, 0x0, 0x14, 0x0, 0x10, 0x0, 0x8, 0x2, 0x153
        Bounce, 0x0, 0x55, 0x2, 0x55, 0x5, 0x1E, 0x0, 0x0, 0x33, 0x0, 0x154
        Mud Shot, 0x0, 0x37, 0x4, 0x5F, 0xF, 0x64, 0x0, 0x0, 0x32, 0x1, 0x155
        Poison Tail, 0x0, 0x32, 0x3, 0x64, 0x19, 0xA, 0x0, 0x0, 0x73, 0x0, 0x156
        Covet, 0x0, 0x28, 0x0, 0x64, 0x28, 0x64, 0x, 0x0, 0x13, 0x0, 0x157
        Volt Tackle, 0x0, 0x78, 0xD, 0x64, 0xF, 0x0, 0x0, 0x0, 0x33, 0x1, 0x158
        Magical Leaf, 0x0, 0x3C, 0xC, 0x0, 0x14, 0x0, 0x0, 0x0, 0x32, 0x2, 0x159
        Water Sport, 0x0, 0x0, 0xB, 0x64, 0xF, 0x0, 0x10, 0x0, 0x0, 0x2, 0x15A
        Calm Mind, 0x0, 0x0, 0xE, 0x0, 0x14, 0x0, 0x10, 0x0, 0x8, 0x2, 0x15B
        Leaf Blade, 0x0, 0x46, 0xC, 0x64, 0xF, 0x0, 0x0, 0x0, 0x73, 0x0, 0x15C
        Dragon Dance, 0x0, 0x0, 0x10, 0x0, 0x14, 0x0, 0x10, 0x0, 0x8, 0x2, 0x15D
        Rock Blast, 0x0, 0x19, 0x5, 0x50, 0xA, 0x0, 0x0, 0x0, 0x32, 0x0, 0x15E
        Shock Wave, 0x0, 0x3C, 0xD, 0x0, 0x14, 0x0, 0x0, 0x0, 0x32, 0x1, 0x15F
        Water Pulse, 0x0, 0x3C, 0xB, 0x64, 0x14, 0x14, 0x0, 0x0, 0x32, 0x1, 0x160
        Doom Desire, 0x0, 0x94, 0x78, 0x8, 0x55, 0x5, 0x0, 0x0, 0x0, 0x1, 0x161
        Psycho Boost, 0x0, 0x8C, 0xE, 0x5A, 0x5, 0x64, 0x0, 0x0, 0x32, 0x1, 0x162
        __________________
        am i cool yet
        Reply With Quote
          #57    
        Old December 6th, 2015 (9:18 PM).
        FBI's Avatar
        FBI FBI is offline
        Free supporter
        • Silver Tier
         
        Join Date: Jan 2013
        Location: Unknown Island
        Gender: Male
        Posts: 1,812
        Quote:
        Originally Posted by BluRose View Post
        I are working on the python Move Scripts but have not begun on tables.
        What do you mean by the Move Script Table, then? Just a bunch of values that correspond to a script that does a certain thing (for example, -Accuracy Script, +Attack Script, Paralysis Chance Script, etc.)?
        Firstly, I'd like to let you know I got 12 notifications from this post, lol.
        What do you mean Python move scripts? Python is only used for generating the tables and #define files ect. I'm not using python for anything beyond building, inserting and generation! As for what I mean by move script table, is it's a table of move commands/functions.

        Code:
        Move table format in ROM:
        [4 byte func ptr][4 byte func ptr][4 byte func ptr] ...
        The script_id field is a number which associates to an element in the aforementioned table.
        Moves with 0x0 as the script ID = no effect. The effect will be a standard portion of code which is run, all that does is run the damage calculator using the move power (will not consider secondary effects outside of ability). If it's not 0x0, then a custom script will be run based on the number. All status moves, and moves with secondary effects would call the function with ID = 0, plus some other effects. Easy, right?

        Quote:
        EDIT EDIT: Also, are you going to make it so that a value of 0x0 for accuracy never misses, like in Vanilla? Or should we just make it 0xFF to make it simpler?
        It doesn't really matter, but lets make it higher than 0. Since [0-100] is the normal bounds of a move's chance to hit, it makes logical sense for a move to never miss to have an accuracy value outside that scope. I would just use if accuracy > 100. So anything over 100 is fine.

        Quote:
        EDIT EDIT EDIT: Lastly, do we want to use the padding byte in the bitfield to account for Brightpowder? The only reason I ask is that only a little over half (~11:8 ratio) of the moves are affected by Brightpowder (at least, in Generation III, I have no idea about VI). Bulbapedia states, however, along with Smogon, that Brightpowder just increases Evasiveness in total by 10%, so I really don't know.
        Sure. Use the padding as you want, it's just padding. Let me know of any changes you make to the move struct though (you can add more fields if you wish, once again let me know!).
        __________________
        ...
        Reply With Quote
          #58    
        Old December 7th, 2015 (1:19 AM).
        PokemonBen's Avatar
        PokemonBen PokemonBen is offline
        Kanto Champion
           
          Join Date: Nov 2015
          Location: England
          Gender: Male
          Nature: Quirky
          Posts: 60
          Okay, this seems a lot more complicated then what I thought you wanted people to do. No wonder I was getting confused.

          Wish I could help, but learning C# on Youtube means info goes in one ear and out the other.
          Reply With Quote
            #59    
          Old December 7th, 2015 (4:41 AM).
          BluRose BluRose is offline
          blu rass
             
            Join Date: Apr 2014
            Location: hyakkoku city
            Age: 16
            Gender: Male
            Nature: Timid
            Posts: 721
            Quote:
            Originally Posted by FBI View Post
            Firstly, I'd like to let you know I got 12 notifications from this post, lol.
            What do you mean Python move scripts? Python is only used for generating the tables and #define files ect. I'm not using python for anything beyond building, inserting and generation! As for what I mean by move script table, is it's a table of move commands/functions.

            Code:
            Move table format in ROM:
            [4 byte func ptr][4 byte func ptr][4 byte func ptr] ...
            The script_id field is a number which associates to an element in the aforementioned table.
            Moves with 0x0 as the script ID = no effect. The effect will be a standard portion of code which is run, all that does is run the damage calculator using the move power (will not consider secondary effects outside of ability). If it's not 0x0, then a custom script will be run based on the number. All status moves, and moves with secondary effects would call the function with ID = 0, plus some other effects. Easy, right?

            It doesn't really matter, but lets make it higher than 0. Since [0-100] is the normal bounds of a move's chance to hit, it makes logical sense for a move to never miss to have an accuracy value outside that scope. I would just use if accuracy > 100. So anything over 100 is fine.

            Sure. Use the padding as you want, it's just padding. Let me know of any changes you make to the move struct though (you can add more fields if you wish, once again let me know!).
            Oh, really? I'll try to edit less, then...
            *never uses programming jargon again*
            Okay, then...
            Either way, the big block of 51 moves should be good, even if I use the wrong terminology to describe it.

            Just like vanilla, no? In which a script ID of 0 just makes it use a move that calculates the damage and then applies it to the opponent, and then everything else has a different effect. Do we want to rewrite the AI or do we want to keep to the original move script table?

            The thing then comes to mind would then be if you are going to make programming exceptions due to the accuracy above 100--for example, would it display in the Summary as, say 255 Accuracy instead of the hyphen that is usually present? And, eventually, would it be able to miss due to enough Sand-Attacks (.25 modifier (I believe 6 Sand-Attacks) makes a base of 255% accuracy down to 63.75% accuracy, less reliable than Focus Blast)?

            I'm so sorry for these questions, by the way, and thanks for answering all of them thus far...
            __________________
            am i cool yet
            Reply With Quote
              #60    
            Old December 7th, 2015 (5:54 AM). Edited December 7th, 2015 by DizzyEgg.
            DizzyEgg's Avatar
            DizzyEgg DizzyEgg is offline
               
              Join Date: Feb 2014
              Location: Poland
              Age: 20
              Gender: Male
              Nature: Quiet
              Posts: 716
              Quote:
              Originally Posted by BluRose View Post

              EDIT EDIT EDIT: Lastly, do we want to use the padding byte in the bitfield to account for Brightpowder? The only reason I ask is that only a little over half (~11:8 ratio) of the moves are affected by Brightpowder (at least, in Generation III, I have no idea about VI). Bulbapedia states, however, along with Smogon, that Brightpowder just increases Evasiveness in total by 10%, so I really don't know.

              FINAL EDIT: First batch of 51 move bytes from the end (Psycho Boost):
              These do not account for possible changes to the padding at the end of the bitfield based off of Brightpowder.
              Look at Doom Desire, third byte.
              Spoiler:
              Code:
              Meteor Mash, 0x0, 0x64, 0x8, 0x55, 0xA, 0x14, 0x0, 0x0, 0x33, 0x0, 0x135
              Astonish, 0x0, 0x1E, 0x7, 0x64, 0xF, 0x1E, 0x0, 0x0, 0x13, 0x0, 0x136
              Weather Ball, 0x0, 0x32, 0x0, 0x64, 0xA, 0x0, 0x0, 0x0, 0x32, 0x1, 0x137
              Aromatherapy, 0x0, 0x0, 0xC, 0x0, 0x5, 0x0, 0x10, 0x0, 0x8, 0x2, 0x138
              Fake Tears, 0x0, 0x0, 0x11, 0x64, 0x14, 0x0, 0x0, 0x0, 0x16, 0x2, 0x139
              Air Cutter, 0x0, 0x37, 0x2, 0x5F, 0x19, 0x0, 0x8, 0x0, 0x32, 0x1, 0x13A
              Overheat, 0x0, 0x8C, 0xA, 0x5A, 0x5, 0x64, 0x0, 0x0, 0x33, 0x1, 0x13B
              Odor Sleuth, 0x0, 0x0, 0x0, 0x64, 0x28, 0x0, 0x0, 0x0, 0x12, 0x2, 0x13C
              Rock Tomb, 0x0, 0x32, 0x5, 0x50, 0xA, 0x64, 0x0, 0x0, 0x12, 0x0, 0x13D
              Silver Wind, 0x0, 0x3C, 0x6, 0x64, 0x5, 0xA, 0x0, 0x0, 0x32, 0x1, 0x13E
              Metal Sound, 0x0, 0x0, 0x8, 0x55, 0x28, 0x0, 0x0, 0x0, 0x16, 0x2, 0x13F
              GrassWhistle, 0x0, 0x0, 0xC, 0x37, 0xF, 0x0, 0x0, 0x0, 0x16, 0x2, 0x140
              Tickle, 0x0, 0x0, 0x0, 0x64, 0x14, 0x0, 0x0, 0x0, 0x36, 0x2, 0x141
              Cosmic Power, 0x0, 0x0, 0xE, 0x0, 0x14, 0x0, 0x10, 0x0, 0x8, 0x2, 0x142
              Water Spout, 0x0, 0x96, 0xB, 0x64, 0x5, 0x0, 0x8, 0x0, 0x12, 0x1, 0x143
              Signal Beam, 0x0, 0x4B, 0x6, 0x64, 0xF, 0xA, 0x0, 0x0, 0x32, 0x1, 0x144
              Shadow Punch, 0x0, 0x3C, 0x7, 0x0, 0x14, 0x0, 0x0, 0x0, 0x33, 0x0, 0x145
              Extrasensory, 0x0, 0x50, 0xE, 0x64, 0x1E, 0xA, 0x0, 0x0, 0x12, 0x1, 0x146
              Sky Uppercut, 0x0, 0x55, 0x1, 0x5A, 0xF, 0x0, 0x0, 0x0, 0x33, 0x0, 0x147
              Sand Tomb, 0x0, 0xF, 0x4, 0x46, 0xF, 0x64, 0x0, 0x0, 0x32, 0x1, 0x148
              Sheer Cold, 0x0, 0x1, 0xF, 0x1E, 0x5, 0x0, 0x0, 0x0, 0x12, 0x1, 0x149
              Muddy Water, 0x0, 0x5F, 0xB, 0x55, 0xA, 0x1E, 0x20, 0x0, 0x32, 0x1, 0x14A
              Bullet Seed, 0x0, 0xA, 0xC, 0x64, 0x1E, 0x0, 0x0, 0x0, 0x32, 0x0, 0x14B
              Aerial Ace, 0x0, 0x3C, 0x2, 0x0, 0x14, 0x0, 0x0, 0x0, 0x33, 0x0, 0x14C
              Icicle Spear, 0x0, 0xA, 0xF, 0x64, 0x1E, 0x0, 0x0, 0x0, 0x32, 0x0, 0x14D
              Iron Defense, 0x0, 0x0, 0x8, 0x0, 0xF, 0x0, 0x10, 0x0, 0x8, 0x2, 0x14E
              Block, 0x0, 0x0, 0x0, 0x64, 0x5, 0x0, 0x0, 0x0, 0x16, 0x2, 0x14F
              Howl, 0x0, 0x0, 0x0, 0x0, 0x28, 0x0, 0x10, 0x0, 0x8, 0x2, 0x150
              Dragon Claw, 0x0, 0x50, 0x10, 0x64, 0xF, 0x0, 0x0, 0x0, 0x33, 0x0, 0x151
              Frenzy Plant, 0x0, 0x96, 0xC, 0x5A, 0x5, 0x0, 0x0, 0x0, 0x32, 0x1, 0x152
              Bulk Up, 0x0, 0x0, 0x1, 0x0, 0x14, 0x0, 0x10, 0x0, 0x8, 0x2, 0x153
              Bounce, 0x0, 0x55, 0x2, 0x55, 0x5, 0x1E, 0x0, 0x0, 0x33, 0x0, 0x154
              Mud Shot, 0x0, 0x37, 0x4, 0x5F, 0xF, 0x64, 0x0, 0x0, 0x32, 0x1, 0x155
              Poison Tail, 0x0, 0x32, 0x3, 0x64, 0x19, 0xA, 0x0, 0x0, 0x73, 0x0, 0x156
              Covet, 0x0, 0x28, 0x0, 0x64, 0x28, 0x64, 0x, 0x0, 0x13, 0x0, 0x157
              Volt Tackle, 0x0, 0x78, 0xD, 0x64, 0xF, 0x0, 0x0, 0x0, 0x33, 0x1, 0x158
              Magical Leaf, 0x0, 0x3C, 0xC, 0x0, 0x14, 0x0, 0x0, 0x0, 0x32, 0x2, 0x159
              Water Sport, 0x0, 0x0, 0xB, 0x64, 0xF, 0x0, 0x10, 0x0, 0x0, 0x2, 0x15A
              Calm Mind, 0x0, 0x0, 0xE, 0x0, 0x14, 0x0, 0x10, 0x0, 0x8, 0x2, 0x15B
              Leaf Blade, 0x0, 0x46, 0xC, 0x64, 0xF, 0x0, 0x0, 0x0, 0x73, 0x0, 0x15C
              Dragon Dance, 0x0, 0x0, 0x10, 0x0, 0x14, 0x0, 0x10, 0x0, 0x8, 0x2, 0x15D
              Rock Blast, 0x0, 0x19, 0x5, 0x50, 0xA, 0x0, 0x0, 0x0, 0x32, 0x0, 0x15E
              Shock Wave, 0x0, 0x3C, 0xD, 0x0, 0x14, 0x0, 0x0, 0x0, 0x32, 0x1, 0x15F
              Water Pulse, 0x0, 0x3C, 0xB, 0x64, 0x14, 0x14, 0x0, 0x0, 0x32, 0x1, 0x160
              Doom Desire, 0x0, 0x94, 0x78, 0x8, 0x55, 0x5, 0x0, 0x0, 0x0, 0x1, 0x161
              Psycho Boost, 0x0, 0x8C, 0xE, 0x5A, 0x5, 0x64, 0x0, 0x0, 0x32, 0x1, 0x162
              I don't think we should use padding to account for brightpowder as its effect is now different than it was in gen III. Currently, it boosts evasion of the holder by 10%.

              Also, for anyone who wants to help with the move table. Me and BluRose are working on moves from genI,II and III, so starting from IV might be a good idea. And please keep the same format as BluRose.
              __________________
              Support Pokeruby!

              My works:
              Battle Engine Upgrade
              Pokemon Expansion
              Items/TMs/Tutors Expansion
              Various Features(Evo Methods, BW Repel, Levels Above 100, Trainers with EV, Nature Colored Stats)

              Emerald Features:
              Form Changes (KDS)
              Reply With Quote
                #61    
              Old December 7th, 2015 (12:47 PM). Edited December 7th, 2015 by BluRose.
              BluRose BluRose is offline
              blu rass
                 
                Join Date: Apr 2014
                Location: hyakkoku city
                Age: 16
                Gender: Male
                Nature: Timid
                Posts: 721
                Quote:
                Originally Posted by DizzyEgg View Post
                I don't we should use padding to account for brightpowder as its effect is now different than it was in gen III. Currently, it boosts evasion of the holder by 10%.

                Also, for anyone who wants to help with the move table. Me and BluRose are working on moves from genI,II and III, so starting from IV might be a good idea. And please keep the same format as BluRose.
                Got it~

                Format referred to:
                Spoiler:
                Code:
                Move name, script_id, base_power, type, accuracy, PP, effect_chance, target, priority, bitfield, is_special, move_id
                
                As of the moment, make sure that the "script_id" is 0, as we have not set up a Move Scripts table yet.  Priority is for moves that, well, have priority, and is a signed value, meaning that the values above 0x80 (128) will be negative, counting down from 0xFF (255) (0xFF/255=-1, 0xFE/254=-2, 0xFD/253=-3, etc.).  The "is_special" value is either 0=physical, 1=special, or 2=status.  And, the bitfield will be a set of true/false statements like so:
                
                padding: //always 0
                critical chance: //whether or not the move has a high critical-hit ratio
                king's rock: //whether or not the move is affected by the king's rock
                mirror move: //whether or not the move is affected by mirror move
                snatch: //whether or not the move is affected by snatch
                magic coat: //whether or not the move is affected by magic coat
                protect: //whether or not the move is affected by protect
                contact: //whether or not it makes contact with the foe
                
                And, for example, most Special Moves have the following bitfield:
                
                padding: 0
                critical chance: 0
                king's rock: 1
                mirror move: 1
                snatch: 0
                magic coat: 0
                protect: 1
                contact: 0
                
                which gives us 00110010 in binary.  Our favorite Windows/online Calculator tells us that that is equal to 0x32/50, and this is the value you put for the bitfield.
                
                Also, significant bitfield values--these are the ones that constitute the very, very large majority of the moves that I encountered.  There were about 3 or 4 moves that had a 0x0 bitfield values, and there was like 1 or 2 that had different ones entirely:
                0x33 - generic contact (0011 0011)
                0x32 - generic no-contact (0011 0010)
                0x18 - generic status on user (0001 1000)
                0x16 - generic status on enemy (0001 0110)
                0x73 - generic high-crit ratio (physical) (0111 0011)
                0x72 - generic high-crit ratio (special) (0111 0010)
                0x13 - contact not affected by KR (0001 0011)
                0x12 - no-contact not affected by KR (0001 0010)
                0x36 - status on enemy affected by KR (0011 0110)
                0x23 - contact, no mirror move (0010 0011)
                0x22 - no-contact, no mirror move (0010 0010)
                0x8  - generic status on user, no mirror move (snatch only) (0000 1000)
                0x2  - Protect only (0000 0010)

                If you have any questions, feel free to post them (or you can just VM/PM me if you'd like). (Granted, FBI might want to confirm this; I'm not the owner of the thread, haha).

                Update on moves: I just have my 52 while DizzyEgg has 200 of them done
                He told me to do the rest, so that means that I have about 102 more to go, all of which I can do after homework and such but will likely not get them done (tonight, we have this youth group-esque thing that goes from 6:00 to 9:00), so I'll see what I can do.

                EDIT: Got my section done~

                Spoiler:
                Code:
                Sandstorm, 0x0, 0x0, 0x5, 0x0, 0xA, 0x0, 0x10, 0x0, 0x0, 0x2, 0xC9
                Giga Drain, 0x0, 0x3C, 0xC, 0x64, 0x5, 0x0, 0x0, 0x0, 0x12, 0x1, 0xCA
                Endure, 0x0, 0x0, 0x0, 0x0, 0xA, 0x0, 0x10, 0x3, 0x0, 0x2, 0xCB
                Charm, 0x0, 0x0, 0x0, 0x64, 0x14, 0x0, 0x0, 0x0, 0x16, 0x2, 0xCC
                Rollout, 0x0, 0x1E, 0x5, 0x5A, 0x14, 0x0, 0x0, 0x0, 0x33, 0x0, 0xCD
                False Swipe, 0x0, 0x28, 0x0, 0x64, 0x28, 0x0, 0x0, 0x0, 0x33, 0x0, 0xCE
                Swagger, 0x0, 0x0, 0x0, 0x5A, 0xF, 0x64, 0x0, 0x0, 0x16, 0x2, 0xCF
                Milk Drink, 0x0, 0x0, 0x0, 0x0, 0xA, 0x0, 0x10, 0x0, 0xA, 0x2, 0xD0
                Spark, 0x0, 0x41, 0xD, 0x64, 0x14, 0x1E, 0x0, 0x0, 0x13, 0x0, 0xD1
                Fury Cutter, 0x0, 0xA, 0x6, 0x5F, 0x14, 0x0, 0x0, 0x0, 0x33, 0x0, 0xD2
                Steel Wing, 0x0, 0x46, 0x8, 0x5A, 0x19, 0xA, 0x0, 0x0, 0x33, 0x0, 0xD3
                Mean Look, 0x0, 0x0, 0x0, 0x64, 0x5, 0x0, 0x0, 0x0, 0x16, 0x2, 0xD4
                Attract, 0x0, 0x0, 0x0, 0x64, 0xF, 0x0, 0x0, 0x0, 0x16, 0x2, 0xD5
                Sleep Talk, 0x0, 0x0, 0x0, 0x0, 0xA, 0x0, 0x1, 0x0, 0x0, 0x2, 0xD6
                Heal Bell, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x10, 0x0, 0x8, 0x2, 0xD7
                Return, 0x0, 0x1, 0x0, 0x64, 0x14, 0x0, 0x0, 0x0, 0x33, 0x0, 0xD8
                Present, 0x0, 0x1, 0x0, 0x5A, 0xF, 0x0, 0x0, 0x0, 0x12, 0x0, 0xD9
                Frustration, 0x0, 0x1, 0x0, 0x64, 0x14, 0x0, 0x0, 0x0, 0x33, 0x0, 0xDA
                Safeguard, 0x0, 0x0, 0x0, 0x0, 0x19, 0x0, 0x10, 0x0, 0x8, 0x2, 0xDB
                Pain Split, 0x0, 0x0, 0x0, 0x64, 0x14, 0x0, 0x0, 0x0, 0x12, 0x2, 0xDC
                Sacred Fire, 0x0, 0x64, 0xA, 0x5F, 0x5, 0x32, 0x0, 0x0, 0x12, 0x1, 0xDD
                Magnitude, 0x0, 0x1, 0x4, 0x64, 0x1E, 0x0, 0x20, 0x0, 0x32, 0x0, 0xDE
                DynamicPunch, 0x0, 0x64, 0x1, 0x32, 0x5, 0x64, 0x0, 0x0, 0x13, 0x0, 0xDF
                Megahorn, 0x0, 0x78, 0x6, 0x55, 0xA, 0x0, 0x0, 0x0, 0x33, 0x0, 0xE0
                DragonBreath, 0x0, 0x3C, 0x10, 0x64, 0x14, 0x1E, 0x0, 0x0, 0x32, 0x1, 0xE1
                Baton Pass, 0x0, 0x0, 0x0, 0x0, 0x28, 0x0, 0x10, 0x0, 0x0, 0x2, 0xE2
                Encore, 0x0, 0x0, 0x0, 0x64, 0x5, 0x0, 0x0, 0x0, 0x12, 0x2, 0xE3
                Pursuit, 0x0, 0x28, 0x11, 0x64, 0x14, 0x0, 0x0, 0x0, 0x13, 0x0, 0xE4
                Rapid Spin, 0x0, 0x14, 0x0, 0x64, 0x28, 0x0, 0x0, 0x0, 0x33, 0x0, 0xE5
                Sweet Scent, 0x0, 0x0, 0x0, 0x64, 0x14, 0x0, 0x8, 0x0, 0x16, 0x2, 0xE6
                Iron Tail, 0x0, 0x64, 0x8, 0x4B, 0xF, 0x1E, 0x0, 0x0, 0x13, 0x0, 0xE7
                Metal Claw, 0x0, 0x32, 0x8, 0x5F, 0x23, 0xA, 0x0, 0x0, 0x13, 0x0, 0xE8
                Vital Throw, 0x0, 0x46, 0x1, 0x64, 0xA, 0x0, 0x0, 0xFF, 0x33, 0x0, 0xE9
                Morning Sun, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x10, 0x0, 0x8, 0x2, 0xEA
                Synthesis, 0x0, 0x0, 0xC, 0x0, 0x5, 0x0, 0x10, 0x0, 0x8, 0x2, 0xEB
                Moonlight, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x10, 0x0, 0x8, 0x2, 0xEC
                
                Hidden Power, 0x0, 0x3C, 0x0, 0x64, 0xF, 0x0, 0x0, 0x0, 0x32, 0x1, 0xED//new base power 60 Hidden Power, requires more coding because old effect is already in the game's code, but, if what you said earlier about RAM allocation being different is true, it should not matter too much
                Hidden Power, 0x0, 0x1, 0x0, 0x64, 0xF, 0x0, 0x0, 0x0, 0x32, 0x1, 0xED//vanilla base power 1 Hidden Power, where Power is decided based off of IVs as well as is type
                
                Cross Chop, 0x0, 0x64, 0x1, 0x50, 0x5, 0x0, 0x0, 0x0, 0x73, 0x0, 0xEE
                Twister, 0x0, 0x28, 0x10, 0x64, 0x14, 0x14, 0x8, 0x0, 0x32, 0x0, 0xEF
                Rain Dance, 0x0, 0x0, 0xB, 0x0, 0x5, 0x0, 0x10, 0x0, 0x0, 0x2, 0xF0
                Sunny Day, 0x0, 0x0, 0xA, 0x0, 0x5, 0x0, 0x10, 0x0, 0x0, 0x2, 0xF1
                Crunch, 0x0, 0x50, 0x11, 0x64, 0xF, 0x14, 0x0, 0x0, 0x13, 0x0, 0xF2
                Mirror Coat, 0x0, 0x1, 0xE, 0x64, 0x14, 0x0, 0x1, 0xFB, 0x0, 0x2, 0xF3
                Psych Up, 0x0, 0x0, 0x0, 0x0, 0xA, 0x0, 0x0, 0x0, 0x8, 0x2, 0xF4
                ExtremeSpeed, 0x0, 0x50, 0x0, 0x64, 0x5, 0x0, 0x0, 0x1, 0x33, 0x0, 0xF5
                AncientPower, 0x0, 0x3C, 0x5, 0x64, 0x5, 0xA, 0x0, 0x0, 0x13, 0x1, 0xF6
                Shadow Ball, 0x0, 0x50, 0x7, 0x64, 0xF, 0x14, 0x0, 0x0, 0x12, 0x1, 0xF7
                Future Sight, 0x00, 0x50, 0xE, 0x5A, 0xF, 0x0, 0x0, 0x0, 0x0, 0x1, 0xF8
                Rock Smash, 0x0, 0x14, 0x1, 0x64, 0xF, 0x32, 0x0, 0x0, 0x13, 0x0, 0xF9
                Whirlpool, 0x0, 0xF, 0xB, 0x46, 0xF, 0x64, 0x0, 0x0, 0x32, 0x1, 0xFA
                Beat Up, 0x0, 0xA, 0x11, 0x64, 0xA, 0x0, 0x0, 0x0, 0x32, 0x0, 0xFB
                Fake Out, 0x0, 0x28, 0x0, 0x64, 0xA, 0x0, 0x0, 0x1, 0x12, 0x0, 0xFC
                Uproar, 0x0, 0x32, 0x0, 0x64, 0xA, 0x64, 0x4, 0x0, 0x32, 0x1, 0xFD
                Stockpile, 0x0, 0x0, 0x0, 0x0, 0xA, 0x0, 0x10, 0x0, 0x8, 0x2, 0xFE
                Spit Up, 0x0, 0x64, 0x0, 0x64, 0xA, 0x0, 0x0, 0x0, 0x22, 0x0, 0xFF
                Swallow, 0x0, 0x0, 0x0, 0x0, 0xA, 0x0, 0x10, 0x0, 0x8, 0x2, 0x100
                Heat Wave, 0x0, 0x64, 0xA, 0x5A, 0xA, 0xA, 0x18, 0x0, 0x12, 0x1, 0x101
                Hail, 0x0, 0x0, 0xF, 0x0, 0xA, 0x0, 0x10, 0x0, 0x0, 0x2, 0x102
                Torment, 0x0, 0x0, 0x11, 0x64, 0xF, 0x0, 0x0, 0x0, 0x12, 0x2, 0x103
                Flatter, 0x0, 0x0, 0x11, 0x64, 0xF, 0x0, 0x0, 0x0, 0x16, 0x2, 0x104
                Will-O-Wisp, 0x0, 0x0, 0xA, 0x4B, 0xF, 0x0, 0x0, 0x0, 0x16, 0x2, 0x105
                Memento, 0x0, 0x0, 0x11, 0x64, 0xA, 0x0, 0x0, 0x0, 0x12, 0x2, 0x106
                Facade, 0x0, 0x46, 0x0, 0x64, 0x14, 0x0, 0x0, 0x0, 0x13, 0x0, 0x107
                Focus Punch, 0x0, 0x96, 0x1, 0x64, 0x14, 0x0, 0x0, 0xFD, 0x3, 0x0, 0x108
                SmellingSalt, 0x0, 0x3C, 0x0, 0x64, 0xA, 0x0, 0x0, 0x0, 0x13, 0x0, 0x109
                Follow Me, 0x0, 0x0, 0x0, 0x64, 0x14, 0x0, 0x10, 0x3, 0x0, 0x2, 0x10A
                Nature Power, 0x0, 0x0, 0x0, 0x0, 0x14, 0x0, 0x1, 0x0, 0x0, 0x0, 0x10B
                Charge, 0x0, 0x0, 0xD, 0x64, 0x14, 0x0, 0x10, 0x0, 0x8, 0x2, 0x10C
                Taunt, 0x0, 0x0, 0x11, 0x64, 0x14, 0x0, 0x0, 0x0, 0x2, 0x2, 0x10D
                Helping Hand, 0x0, 0x0, 0x0, 0x64, 0x14, 0x0, 0x10, 0x5, 0x0, 0x2, 0x10E
                Trick, 0x0, 0x0, 0xE, 0x64, 0xA, 0x0, 0x0, 0x0, 0x12, 0x2, 0x10F
                Role Play, 0x0, 0x0, 0xE, 0x64, 0xA, 0x0, 0x0, 0x0, 0x0, 0x2, 0x110
                Wish, 0x0, 0x0, 0x0, 0x64, 0xA, 0x0, 0x10, 0x0, 0x2, 0x2, 0x111
                Assist, 0x0, 0x0, 0x0, 0x64, 0x14, 0x0, 0x1, 0x0, 0x0, 0x2, 0x112
                Ingrain, 0x0, 0x0, 0xC, 0x64, 0x14, 0x0, 0x10, 0x8, 0x0, 0x2, 0x113
                Superpower, 0x0, 0x78, 0x1, 0x64, 0x5, 0x0, 0x0, 0x0, 0x13, 0x0, 0x114
                Magic Coat, 0x0, 0x0, 0xE, 0x64, 0xF, 0x0, 0x1, 0x4, 0x0, 0x2, 0x115
                Recycle, 0x0, 0x0, 0x0, 0x64, 0xA, 0x0, 0x10, 0x0, 0x0, 0x2, 0x116
                Revenge, 0x0, 0x3C, 0x1, 0x64, 0xA, 0x0, 0x0, 0xFC, 0x33, 0x0, 0x117
                Brick Break, 0x0, 0x4B, 0x1, 0x64, 0xF, 0x0, 0x0, 0x0, 0x33, 0x0, 0x118
                Yawn, 0x0, 0x0, 0x0, 0x64, 0xA, 0x0, 0x0, 0x0, 0x16, 0x1, 0x119
                Knock Off, 0x0, 0x14, 0x11, 0x64, 0x14, 0x64, 0x0, 0x0, 0x13, 0x0, 0x11A
                Endeavor, 0x0, 0x1, 0x0, 0x64, 0x5, 0x0, 0x0, 0x0, 0x33, 0x0, 0x11B
                Eruption, 0x0, 0x96, 0xA, 0x64, 0x5, 0x0, 0x8, 0x0, 0x32, 0x1, 0x11C
                Skill Swap, 0x0, 0x0, 0xE, 0x64, 0xA, 0x0, 0x0, 0x0, 0x12, 0x2, 0x11D
                Imprison, 0x0, 0x0, 0xE, 0x64, 0xA, 0x0, 0x10, 0x0, 0x2, 0x2, 0x11E
                Refresh, 0x0, 0x0, 0x0, 0x64, 0x14, 0x0, 0x10, 0x0, 0x8, 0x2, 0x11F
                Grudge, 0x0, 0x0, 0x7, 0x64, 0x5, 0x0, 0x10, 0x0, 0x2, 0x2, 0x120
                Snatch, 0x0, 0x0, 0x11, 0x64, 0xA, 0x0, 0x1, 0x4, 0x0, 0x2, 0x121
                Secret Power, 0x0, 0x46, 0x0, 0x64, 0x14, 0x1E, 0x0, 0x0, 0x12, 0x0, 0x122
                Dive, 0x0, 0x3C, 0xB, 0x64, 0xA, 0x0, 0x0, 0x0, 0x33, 0x0, 0x123
                Arm Thrust, 0x0, 0xF, 0x1, 0x64, 0x14, 0x0, 0x0, 0x0, 0x33, 0x0, 0x124
                Camouflage, 0x0, 0x0, 0x0, 0x64, 0x14, 0x0, 0x10, 0x0, 0x8, 0x2, 0x125
                Tail Glow, 0x0, 0x0, 0x6, 0x64, 0x14, 0x0, 0x10, 0x0, 0x8, 0x2, 0x126
                Luster Purge, 0x0, 0x46, 0xE, 0x64, 0x5, 0x32, 0x0, 0x0, 0x12, 0x1, 0x127
                Mist Ball, 0x0, 0x46, 0xE, 0x64, 0x5, 0x32, 0x0, 0x0, 0x12, 0x1, 0x128
                FeatherDance, 0x0, 0x0, 0x2, 0x64, 0xF, 0x0, 0x0, 0x0, 0x16, 0x2, 0x129
                Teeter Dance, 0x0, 0x0, 0x0, 0x64, 0x14, 0x0, 0x20, 0x0, 0x12, 0x2, 0x12A
                Blaze Kick, 0x0, 0x55, 0xA, 0x5A, 0xA, 0xA, 0x0, 0x0, 0x73, 0x0, 0x12B
                Mud Sport, 0x0, 0x0, 0x4, 0x64, 0xF, 0x0, 0x10, 0x0, 0x0, 0x2, 0x12C
                Ice Ball, 0x0, 0x1E, 0xF, 0x5A, 0x14, 0x0, 0x0, 0x0, 0x33, 0x0, 0x12D
                Needle Arm, 0x0, 0x3C, 0xC, 0x64, 0xF, 0x1E, 0x0, 0x0, 0x73, 0x0, 0x12E
                Slack Off, 0x0, 0x0, 0x0, 0x64, 0xA, 0x0, 0x10, 0x0, 0x8, 0x2, 0x12F
                Hyper Voice, 0x0, 0x5A, 0x0, 0x64, 0xA, 0x0, 0x8, 0x0, 0x12, 0x1, 0x130
                Poison Fang, 0x0, 0x32, 0x03, 0x64, 0xF, 0x1E, 0x0, 0x0, 0x73, 0x0, 0x131
                Crush Claw, 0x0, 0x4B, 0x0, 0x5F, 0xA, 0x32, 0x0, 0x0, 0x13, 0x0, 0x132
                Blast Burn, 0x0, 0x96, 0xA, 0x5A, 0x5, 0x0, 0x0, 0x0, 0x32, 0x1, 0x133
                Hydro Cannon, 0x0, 0x96, 0xB, 0x5A, 0x5, 0x0, 0x0, 0x0, 0x32, 0x1, 0x134
                Meteor Mash, 0x0, 0x64, 0x8, 0x55, 0xA, 0x14, 0x0, 0x0, 0x33, 0x0, 0x135
                Astonish, 0x0, 0x1E, 0x7, 0x64, 0xF, 0x1E, 0x0, 0x0, 0x13, 0x0, 0x136
                Weather Ball, 0x0, 0x32, 0x0, 0x64, 0xA, 0x0, 0x0, 0x0, 0x32, 0x1, 0x137
                Aromatherapy, 0x0, 0x0, 0xC, 0x0, 0x5, 0x0, 0x10, 0x0, 0x8, 0x2, 0x138
                Fake Tears, 0x0, 0x0, 0x11, 0x64, 0x14, 0x0, 0x0, 0x0, 0x16, 0x2, 0x139
                Air Cutter, 0x0, 0x37, 0x2, 0x5F, 0x19, 0x0, 0x8, 0x0, 0x72, 0x1, 0x13A
                Overheat, 0x0, 0x8C, 0xA, 0x5A, 0x5, 0x64, 0x0, 0x0, 0x33, 0x1, 0x13B
                Odor Sleuth, 0x0, 0x0, 0x0, 0x64, 0x28, 0x0, 0x0, 0x0, 0x12, 0x2, 0x13C
                Rock Tomb, 0x0, 0x32, 0x5, 0x50, 0xA, 0x64, 0x0, 0x0, 0x12, 0x0, 0x13D
                Silver Wind, 0x0, 0x3C, 0x6, 0x64, 0x5, 0xA, 0x0, 0x0, 0x32, 0x1, 0x13E
                Metal Sound, 0x0, 0x0, 0x8, 0x55, 0x28, 0x0, 0x0, 0x0, 0x16, 0x2, 0x13F
                GrassWhistle, 0x0, 0x0, 0xC, 0x37, 0xF, 0x0, 0x0, 0x0, 0x16, 0x2, 0x140
                Tickle, 0x0, 0x0, 0x0, 0x64, 0x14, 0x0, 0x0, 0x0, 0x36, 0x2, 0x141
                Cosmic Power, 0x0, 0x0, 0xE, 0x0, 0x14, 0x0, 0x10, 0x0, 0x8, 0x2, 0x142
                Water Spout, 0x0, 0x96, 0xB, 0x64, 0x5, 0x0, 0x8, 0x0, 0x12, 0x1, 0x143
                Signal Beam, 0x0, 0x4B, 0x6, 0x64, 0xF, 0xA, 0x0, 0x0, 0x32, 0x1, 0x144
                Shadow Punch, 0x0, 0x3C, 0x7, 0x0, 0x14, 0x0, 0x0, 0x0, 0x33, 0x0, 0x145
                Extrasensory, 0x0, 0x50, 0xE, 0x64, 0x1E, 0xA, 0x0, 0x0, 0x12, 0x1, 0x146
                Sky Uppercut, 0x0, 0x55, 0x1, 0x5A, 0xF, 0x0, 0x0, 0x0, 0x33, 0x0, 0x147
                Sand Tomb, 0x0, 0xF, 0x4, 0x46, 0xF, 0x64, 0x0, 0x0, 0x32, 0x1, 0x148
                Sheer Cold, 0x0, 0x1, 0xF, 0x1E, 0x5, 0x0, 0x0, 0x0, 0x12, 0x1, 0x149
                Muddy Water, 0x0, 0x5F, 0xB, 0x55, 0xA, 0x1E, 0x20, 0x0, 0x32, 0x1, 0x14A
                Bullet Seed, 0x0, 0xA, 0xC, 0x64, 0x1E, 0x0, 0x0, 0x0, 0x32, 0x0, 0x14B
                Aerial Ace, 0x0, 0x3C, 0x2, 0x0, 0x14, 0x0, 0x0, 0x0, 0x33, 0x0, 0x14C
                Icicle Spear, 0x0, 0xA, 0xF, 0x64, 0x1E, 0x0, 0x0, 0x0, 0x32, 0x0, 0x14D
                Iron Defense, 0x0, 0x0, 0x8, 0x0, 0xF, 0x0, 0x10, 0x0, 0x8, 0x2, 0x14E
                Block, 0x0, 0x0, 0x0, 0x64, 0x5, 0x0, 0x0, 0x0, 0x16, 0x2, 0x14F
                Howl, 0x0, 0x0, 0x0, 0x0, 0x28, 0x0, 0x10, 0x0, 0x8, 0x2, 0x150
                Dragon Claw, 0x0, 0x50, 0x10, 0x64, 0xF, 0x0, 0x0, 0x0, 0x33, 0x0, 0x151
                Frenzy Plant, 0x0, 0x96, 0xC, 0x5A, 0x5, 0x0, 0x0, 0x0, 0x32, 0x1, 0x152
                Bulk Up, 0x0, 0x0, 0x1, 0x0, 0x14, 0x0, 0x10, 0x0, 0x8, 0x2, 0x153
                Bounce, 0x0, 0x55, 0x2, 0x55, 0x5, 0x1E, 0x0, 0x0, 0x33, 0x0, 0x154
                Mud Shot, 0x0, 0x37, 0x4, 0x5F, 0xF, 0x64, 0x0, 0x0, 0x32, 0x1, 0x155
                Poison Tail, 0x0, 0x32, 0x3, 0x64, 0x19, 0xA, 0x0, 0x0, 0x73, 0x0, 0x156
                Covet, 0x0, 0x28, 0x0, 0x64, 0x28, 0x64, 0x, 0x0, 0x13, 0x0, 0x157
                Volt Tackle, 0x0, 0x78, 0xD, 0x64, 0xF, 0x0, 0x0, 0x0, 0x33, 0x1, 0x158
                Magical Leaf, 0x0, 0x3C, 0xC, 0xFF, 0x14, 0x0, 0x0, 0x0, 0x32, 0x2, 0x159
                Water Sport, 0x0, 0x0, 0xB, 0x64, 0xF, 0x0, 0x10, 0x0, 0x0, 0x2, 0x15A
                Calm Mind, 0x0, 0x0, 0xE, 0x0, 0x14, 0x0, 0x10, 0x0, 0x8, 0x2, 0x15B
                Leaf Blade, 0x0, 0x46, 0xC, 0x64, 0xF, 0x0, 0x0, 0x0, 0x73, 0x0, 0x15C
                Dragon Dance, 0x0, 0x0, 0x10, 0x0, 0x14, 0x0, 0x10, 0x0, 0x8, 0x2, 0x15D
                Rock Blast, 0x0, 0x19, 0x5, 0x50, 0xA, 0x0, 0x0, 0x0, 0x32, 0x0, 0x15E
                Shock Wave, 0x0, 0x3C, 0xD, 0x0, 0x14, 0x0, 0x0, 0x0, 0x32, 0x1, 0x15F
                Water Pulse, 0x0, 0x3C, 0xB, 0x64, 0x14, 0x14, 0x0, 0x0, 0x32, 0x1, 0x160
                Doom Desire, 0x0, 0x94, 0x78, 0x8, 0x55, 0x5, 0x0, 0x0, 0x0, 0x1, 0x161
                Psycho Boost, 0x0, 0x8C, 0xE, 0x5A, 0x5, 0x64, 0x0, 0x0, 0x32, 0x1, 0x162

                I checked every single one of my moves against the list on veekun for being affected by Mirror Move or this list for those with a high critical hit ratio. Also, I had 1 move that had a never miss effect--Magical Leaf. I made it have 255 accuracy, don't know how you're going to handle it, FBI...
                If problems come up, just say!
                Now, I'm going to end up making two script effect tables. The way he told me to make them would be the same way that Vanilla does: With a pointer leading to a Battle Script signifying each. However, if what FBI said about RAM allocations being different is really true and most of the Battle Scripts are useless under this system, how are we to do this, then?
                Should we have a whole new effects possible table?

                And, lastly, sorry for the amount of notifications you've probably received, DizzyEgg...
                __________________
                am i cool yet
                Reply With Quote
                  #62    
                Old December 8th, 2015 (7:07 AM).
                DizzyEgg's Avatar
                DizzyEgg DizzyEgg is offline
                   
                  Join Date: Feb 2014
                  Location: Poland
                  Age: 20
                  Gender: Male
                  Nature: Quiet
                  Posts: 716
                  Quote:
                  Originally Posted by FBI View Post
                  To current date, people have offered to contribute, even asked for details, but I've yet to receive any dev. help as of yet.
                  That's about to change! Here are 200 moves that alongside with BluRose's ones create a full table of moves from genI to gen IV.
                  Spoiler:
                  Quote:
                  POUND, 0x00, 0x23, 0x00, 0x64, 0x23, 0x00, 0x00, 0x00, 0x33, 0x00, 0x01
                  KARATE_CHOP, 0x00, 0x32, 0x01, 0x64, 0x19, 0x00, 0x00, 0x00, 0x73, 0x00, 0x02
                  DOUBLE_SLAP, 0x00, 0x0F, 0x00, 0x55, 0x0A, 0x00, 0x00, 0x00, 0x33, 0x00, 0x03
                  COMET_PUNCH, 0x00, 0x12, 0x00, 0x55, 0x0F, 0x00, 0x00, 0x00, 0x33, 0x00, 0x04
                  MEGA_PUNCH, 0x00, 0x50, 0x00, 0x55, 0x14, 0x00, 0x00, 0x00, 0x33, 0x00, 0x05
                  PAY_DAY, 0x00, 0x28, 0x00, 0x64, 0x14, 0x00, 0x00, 0x00, 0x33, 0x00, 0x06
                  FIRE_PUNCH 0x00, 0x4B, 0x04, 0x64, 0x0F, 0x0A, 0x00, 0x00, 0x13, 0x00, 0x07
                  ICE_PUNCH 0x00, 0x4B, 0x0F, 0x64, 0x0F, 0x0A, 0x00, 0x00, 0x13, 0x00, 0x08
                  THUNDER_PUNCH 0x00, 0x4B, 0x0D, 0x64, 0x0F, 0x0A, 0x00, 0x00, 0x13, 0x00, 0x09
                  SCRATCH, 0x00, 0x23, 0x00, 0x64, 0x23, 0x00, 0x00, 0x00, 0x33, 0x00, 0x0A
                  VICE_GRIP, 0x00, 0x37, 0x00, 0x64, 0x1E, 0x00, 0x00, 0x00, 0x33, 0x00, 0x0B
                  GUILLOTINE 0x00, 0x01, 0x00, 0x1E, 0x05, 0x00, 0x00, 0x00, 0x13, 0x00, 0x0C
                  RAZOR_WIND 0x00, 0x50, 0x00, 0x64, 0x05, 0x00, 0x00, 0x00, 0x72, 0x01, 0x0D
                  SWORDS_DANCE 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x10, 0x00, 0x08, 0x02, 0x0E
                  CUT 0x00, 0x32, 0x00, 0x5F, 0x1E, 0x00, 0x00, 0x00, 0x33, 0x00, 0x0F
                  GUST 0x00, 0x28, 0x02, 0x64, 0x23, 0x00, 0x00, 0x00, 0x32, 0x01, 0x10
                  WING_ATTACK 0x00, 0x3C, 0x02, 0x64, 0x23, 0x00, 0x00, 0x00, 0x33, 0x00, 0x11
                  WHIRLWIND 0x00, 0x00, 0x00, 0x64, 0x14, 0x00, 0x00, 0xFA, 0x16, 0x02, 0x12
                  FLY 0x00, 0x5A, 0x02, 0x5F, 0x0F, 0x00, 0x00, 0x00, 0x33, 0x00, 0x13
                  BIND 0x00, 0x0F, 0x00, 0x55, 0x14, 0x64, 0x00, 0x00, 0x33, 0x00, 0x14
                  SLAM 0x00, 0x50, 0x00, 0x4B, 0x14, 0x00, 0x00, 0x00, 0x33, 0x00, 0x15
                  VINE_WHIP 0x00, 0x2D, 0x0C, 0x64, 0x19, 0x00, 0x00, 0x00, 0x33, 0x00, 0x16
                  STOMP 0x00, 0x41, 0x00, 0x14, 0x1E, 0x1E, 0x00, 0x00, 0x13, 0x00, 0x17
                  DOUBLE_KICK 0x00, 0x1E, 0x01, 0x64, 0x1E, 0x00, 0x00, 0x00, 0x33, 0x00, 0x18
                  MEGA_KICK 0x00, 0x78, 0x00, 0x4B, 0x05, 0x00, 0x00, 0x00, 0x33, 0x00, 0x19
                  JUMP_KICK 0x00, 0x64, 0x01, 0x5F, 0x0A, 0x00, 0x00, 0x00, 0x33, 0x00, 0x1A
                  ROLLING_KICK 0x00, 0x3C, 0x01, 0x55, 0x0F, 0x1E, 0x00, 0x00, 0x13, 0x00, 0x1B
                  SAND_ATTACK 0x00, 0x00, 0x04, 0x64, 0x0F, 0x00, 0x00, 0x00, 0x16, 0x02, 0x1C
                  HEADBUTT 0x00, 0x46, 0x00, 0x64, 0x0F, 0x1E, 0x00, 0x00, 0x13, 0x00, 0x1D
                  HORN_ATTACK 0x00, 0x41, 0x00, 0x64, 0x19, 0x00, 0x00, 0x00, 0x33, 0x00, 0x1E
                  FURY_ATTACK 0x00, 0x0F, 0x00, 0x55, 0x14, 0x00, 0x00, 0x00, 0x33, 0x00, 0x1F
                  HORN_DRILL 0x00, 0x01, 0x00, 0x1E, 0x05, 0x00, 0x00, 0x00, 0x13, 0x00, 0x20
                  TACKLE 0x00, 0x32, 0x00, 0x64, 0x23, 0x00, 0x00, 0x00, 0x33, 0x00, 0x21
                  BODY_SLAM 0x00, 0x55, 0x00, 0x64, 0x0F, 0x1E, 0x00, 0x00, 0x33, 0x00, 0x22
                  WRAP 0x00, 0x0F, 0x00, 0x5A, 0x14, 0x64, 0x00, 0x00, 0x33, 0x00, 0x23
                  TAKE_DOWN 0x00, 0x5A, 0x00, 0x55, 0x14, 0x00, 0x00, 0x00, 0x33, 0x00, 0x24
                  THRASH 0x00, 0x78, 0x00, 0x64, 0x0A, 0x64, 0x04, 0x00, 0x33, 0x00, 0x25
                  DOUBLE_EDGE 0x00, 0x78, 0x00, 0x64, 0x0F, 0x00, 0x00, 0x00, 0x33, 0x00, 0x26
                  TAIL_WHIP 0x00, 0x00, 0x00, 0x64, 0x1E, 0x00, 0x08, 0x00, 0x16, 0x02, 0x27
                  POISON_STING 0x00, 0x0F, 0x03, 0x64, 0x23, 0x1E, 0x00, 0x00, 0x32, 0x00, 0x28
                  TWINEEDLE 0x00, 0x19, 0x06, 0x64, 0x14, 0x14, 0x00, 0x00, 0x32, 0x00, 0x29
                  PIN_MISSILE 0x00, 0x19, 0x06, 0x5F, 0x14, 0x00, 0x00, 0x00, 0x32, 0x00, 0x2A
                  LEER 0x00, 0x00, 0x00, 0x64, 0x1E, 0x00, 0x08, 0x00, 0x16, 0x02, 0x2B
                  BITE 0x00, 0x3C, 0x11, 0x64, 0x19, 0x0A, 0x00, 0x00, 0x13, 0x00, 0x2C
                  GROWL 0x00, 0x00, 0x00, 0x64, 0x28, 0x00, 0x08, 0x00, 0x16, 0x02, 0x2D
                  ROAR 0x00, 0x00, 0x00, 0x64, 0x14, 0x00, 0x00, 0xFA, 0x16, 0x02, 0x2E
                  SING 0x00, 0x00, 0x00, 0x37, 0x0F, 0x00, 0x00, 0x00, 0x16, 0x02, 0x2F
                  SUPERSONIC 0x00, 0x00, 0x00, 0x37, 0x14, 0x00, 0x00, 0x00, 0x16, 0x02, 0x30
                  SONIC_BOOM 0x00, 0x01, 0x00, 0x5A, 0x14, 0x00, 0x00, 0x00, 0x32, 0x01, 0x31
                  DISABLE 0x00, 0x00, 0x00, 0x64, 0x14, 0x00, 0x00, 0x00, 0x16, 0x02, 0x32
                  ACID 0x00, 0x32, 0x03, 0x64, 0x1E, 0x0A, 0x08, 0x00, 0x12, 0x01, 0x33
                  EMBER 0x00, 0x28, 0x0A, 0x64, 0x19, 0x0A, 0x00, 0x00, 0x12, 0x01, 0x34
                  FLAMETHROWER 0x00, 0x5A, 0x0A, 0x64, 0x0F, 0x0A, 0x00, 0x00, 0x12, 0x01, 0x35
                  MIST 0x00, 0x00, 0x0F, 0x00, 0x1E, 0x00, 0x10, 0x00, 0x08, 0x02, 0x36
                  WATER_GUN 0x00, 0x28, 0x0B, 0x64, 0x19, 0x00, 0x00, 0x00, 0x32, 0x01, 0x37
                  HYDRO_PUMP 0x00, 0x6E, 0x0B, 0x50, 0x05, 0x00, 0x00, 0x00, 0x32, 0x01, 0x38
                  SURF 0x00, 0x5A, 0x0B, 0x64, 0x0F, 0x00, 0x20, 0x00, 0x32, 0x01, 0x39
                  ICE_BEAM 0x00, 0x5A, 0x0F, 0x64, 0x0A, 0x0A, 0x00, 0x00, 0x12, 0x01, 0x3A
                  BLIZZARD 0x00, 0x6E, 0x0F, 0x46, 0x05, 0x0A, 0x08, 0x00, 0x12, 0x01, 0x3B
                  PSYBEAM 0x00, 0x41, 0x0E, 0x64, 0x14, 0x0A, 0x00, 0x00, 0x12, 0x01, 0x3C
                  BUBBLE_BEAM 0x00, 0x41, 0x0B, 0x64, 0x14, 0x0A, 0x00, 0x00, 0x12, 0x01, 0x3D
                  AURORA_BEAM 0x00, 0x41, 0x0F, 0x64, 0x14, 0x0A, 0x00, 0x00, 0x12, 0x01, 0x3E
                  HYPER_BEAM 0x00, 0x96, 0x00, 0x5A, 0x05, 0x00, 0x00, 0x00, 0x32, 0x01, 0x3F
                  PECK 0x00, 0x23, 0x02, 0x64, 0x23, 0x00, 0x00, 0x00, 0x33, 0x00, 0x40
                  DRILL_PECK 0x00, 0x50, 0x02, 0x64, 0x14, 0x00, 0x00, 0x00, 0x33, 0x00, 0x41
                  SUBMISSION 0x00, 0x50, 0x01, 0x50, 0x19, 0x00, 0x00, 0x00, 0x33, 0x00, 0x42
                  LOW_KICK 0x00, 0x01, 0x01, 0x64, 0x14, 0x00, 0x00, 0x00, 0x33, 0x00, 0x43
                  COUNTER 0x00, 0x01, 0x01, 0x64, 0x14, 0x00, 0x01, 0xFB, 0x01, 0x00, 0x44
                  SEISMIC_TOSS 0x00, 0x01, 0x01, 0x64, 0x14, 0x00, 0x00, 0x00, 0x33, 0x00, 0x45
                  STRENGTH 0x00, 0x50, 0x00, 0x64, 0x0F, 0x00, 0x00, 0x00, 0x33, 0x00, 0x46
                  ABSORB 0x00, 0x14, 0x0C, 0x64, 0x19, 0x00, 0x00, 0x00, 0x12, 0x01, 0x47
                  MEGA_DRAIN 0x00, 0x28, 0x0C, 0x64, 0x0F, 0x00, 0x00, 0x00, 0x12, 0x01, 0x48
                  LEECH_SEED 0x00, 0x00, 0x0C, 0x5A, 0x0A, 0x00, 0x00, 0x00, 0x16, 0x02, 0x49
                  GROWTH 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x08, 0x02, 0x4A
                  RAZOR_LEAF 0x00, 0x37, 0x0C, 0x5F, 0x19, 0x00, 0x00, 0x00, 0x72, 0x00, 0x4B
                  SOLAR_BEAM 0x00, 0x78, 0x0C, 0x64, 0x0A, 0x00, 0x00, 0x00, 0x32, 0x01, 0x4C
                  POISONPOWDER 0x00, 0x00, 0x03, 0x4B, 0x23, 0x00, 0x00, 0x00, 0x16, 0x02, 0x4D
                  STUN_SPORE 0x00, 0x00, 0x0C, 0x4B, 0x1E, 0x00, 0x00, 0x00, 0x16, 0x02, 0x4E
                  SLEEP_POWDER 0x00, 0x00, 0x0C, 0x4B, 0x0F, 0x00, 0x00, 0x00, 0x16, 0x02, 0x4F
                  PETAL_DANCE 0x00, 0x78, 0x0C, 0x64, 0x0A, 0x64, 0x04, 0x00, 0x33, 0x01, 0x50
                  STRING_SHOT 0x00, 0x00, 0x06, 0x5F, 0x28, 0x00, 0x08, 0x00, 0x16, 0x02, 0x51
                  DRAGON_RAGE 0x00, 0x01, 0x10, 0x64, 0x0A, 0x00, 0x00, 0x00, 0x32, 0x01, 0x52
                  FIRE_SPIN 0x00, 0x23, 0x0A, 0x55, 0x0F, 0x64, 0x00, 0x00, 0x32, 0x01, 0x53
                  THUNDERSHOCK 0x00, 0x28, 0x0D, 0x64, 0x1E, 0x0A, 0x00, 0x00, 0x12, 0x01, 0x54
                  THUNDERBOLT 0x00, 0x5A, 0x0D, 0x64, 0x0F, 0x0A, 0x00, 0x00, 0x12, 0x01, 0x55
                  THUNDER_WAVE 0x00, 0x00, 0x0D, 0x64, 0x14, 0x00, 0x00, 0x00, 0x16, 0x02, 0x56
                  THUNDER 0x00, 0x6E, 0x0D, 0x46, 0x0A, 0x1E, 0x00, 0x00, 0x12, 0x01, 0x57
                  ROCK_THROW 0x00, 0x32, 0x05, 0x5A, 0x0F, 0x00, 0x00, 0x00, 0x32, 0x00, 0x58
                  EARTHQUAKE 0x00, 0x64, 0x04, 0x64, 0x0A, 0x00, 0x20, 0x00, 0x32, 0x00, 0x59
                  FISSURE 0x00, 0x01, 0x04, 0x1E, 0x05, 0x00, 0x00, 0x00, 0x12, 0x00, 0x5A
                  DIG 0x00, 0x50, 0x04, 0x64, 0x0A, 0x00, 0x00, 0x00, 0x33, 0x00, 0x5B
                  TOXIC 0x00, 0x00, 0x03, 0x5A, 0x0A, 0x64, 0x00, 0x00, 0x16, 0x02, 0x5C
                  CONFUSION 0x00, 0x32, 0x0E, 0x64, 0x19, 0x0A, 0x00, 0x00, 0x12, 0x01, 0x5D
                  PSYCHIC 0x00, 0x5A, 0x0E, 0x64, 0x0A, 0x0A, 0x00, 0x00, 0x12, 0x01, 0x5E
                  HYPNOSIS 0x00, 0x00, 0x0E, 0x3C, 0x14, 0x00, 0x00, 0x00, 0x16, 0x02, 0x5F
                  MEDITATE 0x00, 0x00, 0x0E, 0x00, 0x28, 0x00, 0x10, 0x00, 0x08, 0x02, 0x60
                  AGILITY 0x00, 0x00, 0x0E, 0x00, 0x1E, 0x00, 0x10, 0x00, 0x08, 0x02, 0x61
                  QUICK_ATTACK 0x00, 0x28, 0x00, 0x64, 0x1E, 0x00, 0x00, 0x01, 0x33, 0x00, 0x62
                  RAGE 0x00, 0x14, 0x00, 0x64, 0x14, 0x00, 0x00, 0x00, 0x33, 0x00, 0x63
                  TELEPORT 0x00, 0x00, 0x0E, 0x00, 0x14, 0x00, 0x10, 0x00, 0x10, 0x02, 0x64
                  NIGHT_SHADE 0x00, 0x01, 0x07, 0x64, 0x0F, 0x00, 0x00, 0x00, 0x32, 0x01, 0x65
                  MIMIC 0x00, 0x00, 0x00, 0x64, 0x0A, 0x00, 0x00, 0x00, 0x02, 0x02, 0x66
                  SCREECH 0x00, 0x00, 0x00, 0x55, 0x28, 0x00, 0x00, 0x00, 0x16, 0x02, 0x67
                  DOUBLE_TEAM 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x10, 0x00, 0x08, 0x02, 0x68
                  RECOVER 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x08, 0x02, 0x69
                  HARDEN 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x10, 0x00, 0x08, 0x02, 0x6A
                  MINIMIZE 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x08, 0x02, 0x6B
                  SMOKESCREEN 0x00, 0x00, 0x00, 0x64, 0x14, 0x00, 0x00, 0x00, 0x16, 0x02, 0x6C
                  CONFUSE_RAY 0x00, 0x00, 0x00, 0x64, 0x0A, 0x00, 0x00, 0x00, 0x16, 0x02, 0x6D
                  WITHDRAW 0x00, 0x00, 0x0B, 0x00, 0x28, 0x00, 0x10, 0x00, 0x08, 0x02, 0x6E
                  DEFENSE_CURL 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x10, 0x00, 0x08, 0x02, 0x6F
                  BARRIER 0x00, 0x00, 0x0E, 0x00, 0x14, 0x00, 0x10, 0x00, 0x08, 0x02, 0x70
                  LIGHT_SCREEN 0x00, 0x00, 0x0E, 0x00, 0x1E, 0x00, 0x10, 0x00, 0x08, 0x02, 0x71
                  HAZE 0x00, 0x00, 0x0F, 0x00, 0x1E, 0x00, 0x10, 0x00, 0x00, 0x02, 0x72
                  REFLECT 0x00, 0x00, 0x0E, 0x00, 0x14, 0x00, 0x10, 0x00, 0x08, 0x02, 0x73
                  FOCUS_ENERGY 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x10, 0x00, 0x08, 0x02, 0x74
                  BIDE 0x00, 0x01, 0x00, 0x64, 0x0A, 0x00, 0x10, 0x01, 0x33, 0x02, 0x75
                  METRONOME 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x01, 0x00, 0x10, 0x02, 0x76
                  MIRROR_MOVE 0x00, 0x00, 0x02, 0x00, 0x14, 0x00, 0x01, 0x00, 0x00, 0x02, 0x77
                  SELFDESTRUCT 0x00, 0xC8, 0x00, 0x64, 0x05, 0x00, 0x20, 0x00, 0x32, 0x00, 0x78
                  EGG_BOMB 0x00, 0x64, 0x00, 0x4B, 0x0A, 0x00, 0x00, 0x00, 0x32, 0x00, 0x79
                  LICK 0x00, 0x1E, 0x07, 0x64, 0x1E, 0x1E, 0x00, 0x00, 0x13, 0x00, 0x7A
                  SMOG 0x00, 0x1E, 0x03, 0x46, 0x14, 0x28, 0x00, 0x00, 0x12, 0x00, 0x7B
                  SLUDGE 0x00, 0x41, 0x03, 0x64, 0x14, 0x1E, 0x00, 0x00, 0x12, 0x01, 0x7C
                  BONE_CLUB 0x00, 0x41, 0x04, 0x55, 0x14, 0x0A, 0x00, 0x00, 0x12, 0x00, 0x7D
                  FIRE_BLAST 0x00, 0x6E, 0x0A, 0x55, 0x05, 0x0A, 0x00, 0x00, 0x12, 0x01, 0x7E
                  WATERFALL 0x00, 0x50, 0x0B, 0x64, 0x0F, 0x14, 0x00, 0x00, 0x33, 0x00, 0x7F
                  CLAMP 0x00, 0x23, 0x0B, 0x55, 0x0F, 0x64, 0x00, 0x00, 0x33, 0x00, 0x80
                  SWIFT 0x00, 0x3C, 0x00, 0xFF, 0x14, 0x00, 0x08, 0x00, 0x32, 0x01, 0x81
                  SKULL_BASH 0x00, 0x82, 0x00, 0x64, 0x0A, 0x00, 0x00, 0x00, 0x33, 0x00, 0x82
                  SPIKE_CANNON 0x00, 0x14, 0x00, 0x64, 0x0F, 0x00, 0x00, 0x00, 0x32, 0x00, 0x83
                  CONSTRICT 0x00, 0x0A, 0x00, 0x64, 0x23, 0x0A, 0x00, 0x00, 0x13, 0x00, 0x84
                  AMNESIA 0x00, 0x00, 0x0E, 0x00, 0x14, 0x00, 0x10, 0x00, 0x08, 0x02, 0x85
                  KINESIS 0x00, 0x00, 0x0E, 0x50, 0x0F, 0x00, 0x00, 0x00, 0x16, 0x02, 0x86
                  SOFTBOILED 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x08, 0x02, 0x87
                  HI_JUMP_KICK 0x00, 0x82, 0x01, 0x5A, 0x0A, 0x00, 0x00, 0x00, 0x33, 0x00, 0x88
                  GLARE 0x00, 0x00, 0x00, 0x64, 0x1E, 0x00, 0x00, 0x00, 0x16, 0x02, 0x89
                  DREAM_EATER 0x00, 0x64, 0x0E, 0x64, 0x0F, 0x00, 0x00, 0x00, 0x12, 0x01, 0x8A
                  POISON_GAS 0x00, 0x00, 0x03, 0x5A, 0x28, 0x00, 0x00, 0x00, 0x16, 0x02, 0x8B
                  BARRAGE 0x00, 0x0F, 0x00, 0x55, 0x14, 0x00, 0x00, 0x00, 0x32, 0x00, 0x8C
                  LEECH_LIFE 0x00, 0x14, 0x06, 0x64, 0x0F, 0x00, 0x00, 0x00, 0x13, 0x00, 0x8D
                  LOVELY_KISS 0x00, 0x00, 0x00, 0x4B, 0x0A, 0x00, 0x00, 0x00, 0x16, 0x02, 0x8E
                  SKY_ATTACK 0x00, 0x8C, 0x02, 0x5A, 0x05, 0x1E, 0x00, 0x00, 0x52, 0x00, 0x8F
                  TRANSFORM 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x02, 0x90
                  BUBBLE 0x00, 0x28, 0x0B, 0x64, 0x1E, 0x0A, 0x08, 0x00, 0x12, 0x01, 0x91
                  DIZZY_PUNCH 0x00, 0x46, 0x00, 0x64, 0x0A, 0x14, 0x00, 0x00, 0x13, 0x00, 0x92
                  SPORE 0x00, 0x00, 0x0C, 0x64, 0x0F, 0x00, 0x00, 0x00, 0x16, 0x02, 0x93
                  FLASH 0x00, 0x00, 0x00, 0x64, 0x14, 0x00, 0x00, 0x00, 0x16, 0x02, 0x94
                  PSYWAVE 0x00, 0x01, 0x0E, 0x64, 0x0F, 0x00, 0x00, 0x00, 0x32, 0x01, 0x95
                  SPLASH 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x10, 0x00, 0x00, 0x02, 0x96
                  ACID_ARMOR 0x00, 0x00, 0x03, 0x00, 0x14, 0x00, 0x10, 0x00, 0x08, 0x02, 0x97
                  CRABHAMMER 0x00, 0x64, 0x0B, 0x5A, 0x0A, 0x00, 0x00, 0x00, 0x33, 0x00, 0x98
                  EXPLOSION 0x00, 0xFA, 0x00, 0x64, 0x05, 0x00, 0x20, 0x00, 0x32, 0x00, 0x99
                  FURY_SWIPES 0x00, 0x12, 0x00, 0x50, 0x0F, 0x00, 0x00, 0x00, 0x33, 0x00, 0x9A
                  BONEMERANG 0x00, 0x32, 0x04, 0x5A, 0x0A, 0x00, 0x00, 0x00, 0x32, 0x00, 0x9B
                  REST 0x00, 0x00, 0x0E, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x08, 0x02, 0x9C
                  ROCK_SLIDE 0x00, 0x4B, 0x05, 0x5A, 0x0A, 0x1E, 0x08, 0x00, 0x12, 0x00, 0x9D
                  HYPER_FANG 0x00, 0x50, 0x00, 0x5A, 0x0F, 0x00, 0x00, 0x00, 0x13, 0x00, 0x9E
                  SHARPEN 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x10, 0x00, 0x08, 0x02, 0x9F
                  CONVERSION 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x10, 0x00, 0x08, 0x02, 0xA0
                  TRI_ATTACK 0x00, 0x50, 0x00, 0x64, 0x0A, 0x14, 0x00, 0x00, 0x12, 0x01, 0xA1
                  SUPER_FANG 0x00, 0x01, 0x00, 0x5A, 0x0A, 0x00, 0x00, 0x00, 0x13, 0x00, 0xA2
                  SLASH 0x00, 0x46, 0x00, 0x64, 0x14, 0x00, 0x00, 0x00, 0x73, 0x00, 0xA3
                  SUBSTITUTE 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x08, 0x02, 0xA4
                  STRUGGLE 0x00, 0x32, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0xA5
                  SKETCH 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0xA6
                  TRIPLE_KICK 0x00, 0x0A, 0x01, 0x5A, 0x0A, 0x00, 0x00, 0x00, 0x33, 0x00, 0xA7
                  THIEF 0x00, 0x3C, 0x11, 0x64, 0x19, 0x64, 0x00, 0x00, 0x13, 0x00, 0xA8
                  SPIDER_WEB 0x00, 0x00, 0x06, 0x64, 0x0A, 0x00, 0x00, 0x00, 0x16, 0x02, 0xA9
                  MIND_READER 0x00, 0x00, 0x00, 0x64, 0x05, 0x00, 0x00, 0x00, 0x12, 0x02, 0xAA
                  NIGHTMARE 0x00, 0x00, 0x07, 0x64, 0x0F, 0x00, 0x00, 0x00, 0x12, 0x02, 0xAB
                  FLAME_WHEEL 0x00, 0x3C, 0x0A, 0x64, 0x19, 0x0A, 0x00, 0x00, 0x13, 0x00, 0xAC
                  SNORE 0x00, 0x32, 0x00, 0x64, 0x0F, 0x1E, 0x00, 0x00, 0x32, 0x01, 0xAD
                  CURSE 0x00, 0x00, 0x07, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x02, 0xAE
                  FLAIL 0x00, 0x01, 0x00, 0x64, 0x0F, 0x00, 0x00, 0x00, 0x33, 0x00, 0xAF
                  CONVERSION_2 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x02, 0xB0
                  AEROBLAST 0x00, 0x64, 0x02, 0x5F, 0x05, 0x00, 0x00, 0x00, 0x32, 0x01, 0xB1
                  COTTON_SPORE 0x00, 0x00, 0x0C, 0x64, 0x28, 0x00, 0x00, 0x00, 0x16, 0x02, 0xB2
                  REVERSTAL 0x00, 0x01, 0x01, 0x64, 0x0F, 0x00, 0x00, 0x00, 0x33, 0x00, 0xB3
                  SPITE 0x00, 0x00, 0x07, 0x64, 0x0A, 0x00, 0x00, 0x00, 0x16, 0x02, 0xB4
                  POWDER_SNOW 0x00, 0x28, 0x0F, 0x64, 0x19, 0x0A, 0x08, 0x00, 0x12, 0x01, 0xB5
                  PROTECT 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x04, 0x00, 0x02, 0xB6
                  MACH_PUNCH 0x00, 0x28, 0x01, 0x64, 0x1E, 0x00, 0x00, 0x01, 0x33, 0x00, 0xB7
                  SCARY_FACE 0x00, 0x00, 0x00, 0x64, 0x0A, 0x00, 0x00, 0x00, 0x16, 0x02, 0xB8
                  FEINT_ATTACK 0x00, 0x3C, 0x11, 0xFF, 0x14, 0x00, 0x00, 0x00, 0x32, 0x00, 0xB9
                  SWEET_KISS 0x00, 0x00, 0x12, 0x4B, 0x0A, 0x00, 0x00, 0x00, 0x16, 0x02, 0xBA
                  BELLY_DRUM 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x08, 0x02, 0xBB
                  SLUDGE_BOMB 0x00, 0x5A, 0x03, 0x64, 0x0A, 0x1E, 0x00, 0x00, 0x12, 0x01, 0xBC
                  MUD_SLAP 0x00, 0x14, 0x04, 0x64, 0x0A, 0x64, 0x00, 0x00, 0x12, 0x01, 0xBD
                  OCTAZOOKA 0x00, 0x41, 0x0B, 0x55, 0x0A, 0x32, 0x00, 0x00, 0x12, 0x01, 0xBE
                  SPIKES 0x00, 0x04, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x03, 0x02, 0xBF
                  ZAP_CANNON, 0x00, 0x78, 0x0D, 0x32, 0x05, 0x64, 0x00, 0x00, 0x12, 0x01, 0xC0
                  FORESIGHT 0x00, 0x00, 0x00, 0x64, 0x28, 0x00, 0x00, 0x00, 0x16, 0x02, 0xC1
                  DESTINY_BOND 0x00, 0x00, 0x07, 0x00, 0x05, 0x00, 0x10, 0x00, 0x00, 0x00, 0xC2
                  PERISH_SONG 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x10, 0x00, 0x00, 0x02, 0xC3
                  ICY_WIND 0x00, 0x37, 0x0F, 0x5F, 0x0F, 0x64, 0x08, 0x00, 0x12, 0x01, 0xC4
                  DETECT 0x00, 0x00, 0x01, 0x00, 0x0A, 0x00, 0x10, 0x04, 0x00, 0x02, 0xC5
                  BONE_RUSH 0x00, 0x19, 0x04, 0x5A, 0x0A, 0x00, 0x00, 0x00, 0x32, 0x00, 0xC6
                  LOCK_ON 0x00, 0x00, 0x00, 0x64, 0x05, 0x00, 0x00, 0x00, 0x12, 0x02, 0xC7
                  OUTRAGE 0x00, 0x78, 0x10, 0x64, 0x0A, 0x64, 0x04, 0x00, 0x33, 0x00, 0xC8
                  ZEN_HEADBUTT 0x00, 0x50, 0x0E, 0x5A, 0x0F, 0x14, 0x00, 0x00, 0x13, 0x00, 0x1AC
                  XSCISSOR 0x00, 0x50, 0x06, 0x64, 0x0F, 0x00, 0x00, 0x00, 0x33, 0x00, 0x194


                  Things to note:
                  Spoiler:
                  - Move spikes doesn't have 0x40 in target field as FBI wanted. I gave it value of 0.
                  - Feint Attack and Swift have accuracy set to 255. This means that value is going to show in the box with move info while playing. I'd advice switching it to 0.
                  - Priority values are taken from Bulbapedia's Priority article
                  - There may be some errors.


                  By the way, I looked at your damage calculator code and (I think) I spotted some minor errors.
                  Spoiler:
                  at line 346 Black Belt boosts power of dark moves instead of fighting
                  at 1046 there's no break statement for move Brine
                  at 1059 the same but with Retalitate
                  __________________
                  Support Pokeruby!

                  My works:
                  Battle Engine Upgrade
                  Pokemon Expansion
                  Items/TMs/Tutors Expansion
                  Various Features(Evo Methods, BW Repel, Levels Above 100, Trainers with EV, Nature Colored Stats)

                  Emerald Features:
                  Form Changes (KDS)
                  Reply With Quote
                    #63    
                  Old December 9th, 2015 (7:29 PM).
                  FBI's Avatar
                  FBI FBI is offline
                  Free supporter
                  • Silver Tier
                   
                  Join Date: Jan 2013
                  Location: Unknown Island
                  Gender: Male
                  Posts: 1,812
                  Quote:
                  Originally Posted by PokemonBen View Post
                  Okay, this seems a lot more complicated then what I thought you wanted people to do. No wonder I was getting confused.

                  Wish I could help, but learning C# on Youtube means info goes in one ear and out the other.
                  Except this is in C, not C# :D

                  Quote:
                  Originally Posted by BluRose View Post
                  Oh, really? I'll try to edit less, then...
                  *never uses programming jargon again*
                  Okay, then...
                  Either way, the big block of 51 moves should be good, even if I use the wrong terminology to describe it.

                  Just like vanilla, no? In which a script ID of 0 just makes it use a move that calculates the damage and then applies it to the opponent, and then everything else has a different effect. Do we want to rewrite the AI or do we want to keep to the original move script table?
                  I have no idea how it works in vanilla. I'm just going to implement it this way since it seems the most logical. I will write the AI indeed, the current AI is very easy to beat and even on highest difficulty, it's not difficult. People try obnoxious things like giving your AI opponent Full restores and high stat Pokemon, but gone shall be those days! (Now you can have a smart AI AND full restores. What can go wrong?).

                  Quote:
                  The thing then comes to mind would then be if you are going to make programming exceptions due to the accuracy above 100--for example, would it display in the Summary as, say 255 Accuracy instead of the hyphen that is usually present? And, eventually, would it be able to miss due to enough Sand-Attacks (.25 modifier (I believe 6 Sand-Attacks) makes a base of 255% accuracy down to 63.75% accuracy, less reliable than Focus Blast)?

                  I'm so sorry for these questions, by the way, and thanks for answering all of them thus far...
                  Nope, I'd just skip the accuracy check if it's over 100 accuracy.


                  Quote:
                  Originally Posted by BluRose View Post

                  Now, I'm going to end up making two script effect tables. The way he told me to make them would be the same way that Vanilla does: With a pointer leading to a Battle Script signifying each. However, if what FBI said about RAM allocations being different is really true and most of the Battle Scripts are useless under this system, how are we to do this, then?
                  Should we have a whole new effects possible table?
                  So the move effect table is being scrapped entirely. Move effects will be left to the move script entirely. Instead functions will be allocated for applying effects, and in the move script you simply call those functions. And yes, all the move scripts in vanilla will not be compatible unfortunately :/

                  Quote:
                  Originally Posted by DizzyEgg View Post

                  Things to note:
                  - Move spikes doesn't have 0x40 in target field as FBI wanted. I gave it value of 0.
                  - Feint Attack and Swift have accuracy set to 255. This means that value is going to show in the box with move info while playing. I'd advice switching it to 0.
                  - Priority values are taken from Bulbapedia's Priority article
                  - There may be some errors.
                  Good catch. Lets use accuracy 0 instead of 255 then. I don't really want to make an unneeded hook to fix the issue :x

                  Quote:
                  By the way, I looked at your damage calculator code and (I think) I spotted some minor errors.
                  [SPOILER]at line 346 Black Belt boosts power of dark moves instead of fighting
                  at 1046 there's no break statement for move Brine
                  at 1059 the same but with Retalitate
                  Fixed. Thanks.

                  --

                  Excellent work with the move tables BluRose and DizzyEgg! I look forward to seeing a completed and merged version of the files you guys have both made. Feel free to use github and send me your changes that way! Finally, I want to reiterate when talking about moves that are "never miss" moves:
                  " Lets use accuracy 0 instead of 255 then. I don't really want to make an unneeded hook to fix the issue".

                  On a related note, I've added some changes to battle_init.c and updated/added structs. You can check the changes on Github. Also I'm happy to say that SBird has started working on the graphical start up of things. I think we may be able to finish the project close to the new year, or January-ish. Maybe that's a little ambitious though :)
                  __________________
                  ...
                  Reply With Quote
                    #64    
                  Old December 10th, 2015 (10:41 AM). Edited December 10th, 2015 by GOLDstandard.
                  GOLDstandard's Avatar
                  GOLDstandard GOLDstandard is offline
                  Eclectic
                     
                    Join Date: Jul 2013
                    Location: California
                    Gender: Male
                    Nature: Bold
                    Posts: 51
                    I tried to post this on Github a while ago but I see that it's not changed so maybe I didn't post it correctly.
                    So here are all the forms and megas with the POKE_ prefix
                    Spoiler:

                    /* Megas and forms here. */
                    #define POKE_UNNOWN_B 0x2D1
                    #define POKE_UNNOWN_C 0x2D2
                    #define POKE_UNNOWN_D 0x2D3
                    #define POKE_UNNOWN_E 0x2D4
                    #define POKE_UNNOWN_F 0x2D5
                    #define POKE_UNNOWN_G 0x2D6
                    #define POKE_UNNOWN_H 0x2D7
                    #define POKE_UNNOWN_I 0x2D8
                    #define POKE_UNNOWN_J 0x2D9
                    #define POKE_UNNOWN_K 0x2DA
                    #define POKE_UNNOWN_L 0x2DB
                    #define POKE_UNNOWN_M 0x2DC
                    #define POKE_UNNOWN_N 0x2DD
                    #define POKE_UNNOWN_O 0x2DE
                    #define POKE_UNNOWN_P 0x2DF
                    #define POKE_UNNOWN_Q 0x2E0
                    #define POKE_UNNOWN_R 0x2E1
                    #define POKE_UNNOWN_S 0x2E2
                    #define POKE_UNNOWN_T 0x2E3
                    #define POKE_UNNOWN_U 0x2E4
                    #define POKE_UNNOWN_V 0x2E5
                    #define POKE_UNNOWN_W 0x2E6
                    #define POKE_UNNOWN_X 0x2E7
                    #define POKE_UNNOWN_Y 0x2E8
                    #define POKE_UNNOWN_Z 0x2E9
                    #define POKE_UNNOWN_? 0x2EA
                    #define POKE_UNNOWN_! 0x2EB
                    #define POKE_CASTFORM_SUN 0x2EC
                    #define POKE_CASTFORM_SNOW 0x2ED
                    #define POKE_CASTFORM_RAIN 0x2EF
                    #define POKE_DEOXYS_A 0x2F0
                    #define POKE_DEOXYS_D 0x2F1
                    #define POKE_DEOXYS_S 0x2F2
                    #define POKE_BURMY_S 0x2F3
                    #define POKE_BURMY_T 0x2F4
                    #define POKE_WORMADAM_S 0x2F5
                    #define POKE_WORMADAM_T 0x2F6
                    #define POKE_CHERRIM_O 0x2F7
                    #define POKE_SHELLOS_E 0x2F8
                    #define POKE_GASTRODON_E 0x2F9
                    #define POKE_ROTOM_MOW 0x2FA
                    #define POKE_ROTOM_HEAT 0x2FB
                    #define POKE_ROTOM_WASH 0x2FC
                    #define POKE_ROTOM_FROST 0x2FD
                    #define POKE_ROTOM_FAN 0x2FE
                    #define POKE_GIRATINA_O 0x2FF
                    #define POKE_SHAYMIN_S 0x300
                    #define POKE_ARCEUS_FIRE 0x301
                    #define POKE_ARCEUS_WATER 0x302
                    #define POKE_ARCEUS_ELECTRIC 0x303
                    #define POKE_ARCEUS_GRASS 0x304
                    #define POKE_ARCEUS_ICE 0x305
                    #define POKE_ARCEUS_FIGHTING 0x306
                    #define POKE_ARCEUS_POISON 0x307
                    #define POKE_ARCEUS_GROUND 0x308
                    #define POKE_ARCEUS_FLYING 0x309
                    #define POKE_ARCEUS_PSYCHIC 0x30A
                    #define POKE_ARCEUS_BUG 0x30B
                    #define POKE_ARCEUS_ROCK 0x30C
                    #define POKE_ARCEUS_GHOST 0x30D
                    #define POKE_ARCEUS_DRAGON 0x30E
                    #define POKE_ARCEUS_DARK 0x30F
                    #define POKE_ARCEUS_STEEL 0x310
                    #define POKE_ARCEUS_FAIRY 0x311
                    #define POKE_BASCULIN_R 0x312
                    #define POKE_DARMANITAN_Z 0x313
                    #define POKE_DEERLING_S 0x314
                    #define POKE_DEERLING_W 0x315
                    #define POKE_DEERLING_A 0x316
                    #define POKE_SAWSBUCK_S 0x317
                    #define POKE_SAWSBUCK_W 0x318
                    #define POKE_SAWSBUCK_A 0x319
                    #define POKE_TORNADUS_T 0x31A
                    #define POKE_THUNDURUS_T 0x31B
                    #define POKE_LANDORUS_T 0x31C
                    #define POKE_KYUREM_W 0x31D
                    #define POKE_KYUREM_B 0x31E
                    #define POKE_KELDEO_R 0x31F
                    #define POKE_MELOETTA_P 0x320
                    #define POKE_GENESECT_S 0x321
                    #define POKE_GENESECT_B 0x322
                    #define POKE_GENESECT_C 0x323
                    #define POKE_GENESECT_D 0x324
                    #define POKE_FLABEBE_Y 0x325
                    #define POKE_FLABEBE_O 0x326
                    #define POKE_FLABEBE_B 0x327
                    #define POKE_FLABEBE_W 0x328
                    #define POKE_FLOETTE_Y 0x329
                    #define POKE_FLOETTE_O 0x32A
                    #define POKE_FLOETTE_B 0x32B
                    #define POKE_FLOETTE_W 0x32C
                    #define POKE_FLORGES_Y 0x32D
                    #define POKE_FLORGES_O 0x32E
                    #define POKE_FLORGES_B 0x32F
                    #define POKE_FLORGES_W 0x330
                    #define POKE_AEGISLASH_B 0x331
                    #define POKE_PUMPKABOO_A 0x332
                    #define POKE_PUMPKABOO_L 0x333
                    #define POKE_PUMPKABOO_S 0x334
                    #define POKE_GOURGEIST_A 0x335
                    #define POKE_GOURGEIST_L 0x336
                    #define POKE_GOURGEIST_S 0x337
                    #define POKE_HOOPA_U 0x338
                    #define POKE_VENUSAUR_M 0x339
                    #define POKE_BLASTOISE_M 0x33A
                    #define POKE_CHARIZARD_X 0x33B
                    #define POKE_CHARIZARD_Y 0x33C
                    #define POKE_ALAKAZAM_M 0x33D
                    #define POKE_GENGAR_M 0x33E
                    #define POKE_KANGASKHAN_M 0x33F
                    #define POKE_PINSIR_M 0x340
                    #define POKE_GYARADOS_M 0x341
                    #define POKE_AERODACTYL_M 0x342
                    #define POKE_MEWTWO_X 0x343
                    #define POKE_MEWTWO_Y 0x344
                    #define POKE_AMPHAROS_M 0x345
                    #define POKE_SCIZOR_M 0x346
                    #define POKE_HERACROSS_M 0x347
                    #define POKE_HOUNDOOM_M 0x348
                    #define POKE_TYRANITAR_M 0x349
                    #define POKE_BLAZIKEN_M 0x34A
                    #define POKE_GARDEVOIR_M 0x34B
                    #define POKE_MAWILE_M 0x34C
                    #define POKE_AGGRON_M 0x34D
                    #define POKE_MEDICHAM_M 0x34E
                    #define POKE_MANECTRIC_M 0x34F
                    #define POKE_ABSOL_M 0x350
                    #define POKE_BANETTE_M 0x351
                    #define POKE_GARCHOMP_M 0x352
                    #define POKE_LUCARIO_M 0x353
                    #define POKE_ABOMASNOW_M 0x354
                    #define POKE_BEEDRILL_M 0x355
                    #define POKE_PIDEOT_M 0x356
                    #define POKE_SLOWBRO_M 0x357
                    #define POKE_STEELIX_M 0x358
                    #define POKE_SWAMPERT_M 0x359
                    #define POKE_SCEPTILE_M 0x35A
                    #define POKE_SABLEYE_M 0x35B
                    #define POKE_SHARPEDO_M 0x35C
                    #define POKE_CAMERUPT_M 0x35D
                    #define POKE_ALTARIA_M 0x35E
                    #define POKE_GLALIE_M 0x35F
                    #define POKE_SALAMENCE_M 0x360
                    #define POKE_METAGROSS_M 0x361
                    #define POKE_LATIAS_M 0x362
                    #define POKE_LATIOS_M 0x363
                    #define POKE_RAYQUAZA_M 0x364
                    #define POKE_LOPUNNY_M 0x365
                    #define POKE_GALLADE_M 0x366
                    #define POKE_AUDINO_M 0x367
                    #define POKE_DIANCIE_M 0x368
                    #define POKE_KYOGRE_P 0x369
                    #define POKE_GROUDON_P 0x36A

                    I used certain forms as standard:
                    Spoiler:
                    "A" for Unknown
                    Plant Burmy and Wormadam
                    Overcast form for Cherrim
                    East form for Shellos and Gastrodon
                    Blue Stripe for Basculin
                    Spring Form for Deerling and Sawsbuck
                    Red flower for Flabebe, Floette, and Florges
                    Small size for Pumpkaboo and Gourgeist
                    __________________
                    ~Eclectic~
                    Reply With Quote
                      #65    
                    Old December 10th, 2015 (3:01 PM).
                    ShyRayq's Avatar
                    ShyRayq ShyRayq is offline
                    Unprofessional Unprofessional
                       
                      Join Date: Aug 2007
                      Gender: Male
                      Nature: Adamant
                      Posts: 1,532
                      Quote:
                      Originally Posted by GOLDstandard View Post
                      I tried to post this on Github a while ago but I see that it's not changed so maybe I didn't post it correctly.
                      So here are all the forms and megas with the POKE_ prefix
                      Spoiler:

                      /* Megas and forms here. */
                      #define POKE_UNNOWN_A 0x2D1
                      #define POKE_UNNOWN_B 0x2D2
                      #define POKE_UNNOWN_C 0x2D3
                      #define POKE_UNNOWN_D 0x2D4
                      #define POKE_UNNOWN_E 0x2D5
                      #define POKE_UNNOWN_F 0x2D6
                      #define POKE_UNNOWN_G 0x2D7
                      #define POKE_UNNOWN_H 0x2D8
                      #define POKE_UNNOWN_I 0x2D9
                      #define POKE_UNNOWN_J 0x2DA
                      #define POKE_UNNOWN_K 0x2DB
                      #define POKE_UNNOWN_L 0x2DC
                      #define POKE_UNNOWN_M 0x2DD
                      #define POKE_UNNOWN_N 0x2DE
                      #define POKE_UNNOWN_O 0x2DF
                      #define POKE_UNNOWN_P 0x2E0
                      #define POKE_UNNOWN_Q 0x2E1
                      #define POKE_UNNOWN_R 0x2E2
                      #define POKE_UNNOWN_S 0x2E3
                      #define POKE_UNNOWN_T 0x2E4
                      #define POKE_UNNOWN_U 0x2E5
                      #define POKE_UNNOWN_V 0x2E6
                      #define POKE_UNNOWN_W 0x2E7
                      #define POKE_UNNOWN_X 0x2E8
                      #define POKE_UNNOWN_Y 0x2E9
                      #define POKE_UNNOWN_Z 0x2EA

                      #define POKE_CASTFORM_SUN 0x2EB
                      #define POKE_CASTFORM_SNOW 0x2EC
                      #define POKE_CASTFORM_RAIN 0x2ED

                      #define POKE_DEOXYS_A 0x2EF
                      #define POKE_DEOXYS_D 0x2F0
                      #define POKE_DEOXYS_S 0x2F1

                      #define POKE_BURMY_P 0x2F2
                      #define POKE_BURMY_S 0x2F3
                      #define POKE_BURMY_T 0x2F4

                      #define POKE_WORMADAM_P 0x2F5
                      #define POKE_WORMADAM_S 0x2F6
                      #define POKE_WORMADAM_T 0x2F7

                      #define POKE_CHERRIM_O 0x2F8
                      #define POKE_CHERRIM_S 0x2F9

                      #define POKE_SHELLOS_W 0x2FA
                      #define POKE_SHELLOS_E 0x2FB

                      #define POKE_GASTRODON_W 0x2FC
                      #define POKE_GASTRODON_E 0x2FD

                      #define POKE_ROTOM_MOW 0x2FE
                      #define POKE_ROTOM_HEAT 0x2FF
                      #define POKE_ROTOM_WASH 0x300
                      #define POKE_ROTOM_FROST 0x301
                      #define POKE_ROTOM_FAN 0x302

                      #define POKE_GIRATINA_O 0x303

                      #define POKE_SHAYMIN_S 0x304

                      #define POKE_ARCEUS_FIRE 0x305
                      #define POKE_ARCEUS_WATER 0x306
                      #define POKE_ARCEUS_ELECTRIC 0x307
                      #define POKE_ARCEUS_GRASS 0x308
                      #define POKE_ARCEUS_ICE 0x309
                      #define POKE_ARCEUS_FIGHTING 0x30A
                      #define POKE_ARCEUS_POISON 0x30B
                      #define POKE_ARCEUS_GROUND 0x30C
                      #define POKE_ARCEUS_FLYING 0x30D
                      #define POKE_ARCEUS_PSYCHIC 0x30E
                      #define POKE_ARCEUS_BUG 0x30F
                      #define POKE_ARCEUS_ROCK 0x310
                      #define POKE_ARCEUS_GHOST 0x311
                      #define POKE_ARCEUS_DRAGON 0x312
                      #define POKE_ARCEUS_DARK 0x313
                      #define POKE_ARCEUS_STEEL 0x314
                      #define POKE_ARCEUS_FAIRY 0x315

                      #define POKE_BASCULIN_B 0x316
                      #define POKE_BASCULIN_R 0x317

                      #define POKE_DARMANITAN_Z 0x318

                      //For Deerling and Sawsbuck, I assumed spring-form to be the standard form
                      #define POKE_DEERLING_S 0x319
                      #define POKE_DEERLING_W 0x31A
                      #define POKE_DEERLING_A 0x31B

                      #define POKE_SAWSBUCK_S 0x31C
                      #define POKE_SAWSBUCK_W 0x31D
                      #define POKE_SAWSBUCK_A 0x31E

                      #define POKE_TORNADUS_T 0x31F

                      #define POKE_THUNDURUS_T 0x320

                      #define POKE_LANDORUS_T 0x321

                      #define POKE_KYUREM_W 0x322
                      #define POKE_KYUREM_B 0x323

                      #define POKE_MELOETTA_P 0x324

                      #define POKE_GENESECT_S 0x325
                      #define POKE_GENESECT_B 0x326
                      #define POKE_GENESECT_C 0x327
                      #define POKE_GENESECT_D 0x328

                      #define POKE_FLABEBE_Y 0x329
                      #define POKE_FLABEBE_O 0x32A
                      #define POKE_FLABEBE_B 0x32B
                      #define POKE_FLABEBE_W 0x32C

                      #define POKE_FLOETTE_Y 0x32D
                      #define POKE_FLOETTE_O 0x32E
                      #define POKE_FLOETTE_B 0x32F
                      #define POKE_FLOETTE_W 0x330

                      #define POKE_FLORGES_Y 0x331
                      #define POKE_FLORGES_O 0x332
                      #define POKE_FLORGES_B 0x333
                      #define POKE_FLORGES_W 0x334

                      #define POKE_AEGISLASH_B 0x335

                      //Pumpkaboo and Gourgeist assume typical size is small
                      #define POKE_PUMPKABOO_A 0x336
                      #define POKE_PUMPKABOO_L 0x337
                      #define POKE_PUMPKABOO_S 0x338

                      #define POKE_GOURGEIST_A 0x339
                      #define POKE_GOURGEIST_L 0x33A
                      #define POKE_GOURGEIST_S 0x33B

                      #define POKE_HOOPA_U 0x33C

                      #define POKE_KELDEO_R 0x33D

                      #define POKE_VENUSAUR_M 0x33E
                      #define POKE_BLASTOISE_M 0x33F
                      #define POKE_CHARIZARD_X 0x340
                      #define POKE_CHARIZARD_Y 0x341
                      #define POKE_ALAKAZAM_M 0x342
                      #define POKE_GENGAR_M 0x343
                      #define POKE_KANGASKHAN_M 0x344
                      #define POKE_PINSIR_M 0x345
                      #define POKE_GYARADOS_M 0x346
                      #define POKE_AERODACTYL_M 0x347
                      #define POKE_MEWTWO_X 0x348
                      #define POKE_MEWTWO_Y 0x349
                      #define POKE_AMPHAROS_M 0x34A
                      #define POKE_SCIZOR_M 0x34B
                      #define POKE_HERACROSS_M 0x34C
                      #define POKE_HOUNDOOM_M 0x34D
                      #define POKE_TYRANITAR_M 0x34E
                      #define POKE_BLAZIKEN_M 0x34F
                      #define POKE_GARDEVOIR_M 0x350
                      #define POKE_MAWILE_M 0x351
                      #define POKE_AGGRON_M 0x352
                      #define POKE_MEDICHAM_M 0x353
                      #define POKE_MANECTRIC_M 0x354
                      #define POKE_ABSOL_M 0x355
                      #define POKE_BANETTE_M 0x356
                      #define POKE_GARCHOMP_M 0x357
                      #define POKE_LUCARIO_M 0x358
                      #define POKE_ABOMASNOW_M 0x359
                      #define POKE_BEEDRILL_M 0x35A
                      #define POKE_PIDEOT_M 0x35B
                      #define POKE_SLOWBRO_M 0x35C
                      #define POKE_STEELIX_M 0x35D
                      #define POKE_SWAMPERT_M 0x35E
                      #define POKE_SCEPTILE_M 0x35F
                      #define POKE_SABLEYE_M 0x360
                      #define POKE_SHARPEDO_M 0x361
                      #define POKE_CAMERUPT_M 0x362
                      #define POKE_ALTARIA_M 0x363
                      #define POKE_GLALIE_M 0x364
                      #define POKE_SALAMENCE_M 0x365
                      #define POKE_METAGROSS_M 0x366
                      #define POKE_LATIAS_M 0x367
                      #define POKE_LATIOS_M 0x368
                      #define POKE_RAYQUAZA_M 0x369
                      #define POKE_LOPUNNY_M 0x36A
                      #define POKE_GALLADE_M 0x36B
                      #define POKE_AUDINO_M 0x36C
                      #define POKE_DIANCIE_M 0x36D
                      #define POKE_KYOGRE_P 0x36E
                      #define POKE_GROUDON_P 0x36F

                      And the same list without the prefix.
                      Spoiler:
                      /* Megas and forms here. */
                      #define UNNOWN_A 0x2D1
                      #define UNNOWN_B 0x2D2
                      #define UNNOWN_C 0x2D3
                      #define UNNOWN_D 0x2D4
                      #define UNNOWN_E 0x2D5
                      #define UNNOWN_F 0x2D6
                      #define UNNOWN_G 0x2D7
                      #define UNNOWN_H 0x2D8
                      #define UNNOWN_I 0x2D9
                      #define UNNOWN_J 0x2DA
                      #define UNNOWN_K 0x2DB
                      #define UNNOWN_L 0x2DC
                      #define UNNOWN_M 0x2DD
                      #define UNNOWN_N 0x2DE
                      #define UNNOWN_O 0x2DF
                      #define UNNOWN_P 0x2E0
                      #define UNNOWN_Q 0x2E1
                      #define UNNOWN_R 0x2E2
                      #define UNNOWN_S 0x2E3
                      #define UNNOWN_T 0x2E4
                      #define UNNOWN_U 0x2E5
                      #define UNNOWN_V 0x2E6
                      #define UNNOWN_W 0x2E7
                      #define UNNOWN_X 0x2E8
                      #define UNNOWN_Y 0x2E9
                      #define UNNOWN_Z 0x2EA

                      #define CASTFORM_SUN 0x2EB
                      #define CASTFORM_SNOW 0x2EC
                      #define CASTFORM_RAIN 0x2ED

                      #define DEOXYS_A 0x2EF
                      #define DEOXYS_D 0x2F0
                      #define DEOXYS_S 0x2F1

                      #define BURMY_P 0x2F2
                      #define BURMY_S 0x2F3
                      #define BURMY_T 0x2F4

                      #define WORMADAM_P 0x2F5
                      #define WORMADAM_S 0x2F6
                      #define WORMADAM_T 0x2F7

                      #define CHERRIM_O 0x2F8
                      #define CHERRIM_S 0x2F9

                      #define SHELLOS_W 0x2FA
                      #define SHELLOS_E 0x2FB

                      #define GASTRODON_W 0x2FC
                      #define GASTRODON_E 0x2FD

                      #define ROTOM_MOW 0x2FE
                      #define ROTOM_HEAT 0x2FF
                      #define ROTOM_WASH 0x300
                      #define ROTOM_FROST 0x301
                      #define ROTOM_FAN 0x302

                      #define GIRATINA_O 0x303

                      #define SHAYMIN_S 0x304

                      #define ARCEUS_FIRE 0x305
                      #define ARCEUS_WATER 0x306
                      #define ARCEUS_ELECTRIC 0x307
                      #define ARCEUS_GRASS 0x308
                      #define ARCEUS_ICE 0x309
                      #define ARCEUS_FIGHTING 0x30A
                      #define ARCEUS_POISON 0x30B
                      #define ARCEUS_GROUND 0x30C
                      #define ARCEUS_FLYING 0x30D
                      #define ARCEUS_PSYCHIC 0x30E
                      #define ARCEUS_BUG 0x30F
                      #define ARCEUS_ROCK 0x310
                      #define ARCEUS_GHOST 0x311
                      #define ARCEUS_DRAGON 0x312
                      #define ARCEUS_DARK 0x313
                      #define ARCEUS_STEEL 0x314
                      #define ARCEUS_FAIRY 0x315

                      #define BASCULIN_B 0x316
                      #define BASCULIN_R 0x317

                      #define DARMANITAN_Z 0x318

                      //For Deerling and Sawsbuck, I assumed spring-form to be the standard form
                      #define DEERLING_S 0x319
                      #define DEERLING_W 0x31A
                      #define DEERLING_A 0x31B

                      #define SAWSBUCK_S 0x31C
                      #define SAWSBUCK_W 0x31D
                      #define SAWSBUCK_A 0x31E

                      #define TORNADUS_T 0x31F

                      #define THUNDURUS_T 0x320

                      #define LANDORUS_T 0x321

                      #define KYUREM_W 0x322
                      #define KYUREM_B 0x323

                      #define MELOETTA_P 0x324

                      #define GENESECT_S 0x325
                      #define GENESECT_B 0x326
                      #define GENESECT_C 0x327
                      #define GENESECT_D 0x328

                      #define FLABEBE_Y 0x329
                      #define FLABEBE_O 0x32A
                      #define FLABEBE_B 0x32B
                      #define FLABEBE_W 0x32C

                      #define FLOETTE_Y 0x32D
                      #define FLOETTE_O 0x32E
                      #define FLOETTE_B 0x32F
                      #define FLOETTE_W 0x330

                      #define FLORGES_Y 0x331
                      #define FLORGES_O 0x332
                      #define FLORGES_B 0x333
                      #define FLORGES_W 0x334

                      #define AEGISLASH_B 0x335

                      //Pumpkaboo and Gourgeist assume typical size is small
                      #define PUMPKABOO_A 0x336
                      #define PUMPKABOO_L 0x337
                      #define PUMPKABOO_S 0x338

                      #define GOURGEIST_A 0x339
                      #define GOURGEIST_L 0x33A
                      #define GOURGEIST_S 0x33B

                      #define HOOPA_U 0x33C

                      #define KELDEO_R 0x33D

                      #define VENUSAUR_M 0x33E
                      #define BLASTOISE_M 0x33F
                      #define CHARIZARD_X 0x340
                      #define CHARIZARD_Y 0x341
                      #define ALAKAZAM_M 0x342
                      #define GENGAR_M 0x343
                      #define KANGASKHAN_M 0x344
                      #define PINSIR_M 0x345
                      #define GYARADOS_M 0x346
                      #define AERODACTYL_M 0x347
                      #define MEWTWO_X 0x348
                      #define MEWTWO_Y 0x349
                      #define AMPHAROS_M 0x34A
                      #define SCIZOR_M 0x34B
                      #define HERACROSS_M 0x34C
                      #define HOUNDOOM_M 0x34D
                      #define TYRANITAR_M 0x34E
                      #define BLAZIKEN_M 0x34F
                      #define GARDEVOIR_M 0x350
                      #define MAWILE_M 0x351
                      #define AGGRON_M 0x352
                      #define MEDICHAM_M 0x353
                      #define MANECTRIC_M 0x354
                      #define ABSOL_M 0x355
                      #define BANETTE_M 0x356
                      #define GARCHOMP_M 0x357
                      #define LUCARIO_M 0x358
                      #define ABOMASNOW_M 0x359
                      #define BEEDRILL_M 0x35A
                      #define PIDEOT_M 0x35B
                      #define SLOWBRO_M 0x35C
                      #define STEELIX_M 0x35D
                      #define SWAMPERT_M 0x35E
                      #define SCEPTILE_M 0x35F
                      #define SABLEYE_M 0x360
                      #define SHARPEDO_M 0x361
                      #define CAMERUPT_M 0x362
                      #define ALTARIA_M 0x363
                      #define GLALIE_M 0x364
                      #define SALAMENCE_M 0x365
                      #define METAGROSS_M 0x366
                      #define LATIAS_M 0x367
                      #define LATIOS_M 0x368
                      #define RAYQUAZA_M 0x369
                      #define LOPUNNY_M 0x36A
                      #define GALLADE_M 0x36B
                      #define AUDINO_M 0x36C
                      #define DIANCIE_M 0x36D
                      #define KYOGRE_P 0x36E
                      #define GROUDON_P 0x36F
                      Just posting to say you forgot Unown ! And ?.
                      Also, if you're going to assume natural forms for Pokemon, shouldn't you do the same for Unown, Burmy, Wormadam, Cherrim, Shellos, Gastrodon and Basculin?
                      __________________
                      3DS Friend Code: 5069-3944-3902
                      IGN: Peter; (X, Y, OR, AS, S, M)
                      Friend Safari: (Fighting) Throh, Meditite, Breloom
                      Living Pokedex Complete: LG, E, Pl, B, B2, Y, OR, M
                      Big thanks especially to DestinedJagold, Xerneas_X, Elements1 and ~RNC~

                      PM me if you want to trade, or add my FC.
                      Reply With Quote
                        #66    
                      Old December 10th, 2015 (8:03 PM). Edited December 10th, 2015 by GOLDstandard.
                      GOLDstandard's Avatar
                      GOLDstandard GOLDstandard is offline
                      Eclectic
                         
                        Join Date: Jul 2013
                        Location: California
                        Gender: Male
                        Nature: Bold
                        Posts: 51
                        Quote:
                        Originally Posted by ShyRayq View Post
                        Just posting to say you forgot Unown ! And ?.
                        Also, if you're going to assume natural forms for Pokemon, shouldn't you do the same for Unown, Burmy, Wormadam, Cherrim, Shellos, Gastrodon and Basculin?
                        An oversight on my part, will edit now. Thanks for noticing.

                        I did have some questions for FBI though. As far as graphics go, I take it we're going to use 64x64 sprites correct? In terms of other sprites like sprites for items, are we going to keep sizing consistent with cannon firered (24x24 iirc).

                        Also, depending on difficulty, it might be a cool feature to toggle in battle animations for Pokemon like in Emerald. I fear that may be too hard though.

                        Last question is about attack animations and battle backgrounds. Do you plan to rip the anims directly from the ROM or write a custom animation script that makes it easier to write new ones in the future?

                        Thanks, and keep it up!
                        __________________
                        ~Eclectic~
                        Reply With Quote
                          #67    
                        Old December 10th, 2015 (11:48 PM).
                        DizzyEgg's Avatar
                        DizzyEgg DizzyEgg is offline
                           
                          Join Date: Feb 2014
                          Location: Poland
                          Age: 20
                          Gender: Male
                          Nature: Quiet
                          Posts: 716
                          Quote:
                          Originally Posted by GOLDstandard View Post
                          I tried to post this on Github a while ago but I see that it's not changed so maybe I didn't post it correctly.
                          So here are all the forms and megas with the POKE_ prefix
                          Spoiler:

                          /* Megas and forms here. */
                          #define POKE_UNNOWN_B 0x2D1
                          #define POKE_UNNOWN_C 0x2D2
                          #define POKE_UNNOWN_D 0x2D3
                          #define POKE_UNNOWN_E 0x2D4
                          #define POKE_UNNOWN_F 0x2D5
                          #define POKE_UNNOWN_G 0x2D6
                          #define POKE_UNNOWN_H 0x2D7
                          #define POKE_UNNOWN_I 0x2D8
                          #define POKE_UNNOWN_J 0x2D9
                          #define POKE_UNNOWN_K 0x2DA
                          #define POKE_UNNOWN_L 0x2DB
                          #define POKE_UNNOWN_M 0x2DC
                          #define POKE_UNNOWN_N 0x2DD
                          #define POKE_UNNOWN_O 0x2DE
                          #define POKE_UNNOWN_P 0x2DF
                          #define POKE_UNNOWN_Q 0x2E0
                          #define POKE_UNNOWN_R 0x2E1
                          #define POKE_UNNOWN_S 0x2E2
                          #define POKE_UNNOWN_T 0x2E3
                          #define POKE_UNNOWN_U 0x2E4
                          #define POKE_UNNOWN_V 0x2E5
                          #define POKE_UNNOWN_W 0x2E6
                          #define POKE_UNNOWN_X 0x2E7
                          #define POKE_UNNOWN_Y 0x2E8
                          #define POKE_UNNOWN_Z 0x2E9
                          #define POKE_UNNOWN_? 0x2EA
                          #define POKE_UNNOWN_! 0x2EB
                          #define POKE_CASTFORM_SUN 0x2EC
                          #define POKE_CASTFORM_SNOW 0x2ED
                          #define POKE_CASTFORM_RAIN 0x2EF
                          #define POKE_DEOXYS_A 0x2F0
                          #define POKE_DEOXYS_D 0x2F1
                          #define POKE_DEOXYS_S 0x2F2
                          #define POKE_BURMY_S 0x2F3
                          #define POKE_BURMY_T 0x2F4
                          #define POKE_WORMADAM_S 0x2F5
                          #define POKE_WORMADAM_T 0x2F6
                          #define POKE_CHERRIM_O 0x2F7
                          #define POKE_SHELLOS_E 0x2F8
                          #define POKE_GASTRODON_E 0x2F9
                          #define POKE_ROTOM_MOW 0x2FA
                          #define POKE_ROTOM_HEAT 0x2FB
                          #define POKE_ROTOM_WASH 0x2FC
                          #define POKE_ROTOM_FROST 0x2FD
                          #define POKE_ROTOM_FAN 0x2FE
                          #define POKE_GIRATINA_O 0x2FF
                          #define POKE_SHAYMIN_S 0x300
                          #define POKE_ARCEUS_FIRE 0x301
                          #define POKE_ARCEUS_WATER 0x302
                          #define POKE_ARCEUS_ELECTRIC 0x303
                          #define POKE_ARCEUS_GRASS 0x304
                          #define POKE_ARCEUS_ICE 0x305
                          #define POKE_ARCEUS_FIGHTING 0x306
                          #define POKE_ARCEUS_POISON 0x307
                          #define POKE_ARCEUS_GROUND 0x308
                          #define POKE_ARCEUS_FLYING 0x309
                          #define POKE_ARCEUS_PSYCHIC 0x30A
                          #define POKE_ARCEUS_BUG 0x30B
                          #define POKE_ARCEUS_ROCK 0x30C
                          #define POKE_ARCEUS_GHOST 0x30D
                          #define POKE_ARCEUS_DRAGON 0x30E
                          #define POKE_ARCEUS_DARK 0x30F
                          #define POKE_ARCEUS_STEEL 0x310
                          #define POKE_ARCEUS_FAIRY 0x311
                          #define POKE_BASCULIN_R 0x312
                          #define POKE_DARMANITAN_Z 0x313
                          #define POKE_DEERLING_S 0x314
                          #define POKE_DEERLING_W 0x315
                          #define POKE_DEERLING_A 0x316
                          #define POKE_SAWSBUCK_S 0x317
                          #define POKE_SAWSBUCK_W 0x318
                          #define POKE_SAWSBUCK_A 0x319
                          #define POKE_TORNADUS_T 0x31A
                          #define POKE_THUNDURUS_T 0x31B
                          #define POKE_LANDORUS_T 0x31C
                          #define POKE_KYUREM_W 0x31D
                          #define POKE_KYUREM_B 0x31E
                          #define POKE_KELDEO_R 0x31F
                          #define POKE_MELOETTA_P 0x320
                          #define POKE_GENESECT_S 0x321
                          #define POKE_GENESECT_B 0x322
                          #define POKE_GENESECT_C 0x323
                          #define POKE_GENESECT_D 0x324
                          #define POKE_FLABEBE_Y 0x325
                          #define POKE_FLABEBE_O 0x326
                          #define POKE_FLABEBE_B 0x327
                          #define POKE_FLABEBE_W 0x328
                          #define POKE_FLOETTE_Y 0x329
                          #define POKE_FLOETTE_O 0x32A
                          #define POKE_FLOETTE_B 0x32B
                          #define POKE_FLOETTE_W 0x32C
                          #define POKE_FLORGES_Y 0x32D
                          #define POKE_FLORGES_O 0x32E
                          #define POKE_FLORGES_B 0x32F
                          #define POKE_FLORGES_W 0x330
                          #define POKE_AEGISLASH_B 0x331
                          #define POKE_PUMPKABOO_A 0x332
                          #define POKE_PUMPKABOO_L 0x333
                          #define POKE_PUMPKABOO_S 0x334
                          #define POKE_GOURGEIST_A 0x335
                          #define POKE_GOURGEIST_L 0x336
                          #define POKE_GOURGEIST_S 0x337
                          #define POKE_HOOPA_U 0x338
                          #define POKE_VENUSAUR_M 0x339
                          #define POKE_BLASTOISE_M 0x33A
                          #define POKE_CHARIZARD_X 0x33B
                          #define POKE_CHARIZARD_Y 0x33C
                          #define POKE_ALAKAZAM_M 0x33D
                          #define POKE_GENGAR_M 0x33E
                          #define POKE_KANGASKHAN_M 0x33F
                          #define POKE_PINSIR_M 0x340
                          #define POKE_GYARADOS_M 0x341
                          #define POKE_AERODACTYL_M 0x342
                          #define POKE_MEWTWO_X 0x343
                          #define POKE_MEWTWO_Y 0x344
                          #define POKE_AMPHAROS_M 0x345
                          #define POKE_SCIZOR_M 0x346
                          #define POKE_HERACROSS_M 0x347
                          #define POKE_HOUNDOOM_M 0x348
                          #define POKE_TYRANITAR_M 0x349
                          #define POKE_BLAZIKEN_M 0x34A
                          #define POKE_GARDEVOIR_M 0x34B
                          #define POKE_MAWILE_M 0x34C
                          #define POKE_AGGRON_M 0x34D
                          #define POKE_MEDICHAM_M 0x34E
                          #define POKE_MANECTRIC_M 0x34F
                          #define POKE_ABSOL_M 0x350
                          #define POKE_BANETTE_M 0x351
                          #define POKE_GARCHOMP_M 0x352
                          #define POKE_LUCARIO_M 0x353
                          #define POKE_ABOMASNOW_M 0x354
                          #define POKE_BEEDRILL_M 0x355
                          #define POKE_PIDEOT_M 0x356
                          #define POKE_SLOWBRO_M 0x357
                          #define POKE_STEELIX_M 0x358
                          #define POKE_SWAMPERT_M 0x359
                          #define POKE_SCEPTILE_M 0x35A
                          #define POKE_SABLEYE_M 0x35B
                          #define POKE_SHARPEDO_M 0x35C
                          #define POKE_CAMERUPT_M 0x35D
                          #define POKE_ALTARIA_M 0x35E
                          #define POKE_GLALIE_M 0x35F
                          #define POKE_SALAMENCE_M 0x360
                          #define POKE_METAGROSS_M 0x361
                          #define POKE_LATIAS_M 0x362
                          #define POKE_LATIOS_M 0x363
                          #define POKE_RAYQUAZA_M 0x364
                          #define POKE_LOPUNNY_M 0x365
                          #define POKE_GALLADE_M 0x366
                          #define POKE_AUDINO_M 0x367
                          #define POKE_DIANCIE_M 0x368
                          #define POKE_KYOGRE_P 0x369
                          #define POKE_GROUDON_P 0x36A

                          I used certain forms as standard:
                          Spoiler:
                          "A" for Unknown
                          Plant Burmy and Wormadam
                          Overcast form for Cherrim
                          East form for Shellos and Gastrodon
                          Blue Stripe for Basculin
                          Spring Form for Deerling and Sawsbuck
                          Red flower for Flabebe, Floette, and Florges
                          Small size for Pumpkaboo and Gourgeist
                          I think Unown should have deafault indices as they are already in game between 0x19D and 0x1B7. I'm also not
                          sure if making Deoxys and Castform was necessary.
                          Reply With Quote
                            #68    
                          Old December 12th, 2015 (12:28 AM).
                          GOLDstandard's Avatar
                          GOLDstandard GOLDstandard is offline
                          Eclectic
                             
                            Join Date: Jul 2013
                            Location: California
                            Gender: Male
                            Nature: Bold
                            Posts: 51
                            Quote:
                            Originally Posted by DizzyEgg View Post
                            I think Unown should have deafault indices as they are already in game between 0x19D and 0x1B7. I'm also not
                            sure if making Deoxys and Castform was necessary.
                            Why wouldn't Deoxys and Castform be necessary? Also, I know that Unown have default indices in the game, but that doesn't mean that we have to structure this engine in the same way. IMO it makes more sense to keep all forms that are not a change in Pokedex number to be in the forms/megas section.
                            __________________
                            ~Eclectic~
                            Reply With Quote
                              #69    
                            Old January 14th, 2016 (2:39 AM). Edited January 14th, 2016 by BLAx501!.
                            BLAx501!'s Avatar
                            BLAx501! BLAx501! is offline
                            Pokemon Flux
                               
                              Join Date: Oct 2013
                              Location: Madrid, Spain
                              Gender: Male
                              Nature: Gentle
                              Posts: 77
                              How is the developement of this project going?

                              I'm going to have more time next week since I have just two more exams at university, then I can help with anything needed

                              EDIT: I've seen the Git and no commits have been done from over a month :'(
                              Reply With Quote
                                #70    
                              Old January 14th, 2016 (8:39 AM).
                              Criminon's Avatar
                              Criminon Criminon is offline
                              Pokemon: Aqua Blue
                                 
                                Join Date: Aug 2012
                                Gender: Male
                                Posts: 243
                                FBI you sly dog. Wonderful news.
                                __________________
                                FC: 3582 - 9598 - 9978. Add me!
                                Reply With Quote
                                  #71    
                                Old January 14th, 2016 (11:07 AM).
                                FBI's Avatar
                                FBI FBI is offline
                                Free supporter
                                • Silver Tier
                                 
                                Join Date: Jan 2013
                                Location: Unknown Island
                                Gender: Male
                                Posts: 1,812
                                So I took a small break during the Christmas Holidays to slack off deal with some family matters. Now I'm back, and I've started working again!

                                Thanks to everyone who has contributed a table file for the project!

                                --
                                Well, I've run into a somewhat unfortunate problem. For triple battles, there isn't enough room on the screen to keep the current positions of the battle platforms/HP bars. So we need to make a new kind of graphic for triple battles so the HP bars of your opponent, your own Pkmn as well as everyone's sprites are all displayed at the same time.

                                I've been considering using custom HP bars, since 64x128 per HP bar is ridiculously huge (the size FR uses by default). When I tried mapping things in their places we get this clustered image

                                The black boxes are Pokemon and the red boxes are supposed to be HP bars. As you can see it's a cluttered mess and you can barely make out the battle background.

                                So here is my request. Someone make some suitable custom HP bars, but they must have the following features:
                                1) One version for opponent, and another version for player
                                2) Player's version must display, lvl, exp bar, hp bar, pkmn gender, name
                                3) Opponent's version must display lvl, hp bar, pkmn gender, name, and the Pokedex "caught" icon
                                4) Try to squeeze it into 128 pixels long but maybe 32 pixels high?
                                5) can't look like crap :3

                                Once the HP bar is made, if you can make a little diagram of how you see it's placement in triples, I'd greatly appreciate that :D

                                More updates in the coming weeks.
                                __________________
                                ...
                                Reply With Quote
                                  #72    
                                Old January 14th, 2016 (11:29 AM).
                                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: 887
                                  Quote:
                                  Originally Posted by FBI View Post
                                  So here is my request. Someone make some suitable custom HP bars, but they must have the following features:
                                  1) One version for opponent, and another version for player
                                  2) Player's version must display, lvl, exp bar, hp bar, pkmn gender, name
                                  3) Opponent's version must display lvl, hp bar, pkmn gender, name, and the Pokedex "caught" icon
                                  4) Try to squeeze it into 128 pixels long but maybe 32 pixels high?
                                  5) can't look like crap :3

                                  Once the HP bar is made, if you can make a little diagram of how you see it's placement in triples, I'd greatly appreciate that :D

                                  More updates in the coming weeks.
                                  There will need to be room for status condition indicators as well. Maybe while move animations are going, the health bars of everyone but the target could be hidden? Or everyone but the target and attacker for moves like Pain Split or something? It would go a long way into not making that battle screen a fustercluck.
                                  Reply With Quote
                                    #73    
                                  Old January 15th, 2016 (6:49 PM). Edited January 15th, 2016 by MrDollSteak.
                                  MrDollSteak's Avatar
                                  MrDollSteak MrDollSteak is offline
                                  Formerly known as 11bayerf1
                                     
                                    Join Date: Dec 2008
                                    Location: Hong Kong
                                    Age: 22
                                    Gender: Male
                                    Posts: 817
                                    Quote:
                                    Originally Posted by FBI View Post
                                    So I took a small break during the Christmas Holidays to slack off deal with some family matters. Now I'm back, and I've started working again!

                                    Thanks to everyone who has contributed a table file for the project!

                                    --
                                    Well, I've run into a somewhat unfortunate problem. For triple battles, there isn't enough room on the screen to keep the current positions of the battle platforms/HP bars. So we need to make a new kind of graphic for triple battles so the HP bars of your opponent, your own Pkmn as well as everyone's sprites are all displayed at the same time.

                                    I've been considering using custom HP bars, since 64x128 per HP bar is ridiculously huge (the size FR uses by default). When I tried mapping things in their places we get this clustered image

                                    The black boxes are Pokemon and the red boxes are supposed to be HP bars. As you can see it's a cluttered mess and you can barely make out the battle background.

                                    So here is my request. Someone make some suitable custom HP bars, but they must have the following features:
                                    1) One version for opponent, and another version for player
                                    2) Player's version must display, lvl, exp bar, hp bar, pkmn gender, name
                                    3) Opponent's version must display lvl, hp bar, pkmn gender, name, and the Pokedex "caught" icon
                                    4) Try to squeeze it into 128 pixels long but maybe 32 pixels high?
                                    5) can't look like crap :3

                                    Once the HP bar is made, if you can make a little diagram of how you see it's placement in triples, I'd greatly appreciate that :D

                                    More updates in the coming weeks.
                                    Actually FBI the existing HP bars for double battles use the same size for the player and the opponent, only displaying, Name, Gender, Level, Status and HP. They're 32 x 128 for both. But realistically they're more like 32 x 104 with how they're presented on screen.

                                    Also I have no problem trying to work out how to align them on the screen, my only question is are you doing this in the Fire Red style? Otherwise I can probably dummy up a set of HP bars to use in the Platinum or HGSS style. I assume the insertion process will be the same as in Fire Red, ie. not rewriting the HP bar generation system. If you are there's probably a bit more freedom.

                                    That being said, I really don't see how you can show 6 64x64 sprites and then 6 32x128 HP bars on the screen without severely blocking things. Maybe Deokishu's suggestion could work, perhaps being able to cycle through the HP bars before a move has been selected, maybe only having two on screen, and only making one HP bar pop up when a specific pokemon takes damage.
                                    __________________
                                    Reply With Quote
                                      #74    
                                    Old January 15th, 2016 (8:52 PM). Edited January 15th, 2016 by BlackWhiteRobin.
                                    BlackWhiteRobin's Avatar
                                    BlackWhiteRobin BlackWhiteRobin is offline
                                       
                                      Join Date: Sep 2012
                                      Age: 19
                                      Gender: Male
                                      Nature: Quirky
                                      Posts: 539
                                      Well, I kinda imagined triple battles to be somewhat like this (status indicators became colored dots; notice the purple dot indicates PSN status) :

                                      And along with a mockup of how the Pokemon sprites should be aligned:

                                      Transparent version (a little harder to read but looks more modern-styled) :



                                      P.S. Tell me if you need the doubles and singles battle versions. I just posted this so you can see my concept of it.
                                      __________________

                                      Reply With Quote
                                        #75    
                                      Old January 16th, 2016 (4:21 AM).
                                      SBird SBird is offline
                                         
                                        Join Date: Aug 2009
                                        Gender: Male
                                        Posts: 83
                                        To me those look kinda squashed, the gba screen is just really small. What probably could be done is the following: Do not show every single pokémon on screen at the same time, but instead make it so you can scroll through them when targetting. That would probably easier.

                                        Also FBI: I think we are missing each other in IRC again :D

                                        ~SBird
                                        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 10:23 PM.