PDA

View Full Version : Pokémon Fire Red Hacked Engine


Pages : 1 [2]

JPAN
May 26th, 2010, 03:25 AM
I have a quick question regarding special 0x18B, the "Show uncompressed picture" special. For the most part, I get how it works. However, I'm a bit confused about the first part of the table, the fossil pointer. It says it is a
"pointer to a section of data that has the needed information for the function to work," but I'm not sure what this means, or what the needed information would be.
The table at the manual shows that data right below it. The data at the fossil table is composed of only two pointers, the data pointer and the palette pointer. The data pointer, the other structure I talk about, must be stored somewhere else in the ROM, and contains the pointer to the uncompressed image, and 12 extra bytes I know nothing about. Those bytes must be 00 08 58 1b 00 00 00 00 00 00 00 00, otherwise the image shows displaced (like some glitch pokemon from Red).

Nikolai Fox
May 29th, 2010, 07:11 AM
How do you set one variable to a value, and then change it to another value?

I am using the Fire Red Hacked engine, and I used this code which changes the level of the Pokémon a gym leader has to three levels higher than your highest level Pokémon.

setvar 0x4052 0x203
trainerbattle 0x1 etc
setvar 0x4052 0x0

The var first gets set to the value that makes the Pokélevels what I wanted them to be, which worked. But after the battle, all trainer Pokémon levels are still 3 levels higher than my highest level Pokémon. If the value of 4052 is 0, it should cancel the change?

Thanks.

diegoisawesome
May 29th, 2010, 07:16 AM
Scripts don't continue directly after the trainerbattle 0x1, they continue at the third pointer in the command. That might be your problem.

Nikolai Fox
May 29th, 2010, 07:19 AM
Scripts don't continue directly after the trainerbattle 0x1, they continue at the third pointer in the command. That might be your problem.

Nah, I actually used trainer battle 0x3, which has a script straight after the battle (and the following script does work, as I receive the rewards etc)

I even tried making a tilescript on the way out to set the variable to the new value. That didn't work either =/

altariaking
May 29th, 2010, 07:35 AM
ok, i did everything you said for new pallettes, but all it did was change the hero's pallette, and only in vba.
how do i fix that?

if anyone could help me on this i'd be really apreciative.

metapod23
May 31st, 2010, 05:11 AM
I was trying to use special 0x13 to change a Pokemon's happiness, but couldn't get it to work. I have an adoption house for abused Pokemon, so if someone adopts, in this case, a Rattata, I want it to have low happiness.

So I make the script only work if you have 5 or less Pokemon in your party. Then, after I used the give pokemon command, I use countpokemon to determine how many are there so that I can set variable 0x8004 to the right number. Like, if the player has 6 Pokemon after "adopting" Rattata, I have the script go to this:

setvar 0x8004 0x5
setvar 0x8005 0x13C
special 0x13

which, from my understanding, should make Rattata's base happiness be reduced by 60 (as 3C is 60 in hex, and you add 1 to the beginning to subtract from happiness). But when I have the guy rate its happiness, its still at its base happiness (70).

I've tried different things, including using special 0x6 with it, but nothing made it work for me. I'm moving on from it now, because it's not that important, but I was just wondering if there was anything I could do to make it work properly?

diegoisawesome
May 31st, 2010, 05:17 AM
@metapod23: Use special 0x6 before AND AFTER. Like so:
special 0x6
setvar 0x8004 0x5
setvar 0x8005 0x13C
special 0x13
special 0x6
The first usage decrypts the Pokémon for editing, the second one recrypts the Pokémon into the party.

metapod23
May 31st, 2010, 05:53 AM
@metapod23: Use special 0x6 before AND AFTER. Like so:
special 0x6
setvar 0x8004 0x5
setvar 0x8005 0x13C
special 0x13
special 0x6
The first usage decrypts the Pokémon for editing, the second one recrypts the Pokémon into the party.

Well, weird glitchiness abounds. If I have my Pikachu at the front of my party when I receive Rattata, the Pokemon I receive is a clone of Pikachu, with the same amount of damage that Pikachu has at the time and same exact stats and level, but with a lower level of happiness. If another Pokemon is in front, I get Rattata, but its happiness is unchanged ...

For reference, this is the script - I have 5 Pokemon in my party when I go to get Rattata:

#org 0x836DD2
countpokemon
compare LASTRESULT 0x6
if 0x1 goto 0x8836E87
fanfare 0x101
msgbox 0x8836E65 MSG_KEEPOPEN '"You adopted the abused RATTATA!"
closeonkeypress
setflag 0x1119
hidesprite 0x4
givepokemon 0x13 0x5 0x0 0x0 0x0 0x0
countpokemon
compare LASTRESULT 0x2
if 0x1 goto 0x8836E42
compare LASTRESULT 0x3
if 0x1 goto 0x8836E49
compare LASTRESULT 0x4
if 0x1 goto 0x8836E50
compare LASTRESULT 0x5
if 0x1 goto 0x8836E57
compare LASTRESULT 0x6
if 0x1 goto 0x8837941

#org 0x837941
special 0x6
setvar 0x8004 0x5
setvar 0x8005 0x13C
special 0x13
special 0x6
end

diegoisawesome
May 31st, 2010, 07:17 AM
Try setting 0x8004 to the party Pokémon number before using the special 0x6. Saying that, there was a much simpler way of making that script:

#org 0x836DD2
countpokemon
compare LASTRESULT 0x6
if 0x1 goto 0x8836E87
fanfare 0x101
msgbox 0x8836E65 MSG_KEEPOPEN '"You adopted the abused RATTATA!"
closeonkeypress
setflag 0x1119
hidesprite 0x4
givepokemon 0x13 0x5 0x0 0x0 0x0 0x0
countpokemon
subvar LASTRESULT 0x1
copyvar 0x8004 LASTRESULT
special 0x6
setvar 0x8005 0x13C
special 0x13
special 0x6
end

metapod23
May 31st, 2010, 10:08 AM
Try setting 0x8004 to the party Pokémon number before using the special 0x6. Saying that, there was a much simpler way of making that script:

#org 0x836DD2
countpokemon
compare LASTRESULT 0x6
if 0x1 goto 0x8836E87
fanfare 0x101
msgbox 0x8836E65 MSG_KEEPOPEN '"You adopted the abused RATTATA!"
closeonkeypress
setflag 0x1119
hidesprite 0x4
givepokemon 0x13 0x5 0x0 0x0 0x0 0x0
countpokemon
subvar LASTRESULT 0x1
copyvar 0x8004 LASTRESULT
special 0x6
setvar 0x8005 0x13C
special 0x13
special 0x6
end

It worked! Thanks! And thanks for the simpler script - I used it and it works fine. :)

diegoisawesome
May 31st, 2010, 10:32 AM
It worked! Thanks! And thanks for the simpler script - I used it and it works fine. :)
You're welcome. Glad I could help. :D

NarutoActor
June 2nd, 2010, 02:00 PM
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 0x8004 0x1
0x8005 0x0
0x8006 0x0
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
June 8th, 2010, 01:59 PM
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
June 8th, 2010, 03:52 PM
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:
http://i711.photobucket.com/albums/ww112/Curt_rocks_09/SMCAerror.png

diegoisawesome
June 9th, 2010, 03:55 AM
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
June 9th, 2010, 05:21 AM
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.

diegoisawesome
June 9th, 2010, 05:58 AM
You might have forgotten to fix the glitch byte in the level script. Most level scripting tutorials should tell you how to fix this.

Curt_09
June 9th, 2010, 06:04 AM
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.

louitzie
June 25th, 2010, 07:27 AM
JPAN can you please make a manual for dummies i dont know how to use the most of this functions.

altariaking
June 25th, 2010, 07:41 AM
JPAN can you please make a manual for dummies i dont know how to use the most of this functions.

there already is a manual for dummies

louitzie
June 25th, 2010, 08:28 AM
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
June 25th, 2010, 08:33 AM
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.

louitzie
June 25th, 2010, 11:20 AM
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.

vietazn654
June 25th, 2010, 11:29 AM
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.

louitzie
June 25th, 2010, 11:49 AM
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?

metapod23
June 30th, 2010, 06:02 AM
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:

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. :)

icychill66
June 30th, 2010, 08:39 PM
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
July 2nd, 2010, 07:23 PM
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:

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:

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
July 6th, 2010, 02:48 AM
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 :(

xGGxToiZ
July 6th, 2010, 04:31 AM
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.)

Learath2
July 6th, 2010, 07:26 AM
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

Black Deoxys
July 10th, 2010, 01:03 AM
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...

#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
July 10th, 2010, 01:40 AM
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:
... 00 00 80 08 17 11 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! :)

diegoisawesome
July 10th, 2010, 04:29 AM
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...

#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
preparemsg @whichpoke
waitmsg
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:
... 00 00 80 08 17 11 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.

icychill66
July 11th, 2010, 12:05 PM
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
July 16th, 2010, 02:59 PM
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.

BlitŻ
August 2nd, 2010, 11:27 AM
So, let me get this straight..
I apply the patch, then I use the tool? -o-
Or does the patch do everything?

