• 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.

Research: Chaos Rush's 649 on Ruby Project

Status
Not open for further replies.
1,323
Posts
16
Years
  • Seen Dec 9, 2023
Should do this on Emerald instead of Ruby :)
lol you're funny. I'd like to see you try and find the animation action tables for both Pokemon frames then, and then analyze it so new ones can be made for added Pokemon, and I'd like to see you make 2 frames for 649 Pokemon (plus a backsprite), and then we'll talk about doing it on Emerald ;)

(in other words, it's not gonna happen)
 
1,323
Posts
16
Years
  • Seen Dec 9, 2023
Final decision:

Since Jambo51 recently posted his research on battle scripts, I've decided my rom base will be entirely 4th Gen. You know how Jambo51's base is like bringing 5th Gen to GBA? Well my base will be like bringing 4th Gen to GBA. So I'm planning on adding all 4th Gen items, and ALL 4th Gen moves, and all Gen IV Pokemon. No Gen V moves.

Because Gen V moves is part of what makes Gen V Pokemon what they are, I won't be including any Gen V Pokemon, but I will be adding at least 156 "??" Pokemon, so anyone can add Gen V Pokemon if they want (or they can easily add Fakemon).

Still on Pokemon Ruby. This is will be strictly for a 4th Gen experience on GBA.
 

Quickster

Dream or Drop?
351
Posts
16
Years
  • Seen Apr 4, 2016
Final decision:

Since Jambo51 recently posted his research on battle scripts, I've decided my rom base will be entirely 4th Gen. You know how Jambo51's base is like bringing 5th Gen to GBA? Well my base will be like bringing 4th Gen to GBA. So I'm planning on adding all 4th Gen items, and ALL 4th Gen moves, and all Gen IV Pokemon. No Gen V moves.

Because Gen V moves is part of what makes Gen V Pokemon what they are, I won't be including any Gen V Pokemon, but I will be adding at least 156 "??" Pokemon, so anyone can add Gen V Pokemon if they want (or they can easily add Fakemon).

Still on Pokemon Ruby. This is will be strictly for a 4th Gen experience on GBA.

That sounds awesome. I mean you are the one taking time out of your day to work on this, you should only do what benifits you. But it is nice of you to add the room for the, at least, 156 Pokemon. Its very exciting hearing about this and makes me want Dark Violet even more!
 
199
Posts
12
Years
  • Seen Jul 18, 2016
It'll be great if there were 4th/5th gen abilities.... Eh if I want less bugs guess I'll have to deal with it.
 
1,323
Posts
16
Years
  • Seen Dec 9, 2023
It'll be great if there were 4th/5th gen abilities.... Eh if I want less bugs guess I'll have to deal with it.
For some reason I completely forgot about that...

now I'm having a hard time deciding what I want to do. So I realized that if I was going for a true 4th Gen experience, I would need 4th Gen items, and 4th Gen abilities. Both of those will be hard to implement. If I wanted to implement those, it take a really long time, and I'm not even sure if all 4th Gen abilities are possible without disassembly at this point (is it, Jambo51?)

EDIT: I think I'm just going to limit my scope to the 3rd Gen battle system (no new items, no new attacks, no new abilities). First of all, it would be interesting to see how 4th and 5th Gen Pokemon work without the physical/special split. Second of all I want to work on Pokemon DarkViolet sooner, and I don't want to delay the game for another 2 years.
 
Last edited:

Jambo51

Glory To Arstotzka
736
Posts
14
Years
  • Seen Jan 28, 2018
I'm not even sure if all 4th Gen abilities are possible without disassembly at this point (is it, Jambo51?)

It's entirely in your own hands. Abilities should be easily transferable from my base to your with a little porting. The moves are the easiest of all, since you can basically "steal" the battle scripts I have made for the ones which exist in my base.

The items, however, I think would be somewhat more difficult. It depends what said items do, as well as when they do it.

Heck, if I managed to fix fleeing in double wild battles (and I did), I reckon I can add the new items. :)
 
1,323
Posts
16
Years
  • Seen Dec 9, 2023
