• 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

NarutoActor

The rocks cry out to me
1,974
Posts
15
Years
  • I am having problems with special 0x18b. After I applied it to my test rom, I looked at the changed data, jotted down the table pointer, and saved to rom. I made a script to test it out with [FONT=&quot]0x8004 0x1[/FONT]
    [FONT=&quot]0x8005 0x0[/FONT]
    [FONT=&quot]0x8006 0x0[/FONT]
    It loaded aerodactal just fine, but if I change the pointer it still stays an aerodactal. If I change the var(8004) to any value other that one, the whole image is all screwed up. :/
     

    TAKUORO

    Pyro from WAH ;D
    61
    Posts
    14
    Years
  • I got a little outdated, If I apply this one to the old one, my progress would still be there or I have to start over?
     

    Curt_09

    Also known as Chozo
    557
    Posts
    15
    Years
  • Hey guys, is anyone else having problems running Start Map Chooser Advanced with the hacked engine? I used the patch. Is this a problem that only occurs for me, only occurs for the patch, or only occurs for the hacked engine? I'm curious to know if I should have just used the tool, instead of downloading and using the first thing I saw, which was the patch. I applied it, then saw the tool and downloaded it as well. Didn't see any need to use the tool as I'd already applied the patch.
    But anyway, yeah, the problem with SMCA. Am I the only one? And if not, what causes it?
    This is the error I'm getting:
    Spoiler:
     

    Sierraffinity

    Desperately trying to retire from ROM hacking
    1,069
    Posts
    16
    Years
  • The problem you're getting is because SMCA reads a value in FR from a script. And, since the patch deletes all scripts from the game, it comes up as an FF byte (which SMCA doesn't know how to interpret). You'll have to edit the starting map/position in hex.
     

    Curt_09

    Also known as Chozo
    557
    Posts
    15
    Years
  • The problem you're getting is because SMCA reads a value in FR from a script. And, since the patch deletes all scripts from the game, it comes up as an FF byte (which SMCA doesn't know how to interpret). You'll have to edit the starting map/position in hex.

    Thank you diegoisawesome. Darthatron explained it to me last night and gave me the offsets so I could go edit it with hex.
    Do you know why I couldn't get a level script to work in my start map? I'm assuming it's caused by the same thing.
     

    Curt_09

    Also known as Chozo
    557
    Posts
    15
    Years
  • You might have forgotten to fix the glitch byte in the level script. Most level scripting tutorials should tell you how to fix this.

    I decompiled the map script and fixed the raw word, if that's what you mean. I tried moving the script to a different map, and it worked just fine. Something about the start map is jacked up.
     
    5
    Posts
    14
    Years
    • Seen Jun 26, 2014
    JPAN can you please make a manual for dummies i dont know how to use the most of this functions.
     
    5
    Posts
    14
    Years
    • Seen Jun 26, 2014
    if if i aply the v1.1 ips with lunar ips
    then i get this when i go outside my house
    i patched it with a clean rom
     

    vietazn654

    A sound soul dwells within me
    371
    Posts
    14
    Years
  • if if i aply the v1.1 ips with lunar ips
    then i get this when i go outside my house
    i patched it with a clean rom
    You're first supposed to use JPAN's Clean Fire Red ROM. Then patch it to this engine. Either than that, it looks like you messed with the warps.
     
    5
    Posts
    14
    Years
    • Seen Jun 26, 2014
    that doesnt work for me i used the us version from [MESSAGE FROM STAFF: NO LINKING TO ROM SITES]
    first i patched with the clean fire red 1.ips
    and then with the hacked engine.ips
    and i get the same result

    please see the next page for a walking script question.
     
    Last edited:

    vietazn654

    A sound soul dwells within me
    371
    Posts
    14
    Years
  • that doesnt work for me i used the us version from 3roms.com
    first i patched with the clean fire red 1.ips
    and then with the hacked engine.ips
    and i get the same result
    I know that picture. You need to fix the warps. Go to Pallet Town map and see if they are warps there. If not, add one to the house and make sure the map and bank areas are correct.
     
    5
    Posts
    14
    Years
    • Seen Jun 26, 2014
    Thanks Vietanz654
    that just one problem solved

    i'm try to make a script that you get money for each step you do

    and i use this code

    #org 0x800000
    lock
    givemoney 0x1 0x0
    release
    end

    setting the walking script pointer to 800000

    and i use a signpost to set var 0x407e to 0x1
    #org 0x810000
    lock
    setvar 0x407e 0x1
    release
    end

    and when i activate the signpost and doing the a next step the game freezes.

    can someone say what i do wrong?
     
    Last edited:

    metapod23

    Hardened Trainer
    673
    Posts
    15
    Years
    • Seen Aug 18, 2016
    I was wondering if anyone could better explain special 0x81 (the Load Walking script pointer command) to me and how to execute it properly. I think it might be a solution for making a race occur between a sprite in the game.

    My idea is to apply a movement to the sprite of about 10 steps, move it to that permanent location, and then set a variable afterwards. What I want to use special 0x81 for is to check with each movement of the player whether this (or other) variables are set, and if so, to apply another 10-step movement to the sprite.

    By not applying a "waitmovement" afterwards, the player should be able to walk about freely as the sprite moves; but shorter movements are necessary, I think, because if you "outrun" or "underrun" the sprite so it can no longer be seen on the map, it reverts back to its primary location on the map, so the race can't continue.

    So I'd like try to move the sprite only about ten steps, move it to that position permanently, and then force it to do another brief movement and move its position again, until it gets to the finish line. But to do this without the "waitmovement" command being used, I'd need something like special 0x81 that activates whenever the player is walking (or else litter each tile of the entire map with scripts - ugh). I'm not sure if this would work, but I'd like to give it a try.

    Does special 0x81 need to be executed in a header? I tried this, with a script like this:

    Code:
    special 0x81
    compare 0x6173 0x0
    if 0x1 goto @go
    compare 0x6173 0x1
    if 0x1 goto @go2

    @go would initiate the first set of movements for the sprite and move it to a new location with "movesprite2"; and @go2 would initiate a second set of movements and move it again. But I am doing something wrong, because no matter what the player is frozen and can't move, even with "waitmovement" commands used.

    Is there something else I would need to add to the script, and am I right in using it as a header?

    Any advice would be appreciated. :)
     
    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!
     

    metapod23

    Hardened Trainer
    673
    Posts
    15
    Years
    • Seen Aug 18, 2016
    I was wondering if anyone could better explain special 0x81 (the Load Walking script pointer command) to me and how to execute it properly. I think it might be a solution for making a race occur between a sprite in the game.

    My idea is to apply a movement to the sprite of about 10 steps, move it to that permanent location, and then set a variable afterwards. What I want to use special 0x81 for is to check with each movement of the player whether this (or other) variables are set, and if so, to apply another 10-step movement to the sprite.

    By not applying a "waitmovement" afterwards, the player should be able to walk about freely as the sprite moves; but shorter movements are necessary, I think, because if you "outrun" or "underrun" the sprite so it can no longer be seen on the map, it reverts back to its primary location on the map, so the race can't continue.

    So I'd like try to move the sprite only about ten steps, move it to that position permanently, and then force it to do another brief movement and move its position again, until it gets to the finish line. But to do this without the "waitmovement" command being used, I'd need something like special 0x81 that activates whenever the player is walking (or else litter each tile of the entire map with scripts - ugh). I'm not sure if this would work, but I'd like to give it a try.

    Does special 0x81 need to be executed in a header? I tried this, with a script like this:

    Code:
    special 0x81
    compare 0x6173 0x0
    if 0x1 goto @go
    compare 0x6173 0x1
    if 0x1 goto @go2

    @go would initiate the first set of movements for the sprite and move it to a new location with "movesprite2"; and @go2 would initiate a second set of movements and move it again. But I am doing something wrong, because no matter what the player is frozen and can't move, even with "waitmovement" commands used.

    Is there something else I would need to add to the script, and am I right in using it as a header?

    Any advice would be appreciated. :)

    I just wanted to say that I figured out who to properly execute this special. For any who might want to know what to do:

    First, you have to make the script you want to activate on every step. Once the script is compiled, you open a hex editor and navigate to offset: 0x1a4e2c

    There are 4 slots for pointers there. Place the offset (reversed) of the script you want to execute with every step in the first slot. Then, at whatever point you want the walking script to be active (be it through an event script or a level script) just put:

    Code:
    setvar 0x407e 0x1
    special 0x81

    Setting variable 407e to 0x1 indicates that you want the game to access the first pointer at offset 0x1a4e2c, and special 0x81 starts the script so that it activates on every step.

    So that's how special 0x81 works, in case anyone else was having trouble with the instructions. :)
     

    Learath2

    Scripter
    114
    Posts
    14
    Years
  • When i patch this engine the pallet town becomes like this
    h tt p://img9.imageshack.us/img9/5742/adszxcc.png
    can you help me :(
     
    Back
    Top