![]() |
Is there a routine to implement double wild battles in FR? I haven't seen this mechanic posted in the index.
|
Quote:
|
[FR] A friend told me he figured out how to switch between world maps in the fly menu in Fire Red, just like the town map menu.
This allows you to fly between the world maps. Just replace the first two bytes at 0xC004C with 00 00, this will make the switch button appear above the cancel button. He hasn't fully checked for possible bugs, however he believes there is none. Edit: The switch button works exactly the same way as the town map one, meaning you must unlock it first. |
Remove Mail Data from Items [FR]
Hello Everyone, I started the process to remove Mail items from my game, and I noticed something odd. Even when removing all of the Mail data from the items, and essentially turning them into held items, the game still recognized them as Mail. I'm assuming there is a table somewhere with these. Using the link below, I have looked through the hex to try to find any errors with the program I was using to edit: Item Data Structure Gen III C0 E9 E6 00 CA D5 E8 D7 DC FF E9 E6 FF 00 82 00 F4 01 00 00 60 6B 3D 08 00 00 01 04 39 22 0A 08 00 00 00 00 00 00 00 00 00 00 00 00 This is the item below. Nothing in here links back to mail, however it still displays the mail icon, etc. I have also tried also searching for a table, unfortunately with no luck. https://i.ibb.co/J2ZMr64/Pokemon-Shine-1550179168587.png https://i.ibb.co/S0HL1k0/Screenshot-21.png https://i.ibb.co/GfDSHWD/Screenshot-22.png EDIT: Placing C0 46 C0 46 C0 46 C0 46 C0 46 C0 46 C0 46 C0 46 at 980FA will completely remove the check for Mail Items making these act as normal items. (Items 0x79 - 0x84 will then be cleared up and function as standard items) Credits to Skeli for finding this. (Thank you man!) |
Quote:
It works but all the other Pokemon get 0 exp |
Disable Item Usage [EM]
At 0x31BC10, put 05 B9 |
Quote:
|
Quote:
but it did show that it got exp just it sayed 0. |
so I've been looking at the contents and... do we really not know the offset for Fire Red's experience gain formula? there is for Emerald but not for Fire Red. All i need is add a multiplier to it xd
|
Quote:
A2F2E: C0 46 C0 46 C0 46 C0 46 C0 46 C0 46 C0 46 C0 46 |
Adding New Evolution Methods[Ruby]
Spoiler:
Routine by FamiliaWerneck: Spoiler:
Male: Spoiler:
Female: Spoiler:
Move: Spoiler:
|
EV-enhancing items (Power Items)[Ruby]
[/SIZE] The routine now does not require any new Held Effect Item Byte. The new power items are tied to Macho Brace's Held Item Effect Byte. (Thanks to MrDollSteak for giving the idea.) The type of EV gain is now differentiated by the Second Held Effect Byte (the byte just after the Primary Held Effect Byte in the Item Table). There is no need to code the Speed Drop explicitly for Power Items. Usage is now like this by using the following parameters in the Item Table: Primary Byte | Secondary Byte | Item Name 0x18 | 0x0 | Macho Brace 0x18 | 0x1 | Power Weight 0x18 | 0x2 | Power Bracer 0x18 | 0x3 | Power Belt 0x18 | 0x4 | Power Anklet 0x18 | 0x5 | Power Lens 0x18 | 0x6 | Power Band Also, there are additional byte changes mentioned in the Spoiler to limit the EVs for each stat from 255 to 252 to avoid wastage of EVs by normal battling. For Ruby: Spoiler:
|
Quote:
|
Does anyone know how to change the world maps for maps 2-4 in fire red?
|
The newdex order in Crystal(U) is at offset 40D60.
|
Quote:
|
Hi everyone, I got a quick question I'm sure after all these years you might have an answer. I'll try to make it as small as possible. Here it is:
I wanna be able to give whatever pokemon I choose to a person and or whatever is on my top slot, and that person will give me another one right back. For example, I want to give a person my charizard and I want that person to give me back another Charizard with obviously different stats, I have an idea on how to implement it on my hack, i just dont know how i could script it or what or which vars to use. Thanks guys |
@dGxx what game are you using as your base?
Either way here are the indexes for your team data in the gen III games: https://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_data_structure_in_Generation_III#Data_location The part of the Pokémon data that has the species id is hidden behind encryption though, so you'll have to unencrypt it. Dunno exactly how to do that, parts of the solution might be on this page: https://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_data_substructures_in_Generation_III |
Quote:
Spoiler:
|
Disable "The Pokemon Stopped Evolving." [FR]
FR has a feature that if you attempt to evolve a Pokemon into something not in the Kanto Dex (and you don't have the National Dex), it will mysteriously stop evolving. You could just give the player the National Dex at the beginning of the game, but if you don't want to do that, you can easily disable this. Basically, this will turn some conditional jumps into unconditional jumps, and remove some checks. No free space required. Code:
Spoiler:
Hey, I'm new at coding and whilst making a minor edit hack for Pokemon Leaf Green, I had a few questions regarding this; Firstly, and this might be a dumb question, am I able to simply change out the text from firered to leafgreen? Secondly, where would I put this script? I've only writen one script and have had only a few days of experience in writing scripts. Thank you in advance ~ |
Quote:
LG's offsets are not the same as FR. To port it from FR to LG, you'd have to find the LG equivalent of each FR offset listed (0x08043156, 0x080CE90C, etc). I don't know the LG equivalents, and I have no inclination to look them up. Nobody hacks or researches LG because there's really no point; you could turn FR into a clone of LG with minimal effort and from a gameplay perspective that'd be identical but you're not needlessly handicapping yourself by actually starting from LG. If you want to use a Kanto-based game as your base, I strongly advise that you use FR. |
Alright, Thank you for responding. Truth be told, I just had the LG ROM already on my computer and wanted to mess around with it, I didn't know the two were different beyond version exclusives and title screen. I'll try looking it up because I've put in a bit of work already, but if I can't find anything I'll get an FR ROM and start over. That much shouldn't be too hard.
|
Faster Game Saving [FR]
Starting with Gen II, attempting to update the save on your current file would tell you that "There is already a save file. Is it OK to overwrite?" This needless extra step remained until Gen V, when it reverted the process back to one step. To skip this step and save after just one prompt, change the byte at 0x6F874 from 0A to 56. This only applies to saving over your current profile. If you start a new game and try to save over the old profile, you'll still receive the extended overwrite warning. Explanation: The subroutine at 0x6F86C gets loaded if the game detects there's already a save file. First it checks if the profile is different from the current one. If it's the same profile, it branches to 0x6F88C. This is indicated in hex by 0A D1. After branching, it'll load the "There is already a saved file" text string and corresponding subroutine. What this change does is make the game branch instead to 0x6F924, which bypasses the already-present save subroutine and skips straight to saving the game. I'm still not that good at ASM. If anything needs correcting, feel free to do so! |
I made a script with the help of some asm made by FBI, he had a custom wild battle asm that helped me create a very cool and desirable event where I give away a pokemon and in return I would get a perfect iv pokemon right back. I made this for FIRE RED obviously and here is the script I made and I need some help with one thing for perfection's sake.
Spoiler:
Now, what I need help with is that I used special 0xbb. It is supposed to store the pokemon I selected into daycare, how I do I delete the daycare stored pokemon so there is no choice of getting it back, the whole point I made this was to get rid of the imperfect pokemon to fight a perfect version of it to re-raise. Thanks guys! |
Pointer to expand object effect tables and limiter:
For Ruby: Table: AXVE- 0x1FCDE4 Limiters: 0x0803E2F8: 00 00 00 00 For Fire Red: Table: BPRE- 0x2528BC Limiters: 0x08042508: 00 00 00 00 0x0804152C: 00 00 00 00 Credits to: JPAN Spoiler:
|
Update the AI Priority move effects table [FR]
If you open a trainer editor and you edit aany trainer, you'll notice there's an option for "Trainer AI". By default, most of trainers are set in 0, and important trainers like Gym Leaders have this set to 7. There's a good explanation about how to setup the trainer AI in this post made by Samu from Whack a Hack forums (In spanish). Well, the point of this post is not that research. If you set the trainer AI to 7, any trainer with that AI will start the battle giving priority to some moves that set the battle, like poisoning your Pokémon, increasing their speed, attack stats, etc. There is a table of move effects located at 0x81DBAA7 with a set of 0x37 move effects that have priority over other move effects during the beggining of the battle. The table has the following entries. Code:
|
Quote:
|
[FR] Suppress Pokédex screen on new Pokémon capture
To prevent the Pokédex screen/animation from showing after catching a new Pokémon, nop the 22 bytes at 0x106B7A (that is, up to and including 0x106B8F). This will jump straight to the nickname prompt after a new Pokémon is caught (but will still show the "Pokémon X was added to the Pokédex" text if left unedited). |
Change Vs Seeker Step Requirement (FR)
Change 0x0810C50E to your number in hex |
Quote:
To find out where the Habitats table is located, and to learn more about it, go to the Froosty The_learner post. FIRE RED habitat editing: https://www.pokecommunity.com/showthread.php?t=379667 |
Making the EVs more "RBY/GSC-like" on FireRed
RBY and GSC are known for supporting "full EV spread", as the 510 EV limit didn't existed at the time. Bringing back the old Stat Exp system would be a very hard task, but I found a way to simulate the full EVs from past gens by limitting the max EV to 63 and reducing the EV divider from 4 to 1 (of course, removing the 510 EV limit would be a better solution, but I haven't found a way to do that with binary hacking). This solution works on FireRed. Step 1) Limit the EV cap to 63 From Touched's tutorial: Address 0x0439FC = 0x3F (63) Address 0x043A02 = 0x3F (63) Step 2) Change EV divider to 1 I owe this one to Mr.Pkmn posting the hex addresses to do that. In that case, he shows how to change the EV divider from 4 to 2. To make it 1, I have made some tests to find a value that A) stats would be correctly divided by 1 and B) would not screw up the stats (this one is dedicated to the HP EV divider). The values I found are completely empirical, I have no idea of why they have worked and I haven't found any glitches until now (I have not tested link battles on my hack yet). Here are the changes: Address 0x03E582 = 0x02 (HP) Address 0x03E5CE = 0x0F (ATK) Address 0x03E614 = 0x0F (DEF) Address 0x03E65A = 0x0F (SPD) Address 0x03E6A0 = 0x0F (SAT) Address 0x03E6E6 = 0x0F (SDE) Credits: - Touched - Mr.Pkmn ________________ KNOWN PROBLEMS: About that 63 limit... well, a Pokémon won't get past it by gaining EV by battle. However, Vitamins (HP Up, Protein, etc.) will completely ignore that, so your HP can reach 100 EV with HP Up (and the same for other stats). For now, the best solution I have is to remove the access to every vitamin from the game with AdvanceMap, so you'll get EVs only by battle. I really don't know how to change the max EV you can get with vitamins (default = 100). |
Static Levels For In-Game Trades [FR]
EDIT: Since this is just a simple byte change, I'm keeping this up, but I suggest you use this instead, which allows for this and more. Prior to Gen V, Pokemon you receive from in-game trades will be at the same level as the Pokemon you traded. From Black and White onwards, however, they come at a particular level. To get that in FR, simply make the following change: Code:
0x0826CF8C + 0x3C * id + 0x3A, where id is the index of the in-game trade you're modifying (e.g. Reyley's Mimien is 0, and Norma's Tangela is 7). Pull up the resulting address in a hex editor, and modify that byte to set the level for that Pokemon. Since this uses some of the padding bytes in the existing struct which were zeroed out (because they were originally unused), you'll need to set levels for all of them or they'll come at level 0. If you have any problems, let me know. |
Would anyone be able to provide or point me to a tutorial (inside or out of this thread) on extending the regional dex limit (past 255) or creating a completely custom regional dex in Fire Red?
|
Quote:
|
[FR] Remove TM/HM PP replenishing
If you want to port the behaviour of TMs/HMs' interaction with PP from Gen V+ to FireRed, where teaching a move retains its current PP, assemble and insert the following routine: Code:
|
Choice Specs [Ruby]
Spoiler:
Choice Scarf [Ruby] Spoiler:
Light Ball [Ruby] Spoiler:
I don't have the routine since I took the data from the mrdollsteak database and adapted it to ruby |
Quote:
1D8CFB: 28 66 8D 1D 08 |
Didn't see this documented anywhere, so I thought I should share it here.
On the credits section in Fire Red: The maps shown in the credits section are determined by a table at 0x414588. It's a table with 13 pointers, starting at 0x4143e8. Every entry has a length of 0x20. The bytes that determine the starting point are as follows: 0x3 = The map bank 0x5 = The map number 0x9 = X starting coordinate 0xB = Y starting coordinate Byte 0x11 to 0x14 of the entry determines the direction in which the camera moves: 00 00 01 00 = Down 00 00 FF FF = Up 01 00 00 00 = Right FF FF 00 00 = Left 01 00 FF FF = Up-right Diagonally 01 00 01 00 = Down-right Diagonally FF FF FF FF = Up-left Diagonally FF FF 01 00 = Down-left Diagonally That's all. Credits to Spherical Ice. |
Quote:
If you press the B button to cancel out of the TM/HM "learning" animation, the PP amount for the taught move is completely filled up. I'm guessing that's not intended behavior? |
Quote:
Code:
|
Quote:
|
In Fire Red,at 3C68DC the 18 stands for the width of the area lightened up by flash
|
The table that determines which stats are boosted/nerfed by different natures is at 0x252B48 in FireRed and 0x31E818 in Emerald.
Each entry is five bytes long (one for each stat excluding HP). If the byte is 0x1 if it’s boosted, 0xFF if it’s nerfed and 0x0 if it is unaffected. The first entry is all zeroes (Hardy nature, which is neutral). The second entry is 00 01 FF 00 00, which boosts Attack and lowers Defence (Lonely nature). The table that contains the names of all the natures is at 0x463E60 in FireRed and at 0x61CB50 in Emerald. |
In Fire Red,
at 416738 change BC CF D3 FF CD BF C6 C6 FF to BC E9 ED FF CD D9 E0 E0 FF to decapitalise the "BUY" and "SELL" text for the pokemart menu,or if you are using HMA then just go to the offset and you'll be able to change the text manually |
To update Synchronise so that the opponent becomes Badly Poisoned when they Badly Poison you, put 06 instead of 02 at 0x1B404 and at 0x1B48A.
This changes MOV r0, #0x2 to MOV r0, #0x6. Therefore instead of changing the Bad Poison effect to the regular Poison effect, it replaces the Bad Poison effect with the Bad Poison effect (essentially leaving it the way it was before). |
Can someone help guide me to a tutorial or create a tutorial where I may achieve something closely related to this pseudocode? I know how to implement it on Ruby, but I want to implement it on ASM in Emerald and Fire Red.
Pseudocode: It applies to all encounters and Pokemon trainer battles both NPC and Gym 1. Check party pokemon's levels. 2. Select the highest level pokemon in your team. 3. Generate a pokemon wild or trainer based on the highest level pokemon possed. The limit would be two levels above or below. For example: You have a level 15 Mudkip. The Pokemon generated would range from level 13 to 17. 4. Check how many badges you posses. Depending on the badge, the trainer will have a different set of people whose level match according to step 3. 5. If the trainer possesses a Pokemon which has a level at or exceeding its evolutionary level, evolve the pokemon. For example: A grunt has a level 25 Zubat and Ratatta. Make the game have them become a Golbat and Raticate because they exceed their evolution levels of 22 and 20. Optional: With number 5 in place, is there a way I can have the trainer analyze your Pokemon party's type and then randomly pick a non legendary Pokemon from a provided list of pokemon of that type to own? Or can I set the trainer to pick a Pokemon from a type group randomly? Example: My team: Spinarak 16 & Mudkip 15 Bug/Poison, Ground/Water Battler generates: Drowzee 15 and Paras 16 Second Example: Bug catcher: generates bug types from level 14 to 18 (due to Spinarak's level) from only bug type pokemon. So one run he could have a Butterfree 18 and Dustox 15 but another run a Pinsir 16 and Beedrill 17. I am looking to make an open world game with replayability. |
Quote:
|
Would it be possible to exchange the effect of Metal Powder for Quick Powder?
Metal Powder: If held by a Ditto, doubles its Defense stat. It does not work when Ditto is transformed. Quick Powder: If held by a Ditto, doubles its Speed stat. It does not work when Ditto is transformed. In short, would anyone know which Byte to change Defense to Speed? Or even ASM codes for a new item? |
To make Wild Pokemon use AI scripts, (and therefore be as smart as a Trainer's Pokemon), put 97 21 at 0x385C0 and 24 20 at 0x106658.
Explanation: The game has different Battle Types that are stored 0x02022B4C. For example, 0x1 is a Double Battle, 0x8 is a Trainer Battle, 0x4 is a Wild Encounter, etc. It works as a bitfield, so in a Double Trainer Battle, the Battle Type is 0xD (0x8 + 0x4 + 0x1). As far as I can tell, 0x20 is unused, or at the very least it doesn't seem to affect Wild Battles much when set, so I changed the "mov r0, #0x4" at 0x10658 (where the game sets the Wild Encounter bit) to "mov r0, #0x24" so that it sets Battle Type 0x20 as well. Later on, the game will AND the current Battle Type with 0x498 and if it's not equal to zero, it will eventually do the whole AI thing. 0x498 includes Battle Types 0x8 (Trainer Battle), 0x10 (Oak Tutorial Battle), 0x80 (Safari Zone Battle - uses AI Scripts to run away), and 0x400 (Old Man Catching Tutorial). We changed "mov r1, #0x93" to "mov r1, #0x97". After moving 0x93 to r1, it bit-shifts-left by three (aka multiplies it by 8). By changing it to 0x97, it ensures that Battle Type 0x20 is included in the number it performs the AND operation with. I tested this with SetWildBattle. I haven't fully tested it with random encounters but they should work the same. |
[FireRed]
Not sure whether this has been posted or not, but the position of the PokéBall in Oak's introduction has two coordinates. The X and Y values are at 0x12FA50 and 0x12FA52 respectively. They're each one byte. -Originally found by the salvation phoenix on Discord. |
Quote:
btw can you help me identify some other limiters? i can really use some help getting this to work |
Quote:
https://i.imgur.com/AzNdtY2.png I also tried zeroing those values (saw another post where it says that). When I start a new game I can't run, neither inside my house or outdoors. What am I doing wrong? Thanks! |
Quote:
FLAG_RUNNING_ENABLEDbuild-time option. |
Quote:
|
Done and done. All I had to do was comment a line in CFRU, thanks again for the insightful comment, Zeturic.
|
Quote:
I'm interested in turning off Oak's text during the first rival battle. I've zeroed this offset: Code:
Ok, solved. I'm using CFRU and had to comment a line before installing. |
Quote:
|
The main post has been updated for easier navigation.
If any link is dead, goes to the wrong URL or is in the wrong section, please contact a Fan Games moderator to fix it. |
Quote:
It should totally be added as "Setting the Player's name" in the FireRed section, imo. |
Quote:
|
I need a little help with a hack for Fire Red.
When I change these values, wild Pokémon will always be IVs 0. Offset: 03DCD0 Original Values: 07 F0 FA F8 Modified Values: 00 20 1E E0 Offset: 03DD1A Original Values: 07 F0 D5 F8 Modified Values: 00 20 1E E0 Remembering that the original values is between 0 ~ 31. I would like them to be: 0 ~ 1 or 30 ~ 31 👍 |
Quote:
|
[FireRed]
To skip the Game Freak Presents and intro fight, put 15 89 07 at 0xEC5D0. |
Quote:
|
Quote:
|
Base Stats In Red/Blue/Yellow
Hey! I randomly opened this thread in the rom hacking help section and was surprised to not see a good answer. I thought telling someone to just hack firered instead was kinda dumb, so I said to myself surely there's a tool for editing base stats. I did some googling, went to sketendo, and I couldn't find anywhere that had a tool for editing pokemon. Then I tried googling for offset(s) of the pokemon table, couldn't find anything in 10 seconds, got lazy and just decided to look up the Pokemon's stats in hex in HxD. I got them! Through looking at the data, I found that the stats table starts at 0x383df (the same in Red/Blue/Yellow) ordered from Bulbasaur to Mewtwo. The stats are in this order: HP, Attack, Defense, Speed, Special. I was confused for a sec because I thought special would be before speed, but it isn't and even bulbepedia knew this. In between the stats of different Pokemon, there was consistently 0x18 bytes of filler, so I decided to make a script to find where each pokemon's stats would be. I just started at 0x383df and went up 1C bytes (I thought it'd be 0x18 + 0x5 = 0x1D, but I forgot computing starts at 0) and got the location of every pokemon's stats but mew. Mew I heard was added to the game super last minute, and the only instance of 0x64 x 5 is at 0x425C in Red/Blue and 0x39447 in Yellow. Tldr I used a script to find where the base stats of each pokemon in RBY is and here is the results, which I later verified. Spoiler:
|
[Ruby]
Pokemons receive EXP after capturing Spoiler:
https://www.mediafire.com/convkey/aac1/cik0m5fnl26xvjtzg.jpg https://www.mediafire.com/convkey/b5ed/59osr9sqfkun8gpzg.jpg |
Using Dizzy's Hacked Engine to Check a Pokemon's Level
Recently I wanted to have a way to check a pokemon's level for an NPC dialog to branch off depending on if your pokemon was leveled beyond a certain point. I couldn't find a way to do this in Emerald so I figured out a way to do it myself using Dizzy's Hacked Engine and figured I should post it in case others want to do something similar.
Spoiler:
Now this is a really basic script that just tells you a pokemon's level, you'd need to compare the result to a predetermined value and can go from there pretty easily. |
Expand object effect tables and limiter - Emerald
Offset: 0x06BE74, Change A5 28 3B D8 to 00 00 00 00 Video: |
[Emerald] Receive the National Dex Directly Without Modifying the Script
Go to 0x9D42C, put 01 20 70 47. Credits: Sagiri and Lunos [Emerald] Fire Red Style Fishing (Remove having to reel in while Fishing) From 0x8CA20 to 0x8CA62, replace them with the following bytes. Spoiler:
From 0x8CB6C to 0x8CBA3, replace with the following bytes. Spoiler:
Credit: All belong to NobodySociety (originally from: https://www.pokecommunity.com/showpost.php?p=10228943&postcount=1) [Emerald] Berry Trees No Longer Disappear Until the Player Picks Them Go to 0xE17DE, put 04. From 0xE1870 to 0xE191B, replace with the following bytes. Spoiler:
Credit: All belong to Buffel Saft (originally from: https://www.pokecommunity.com/showpost.php?p=10142996&postcount=63) |
Quote:
|
Quote:
[FR] Code:
[Em] Code:
|
Double underwater movement speed [EM]
In the vanilla game, moving around underwater is painfully slow (it's the same speed as walking). Doubling the movement speed matches that of running and surfing, which players have grown accustomed to. At 0x08AF4E, replace 05 4C 21 78 08 20 08 40 00 28 06 D0 28 1C 00 F0 EC FB 29 E0 00 00 90 75 03 02 10 20 08 40 00 28 1F D1 with 07 4C 21 78 08 20 08 40 00 28 03 D1 10 20 08 40 00 28 06 D0 28 1C 00 F0 E8 FB 25 E0 00 00 90 75 03 02. Credits: me Disable random PokéNav calls from trainers [EM] Every so often, trainers will interrupt your adventure, giving you a call to tell you about the incredible level 3 Zigzagoon they just caught. These calls have no effect on trainer rematches and serve no hidden purpose. All of the match call dialogue can still be accessed if you initiate the calls yourself via the PokéNav menu, meaning nothing is lost when random calls are disabled. Additionally, this has no effect on story-related calls. To disable random PokéNav calls from trainers, make the following changes: At 0x195E8E, replace 01 with 00. At 0x195EAC, replace 02 with 00. The byte at 0x195EAC controls the match call chance when the Pokémon in your first party slot has the LightningRod ability (by default, it doubles the base chance). Credits: me Fix Pokéblock throw bug in Safari Zone [EM] In Ruby/Sapphire/Emerald, instead of the escape factor having a minimum value of 1 (5% chance to flee) like the catch factor, the game is coded to set the escape factor to 1 if it would become negative due to a thrown Pokéblock. This means it is possible for the player to throw Pokéblocks such that a Pokémon's escape factor becomes exactly 0, and the Pokémon will have a 0% chance to escape. This can be fixed with a single byte change. At 0x03F0CB, replace D2 with D8. Credits: pret/pokeemerald #bugfix |
Quote:
I found the palettes for the trainer card with a different amount of stars. 0 stars- E99198 1 star- 3CD050 2 stars- 3CD110 3 stars- 3CD1D0 4 stars- idk, but probably around there. This should help people who want to customize the trainer card further. |
Upon reading all the Research Database here.... there is still one thing i really wanted to know and how to do it.... it was how to fix the trainer fixing... i hope you can share your guide or tutorials sir on how to implement this on Fire Red..i already have some tools.... thanks in advance sirs!!!...
|
Does anyone know how to make X Item (e.g. X Attack) raise by 2 instead of 1 in EM? I searched the forum but no correct result :(
|
How can I do these thing:
Use a healing item like Potion to a Pokemon and not back to bag automaticly like BW in FR or EM? And how to remove (or skip) FR's item using animation? Use any HM moves without ask, just do it directly (e.g. cut tree directly) like Unbound. |
For FireRed:
Changing the byte at 0x56150 from 0x01 to 0x00 makes it so that the game will never override surf music. It should also work for bike music since the checks for both music are done simultaneously but I have not checked the case for the bike music. |
Edit Color In Textbox
Fire Red
Hello i know everyone know about this but i just found a way to change the color in color textbox like: Spoiler:
Spoiler:
Spoiler:
If you change index 4 it will the change the: \c\h01\h04 in PKSV [Red_fr] in XSE If you change the index 4 into green, the command \c\h01\h04, [Red_fr] will be a green color in textbox. |
Quote:
|
Quote:
Can i request a thing? Do you know an asm that calls a script, i mean asm that calls a script not script that calls asm. Because i can't figure out what to do in cfru (void*), it's asking an asm not the script itself, but i want to run some script on it, thanks if you know! |
Quote:
Can you elaborate a little more? |
Quote:
What i mean is, Asm that calls a script Example: the script is in offset 0x8850001 and i wanna call it via asm. My attempt on this is: Spoiler:
|
Likely there's a more elegant solution for this, but I don't know what you're talking about:
Quote:
Quote:
|
Quote:
Thanks for this and all your amazing work! You can say im your biggest fan! Thanks i will try this! Update: Spoiler:
|
I tried your code and try to expand it, but i didn't have any idea what's gone wrong in my writing.
The code: Spoiler:
My Script: Spoiler:
The thing is, it's not working, if you somehow just somehow have time to help i will appreciate it, but if you don't that's ok. |
Quote:
In case you guys like Emerald, here's the equivalents as well: 0x43CF4, 0x43D78 |
Quote:
1. Don't need to push low registers 2. Parameters for functions start from r0 It sounds like you're using CFRU, I'd encourage you to write this function in C instead and cast your function as an argument to whatever the callback you're trying to use is. |
Is there any info anywhere on porting the Gen 5 EXP system to firered? Liquid Crystal had it like 10 years ago so I assume it must be somewhere out there.
|
Is there a way to find the offsets of all the 'pre-arranged' pokemon encounters in Emerald? I believe the total list is;
- Starters - Zigzagoon (fighting Birch) - Zigzagoon (Wally fighting Ralts) - Ralts (Wally catching) - Kecleon - Wynaut (egg) - Castform - Regis - Fossils - Rayquaza - Groudon - Kyogre - [email protected] - Beldum - Gen 2 starter - Sudowoodo - Voltorbs - All the event pokemon So far from searching, I have managed to find the offset for the Zigzagoon fighting Birch as x32706. And that's all I've found. Is there a way to search scripts to find these offsets? Search hex? Is there a list somewhere? All help appreciated. Thanks. |
I've never seen anything about changing the Prof. Oaks Pokedex Ratings for FireRed.
After doing some digging and with the help of Decomps here is what I've found. Prof. Oak and the Oak's PC scripts call for specials 0xD4 and 0xD5, which then figure out the Dex Seen and Caught values. The game then checks to see if the amount caught is under a certain value, up to 151 in vanilla. You can actually expand this to 255 but no further, so if you're making a hack with an expanded Regional Dex do mind this limitation and plan your text accordingly. Here are some offsets to help you customize your Pokedex Ratings: REMEMBER! Changing these amounts can't go higher than 0xFF (255) 0xCA430 = 0x09, in vanilla it leads to text if you own less than 10 Pokemon 0xCA436 = 0x13, in vanilla it leads to text if you own 10-19 Pokemon 0xCA448 = 0x1D, in vanilla it leads to text if you own 20-29 Pokemon 0xCA454 = 0x27, in vanilla it leads to text if you own 30-39 Pokemon 0xCA460 = 0x31, in vanilla it leads to text if you own 40-49 Pokemon 0xCA46C = 0x3B, in vanilla it leads to text if you own 50-59 Pokemon 0xCA478 = 0x45, in vanilla it leads to text if you own 60-69 Pokemon 0xCA484 = 0x4F, in vanilla it leads to text if you own 70-79 Pokemon 0xCA490 = 0x59, in vanilla it leads to text if you own 80-89 Pokemon 0xCA49C = 0x63, in vanilla it leads to text if you own 90-99 Pokemon 0xCA4A8 = 0x6D, in vanilla it leads to text if you own 100-109 Pokemon 0xCA4B4 = 0x77, in vanilla it leads to text if you own 110-119 Pokemon 0xCA4C0 = 0x81, in vanilla it leads to text if you own 120-129 Pokemon 0xCA4CC = 0x8B, in vanilla it leads to text if you own 130-139 Pokemon 0xCA4D8 = 0x95, in vanilla it leads to text if you own 140-149 Pokemon 0xCA4DC = 0x96, it leads to text if you've completed the Kanto Pokedex (150, Mew is not required) Change those accordingly. Additionally, here are the Text Locations: Under 10 = 0x1A6D17 10-19 = 0x1A6D6D 20-29 = 0x1A6DDF 30-39 = 0x1A6E36 40-49 = 0x1A6EA4 50-59 = 0x1A6F0B 60-69 = 0x1A6F71 70-79 = 0x1A6FAB 80-89 = 0x1A6FF1 90-99 = 0x1A7031 100-109 = 0x1A7063 110-119 = 0x1A70A5 120-129 = 0x1A70D8 130-139 = 0x1A7108 140-149 = 0x1A7137 150/151 = 0x1A7175 I recommend using Hex Maniac to edit and repoint that text and stay away from A-Text at all costs! These should be useful if you've made a custom pokedex or a region where Professor Oak isn't your regions professor. (Or if you got rid of the Aides who give out items at a certain dex completion rate). |
Cleanse Tag Modifiers
This is the result of my decomp research trying to buff Cleanse Tag to be a little less useless. In vanilla it reduces wild encounters by 2/3. FireRed At 0831E6, change 20 68 40 00 03 21 (2/3) to 20 68 00 00 03 21 (1/3) or 20 68 00 00 02 21 (1/2). Emerald At 0B5B00, change 20 68 40 00 03 21 (2/3) to 20 68 00 00 03 21 (1/3) or 20 68 00 00 02 21 (1/2). |
Battle “X Item” increase by 2:
FireRed: 0x25282E: 02 0x25283F: 02 0x252850: 02 0x252837: 20 0x252848: 20 Emerald: 0x31E4C2: 02 0x31E4D3: 02 0x31E4E4: 02 0x31E4CB: 20 0x31E4DC: 20 However that string still keeping vanilla one (not “sharply rose” but simply “rose”). |
FireRed Skip item using animation:
Put 41 46 00 F0 0E F8 at 0x12538E Put 00 F0 0B F8 at 0x12587E Put 41 46 00 F0 0C F8 at 0x126332 Put 00 F0 03 F8 at 0x126BCA FireRed Skip TM learning animation: Put 00 F0 0E FA at 0x11CA2C Put 00 00 at 0x11CE6E Put 00 F0 40 at 0x125BC4 |
Faster battle intro (like Unbound):
FireRed: Put 03 at 0x11DA6, 0x3253E, 0x37DBA, 0xEA0A4, 0x158468, 0x1585C2 Put FD at 0x32418, 0x38058, 0xD632C, 0xDDA94, 0xE9FA0, 0x1583EC Put DB D0 at 0xBC5E5, 0xBC8DD, 0xBCB57, 0xBCE2D Emerald: Put 03 at 0x3981E, 0x5B9A6, 0x669C4, 0x1889A4 Put FD at 0x5B78C, 0x5B854, 0x61ADC, 0x66B80 Put DB D0 at 0x118455, 0x11874D, 0x1189CB, 0x118CA1 |
Quote:
Emerald: Put 03 at 0x3981E, 0x5B9A6, 0x669C4, 0x1889A4, 0x61844 Put FD at 0x5B78C, 0x5B854, 0x61ADC, 0x66B80, 0x1598D0, 0x169F84, 0x18BED4, 0x18BF9C, 1BD48C, 1BD5AC Put DB D0 at 0x118455, 0x11874D, 0x1189CB, 0x118CA1 |
Fire Red PC Boxes Use More Wallpaper's Fix
Offset=0x08C836 Original=03 Modified=FF Credits For Spherical Ice & Stay hydrated 緯俺な. Note: Spherical Ice had found the address of the PC Boxes but the Offset to modify was wrong, it didn't do anything and I started to investigate a bit and managed to have the 14 Different Wallpaper's on the PC. |
For Emerald: How to make the several kinds of state combine at the same time? Such as if a pokemon poisoned, the foe pokemon used thunder wave, that pokemon change into paralyze state or both poisoned and paralyze combine together?
|
Quote:
|
Emerald
|
| All times are GMT -8. The time now is 8:53 AM. |
![]()
© 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.