It's entirely in your own hands. Abilities should be easily transferable from my base to your with a little porting. The moves are the easiest of all, since you can basically "steal" the battle scripts I have made for the ones which exist in my base.

The items, however, I think would be somewhat more difficult. It depends what said items do, as well as when they do it.

Heck, if I managed to fix fleeing in double wild battles (and I did), I reckon I can add the new items. :)
Okay, that's good to hear. I'm going to work on 5th Gen Pokemon sprites more so I don't feel bad about stealing all your stuff XD

Anyways, I've come to a decision of what I'm going to do. I'm still going for the entire 4th Gen Experience. That means this project will have 4th Gen Pokemon, 4th Gen items, and 4th Gen abilities. Since I want to work on Pokemon DarkViolet, I've decided that DarkViolet will not have new items and abilities, but only new Pokemon.

The first thing I'm going to do is add 4th Gen Pokemon (and 156+ blank index numbers for people that want 5th Gen Pokemon). From here, this project will split into two: Pokemon DarkViolet, and the 4th Gen on Ruby Project. I'm going to work on adding 4th Gen stuff to a Ruby rom alongside working on Pokemon DarkViolet separately. Because I'll have all my scripts made with XSE saved with dynamic offsets, it will be like having a disassembly, so once the 4th Gen Ruby Project is complete, it will be incredibly easy for me to port Pokemon DarkViolet over to the new 4th Gen Ruby base. So that's my plan, everyone wins :)


EDIT: Jambo51, since I'm almost done with all 4th Gen sprites, now would be the time to look into extending the Pokedex for Pokemon Ruby. If you could do that, that would be great :) If there's any offsets you need, just tell me what they are in FireRed and I'll find it's Ruby equivalent.
 
Last edited:
1,323
Posts
16
Years
  • Seen Dec 9, 2023
Hey guys

incnkm.png


2wd8u9h.png


2zitoxl.png


t4to2d.png


Don't worry, I made spots for the Gen V Pokemon when re-pointing all the tables. I just haven't made sprites for them yet. When I release this, both Gen IV and V Pokemon will be implemented as much as possible within Gen III's limitations.
 
1,772
Posts
15
Years
This is looking seriously brilliant, Chaos, and it could prove VERY useful for my project. :) So are the 4th generation Pokemon fully inserted/fully functioning at present?
(If that's the case I'd be more than satisfied if you posted it now, haha.) I mean, I'm not trying to push you to post it or anything, but I'm seriously looking forward to be able to use it. Great work, keep it up.
 
1,323
Posts
16
Years
  • Seen Dec 9, 2023
This is looking seriously brilliant, Chaos, and it could prove VERY useful for my project. :) So are the 4th generation Pokemon fully inserted/fully functioning at present?
(If that's the case I'd be more than satisfied if you posted it now, haha.) I mean, I'm not trying to push you to post it or anything, but I'm seriously looking forward to be able to use it. Great work, keep it up.
Well, currently Heatran, Regigigas, Giratina, Cresselia, Phione, Manaphy, Darkrai, Shaymin, and Arceus don't have sprites yet, so I'm using Charizard's sprite and palette pointers as a placeholder XD. I need to finish sprites for those Pokemon, and there's some other things I want do do. I'd say it's about 70% done right now.

Right now I'm working on inserting cries, but the cry table is really weird...

However, all 4th Gen Pokemon are fully battle compatible, they have all their base stats (even the 5th Gen Pokemon slots I included have the correct base stats), thanks to the data I copy + pasted from Jambo51's FireRed hack (which he gave me permission to do way back in the beginning of this thread). However, all of them currently has Beldum's moveset as a placeholder. I want to do moves last, so I can create a backup without any moves in case I ever decide to insert 4th Gen moves.

5th Gen Pokemon are only partially implemented. They all have Charizard's sprite, and Charizard's icon, and Beldum's moveset, but they have the correct base stats. I'm going to provide an ini with the release for use with Pokemon Game Editor so that people can easily include 5th Gen Pokemon.

EDIT: Also I just remembered that I still need to expand the Pokedex, which I've asked Jambo51 to look into. So I'd say it's more like 65% complete.



