• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Development: Pokémon Fire Red Hacked Engine

Learath2

Scripter
114
Posts
14
Years
  • Thanx one more thing i have to ask. Im so noob that i couldnt figure out how can i fix the when i get fainted i warp to a random place please helm me
     
    3
    Posts
    13
    Years
    • Seen Mar 5, 2011
    I loved this!
    There was just one problem...

    In my hack I want to have a character asking which Pokémon the player would like to choose, and before the multiple choice box comes up, there is meant to be some text, but it doesn't show!

    Could someone help?

    This is the script I am using in XSE...

    Code:
    #dynamic 0x800000
    
    #org @start
    lock
    checkflag 0x1200
    if 0x1 goto @already_given
    setflag 0x828
    msgbox @whichpoke 0x4
    closeonkeypress
    setvar 0x8006 0x0
    loadpointer 0x0 @first
    special 0x25
    setvar 0x8006 0x1
    loadpointer 0x0 @second
    special 0x25
    setvar 0x8006 0x2
    loadpointer 0x0 @third
    special 0x25
    multichoice 0x0 0x0 0x21 0x0
    copyvar 0x8000 LASTRESULT
    compare 0x8000 0x0
    if 0x1 goto @give_bulbasaur
    compare 0x8000 0x1
    if 0x1 goto @give_charmander
    compare 0x8000 0x2
    if 0x1 goto @give_squirtle
    end
    
    #org @whichpoke
    = Which Pokémon would you like?
    
    #org @first 
    = Bulbasaur
    
    #org @second
    = Charmander
    
    #org @third
    = Squirtle
    
    #org @give_bulbasaur
    givepokemon 0x1 0x5 0x0 0x0 0x0 0x0
    msgbox @given_bulbasaur 0x6
    setflag 0x1200
    release
    end
    
    #org @give_squirtle
    givepokemon 0x7 0x5 0x0 0x0 0x0 0x0
    msgbox @given_squirtle 0x6
    setflag 0x1200
    release
    end
    
    #org @give_charmander
    givepokemon 0x4 0x5 0x0 0x0 0x0 0x0
    msgbox @given_charmander 0x6
    setflag 0x1200
    release
    end
    
    #org @given_charmander
    = Here is your Charmander.
    
    #org @given_squirtle
    = Here is the Squirtle.
    
    #org @given_bulbasaur
    = Here is your Bulbasaur.
    
    #org @already_given
    msgbox @nomore 0x6
    release
    end
    
    #org @nomore
    = I've already given you one\nPokémon!

    Thanks

    Black Deoxys
     

    xGGxToiZ

    >.//:SO HOT:\\.<
    44
    Posts
    14
    Years
  • JPAN's hacked engine allows us to add more OW palettes, right?

    At the offset 1A2400, I've added another pointer for a palette to the table.
    Like this:
    Code:
    [B]... 00 00 80 08 17 11[/B] 00 00 00 00 FF 11 00 00 ...
    And yes, I ended the table with 00 00 00 00 FF 11 00 00.

    But how do I use it in-game? I don't see how. (It's either I didn't understand or saw how in the manual or I'm doing something wrong with the numbers.)
    Help would be greatly appreciated! :)
     

    Sierraffinity

    Desperately trying to retire from ROM hacking
    1,069
    Posts
    16
    Years
  • I loved this!
    There was just one problem...

    In my hack I want to have a character asking which Pokémon the player would like to choose, and before the multiple choice box comes up, there is meant to be some text, but it doesn't show!

    Could someone help?

    This is the script I am using in XSE...

    Code:
    #dynamic 0x800000
    
    #org @start
    lock
    checkflag 0x1200
    if 0x1 goto @already_given
    setflag 0x828
    setvar 0x8006 0x0
    loadpointer 0x0 @first
    special 0x25
    setvar 0x8006 0x1
    loadpointer 0x0 @second
    special 0x25
    setvar 0x8006 0x2
    loadpointer 0x0 @third
    special 0x25
    [B]preparemsg @whichpoke
    waitmsg[/B]
    multichoice 0x0 0x0 0x21 0x0
    copyvar 0x8000 LASTRESULT
    compare 0x8000 0x0
    if 0x1 goto @give_bulbasaur
    compare 0x8000 0x1
    if 0x1 goto @give_charmander
    compare 0x8000 0x2
    if 0x1 goto @give_squirtle
    end
    
    #org @whichpoke
    = Which Pokémon would you like?
    
    #org @first 
    = Bulbasaur
    
    #org @second
    = Charmander
    
    #org @third
    = Squirtle
    
    #org @give_bulbasaur
    givepokemon 0x1 0x5 0x0 0x0 0x0 0x0
    msgbox @given_bulbasaur 0x6
    setflag 0x1200
    release
    end
    
    #org @give_squirtle
    givepokemon 0x7 0x5 0x0 0x0 0x0 0x0
    msgbox @given_squirtle 0x6
    setflag 0x1200
    release
    end
    
    #org @give_charmander
    givepokemon 0x4 0x5 0x0 0x0 0x0 0x0
    msgbox @given_charmander 0x6
    setflag 0x1200
    release
    end
    
    #org @given_charmander
    = Here is your Charmander.
    
    #org @given_squirtle
    = Here is the Squirtle.
    
    #org @given_bulbasaur
    = Here is your Bulbasaur.
    
    #org @already_given
    msgbox @nomore 0x6
    release
    end
    
    #org @nomore
    = I've already given you one\nPokémon!
    Thanks

    Black Deoxys
    I'm guessing it's @string. Just put the specials, loadpointers, and setvars before a preparemsg/waitmsg combo (like on the multichoice command in my tutorial) and you're good to go.
    JPAN's hacked engine allows us to add more OW palettes, right?

    At the offset 1A2400, I've added another pointer for a palette to the table.
    Like this:
    Code:
    [B]... 00 00 80 08 17 11[/B] 00 00 00 00 FF 11 00 00 ...
    And yes, I ended the table with 00 00 00 00 FF 11 00 00.

    But how do I use it in-game? I don't see how. (It's either I didn't understand or saw how in the manual or I'm doing something wrong with the numbers.)
    Help would be greatly appreciated! :)
    You probably didn't see the section on the structure of the overworlds. You have to find the overworld you want to asssign the palette to and change both the palette number and the slot number.
     
    126
    Posts
    14
    Years
    • Seen Aug 5, 2013
    Hi. Could someone please help me with special 0x58, please?
    It's the wild pokemon switcher, and I've been trying to get it to work for a couple of hours now...

    Here's my XSE script:
    #dynamic 0x800000

    #org @start
    lock
    faceplayer
    setvar 0x8009 0x08FF
    setvar 0x8008 0xFF34
    setvar 0x8006 0x1
    setvar 0x8005 0x0
    special 0x58
    release
    end


    In a Hex Editor, my ROM looks like this at the offset 0x08FFFF00

    64 64 96 00 64 64 96 00 64 64 96 00 64 64 96 00
    (it repeats this 7 more times)
    This is supposed to be my wild pokemon data. (a bunch of lvl 100 Mewtwo's)

    When I test it, the wild pokemon that I run into are just "?????????"'s.
    I've tried so many different things and nothing is working for me...sometimes Sunflora appears though :/

    Thanks!

    just bumping my question cause I can't figure it out...
     

    metapod23

    Hardened Trainer
    673
    Posts
    15
    Years
    • Seen Aug 18, 2016
    I've been working on stuff in the Safari Zone and realized that the game doesn't warp you back to the starting point once you've reached 0 steps.

    I'm assuming this has something to do with the hacked engine and that this was somehow removed from "special 0xcd"? Otherwise, I'm not sure why it wouldn't work. If that's the case, my question is how to reactivate it so it warps you back when you reach 0 steps. Or do I just have to use "special 0x81" to check the number of steps remaining and warp you back when it's at 0? I'm guessing this is what would have to be done.
     
    1
    Posts
    14
    Years
    • Seen Apr 29, 2024
    Does anyone know how to get special 0xcb to work? I'm trying to have it so that if L+R are pressed it changes the heroes sprite.
    the script for what i want to happen is
    Code:
    #org $start
    lock
    checkflag 0x1200
    if 0x01 goto $back
    message $1
    $1 1 =Change shape?
    boxset 5
    compare 0x800D 0x0001
    if 0x01 goto $one
    release
    end
    
    #org $one
    Setvar 0x4054 0x025
    setflag 0x1200
    release
    end
    
    #org $back
    message $1
    boxset 5
    compare 0x800D 0x0001
    if 0x01 goto $yes
    release
    end
    
    #org $yes
    Setvar 0x4054 0x000
    clearflag 0x1200
    release
    end
    It works fine but if i try to hook it up with the special thing it doesn't work

    my script for the special 0xcb is
    Code:
    #org $test
    setvar 0x8004 0x300
    loadpointer 0x0 0x800000
    special 0xcb
    special 0xca
    end
    800000 is the script offset of the script i want to happen and it is set as a map script.
    If someone could tell me what is wrong i would greatly appreciate it. Also if anyone knows how to get the sprite to change without having to go through a warp it would be great too.
     

    Micael Alighieri

    Helix Boo / Lord Kaktus, ex-member from Whack a Ha
    97
    Posts
    16
    Years
    • Seen May 24, 2017
    I found a rather annoying problem in the application.
    When you open the character hack or overworld hack, you can't close the dialog window. It is annoying if you pushed it by accident.

    Yeah, that happens to me too. Please, any help? There's no response or solution because it seems like this problem is ignored (since May...) :(
     

    Shiny Quagsire

    I'm Still Alive, Elsewhere
    697
    Posts
    14
    Years
  • Does anyone know how to get special 0xcb to work? I'm trying to have it so that if L+R are pressed it changes the heroes sprite.
    the script for what i want to happen is
    Code:
    #org $start
    lock
    checkflag 0x1200
    if 0x01 goto $back
    message $1
    $1 1 =Change shape?
    boxset 5
    compare 0x800D 0x0001
    if 0x01 goto $one
    release
    end
    
    #org $one
    Setvar 0x4054 0x025
    setflag 0x1200
    release
    end
    
    #org $back
    message $1
    boxset 5
    compare 0x800D 0x0001
    if 0x01 goto $yes
    release
    end
    
    #org $yes
    Setvar 0x4054 0x000
    clearflag 0x1200
    release
    end
    It works fine but if i try to hook it up with the special thing it doesn't work

    my script for the special 0xcb is
    Code:
    #org $test
    setvar 0x8004 0x300
    loadpointer 0x0 0x800000
    special 0xcb
    special 0xca
    end
    800000 is the script offset of the script i want to happen and it is set as a map script.
    If someone could tell me what is wrong i would greatly appreciate it. Also if anyone knows how to get the sprite to change without having to go through a warp it would be great too.

    Refresh the map. There's a special used for tile inserting that does it. ;)
     

    chriskid198

    Happy New Year!
    159
    Posts
    13
    Years
  • Can someone please tell me what exactly this does?
    I read the first post, and some of it I don't understand; All processor math and logic functions available for your variables, Edit what every Behaviour byte does when you press A in front of it(scripts), allowing for things like headbutt trees. Those are some that I don't understand. Can someone explain it too me?
     

    Micael Alighieri

    Helix Boo / Lord Kaktus, ex-member from Whack a Ha
    97
    Posts
    16
    Years
    • Seen May 24, 2017
    Read the guide? It elaborates on everything.

    The guide is not complete at all (sorry, I think that some parts of the guide is only for very advanced rom hackers, I don't understand all the guide then).

    I don't want to offense the creator of this engine, but I think that he's ignoring us (he got tired of us, how depressing -.-). Of course, there's no help for my problem, I'm only a mortal person, BUT my problem is talking about a glitch, so imagine, how can a tutorial tell me about repairing a hack tool?

    chriskid198: Behaviour is the overworld state. For example, facing up, facing down, walking up, walking down, walking right and left, hidden, etc. You have a behaviour list in Advance Map as well.

    Bye.
     

    chriskid198

    Happy New Year!
    159
    Posts
    13
    Years
  • The guide is not complete at all (sorry, I think that some parts of the guide is only for very advanced rom hackers, I don't understand all the guide then).

    I don't want to offense the creator of this engine, but I think that he's ignoring us (he got tired of us, how depressing -.-). Of course, there's no help for my problem, I'm only a mortal person, BUT my problem is talking about a glitch, so imagine, how can a tutorial tell me about repairing a hack tool?

    chriskid198: Behaviour is the overworld state. For example, facing up, facing down, walking up, walking down, walking right and left, hidden, etc. You have a behaviour list in Advance Map as well.

    Bye.
    So would it be worth using in my hack?
     

    Jambo51

    Glory To Arstotzka
    736
    Posts
    14
    Years
    • Seen Jan 28, 2018
    Overworld Hack Problem

    I have been using this fantastic hack to improve the experience of my hack, but have run into a rather large problem. I have tested this multiple times and have tried everything I can think of to fix it, so a little help is probably required!

    After applying the Overworld Hack (Table of tables, hero switching etc), the surfing stops working in my rom. Just the surfing mind, nothing else.

    When I go to surf, the game does everything up to the point where the surfing special should activate, then it simply resets. I have tried this on 3 or 4 separate roms and always get the same result.

    I tried setting the linked variable (0x7002) to 0x2 (because the surfing sprite is on table 0, sprite number 2), but it still happens.

    Am I doing something wrong, or is this perhaps a bug?

    EDIT: Another minor bug to report. If you apply the trainer flag hack, the game crashes and resets if you are challenged by a trainer who is 4 or more steps away from you. That is, whenever the move camera to show sprite response is triggered, the game crashes. Dunno if anyone has noticed this as yet.

    EDIT 2: I should probably have mentioned that this is using the Hacked Routine applier. As I need all the original scripts of Fire Red for my hack, as it's a yellow remake. And no, i'm not just tacking a few events onto FR and calling it a hack, i'm adding a load of new stuff too.
     
    Last edited:
    Back
    Top