PDA

View Full Version : Development: Port of the BW2 Repel system to GBA...


Darthatron
November 2nd, 2012, 07:40 AM
So, clearly the best thing about BW2 is the fact that it asks if you'd like to use another repel if it expires.
THIS IS AWESOME!
Why did Gamefreak not add this earlier?
Anyway, I've made a port of it for FireRed. I hope you enjoy it.

http://i.imgur.com/2OJ4t.png

It will only ask you if you'd like to use another repel if you have another one of the same repel you just used. Otherwise it will just tell you the repel expired. This is how it works in BW2.

There are a lot of byte changes to be made. Sorry for that. :(

080830CA: 0C 48 EB F7 4C FA 01 06 00 29 16 D0 41 1E 0C 06 0D 0A 07 48 EB F7 51 FA 00 2C 0E D1 03 4C 25 80 05 48 E6 F7 FA FC 01 20 08 E0 30 AD 03 02
08083119: 06
080A19A5: 06
080A19F6: 1C
080A19F8: 11
080A19FC: 0F
080A1A0E: 21 88 09 02 41 40
080A1A1E: 34 4B 28 21 71 43 5B 18 D9 79 30 1C 02 22 17 4B FF F7 49 FB C7 F7 85 FF 70 BD 20 40 00 00 FF FF 00 00 30 AD 03 02
080A1A5A: 00 00 00 00
080A1A68: 00 00 00 00
081BFB66: 00 00 00 B5 04 48 50 21 00 F0 01 F8 00 BD 00 4A 10 47 1D 74 07 08 99 19 0A 08 00 00 00 00 00 00

Then you have to compile this script. You can compile it anywhere, just note the pointer you compiled it to:
#org @Main
lock
checkitem 0x800E 1
compare LASTRESULT 1
if b_>= goto @ThereAreMore
msgbox @RepelExpired 3
release
end

#org @ThereAreMore
msgbox @UseAnother 5
closeonkeypress
compare LASTRESULT 1
if b_true goto @CallASM
end

#org @CallASM
callasm 0x081BFB69
end

#org @RepelExpired
= Repel's effect wore off.

#org @UseAnother
= Repel's effect wore off...\nUse another?

Here's a compiled version of the script for anyone having problems:
6A 47 0E 80 01 00 21 0D 80 01 00 06 04 1C 00 80 08 0F 00 39 00 80 08 09 03 6C 02 FF 0F 00 54 00 80 08 09 05 68 21 0D 80 01 00 06 01 32 00 80 08 02 FF 23 69 FB 1B 08 02 FF CC D9 E4 D9 E0 B4 E7 00 D9 DA DA D9 D7 E8 00 EB E3 E6 D9 00 E3 DA DA AD FF 00 FF CC D9 E4 D9 E0 B4 E7 00 D9 DA DA D9 D7 E8 00 EB E3 E6 D9 00 E3 DA DA AD AD AD FE CF E7 D9 00 D5 E2 E3 E8 DC D9 E6 AC FF 00 FF FF FF FF

Finally, replace the pointer at 08083100 with the pointer to the script. TADA! It's done. It works a treat. Let me know if you guys have any trouble, or if you find an issue with it. :)

NarutoActor
November 2nd, 2012, 12:56 PM
Wow that is really cool, I just added that feature to my hack, and will credit you too xD

SSJ4 Furanki
November 2nd, 2012, 12:59 PM
I will implement this to DarkCopper and FireRed Challenge Mode, thanks! You'll be getting credit, this is one of my favorite things about B2/W2 as well.

EDIT: I've edited the bytes, but, I can't seem to get the script to compile correctly in XSE.

Team Fail
November 2nd, 2012, 01:08 PM
So, clearly the best thing about BW2 is the fact that it asks if you'd like to use another repel if it expires.
THIS IS AWESOME!

IT IS SO AWESOME!

This is a nice little port you made! I'll be sure to keep this in mind if I do any Fire Red hacks.

Nintendork15
November 2nd, 2012, 01:15 PM
One of the best features in B2/W2.
If I ever get back to hacking, this is going right in there.

Thundrake
November 2nd, 2012, 01:32 PM
080A19F6: 1C
080A19F6: 11

This can't be right, can it?

DoesntKnowHowToPlay
November 2nd, 2012, 01:36 PM
080A19F6: 1C
080A19F6: 11

Is this supposed to be one line or is one of those addresses a typo?

Either way, this looks very nice.

tajaros
November 2nd, 2012, 02:14 PM
This is cool Darthatron! Thanks for this I'll definitely be using this. But, the 2 ^ above me are right are those typos or are they typed in one line? :/

shinyabsol1
November 2nd, 2012, 02:50 PM
So, clearly the best thing about BW2 is the fact that it asks if you'd like to use another repel if it expires.
THIS IS AWESOME!
Why did Gamefreak not add this earlier?
Anyway, I've made a port of it for FireRed. I hope you enjoy it.

I completely agree with you. Best feature ever! Great work porting this, Darthatron! I will definitely add it to my hack.

But yeah, as those above have asked: are those one line or a typo?

Darthatron
November 2nd, 2012, 07:02 PM
Oops! That was definitly a typo.

080A19F6: 1C
080A19F8: 11

Also, there was a small bug where the textbox wouldn't disappear after you used a repel in the overworld. I've updated the first post with the fix, but if you've already implemented it just change these bytes:

080A1A32: C7 F7 85 FF 70 BD

I've also added the compiled script to the first post. :)

itari
November 2nd, 2012, 07:22 PM
This is a great little improvement!
Nice work.

itman
November 2nd, 2012, 10:03 PM
I look foward to Darthatron's research threads. ^.^

Definitely going to use this. :)

Satoshi Ookami
November 2nd, 2012, 11:56 PM
Awesome! This is something that was missing in GBA games so much!
Great work! But will you be doing the port to Ruby as well?

Darthatron
November 3rd, 2012, 12:24 AM
Awesome! This is something that was missing in GBA games so much!
Great work! But will you be doing the port to Ruby as well?
Probably not! But I will release commented notes soon, so some other hacker can do that.

Platinum Lucario
November 3rd, 2012, 01:03 AM
This is excellent, it would indeed show that it can also be done in Emerald as well. But having said that, you'd need to know the offsets where it states about "Repel's effect wore off...", it would be really useful for any other ROM hacks that are currently in development, it would save you the time of having to open up your bag again and using repel. ;)

Crimson5M
November 3rd, 2012, 07:28 AM
Cool! I haven't played B2W2 yet but I'll definitely be using this :)

Darthatron
November 4th, 2012, 11:45 PM
Well, apparently there is an issue with this hack. Some tiles get messed up until the screen is refreshed. I'm working on a different way of doing things. I'll keep ya'll updated.