Full Metal
August 2nd, 2010, 11:36 AM
The tool inserts the patch, but it only inserts what you want from the patch afaik.

lordofstuff
August 31st, 2010, 03:22 PM
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

#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

#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.

Loony Boo♪
September 6th, 2010, 07:15 AM
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...) :(

astar_01
September 8th, 2010, 06:43 AM
Is JPAN still working on this engine?
I always loved it when he released new updates.

Shiny Quagsire
September 13th, 2010, 01:41 PM
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

#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

#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. ;)

astar_01
September 13th, 2010, 01:54 PM
Refresh the map. There's a special used for tile inserting that does it. ;)

The special your looking for is 0x8E. :)

Simply apply:

special 0x8E

To your script to refresh your map.

chriskid198
September 14th, 2010, 02:22 AM
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?

chriskid198
September 23rd, 2010, 07:11 PM
Please help. Anyone?
I would really like to know if I should use this for my hack.

Darthatron
September 23rd, 2010, 08:48 PM
Read the guide? It elaborates on everything.

chriskid198
September 24th, 2010, 01:54 AM
I have. Is it worth while using in my hack though?

Loony Boo♪
September 24th, 2010, 06:00 AM
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
September 25th, 2010, 11:03 PM
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
October 5th, 2010, 05:33 AM
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.

Super Ultra Mega Charizard
October 5th, 2010, 12:35 PM
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.

Maybe he's ignoring you because duh? He hasn't finished the tool yet so you have to wait. It wasn't obvious? 0_o

プラチナ・ベルリッツ
October 9th, 2010, 11:45 PM
Hey there! I am absolutely loving your hacked engine! It made me do the stuff that I need to do so badly with minimum effort. Thank you so much!

One thing though, I can add new OW palettes nicely but the problem is I can only load the new palettes in the slots 0x0 (player) and 0xA. Because when I try to load it into the other slots, they don't change at all they just remain the same. I've tried anything that I can do but no dice. I want it to load in any slot so, any help that I could get?

Thanks anyway! :D

mindfreak
October 19th, 2010, 11:49 PM
Hey,
I've a problem with the extra ow palettes.

Everything works fine until the 27 pal.
For some reason all palettes after 0x1a24D8 won't work...

Does this happen to anyone else and are there any solutions?

Every Idea is welcome,

