The PokéCommunity Forums

The PokéCommunity Forums (https://www.pokecommunity.com/index.php)
-   Binary Hack Research & Development (https://www.pokecommunity.com/forumdisplay.php?f=195)
-   -   Development Pokémon Fire Red Hacked Engine (https://www.pokecommunity.com/showthread.php?t=194241)

~Anbuja June 22nd, 2011 1:03 AM

wwhy everytime i patch an fr rom with jpan engine it mess up the mapps? like glitching them?

kidkouga June 22nd, 2011 1: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 7: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 8:16 AM

Quote:

Originally Posted by Full Metal (Post 6690076)


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

Quote:

Originally Posted by metapod23 (Post 5933583)
I just wanted to say that I figured out who to properly execute this special. For any who might want to know what to do:

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

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

Code:

setvar 0x407e 0x1
special 0x81


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

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

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 7:02 AM

Quote:

Originally Posted by Masou Shoujo Haruna (Post 6717020)
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 3:09 AM

Quote:

Originally Posted by Quilava's Master (Post 6717293)
[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 1:48 AM

Quote:

Originally Posted by metapod23 (Post 6531475)
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 1:34 PM

Nice... Can we use it for hacks? Just wondering...

Full Metal July 8th, 2011 2:25 PM

Duh. What else would it be for? Just wondering...

metapod23 July 25th, 2011 2: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?

Missingyep July 30th, 2011 9:03 PM

Quote:

Originally Posted by JPAN (Post 6245840)
-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

Quote:

Originally Posted by redriders180 (Post 6775960)
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 1: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 1: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 1: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 1: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 1:54 PM

Quote:

Originally Posted by U_Flame (Post 6783020)
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 2: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 2:02 PM

Well that's not going to be fixed by this, no. >:

U.Flame August 3rd, 2011 2:05 PM

All right. Thanks for the info.

~Anbuja August 3rd, 2011 2:16 PM

Quote:

Originally Posted by Spherical Ice (Post 6783012)
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 2:19 PM

No, new maps would not be glitched.

metapod23 August 3rd, 2011 4:53 PM

Quote:

Originally Posted by Spherical Ice (Post 6782963)
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.


All times are GMT -8. The time now is 9:02 AM.


Like our Facebook Page Follow us on Twitter © 2002 - 2018 The PokéCommunity™, pokecommunity.com.
Pokémon characters and images belong to The Pokémon Company International and Nintendo. This website is in no way affiliated with or endorsed by Nintendo, Creatures, GAMEFREAK, The Pokémon Company or The Pokémon Company International. We just love Pokémon.
All forum styles, their images (unless noted otherwise) and site designs are © 2002 - 2016 The PokéCommunity / PokéCommunity.com.
PokéCommunity™ is a trademark of The PokéCommunity. All rights reserved. Sponsor advertisements do not imply our endorsement of that product or service. User generated content remains the property of its creator.

Acknowledgements
Use of PokéCommunity Assets
vB Optimise by DragonByte Technologies Ltd © 2023.