MegaKuriboh
November 9th, 2012, 04:17 PM
I have no idea how to edit bytes and stuff like that, so would you mind making a patch for this? It would be awesome if you did. Keep up the great work! ^_^

KyX
November 26th, 2012, 04:29 AM
I tried to replace the bytes, but i can't understand the offsets.. I'm using HxD as Hex Editor and when typing in the offset it says that this position could not be found.

Can anyone help me? Thank you.

Darthatron
November 26th, 2012, 04:44 AM
I tried to replace the bytes, but i can't understand the offsets.. I'm using HxD as Hex Editor and when typing in the offset it says that this position could not be found.

Can anyone help me? Thank you.

Hello! The "08" at the start of the offset just means it's in the ROM, not in the memory of the emulator. So just remove the 08 and it will work fine. :)

KyX
November 26th, 2012, 06:32 AM
Hello! The "08" at the start of the offset just means it's in the ROM, not in the memory of the emulator. So just remove the 08 and it will work fine. :)

Thank you! But i have another problem.. Since i'm hacking an Italian rom.. offsets are not the same..
But i managed to find where to modify by compare bytes with a english rom..
I also fixed all pointers correctly.. But after the repel finish, the game restart.. :(

Darthatron
November 26th, 2012, 08:02 AM
Thank you! But i have another problem.. Since i'm hacking an Italian rom.. offsets are not the same..
But i managed to find where to modify by compare bytes with a english rom..
I also fixed all pointers correctly.. But after the repel finish, the game restart.. :(

This is not a shock. There are a few parts where the ASM calls parts of the ROM by a "distance" branch function. So it's hard to change those bytes without ASM knowledge... I will take a look at an Italian ROM and see if I can get it to not crash. :)

robin22gongon
February 23rd, 2013, 11:37 PM
Sorry to revive an old thread but i'm a newbie and i don't know these things, but any patch? Please mods do not close this thread I'm begging you!

Omega Zero
February 27th, 2013, 09:37 PM
I've found a bug with this patch. (sorry no bugs)

Basically sometimes when it asks you to use the repel if you press yes
half the time it'll mess up a tile on the map and replace it with another one.

robin22gongon
March 8th, 2013, 03:59 PM
Patch please?! I really need one I can't get it to work. Everytime I do it and test it what appears is the

BUY
SELL
SEE YA

screen when you go to a poke mart

Darthatron
March 11th, 2013, 01:03 AM
Regarding the tiles messing up, the following byte changes appear to fix it:

080A1A5A: 00 00 00 00
080A1A68: 00 00 00 00

This is also posted in the first post.

Jambo51
March 11th, 2013, 05:17 AM
Patch PLEASE! I really need it. It gets annoying when your repel expires and you have to go to your bag again just to use another.

Both myself and Darthatron firmly believe in not posting patches for this sort of stuff, unless it's simply too big to put into a small hack, like this. (An example of something too big to not make a patch for would be the 649 Patch).

It's the height of laziness to expect a patch for every little hack, especially when the actual work entailed in implementing this is little more than changing a few bytes with a hex editor and compiling a script.

So, since Darthatron will ignore you unless you actually try to do it, please take my advice. Try to do the hack yourself, and if you run into trouble, ask for Darth's help. I'm sure he'll be more than happy to oblige, but if you don't even try...

ETA: I plan to add this to the 649 Patch, assuming everything works. It's a very nice and logical addition to the game.

robin22gongon
March 11th, 2013, 10:01 PM
Both myself and Darthatron firmly believe in not posting patches for this sort of stuff, unless it's simply too big to put into a small hack, like this. (An example of something too big to not make a patch for would be the 649 Patch).

It's the height of laziness to expect a patch for every little hack, especially when the actual work entailed in implementing this is little more than changing a few bytes with a hex editor and compiling a script.

So, since Darthatron will ignore you unless you actually try to do it, please take my advice. Try to do the hack yourself, and if you run into trouble, ask for Darth's help. I'm sure he'll be more than happy to oblige, but if you don't even try...

ETA: I plan to add this to the 649 Patch, assuming everything works. It's a very nice and logical addition to the game.

I already tried to do it 12 times but every time I do it, this is what happens:
http://i1310.photobucket.com/albums/s652/robinjeagongon/Pokecommunity/RepelScreenie_zps6437ef0b.png

Jambo51
March 11th, 2013, 10:34 PM
Then ask for help! Don't ask for a patch. Trust me when I say there's a reason that both of us have this stance towards patches. Sadly, I can't help as I've never applied the hack, but you (in each if your posts in this thread, ignoring this one) have asked for a patch.

I'm simply trying to help get you into the right mindset for hacking. When you get to the stage that people like Darthatron and myself are at, there's no copping out, no asking for patches, we need to do everything ourselves.

It's not just you, it's the entire culture around this site, and likely many other hacking sites. People want things done for them, never thinking that the person who made the hack in the first place probably had to do it from scratch.

robin22gongon
March 11th, 2013, 10:59 PM
Then ask for help! Don't ask for a patch. Trust me when I say there's a reason that both of us have this stance towards patches. Sadly, I can't help as I've never applied the hack, but you (in each if your posts in this thread, ignoring this one) have asked for a patch.

I'm simply trying to help get you into the right mindset for hacking. When you get to the stage that people like Darthatron and myself are at, there's no copping out, no asking for patches, we need to do everything ourselves.

It's not just you, it's the entire culture around this site, and likely many other hacking sites. People want things done for them, never thinking that the person who made the hack in the first place probably had to do it from scratch.

Then help me, I'm just following the steps in the first post but that is what always happens. Can't you tell what I'm doing wrong? Also, Is this not possible for Pokemon Ruby?

Darthatron
March 12th, 2013, 12:17 AM
I already tried to do it 12 times but every time I do it, this is what happens:
http://i1310.photobucket.com/albums/s652/robinjeagongon/Pokecommunity/RepelScreenie_zps6437ef0b.png
When does this happen? After the repel has worn off? Does any text come up, or just that menu?
Then help me, I'm just following the steps in the first post but that is what always happens. Can't you tell what I'm doing wrong? Also, Is this not possible for Pokemon Ruby?
It's possible for Ruby, but nobody has ported it yet. Once I work out if this is bug free, I will probably try to port it myself.

robin22gongon
March 12th, 2013, 12:40 AM
When does this happen? After the repel has worn off? Does any text come up, or just that menu?

It's possible for Ruby, but nobody has ported it yet. Once I work out if this is bug free, I will probably try to port it myself.

Yeah it appears right after the repel expires and I count my steps so I'm pretty sure my repel expired and also no text come up, just that menu.

Also promise you would port it for Ruby. Thanks.

Darthatron
March 12th, 2013, 01:06 AM
Yeah it appears right after the repel expires and I count my steps so I'm pretty sure my repel expired and also no text come up, just that menu.
Well in that case, the script is not being called correctly. Did you set the right pointer to the script?
Also promise you would port it for Ruby. Thanks.
I will promise nothing.

robin22gongon
March 12th, 2013, 03:11 AM
Well in that case, the script is not being called correctly. Did you set the right pointer to the script?

I will promise nothing.

Yes! I'm sure I set the right pointer correctly for the script!

Also that last line was corny don't mind that. But please if you discover it, please tell me. And if I would experiment porting it to Ruby, would the script be the same?

EDIT: I got it to work but it doesn't ask me if I want to use another, it automatically uses a repel. Oh! and is it natural that it doesn't tell you that your repel expired and you got no more repels left?

BTW, how do you discover this kind of things?

Darthatron
March 12th, 2013, 04:22 AM
I got it to work but it doesn't ask me if I want to use another, it automatically uses a repel.
That's very odd. There's no call to the repel routine except for in the script when you select "Yes".
Oh! and is it natural that it doesn't tell you that your repel expired and you got no more repels left?
Well it doesn't tell you that you have none left, but you can edit that in yourself if you like, since I posted the script.
BTW, how do you discover this kind of things?
Through an advanced type of hacking called Assembly (or ASM for short). There are tutorials in the Tutorials section.

Might I ask how you got it to work?

robin22gongon
March 12th, 2013, 04:34 AM
LOL I realised I didn't repoint it correctly because back then I would put 80 00 00 but I realized that couldn't be right so I searched the internet on repointing in hex and I found that I should put 00 00 80 08!

I walk 249 steps (MAX REPEL) and I take another step as it should my repel expires, but a text box comes up and says "ROBIN used MAX REPEL." Just that nothing more.

This is what the script I compiled looks like:

'-----------------------
#org 0x800000
lock
checkitem 0x800E 0x1
compare LASTRESULT 0x1
if 0x4 goto 0x880001A
msgbox 0x8800035 '"Repel's effect wore off."
release
end

'-----------------------
#org 0x80001A
msgbox 0x880004F '"Repel's effect wore off...\nUse ano..."
closeonkeypress
compare LASTRESULT 0x1
if 0x1 goto 0x880002E
end

'-----------------------
#org 0x80002E
callasm 0x81BFB69
end


'---------
' Strings
'---------
#org 0x800035
= Repel's effect wore off.

#org 0x80004F
= Repel's effect wore off...\nUse another?

Oh and about the Assembly, I know just a little but how do you do that and how did you find out which is which and what is what I mean that's another game and you managed to see how it works! Do you have some kind of resources that would point you to where and what bytes to edit?

Sorry for so many questions. :P

Darthatron
March 12th, 2013, 04:48 AM
LOL I realised I didn't repoint it correctly because back then I would put 80 00 00 but I realized that couldn't be right so I searched the internet on repointing in hex and I found that I should put 00 00 80 08!
I see. I figured it was that.
I walk 249 steps (MAX REPEL) and I take another step as it should my repel expires, but a text box comes up and says "ROBIN used MAX REPEL." Just that nothing more.
So it doesn't say "Repel's effect wore off."? It goes straight to "ROBIN used MAX REPEL."?
This is what the script I compiled looks like:

'-----------------------
#org 0x800000
lock
checkitem 0x800E 0x1
compare LASTRESULT 0x1
if 0x4 goto 0x880001A
msgbox 0x8800035 3 '"Repel's effect wore off."
release
end

'-----------------------
#org 0x80001A
msgbox 0x880004F 5 '"Repel's effect wore off...\nUse ano..."
closeonkeypress
compare LASTRESULT 0x1
if 0x1 goto 0x880002E
end

'-----------------------
#org 0x80002E
callasm 0x81BFB69
end


'---------
' Strings
'---------
#org 0x800035
= Repel's effect wore off.

#org 0x80004F
= Repel's effect wore off...\nUse another?
Perhaps the changes I marked in red will fix the problem? I don't even know how yours compiled. :\
Oh and about the Assembly, I know just a little but how do you do that and how did you find out which is which and what is what I mean that's another game and you managed to see how it works! Do you have some kind of resources that would point you to where and what bytes to edit?
The ROM is the resource. Read the tutorials. I didn't see how it worked in BW, I just wrote it how it should work.
Sorry for so many questions. :P
That's okay.

robin22gongon
March 12th, 2013, 04:59 AM
I tried it. It's still the same... Ugh! Just when I figured that 1 mistake!

EDIT: I rechecked in XSE the script and it's still the same the 3 and 5 disappears automatically. I also have tried to recompile it to another offset and guess what...

It's still the same...:(

Darthatron
March 12th, 2013, 08:10 PM
I tried it. It's still the same... Ugh! Just when I figured that 1 mistake!

EDIT: I rechecked in XSE the script and it's still the same the 3 and 5 disappears automatically. I also have tried to recompile it to another offset and guess what...

It's still the same...:(

I really have no idea. Try it again on a clean ROM from scratch? Are you using the latest version of XSE (1.1.1, I think)?

robin22gongon
March 12th, 2013, 08:29 PM
Yeah I'm using XSE 1.1.1.

I'll try it and I'm gonna report in a few days since my internet subscription's gonna be cut.

robin22gongon
March 13th, 2013, 03:13 PM
Hey there, do you think it can work if I use the "This is the compiled version of the script for anyone having problems"? That one?

Darthatron
March 13th, 2013, 05:32 PM
Hey there, do you think it can work if I use the "This is the compiled version of the script for anyone having problems"? That one?

Well that's what it's there for. Try it out. :)

robin22gongon
March 13th, 2013, 06:13 PM
Umm... Well, how do I do that? Do I still have to compile the script on the first page or just edit the bytes where I'm gonna compile it?

OH MY GOD... O-o It worked YAY! thanks dude! I love you! Can I make a patch for this?

This is it right? ZOMG
http://i1310.photobucket.com/albums/s652/robinjeagongon/YayitWorked_zps33e8764f.png

Now onto Ruby!

Darthatron
March 13th, 2013, 06:38 PM
Umm... Well, how do I do that? Do I still have to compile the script on the first page or just edit the bytes where I'm gonna compile it?

OH MY GOD... O-o It worked YAY! thanks dude! I love you! Can I make a patch for this?

This is it right? ZOMG
http://i1310.photobucket.com/albums/s652/robinjeagongon/YayitWorked_zps33e8764f.png

Now onto Ruby!
I'd rather if you didn't make a patch. Think of how much you learned from doing this. Don't you want others to learn the same?

Good work, though. :)

