• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Adding New Moves and Creating New Move Effects

MrDollSteak

Formerly known as 11bayerf1
858
Posts
15
Years
Sadly, that's the only way I can think of, I have no idea how to deal with abilities directly.

EDIT:
Hell yeah! I searched the IDs of sound-based moves with a hex editor, I found them in a nicely ordered table located at 0x08250104.
This is the table:
2D 00 2E 00 2F 00 30 00 67 00 AD 00 FD 00 3F 01 40 01 30 01 FF FF 00 00
(FF FF 00 00 is probably the part that tells it's the end of the table?? I'm not sure about that, but I kept it just for safety.)
I repointed that table and extended it (by adding Bubble and SmokeScreen as sound-based moves in it) and it worked!!!
By the way, Heal Bell and Perish Song are not present in this table, their respective effects checks for Soundprood. I think it is because these 2 moves target the user, which makes sense.

That's fascinating! Brilliant work. This is actually incredibly useful. I think if theres a unique move that doesn't share it's effect, and happens to be sound based. It would make more sense to put it there. But this table is fantastic for say Bug Buzz which shares its ability with multiple moves. Great work Kurapika!

EDIT: After some testing I've found it does indeed work. However it doesn't work 100% with the new moves.The moves don't play and it says Soundproof Blocked which is fine, however, instead of displaying the new move names correctly it spouts hex numbers. I'll try and find the thing that causes this. Other than that it seems fine.
 
Last edited:
946
Posts
11
Years
Hi!
To fix that issue of Soundproof VS new moves go to 0x080D7E96 you will find the limiter (B1 20 40 00 81 42) that this tutorial suggested us to overwrite with 00 00 00 00 00 00. I am not sure, but, apparently, we only need to replace the first byte B1 with FF. (B1 = 177 in decimal. and 177 multiplied by 2 = 354. In Gen3 we have 354 moves)

Anyway, replacing that limiter will fix the issue with Soundproof VS new moves along with Disable VS new moves.

I discovered that when I was trying to figure out how to extend Metronome to new moves. I partially succeeded in that:
Metronome uses an ASM code located at 0x08029754, in that code I found a byte = B1, I replaced it with FF and now Metronome is including the new moves too. (FF = 255 in decimal. 255 multiplied by 2 = 511. The maximum of moves we can have is 511 and I am using them all.)
If you are using only, say, 400 moves, then replace B1 with C8 instead of FF. (C8 is 200 in decimal. 200 multiplied by 2 = 400.)

Now, Metronome is including new moves, but there are some moves that Metronome does not select (such us itself, Sketch, Mimic, ...etc) those moves are gathered in a list located at 0x082507E8:
Spoiler:

I tried repointing and extending this list but it won't work, I think the only way to fix it is to completely hack Metronome's ASM code... But I don't have enough skill for that. :/
 
Last edited:

MrDollSteak

Formerly known as 11bayerf1
858
Posts
15
Years
Hi!
To fix that issue of Soundproof VS new moves go to 0x080D7E96 you will find the limiter (B1 20 40 00 81 42) that this tutorial suggested us to overwrite with 00 00 00 00 00 00. I am not sure, but, apparently, we only need to replace the first byte B1 with FF. (B1 = 177 in decimal. and 177 multiplied by 2 = 354. In Gen3 we have 354 moves)

Anyway, replacing that limiter will fix the issue with Soundproof VS new moves along with Disable VS new moves.

I discovered that when I was trying to figure out how to extend Metronome to new moves. I partially succeeded in that:
Metronome uses an ASM code located at 0x08029754, in that code I found a byte = B1, I replaced it with FF and now Metronome is including the new moves too. (FF = 255 in decimal. 255 multiplied by 2 = 511. The maximum of moves we can have is 511 and I am using them all.)
If you are using only, say, 400 moves, then replace B1 with C8 instead of FF. (C8 is 200 in decimal. 200 multiplied by 2 = 400.)

Now, Metronome is including new moves, but there are some moves that Metronome does not select (such us itself, Sketch, Mimic, ...etc) those moves are gathered in a list located at 0x082507E8:
Spoiler:

I tried repointing and extending this list but it won't work, I think the only way to fix it is to completely hack Metronome's ASM code... But I don't have enough skill for that. :/

That's fantastic! You've been very busy. I think in the case of Metronome, that's not a huge problem, as most of the new moves that we can create are generally attack or stat-up moves. So they don't really need to be added to the banned list of moves.
 
946
Posts
11
Years
Yeah, actually, for Metronome, instead of bothering understanding its ASM, it is far more simple to put the banned moves at the bottom of the list of moves and then exclude them from Metronome's range.

Anyway, I've been working on Acrobatics' effect:
Spoiler:

It takes too much time and space to make it in hex, but it is much more simple and shorter in ASM. The problem is that there is no callasm in battle scripts... the only way I made it work is by overwriting another command's ASM code and calling that command in Acrobatics' effect...
Does anyone please know if it is possible to call ASM without having to alter the existing commands??

Can you told me what is pointer of Attacks in Pokemon Ruby?
Here:
Spoiler:
 
