• 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

54
Posts
15
Years
    • Seen Jul 17, 2018
    I have a problem when I open the tool to patch the rom and stuff the whole thing dosn't show help.
     

    Sierraffinity

    Desperately trying to retire from ROM hacking
    1,069
    Posts
    16
    Years
  • JPAN, I have a bug.
    With the RTC and D/N installed, the palette expansion will not work. It does not load the new palette whenever the time is not Day.

    EDIT: It doesn't even load the palette when the time is NOT Day! I believe it is a conflict with the entire D/N system.

    EDIT 2: Another bug I found: When you use Teleport, it asks you if you want to go back to Celadon Dept. Store. If you say yes, you get warped to map 0,0, and you're stuck there.
     
    Last edited:
    47
    Posts
    16
    Years
    • Seen Apr 25, 2011
    All right...you asked for suggestions, so I've got some. Be warned, this is something specific. I don't know if it will have relevance to anyone else's projects, though I believe so.

    First of all, some explaining is in order. I've been looking for ways to make the game more like the show. In that, I decided that the obvious place to start was the core of the game experience...the battle system. This means making some major changes to the battle engine itself. Since you've already built a framework, I thought I'd bounce some of what I would need to be done off you.

    + Ability to call up a command menu on the opponent's "turn"...by which I mean after their move is declared, but before the effect is applied.
    + Multiple battle menus called by variable.
    + Ability to define and call up multiple "versions" of a move (like how Secret Power changes by terrain, or Curse working differently for ghosts).

    While there are a number of possible uses for these functions, it is my intent to use them to create a two-phase battle system, in which pokemon have not only an attacking turn, but also a defense turn. Of course, and so you don't think my request selfish, there are other ways it could be used as well. For example, multiple move versions could be used to make HM moves always the right type for the pokemon they're taught to (such as Fly becoming Dragon-Type for certain pokemon, or Flash changing to Fire for some users). The multiple battle menus and off-turn call systems might be used to make a battle in which a Trainer must be talked to during the fight.

    Of course, it could be that some of this could be better accomplished through the creation of a utility. If you believe so, then I heartily thank you for your time, and apologize that my input has not been helpful.
     
    126
    Posts
    14
    Years
    • Seen Aug 5, 2013
    To start off, I have to say that this is the coolest and most useful hacking thing I have stumbled upon so far! I'm definitely using this in my hack.

    I can't seem to get all of the decrypter specials to work =/. I got special 0x14 to work, which is the change captured ball special, but I can't get special 0xF to work! It's the EV adder/subtracter. I want it to add 170 EV's to the HP stat, by the way.

    #dynamic 0x800000

    #org @start
    lock
    bufferpartypokemon 0x0 0x1
    setvar 0x8004 0x1
    setvar 0x8005 0x0
    setvar 0x8006 0x0AA
    special 0x6
    special 0xF
    release
    end
     

    iTeruri

    iAm
    277
    Posts
    17
    Years
  • Hey, JPAN.

    I still love your hacked engine, however I was wondering the following...
    I need a normal wild battle, just like special 0x97 you made. However, I need the encounter rate to be separate from the map I use the special on. I was wondering if you could make it so you can set a var to the encounter rate you want (with special 0x97) and if you set that var to 0x0 it'll just use the encounter rate of the map you're on.

    Alright, that's kinda vague, so I'll give an example...
    If you use special 0x97 while on route 1, you have a 7% chance of fighting a pokémon.
    However, with my idea, you can set a var (let's say 0x8004) to whatever amount you want, but the normal grass keeps it's 7% encounter rate. So I'll set var 0x8004 to 0x80 so the encounter rate becomes 50%. (I'm useing a-map's encounter ratio here)

    Anyway, thanks in advance and keep up the great work.
     

    BlitŻ1

    guahh my dog is so cute
    472
    Posts
    15
    Years
  • Wow! I are amazed-zors just by the description. Just think of what you can do! All the Ow's you'll need, changing tile behaviors, <3. I do have a preliminary question before I start using this though, if I apply this to my hack, which is already pretty far on its way, can I still patch this to it and keep all my work, and still have all these great features?
    Nvm, i are stupid to not look on the first page ;D
     
    Last edited:

    Full Metal

    C(++) Developer.
    810
    Posts
    16
    Years
  • O.o?? u just now found this place?
    jpan--did you use XSE/PKSV in removing all the scripts, or did you use some other sort of method that i don't know of..?
    hm...i guess making a tool to do that (remove all scripts found in a game) wouldn't be hard...load the map header, load the maps, scan for scripts, remove scripts and continue. Granted the program would take ages to run, and a good while to code i think. Just kinda curious...(cuz the removal of scripts is the main thing i like about the patch, as i've not used much of the other features yet...)
     

    Full Metal

    C(++) Developer.
    810
    Posts
    16
    Years
  • That sounds long and tedious...
    --Thats why i asked him; you might be right, but there might be another way he did it...that is more effiicient
     

    Full Metal

    C(++) Developer.
    810
    Posts
    16
    Years
  • yea, i know about that patch :P check my signature under "recommended patches"...
    i was just curious about how he did it -.-??
     
    62
    Posts
    14
    Years
    • Seen Oct 24, 2013
    I saw some post about saying that var 0x800C (Where the player is facing) is usable anymore. Is that true? Because I want to make a script and it needs the use of that variable.
     

    Darthatron

    巨大なトロール。
    1,152
    Posts
    18
    Years
  • I saw some post about saying that var 0x800C (Where the player is facing) is usable anymore. Is that true? Because I want to make a script and it needs the use of that variable.

    I found that too. Just use this:

    Code:
    [B]setvar 0x800C 0x0000
    copybyte 0x020370D4 0x02036E58[/B]
    compare 0x800C 0x01                  'Is the player facing down?
    if 0x01 call @down
    compare 0x800C 0x02                  'Is the player facing up?
    if 0x01 call @up
    compare 0x800C 0x03                  'Is the player facing left?
    if 0x01 call @left
    compare 0x800C 0x04                  'Is the player facing right?
    if 0x01 call @right

    It works the same.
     
    62
    Posts
    14
    Years
    • Seen Oct 24, 2013
    Thanks about that, now my script should work =D.

    EDIT: Well my script didn't work.

    I'm using PokéScript.

    Code:
    #org $start
    lockall
    special 0x8F
    checkattack 0x1D
    compare 0x800D 0x06
    if 0x01 goto $dontknow
    storepokemon2 0x00 0x800D
    setanimation 0x00 0x800D
    message $message1
    $message1 1 = Do you want to use ROCK CLIMB\nto climb them?
    boxset 5
    compare 0x800D 0x00
    if 0x01 goto $dontwant
    doanimation 0x25
    waitstate
    setvar 0x800C 0x0
    copybyte 0x020370D4 0x02036E58
    compare 0x800C 0x1
    if 0x01 goto $down
    compare 0x800C 0x2
    if 0x01 goto $up
    compare 0x800C 0x3
    if 0x01 goto $left
    compare 0x800C 0x4
    if 0x01 goto $right
    end
    
    #org $down
    addvar 0x8005 0x1
    special 0x7F
    compare 0x8005 0x008D
    if 0x01 goto $stepdown
    compare 0x8005 0x008D
    if 0x00 goto $endingstepdown
    end
    
    #org $up
    subvar 0x8005 0x1
    special 0x7F
    compare 0x8005 0x008D
    if 0x01 goto $stepup
    compare 0x8005 0x008D
    if 0x00 goto $endingstepup
    end
    
    #org $left
    subvar 0x8004 0x1
    special 0x7F
    compare 0x8005 0x008D
    if 0x01 goto $stepleft
    compare 0x8005 0x008D
    if 0x00 goto $endingstepleft
    end
    
    #org $right
    addvar 0x8004 0x1
    special 0x7F
    compare 0x8005 0x008D
    if 0x01 goto $stepright
    compare 0x8005 0x008D
    if 0x00 goto $endingstepright
    end
    
    #org $stepdown
    applymovement $1down
    goto $down
    
    #org $stepup
    applymovement $1up
    goto $up
    
    #org $stepleft
    applymovement $1left
    goto $left
    
    #org $stepright
    applymovement $1right
    goto $right
    
    #org $endingstepdown
    applymovement $1down
    $1down 1 ; #binary 0x10 0xFE
    pausemove 0
    releaseall
    end
    
    #org $endingstepup
    applymovement $1up
    $1up 1 ; #binary 0x11 0xFE
    pausemove 0
    releaseall
    end
    
    #org $endingstepleft
    applymovement $1left
    $1left 1 ; #binary 0x12 0xFE
    pausemove 0
    releaseall
    end
    
    #org $endingstepright
    applymovement $1right
    $1right 1 ; #binary 0x13 0xFE
    pausemove 0
    releaseall
    end
    
    #org $dontknow
    message $message3
    $message3 1 = A Pokémon could climb them.
    boxset 6
    releaseall
    end
    
    #org $dontwant
    releaseall
    end

    These settings are temporary, like behavior byte, the attack and such.
    The scripts stops right before he checks the player facing location.
     
    Last edited:

    Ninja Caterpie

    AAAAAAAAAAAAA
    5,979
    Posts
    16
    Years
  • Huh.

    Is it just me, or does this remove everything from Pallet Town, including the Fly Spot? I tried it on a clean ROM and it does the same thing...
     
    Back
    Top