• 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.
  • Ever thought it'd be cool to have your art, writing, or challenge runs featured on PokéCommunity? Click here for info - we'd love to spotlight your work!
  • 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.

[SOLVED] [ASM & Hex] Fire Red : Where is coded the difference between Ghost and other type for Curse move ?

  • 2
    Posts
    3
    Years
    • Seen Jun 10, 2023
    Hello,

    Here is the root of my problem : in Pokemon Fire Red, Ghost is physical and Dark is special. And I wanted to make Dark type physical and Ghost type special.

    So I have switched Ghost type and Dark type :
    - using NSE in order that Ghost type has Dark image, and Dark type has Ghost image
    - modifying the type table (effectivness and all) so that Dark is now 07 in hex (instead of 11) and Ghost is 11 instead of 07.
    - modifying types of moves and Pokemon : Ghost pokemon has now Dark type (which has the "ghost" icon and ghost relations types) and vice-versa.

    So, at the end, Gengar for example is Dark/Poison, but in the game, its Dark type looks like Ghost in order that the Player sees he's Ghost. And Shadow Ball is also Dark so it is now special. But as I have changed table type, Dark type (considered as Ghost) does nothing against Normal for example.

    This part is alright.

    But I figured out an issue with this : Curse move.

    In the original version, Curse acts differently if it is used by a Ghost type than an other type. Because I have switched Dark and Ghost : now Curse acts differently it it used by a Pokemon which had the Dark type like Umbreon (because now, Umbreon is Ghost in my hack but it looks like it is still Dark).

    So my question is : can I change the type for which Curse acts differently ?
    I would like to do : if Curse is used by a Dark Pokemon (instead of Ghost), it sacrifices half of its HP ; else it boosts atk and def but lows speed.
     
    Hello,

    Here is the root of my problem : in Pokemon Fire Red, Ghost is physical and Dark is special. And I wanted to make Dark type physical and Ghost type special.

    So I have switched Ghost type and Dark type :
    - using NSE in order that Ghost type has Dark image, and Dark type has Ghost image
    - modifying the type table (effectivness and all) so that Dark is now 07 in hex (instead of 11) and Ghost is 11 instead of 07.
    - modifying types of moves and Pokemon : Ghost pokemon has now Dark type (which has the "ghost" icon and ghost relations types) and vice-versa.

    So, at the end, Gengar for example is Dark/Poison, but in the game, its Dark type looks like Ghost in order that the Player sees he's Ghost. And Shadow Ball is also Dark so it is now special. But as I have changed table type, Dark type (considered as Ghost) does nothing against Normal for example.

    This part is alright.

    But I figured out an issue with this : Curse move.

    In the original version, Curse acts differently if it is used by a Ghost type than an other type. Because I have switched Dark and Ghost : now Curse acts differently it it used by a Pokemon which had the Dark type like Umbreon (because now, Umbreon is Ghost in my hack but it looks like it is still Dark).

    So my question is : can I change the type for which Curse acts differently ?
    I would like to do : if Curse is used by a Dark Pokemon (instead of Ghost), it sacrifices half of its HP ; else it boosts atk and def but lows speed.

    You should change the type check in the move's battle script .
    There are also several other type checks related to curse which you can find by searching for the move in the decomp. There are also a few checks related to the mystery type like this in battle_script_commands.c.
     
    Last edited:
    Just clarifying, but now you've also made it so that Dark types are unaffected by Fighting types (where they were once super-weak to them), and Ghost is now super-weak to Fighting where it was once unaffected.
    Maybe there's some editing to do there?
     
    Back
    Top