Last edited:

LCCoolJ95

Limited Capacity
638
Posts
14
Years
Where is Sprites Data? I want add more sprites to my game. And I do not know where it is. I want resize Trainer Sprites bank.
Dude, wrong thread. This is not a sprite thread.

Can you told me what is pointer of Attacks in Pokemon Ruby?
Look for my post. I found the animation table for Ruby. Even though no one cared to acknowledge me for that...god...
 
Last edited:

pawell6

The truthseeker
50
Posts
14
Years
Yeah, actually, for Metronome, instead of bothering understanding its ASM, it is far more simple to put the banned moves at the bottom of the list of moves and then exclude them from Metronome's range.

Anyway, I've been working on Acrobatics' effect:
Spoiler:

It takes too much time and space to make it in hex, but it is much more simple and shorter in ASM. The problem is that there is no callasm in battle scripts... the only way I made it work is by overwriting another command's ASM code and calling that command in Acrobatics' effect...
Does anyone please know if it is possible to call ASM without having to alter the existing commands??

Hmm, I made acrobatics effect using BSP:
#dynamic 0x(offset)
#include items.bsh
#org @start
jumpifhalfword 0x1 0x2023c12 0x0 0x1d6900
setbyte damagemultiplier 0x2
goto 0x1d6900
 
946
Posts
11
Years
@pawel, Your code checks only the held item at slot1, which is Player's 1st Pokémon. If that Pokémon is holding an item, Acrobatics will deal normal damage even tough if it is used by a different Pokémon (foe Pokémon, Player's 2nd Pokémon and 2nd foe Pokémon).

I can't use BSP on my computer... But I think the full code of Acrobatics wil be something like this:
Spoiler:
 

pawell6

The truthseeker
50
Posts
14
Years
@pawel, Your code checks only the held item at slot1, which is Player's 1st Pokémon. If that Pokémon is holding an item, Acrobatics will deal normal damage even tough if it is used by a different Pokémon (foe Pokémon, Player's 2nd Pokémon and 2nd foe Pokémon).

I can't use BSP on my computer... But I think the full code of Acrobatics wil be something like this:
Spoiler:

Thanks for your answer. I've got 2 questions. So you're trying to say that if user bank adress (0x02023D6B) has value 0x0 then it refers to player first pokemon , value 0x1 refers to opponent pokemon, value 0x2 refers to partner pokemon and value 0x3 refers to opponent's partner pokemon?

And where did you find adresses 0x02023D1A, 0x02023C6A, 0x02023CC2? I only found 0x02023C12 using JPAN thread about battle scripts.

Anyway I also had some problems with newer verion of BSP, so I'm using older version. I could send it to you.
 
Last edited:
946
Posts
11
Years
@pawel, yeah, you are right. I found the other pointers by adding 0x58 everytime since the size of data for each one one of the 4 pokemon is 0x58 (88 bytes). All of this is mentioned by JPAN in his research about battle scripts.
Thank you but older versions of BSP don't work for me.
Finally, Head Smack's 1/2 recoil:
Spoiler:

It does not work graphically perfectly if the user faints from recoil. Fixable if you are good at making custom animations.
 

pawell6

The truthseeker
50
Posts
14
Years
@Kurapika, I did the same you wrote I've got the same adresses, thank you very much, everything is clear now :)

@Jambo51, The problem is when i try to open the newest BSP it start at all. When I copy BattleScriptPro.Ini from older version into data folder program starts normally, but then it have problem with loading my rom (with extended table of moves), program says: "There was a problem parsing the pointer from the rom". Then I paste the newest BattleScriptPro.Ini and the program works fine, but it's annoying. So most of the time I'm using older version.
 

Enigmatic Emolga

abandoned account, pls delete if seen
30
Posts
11
Years
@pawell6 I followed your custom description tutorial on post #48, but the following happens:

In the PGE, I enter the description, change the offset to an empty one from Karate Chop's, hit 'Repoint', and it goes blank. Then, when I reload the attack, it switched right back to Karate Chop's offset and description! How can I properly change this in PGE?

EDIT: Found out about the description thing. It was the whole credits thing. And PGE's repoint button is useless...back to hex...

EDIT2: Okay, got everything done, except that Roar of Time isn't playing along... It keeps revering back to Normal type from Dragon! How can I change the type with hex so it switches to Dragon and STAYS at Dragon?
 
Last edited:
24
Posts
11
Years
  • Seen Dec 21, 2016
I'm having an issue in where the new moves do not show up in PGE (It starts at Tackle and ends of Doom Desire). I probably did something stupid, but does anybody have any idea why they are not showing up?

EDIT: I'm just going to shoot myself now, I cannot believe I actually made that mistake.
 
Last edited:

LCCoolJ95

Limited Capacity
638
Posts
14
Years
I'm having an issue in where the new moves do not show up in PGE (It starts at Tackle and ends of Doom Desire). I probably did something stupid, but does anybody have any idea why they are not showing up?

EDIT: I'm just going to shoot myself now, I cannot believe I actually made that mistake.
Did you edit the roms.ini?
 
Back
Top