Binary Hack Research & DevelopmentGot a well-founded knack with your binary Pokémon hacks? Love reverse-engineering them? For the traditional Pokémon ROM hacker, this is the spot for polling and gathering your ideas, and then implementing them! Share your hypothesis, get ideas from others, and collaborate to create!
I have a little problem with this sleep clause. As the post requires, I need to put battle by turn routine, the table pointer, and the sleep clause routine in my rom. So I put these in the following addresses:
1. Battle by turn routine: 850000
2. BbT table: 850040 (I already put at the first entry the sleep clause routine)
3. Sleep clause routine: 800050
Spoiler:
Then I insert 00 48 00 47 41 00 85 08 to 0x13cb0
Spoiler:
So, I'm about to test it but I'm not able to because whenever I battle a trainer/wild encountered pokemon, it freezes or restarts after the first round. Also, there are some cases of resetting when I encounter wild pokemon.
I direly in need of these sleeping clause. Btw, I used MrDollSteak Rom base and JPAN's fire red Hacked Engine.
Thanks in advance!
I think you forgot the 08 prefix in the BBT table when compiling the BBT routine.
I've fixed it. My brain went IDA mode when I wrote that, so accidentally did lsls instead of lsl, ect. :P
Alright, now I don't know what I've done wrong. I just compiled your newly changed routine and for somewhat reason, the game freezes on my player's first step.
Alright, now I don't know what I've done wrong. I just compiled your newly changed routine and for somewhat reason, the game freezes on my player's first step.
And then, I created an NPC that sets the flag 0x2F8. And when I go to battle, boom! Freezes after the first round.
I made a small edit to the original step based HP thing. Try it again. As for the battle by turn thing, there could be a lot of reasons. I can't check without first looking at your ROM. Anyways, I'm going to go take another look at the battle by turn routine (even though it was working for me) it seems I may have broken it during transfer. I'll look at it and get back to you.
I made a small edit to the original step based HP thing. Try it again. As for the battle by turn thing, there could be a lot of reasons. I can't check without first looking at your ROM. Anyways, I'm going to go take another look at the battle by turn routine (even though it was working for me) it seems I may have broken it during transfer. I'll look at it and get back to you.
Did it, still to no avail. It freezes on the first step I take whenever I have a Pokemon with damaged HP. Also, I'm not sure if this helps in any way, but my compiler actually says this everytime I compile your HP Regen per Step, BBT and BBT Addon HP Regen routines:
Code:
Warning: end of the file not at end of the line; newline inserted
P.S. Sorry for the trouble you're going through because of me and thank you for your hard work. :)
Did it, still to no avail. It freezes on the first step I take whenever I have a Pokemon with damaged HP. Also, I'm not sure if this helps in any way, but my compiler actually says this everytime I compile your HP Regen per Step, BBT and BBT Addon HP Regen routines:
Code:
Warning: end of the file not at end of the line; newline inserted
P.S. Sorry for the trouble you're going through because of me and thank you for your hard work. :)
That warning just means there's no empty line at the end of the file. It doesn't stop compilation or anything, it's just something it looks for that you missed.
Alright, hopefully it's okay if I make a request here for FireRed? I'm not sure if this would be considered ASM, but would there be a way to change attacks as you gain more badges? I'm mostly thinking of making HMs more useful here, or making them less useful at first but better later for hacks where you need Surf early on or something. Basically what I'm asking is, would there be a way to change attacks the more badges you have?
For example, let's take Rock Smash. If you have zero to two badges, it's standard- 40 power, 50% chance of lowering defense. If you have three to six badges, however, it becomes 70 power with a 30% chance to lower defense. From seven to eight badges, it's 90 power with a 10% chance of lowering defense. Would there be a way to do this?
Hey, let me start this post by saying thanks! Awesome thread! I already found a bunch of things I will be adding to my game!
I am trying to make a game that revolves around the starter pokémon. I was gonna do it with an Emerald ROM but there seems to be a lot more support for Fire Red so I guess I'll do it with Fire Red instead! There are some features I'd like to put in the game but I have no idea how to do it, so I am hereby humbly requesting help.
The two most important ones are that the starter pokémon should not be able to be stored in the PC or daycare, and as soon as it loses all of its HP the battle should be lost.
Are these two things possible to do?
Then it'd also be cool if the starter pokémon was forced to always be the first to enter battle, as if it's always the first in the party.
And if switching pokémon would be affected by the pokémons speed stat (so a pokémon can be attacked before it has the chance to switch out).
And then there's also some other things I'd like to put in my game but I'll start by asking for just these :p Don't want to seem too demanding. And by the time I'm done experimenting with routines I might have learned how to do it myself (since they're kind of related to the ones I just requested).
Alright, hopefully it's okay if I make a request here for FireRed? I'm not sure if this would be considered ASM, but would there be a way to change attacks as you gain more badges? I'm mostly thinking of making HMs more useful here, or making them less useful at first but better later for hacks where you need Surf early on or something. Basically what I'm asking is, would there be a way to change attacks the more badges you have?
For example, let's take Rock Smash. If you have zero to two badges, it's standard- 40 power, 50% chance of lowering defense. If you have three to six badges, however, it becomes 70 power with a 30% chance to lower defense. From seven to eight badges, it's 90 power with a 10% chance of lowering defense. Would there be a way to do this?
There is definitely away to change the base power and effect accuracy in the battles themselves. You just need to add checks in the damage and effect roll routines, for the move, followed by a simple flag check.
That being said, getting these changes to be reflected in the move descriptions would be more difficult.
Alright, hopefully it's okay if I make a request here for FireRed? I'm not sure if this would be considered ASM, but would there be a way to change attacks as you gain more badges? I'm mostly thinking of making HMs more useful here, or making them less useful at first but better later for hacks where you need Surf early on or something. Basically what I'm asking is, would there be a way to change attacks the more badges you have?
For example, let's take Rock Smash. If you have zero to two badges, it's standard- 40 power, 50% chance of lowering defense. If you have three to six badges, however, it becomes 70 power with a 30% chance to lower defense. From seven to eight badges, it's 90 power with a 10% chance of lowering defense. Would there be a way to do this?
If you had a stalk of my VM conversation with FBI you can pick out the bits of advice he gave me. I was trying to increase the power of Cut depending on the number of badges you had.
I got it working in battle, but couldn't get the descriptions to update (and MrDollSteak mentioned). I don't actually know which routine I used in the end ;-; I got frustrated and threw them all in one folder with pretty lackluster names :P.
If you had a stalk of my VM conversation with FBI you can pick out the bits of advice he gave me. I was trying to increase the power of Cut depending on the number of badges you had.
I got it working in battle, but couldn't get the descriptions to update (and MrDollSteak mentioned). I don't actually know which routine I used in the end ;-; I got frustrated and threw them all in one folder with pretty lackluster names :P.
You could have the power be "--" and the description include "power depends on number of badges" or something.
__________________
A Pokemon that is discriminated!
Support squirtle and make it everyone's favourite.
Did it, still to no avail. It freezes on the first step I take whenever I have a Pokemon with damaged HP. Also, I'm not sure if this helps in any way, but my compiler actually says this everytime I compile your HP Regen per Step, BBT and BBT Addon HP Regen routines:
Code:
Warning: end of the file not at end of the line; newline inserted
P.S. Sorry for the trouble you're going through because of me and thank you for your hard work. :)
At this point I'm not sure if it's the routine or a mistake on your part. I'll have to debug the whole thing soon, normally a test these things to make sure it's right. These days I've been getting quite cocky with myself and just posting them after a first attempt. I apologize about that!
@the guy who was wondering about BBT: I'll look at it soon too
Quote:
Originally Posted by Z-nogyroP
Alright, hopefully it's okay if I make a request here for FireRed? I'm not sure if this would be considered ASM, but would there be a way to change attacks as you gain more badges? I'm mostly thinking of making HMs more useful here, or making them less useful at first but better later for hacks where you need Surf early on or something. Basically what I'm asking is, would there be a way to change attacks the more badges you have?
For example, let's take Rock Smash. If you have zero to two badges, it's standard- 40 power, 50% chance of lowering defense. If you have three to six badges, however, it becomes 70 power with a 30% chance to lower defense. From seven to eight badges, it's 90 power with a 10% chance of lowering defense. Would there be a way to do this?
The implementations would be kind of specific for each hack (in terms of what powers and such). Actually making it happen is a pretty simple hook. You should be able to do this after reading my ASM tutorial and upto 5/10-ish.
I could post the routine, but it wouldn't be very scalable unless I complicated it.
Quote:
Originally Posted by Adnihil
Hey, let me start this post by saying thanks! Awesome thread! I already found a bunch of things I will be adding to my game!
I am trying to make a game that revolves around the starter pokémon. I was gonna do it with an Emerald ROM but there seems to be a lot more support for Fire Red so I guess I'll do it with Fire Red instead! There are some features I'd like to put in the game but I have no idea how to do it, so I am hereby humbly requesting help.
The two most important ones are that the starter pokémon should not be able to be stored in the PC or daycare, and as soon as it loses all of its HP the battle should be lost.
Are these two things possible to do?
Then it'd also be cool if the starter pokémon was forced to always be the first to enter battle, as if it's always the first in the party.
And if switching pokémon would be affected by the pokémons speed stat (so a pokémon can be attacked before it has the chance to switch out).
And then there's also some other things I'd like to put in my game but I'll start by asking for just these :p Don't want to seem too demanding. And by the time I'm done experimenting with routines I might have learned how to do it myself (since they're kind of related to the ones I just requested).
Thanks in advance!
I've already done your first request, it's somewhere in this thread. I haven't been updating the first post because I've been putting it off :P
Unfortunately, I don't really like doing battle routines :/
The switching after being attacked may actually be a little hard, but if you ask someone who's worked on moves like baton pass, maybe they can help.
Quote:
Originally Posted by MrDollSteak
There is definitely away to change the base power and effect accuracy in the battles themselves. You just need to add checks in the damage and effect roll routines, for the move, followed by a simple flag check.
That being said, getting these changes to be reflected in the move descriptions would be more difficult.
It's the same difficulty to set the move descriptions number shown :c
The text for the damage number is still derived from the table in each instance, so if you hook after that derivation, you can adjust it in either case.
Quote:
Originally Posted by Magic
If you had a stalk of my VM conversation with FBI you can pick out the bits of advice he gave me. I was trying to increase the power of Cut depending on the number of badges you had.
I got it working in battle, but couldn't get the descriptions to update (and MrDollSteak mentioned). I don't actually know which routine I used in the end ;-; I got frustrated and threw them all in one folder with pretty lackluster names :P.
Maybe after the workshops you can!
Quote:
Originally Posted by Christos
You could have the power be "--" and the description include "power depends on number of badges" or something.
About that, I feel very bad shutting down all of your suggestions, but that seems like a lot of work for a feature that's not even that great. There's already a large amount of space in the PC, and I'm sure to expand it will take hours and hours of work :/
Capturing Opponent's Pokemon:
So I was working on making trainer's Pokemon capture-able, and it does this check to see if the Pokemon is capturable, and if it was it'd check to see if it's a trainer's Pokemon. Well, I disabled the check and was successful in capturing a Pokemon that didn't belong to me :P
Sadly, the Pokemon turned into a bad egg the moment I caught it. The only solution to this was to edit the checksum so it'd make sense again, however that would be a lot of work, and honestly the checksum is calculated relatively frequently. So upon investigation (mostly by Shinyquagsire, thanks for the deduction detective!) we were able to determine the egg was turning bad because the checksum was no longer valid with the player's trainer ID. So, after diving through the code a bit I found the part of the code that overwrote the trainer ID with the player ID. Then it was a matter of disabling it!
To insert:
insert the following bytes at the following offsets:
0x2D496: E0 E0
0x40B36: 00 00 00 00 00
So there's no on/off switch for this routine? I want to mimic the pokemon coliseum feature of being able to catch trainer's shadow pokemon. If I can't make it specific to just the shadow pokemon that's fine, but I'd at least need to be able to only make trainer's pokemon catchable during the battles with trainers who have shadow pokemon.
So there's no on/off switch for this routine? I want to mimic the pokemon coliseum feature of being able to catch trainer's shadow pokemon. If I can't make it specific to just the shadow pokemon that's fine, but I'd at least need to be able to only make trainer's pokemon catchable during the battles with trainers who have shadow pokemon.
Heaps of ways to go about this, just think creatively. FBI's put up a snag ball routine, all you need to do is make the ball only activate on shadow pokemon. That can be done with comparing index numbers through a table etc.
I think you forgot the 08 prefix in the BBT table when compiling the BBT routine.
Thanks! I've made it work but it seems to end the battle in the player's favor after putting two of the opp. pokemon to sleep? Was the code is purposed to behave that way?
Thanks! I've made it work but it seems to end the battle in the player's favor after putting two of the opp. pokemon to sleep? Was the code is purposed to behave that way?
I had to end it in the player's favor, or it would result in a whiteout. What you can do is read the byte at 02023E8A and if it's 0x1 then the player won by fair means, else they lost/sleepclause happened.
i'm not 100% sure if this requires asm, but is there a way to temporarily change what pokemon appear in the wild? i'm thinking something like Mr. Backlot and the trophy garden from Diamond/Pearl/Platinum
Heaps of ways to go about this, just think creatively. FBI's put up a snag ball routine, all you need to do is make the ball only activate on shadow pokemon. That can be done with comparing index numbers through a table etc.
Thanks for the suggestion. I'll probably do this. I just didn't necessarily feel like having to make it a new ball because it wasn't that way in Colosseum and I'd have to think up a way for the player to get them that makes sense. It should be fine though.
Quote:
Originally Posted by PurpleOrange
i'm not 100% sure if this requires asm, but is there a way to temporarily change what pokemon appear in the wild? i'm thinking something like Mr. Backlot and the trophy garden from Diamond/Pearl/Platinum
@FBI Agent - Thanks really. Hope you finish it soon. :)
Oh and a few questions.
1. Does the PSS Addon: Experience Gains have an on/off switch?
2. (Even though it's not yet fixed, I believe) Does the BBT Addon: HP-Regen also regenerate the opponent's HP? Because it's kinda unfair if it doesn't. :)
3. And lastly, I don't know if this involves ASM (if not, ignore it) but can we make it so that Trainers' Pokemon get levels according to the average level of your party (yes, as if it works with the Average Party Level routine)?
I've already done your first request, it's somewhere in this thread. I haven't been updating the first post because I've been putting it off :P
Oh, cool! Well, thanks :p
Edit: Hey, I scanned the thread but couldn't seem to find it. Do you remember what you called it or a sentence from your post so I can search for it in an other way?
Also, I just realized that there is a simpler way to achieve the same goal; Just remove the option to change the order of your Pokémon.
Do you think you could do this? (I assume this must be a hell of a lot easier to do since it's just removing a feature instead of adding them, but I might be completely wrong on this.)
Spoiler:
You see, this way the starter Pokémon will always be the first in the party (if it's unable to be stored in the PC or daycare it'll be impossible to switch it from place) and it will always go into battle first. Not being able to change the order of the rest of your Pokémon would be a problem for most games but not for mine, as the player will white out when the starter faints, so the order of the other Pokémon doesn't matter.
Is there any easier way to disable the bag option during battle in Fire red? Like another asm besides bag deleter/restorer or hex editing to permanently disable it? Thanks! :D
First of all, I need to mention that this routine works off percentage increases and decreases. So if you're planning to go from level 1 to 100 all in one go for 6 Pokemon it will take around 5 seconds to increment about 35 million experience points. The reason for the percentage increase is so that we don't go over. This was a pain to test, as in some occasions the percentage between levels 1-2 would be enough to set negative exp, and sometimes the levels 99 -100 would set exp over 100...it was just a huge pain. It now works off a lookup table and is quite spiffy now :3
How to insert:
Compile and insert into free space the following routine:
I can't seem to get the BattleByMove compiled. I'm getting an error message saying "bad instruction 'main'"at line 6, and also one at line 47 "junk at end of line, first unrecognized character is 0"