• Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
  • Ever thought it'd be cool to have your art, writing, or challenge runs featured on PokéCommunity? Click here for info - we'd love to spotlight your work!
  • Our weekly protagonist poll is now up! Vote for your favorite Trading Card Game 2 protagonist in the poll by clicking here.
  • 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.

Research: Chaos Rush's 649 on Ruby Project

Status
Not open for further replies.
Actually - we were thinking about having Featherdance followed by the healing animation for Roost. It is possible (although we don't really know how yet) to combine bits of existing animations to create new ones. And Gamer2020 is working on a BATTLE script editor - this is an entirely different thing as the battle scripts control what the moves DO.

Myself and NintendoBoyDX are working on the animations. :) It goes without saying - if we work out a particularly good animation - we'll pass it on to you. You are, after all, letting me use your 4th and 5th Gen sprites in my patch, so it only seems fair. :P
 
Actually - we were thinking about having Featherdance followed by the healing animation for Roost. It is possible (although we don't really know how yet) to combine bits of existing animations to create new ones. And Gamer2020 is working on a BATTLE script editor - this is an entirely different thing as the battle scripts control what the moves DO.

Myself and NintendoBoyDX are working on the animations. :) It goes without saying - if we work out a particularly good animation - we'll pass it on to you. You are, after all, letting me use your 4th and 5th Gen sprites in my patch, so it only seems fair. :P
Wait let me get this straight, Gamer2020 is working on something that will make it possible for moves like Guard Swap and Trick Room to exist, while you're working on the animations?

Gah I feel stupid now. If I had known that, I would have went ahead and added ALL Gen IV and V moves, rather than a select 129 of them. (but thanks for offering to pass on the animation scripts once you work them out)