robin22gongon
March 13th, 2013, 06:48 PM
Actually it's for personal use. Just so when I make a new Fire Red Hack I can implement it immediately without editing another byte. I just asked if it's okay because it's your property since you made it.

Also, IT IS possible for Ruby right? Can you tell me how I will research on it? I might actually look this up.

Darthatron
March 13th, 2013, 10:56 PM
Actually it's for personal use. Just so when I make a new Fire Red Hack I can implement it immediately without editing another byte. I just asked if it's okay because it's your property since you made it.
It's public property once I post it here.
Also, IT IS possible for Ruby right? Can you tell me how I will research on it? I might actually look this up.
Of course it's possible. You will need to do a lot of research in to ASM before you'll be capable of doing it, though.

robin22gongon
March 13th, 2013, 11:25 PM
It's public property once I post it here.

Of course it's possible. You will need to do a lot of research in to ASM before you'll be capable of doing it, though.

Well right now, I know the basics. Learning a few advanced.

Darthatron
March 14th, 2013, 12:27 AM
Well right now, I know the basics. Learning a few advanced.

Also one more thing, a little off-topic.
Do you know how I can implement the physical/special split of attack in Ruby? Also the new attacks? Is it through ASM? Sorry just wondering and hoping you know it.
I think someone already ported that to ruby? Either way, it requires the same stuff as porting this. You need to be able to do several things:


Understand what needs to be done and be able to structure code.
Be able to locate/understand functions or write functions that do what you need to do.
Be able to locate somewhere to put your code so it runs.

Either way, it's not easy. It's taken me years to be able to do this stuff. You need to go to the Tutorials section and do some ASM tutorials. Before you can find and use code effectively, you need to be able to write it in the most simple forms.

Follow some tutorials and then PM me. But don't post in here about off-topic stuff because it makes everything look messy.

dkp
March 30th, 2013, 09:17 PM
So, I've been testing this out out of late, but I keep running into the same error:

All of the repels seem to have their effects corrupted. The text pulls up fine, the item gets "used", the script seems to work fine. However, whenever I attempt to implement this somehow the repel effect itself seems to stop working.

So say I'm testing it out; I go into the bag and use a repel. The text "Leaf used a Repel" pops up, the number decreases, all normal. But if I then walk into the grass or over water or what have you, I still get wild encounters. Despite still getting wild encounters, once I walk 250 steps or so, I get the right message; it asks me to use a repel, and if I say yes, it subtracts one from the bag until I have none. But even still, I get wild encounters.

May I ask which offset controls the wild encounter altering behavior for the item? Or if that's even changed at all by this (a problem on my end)? (or what part of the script)? While I've checked and rechecked it might be a copy error, though I don't think so.

I've used both a greatly hacked BPRE v1.0 rom and a clean one (though for the clean I did use thethethe's Item Editor via Gamer2020's Pokemon Game Editor to change the price, and A-Map and XSE to insert a shop/sprite in Pallet to make testing easier; this is after the offsets were changed; if there's a problem with this method I'm unaware of it would be nice to know).

Thanks for any help offered.

robin22gongon
March 30th, 2013, 10:36 PM
Yes, naturally... Unfortunately, it seems to be interfered with by what I've got going already... pity. Brilliant though. Now I just need to track down what's wrong.

Based on your post, I guess you've already started progress on your ROM am I right? If so, and you want to keep your progress and at the same time fix the problem, follow this:

Step 1
Do it on a clean FR ROM. Do it and edit the bytes with the same offsets.

Step 2
Test it. If it works, make a patch for it.

Step 3
Backup your progressed ROM. Apply the patch. Make sure the patch overwrites the old bytes and offsets. Now test it.

Step 4
Party non-stop. Hehehe... Hope it helps.

dkp
March 30th, 2013, 10:59 PM
Sorry to keep polluting this - I think I figured it out.

My clean rom seems to have some weird permission/write errors from getting shared between multiple users (me and me and also me). Effectively it seems I have permissions over some sectors within the directory but not others; I don't even know how that works, I'm guessing. It wasn't returning errors due to the fact that the actual rwx flags are true for me but it seems some parts are read-only. It's... nonsense, absolute nonsense. I made a copy into my current working directory and it seems to have done the job. I'm going to pave over the directory, maybe the partition. So... yay? For the record, this is something that's usually the result of improper mounting and unmounting; always eject your cards at the software level, kids!

The hack base obviously I should have known. The mistake was stupidity on my end. I'm "borrowing" (for private use) an item hack from someone else, and somewhere along the line the effects were repointed, and the author (at absolutely no fault of his own) neglected to say so in his patch. I'm simply a huge idiot. So huge. Sorry about this.

tl;dr its all my fault folks

EDIT: Actually, no, that makes no sense. The items are the same - they're read from the table just the same. It points to the right asm routine (I know this because JPAN here: http://www.pokecommunity.com/showthread.php?t=204861 ); and that asm routine is as posted. All of the edits are positively correct. I know it's reading that item as repel, so then... What? I know for a fact that the only changes to the wild pokemon come from A Map... it makes no sense why I'm still having wild encounters.

I mean it is reading the asm, and I actually do know for a fact nothing has been done to the wild encounter code. So there is no reason it should malfunction, dirty rom or not.

@gogojjtech below; Oh wow. Wow wow. You learn something new everyday.

tl;dr still all my fault folks. But wow.. amazing.

GoGoJJTech
March 31st, 2013, 05:05 AM
The repel slows the rate of WEAK wild pokemon, so the first pokemon in your party must be a HIGHER level than the wild pokemon or they will just keep coming out. This is not a result of the byte changes but thats how the repel is supposed to act.

robin22gongon
March 31st, 2013, 10:50 PM
For anyone who will try to do this, I modified the script a bit for errors.
#org @Main
lock
checkitem 0x800E 1
compare LASTRESULT 0x1
if b_>= goto @ThereAreMore
msgbox @RepelExpired 0x3
release
end

#org @ThereAreMore
msgbox @UseAnother 0x5
closeonkeypress
compare LASTRESULT 0x1
if b_true goto @CallASM
end

#org @CallASM
callasm 0x081BFB69
end

#org @RepelExpired
= Repel's effect wore off.

#org @UseAnother
= Repel's effect wore off...\nUse another?