JPAN
October 25th, 2010, 02:45 AM
Sorry for the late replies, everyone, my PC died and took quite a while to get a new one.
After applying the Overworld Hack (Table of tables, hero switching etc), the surfing stops working in my rom. Just the surfing mind, nothing else.
Certain sprites need specific palette values to work with certain animations. Surf is one of them. If it crashes while using the original sprite, it may be because you have a pokemon in the box, as Var 0x7000 up are located from box one onwards (GameFreaks didn't need to worry, as they knew from the start the memory layout).
Also, not only that but also the hero VS-seeker animations must be correct in order for surf and fly (and any other HM) to work. Check those both first.

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.
This doesn't happen on a unedited Fire Red rom I applied it with, so it must be because of the OW hack. Currently, however, I can't find anything wrong with it. Crashes may also follow because of the first question.


One thing though, I can add new OW palettes nicely but the problem is I can only load the new palettes in the slots 0x0 (player) and 0xA. Because when I try to load it into the other slots, they don't change at all they just remain the same. I've tried anything that I can do but no dice. I want it to load in any slot so, any help that I could get?

That is a problem I didn't encounter until mentioned, as I always tested with OW palette 0 and A (no reason why, though, just happened). As such, I didn't know about the "forced load" on start that only happens once per map. This should fix it.
Using a hex editor, replace the following values
starting at 0x0805E5E0, place 70 88 09 07 09 0f 00 29 01 d0 05 e0,
then at 0x0805e5f8 place 03 e0

Also, another "problem" arises from the mist weather. palette slot 0x1, 0x6 to 0x9 and 0xb are reserved for the mist weather effect. If you don't plan on using it on your hack, and need the extra palettes, you can use them after disabling the effect.
at 0x0805f680 place 22 e0 (for palette slots 0x6-0x9 + 0xb),
at 0x0805f60c place 20 e0 (for palette slot 0x1, the player mist slot).
If you wish to have the player enter misty areas, do not apply the last one.


Everything works fine until the 27 pal.
For some reason all palettes after 0x1a24D8 won't work...

I've made plenty of tests, and this problem only exists because of the previous one. After correcting, I tried 0x50 random generated palettes, and worked perfectly.

Also, I'm working right now in remaking this hack in light of recent developments (The variable problem). Also, It will take quite a while before it's released, as the new verison should be compatible with both Emerald and Fire Red. Besides a much less annoying interface, it will be wiritten in Java, meaning it should be useable in all OS that support it (Unix-based, OSx and Windows included). It will also feature a "revert to Original" feature that allows you to remove the hack "safely" from your ROM, and implement a new version (or the original ROM, if so desired).

プラチナ・ベルリッツ
October 25th, 2010, 04:11 AM
That is a problem I didn't encounter until mentioned, as I always tested with OW palette 0 and A (no reason why, though, just happened). As such, I didn't know about the "forced load" on start that only happens once per map. This should fix it.
at 0x0805E5E0, place 70 88 09 07 09 0f 00 29 01 d0 05 e0,
then at 0x085e5ef8 place 03 e0

Umm... How are you going to put this? By using writebytetooffset or hex-editing? I tried to hex-edit it at 0x5E5E0 & 0x5E5EF8 (because 0x08 means ROM?) but I think nothing happened and it won't load the palette to 0xA anymore.

Maybe I did something wrong... :(

EDIT: Wow, amazing! Totally works now! Thank you very much! ^.^

mindfreak
October 25th, 2010, 10:11 AM
Umm... How are you going to put this? By using writebytetooffset or hex-editing? I tried to hex-edit it at 0x5E5E0 & 0x5E5EF8 (because 0x08 means ROM?) but I think nothing happened and it won't load the palette to 0xA anymore.

Maybe I did something wrong... :(

You need to insert it with a hex editor,


@Jpan, Thanks for your response but your fix worked only half.
The palettes after my 27t pal work but I still cant use other slot's than 0,1A,1B and now these slots only work after you refresh the screen (By opening the bag,Pokedex,Options....).

itistheriz
October 26th, 2010, 06:54 PM
One quick question...

Does this make the rom too big to be written to a blank gba cartridge? I want to make a hack that can be written to 2 blank cartidges so me and my friend can play and trade.

プラチナ・ベルリッツ
October 26th, 2010, 08:33 PM
One quick question...

Does this make the rom too big to be written to a blank gba cartridge? I want to make a hack that can be written to 2 blank cartidges so me and my friend can play and trade.

No, it shouldn't be big. The hack actually erases content (e.g. scripts and OW's on the maps). I don't know about expanded ROM's, though.

Off-topic: Make sure you don't sell 'em! ;)

masterquestmq
November 5th, 2010, 06:56 AM
just wanted to double check when i downloaded this none of the warps work..... cant even leave the house... do we have to redo all the warps again?

プラチナ・ベルリッツ
November 5th, 2010, 03:08 PM
just wanted to double check when i downloaded this none of the warps work..... cant even leave the house... do we have to redo all the warps again?
No, you don't have too. The only place where the warps are messed up is Pallet Town and that's it. Just add new warps that lead to Pallet Town to make it work again.

diegoisawesome
November 27th, 2010, 09:20 AM
I found a bug: when using the tile bytes type of script, it doesn't update the PLAYERFACING variable as it does when you use any other type of regular script.

psychicboy
November 29th, 2010, 11:33 AM
I have a question. I already researched and apparently SMCA doesn't work with this patch. How do I hex edit the starting location? And what free hex editor would be good for this? Thanks in advance ~

NintendoBoyDX
November 30th, 2010, 01:06 AM
At which addresses can I find the data for losing a trainerbattle(specifically trainerbattle ?9) before and after applying this hack? (goal is to eliminate writing out after.trainerbattle losses.

diegoisawesome
November 30th, 2010, 02:52 PM
Building on what's said above, you should make it so we can set a variable and different things will happen upon losing a battle.
EX. 0 = to last healing spot
1= continue after beaten

Also, another suggestion: can you make the "what happened on your last save" thing when you press continue disabled? It really interferes with some things, making the currently applied OW appear before it was applied, for example.

NintendoBoyDX
December 4th, 2010, 12:36 PM
I was wondering, what are the most commonly used sizes for the OW table, backsprite sets, and image locations(0x18b) with this hack? One would imagine you wouldn't need 60k worth of OW sprites.

Germaniac
December 21st, 2010, 09:42 PM
Wow! Good job! What about expand the pokemon? So it can be more than 411 Pokemon in a game

>Dante<
January 4th, 2011, 04:23 AM
I'm too confused about the trainer backsprite.
JPAN said:
"The third and final Trainer customization is the backsprite switch. This is a very special one, as it not only switches the trainer’s back Sprite, as it does with all back Sprites, like the Old man, or the Poke Dude from Teachy TV. To do so, just set a value superior to 0x0 in variable 0x4062. This hack will search if the backsprite to be displayed is one of the original ones, so if your hack requires it, change the backsprite on that position, as well as the palette on that position. Very important: DO NOT REPOINT THE ORIGINALS. If the backsprite table at 0x234718 is changed even by a bit, this code will not work."

Well...I've tried to use setvar 0x4062 0x1 and I work well. The trainer backsprite were changed into the old man's backsprite. But what is the value to set to obtined the girl backsprite...or the TeachTV backsprite???
There are a lot of backsprite in fire red...such as the R/S trainers.

Could enyone help me??

Johto_legend
January 7th, 2011, 09:46 PM
Im not sure if its possible or anything, but i think it would be a good idea to add the ability to expand the pokedex to be able to fit around 500 pokemon instead of the 3rd gen 386. im not the most knowledgeable person on this subject but i think its a good idea.

psychicboy
January 10th, 2011, 09:29 PM
I have a question. I already researched and apparently SMCA doesn't work with this patch. How do I hex edit the starting location? And what free hex editor would be good for this? Thanks in advance ~
Bump for the lolz. No one has an answer?

Jambo51
January 16th, 2011, 03:12 PM
For anyone who was having the same problem as me with the tool version of the Overworld Hack (Where it glitches out on trying to use the surf sprite, and it glitches out when trying to move the camera to show the (!) above a trainer's head), navigate to 0x5F2E4. There is a "bad" pointer here. When the game accesses it, it crashes. What you must do to fix it is copy the pointer at 0x5F2D0 and replace the pointer at 0x5F2E4 with it.

Credit for this fix goes to Diegoisawesome. I only posted it because he's busy.

masterquestmq
January 24th, 2011, 04:13 AM
I've been having trouble with the nurse joy script on this hacked engine

the game crashes after she gives me back the pokemon(before the hope we see you again script)

is it the script or we just cant recreate the nurse joy script?

some help here

#dynamic 0x720000
#org @nurse_start
lock
faceplayer
special 0x187
compare LASTRESULT 0x2
if 0x1 goto @error_release
preparemsg @heal_q '"Welcome to our POKéMON CENTER!\pWo..."
waitmsg
multichoice 0x13 0x8 0x0 0x2
copyvar 0x8000 LASTRESULT
compare 0x8000 0x0
if 0x1 goto @set_heal_poke
compare 0x8000 0x1
if 0x1 goto @go_away
compare 0x8000 0x7F
if 0x1 goto @go_away
release
end

'---------------
#org @error_release
release
end

'---------------
#org @set_heal_poke
cmdc3 0xF
preparemsg @will_heal '"Okay, I'll take your POKéMON for a..."
waitmsg
call @heal_anime
special 0x169
goto @check_wireless

'---------------
#org @go_away
msgbox @goodbye MSG_KEEPOPEN '"We hope to see you again!"
release
end

s270171
January 27th, 2011, 11:30 PM
YEA! i agree. expanding the pokedex would basically make you, JPAN, the ONE PERSON to think of everything i could possibly need... besides lu-ho and hackmew

masterquestmq
January 31st, 2011, 09:21 AM
I have a problem

everytime I compile scripts they work perfectly in the game.
its been great for a week until today

After I compile scripts in the game they work normally
but after a few hours when i reload my rom some scripts just disappear. (some old scripts some new ones life signposts talking scripts and even my mom script :nervous:

Now im so paranoid i check my rom every few hours and some scripts are still disappearing. when i click the open script tab on AM it shows me an empty XSE screen with just the offset.

I use XSE to script and i search from beginning of rom to get my offset


am i doing something wrong
or its a major bug on my rom?

Johto_legend
January 31st, 2011, 09:56 AM
I have a problem

everytime I compile scripts they work perfectly in the game.
its been great for a week until today

After I compile scripts in the game they work normally
but after a few hours when i reload my rom some scripts just disappear. (some old scripts some new ones life signposts talking scripts and even my mom script :nervous:

Now im so paranoid i check my rom every few hours and some scripts are still disappearing. when i click the open script tab on AM it shows me an empty XSE screen with just the offset.

I use XSE to script and i search from beginning of rom to get my offset


am i doing something wrong
or its a major bug on my rom?

well most people start at 800000 when looking for an offset, only because things that are happening to you do occur. try using offsets from 800000 and up.

Sora's Nobody
January 31st, 2011, 12:26 PM
Does someone know why this happens when i mess around in A-MAP. The rom is patched with the engine. It happens everytime i add a event and then try doing something else (more or less...)
http://i51.tinypic.com/14w3zid.jpg

masterquestmq
February 2nd, 2011, 07:39 AM
Still a problem (some scripts being deleted)

for the past 2 days my hack has been going well.. I took the advice of a hacker and started using offsets from 80000 and above.

However today when I was running through my hack i notice that one of the signpost script was deleted (this signpost was a 80000 and above offset). any idea why this happened? I notice that whenever I attempt a long apply movement script some small text script will go missing..

its really bugging me
can it be the rom?
a bug?
or its a common problem?

metapod23
February 2nd, 2011, 01:48 PM
Still a problem (some scripts being deleted)

for the past 2 days my hack has been going well.. I took the advice of a hacker and started using offsets from 80000 and above.

However today when I was running through my hack i notice that one of the signpost script was deleted (this signpost was a 80000 and above offset). any idea why this happened? I notice that whenever I attempt a long apply movement script some small text script will go missing..

its really bugging me
can it be the rom?
a bug?
or its a common problem?

Were you using a dynamic offset for your scripts, or were you selecting the offsets manually?

Also, do you mean you're using offsets from 800000 or do you really mean 80000? If it's the latter, I'm sure the hacker meant to use offsets from 800000 - you could really do some damage to the rom by using offsets at 80000.

masterquestmq
February 2nd, 2011, 03:05 PM
Were you using a dynamic offset for your scripts, or were you selecting the offsets manually?

Also, do you mean you're using offsets from 800000 or do you really mean 80000? If it's the latter, I'm sure the hacker meant to use offsets from 800000 - you could really do some damage to the rom by using offsets at 80000.

Sorry typo been using 800000 and dynamic in front of it.
so i start a script basically like this:

dynamic 0xoffset

could it be something else that's deleting minor scripts in my hack?

DrFuji
February 2nd, 2011, 03:11 PM
Sorry typo been using 800000 and dynamic in front of it.
so i start a script basically like this:

dynamic 0xoffset

could it be something else that's deleting minor scripts in my hack?

Do you have your ROM open in another program (other than XSE or Advance Map) when you make, insert and save the scripts? If you do, saving that program may be deleting all of your work as the new script pointers did not exist when you opened the program.

metapod23
February 2nd, 2011, 03:34 PM
Sorry typo been using 800000 and dynamic in front of it.
so i start a script basically like this:

dynamic 0xoffset

could it be something else that's deleting minor scripts in my hack?

So just to make sure, a dialogue script you wrote would look something like this:

#dynamic 0x800000

#org @start
msgbox @message msg_face
end

#org @message
= Hi!

If you're doing everything about like that, I don't see why any scripts would be deleted. The only problems I've had with scripts being overwritten is when I would put in the offsets manually, instead of letting XSE's dynamic process locate them for me. I've been using the Fire Red Hacked Engine for my hack for some time without having encountered such a problem.

shinyabsol1
February 2nd, 2011, 07:25 PM
So. If I have read everything here correctly, applying this to my hack in progress will not cause any problems unless I have been using earlier offsets in the rom, like where all of nintendo's scripts are? But it will clear all of the events already in game including the Pokemon centers/marts? Have I got this correct?

masterquestmq
February 4th, 2011, 07:07 AM
So just to make sure, a dialogue script you wrote would look something like this:

#dynamic 0x800000

#org @start
msgbox @message msg_face
end

#org @message
= Hi!If you're doing everything about like that, I don't see why any scripts would be deleted. The only problems I've had with scripts being overwritten is when I would put in the offsets manually, instead of letting XSE's dynamic process locate them for me. I've been using the Fire Red Hacked Engine for my hack for some time without having encountered such a problem.




So to be clear

I do not have to use FSF anymore?

just type dynamic #0x800000 and XSE will find the right offset for it?

Johto_legend
February 4th, 2011, 09:02 AM
So to be clear

I do not have to use FSF anymore?

just type dynamic #0x800000 and XSE will find the right offset for it?

no, you will still need FSF. its just that you need to find offsets after 0x800000 in FSF. that way

linkandzelda
February 4th, 2011, 01:22 PM
no, you will still need FSF. its just that you need to find offsets after 0x800000 in FSF. that way

I thought that when using #dynamic 0x800000 XSE will find the space for me and put the script there. I've never used FSF in my life for scripting.

DrFuji
February 4th, 2011, 02:17 PM
no, you will still need FSF. its just that you need to find offsets after 0x800000 in FSF. that way

When scripting you just need to put '#dynamic [Offset]' and XSE will find the closest offset from that point onwards to place the script so it isn't necessary to continuously find space in FSF. While FSF is useful if you want/ need to place things beyond the general 0x800000 area its use in scripting is limited thanks to dynamic offsets.

metapod23
February 5th, 2011, 06:04 AM
So to be clear

I do not have to use FSF anymore?

just type dynamic #0x800000 and XSE will find the right offset for it?

Yeah, if you're using XSE, you don't really need FSF for scripting. It's useful for other things, like finding where to insert certain images, or repointing data, though. But XSE does the work of FSF for us when you use the dynamic command. Just make sure "Show Log" is checked in the Batch Compiler, and then copy the offset shown in the log window that pops up after you compile your script, and put that offset in the script in A-Map.

masterquestmq
February 13th, 2011, 03:00 AM
HI, Me again. this time my question is about flags.

Is it safe to say that most flags have been deleted from the game?
is it safe that i start a flag from 0x200 and go up by one everytime?

metapod23
February 13th, 2011, 06:07 AM
HI, Me again. this time my question is about flags.

Is it safe to say that most flags have been deleted from the game?
is it safe that i start a flag from 0x200 and go up by one everytime?

The flags aren't deleted per se. A flag is only safe to use if you know what it's specific purpose was originally and what it does when you set it. One flag turns on the Pokemon menu, another activates the running shoes, etc. You can't use those kinds of flags at all. There are also eight flags that activate each of the Badges. Other flags, like 2C, keep the sprite hidden when set to its Person ID. If you clear that flag, the sprite will no longer be hidden. The flags aren't gone from the game, they still provide the same functions as before, and you're best off just starting where XSE recommends, because you won't know what sort of in-game functions you might be activating or deactivating by using other flags.

miksy91
February 13th, 2011, 07:30 AM
Just as metapod said, you shouldn't use certain flags in your hack.
If you know where the game writes the data of flags, you can see which flags are automatically set and which not. However, learning to do it may not be easy as one byte contains the data of eight bits.

Bit no. 1 in the byte = 00/01
Bit no. 2 in the byte = 00/02
Bit no. 3 in the byte = 00/04
Bit no. 4 in the byte = 00/08
Bit no. 5 in the byte = 00/10
Bit no. 6 in the byte = 00/20
Bit no. 7 in the byte = 00/40
Bit no. 8 in the byte = 00/80

So if for example bits number 4 and 7 would be set in certain byte and others wouldn't be set, the byte would be:
00 + 00 + 00 + 08 + 00 + 00 + 40 + 00 = 48


It's safe to use most of the other flags than the ones that are already set when you open the game and play till the point when you appear in your room.
To know which flags are set and which not, use VBA's Memory Viewer and go to the location of the flag bits in RAM.
There is documentation about RAM of 1st & 2nd gen pokemon games so you should be able to find it also for the ones of 3rd.

Jambo51
February 14th, 2011, 11:40 AM
Just as metapod said, you shouldn't use certain flags in your hack.
If you know where the game writes the data of flags, you can see which flags are automatically set and which not. However, learning to do it may not be easy as one byte contains the data of eight bits.

Bit no. 1 in the byte = 00/01
Bit no. 2 in the byte = 00/02
Bit no. 3 in the byte = 00/04
Bit no. 4 in the byte = 00/08
Bit no. 5 in the byte = 00/10
Bit no. 6 in the byte = 00/20
Bit no. 7 in the byte = 00/40
Bit no. 8 in the byte = 00/80

So if for example bits number 4 and 7 would be set in certain byte and others wouldn't be set, the byte would be:
00 + 00 + 00 + 08 + 00 + 00 + 40 + 00 = 48


It's safe to use most of the other flags than the ones that are already set when you open the game and play till the point when you appear in your room.
To know which flags are set and which not, use VBA's Memory Viewer and go to the location of the flag bits in RAM.
There is documentation about RAM of 1st & 2nd gen pokemon games so you should be able to find it also for the ones of 3rd.

Most of this is right, except the flags are DMA protected on most of the 3rd Generation Roms. Ruby and Sapphire have static ram locations, FRLG and Emerald's constantly change. So you won't be able to find the flags that easily. On Fire Red, there's a routine called by warping and changing to the battle screen, which, based on the result of the RNG, writes a ram location to 0x03005008. This ram location is static, and is how the game actually makes use of DMA protected information.

It loads the ram offset stored at 0x03005008, and then works out where the data is located with respect to that base offset. The flags are located at
[03005008] + 0xEE0. You can check this easily as long as you don't change map, as the routine is being called when warping and changing into the battle screen.

Also, just as importantly, the variables and flags and other processes in the rom SHARE MEMORY SPACE. In other words, Flags higher than 0x8FF will start using space assigned to the variables 0x4000 and onwards. 0x4000 is the lowest available variable, while 0x8FF is the highest available flag. Trainerflags are in fact just normal flags, meaning it is very unsafe to extend the trainerbattle table as things stand. Trainerflag 0x1 = Normal Flag 0x501 and so on.

Basically, where possible, try to recycle flags and variables already used in the standard rom.

Crimson5M
February 25th, 2011, 12:20 PM
With Special 0x66, is it possible to change the HP of the opponents first Pokemon?

louitzie
March 1st, 2011, 09:16 AM
i have a question when i load 2 ore more OWs in one map the lowest event number is shown good but the others are using the pallete of twe lowest event number of the map.

metapod23
March 24th, 2011, 06:11 AM
I'm having trouble with special 0x64 - the party status modifier.

When I set 0x8005, it ends up making my Pokemon be affected with Sleep no matter which variable I set it to (0-7 are supposed to cause different statuses). If I set it to something other than 0-7, it Poisons the Pokemon to be affected. And if I set it to 40 or 50 it become Paralysis.

It happens that I want to affect it with poison, but I was wondering why I can't get the other statuses to work with the correct status flags?

Joshuablevins
April 15th, 2011, 10:41 AM
for the set healing place do we still need to use the orignal second map script for pokemon centers?

metapod23
April 18th, 2011, 06:35 PM
Just another glitch I'm experiencing - for the backsprite switch (setvar 0x4062), any time it loads the new backsprite image and palette, it also changes the palettes of all the trainer sprites in the game. So the palette of the trainer you are versing is the same palette as the backsprite you've switched to. It affectively makes the backsprite switcher unusable for trainer battles.

EDIT: Also to note, the trainer sprites palette returns to its normal palette at the end of battle, when it reappears but the player's backsprite is not there, so I guess it only affects the trainers' palettes when the player's backsprite is present.

Meta Paradox
May 10th, 2011, 03:31 AM
Um, what is the difference between the "FireRed Hacked" and the "FireRed Hacked ENGINE"? Sorry for that awfully dumb question. But I want to know.

biking101
May 12th, 2011, 04:51 AM
mac compatible version? wine/winbottler wouldnt work.

ShinyDragonHunter
June 12th, 2011, 12:09 PM
I know a feature that you could add into your hacked engine; why not do it so that more direct instruments can be played at one time?

Full Metal
June 12th, 2011, 01:13 PM
Um, what is the difference between the "FireRed Hacked" and the "FireRed Hacked ENGINE"? Sorry for that awfully dumb question. But I want to know.

A game engine refers to the gears that work behind the scenes: what you ( the player ) doesn't see. Eg: Player moving, music playing etc.

@ShinyDragonHunter - I'm fairly certain this is a limitation of the GBA -- not -- the games original engine. I may be wrong though.

@biking101 - The tool was written in a .NET language. Use mono instead of wine.

RHIOneAlbum
June 14th, 2011, 04:57 AM
Nice, its really good and impressive. Of course I can point out a few minor things, but they've all been mentioned before, great work on this!

~Anbuja
June 22nd, 2011, 01:03 AM
wwhy everytime i patch an fr rom with jpan engine it mess up the mapps? like glitching them?

kidkouga
June 22nd, 2011, 01:32 PM
Wow this i awesome!!!!!!! I can now do crazy things but i have one question, my advance map shows all 255 OW but i can't edit them with OW editor RE. Any help? Also how do i access the new palettes because i still have the original ones

EdensElite
June 24th, 2011, 07:40 AM
This has deleted some important scripts like finding wild pokemon in the grass, how do I add this back in?

ShinyDragonHunter
June 24th, 2011, 08:16 AM
A game engine refers to the gears that work behind the scenes: what you ( the player ) doesn't see. Eg: Player moving, music playing etc.

@ShinyDragonHunter - I'm fairly certain this is a limitation of the GBA -- not -- the games original engine. I may be wrong though.

@biking101 - The tool was written in a .NET language. Use mono instead of wine.

From what I've learned the GBA's standard music engine plays 5 direct tracks, I reckon that it is possible to modify the music engine so that more then 5 direct tracks can play at once.

Masou Shoujo Haruna
June 28th, 2011, 12:39 AM
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:

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. :)

sorry if this might sound nooby but
by reverse do you mean, for example my offset is 0x812345
[45 23 81 00] or [54 32 18 00] or [00 18 32 54]?

Quilava's Master
June 28th, 2011, 07:02 AM
sorry if this might sound nooby but
by reverse do you mean, for example my offset is 0x812345
[45 23 81 00] or [54 32 18 00] or [00 18 32 54]?
[45 23 81 08 ] is x812345 reversed and turned into a pointer.

Masou Shoujo Haruna
July 1st, 2011, 03:09 AM
[45 23 81 08 ] is x812345 reversed and turned into a pointer.

thanks its somewhat working now.
EDIT: nvm i figured it out now

Masou Shoujo Haruna
July 6th, 2011, 01:48 AM
I'm having trouble with special 0x64 - the party status modifier.

When I set 0x8005, it ends up making my Pokemon be affected with Sleep no matter which variable I set it to (0-7 are supposed to cause different statuses). If I set it to something other than 0-7, it Poisons the Pokemon to be affected. And if I set it to 40 or 50 it become Paralysis.

It happens that I want to affect it with poison, but I was wondering why I can't get the other statuses to work with the correct status flags?

it doesn't seem to work the same as the what the manual says
setting 0x8005 to:
0x0 - 0x7 sleep(up to 7 turns)
0x8 poison
0x10 burn
0x20 ice
0x40 paralyze
0x80 toxic

setting it to something else would produce combinations of status' like
0x38 is 1 turn defrost + poison + burn
0x39 is 1 turn sleep 2 turn defrost + poison + burn
0x9 1 turn sleep + poison etc.

i think special 0x63 reads differently as well

jvpski3
July 8th, 2011, 01:34 PM
Nice... Can we use it for hacks? Just wondering...

Full Metal
July 8th, 2011, 02:25 PM
Duh. What else would it be for? Just wondering...

metapod23
July 25th, 2011, 02:40 PM
Just wanted to mention a problem I'm having with the timer special - special 0x46, etc.

It works without problem until I step inside a Pokemon Center. Afterward, the timer is instantly reset to 0. This seems to happen in any Pokemon Center and no other areas as far as I can tell, so I would assume it would have something to do with either the sethealingplace command, the setting of variables 405a 405b or 405c, or special 0x182.

When I remove the 05 On entering map/on menu close Script Type, the timer no longer resets, but it does freeze at whatever amount it was at before you entered the Center.

Anyone know why this might be happening?

DavidJCobb
July 30th, 2011, 09:03 PM
-snip-I applied the hex edits detailed in the quoted post, but I am still having difficulties with loading extra OW palettes into sprite palette slots 6, 7, and 8. When I enter and exit a menu (Bag, Pokedex, Options, etc.), the default palettes (the ones used for mist sprites) are rewritten to these slots, causing any OWs that used the extra palettes to be discolored.

The palettes that I want used are used when entering the map (i.e. warping), but reset when entering and exiting any menu (when palettes are loaded). Does anyone have a solution?

EDIT: I found a temporary workaround, but I would really love to see an actual fix for this.

The temporary workaround is to edit the palette table at 0x1A2400. The mist-NPC palettes have indices 5, 6, 7, and 8; change those to some arbitrary but unlikely-to-be-used numbers (I used 83, 84, 85, and 86 -- the numbers of their mist-free counterparts + 80). So long as no palettes have indices 5-8, this glitch will not occur.

However, this change probably will break something. It also leaves those palette indices forever unusable. Which is why I'm hoping for an actual fix.

EDIT2: It did break something. The bug still occurs when exiting the Pokemon menu after having viewed a Pokemon's stats. Argh!

EDIT3: Or when opening the Pokemon menu at all. "Invalidating" palette indices 5, 6, 7, and 8 prevents the OW mist/reflection palettes from being loaded there when returning from a menu screen to the OW, but it does not reload the extra OW palettes that one chooses to write to those slots. Ergo if a menu screen uses those palettes (Bag doesn't, Pokemon does), they will replace the extra OW palettes upon opening the menu, causing any OW that depended on that palette slot to use the menu's palettes.

redriders180
July 30th, 2011, 10:51 PM
Has anyone else had a problem with the fainting events? I'm using the Firered Base provided, and when my Pokemon faint, they're not sent to the players house, but instead map 0.0. I've put in the same scripts as the players room, but no avail. What am I doing wrong? I don't want to work on this a whole bunch, just for it to end up not working...

DrFuji
July 30th, 2011, 11:16 PM
Has anyone else had a problem with the fainting events? I'm using the Firered Base provided, and when my Pokemon faint, they're not sent to the players house, but instead map 0.0. I've put in the same scripts as the players room, but no avail. What am I doing wrong? I don't want to work on this a whole bunch, just for it to end up not working...

JPAN stated at the bottom of the guide that he has changed how the sethealingplace command works. You can choose where you 'respawn' based on the variables 0x405A, 0x405B and 0x405C. Read that section of the document to see how it has changed :)

Spherical Ice
August 3rd, 2011, 01:32 PM
I don't completely understand how I would go about creating new behaviour bytes using this. I've read the manual and all it seems to really tell me is that the new table for behaviour bytes is at 0x1a3000. Would I write a script and then write the pointer at that address? Or what? I'm really confused. :/

~Anbuja
August 3rd, 2011, 01:36 PM
Okay guys im getting an problem whenever i patch this to an clean fire red rom when ever i start a new game with this the outdoors are messed up and the scripts are all deleted(its telling so or so that they will be deleted) but the maps are just messed up...is this ahppening to everyone or am i patching it to an wrong rom maybe:\

Spherical Ice
August 3rd, 2011, 01:48 PM
If you do not want this to happen, use the Tool Applier instead. The patch does this--read the manual, or the first post (one of them mentions this).

U_Flame
August 3rd, 2011, 01:52 PM
Quick question: I'm not an expert in this, so I'm wondering if this hacked engine will allow more person events in one place? I have a huge boulder and breakable rock maze but they won't all load. Will they load in this engine?

Spherical Ice
August 3rd, 2011, 01:54 PM
Quick question: I'm not an expert in this, so I'm wondering if this hacked engine will allow more person events in one place? I have a huge boulder and breakable rock maze but they won't all load. Will they load in this engine?

As far as I know, there is no finite amount of Person Events allowed in a normal FireRed ROM. Are you sure these rocks don't share Person Event Numbers/Person IDs, or that there is not a level script which hides certain person events?

U_Flame
August 3rd, 2011, 02:00 PM
No, it's happened to me before. Some events load when I take a few steps in a certain direction, others only load after moving an event or breaking a rock. This only happens to me when a lot of person events are in one place.

Spherical Ice
August 3rd, 2011, 02:02 PM
Well that's not going to be fixed by this, no. >:

U_Flame
August 3rd, 2011, 02:05 PM
All right. Thanks for the info.

~Anbuja
August 3rd, 2011, 02:16 PM
If you do not want this to happen, use the Tool Applier instead. The patch does this--read the manual, or the first post (one of them mentions this).
Well i might read that up too.
but i really don;t mind it erasing all scripts just the maps i wanted to know if i patch it and make new mapss if they still would apear glitched up or not.

Spherical Ice
August 3rd, 2011, 02:19 PM
No, new maps would not be glitched.

metapod23
August 3rd, 2011, 04:53 PM
I don't completely understand how I would go about creating new behaviour bytes using this. I've read the manual and all it seems to really tell me is that the new table for behaviour bytes is at 0x1a3000. Would I write a script and then write the pointer at that address? Or what? I'm really confused. :/

The table starts at 0x1a3000, but if you put the pointer for your script there it will give an action to the first behavior byte (00). I applied my scripts to the last behavior bytes when I did it, so if you wanted to give behavior byte FF an action through a script, you would place the pointer at 0x1a33fc.

That's why there's some pointers already there - at 0x1a3204 is the pointer to the bookshelf script - behavior byte 81 - which is the 81st pointer of the table.

Spherical Ice
August 4th, 2011, 09:46 AM
I overwrote FF. It's meant to be a walk-on script, but doesn't seem to be working. The script itself works, though, as when I test it when it's applied to a green S tile it works. And yes, I made a proper pointer.

metapod23
August 4th, 2011, 10:24 AM
I overwrote FF. It's meant to be a walk-on script, but doesn't seem to be working. The script itself works, though, as when I test it when it's applied to a green S tile it works. And yes, I made a proper pointer.

I think they only work when you press A to talk to the tile, like the TV and bookshelf scripts.

clacla$$$
August 4th, 2011, 01:55 PM
Umm, I don't know if anyone gets this but whenever I try to add specials with the Hack Applier it says they are occupied. Can someone explain this?

DavidJCobb
August 4th, 2011, 02:21 PM
Well i might read that up too.
but i really don;t mind it erasing all scripts just the maps i wanted to know if i patch it and make new mapss if they still would apear glitched up or not.
New maps will not be glitched. In fact, you can fix Pallet Town.

The patch accidentally deletes the warps in Pallet Town. The game glitches when you try to go there, because there are no warps to go to. Re-add the Pallet Town warps using AdvanceMap, and the map will work again.

EdensElite
September 24th, 2011, 02:02 PM
The patch stops all wild pokemon appearing, how do I re-activate this.

XxXRy0MaEcHiZenXxX
October 4th, 2011, 07:48 AM
First the HG/SS ROMs dumped, now this.. WOW :)

xephos
January 22nd, 2012, 08:46 AM
This is great I am so glad that you made it. This just made my day

masterquestmq
January 26th, 2012, 06:04 PM
First of JPAN thanks for making this. This is one of the best things I've ever seen.

I've been hacking over the months slowly going town by town and now as I reach the area of the S.S. Anne I notice the ship isn't there.

Do we need ASM to get the ship back at the port or there's a certain flag that would activate it?

Thanks for ur input.

droomph
February 5th, 2012, 04:20 PM
First of JPAN thanks for making this. This is one of the best things I've ever seen.

I've been hacking over the months slowly going town by town and now as I reach the area of the S.S. Anne I notice the ship isn't there.

Do we need ASM to get the ship back at the port or there's a certain flag that would activate it?

Thanks for ur input.Just unset the visibility flag of the sprite, which should be $0087.The patch stops all wild pokemon appearing, how do I re-activate this.Check the Behavior Byte script; check if Special 0xAB is missing.

Hackrex
February 27th, 2012, 07:24 AM
hi, I have a question. Is it normal that after I have import the engine that the events are deleted and no person are in the maps? So every event is missing. Is that normal?

Jay the penguin
February 27th, 2012, 07:40 PM
I was woundering if you could clarify making an item activate a script. cuz all I can make an item do is a simple script such as warp, but I want to do alot more than that. any advice?

Jambo51
February 28th, 2012, 03:48 AM
I was woundering if you could clarify making an item activate a script. cuz all I can make an item do is a simple script such as warp, but I want to do alot more than that. any advice?

The item can execute literally any script you give it. It doesn't need to just warp. If you wanted it to, you could make it give you a Pokémon, or battle a trainer, or any other such things which come with scripting. The ASM only takes care of actually calling the script - the script you want to use is left for you to make with scripting tools.

hi, I have a question. Is it normal that after I have import the engine that the events are deleted and no person are in the maps? So every event is missing. Is that normal?

Yes.

Jay the penguin
February 28th, 2012, 07:49 PM
The item can execute literally any script you give it. It doesn't need to just warp. If you wanted it to, you could make it give you a Pokémon, or battle a trainer, or any other such things which come with scripting. The ASM only takes care of actually calling the script - the script you want to use is left for you to make with scripting tools.



Yes.

Well yeah I some what understand that. so I was woundering if you could like simplify how to the ASM would work then.

someone from tk 6D
March 5th, 2012, 02:52 PM
Awsomeness, this wiill help fr hackers lkike me! One question: after applying the patch, ami free to edit my rom and your patch still will work?

droomph
March 5th, 2012, 03:07 PM
Awsomeness, this wiill help fr hackers lkike me! One question: after applying the patch, ami free to edit my rom and your patch still will work?Any tool you use, if it doesn't change the affected portions of the file (such as the in-game scripts), will still work.

Derlo
March 18th, 2012, 05:53 AM
Hello everybody.
Could someone explain how Special 0x18b [Fossil commands] work?

I inserted it in the rom, but not work.

jabberjabber8
March 29th, 2012, 07:46 AM
I know this might sound ridiculously needy but can someone who knows what they are doing with this help me get it set up?

Skype - Jabberjabber8

YouListeningROMs
March 29th, 2012, 12:32 PM
I know this might sound ridiculously needy but can someone who knows what they are doing with this help me get it set up?

Skype - Jabberjabber8

Well, I know you can always just use the patch. Get Lunar IPS and a clean firered and apply the patch to your firered and your done.

jabberjabber8
March 31st, 2012, 12:44 AM
What is the hack applier for then if you just need to patch it on?

Quickster
March 31st, 2012, 05:47 AM
What is the hack applier for then if you just need to patch it on?

The hack applier can be for someone who has already started a hack, as you dont have to put everything on and you can find free space.

jabberjabber8
March 31st, 2012, 06:41 AM
O thanks all that has made life a lot easier.

F1r3k1ng
April 4th, 2012, 01:42 PM
This is brilliant, it will help a lot considering I just started developing a new hack, gotta learn all the scripting stuff first, but still, this is brilliant :) Massive thanks :D

Rumille
April 14th, 2012, 03:46 PM
However awesome it may be, it seems very complicated though, I don't think I really understand the method. Do I need to patch my Fire Red rom first?

If I understand correctly I can, after applying the patch, easily change my hero overworldsprite mid-game by just using this simple script:
#org @start
Setvar 0x4054 0x107
Setvar 0x4055 0x108
Setvar 0x4056 0x109
Setvar 0x4057 0x10a
Setvar 0x4058 0x10b
Setvar 0x4059 0x10c
End


However, what are the 0x107, 0x108, 0x109 etc? I can't seem to find that part explained. Also, I've been taught that when I use setvar, I use variables higher than 4000. That doesnt seem possible anymore then apparently.

Help with this is much appreciated!

Haru~
April 30th, 2012, 08:09 AM
Loving the hacked engine! ;)
I've already created battle frontier like events and all.

But I've found one quirk with the item scripts hack...
When you register and then use a key item(from the OW screen) that has the hack, it keeps fading in and out, it never ends.

Am I the only who has problems with this?

PS: The script itself is fine when I use it inside my bag.

Jambo51
April 30th, 2012, 09:35 AM
But I've found one quirk with the item scripts hack...
When you register and then use a key item(from the OW screen) that has the hack, it keeps fading in and out, it never ends.

Am I the only who has problems with this?

PS: The script itself is fine when I use it inside my bag.

JPAN explicitly stated that you can't register items created using his method (in the Items thread, If I remember correctly).

Haru~
May 1st, 2012, 02:43 AM
JPAN explicitly stated that you can't register items created using his method (in the Items thread, If I remember correctly).

Oh, I see. I didn't remember seeing it here or in the manual but meh.
Thanks for the heads-up! :)