EDIT: Okay, the cry table is absolutely beserk. It's normal from Bulbasaur up to Celebi, but then everything is in a weird scrambled order from there (the Torchic family's cries are before Treecko's for some reason, and they all show up completely wrong in Pokemon Game Editor. The offset shown for Treecko's cry in Pokemon Game Editor is actually Mudkip's cry. PGE claims that Cradily's cry is Bulbasaur's cry - basically everything's completely messed up). This is going to take a while for me to figure out, another problem is that every other new Pokemon I've inserted has somehow managed to share a pointer with an existing Gen I Pokemon. wtf...

EDIT: I realized the first post was massively outdated, so I updated it
 
Last edited:

Tailes

Nothing to see here
21
Posts
16
Years
  • Seen Mar 22, 2022
Ugh, I know what you mean about the cries. I had the very same problem, and I ended up making a list of which cry was which. They really are in a weird order. Now, I'm only about 80% sure this'll be accurate, because I got the data from Fire Red, but I'm pretty certain the order's the same in Ruby.

WHOOPS, I haven't made 15 posts yet, so I'll PM it to you.
 
1,323
Posts
16
Years
  • Seen Dec 9, 2023
Ugh, I know what you mean about the cries. I had the very same problem, and I ended up making a list of which cry was which. They really are in a weird order. Now, I'm only about 80% sure this'll be accurate, because I got the data from Fire Red, but I'm pretty certain the order's the same in Ruby.

WHOOPS, I haven't made 15 posts yet, so I'll PM it to you.
Yeah, the order is the same, since I wrote down the first few cries myself, and I remember clearly that it starts with Kecleon at #252, then Roselia, then Torkoal, and so on...

Thanks for the full list though, it might help in finding the secondary cry table.


And I've concluded that the secondary table doesn't use index number. I tried searching "3D 01 6B 01" (which is Kecleon's index number, then Roselia's index number), but the string doesn't exist in the rom. I also tried replacing every instance of "3D 01" with "FF FF", which should theoretically corrupt out Kecleon's cry, but Kecleon's cry continued to work just fine, so I'm pretty sure the secondary table does not refer to Pokemon by index number, which makes things even harder.
 
Last edited:

Tailes

Nothing to see here
21
Posts
16
Years
  • Seen Mar 22, 2022
The second cry table starts right after the first one at 0x4537c4, at least in Ruby.

And it seems to be in a different order again. I may be able to make another list, hold on.
 
1,323
Posts
16
Years
  • Seen Dec 9, 2023
The second cry table starts right after the first one at 0x4537c4, at least in Ruby.

And it seems to be in a different order again. I may be able to make another list, hold on.
Sorry, but I'm pretty sure that's not the table I'm looking for. I've tried blanking out that entire area with FF bytes, and while it should have corrupted the cries for Hoenn Pokemon, they all work just fine.

Jambo51 told me that there is another table that determines where in the rom each Pokemon's cry is starting at 252. This is the table I'm looking for.


EDIT: Thanks to VBA-SDL-H, and my limited ASM knowledge, I was able to find the offset. It was at 0x1FDE6A.

EDIT: I have successfully temporarily assigned Articuno's cry to every new Pokemon as a placeholder. Now I'm going to actually start inserting the new cries.
 
Last edited:
1
Posts
12
Years
  • Seen Nov 4, 2012
AARRGH i cant wait! i am new to all this and im currently playing light platinum. although just reading about this is just too kick ass, i still wonder whats going to happen in the end... i wish you the best of luck! one more thing soooo darkviolet will have 4th and 5th gen pkm? sorry im just a little confused right now
 
1,323
Posts
16
Years
  • Seen Dec 9, 2023
Even though I mentioned earlier in this thread that I'm only adding 5th Gen as placeholders, just in case it isn't obvious yet, I changed my mind. I'm adding 5th Gen Pokemon with as much functionality as 4th Gen Pokemon:
4t6d1h.png


Unfortunately there is a strange problem where in the secondary cry table, all Pokemon labeled, "XX 02" won't have a cry, meaning its currently impossible for any Pokemon higher than Liepard to have a cry. I have no idea how to go about fixing this, unfortunately... (the reason why I was able to use Articuno's cry as a placeholder for every single added Pokemon is because Articuno's spot in the cry table is labeled as, "XX 00", which works just fine)...but someday I will fix it, as I've been trying to learn ASM.