And here's the compiled version of it
6A 47 0E 80 01 00 21 0D 80 01 00 06 04 6C A2 71 08 0F 00 89 A2 71 08 09 03 6C 02 FF 0F 00 A4 A2 71 08 09 05 68 21 0D 80 01 00 06 01 82 A2 71 08 02 FF 23 69 FB 1B 08 02 FF CC D9 E4 D9 E0 B4 E7 00 D9 DA DA D9 D7 E8 00 EB E3 E6 D9 00 E3 DA DA AD FF 00 FF CC D9 E4 D9 E0 B4 E7 00 D9 DA DA D9 D7 E8 00 EB E3 E6 D9 00 E3 DA DA AD AD AD FE CF E7 D9 00 D5 E2 E3 E8 DC D9 E6 AC FF 00 FF FF FF FF

joexv
May 20th, 2013, 01:42 PM
Omg thank you!!!!!!!!! This is really nice in the fire red rom I play on my ipod!!! Thanks!!!!!!!

SSJ4 Furanki
August 13th, 2013, 10:33 AM
I've tried putting these scripts into both my hack and an unedited ROM, I keep ending up with the script technically working in XSE, but in game it's still only goes to "Repel's effect wore off." without the option to choose whether you want to use it.

Tide
November 23rd, 2013, 12:13 PM
So, this new feature really fascinated me, as it was one of my favorite aspects of convenience in Black and White. I gave this process a few tries, and I came up with the same result. I use a Repel, and when I run enough for the repel to expire, no script pops up at all.