I noticed that if you use the temporary status inducer and in battle your hit with something like toxic, you're still poisoned but the status that appears on your pokemon is the one you set at var 8004.

Am I doing anything wrong?

Mallowigi
May 7th, 2012, 12:51 PM
Hi here, I have a question...

I downloaded this engine but I dont want to patch my rom (I already did it and it messes me up my game, but I know why and that's not my point), instead, I want to use the hack applier to apply some of the hacks. However I don't see here the hack for new Palettes which supposedly enables new palettes on 0x1A2400.

How can I do? Do I really have to apply the whole patch? I don't want to remap and rescript everything in the game...

Kaith
May 14th, 2012, 07:50 AM
Wow, this seems amazing. I haven't applied it yet cus there are a few things I don't understand.

First, does this need to be applied to a clean rom, or is it alright to apply it to the rom I'm working on right now?

Second, if I'm understanding correctly, if I apply this hack then all scripts before the 0x800000 area will be erased right?

Thirdly, will this mess up any maps I've already made? So far all I've done are the maps for the start of my game to the second gym.

I've also connected a few warps and placed overworlds where I wanted them. I started a little bit of scripting but it's nothing I can't redo easily.

looper
May 14th, 2012, 09:12 AM
If you already have something edited, you should use the tool and not the patch :)