AARRGH i cant wait! i am new to all this and im currently playing light platinum. although just reading about this is just too kick ass, i still wonder whats going to happen in the end... i wish you the best of luck! one more thing soooo darkviolet will have 4th and 5th gen pkm? sorry im just a little confused right now
DarkViolet will not have any 5th Gen Pokemon before the Elite Four. There will be a Kanto dex made up of 210 Pokemon, most from Gen I. All evolutions and pre-evolutions will be obtainable, including Gen IV evolutions of Gen I Pokemon, such as Magmortar.
 
Last edited:

Jambo51

Glory To Arstotzka
736
Posts
14
Years
  • Seen Jan 28, 2018
Unfortunately there is a strange problem where in the secondary cry table, all Pokemon labeled, "XX 02" won't have a cry, meaning its currently impossible for any Pokemon higher than Liepard to have a cry. I have no idea how to go about fixing this, unfortunately... (the reason why I was able to use Articuno's cry as a placeholder for every single added Pokemon is because Articuno's spot in the cry table is labeled as, "XX 00", which works just fine)...but someday I will fix it, as I've been trying to learn ASM.

I had a look at the code, and it is somewhat different from FR's coding. This bemuses me somewhat, but I believe it should be easy enough to fix.

The game ANDs the loaded value with 0x100. Which is great - except, if you AND 0x2XX with 0x100, it produces an invalid return (invalid in so far as the cries work, I mean).

So - To fixing it:
0807529C: 41 46
0807529E: 53 E0
0807536C: 90 25 45 08

(Assuming you haven't repointed your cry table - If you have, then change the last one to the location of your cry table).

EDIT: Fixed a byte which wasn't in the original game. My bad.
 
Last edited:
1,323
Posts
16
Years
  • Seen Dec 9, 2023
I had a look at the code, and it is somewhat different from FR's coding. This bemuses me somewhat, but I believe it should be easy enough to fix.

The game ANDs the loaded value with 0x100. Which is great - except, if you AND 0x2XX with 0x100, it produces an invalid return (invalid in so far as the cries work, I mean).

So - To fixing it:
0807529C: 41 46
0807529E: 53 E0
0807536C: 90 25 45 08

(Assuming you haven't repointed your cry table - If you have, then change the last one to the location of your cry table).
O_O wasn't expecting you to fix it for me...dude I freaking love you

EDIT: For some reason the bytes you mentioned at 0807529C are different, I have 7F 21, and according to you the second byte is 46. I tried changing it anyway but it doesn't work, but I'm experimenting...

EDIT: I got it working. I did repoint the cry table, but there are multiple pointers to different parts of the cry table, so I already had 0807536C changed, so I thought I didn't have to change it. But yeah, thanks anyways :D
 
Last edited:
1,323
Posts
16
Years
  • Seen Dec 9, 2023
I have some really good news:

First of all, I have learned enough ASM to write my first routine. I can now change a Pokemon's index number. This is how I will handle Leafeon and Glaceon.

Second of all, thanks to a post that JPAN made in this thread, I have figured out how to add new working evolutionary stones.

1-2.png
2-2.png
3-1.png
4-1.png

(I haven't decapitalized all the items yet lol)

For forme changes that all have the same base stats (like Burmy, or my cheap way of giving Eevee 7 evolutions), I will simply use my index-number-change ASM routine. For forme changes that have different base stats and thus requires recalculation of stats (which I don't feel like doing in ASM), I'm going to have Pokemon "evolve" to another forme, such as Giratina.
 
Last edited:

destinedjagold

You can contact me in PC's discord server...
8,593
Posts
16
Years
  • Age 33
  • Seen Dec 23, 2023
I am really loving the progress you are making...
You are surely going to be well-known and your base will surely be in use by many hackers when it's done and ready. ;)
I wanna let you know that I am supporting your project. :)

I got a question though.
What address of free space have you used?
I asked because, well, it may conflict with my ROM if I decide to use this base. =/
 
Status
Not open for further replies.
Back
Top