http://www.youtube.com/watch?v=JVnRVfGm4Tk
(http://www.youtube.com/watch?v=JVnRVfGm4Tk)

I figured it'd be most efficient to just capture everything I did, that way anyone can see my mistake rather than me misinterpreting in a tedious conversation on knowledge I am unfamiliar with. Therefore, I made a 3 day conversation to a 12 minute video.

The Shiny Ho-Oh
December 9th, 2013, 09:11 PM
I need some help with this. I have everything done, but I don't know how to put a pointer at 08083100.
Currently, when I use a repel, I can run for a while, then it ends without giving me any message boxes.
So, I've been getting a little bit of help with this. Turns out, I wasn't doing the pointer correctly. I needed to write it 67 45 23 01 as opposed to 01 23 45 67, however, even after doing this correctly, it appears that things aren't going right. I still get no popup, and Pokemon start appearing after the repel runs out.

Jesus. I talked to my programming teacher about this today, and he and I spent about an hour getting this working. Worth it.

vizor
December 23rd, 2013, 04:51 AM
I had some Problems researching the offests for a german Fire Red Version, even though i was pretty sure i got them (i was not sure at two or three offsets), the game resets every time after i use a Repel.
Could you post the Offest for a german rom, too?

Vizor

SSJ4 Furanki
January 27th, 2014, 07:30 PM
This is the most recent attempt I have at this, I attempted editing it. I changed all the necessary parts and the message doesn't pop up. I have the pointer at 083100 as cbba1b to reflect the offset but in reverse.

'-----------------------
#org 0x1BABCB
lock
checkitem 0x800E 0x1
compare LASTRESULT 0x1
if 0x4 goto 0x880001C
msgbox 0x8800039 '"Repel's effect wore off."
callstd 0x3
release
end

'-----------------------
#org 0x80001C
msgbox 0x81C68F2 '"Repel's effect wore off...\nUse ano..."
closeonkeypress
compare LASTRESULT 0x1
if 0x1 goto 0x81C6A02
end

'-----------------------
#org 0x1C6A02
callasm 0x81BFB69
end

'---------
' Strings
'---------
#org 0x800039
= Repel's effect wore off.

#org 0x1C68F2
= Repel's effect wore off...\nUse another?

EDIT: Did it again, when the steps are up instead of the message popping up, it sends me to the Union Room, I get an error message and the game restarts.

EDIT 2: Pointed it somewhere else. It's almost there. It works sort of, if forces me to use the next Repel instead of giving me the choice.

rhettz_emboar
March 20th, 2014, 07:24 PM
I may sound too noob here, but how can I do this?? >_<
Finally, replace the pointer at 08083100 with the pointer to the script. TADA! It's done. It works a treat. Let me know if you guys have any trouble, or if you find an issue with it.

I went to 083100 on HxD but I dont know what to do next. If how can I replace the pointer with the pointer on my script.

Also, where should I paste this?
Here's a compiled version of the script for anyone having problems:
6A 47 0E 80 01 00 21 0D 80 01 00 06 04 1C 00 80 08 0F 00 39 00 80 08 09 03 6C 02 FF 0F 00 54 00 80 08 09 05 68 21 0D 80 01 00 06 01 32 00 80 08 02 FF 23 69 FB 1B 08 02 FF CC D9 E4 D9 E0 B4 E7 00 D9 DA DA D9 D7 E8 00 EB E3 E6 D9 00 E3 DA DA AD FF 00 FF CC D9 E4 D9 E0 B4 E7 00 D9 DA DA D9 D7 E8 00 EB E3 E6 D9 00 E3 DA DA AD AD AD FE CF E7 D9 00 D5 E2 E3 E8 DC D9 E6 AC FF 00 FF FF FF FF

ShyRayq
March 20th, 2014, 11:56 PM
I may sound too noob here, but how can I do this?? >_<


I went to 083100 on HxD but I dont know what to do next. If how can I replace the pointer with the pointer on my script.

Also, where should I paste this?

Okay, so you paste the script into free space, basically anywhere that has loads of FFs.
Now, take the offset that you put the script in. For this example it will be 0xABCDEF.

Now go to 0x8083100, and replace that pointer with your pointer.
In this case, you split your offset into parts of 2: AB CD EF
Swap the first and last terms: EF CD AB
Then slap 08 on the end. That's your pointer: EFCDAB08
Replace what is at 0x8083100 with your pointer and it should work.

Lucariokid13
March 26th, 2014, 07:59 PM
I have a problem too it's extremely weird, I got the script to show up but when I select the yes option it resets

Creator135
June 27th, 2014, 09:22 AM
Does anyone have some sort of UPS file with this feature that i could patch on to my Emerald rom? I'm not really good with hex and i understand literally none of this. Could anyone help me out here?

pokemontutorialTV
June 28th, 2014, 12:46 AM
I warn you better to use this tutorial. I found a way better without hacking the bagroutine this badly to expand the repel. You just have to take a look on JPANs dokomentation and understand how it works. I just give one tip, write a script with setvar 0x4020 0xA and Repel will work 10 Steps. With this information you just need to insert your routine before the repel expires.
And this is defently better than mess up the hole bag-system.

Phenom2122
June 28th, 2014, 04:25 AM
I warn you better to use this tutorial. I found a way better without hacking the bagroutine this badly to expand the repel. You just have to take a look on JPANs dokomentation and understand how it works. I just give one tip, write a script with setvar 0x4020 0xA and Repel will work 10 Steps. With this information you just need to insert your routine before the repel expires.
And this is defently better than mess up the hole bag-system.

.. Well why not share what you know? If you're going to claim that this way is wrong and there is a better way, why not share it here?


Does anyone have some sort of UPS file with this feature that i could patch on to my Emerald rom? I'm not really good with hex and i understand literally none of this. Could anyone help me out here?


This is for Fire Red like most things, it hasn't been ported to Emerald (yet).

pokemontutorialTV
June 28th, 2014, 11:50 AM
Because I need to make 15 posts so that i can use links -.-"
Only 9 left :D



This is for Fire Red like most things, it hasn't been ported to Emerald (yet).
If you mean that you dont know the Offsets, simply serch with a Hexeditor for the structure. In 90% you'll find some good result ;)

Phenom2122
June 28th, 2014, 12:00 PM
Haha fair enough. Personally I am wanting to start looking into porting some of these things to emerald, I'm glad that you posted before I started doing a lot of work on this for nothing. I'd like to read some of that documentation, maybe it will be useful for opening up emerald like fire red is..

Creator135
June 28th, 2014, 01:57 PM
.. Well why not share what you know? If you're going to claim that this way is wrong and there is a better way, why not share it here?





This is for Fire Red like most things, it hasn't been ported to Emerald (yet).


Well nonentheless, i could still use this for my FireRed rom so is there a ups for that?

EthanAG
July 1st, 2014, 08:17 PM
There are quite a lot of steps the the overall after part is amazing! It would be nice if they had implemented this a lot earlier on like other people were saying.

Creator135
July 1st, 2014, 10:29 PM
Sorry, sorry. I shall respect Darthatron's wishes and learn. Could anyone be willing to help me out?

Phenom2122
July 2nd, 2014, 06:30 AM
Sorry, sorry. I shall respect Darthatron's wishes and learn. Could anyone be willing to help me out?

Get hold of HxD hex editor. Its a nice user friendly hex editor to start with and to get you familiar with things. In the first post where it says this:
080830CA: 0C 48 EB F7 4C FA 01 06 00 29 16 D0 41 1E 0C 06 0D 0A 07 48 EB F7 51 FA 00 2C 0E D1 03 4C 25 80 05 48 E6 F7 FA FC 01 20 08 E0 30 AD 03 02
08083119: 06
080A19A5: 06
080A19F6: 1C
080A19F8: 11
080A19FC: 0F
080A1A0E: 21 88 09 02 41 40
080A1A1E: 34 4B 28 21 71 43 5B 18 D9 79 30 1C 02 22 17 4B FF F7 49 FB C7 F7 85 FF 70 BD 20 40 00 00 FF FF 00 00 30 AD 03 02
080A1A5A: 00 00 00 00
080A1A68: 00 00 00 00
081BFB66: 00 00 00 B5 04 48 50 21 00 F0 01 F8 00 BD 00 4A 10 47 1D 74 07 08 99 19 0A 08 00 00 00 00 00 00I'll take the first line as an example.
080830CA is an offset in the rom. At the top of HxD click search to open a drop down menu and choose goto (or just press Crtl+G), then in the box that opens enter that offset. You will immediately jump to that position in the rom. Lets read the first line again. It gives you the offset and then a bunch of hex numbers. You need to enter these numbers right where you were taken to with goto, exactly where the cursor is, enter those values, overwriting the existing ones. You can also copy and paste with Ctrl+B (don't use Ctrl+V as this will increase the rom size).

Next offset is 08083119. Use goto or Ctrl+G to get to that offset in the rom. Do the same thing, overwrite all the bytes. Do this for all of these entries.

Then you compile that script that was provided taking note of its offset as Darthatron says. Xse will give you the option to copy this offset, do it and paste it somewhere.

On the final step you have to replace a pointer at 08083100. Once again use goto in HxD to get to that address. Look at the first four bytes that you see. It will be ?? ?? ?? 08. I'm not sure what the exact values will be but that fourth byte should be '08'. That means it is a pointer. Take the pointer that you copied from Xse earlier and reverse it. For eg. if your pointer was 01 02 03, you must make it 03 02 01. Enter these values where I put '??' so that at 08083100 your values will be 03 02 01 08 (or whatever your offset is).
I hope this helps you :)

Creator135
July 2nd, 2014, 02:20 PM
Get hold of HxD hex editor. Its a nice user friendly hex editor to start with and to get you familiar with things. In the first post where it says this:
080830CA: 0C 48 EB F7 4C FA 01 06 00 29 16 D0 41 1E 0C 06 0D 0A 07 48 EB F7 51 FA 00 2C 0E D1 03 4C 25 80 05 48 E6 F7 FA FC 01 20 08 E0 30 AD 03 02
08083119: 06
080A19A5: 06
080A19F6: 1C
080A19F8: 11
080A19FC: 0F
080A1A0E: 21 88 09 02 41 40
080A1A1E: 34 4B 28 21 71 43 5B 18 D9 79 30 1C 02 22 17 4B FF F7 49 FB C7 F7 85 FF 70 BD 20 40 00 00 FF FF 00 00 30 AD 03 02
080A1A5A: 00 00 00 00
080A1A68: 00 00 00 00
081BFB66: 00 00 00 B5 04 48 50 21 00 F0 01 F8 00 BD 00 4A 10 47 1D 74 07 08 99 19 0A 08 00 00 00 00 00 00I'll take the first line as an example.
080830CA is an offset in the rom. At the top of HxD click search to open a drop down menu and choose goto (or just press Crtl+G), then in the box that opens enter that offset. You will immediately jump to that position in the rom. Lets read the first line again. It gives you the offset and then a bunch of hex numbers. You need to enter these numbers right where you were taken to with goto, exactly where the cursor is, enter those values, overwriting the existing ones. You can also copy and paste with Ctrl+B (don't use Ctrl+V as this will increase the rom size).

Next offset is 08083119. Use goto or Ctrl+G to get to that offset in the rom. Do the same thing, overwrite all the bytes. Do this for all of these entries.

Then you compile that script that was provided taking note of its offset as Darthatron says. Xse will give you the option to copy this offset, do it and paste it somewhere.

On the final step you have to replace a pointer at 08083100. Once again use goto in HxD to get to that address. Look at the first four bytes that you see. It will be ?? ?? ?? 08. I'm not sure what the exact values will be but that fourth byte should be '08'. That means it is a pointer. Take the pointer that you copied from Xse earlier and reverse it. For eg. if your pointer was 01 02 03, you must make it 03 02 01. Enter these values where I put '??' so that at 08083100 your values will be 03 02 01 08 (or whatever your offset is).
I hope this helps you :)

I tried to goto the offset as you directed but it brings up an error message

http://file:///C:/Users/Obioma/Pictures/Capture4.PNG

Phenom2122
July 2nd, 2014, 02:28 PM
My apologies, remove the first '08' from the front of your pointer and it should work. That 08 has to do with the location in the rom as a game, hxd is not a rom editor.

Creator135
July 3rd, 2014, 10:31 AM
My apologies, remove the first '08' from the front of your pointer and it should work. That 08 has to do with the location in the rom as a game, hxd is not a rom editor.

Thanks. I added all of the bytes however, i'm not sure about the compiled script part. What should i do there because i'm confused.

Phenom2122
July 3rd, 2014, 11:00 AM
Thanks. I added all of the bytes however, i'm not sure about the compiled script part. What should i do there because i'm confused.

Well you could compile it with XSE, I suggest you download it and look through some of the tutorials on this site. But I see that a compiled version of the script has already been provided. So you're going to need HxD again. Where he says

"Here's a compiled version of the script for anyone having problems:"

You need to copy and paste these hex numbers into free space in your rom. Anywhere there are enough 'FF' bytes. There is a tool on this forum somewhere for finding free space but in this case it is such a small amount of bytes that we don't need it.

So once you've copied this into a FF byte area of your choice, put the cursor at the beginning of your new values. Look in the bottom left corner of HxD, that will tell you your current address in the rom. Write that number down somewhere.

Now for the final step go to 083100. Here you will need to enter that number that you wrote down earlier. However, it needs to reverse.
Just as an example, say your number was E01414. First, split it into bytes so that it looks like E0 14 14. Now put those in reverse order 14 14 E0.
Those are the numbers that you enter at 083100, your own numbers of course. Make sure the very next byte is '08'.

That should be it.

Creator135
July 3rd, 2014, 12:57 PM
Well you could compile it with XSE, I suggest you download it and look through some of the tutorials on this site. But I see that a compiled version of the script has already been provided. So you're going to need HxD again. Where he says

"Here's a compiled version of the script for anyone having problems:"

You need to copy and paste these hex numbers into free space in your rom. Anywhere there are enough 'FF' bytes. There is a tool on this forum somewhere for finding free space but in this case it is such a small amount of bytes that we don't need it.

So once you've copied this into a FF byte area of your choice, put the cursor at the beginning of your new values. Look in the bottom left corner of HxD, that will tell you your current address in the rom. Write that number down somewhere.

Now for the final step go to 083100. Here you will need to enter that number that you wrote down earlier. However, it needs to reverse.
Just as an example, say your number was E01414. First, split it into bytes so that it looks like E0 14 14. Now put those in reverse order 14 14 E0.
Those are the numbers that you enter at 083100, your own numbers of course. Make sure the very next byte is '08'.

That should be it.


Thank you so much. I've now taken a step further into ROM Hacking.

Phenom2122
July 3rd, 2014, 01:32 PM
I'm glad I could help translate it lol. Now that you've done this, it'll come more naturally every time :)

hackstar
August 4th, 2014, 11:31 PM
Cool! anyway will this work for emerald too?

Dark Sneasel
August 5th, 2014, 12:33 AM
Cool! anyway will this work for emerald too?

No, it will not. The offsets are different, and as of now, no one has achieved it on Emerald, at least what I know from.

Mustachemon
August 9th, 2014, 06:15 PM
Well you could compile it with XSE, I suggest you download it and look through some of the tutorials on this site. But I see that a compiled version of the script has already been provided. So you're going to need HxD again. Where he says

"Here's a compiled version of the script for anyone having problems:"

You need to copy and paste these hex numbers into free space in your rom. Anywhere there are enough 'FF' bytes. There is a tool on this forum somewhere for finding free space but in this case it is such a small amount of bytes that we don't need it.

So once you've copied this into a FF byte area of your choice, put the cursor at the beginning of your new values. Look in the bottom left corner of HxD, that will tell you your current address in the rom. Write that number down somewhere.

Now for the final step go to 083100. Here you will need to enter that number that you wrote down earlier. However, it needs to reverse.
Just as an example, say your number was E01414. First, split it into bytes so that it looks like E0 14 14. Now put those in reverse order 14 14 E0.
Those are the numbers that you enter at 083100, your own numbers of course. Make sure the very next byte is '08'.

That should be it.

I've done this several times with different offsets and even with a clear rom, but it won't work! When repel runs out, it'll flash a text box with nothing written on it for less that a second. That's all that happens.

EDIT: I was using Ctrl+V instead of Ctrl+B on HxD.

Update: I changed all the bytes and added the compiled part and then repointed, but now repel will run off and nothing will happen. I also have no idea what I'm doing wrong, can somebody help? :(

I've tried using a clear rom, but it doesn't work. Clearly something I'm doing is wrong.

EDIT: Now I've done it! I feel like a million bucks for figuring this out! Hahaha. For some odd reason, the compiled code that the OP provided didn't work at all, but compiling the script with XSE did. I've also learned how to use XSE, which is pretty cool. If you're reading this, don't forget that you also have to change the pointer located at 083100 on a Hex Editor. Anyway, thanks for the sweet code! :P

hydrostorm
August 29th, 2014, 05:15 AM
Hi. Please don't close this thread/ban/warn me for reviving something this old. I'm a newbie to ROM-Hacking, and I'm pretty sure I followed all of the instructions properly, however, after taking 100 steps, it doesn't ask me if I want to use another nor that it expired. Please respond ASAP. Thanks in advance.

(P.S.) By "doesn't work" I mean another multichoice box shows up (actually 2 of them), instead of the expected Yes/No with the message thing.

EDIT: IMAGES -(IMGUR.COM)
/ahxTU0z (1st Image; note the small multichoice box on the lower right hand corner)
/tjrODMw (2nd Image; the second screen of the multichoice, opened right after selecting any of the two options from the first)
/cQZUDLt (3rd Image; reuse of repel after exiting multichoice boxes, eternal freeze)

Artemis64
August 30th, 2014, 06:19 AM
Can this be ported to Emerald? The pointer is at 0xB58C0

anonyboy
October 11th, 2014, 07:32 AM
Hi, i've tried to insert this system but after my repel maxes out instead of asking me for another one it prompts the slot machine game. what should i do?

Dark Sneasel
October 13th, 2014, 01:40 PM
For emerald:

Alright, so with the help of Le Pug and Touched, I've made a very, very ratchet system for it. The repel's effect wore off script offset is at 2A4B2A, so you can repoint it or just goto @pointer it...
Anyways, of course, this would be much better with a multichoice, but just for testing I did yes/no boxes. Anyways, here it is, you don't need to credit us or anything..

#dynamic 0xE40000
#org @start
lockall
msgbox @woreoff 0x6
msgbox @1 0x5
compare 0x800D 0x1
if 0x1 goto @Repel
msgbox @2 0x5
compare 0x800D 0x1
if 0x1 goto @Super
msgbox @3 0x5
compare 0x800D 0x1
if 0x1 goto @Max
releaseall
end

#org @Repel
checkitem 0x56 0x1
compare 0x800D 0x1
if 0x4 goto @rp
msgbox @notenough 0x6
releaseall
end

#org @notenough
= You don't have enough.

#org @rp
sound 0x2F
msgbox @usedr MSG_SIGN
removeitem 0x56 0x1
setvar 0x4021 100
release
end

#org @usedr
= [player] used a Repel.

#org @1
= Use a Repel?

#org @2
= Use a Super Repel?

#org @3
= Use a Max Repel?

#org @Super
checkitem 0x53 0x1
compare 0x800D 0x1
if 0x4 goto @sp
msgbox @notenough 0x6
releaseall
end

#org @sp
sound 0x2F
msgbox @useds MSG_SIGN
removeitem 0x53 0x1
setvar 0x4021 200
releaseall
end

#org @useds
= [player] used a Super Repel.

#org @Max
checkitem 0x54 0x1
compare 0x800D 0x1
if 0x4 goto @mp
msgbox @notenough 0x6
releaseall
end

#org @mp
sound 0x2F
msgbox @usedm MSG_SIGN
removeitem 0x54 0x1
setvar 0x4021 250
release
end

#org @usedm
= [player] used a Max Repel.

#org @woreoff
= The Repel's effect wore off[.]

pokemontutorialTV
October 13th, 2014, 03:40 PM
@Dark Sneasel
Steps are in HEX, so the line
setvar 0x4021 100
is currently wrong and produces 256 steps-repel.

Nice to see someone else dont mess up the hole bag routine :) Thats the better soulotion i guess to ;)