The Patch will only delete the old scripts, not the newer one, but maybe they will be overwritten by new data....

Spherical Ice
June 8th, 2012, 03:17 PM
For some reason, when I apply the Overworld hack with the Hack Tool, the overworld changes (where you get 256 new tables etc.), and the changes at 0x1a2000 don't take place. This mean I cant have custom overworlds etc. without applying the patch, which for some stupid reason gets rid of all header scripts, regardless of which part of the rom they were inserted in, and I dont really fancy going back and inserting all that.

Help would be appreciated.

Quickster
June 9th, 2012, 08:16 AM
For some reason, when I apply the Overworld hack with the Hack Tool, the overworld changes (where you get 256 new tables etc.), and the changes at 0x1a2000 don't take place. This mean I cant have custom overworlds etc. without applying the patch, which for some stupid reason gets rid of all header scripts, regardless of which part of the rom they were inserted in, and I dont really fancy going back and inserting all that.

Help would be appreciated.

Habe you tried pressing the button Get Changed Data? I applied the overworld hack with no hero change or dynamic OWs and pressed it. This is what I got.

Spherical Ice
June 9th, 2012, 08:58 AM
Hm, because I've applied the hack before and didn't take note, it just says that the hack has already been applied, however at the offset you've shown (which also appears when I applied the patch on a clean FR ROM), is not the data, and on a ROM with it applied, it's just FFs, so I can't do a search to find it either.

