• Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
  • Our friends from the Johto Times are hosting a favorite Pokémon poll - and we'd love for you to participate! Click here for information on how to vote for your favorites!
  • Cyndy, May, Hero (Conquest), or Wes - which Pokémon protagonist is your favorite? Let us know by voting in our poll!
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

[ASM & Hex] [Emerald] I'm currently researching Battle Frontier's enemy Pokémon's 510 EV check

McPaul

On my way to become a controversial and hated memb
  • 289
    Posts
    7
    Years
    In the project of making a No EV and a Full EV patch for Pokémon Emerald, I'm researching how EV work in Pokémon Emerald. And currently how they work for enemy Pokémon in the Battle Frontier.

    Currently, they work like this:

    The 510 EV are reparted in 6 bytes noted ABCDEF, A being SPDEF, B being SPA, C being Speed, D being Defense, E being Attack and F being HP.

    For example, a Pokémon having an EV spread of 001010 will have a spread of 0 HP, 255 Attack, 0 Defense, 0 SPA, 0 SPDEF, 255 Speed.

    Some Pokémon have spreads of, for example, 100101, being 128 HP, 0 Attack, 128 Defense, 0 SPA, 128 SPDEF, 0 Speed.

    There don't exist other spreads than 255/255 and 128/128/128 in the vanilla Emerald.

    If you edit the game to spread the EV in 111111 they will be 85/85/85/85/85/85. But my goal is to make them 255/255/255/255/255/255.

    So I'm looking for the ckecks holding the EV at 510. I tried to llok for the same checks holding the EV for the player's Pokémon, namely replacing some FD 01's by F9 05's and looking for 40's around them and replacinfg them by C0's but with no results (I'm using Battle Factory as a check as it seems it is using kinda the same Pokémon so it's useful to check if it worked or not, currently they still have 85 in every stat).

    Then I tried to look for 1FE's (510) and replaced them with 5FA's (1530), nothing.

    Same thing with replacing FE01's (FFFF-1FE) by FA05's (FFFF-5FA), but still nothing.

    I think there might be a double check. I'm still currently searching. I will update if I find something.
     
    I know Game Freak programmers sometimes like to put zeroes for I don't know what reason.

    I'll look around Battle Frontier data starting 0x5D5ACC ending around 650000 for FE0001, FD0001, 0100FE and 0100FD making them FA0001, F90001, 0100FA and 0100F9. Maybe that'll do something.

    Of course nothing worked aaaaaat all!
     
    You could set a read-breakpoint on the EV bytes to find the code accessing them. Or you could look for it in the pokeemerald decompilation.

    Thanks for your answer! What is a read breakpoint?

    And I'd love to use decomp but after a dozen of times tries and fails setting it up I gave up.
     
    Thanks for your answer! What is a read breakpoint?

    And I'd love to use decomp but after a dozen of times tries and fails setting it up I gave up.

    Read breakpoint is a breakpoint set at a specific address/range which triggers when data is read from it. They are featured in emulators like no$gba, mgba and vba-sdl-h.
    Also you can still search for things in pokeemerald without setting it up.
     
    Back
    Top