Dark Sneasel
October 13th, 2014, 03:53 PM
@Dark Sneasel
Steps are in HEX, so the line

is currently wrong and produces 256 steps-repel.

Nice to see someone else dont mess up the hole bag routine :) Thats the better soulotion i guess to ;)

In the newest XSE you don't need to put 0x in front of a number and it won't be hex.

HidoranBlaze
October 13th, 2014, 04:10 PM
@Dark Sneasel
Steps are in HEX, so the line

is currently wrong and produces 256 steps-repel.

Nice to see someone else dont mess up the hole bag routine :) Thats the better soulotion i guess to ;) You know, you keep saying Darthatron's routine sucks. Why don't you share your routine with us? You have more than 15 posts now, I believe.

pokemontutorialTV
October 14th, 2014, 02:52 AM
You know, you keep saying Darthatron's routine sucks. Why don't you share your routine with us? You have more than 15 posts now, I believe.
Because DarkSneasel posted the soulution? If you setvar 0x4021 0x9, repel work for 9 steps. Some Routines do "backgroundwork" and those stepcounters are some of those.
You can compare also this var, for example, for an quest or sth. else like this:


compare 0x4021 25
if 0x1 goto @operdoor
//doorclosed
end

@opendoor
//open secret door
end

HidoranBlaze
October 14th, 2014, 09:06 AM
Because DarkSneasel posted the soulution? If you setvar 0x4021 0x9, repel work for 9 steps. Some Routines do "backgroundwork" and those stepcounters are some of those.
You can compare also this var, for example, for an quest or sth. else like this:


