• 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!
  • Our weekly protagonist poll is now up! Vote for your favorite Conquest protagonist in the poll by clicking here.
  • 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

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. :/
 
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?
 
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:
 
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.
 
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.
 
You might have forgotten to fix the glitch byte in the level script. Most level scripting tutorials should tell you how to fix this.
 
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.
 
JPAN can you please make a manual for dummies i dont know how to use the most of this functions.
 
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
 
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.
 
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:
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.
 
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:
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. :)
 
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!
 
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. :)
 
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 :(
 
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 :(

Don't worry that's no biggy, just add a warp (Purple "W") in Advance Map in PALLET TOWN that leads to warp#1 bank4 map#0. (Your house.)
 
Back
Top