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

[Fire Red]: Extending The Number Of Safe Flags And Variables

FrozenInfernoZX

What is out there?
756
Posts
11
Years
I noticed that only some or plenty of the 0x900 - 0x1800 flags (random ones) works. The ones that do not work are seemingly "set" already. Also some of the flags that seemingly seem to be functional becomes unfunctional after a while. This problem has been plaguing my hack for the longest, which forced me to eventually cancel my most recent release. It is by far the oddest conflict I've ever experienced while hacking. The reasoning for cancelling, was due to flags that once worked (when I tested it already, eventually stopped working at later time for whatever reason, thus having a completely broken game with its events out of context).
 
417
Posts
9
Years
  • Age 33
  • Seen Nov 20, 2016
I noticed that only some or plenty of the 0x900 - 0x1800 flags (random ones) works. The ones that do not work are seemingly "set" already. Also some of the flags that seemingly seem to be functional becomes unfunctional after a while. This problem has been plaguing my hack for the longest, which forced me to eventually cancel my most recent release. It is by far the oddest conflict I've ever experienced while hacking. The reasoning for cancelling, was due to flags that once worked (when I tested it already, eventually stopped working at later time for whatever reason, thus having a completely broken game with its events out of context).
I haven't used this, so I can't be sure it is perfect. But a quick scan of the routine shows that it is using 0x0203C000 to store the new flags. This should be fine by itself, but a lot of people use that area of RAM for their custom routines. This is why you need to read any routines you insert and keep track of which areas are RAM are being dedicated to what specific purpose. A flag will not be randomly be set. More likely, you're using 0x0203C000 for some other purpose without realizing it.
 
1,344
Posts
14
Years
  • Seen Dec 10, 2021
I noticed that only some or plenty of the 0x900 - 0x1800 flags (random ones) works. The ones that do not work are seemingly "set" already. Also some of the flags that seemingly seem to be functional becomes unfunctional after a while. This problem has been plaguing my hack for the longest, which forced me to eventually cancel my most recent release. It is by far the oddest conflict I've ever experienced while hacking. The reasoning for cancelling, was due to flags that once worked (when I tested it already, eventually stopped working at later time for whatever reason, thus having a completely broken game with its events out of context).

To add on to what azurile said make sure the LR help menu is disabled, otherwise if people use it it'll mess up your flags
 

FrozenInfernoZX

What is out there?
756
Posts
11
Years
I haven't used this, so I can't be sure it is perfect. But a quick scan of the routine shows that it is using 0x0203C000 to store the new flags. This should be fine by itself, but a lot of people use that area of RAM for their custom routines. This is why you need to read any routines you insert and keep track of which areas are RAM are being dedicated to what specific purpose. A flag will not be randomly be set. More likely, you're using 0x0203C000 for some other purpose without realizing it.
That makes sense, very true. I never thought about it like that. Would it be fine for me to change the RAM address to a new one?
To add on to what azurile said make sure the LR help menu is disabled, otherwise if people use it it'll mess up your flags
I think mine is disabled already, I think I remembered having a problem like that in the past where my events would get reset after taking a step.
--------------------
EDIT 1 - I think I solved it.
Instead of using 0x0203C000, I used 0x0203D000. Then all the flags worked properly as intended. However if I were to save and re-enter the game, all the flags reset upon taking a step. So then I figured that the RAM addresses utilized by the Save Expansion are already occupied, thus, I changed those offsets into free ones, which are after the
0x0203D000 range. So I just changed the C's to D's. But something is not too right though... I'm so lost.
 
Last edited:
417
Posts
9
Years
  • Age 33
  • Seen Nov 20, 2016
That makes sense, very true. I never thought about it like that. Would it be fine for me to change the RAM address to a new one?

I think mine is disabled already, I think I remembered having a problem like that in the past where my events would get reset after taking a step.
--------------------
EDIT 1 - I think I solved it.
Instead of using 0x0203C000, I used 0x0203D000. Then all the flags worked properly as intended. However if I were to save and re-enter the game, all the flags reset upon taking a step. So then I figured that the RAM addresses utilized by the Save Expansion are already occupied, thus, I changed those offsets into free ones, which are after the
0x0203D000 range. So I just changed the C's to D's. But something is not too right though... I'm so lost.
I don't think JPAN's saveblock hack goes beyond 0x0203D000. I want to say it is a little under x1000. Obviously it would be best if you knew which areas of RAM you were using, but I guess that isn't an immediate option. Until you can figure it out, try putting it closer to the end of the save area. Like 0x0203CC00 or something.
 