compare 0x4021 25
if 0x1 goto @operdoor
//doorclosed
end

@opendoor
//open secret door
end
DarkSneasel's script doesn't work exactly like BW's repels though. BW automatically uses the type of repel you used last time. You have to manually choose the repel you want to use though, in DarkSneasel's case. So it's, like DarkSneasel said, a ratchet solution.
(I still think this is cool, but an ASM port of Darthatron's repel routine would be better though)

Dark Sneasel
October 14th, 2014, 02:48 PM
Wait, there's an emerald item ASM hack? So can't we just make one var, and give it a different value depending on the repel they use, then do the repel effect, and then after the repel wears off, compare the var?

edit: it appears that ASM doesn't work, and big daddy Touched is working on some items stuff ;)

pokemontutorialTV
October 15th, 2014, 03:33 AM
DarkSneasel's script doesn't work exactly like BW's repels though. BW automatically uses the type of repel you used last time. You have to manually choose the repel you want to use though, in DarkSneasel's case. So it's, like DarkSneasel said, a ratchet solution.
(I still think this is cool, but an ASM port of Darthatron's repel routine would be better though)

Why the f*** ASM, if this solution dont mess up your hole bag routines? I dont really understand. If you want to choose the repel, implement a multichoice-box. That is the best soultion i think.

Lance32497
October 19th, 2014, 10:34 PM
What about super repel and Max repel?

Lance32497
October 20th, 2014, 01:14 AM
https://fbcdn-photos-f-a.akamaihd.net/hphotos-ak-xpa1/v/t1.0-0/544929_731667556901303_6606515769621833474_n.jpg?oh=e21d64cd097c046c927f9bfaa514d506&oe=54EBA6AD&__gda__=1425178671_dab0b6d7a6299809be273c268e739f17

I DID IT! ! !

But wait?

After I pressed YES, It restarts!!

Hpw can I fix that? Also The callasm offset given by dartharton, Do I need to change that or just copy that?

Patrick74161
October 30th, 2014, 03:32 PM
That's Awesome! I Don't Play around with Scripting much...Not a stronghold for me. Maybe someone can make this into an ips Patch for Everyone to enjoy!

HidoranBlaze
October 31st, 2014, 07:23 AM
That's Awesome! I Don't Play around with Scripting much...Not a stronghold for me. Maybe someone can make this into an ips Patch for Everyone to enjoy! 9 times out of 10, you're not going to get an ips patch in the research forums. I suggest learning how to compile scripts and how to use a hex editor, since this isn't really hard to insert if you know how to do those two things.

Patrick74161
October 31st, 2014, 04:07 PM
9 times out of 10, you're not going to get an ips patch in the research forums. I suggest learning how to compile scripts and how to use a hex editor, since this isn't really hard to insert if you know how to do those two things.
Yeah, I Had Realized that when i saw Non ips stuff in the research forms here. I started to learn how to insert a hex editor... Thanks!

thiaguinhohp
October 31st, 2014, 10:02 PM
Why people dont do amazing things like this for Emerald ??? Emerald got battle frontier so its much better than fire red. Wake up hackers :o