![]() |
1 Attachment(s)
[FR] EV-reducing BerriesFind 0x49C bytes of free space at a word-aligned address, and take note of it. Set the EV-reducing berries' Type to Type 1 ("Out of battle"). Set the items' Field script pointers to the address you noted, plus 1. Set the items' Battle script pointer to 0xA2239. Assemble the following routine, changing 0xXXXXXX to the address you noted (not plus 1). Open the generated .bin file, navigate to the location address, and select 0x49C bytes. Copy the bytes and paste them in your ROM, at the same address. Code:
This will introduce the Pomeg Glitch; see tkim's post here on how to fix it. |
Quote:
I have two questions though. Can I assume that the luxury ball mentioned in the routine affects the happiness the berries give out? Does the routine also check if the player is at the same location as the berry user's met location and if the berry user is holding a soothe bell at the time (unless Emerald's behaves otherwise)? Here's where my questions are based from: https://bulbapedia.bulbagarden.net/wiki/Friendship#Boosting_friendship Sorry if I'm overwhelming you. |
Quote:
|
Quote:
edit: here's what I did: is this okay, or do I have to change registers too? Code:
|
Quote:
|
Quote:
You could probably use r6 for the add_ten/five/two_happiness and also 'add r6, #1' for met location bonus/luxury ball bonus. edit: here's a fix for ease! Code:
|
Quote:
|
Spherical Ice' [FR] EV-reducing Berries does in fact bring back the Pomeg Glitch. If you want to fix this, go to offset 0x3E742 and make the following change:
00 29 04 D1 -> 02 29 04 DC Credits to HackMew: https://www.pokecommunity.com/showthread.php?t=207217 Note: Despite what Wichu said about Pomeg no longer being usable on Shedinja in that thread- I've tested it and it works. I'm also not aware if this change affects anything else during gameplay, so if anybody else could chime in... |
I wonder if it was possible to make pc accessible from start menu in fire
|
Toggle Oak Text in Trainerbattle 0x9 [FR]
Building off of another post in the Quick Research and Development thread about trainerbattle 0x9, turns out that changing the reserved byte from 0x3 to 0x0 in trainerbattle 0x9 removes the text, but also causes you to white out instead of continue with the script if you lose. This routine hijacks the trainerbattle command to use variable 0x8000 to toggle Oak's text on or off, while keeping the same functionality of continuing the script even if you lose the battle. I mentioned this in my linked post, but 0x1 is also written to variable 0x800D if you lose, allowing you to branch the script based on your battle result. Here is the code/insertion instructions: Code:
Code:
|
I fixed the issue of Squeetz's Synchronize routine and FBI's Shiny Generator routine conflicting.
Squeetz's routine works by taking the Synchronize Pokemon's nature and setting that BEFORE the PID is generated. Turns out, FBI's Shiny Generator routine is activated afterwards, and completely redoes the PID generation, essentially making Squeetz's routine never actually come into effect. To use both, you can use this combination of both their routines in one. I tested it in my game and it works for all four of these scenarios 1. Not Shiny and no Synchronize Pokemon 2. Not Shiny with a Synchronize Pokemon 3. Shiny and no Synchronize Pokemon 4. Shiny with a Synchronize Pokemon It might not be super efficient, because it loops a lot, but I couldn't find a better way to do it and still get the desired result. Spoiler:
This replaces the Shiny Generator routine, so branch to it at 0x3DB00. You can get rid of the branch at the old Synchronize location since that's not being used. If you use this, be sure to credit both FBI and Squeetz for their original routines. I don't want to take any credit for their hard work. I just merged the two preexisting codes. A note, this particular routine makes Synchronize activate 100% of the time. Squeetz's routine had a 50% chance. If you want that still, you can add some sort of RNG/compare thing. There's already an RNG in the routine, so this shouldn't be too hard to do (I hope. I've never tried it). This also makes Synchronize work with Eggs (I also think, because it did for me, but I hatched the egg immediately after getting it, and I forget when natures are determined.) |
Quote:
What should I do? |
Quote:
|
Quote:
Code:
Code:
|
Quote:
|
I don't know if anyone here has already posted this one,
But i'm sure someone researched this and used it in their hack. (BTW It's Glazed if you don't know) Credits to: TheCreatorofGlazed for the wonderful Idea, BluRose for the Initialization and Touched Sensei for everything else. Here it is: [FR] Text Display Input Routine Basically what this do is get an input from user via naming_function and stores it somewhere in the ram then compare it to some string you can define. Note: I'm not GOOD at ASM so don't judge me if i said something wrong or explained something wrong. Please point it out instead . It's just that those ones who I asked to help me are very GOOOOOOOOOOOOD at ASM. Routine: Spoiler:
Instruction: Spoiler:
That's it . and another one , You can also change the "Rival's Name" text or "PKMN name" if you found out how to do that . It'll be really helpful :) This Routine can be used for many things not just for Password System. You can use it to name People in your game , It's up to you. and also feel free to ask what is what :D |
final edit:
if you want to implement this, stay with this post, i babble a lot. good luck EDIT2: reeeeeee that's hacky af but ok that should work lol. unspoilered post and spoilered previous edit Spoiler:
Quote:
quick correction Spoiler:
and now, adding on to it note: i've not actually gotten the following to work satisfactorily, even when just copying a previous entry directly onto the new one, so i'm considering this incomplete but usable okay so basically we're going to repoint the table at x3E248C which has 5 pointers. there's exactly one pointer to this table, should be at x9DB58 add a new pointer to at least 12 bytes of free space (not hexadecimal). in these bytes, you're going to put some data. now, the sequence goes like this: 1 byte - ida lists this as "pre-filled," meaning you could fill in things automatically? neat, no idea how that would work, though 1 byte - length of entry. max is 13 (0D) 1 byte - image index 1 byte - gender icon shown - 00 no, 01 yes 1 byte - this one seems to change what it looks like when the naming screen is accessed, but it always looks like this anyways http://i.imgur.com/5fbftyO.png 3 unknown bytes 4 bytes - pointer to what the text for the prompt should be (i.e. "YOUR NAME?" "RIVAL's NAME?") * image index can be one of the following values 00 - nothing shows on the shadow thing 01 - player character, probably changes depending on gender 02 - the pc icon, used for renaming boxes (what i use for the password purpose) 03 - pokémon icon (because no pokémon is loaded in r2, we get the question mark) 04 - gary overworld 05 and above reset the game and so we go for what i put to simulate the password 00 0A 02 00 01 00 00 00 XX XX XX 08 which means it is not pre-filled, the password is ten characters long, the icon used is the one for the pc, there is no gender icon, the "access screen" is 01, and the text for the prompt is located at 08XXXXXX. and now for the problem which you all may have caught earlier http://i.imgur.com/5fbftyO.png there's no text, leaving this large blank white space. the pointer i mentioned earlier doesn't seem to affect anything. i even took the rival's entry and pasted it over exactly, and... well, here's the results: http://i.imgur.com/5OBNUPh.png however, editing earlier entries works just finely http://i.imgur.com/HobldVU.png so, um, yeah. happy hacking~ EDIT3: when 0xFB (celebi index) is in r2, we get this when image is set to 03 http://i.imgur.com/KFsrZ78.png can't figure out other two registers though so uh ahaha HOPEFULLY final edit: okay! so now we're going to do this rather hackily but it should work (has worked for my testing). change the bytes at x47614, x9FD1A, xCC038, and xCC112 from 03 to 02. this makes it so that we can use 03 for our purposes. hatching eggs uses 03, but i'm able to nickname hatched pokémon just finely with 02. so, x3E248C, the table. repoint x3E2498 to some freespace. at this freespace, fill out your entry: 00 for unfilled, length of entry up to 0D, 03 for loading the pokémon icon, 00 for no gender icon, 01 00 00 00, and then a pointer to ANY byte that is JUST FF. my entry looks like this: Code:
so, i put BF C8 CE BF CC 00 CA BB CD CD D1 C9 CC BE AD FF (ENTER PASSWORD.) at x2469B4, which is the start of the name of the pokémon index 0xFC, or the empty one right after celebi. and so we edit the beginning of the routine: Code:
and now the product: http://i.imgur.com/tT7q6FD.png i changed the icon to a blue ralts to show customizability. but there you have it i guess, certainly a subpar solution but it does the job. a better way would probably have been to point the prompt of a vanilla routine to somewhere in the ram, but that doesn't permit the custom icons. |
Quote:
Just wanna add something ,if you wan't to modify the icon and change it to something custom. Actually you can, How? Change the type to 03, (Pokemon encounter) now rememeber that it Writes there the Species name and Icon? well , you just need to add your Custom icon and put it somewhere (You add new pokemon actually, Let's you change the icon and Title) . But to be able to choose Pokemon number you need to put a MOV r2, #thePokemonIndexHere. That means that argument3 actually becomes the Pokemon Specie number. You can check out the other Arguments to the funcetion here's what i know: r0 - type () r1 - Pointer to the address you want store the inputted string. in the routine. r2 - the PokemonIndexNumber Edit: Not yet complete actually, By choosing 0x3 as type (Pokemon) you can customize the Icon but the Title will Show + nickname at the end of the Custom Title (Pokemon Name) |
I have a request:
Can someone help me make wild Pokemon jump at the start of a battle just like how they do on the status screen (Fire Red)? Like how when you view a Pokemon on the status screen in Fire Red they shift/jump slightly up and down. Thanks. |
Quote:
|
Quote:
|
Quote:
|
Quote:
|
Quote:
|
Quote:
|
Quote:
Quote:
They were fixed by @Squeetz in the community's Discord. I don't know a single thing about ASM, but I thought someone needed to bring this up in case anyone wanted to use it. Code:
|
Quote:
1. First, you'll want to download HackMew's thumb compiler, found on this page. 2. Then, save the files you quoted individually as [filename].asm, eg. attack.asm. Using the windows command prompt, type 'thumb [filename].asm [filename].bin' in the same directory as your .asm file and the compiler. Then, open the .bin file with a hex editor, and insert into free space, making sure the offset ends in a 0,4,8, or C. With these particular routines, you'll need to also insert [00 01 0A 00] for red font and [00 07 0A 00] for blue font, somewhere in your rom, and then change the pointer at the bottom of each routine to the location of each 4bytes string. So, if you inserted 00 07 0A 00 at 0x123456, 0x08BBBBBB would become 0x08123456. 3. At the top of each assembly routine you're trying to insert, there is an insertion instruction that has been commented out, eg. @ 00 49 08 47 XX XX XX XX at x137134 in the attack.asm routine. This means, at offset 0x137134 you type the above hex, where XX XX XX XX is a reverse pointer (+1) to the location of the attack.bin hex you inserted into free space from step 2. For example, if you inserted attack.bin at 0x987654, for example, XX XX XX XX will be 55 76 98 08. Do this for each routine and you should be all set! I hope this helps. let me know if you have any issues. |
Quote:
EDIT: So when I try that, I get this error. Quote:
EDIT #3: So, if I put the hex for attack.bin at 0x71A6B0, XX XX XX XX would be B1 A6 71 08? EDIT #4: It works! Thanks! Yours is the only tutorial for inserting ASM that I could actually follow and understand. |
Request for FR:
Volt Tackle by breeding with either parent holding a Light Ball. |
Request for Platinum:
Having coloured stats based on natures. I don't know if this could be done by editing the ASM used to implement this into FireRed and changing the offsets or if they are just too different. Either way, I think more work needs to be done on hacking 4th gen games, and I'd be happy to help (although I am very dumb). I'm currently looking into editing the hex of the 4th gen games but there doesn't seem to be any documentation on ASM for 4th gen and very little documentation on hex for 4th gen. If someone smarter than me can give me a good starting point as to where I could learn how to find out how to do this (if that makes any sense) I would be more than willing to learn. |
Quote:
|
Dumb question but what program is used to compile the ASM routines?
|
Quote:
Quote:
Quote:
|
1 Attachment(s)
[FR] Volt Tackle port from EM:
If you have free space from 0x270670-0x270741 (0xD2 bytes), use the IPS patch I provide here. ...It's a long story, so I will expand on this when I get the time. Fully working, I promise. You're gonna love it. edit: A bit of explanation now: I took a look at an Emerald disassembly and found the routine that calls to check if the egg at the Day-Care is a pichu and if either of the parents are holding a Light Ball. I ported that exact routine into FR, but I had to make a copy of the routine at sub_80460D4 as to include the pichu check. Then I had to make special 0xB8 call the new routine instead of sub_80460D4. Since I had made a copy of the routine I also had to make sure the new routine used all the same offsets as before, and therefore I placed the routine at 0x270670, which I happened to have free space. I wanted to place the routine at something like 0x760000 or higher, but the old offsets wouldn't work any more. Down below are the uncompiled stuff: This routine (located at 0x270670 in my patch) is a copy of the routine at 0x0460D4 but now includes the pichu egg check (in orange): Code:
Code:
Code:
edit2: I could probably just use bx r3? |
Quote:
Here's the steps I did in order: - repointed the first table located at 0x5B2CF0 to 0xDE43E0 and changed two pointers. - repointed the jumptable located at 0x13A168 (instead of 0x13A156 as I couldn't find the pointers for it) to 0xDE4760 and changed one pointer. - compiled your routine and inserted at 0xDE4794 (which is right after the repointed jumptable) - added new entry (6 pre-existing pointers) to 0xDE4720. - changed the byte at 0x813A148 from 0xC to 0xD. |
DIFFERENT PALS FOR THE MALE AND FEMALE BAG [FR]
Thanks to KDS for helping me fix the error. :) Insert this code: Spoiler:
example: Spoiler:
|
Scaled Experience Formula In Generation V, a new way of determining the Experience Points gained after Battle was introduced. Previously, the Experience Formula was a flat one, which did not change based on Level Differences between your Pokemon and the other one. In Black & White, they used a Scaled Experience Formula, which would cause your Pokemon to gain more experience if their opponent was a higher Level, and less if their opponent was a lower one. Today, I am sharing a way to have this sort of Scaled Experience Points in Fire Red or Emerald. I have included the download link to a folder which contains four items. Folder: (Download)
The Instruction Manual explains how the routine works and any extra information that is necessary to know (particularly if you would like to modify this routine for your specific hack). Important: Considering I first uploaded the first version of this routine a long time ago, you may have an older version of it. This version may be preferable to that one, and it is smaller than the previous version is. Therefore, one can simply insert it over the old version and not have to repoint anything. Extra Information This routine is compatible with Think0028's Experience All Patch. His original download link is unfortunately broken, hence why I put it in the download folder. If it was still active, I would have linked directly to it. If you inserted the Disable Experience Gain With Flag routine, originally by FBI, then you may wish to remove it, as this routine implements it. I am not sure if there is a conflict due to this, but at the very least there is a redundant check if you have two routines which both check the same Flag. It is also possible that this routine bypasses that one entirely, in which case you would want to remove it to avoid wasting space. Thanks and credits to FBI for that original routine, as without it I would likely not have been able to find the correct branching address for this routine. As I have nowhere else to post this information, I will say here that to remove the 1.5x Experience Boost you get for defeating a Pokemon in a Trainer Battle (like they did in Generation VII), do the following: Put 07 E0 at 0x21DD8 (FireRed) or 0x4A698 (Emerald) Put 1C E0 at 0x21E00 (FireRed) or put 28 E0 at 0x4A6C0 (Emerald) |
The two requests I ever made over here were in vain.. allow me to try another one instead.
How about a port of JPAN's Overworld Hacks to Emerald? I'm looking for a way to basically change a character's Front sprite, Back sprite and OWs to another one until I revert things back to how it was manually with another command. |
I need help making an eeveelution evolution happen i need it made so when an eevee faints in battle and then you feed it a rare candy while its fainted after battle it evolves into a ghost type eeveelution
|
Quote:
First here's a link to a tutorial on how to add new evolution methods. https://www.pokecommunity.com/showthread.php?t=329357 Second, you need a way to check if a Pokémon in your party is fainted. You can check the current HP of a Pokémon using the RAM offsets I posted here. ldr r1, .FirstPoke mov r1, #0x39 bl Decrypt cmp r0, #0x0 beq Evolve .FirstPoke is the first RAM offset in the lists I posted under the "Yours" heading. Basically what this little snippet does is it checks the current HP of the first Pokémon in your party and compares it to zero. If it's zero, the Pokémon is fainted and you can then branch to the next thing. You can change the party slot it checks, but ideally you would want a way for the code to know which Pokemon you selected. It might help to look through the evolution routines posted in the tutorial and see how they're structured. That's all I can really do without doing testing first, but that will have to wait until later because it's 2:30 in the morning as I'm posting this. PM me later if you still need help. |
Hello, I would like to request a hook routine to be added to the original TM's routine.
The new routine would be activated when the TM's were used and deleted, so a new item would be created in the ITEN bag. If possible, include checking if the bag is full. If yes, discard new item. Thanks in advance. |
Quote:
I think reuable tms are already done, if thats what you need... |
Quote:
He didn't mentioned if he wants the exact TM to be created yet again, so I'd say he's not looking for reusable TMs. |
Quote:
Quote:
Example: After using any TM, it is deleted from TM CASE and creates a NUGGET in the player bag. And if possible show the informed message where the new item will be in the bag. |
Fixing some major bugs/oversights with this routine seemed worthy of a new post so anyone who has implemented it can notice the changes:
Adding a Dodge Rate for Catching Wild Pokemon [FR] This routine uses the wild pokemon's base speed stat to calculate a probability that it will dodge a thrown pokeball (nominally ~5-10%) (credits to Urz, shanem7, and ghoulslash for bug finding, scripting, and testing!) Important Routine Notes:
Insertion Instructions:
The Routine: Code:
|
Expanding the Bag Entirely [FR]
-Big Edit: The routines have been completely rewritten from scratch to work properly now. This has been done in bits and pieces over the years (I believe it's actually been done completely for Emerald), so I decided to rewrite the bag storage routine for Fire Red. Pre-Requisites
The Code Spoiler:
Credits
|
Alright I'm making a request!
Everyone has probably heard about Bank system... On which can allow the player to store his money, loans, interest (ofc in support with primes RTC) and other cool banking stuff. PS this thread has helped me a lot thanks "A free helper" Blah ;) ! |
Quote:
|
Aight, this request is similar to shinyquagsire's berry selection screen...
I need an asm which can show the party screen and on selecting the pokemon, exits and stores data in a var... However theres a twist, im not talking about special 0x9f... The mons need to be read from Ram where PSS stored the mons... So now y'all get it why its so complex... If that is to be pulled off, it'd be amazing;) |
Quote:
replace the part where it accesses your party with the new ram address. this likely just involves replacing an address from the routine, literally nothing more. callasm the new special and ezpz |
Quote:
|
Quote:
look in knizz's idb disassemble in vba |
Someone can convert it for EM ?
Quote:
|
Quote:
Code:
|
Is it possible to alter the breeding mechanism in FR? Having the egg be only be the mother's species and inherit moves from only the father is limited.
I'm thinking of the egg having a 50% chance to be either species instead, so that male only pokemon would still breed normally, and egg moves would be possible for them as well. Would probably be much better than the regular one IMO. |
Quote:
i test and not work |
I have a request:
So FireRed's egg move table only accounts for 8 egg moves. My hack, Pokemon Vega Minus, is obviously derived from the original English translation of Vega by Dr. Akimbo. The problem is, egg moves are busted in both my hack and his because in Vega, Pokemon have anywhere from 15 to 37 egg moves. So I was able to fix it somewhat by replacing the 0x9 at 0x0456AC with 0x30 (just an arbitrarily large number), and then fixing the limiter at 0x045CC4, but since the amount of RAM allocated to egg moves only can account for ten moves without overflowing, I'm worried this could result in glitches. In this thread, FBI explains how to fix the crappy way the game checks for egg moves using ASM, except since I know nothing about ASM, it doesn't make any sense to me. Apparently it's simple for people who do understand ASM though, so if anyone could help me out it'd be great. You can go download my patch for reference if needed. I'd also need to know how to implement the ASM into the game. Thanks in advance. |
Quote:
1) Copy the routine and paste it in a .txt file, change the order however you want and give the file an easy-to-remember name. 2) Pass it through HackMew's thumb.bat 3) Grab the compiled routine from its .bin file and paste it in an offset that ends in 0, 4, 8 or C and that also has free space in your ROM. 4) Go to the offset 0C4684 and Paste-Write (Ctrl+B) this: Code:
Example: I've put it in E3CF80, then I'd replace XX XX XX with 81 CF E3. 5) Test. |
Quote:
i know compile and insert asm routines, and i test it again and not work, you can post the hex compiled bin generate for you: for my it: Quote:
|
Quote:
|
Quote:
i change the 5th with 3th (for use surf after 3 gym) and 6th with 4th (for use fly after 4 gym) and my changes no have any efecct, the badges apppear in the same order |
Quote:
|
Quote:
the badges are same original positions. |
Quote:
Order: 5, 4, 7, 6, 1, 0, 3, 2 Also, I'm seeing that you have an empty space after that 00, delete it. https://i.imgur.com/x6Q1rFm.png |
can i run a ASM routine forever in second plane? how?
|
Here's kind of a silly routine I made for fun.
Custom Vs. Seeker Pedometer [FR] This will let you change the amount of steps needed to activate the vs. seeker. You can make it step-independent, increase or decrease as the game progresses, or have some random fluctuations, or anything you like. It requires 2 bytes of free RAM. JPANs save block hack is needed to allow the pedometer to save. The first byte will hold the pedometer value, and the second will hold the 'charged up' limit. When the pedometer reaches this value, the vs. seeker is usable, and then reset upon use. To change the required steps, just set your second RAM byte to whatever you like. This can easily be done in XSE. Just be sure to set the limit when the player receives the item. Note: I'm not sure if this is an existing Vs. seeker feature or not, but using it even when there are no trainers are around resets the pedometer. Although from a logical standpoint this makes sense regardless. Now, for the routines! There are two of them you will need. (insertion instructions in comments of each routine) First: Change Vs. Seeker Routine to Check our new Pedometer Spoiler:
Second: Increase pedometer each step (you will have to merge with the hp loss/gain each step routines) Spoiler:
|
Hello,
I know this is something which has been requested by others before, but I would like to request a way to store the current hp of pokemon being deposited in the pc storage system. This would allow us to control any way in which a pokemon can be healed. Spoiler:
I don't know enough asm to evaluate how hard this would be to implement, but it would be a very good function to have, as it would allow a lot more flexibility with the kind of game-play changes you could implement. |
Hi, I wanted to make a request. I don't know if it's simple or not but I hope it is.
I'd like an ASM Routine for Fire Red, that checks a Pokémon in your party and returns 0x1 in the var 0x8004, if it's an egg. Would that be possible? I'm basically thinking in a script that forcefully hatches an egg. Right now, if someone decided to make such a routine, I imagine that it could be used like this: Code:
|
Quote:
Usage: Code:
|
I would like to make request (FR)
An Asm routine which give separate pallets to maps ows (boy and girl) |
Quote:
Is it possible to make the species of the egg have a 50/50 chance of belonging to either of the parents? For example, ditto and bulbasaur egg would result in a either a ditto or a bulbasaur to hatch, or an egg between a male bulbasaur and female charmander would result in either a bulbasaur egg or a charmander one. |
Quote:
Code:
|
Quote:
What I meant is, is it possible to have the routine check the father's and the mother's species and the resulting eggs would be either of them? The egg will always be the mother's species, e.g male Bulbasaur and a female Charmander will always produce Charmander eggs. Your routine would make it possible for Bulbasaur eggs to be produced, but charmander would produce bulbasaur eggs even if it breeds with other species. What I'm thinking of is a universal chance of having the produced egg be of either species of the parents, this would allow ditto and male only pokemon to hatch eggs of their own species with any pokemon species. Sorry for not being clear. |
My last request was solved by normal means. I think that this one won't or might not be as easy though.
I did check JPAN's thread with the Fire Red specials and I found nothing about a command that saves the amount of happiness/friendship that a Pokémon has for the user to use however he wants. So, can someone make a simple routine for Pokémon Fire Red that checks the amount of Friendship/Happiness that a Pokémon in the var 0x8004 has, and saves the actual amount of points in a different value.. say, 0x8005? Example: Spoiler:
|
Quote:
Code:
|
Quote:
I compiled the routine and dropped it in the offset 71A250, wrote this script and once I checked it In-Game, this was the result. https://i.imgur.com/yGrrQAK.png Note: Just for the record, the savefile is right after defeating my Rival for the very first time, so there's no way for my Pokémon to have 76 points. Dunno if you'll be able to fix it, but in any case thank you very much. |
Quote:
You could test it by using the following set happiness (slot in 0x8004, value to set in 0x8005) routine with a pokemon that evolves via happiness. I think the threshold for evolving is 220? (Routine is also untested) Code:
|
Quote:
I thought that the +1 could be because I defeated his Squirtle and that summed one point to my Charmander's happiness, but nope, I tested it by killing a wild Pokémon and it didn't add a point, so I guess the amount of steps must be the answer. I also fixed my issue with the name by adding the special 0x7C to my script, so yeah, it's over. https://i.imgur.com/B4kJ2eW.png Thank you so much for making this routine Ghoul <3 |
Quote:
Is it possible to make turbo unusable by editing this routine? Basically to prevent the player from abusing it for grinding and so on. |
Quote:
Quote:
|
Is it possible to add or subtract a value from a var? For example, if I have var x4000 set to 0x3, could I call ASM that dynamically subtracts 1 from it (making it 0x2)?
|
Quote:
Spoiler:
Subtraction Spoiler:
|
Quote:
|
Quote:
Btw, you don't need to push scratch registers unless you were hooking (do so on a case by case basis). Nor the link register here because you're not calling a function. Code:
|
Quote:
Is there a document with all the XSE commands? I can't seem to find one. |
Quote:
You could do something like: compare 0x5000 0x5 if >= jump :end addvar 0x5000 0x1 :end end |
Hi. Does anyone over here have an ASM Routine that allows you to hide and show the Trainer Card's access from the Start Menu at will?
https://i.imgur.com/xU5rWLD.png Thanks in advance for reading. |
Quote:
Code:
|
I would like someone to make an ASM Routine to have separate palletes for the OWs which appear on the World Map. (Fire Red)
Here are the offsets for the images Male Spoiler:
Female Spoiler:
|
Quote:
Navenatox's dynamic overworld palettes patch. You can just re-upload the female sprites and it will inherit a different palette number. And combined with JPAN's engine allows you to swap player overworld sprites, all with individual palettes. Hope this helps :) |
Quote:
|
Quote:
|
here is the request of mine:
1. Other Forms I am looking for a routine that allows 2 or more species to share similar dex number. By that, we can have a feature for Flabébé forms and other Pokémon |
Quote:
Boy: 003EF27C Girl: 003EF29C :dansad: |
Quote:
^^ Quote:
|
XSE Special Command to delete pokemon
Hello, After taking a tutorial from FBI we where able to come up with this. Here is how it works: Var 0x8004 value 0x0 = Players 1st Pokemon 0x1 = Players 2nd Pokemon 0x2 = Players 3rd Pokemon 0x3 = Players 4th Pokemon 0x4 = Players 5th Pokemon 0x5 = Players 6th Pokemon So you could use Special 0x9F. Which will let you choose the Pokemon you want deleted. Then callasm 0x?????? +1(where "??????" is where you placed this routine). C source: Code:
Code:
Xse Test Script: Code:
|
Quote:
Custom Regional Pokédex for FireRed: Spoiler:
|
Deposit entire team but oneJust going to publish this combination of two routines and a script excerpt that you can use to let the player select one Pokémon from their team, and then deposit the rest of their team. Spoiler: Script
Spoiler: ROUTINE_ONE
Spoiler: ROUTINE_TWO
|
Exp. All / Gen. 6 Exp. Share [Emerald] This routine was created by Samu from Wahack and it was posted right here. All the credits belong to him. I'm afraid that I'll have to leave the comments in Spanish because I don't know how to properly translate them to English due to my lack of knowledge on the ASM programming language. Sorry :( ASM Routine: Code:
After inserting the routine in your ROM, open your Pokémon Emerald ROM in a hex editor and make the following changes: -04A4BE: 02 21 -04A634: 01 20 -04A58A: C0 46 00 4A 10 47 XX XX XX 08 04 BC Note: XX XX XX = Pointer to the ASM Routine, +1. Example: If I were to put it in E3CF80, I'd have to replace XX XX XX with 81 CF E3. Relevant information: The flag handles the effect itself. If the flag you gave to the routine is OFF (0x0) the Exp. Share will work just like in Gen. 3. If it's ON (0x1), it'll work like in Gen. 1/6/7. Result: I'm sure there's ways to make this better, so if anyone could give that a try, that'd be awesome :) |
Custom Victory Music [FR]:
Everyone knows of the code that allows you have custom trainer battle music, but as far as I'm aware, no one has ever written code that allows you have custom victory music (that jingle that plays when you win a battle). This code is very similar to the custom trainer battle music in which it loads the data from a table structured [Byte - Trainer Class] 00 [HWord - Song ID]. The table is ended with a 0xFFFF. But before you do anything though, you need to decide how many jingles you want. If you don't need more than 7, just compile the code as it is. If you don't modify the code, the table is at 0x15740 (there's enough space there for 7 jingles, just make sure you put the end 0xFFFF). Otherwise change the last line in the code to your table's pointer. In order to get this working all you need to do is compile the ASM and copy whatever's at the offset 0x156F4 in the bin into your Rom. Due to the way the original code was written, the new code can be completely pasted over. Enjoy! Code:
|
| All times are GMT -8. The time now is 8:46 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.