FrozenInfernoZX

What is out there?
756
Posts
11
Years
Do I have to change the RAM addresses in the save block hack too? I've been changing the RAM address of the flag extension and it still somewhat doesn't work like it should.
--------------------
EDIT 1 - I did some more self-editing to the code and I think I finally got it to work now. I'll report back more information later this week as I test it.
 
Last edited:

Shogun

I'll be back
527
Posts
10
Years
I need to add the new safe flags routine but I'm already using flags of the JPAN SH (2XXX to 3XXX). What is the change in the routine If I want to still be able to use these flags?
 
1
Posts
5
Years
Hi everyone, sorry if I comment on this dead post, but it seems to be the only one that actually at least mentions the problem I'm strugglin with now.

I applied the patch to a clean Fire Red ROM, then wrote the routines for both flags and vars. Now I have the same problem explained by MrDollSteak, that is sprites are no longer hidden. I'm talking about the very firsts, like Oak sprite in Pallet Town and the rival sprite in the laboratory.

I know you talked about this a couple of years ago, but can you give me some help? Or, at least, post a link where I can find it.

Thank you very much, your works are awesome!
 
9
Posts
10
Years
  • Seen Feb 27, 2021
Hello everyone,

I'm new to all of this and I'm having a difficult time on finding the 0x6E45C location to them enter in my little endian code. Can someone give me a hand with finding the location in HxD please.
 

Dr. Seuss

Will finish GS Chronicles, I swear!
523
Posts
10
Years
Hello everyone,

I'm new to all of this and I'm having a difficult time on finding the 0x6E45C location to them enter in my little endian code. Can someone give me a hand with finding the location in HxD please.

with your ROM opened in HX press Ctrl + G and paste 6E45C and then hit enter
 
9
Posts
10
Years
  • Seen Feb 27, 2021
can someone help me again I messed up and I think im rewriting the wrong bytes!?
what position do you enter variable re-pointers at?

this is the data thats there now

08 47 00 00 70 B5 00 04 04 0C 26 1C 02 48 84 42

this is what I need to change something in there with

00 48 00 47 XX XX XX 08 plus the little edian +1 which mine is 61A93F

I hope this makes sense and someone can help me:)
 

Dr. Seuss

Will finish GS Chronicles, I swear!
523
Posts
10
Years
can someone help me again I messed up and I think im rewriting the wrong bytes!?
what position do you enter variable re-pointers at?

this is the data thats there now

08 47 00 00 70 B5 00 04 04 0C 26 1C 02 48 84 42

this is what I need to change something in there with

00 48 00 47 XX XX XX 08 plus the little endian +1 which mine is 61A93F

I hope this makes sense and someone can help me:)

You need to overwrite (Overwrite, not insert) these existent bytes to 00 48 00 47 XX+1 XX XX 08. The offset where you inserted the code is not aligned. You should move it to one that ends in 0, 4, 8 or C. If you move it to 61A940 for instance, the XX+1 XX XX 08 would be 41 A9 61 08
 
9
Posts
10
Years
  • Seen Feb 27, 2021
I must be missing something here? I mean overwrite but from what byte sounds I start overwriting from the line that's already there that I stayed before?
 
Last edited:
192
Posts
5
Years
Flags starting 0x900 to 0x92F have the same effect of starting vanilla values:
Cut, and Rock Smash flags used on maps.
If I make a event, such as legendary pokémon, etc, the event dont disappear and returns to map if I step far to the event.
 
192
Posts
5
Years
Flags from 0xA00 to 0xAFF have a lot of glitches, I made a deep investigation and at this moment, the safe flags' blocks are:

- 0x930 to 0x9BF
- 0xB00 to 0xDFF

PS: I'm investigating other places to find glitched flags.
Another annoying issue is: If I restart my game and start a new character progress, the flags activated cannot be cleared correctly.
 
Back
Top