This is quite an annoying problem :/

MarinoKadame
June 9th, 2012, 06:57 PM
Anyone found a way to make the following pokemon script to work in Fire red ? Don't know if it worked since the last time I saw a topic about it.

Quickster
June 10th, 2012, 07:58 AM
Hm, because I've applied the hack before and didn't take note, it just says that the hack has already been applied, however at the offset you've shown (which also appears when I applied the patch on a clean FR ROM), is not the data, and on a ROM with it applied, it's just FFs, so I can't do a search to find it either.

This is quite an annoying problem :/

Ahh, I think I solved it. Well, hopefuly. Try pressing save rom and then go to the hex editor with it. xD

aar2697
June 10th, 2012, 01:53 PM
How do I use the Wild Pokemon Data Switch (Special 0x58)? What I want to do is this:

#org @start
comparefarbytetobyte 0x203C00 0x6 (checks if it's night time; unrelated to issue)
if 0x1 goto @itsnight (unrelated to issue)
release
end

#org @itsnight
**change the wild data to Taillow (14-17), Murkrow (14-17), Pidgey (14-17), Hoothoot (14-17), Nidoran (f) (13-16), Nidoran (m) (13-16), Bellsprout (14-18), Jigglypuff (13-16), Squirtle (10-12), Torchic (10-12), Abra (13-16), Chansey (14-18)**

I could not understand the guide at all. If someone can show me how to do everything, I, along with many others, would greatly appreciate it. Thanks.

Darkrai Lv.1000
July 9th, 2012, 02:27 PM
I have a suggestion(if this is still being updated):

-a way to remove the "rival naming" portion of the intro (i'm currently trying to figure out how)
-battles that continue scripts when you lose (not trainerbattle 0x9; i'm looking into this as well)

Quickster
July 9th, 2012, 09:21 PM
I have a suggestion(if this is still being updated):

-a way to remove the "rival naming" portion of the intro (i'm currently trying to figure out how)
-battles that continue scripts when you lose (not trainerbattle 0x9; i'm looking into this as well)

Well, Im not exactly sure about the continuing scripts but here is something that can help with the first problem.
http://www.pokemonpoint.com/guides/naming-the-rival-from-a-script-on-firered/

Darkrai Lv.1000
July 10th, 2012, 06:56 PM
Well, Im not exactly sure about the continuing scripts but here is something that can help with the first problem.
http://www.pokemonpoint.com/guides/naming-the-rival-from-a-script-on-firered/

ok, i got it to work to the point where it actually resets the game at where the rival would show up. i can't seem to get it to continue. the game just resets when i get to that point.

EDIT: nvm, i fixed it, didn't know i had to turn my offsets+1 into pointers. learning is fun. xD

Taji34
July 15th, 2012, 06:28 PM
How do I use this to get the 60000 Over world Sprites and the 4600 different Palettes?

Riegel25
July 16th, 2012, 07:07 PM
Thank you JPAN! This will be very useful.

LugiaMZ
July 17th, 2012, 08:30 AM
Hi everyone, I have 3 question.

First question, I use the Special 0x18B show uncompressed picture, It's work! But how to close the picture?

Second question, This Pokemon Fire Red Hacked Engine v1.1 patchers has a function to display full-sized images? If no I suggest to add this function. Conveniently say this question, this patchers has pokemon follow player to walk function? Like Pokemon Yellow/Heart Gold/Soul Sliver.

Thanks.

Spherical Ice
October 12th, 2012, 09:37 AM
^ I'm pretty sure you just use "hidepokepic"

How is special 0xcb supposed to be used? I can't seem to figure it out.

The following script is meant to make it so when the player pushes B, they will be warped.

#dynamic 0x800000

//---------------
#org @start
setvar 0x8004 0x1
loadpointer 0x0 0x88614CB
special 0xCB
special 0xCA
special 0x8E
release
end


0x88614CB leads to:
#dynamic 0x800000

//---------------
#org @start
warp 0x1 0x27 0x0 0x0 0x0
end
It doesn't seem to work. It blocks A from working, but doesn't activate the script.

Rumille
October 13th, 2012, 08:35 AM
So, I'm using this hacked engine. Mainly, because I need to use his Runtime Trainer Customization function. I kinda figured out how it works through the .doc, but I have a problem with the way it works. I used the Overworld Editor - Rebirth Edition to edit the basic hero sprites (hero standing and hero walking). I figured that by the time I use my Runtime Trainer Customization script, I still don't have my Running Shoes, Bike, VS Seeker or Fishing Rod, so why change those sprites. I wanted to use the first command (Setvar 0x4054) to change my walking/standing Hero to the original look. I would change the look of a random NPC to that of the original Hero, so that when I use the 'Setvar 0x4054' command, my hero would have the original look again. To pre-test it, I just used the 'Setvar 0x4054'-command on a random NPC. I gave myself the Running Shoes, to see how it would look. When I went outside and ran, I didn't get the old Hero look though, it was the random NPC 'gliding'. No running animation, just the basic standing sprite moving through the screen.

How can I get it to work that I start the game with my 'new' Hero look, then have the command change my appearance, so that the rest of the game I look like the old/normal Hero?

LugiaMZ
October 13th, 2012, 09:46 AM
^ I'm pretty sure you just use "hidepokepic"

How is special 0xcb supposed to be used? I can't seem to figure it out.

The following script is meant to make it so when the player pushes B, they will be warped.

#dynamic 0x800000

//---------------
#org @start
setvar 0x8004 0x1
loadpointer 0x0 0x88614CB
special 0xCB
special 0xCA
special 0x8E
release
end


0x88614CB leads to:
#dynamic 0x800000

//---------------
#org @start
warp 0x1 0x27 0x0 0x0 0x0
end
It doesn't seem to work. It blocks A from working, but doesn't activate the script.

Special 0xcb is for display full-sized images? If it the pointer is load the a full-sized images offset? And last question a full-sized images is needed how much pixel?

Thanks you very much.

Spherical Ice
October 13th, 2012, 10:07 AM
Um no, I was asking how could I use special 0xcb, its got nothing to do with you haha.

in any case, the GBA can only display sprites of 64x64, any larger and it has to be a tilemap. You just need to use the hidepokepic command to hide the sprites you display with special 0x188.

itman
October 13th, 2012, 10:26 AM
special 0x18C closes it whatever special 0x18B brings up.

Source: Original show fossil script.

LugiaMZ
October 14th, 2012, 08:44 AM
Um no, I was asking how could I use special 0xcb, its got nothing to do with you haha.

in any case, the GBA can only display sprites of 64x64, any larger and it has to be a tilemap. You just need to use the hidepokepic command to hide the sprites you display with special 0x188.

I better use hidepokepic to close it... I having more question to ask... I want to make a script for example player battle with a Mew, after battle makesure player have catched Mew or not, if uncatched going to rebattle. How to make scripting it? I played Pokemon Ash Gray battle with Bulbasaur's it used this script, and I need it too. ><

Another question, how to make a uncatchable Pokemon? I played Pokemon Ash Gray it also having this function, I thinks JPAN Fire Red Engine can do it.

Sorry for my bad english. ><

Thanks you very very much. >< :)

itman
October 14th, 2012, 10:36 AM
I better use hidepokepic to close it... I having more question to ask... I want to make a script for example player battle with a Mew, after battle makesure player have catched Mew or not, if uncatched going to rebattle. How to make scripting it? I played Pokemon Ash Gray battle with Bulbasaur's it used this script, and I need it too. ><

Another question, how to make a uncatchable Pokemon? I played Pokemon Ash Gray it also having this function, I thinks JPAN Fire Red Engine can do it.

Sorry for my bad english. ><

Thanks you very very much. >< :)

To repeat, special 0x18C closes what special 0x18B brings up.

As for the battle that makes you catch something, that can easily be done with scripting. The patch is not needed for that.

As for the uncatchable pokemon, read JPAN's tutorial that comes with the hacked engine. It's a special that activates it, and it explains how to change it and such in that word document.

robin22gongon
October 14th, 2012, 05:28 PM
Sorry for asking but, can someone do this for emerald?

munchhack
October 15th, 2012, 03:04 PM
Can anyone please explain to me how to use the Firered Hacked Engine? I would like to insert more ow's, and more palletes and don't know how. Please PM me if you know how.

Shiny Quagsire
October 17th, 2012, 05:58 PM
Can anyone please explain to me how to use the Firered Hacked Engine? I would like to insert more ow's, and more palletes and don't know how. Please PM me if you know how.

It's all there, you just need to know your terminology and read very carefully. It's all in the guide that comes with it. For overworld editing, I believe you have to set one of the unknown bytes for the overworld to the correct overworld table number, and pallets are set up with your new table (I think).

Nara567
October 21st, 2012, 10:02 AM
As I understand, this cuts off compatibility with the Start Map editor, so where would I go in the Hex Editor to change the start map?

itman
October 21st, 2012, 11:46 AM
As I understand, this cuts off compatibility with the Start Map editor, so where would I go in the Hex Editor to change the start map?

http://www.pokecommunity.com/showpost.php?p=7365034&postcount=270

Spherical Ice's post^^

awipe1
October 26th, 2012, 07:45 PM
I have a question, and this might sound stupid cause i'm a little new but how do you add more sprites to advanced trainer? I am pretty sure you can do that using this hack engine but i'm not sure how :S

mindwalks
October 28th, 2012, 08:15 PM
hi ive been hacking and setting up my game without the engine for a few weeks and the only reason is because im having trouble loading other programs like smca and any other editorsr besides advance map. they all come up with "runtime error 380" or something like it.
so my question is am i missing something after putting the engine patch on?
ive read the readme as in skimmed mostly for info but seems to be info for using it after its applied right. looking forward for a reply thankyou.

CameraFan
November 29th, 2012, 12:47 PM
I'm trying to install this to add more OW palettes but when it gets to the variables for Dynamic OWs promptbox it can never progress when I put in a free variable. Am I missing something?

Wynchester
December 8th, 2012, 07:52 AM
This is interesting. I think I might try it out sometime. Thanks for the Patch, friend!

FrozenInfernoZX
January 4th, 2013, 06:10 PM
Does anybody know to get special 0x58 to work? The Wild Pokemon Switcher? I keep getting random leveled ?????????? and Sunfloras, weird. =/

Shiny Quagsire
January 5th, 2013, 09:26 PM
I have a question, and this might sound stupid cause i'm a little new but how do you add more sprites to advanced trainer? I am pretty sure you can do that using this hack engine but i'm not sure how :S

That's a completely different thing that what this patch does. This patch expands the OVERWORLD table. If you wanted to add more trainer sprites, you'd have to repoint and expand the trainer sprite table as well as the trainer sprite animation table.

Counterfeit
May 9th, 2013, 11:49 AM
So just to confirm, the .ips and tool perform the same job right? Because I get an unhanded exception when running the tool though parallels.

also, why so dead thread? o_0

Spherical Ice
May 18th, 2013, 12:41 AM
So just to confirm, the .ips and tool perform the same job right? Because I get an unhanded exception when running the tool though parallels.

also, why so dead thread? o_0

The .IPS applies everything in the hack, the tool lets you pick and choose.

vizor
May 25th, 2013, 04:23 AM
Is ist possible, to make the Tools and patches avalible for German Firred and other Languages? It shouldnt make too much work, just ROM-Offset researching i guess..
Awesome work duide :D

darky123
June 18th, 2013, 08:30 AM
If I use this tool to start a new hack, can I still use other tools, editors and scripting? Thanks!

TorNyan
August 10th, 2013, 02:09 PM
I'm trying to install this to add more OW palettes but when it gets to the variables for Dynamic OWs promptbox it can never progress when I put in a free variable. Am I missing something?

Same problem here. Not only with the OW hacks though. For example: Choose the variable for the wild pokemon level switch. Tried different variables between 4000 and 4100.
I'll just use the ips file instead, if its true that the ips applies every engine hack provided.

Le pug
August 24th, 2013, 08:57 PM
Choose where you go when you die, even if it's not a pokecenter.

this i want, though i don't know how this works? do i just patch it or what cus the folder isn't really self explanatory

like i see the whole apply special program but is there a tutorial and guide cus the pokecenter thing i want really badly

GoGoJJTech
September 13th, 2013, 11:36 AM
Choose where you go when you die, even if it's not a pokecenter.

this i want, though i don't know how this works? do i just patch it or what cus the folder isn't really self explanatory

like i see the whole apply special program but is there a tutorial and guide cus the pokecenter thing i want really badly

This is FR exclusive, and JPAN is gone. So here, apply the patch, then use the tool to customize. Choose FREE variables, probably might want to use Jambo's flag/variable extensions. Then you're not done. The first town (pallet town) doesn't warp properly, so fix it with a-map 1.92. then you're good.

superluke
September 26th, 2013, 09:01 PM
So, I'm having trouble with a few commands and hoping some could help me out.
The commands are :
Special 0x58 – Wild Pokémon Data Switch
Special 0x16 – Change Pokémon species
Special 0x52 – Temporary Status inducer
so if someone could just walk me though the making of thes script that would be very help full

Turtl3Skulll
October 11th, 2013, 05:57 PM
Special 0x2f - key dumper.
If anyone knows how JPAN's example work in his guide, please explain.
Adding things up in the binary calculator is what I don't understand how to do.

lyko
October 18th, 2013, 09:33 AM
Very useful, perfect, God bless!

Merak
November 30th, 2013, 12:06 PM
I'm having problems applying the hack using the hacktool.

When I try to apply certain hacks, such as the OW hacks or whiteout hacks, I have a problem where it won't progress.
It'll ask for a variable for something(EX: variable for dynamic OWs for the OW hack, a variable for the pokemon level switch hack, or a variable for the map etc for the whiteout hack) and no matter what I input and no matter how many times I input it, the exact same box will pop up and ask for the exact same thing, and it will not stop.

Am I missing something, or am I doing something wrong? If so, what is it?
Thanks in advance for any help. ^^

karatekid552
November 30th, 2013, 02:41 PM
I'm having problems applying the hack using the hacktool.

When I try to apply certain hacks, such as the OW hacks or whiteout hacks, I have a problem where it won't progress.
It'll ask for a variable for something(EX: variable for dynamic OWs for the OW hack, a variable for the pokemon level switch hack, or a variable for the map etc for the whiteout hack) and no matter what I input and no matter how many times I input it, the exact same box will pop up and ask for the exact same thing, and it will not stop.

Am I missing something, or am I doing something wrong? If so, what is it?
Thanks in advance for any help. ^^

It took me a bit to figure this out, but JPAN set restrictions on what vars you can use. However, poor coding on his part, he didn't share those restrictions, at least that I could see. The vars that I found to work tended to be between 4050 and 40FF, which are the safer ones anyway. You can always apply the hack and then use a little hex editing to change the var to a different one later.:P

Merak
November 30th, 2013, 04:53 PM
It took me a bit to figure this out, but JPAN set restrictions on what vars you can use. However, poor coding on his part, he didn't share those restrictions, at least that I could see. The vars that I found to work tended to be between 4050 and 40FF, which are the safer ones anyway. You can always apply the hack and then use a little hex editing to change the var to a different one later.:P

Ah, thanks. Now I can finally get that hack applied. :)

Gorrioncillo
December 6th, 2013, 04:14 AM
somebody knows how to make a really good move tutor, i want to do so with special 0x17 but it teach the move to all pokemons, and that make illegal pokes, i need to make one similar to the moves teacher in the game, is this possible???

Merak
December 6th, 2013, 03:23 PM
somebody knows how to make a really good move tutor, i want to do so with special 0x17 but it teach the move to all pokemons, and that make illegal pokes, i need to make one similar to the moves teacher in the game, is this possible???

Okay, I'm no expert on hacking, but I have a suggestion. Try using something like XSE to open the script for a move tutor currently in the game. Look at the data and try to figure out how it works, it shouldn't be too difficult(I think). Then copy the script and modify it to fit your specifications.


Note: I don't know for sure how easy/hard this might be or if it will be completely successful. Just a thought. If anybody has some actual information, feel free to be more helpful than me. :P

Aethestode
December 8th, 2013, 07:28 AM
somebody knows how to make a really good move tutor, i want to do so with special 0x17 but it teach the move to all pokemons, and that make illegal pokes, i need to make one similar to the moves teacher in the game, is this possible???

You need to goto HEX, to do that.

Anyway, here's an example of the script

#org @Start
lock
faceplayer
checkflag 0x200
compare LASTRESULT 0x1
if 0x1 goto @AlreadyLearnt
msgbox @WantToLearn
boxset 0x5
compare LASTRESULT 0x0
if 0x1 goto @DontWant
setvar 0x8005 0x1 (Setvar 0x8005 0x1 is reserved for Mega Punch I think, you'll need to goto into HEX to change it).
special 0x18D
setflag 0x200
release
end

Here's a guide
http://www.pokecommunity.com/showpost.php?p=4141210&postcount=258

Gorrioncillo
December 9th, 2013, 12:02 PM
[QUOTE=rockmanmegaman;7976717]You need to goto HEX, to do that.

Anyway, here's an example of the script

#org @Start
lock
faceplayer
checkflag 0x200
compare LASTRESULT 0x1
if 0x1 goto @AlreadyLearnt
msgbox @WantToLearn
boxset 0x5
compare LASTRESULT 0x0
if 0x1 goto @DontWant
setvar 0x8005 0x1 (Setvar 0x8005 0x1 is reserved for Mega Punch I think, you'll need to goto into HEX to change it).
special 0x18D
setflag 0x200
release
end


thank you, but what i want is to keep those moves (maybe change to pay version and infinite relearned). I want to make a new ones, those from emerald and do the same thing, is this possible????

BIGFLASHER98
May 11th, 2014, 05:39 AM
hello ^^

i have a big problem with this patch,there are some tiles are bugged,and i cant solve how to change them,i tried with a lot of fire red versions but nothing....

i verified and the tile that is bugged is the black tile,how can i change them to black?

ah,also A-map is not working well because the pallet town map in fire red,in the rom is bugged,but in A-map it seems normal..

how can i solve those two problems?

anonyboy
May 14th, 2014, 02:37 AM
hello ^^

i have a big problem with this patch,there are some tiles are bugged,and i cant solve how to change them,i tried with a lot of fire red versions but nothing....

i verified and the tile that is bugged is the black tile,how can i change them to black?

ah,also A-map is not working well because the pallet town map in fire red,in the rom is bugged,but in A-map it seems normal..

how can i solve those two problems?

for the first change with the block editor.
for the second make sure you have a warp outside of the player's house and that he's connected to the one in the player's house. because if you get out of the house without a defined place to go to, you'll be stuck in border

Darma_48
May 16th, 2014, 09:51 PM
how to use that? sorry i' newbie

BLACK0UT
June 3rd, 2014, 11:51 AM
Features
Support for over sixty thousand different OWs, as well as access to fourty-six hundred different palettes

JPAN, by this do you mean the pallets in Advance Map that you use to make new tilesets?

Spherical Ice
June 3rd, 2014, 12:15 PM
No, the palettes for overworld sprites, like the sprite for the Hiker or the Bug Catcher, and so on.

KillerKrabs
June 21st, 2014, 12:35 AM
I'm intrigued, but how do you change the deathpoint?