Oh and I have an idea. You could download the Japanese hack Pokemon Vega (and I think there's another one called Pokemon Altair and Pokemon Sirius), and copy the animation data of the 4th and 5th Gen moves from there XD
 
Well, to be more accurate, I'm working on both.

One thing though - The moves WILL require ASM, but I will do my utmost to make it a standalone "special" type piece of code. Do remember that there is actually code in the ROM which changes types temporarily, so we can actually make roost work properly if we can understand how to call that piece of code and if we can understand how to end it after the turn. I'm starting work on this now - so here's hoping I can do some serious figuring out, huh?
 
Well, to be more accurate, I'm working on both.

One thing though - The moves WILL require ASM, but I will do my utmost to make it a standalone "special" type piece of code. Do remember that there is actually code in the ROM which changes types temporarily, so we can actually make roost work properly if we can understand how to call that piece of code and if we can understand how to end it after the turn. I'm starting work on this now - so here's hoping I can do some serious figuring out, huh?
I would like to help, but I have almost 0% ASM knowledge -___-
(I know how to insert routines, and that's about it)


To change the topic, I have a question to ask all of you:
[PokeCommunity.com] Chaos Rush's 649 on Ruby Project

Should I modify the Contest page on the Summary to look like this? If I did this, I would have to make it so that Pokemon Contests no longer work properly.
 
I would only modify the battle-moves page, but maybe that's just me.
 
Actually, let's be honest, who gives a crap about Contests. Everybody hacks FireRed anyway and doesn't care about Contests, and not to mention if I wanted to keep Contests, I would have to decide how the Gen IV and V moves would behave in a Gen III contest, not to mention there's no Contest stuff in Gen V at all.

So I've decided I'm going to officially corrupt Pokemon Contests for the sake of having the Physical/Special/Status indicator on the Summary screen.

On a more cheerier note, I got around to filling in the data for the remaining attacks, woo!
[PokeCommunity.com] Chaos Rush's 649 on Ruby Project
[PokeCommunity.com] Chaos Rush's 649 on Ruby Project
[PokeCommunity.com] Chaos Rush's 649 on Ruby Project
[PokeCommunity.com] Chaos Rush's 649 on Ruby Project


Pretty soon I'll release a patch that has updated movesets for the 386 Pokemon in Ruby.
 
I like the animations you both are applying Jambo and Chaos Rush. I tried to look for that Pokemon Vega game with the animations but couldn't find that. Although it would be very cool to see those move animations in-game. And as agentgeo said you guys really deserve some credit for this.
 
Wow. This is quite amazing. It's kind of a shame that you haven't been receiving more support for this.
Thank you, and what's even more amazing is that absolutely no ASM was required.

I like the animations you both are applying Jambo and Chaos Rush. I tried to look for that Pokemon Vega game with the animations but couldn't find that. Although it would be very cool to see those move animations in-game. And as agentgeo said you guys really deserve some credit for this.
Actually the animations are just existing ones already used by other moves.


BUT


Here is my first "custom" animation:
[PokeCommunity.com] Chaos Rush's 649 on Ruby Project

I combined Mach Punch and Sky Uppercut's animations to produce this, which is essentially Sky Uppercut but with Mach Punch's background. But I might try and make it so that it uses Aeroblast's background.

EDIT:
[PokeCommunity.com] Chaos Rush's 649 on Ruby Project


I really don't know what I'm doing, I'm literally just copying+pasting parts of the animation's hex data until it works. And there was an 02 byte near the end that I changed to 03 which fixed this strange graphical glitch.

Here's the hex data for the "custom" animation (I use GoldFinger so the numbers aren't in hex, but you can copy+paste this into the rom with GoldFinger at it will convert it to hex):
Spoiler:



EDIT: Oh and I found the patch for Pokemon Vega, gonna mess around with it
 
Last edited:
Quick question. If you're adding the extra 263 Pokemon, won't you need to ASM hack the seen/caught flags for them to work properly?

In which case, what do you propose you will do, since IIRC you don't have the luxury of using the memory block hack?
 
Quick question. If you're adding the extra 263 Pokemon, won't you need to ASM hack the seen/caught flags for them to work properly?

In which case, what do you propose you will do, since IIRC you don't have the luxury of using the memory block hack?
Think of the expression, "We'll cross that bridge when we get there." In other words, I'll deal with it once all the sprites and movesets have been added.

But I really don't know what I'm going to do. IIRC, JPAN posted the save block hack stuff on this page, correct? I think he made one for Ruby, but even if I was hacking FireRed I absolutely refuse to use the save block hack, because it causes things to glitch up on actual hardware (your 649 patch has some serious save-related glitches on GBA hardware, and the Emerald hack Pokemon CrystalDust, which uses a similar save block hack in order to have access to more variables when scripting, also has some serious save-related glitches on GBA hardware). Back when I was working on Pokemon DarkViolet, I always made sure that my hack worked just fine on actual GBA hardware, and this is no different.

At this point, I'm probably just going to make it so that there will only be regional dexes in my future Pokemon hacks (no National Dex obtainable), meaning 386 flags is more than enough. (I can make new Pokemon use existing flags, right?)

or ill move on to gen iv hacking so i dont have to deal with this crap
 
Think of the expression, "We'll cross that bridge when we get there." In other words, I'll deal with it once all the sprites and movesets have been added.

But I really don't know what I'm going to do. IIRC, JPAN posted the save block hack stuff on this page, correct? I think he made one for Ruby, but even if I was hacking FireRed I absolutely refuse to use the save block hack, because it causes things to glitch up on actual hardware (your 649 patch has some serious save-related glitches on GBA hardware, and the Emerald hack Pokemon CrystalDust, which uses a similar save block hack in order to have access to more variables when scripting, also has some serious save-related glitches on GBA hardware). Back when I was working on Pokemon DarkViolet, I always made sure that my hack worked just fine on actual GBA hardware, and this is no different.

I'm well aware of this problem. Thing is, there's no way to avoid usage of it on FR or Emerald - and at the end of the day, most of our end users will be using emulators rather than the real hardware.

At this point, I'm probably just going to make it so that there will only be regional dexes in my future Pokemon hacks (no National Dex obtainable), meaning 386 flags is more than enough. (I can make new Pokemon use existing flags, right?)

or ill move on to gen iv hacking so i dont have to deal with this crap

Well, if you can find enough free unused RAM, then I could port my routine for you, easily. You'll need a total of 176 free RAM bytes which are located in the save block. They need to be back to back as well.

If you manage to find that much free memory, it'd be easy to port the routine I made. Its the memory block, as opposed to the routine, which is causing the problems after all.
 
Well, if you can find enough free unused RAM, then I could port my routine for you, easily. You'll need a total of 176 free RAM bytes which are located in the save block. They need to be back to back as well.

If you manage to find that much free memory, it'd be easy to port the routine I made. Its the memory block, as opposed to the routine, which is causing the problems after all.
Sorry for this dumb question, but how would I go about looking into the RAM? As far as I know, hex editors only let you look at the 08 part (the ROM).

Would I use VBA or something? If I use the memory viewer, I noticed at 02000000 it says "WRAM", and at 03000000 it says "IRAM". Not sure what either of them means but one of them is the "RAM" you're talking about, correct? I'm assuming it's the "WRAM".

If that is the case, then from 02FF4244 to the end of the WRAM (that would be 02FFFFFF) its just 00 bytes. Would that be free unused RAM? And I know for sure that it's unused because I'm not looking at any old save file - I'm looking at the save file from my actual Ruby cartridge which has the Elite Four completed, most Trainers defeated, and I used VBA's Gameshark to complete the Pokedex, so I know for sure that I've used as much WRAM as possible.
EDIT: Scratch that, instead of 02FF4244, there's some used bytes I found at 02FF83E4.

Starting at 02FFA3E4 to 02FFFFFF appears to be unused. Though since Ruby appears to use the least RAM anyway, we could just subtract B0 (176) from 02FFFFFF, which would be 02FFFF4F.

There's also a chance that I'm speaking complete gibberish because I'm not 100% of what I'm even talking about.



EDIT: Also this is a question that's unrelated, it's just my own curiosity. What exactly does JPAN's save block do? Does FireRed not have 176 free ram bytes?
 
Last edited:
If that is the case, then from 02FF4244 to the end of the WRAM (that would be 02FFFFFF) its just 00 bytes. Would that be free unused RAM? And I know for sure that it's unused because I'm not looking at any old save file - I'm looking at the save file from my actual Ruby cartridge which has the Elite Four completed, most Trainers defeated, and I used VBA's Gameshark to complete the Pokedex, so I know for sure that I've used as much WRAM as possible.
EDIT: Scratch that, instead of 02FF4244, there's some used bytes I found at 02FF83E4.

It needs to be in the WRAM, but even then - that's no guarantee. Basically, you need to find 172 bytes of concurrent space in one of the 3 main save blocks of memory. I know how to check the save blocks in FR, but not in Ruby. Ironically, because they are DMA protected in FR, they're easy to find.

The WRAM ends at 0x0203FFFF in the GBA games, so it's certainly not going to work with any value higher than that.

EDIT: Also this is a question that's unrelated, it's just my own curiosity. What exactly does JPAN's save block do? Does FireRed not have 176 free ram bytes?

JPAN's save block hack gives us an extra 0x1000 bytes of memory to use to save things to the save file. Which is useful since there is little or no free space inside the existing save blocks.
 
Well then, looking at the Memory viewer, 0x0203A3DF - 0x0203FFFF appears to be unused in Pokemon Ruby, would it be possible to try anywhere from there? And there's a bunch of unused bytes before 0x0203A3BF that appears to be unused - in my nearly complete Ruby save file.


(sorry but I'm not sure how save blocks work)
 
Yeah, I'm not that sure either man. But the thing is, this hack NEEDS the extended seen/caught flags. It would need ASM with either way you plan to do it, the only difference is that having them all available is infinitely better than just a handful of them.

I suspect (although I do have no evidence) that the area you've pointed me towards probably doesn't get saved when saving.
 
Yeah, I'm not that sure either man. But the thing is, this hack NEEDS the extended seen/caught flags. It would need ASM with either way you plan to do it, the only difference is that having them all available is infinitely better than just a handful of them.

I suspect (although I do have no evidence) that the area you've pointed me towards probably doesn't get saved when saving.
I'll be willing to test it out for you. I have an older version of this hack that has 493 Pokemon, and we can also try having the 25 "??" Pokemon (the ones that occupy the slots after Celebi and before Treecko) show up in the Pokedex, since they actually have Pokedex numbers assigned to them (387-411).
 
IMO, having those Pokémon show up as caught isn't that important, as long as they don't mess up anything in-game.
But having it done would make the hack look closer to what GameFreak would originally have done if they had included those Pokémon in Gen III.
 
Status
Not open for further replies.
Back
Top