The PokéCommunity Forums

The PokéCommunity Forums (https://www.pokecommunity.com/index.php)
-   Binary Hack Research & Development (https://www.pokecommunity.com/forumdisplay.php?f=195)
-   -   Research Chaos Rush's 649 on Ruby Project (https://www.pokecommunity.com/showthread.php?t=267460)

Chaos Rush March 14th, 2012 1:21 PM

Quote:

Originally Posted by tommzy09 (Post 7082762)
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)

Chaos Rush March 19th, 2012 5:24 PM

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 March 21st, 2012 3:19 PM

Quote:

Originally Posted by Chaos Rush (Post 7091169)
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!

Aruaruu March 25th, 2012 10:47 PM

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.

Chaos Rush April 15th, 2012 9:50 AM

Quote:

Originally Posted by Aruaruu (Post 7099510)
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.

Jambo51 April 15th, 2012 12:10 PM

Quote:

Originally Posted by Chaos Rush (Post 7133123)
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. :)

Chaos Rush April 15th, 2012 10:55 PM

Quote:

Originally Posted by Jambo51 (Post 7133329)
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.

Chaos Rush April 21st, 2012 12:29 AM

Hey guys

http://i39.tinypic.com/incnkm.png

http://i44.tinypic.com/2wd8u9h.png

http://i40.tinypic.com/2zitoxl.png

http://i44.tinypic.com/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.

giradialkia April 21st, 2012 8:31 AM

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.

Chaos Rush April 21st, 2012 9:05 AM

Quote:

Originally Posted by giradialkia (Post 7142207)
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

Tailes April 24th, 2012 9:07 PM

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.

Chaos Rush April 25th, 2012 1:06 PM

Quote:

Originally Posted by Thundrake (Post 7148047)
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.

Tailes April 25th, 2012 1:31 PM

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.

Chaos Rush April 25th, 2012 1:37 PM

Quote:

Originally Posted by Thundrake (Post 7148886)
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.

TYRANTKOOL April 27th, 2012 10:42 PM

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

Chaos Rush April 28th, 2012 12:01 AM

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:
http://i45.tinypic.com/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.

Quote:

Originally Posted by TYRANTKOOL (Post 7151947)
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.

Jambo51 April 28th, 2012 8:27 AM

Quote:

Originally Posted by Chaos Rush (Post 7152024)
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.

Chaos Rush April 28th, 2012 9:39 AM

Quote:

Originally Posted by Jambo51 (Post 7152523)
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

Chaos Rush April 29th, 2012 10:27 PM

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.

http://i1151.photobucket.com/albums/o625/ChaosRush/1-2.png http://i1151.photobucket.com/albums/o625/ChaosRush/2-2.png http://i1151.photobucket.com/albums/o625/ChaosRush/3-1.png http://i1151.photobucket.com/albums/o625/ChaosRush/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.

destinedjagold May 2nd, 2012 2:41 AM

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. =/

Chaos Rush May 2nd, 2012 1:32 PM

Quote:

Originally Posted by destinedjagold (Post 7158463)
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. =/

Ruby's free space starts at 0x6B09F8, and stops at around 0xD00000, where the font and overworld data is located, then resumes at 0xEAE244-ish.

As for the actual data I've used up so far, I've used up from 0x6B0A00 to 0x76DDA8. Also I've used up from 0x800000 to 0xB00000-ish, which contains all the cry data.

Currently, the remaining free space is from 0x76DDA8-0x800000, and some more free space from somewhere at 0xB00000 up to 0xD00000 (the original Ruby rom has data located at 0xD00000), and I haven't touched any of the free space from 0xEAE244-0xFFFFFF.


And you really shouldn't be planning using this base on a rom that's already been hacked. What I recommend doing is once I release the first patch, you should start over, but import all the map and script data. If you apply the patch to an existing hack things will probably screw up.

PokeFreak201306 May 4th, 2012 7:30 AM

Is this actually on a ruby game cartridge and if it is, would you please PM me and tell me how you can change data on a cartridge THANKS :D

Leafgreen2itsmyidea May 4th, 2012 7:51 AM

Brilliant
 
It suprises me that you putted in all pokémon
but what about the pokédex that's what is bothering me.

Jambo51 May 4th, 2012 10:09 AM

Quote:

Originally Posted by PokeFreak201306 (Post 7161145)
Is this actually on a ruby game cartridge and if it is, would you please PM me and tell me how you can change data on a cartridge THANKS :D

You can't change data on an official cartridge. This patch is a not for profit ROM Hack base. It is intended to be used on Emulators.

Quote:

Originally Posted by Leafgreen2itsmyidea (Post 7161168)
It suprises me that you putted in all pokémon
but what about the pokédex that's what is bothering me.

I'm working on the Pokédex right now for Chaos Rush, but it's set out somewhat differently from FR's, so it's taking a little time to fix.

Chaos Rush May 5th, 2012 12:43 AM

Quote:

Originally Posted by Jambo51 (Post 7161273)
You can't change data on an official cartridge. This patch is a not for profit ROM Hack base. It is intended to be used on Emulators.

Just a minor correction: It is intended to be used on Emulators AND actual GBA hardware through a flashcart :P As I personally can't stand playing games with a keyboard, I prefer to play hacks on actual hardware (but only when I'm playing them, when I'm working on them of course I'll user a computer XD)

I always make sure that everything I do on this patch works on my GBA:
http://i50.tinypic.com/1570k2h.jpg

addictedtoshinygold May 6th, 2012 12:20 AM

could u post the snivy pc icon up? would like to add it into my rom hack...
sorry to disturb u

Jambo51 May 6th, 2012 12:53 AM

Quote:

Originally Posted by Chaos Rush (Post 7162072)
Just a minor correction: It is intended to be used on Emulators AND actual GBA hardware through a flashcart :P As I personally can't stand playing games with a keyboard, I prefer to play hacks on actual hardware (but only when I'm playing them, when I'm working on them of course I'll user a computer XD)

I always make sure that everything I do on this patch works on my GBA

Yes, ok. Very funny. You know fine well that I meant you can't modify an official Pokemon Ruby cartridge... :P For what it's worth, that's the very reason I adopted using the Bios for my patch - I know it should work on the actual hardware.

Got some good news, I have tracked down the Pokedex routines, and I am working on their expansion now. They are remarkably similar to the FR routines, and my initial guess about the static RAM address has proven to be correct.

fallkitten May 6th, 2012 3:24 AM

It's amazing! I love it! Looks so aversome! Ruby is now 20% cooler=3. As i understood it would be the game with all pokemon from 1-4 gens? Should we edit them into the grass ourselves?

Chaos Rush May 6th, 2012 8:18 AM

Quote:

Originally Posted by Jambo51 (Post 7163556)
Yes, ok. Very funny. You know fine well that I meant you can't modify an official Pokemon Ruby cartridge... :P For what it's worth, that's the very reason I adopted using the Bios for my patch - I know it should work on the actual hardware.

Got some good news, I have tracked down the Pokedex routines, and I am working on their expansion now. They are remarkably similar to the FR routines, and my initial guess about the static RAM address has proven to be correct.

Awesome. You're the man, Jambo; none of this would be possible without you. Would you like my Ruby save file, that has every slot in the PC box filled, and all trainers defeated, to help test the Pokedex so that you can find free space in the ram? Since my save file literally uses up as much space as possible, so you'll know for sure what's free space.

EDIT: Also if you happen to find the offset that controls how many Pokemon appear in the regional dex (the one with 202), could you please tell me where you found it? This would be helpful for people doing G/S/C remakes that want 250 (or 256) Pokemon in the regional dex, or it would be helpful for me, who wants 210 Pokemon in my future hack.


Quote:

Originally Posted by fallkitten (Post 7163677)
It's amazing! I love it! Looks so aversome! Ruby is now 20% cooler=3. As i understood it would be the game with all pokemon from 1-4 gens? Should we edit them into the grass ourselves?

Actually, it has all Pokemon from Gen 1-5. But it's not exactly like the games like Jambo's FireRed patch, this is a "cheap" version of it. For instance, you can evolve female Kirlia with a Dawn Stone, even though you're not supposed to. And rather than evolving Magmar by trading with a Magmarizer, instead you can evolve Magmar (and Electabuzz, Rhydon, Seadra, Dusclops, etc.) with a custom stone I call the, "Omega Stone". I found the table that controls item usage (thanks to JPAN's explanation of it for FireRed in some other thread), hence why I was able to add new evolutionary stones, which no one else has been able to do (besides Jambo51). The new stones are the Razor Stone, the Royal Stone, the Magnet Stone, the Porygon Stone, and the Omega Stone, along with the Dawn, Dusk, and Shiny Stones from the official games. There's also a bunch of other new items that function as stones to handle form changes, such as the "Shelmet DNA", the "KarrablastDNA", the "Remoraid DNA", "Oven", "Washing MCHN", "Griseous Orb", etc...

Ninjawolf May 8th, 2012 5:25 PM

Quote:

Originally Posted by Chaos Rush (Post 7164072)
hence why I was able to add new evolutionary stones, which no one else has been able to do (besides Jambo51).

Um. I think that's untrue. I've been able to change King's Rock into a use Item as well as a hold item, simply by changing the "How a Pokemon evolves." I don't think PGE supports this, but I think I used YAPE, where it has the option to show all items, instead of just the stones and evolve via trade items, and you just click one of those and you're set. It's been a while since I've done it, so it could have been something other than YAPE.

Anyway, you've been doing an awesome job. If you ever get something like JPAN's hacked engine into Ruby, I'll be forced to switch ROMs again!

Chaos Rush May 8th, 2012 5:46 PM

Quote:

Originally Posted by Ninjawolf (Post 7167461)
Um. I think that's untrue. I've been able to change King's Rock into a use Item as well as a hold item, simply by changing the "How a Pokemon evolves." I don't think PGE supports this, but I think I used YAPE, where it has the option to show all items, instead of just the stones and evolve via trade items, and you just click one of those and you're set. It's been a while since I've done it, so it could have been something other than YAPE.

No. If you make a Pokemon evolve with an item originally not a stone, it won't actually evolve. Even though the HP bar will show up as if it would work, a message would pop up saying, "It won't have any effect". If you search "stone" in the simple questions thread, you'll notice that everyone keeps saying "I made a custom stone and it won't work even though I made it evolve with that item in YAPE/PGE". This is because you have to alter the item usage table, which wasn't documented at all until recently by JPAN.

I'm not kidding. Go make a custom item with Item Editor, then make a Pokemon evolve with said custom item, then try to evolve it.
Spoiler:
it won't evolve, unless if you add a pointer entry in the usage table

Mr.Pkmn May 9th, 2012 1:25 AM

Quote:

Originally Posted by Chaos Rush (Post 7164072)
I was able to add new evolutionary stones, which no one else has been able to do (besides Jambo51).

I did that too some time ago. There's an issue though.

The table doesn't go far enough to support items like King's Rock, so you have to repoint it or tell the game via ASM that every item beyond Sitrus Berry is an evolutionary stone (like i did)

DarkCreations May 9th, 2012 1:42 AM

m watchin it ryt now.... :)

Jambo51 May 10th, 2012 2:31 AM

I can confirm that Ruby's Pokedex is absolute murder to extend. Unlike FR and Emerald, which move the relevant data needed for extension automatically by using a Malloc, Ruby's is a mess of about 200 pointers and 15 or so semi-pointers, which are harder still to track down, which repoint the "working data" to the end of the Pokedex.

There is some good news - I have a borderline working version of it (not finished, but just about usable) and since Ruby's dex is manually pointed to, but changes position due to a random calculation (yes, a random calculation!) I can safely assume that the entire RAM area set aside for this Random Dex movement is safe to use! So I simply forced it to revert to case 0 all the time, giving plenty of free memory after the Dex for extra additions.

This is on top of the previously completed Seen Caught flags reassignment which I completed, allowing for 832 species of Pokemon (potentially excluding the formes). For anyone curious how this is achieved without adding more saveable memory, I will explain. The current Seem/Caught flags have 4 blocks of 416 flags, defined as 3 blocks of seen flags (for error checking I guess?) plus 1 block for caught. I redefined them as 2 blocks of seen flags and 2 blocks of caught flags.

Block 1: Bulbasaur - Combee Seen
Block 2: Vespiquen - Pokemon 832 Seen
Block 3: Bulbasaur - Combee Caught
Block 4: Vespiquen - Pokemon 832 Caught

As you can see, using the existing space, it is possible to more than double the number of Seen/Caught flags! :)

@Chaos Rush - It should be quite easy to force your formes to share the normal version's SC flags - simply assign them the same value on the Dex Table, just like you assigned Turtwig flag 387, even though it's Pokemon #440 by index number.

Chaos Rush May 10th, 2012 1:16 PM

Quote:

I can confirm that Ruby's Pokedex is absolute murder to extend. Unlike FR and Emerald, which move the relevant data needed for extension automatically by using a Malloc, Ruby's is a mess of about 200 pointers and 15 or so semi-pointers, which are harder still to track down, which repoint the "working data" to the end of the Pokedex.
The amount of respect I have for you just doubled. Seriously, you don't know how much I appreciate you for doing this for me, especially considering how you're busy with University and your own 649 patch, and the problems you've encountered (200 POINTERS!?!?!?), and that you're essentially just helping out some random dude on the internet. You're awesome. Just making it clear that I really really REALLY appreciate this. You deserve like, 90% of the credit for this entire project because the Pokedex is one of the most important things. I hope you get everything working soon, and you seriously don't know how thankful I am to have a skilled ASM hacker like you helping me.


Quote:

There is some good news - I have a borderline working version of it (not finished, but just about usable) and since Ruby's dex is manually pointed to, but changes position due to a random calculation (yes, a random calculation!) I can safely assume that the entire RAM area set aside for this Random Dex movement is safe to use! So I simply forced it to revert to case 0 all the time, giving plenty of free memory after the Dex for extra additions.

This is on top of the previously completed Seen Caught flags reassignment which I completed, allowing for 832 species of Pokemon (potentially excluding the formes). For anyone curious how this is achieved without adding more saveable memory, I will explain. The current Seem/Caught flags have 4 blocks of 416 flags, defined as 3 blocks of seen flags (for error checking I guess?) plus 1 block for caught. I redefined them as 2 blocks of seen flags and 2 blocks of caught flags.

Block 1: Bulbasaur - Combee Seen
Block 2: Vespiquen - Pokemon 832 Seen
Block 3: Bulbasaur - Combee Caught
Block 4: Vespiquen - Pokemon 832 Caught

As you can see, using the existing space, it is possible to more than double the number of Seen/Caught flags! :)
Just curious, but can you elaborate on how it is "just about usable"? If it's too complicated then I apologize for asking this question, but I'm just wondering what the functionality of the extension is so far.

Also I'm amazed at how you figured out a way to include caught/seen flags for the extra 321 Pokemon slots I added. You are just amazing... I wish you good luck on tracking down the remaining pointers, it must be absolute hell...

Quote:

@Chaos Rush - It should be quite easy to force your formes to share the normal version's SC flags - simply assign them the same value on the Dex Table, just like you assigned Turtwig flag 387, even though it's Pokemon #440 by index number.
Yeah, that's what I meant in our VM convo earlier. Good to hear that it should work like that, I personally don't care about choosing which sprite that appears in the Pokedex.

Chaos Rush May 11th, 2012 2:51 PM

In case anyone is wondering about Landorus, Thundrus, and Tornadus's new forms (the June CoroCoro magazine reveals that Landorus, Thundrus, and Tornadus will be receiving new forms in Black 2/White 2: http://cdn.bulbagarden.net/media/upload/7/7f/CoroCoro_B2W2_June_2012_cover.jpg), when I was in the process of adding Pokemon, I made 9 blank Pokemon slots named, "EXTRA", just in case for whatever reason I needed more Pokemon slots (which proved to be helpful, since the Kami trio's new forms were revealed long after I started working on this). Unfortunately, 3 of them have already been used up because I decided to include a way for sunshine Cherrim, and two extra Eevee clones for a way to evolve into Glaceon/Leafeon, but on the good side I have a total of six Pokemon named "EXTRA", which I will use to address Landorus, Thundrus, and Tornadus's forms. Not to mention I included a slot for Spiky-Eared Pichu, which IMO is a useless Pokemon, so if necessary I will turn that slot into another "EXTRA" Pokemon slot.

(In case anyone is wondering, I've already included slots for Black Kyurem and White Kyurem before the EXTRA Pokemon)

Jambo51 May 12th, 2012 2:12 AM

Quote:

Originally Posted by Chaos Rush (Post 7171089)
In case anyone is wondering about Landorus, Thundrus, and Tornadus's new forms (the June CoroCoro magazine reveals that Landorus, Thundrus, and Tornadus will be receiving new forms in Black 2/White 2:

Why do Game Freak has this misconception that we want them to add MORE Pokémon (or formes of Pokémon)? We have nearly 800 differing version of Pokémon already! I miss the days when we had 150 or so Pokémon and formes were not a consideration. Simplicity is usually better than complexity, and it's doubly the case in Pokémon.

I know that this is hardly your fault, I just felt the need to say something like this. :P

InMooseWeTrust May 12th, 2012 5:32 PM

There are plenty of things you can axe from 3rd gen to free up memory, if you know how:
-Mystery Gift
-ALL contest data, Pokéblocks, useless berries, and the like
-Secret base data
-Mail items
-Look at all of the items by index number (Bulbapedia article). Over half of them are useless.
-Box data (no one will be able to fill up all 14 unless they catch multiple of the same species)
-Game Corner
-Anything else you never see in a non-sideshow hack

I'm sure you can think of many more.


Few things for Chaos Rush:

1. Do you have any plans for (or will you support) an item modernization project? This would basically axe a lot of the useless items and combine items that do the same thing (Poké Doll and Fluffy Tail) into one. It could also repoint the index numbers so you end up with a smaller list and a more friendly room for expansion. I'd like to start something like this for ROM bases. Or if it's too complicated, maybe just axe useless items like mails.

2. In fact, do you plan on getting rid of ANYTHING besides the Pokémon Contest data? I mean, if you look at completed ROM hacks and what people actually use in them, there's huge chunks of data that's just never used.

3. My spriting skills are horrid but I am good at recruiting people. For your sprite modernization project, would you like me to scour for spriters here, Bulbagarden and Serebii and try to recruit people to help you?

4. What are you doing with the free space between Celebi and Treecko?

5. Is adding fakemon problematic in Emerald if you replace existing space? I know you said that the animated graphics crash when you add later generation Pokémon, but you didn't specify what would happen if you simply replaced two-frame sprites of existing Pokémon.

6. (see 5) What if I were to use the space between Treecko and Celebi? And the index numbers for the Unown forms (if I'm okay with a screwed up Pokédex)? Would that work just as well?

7. Are cries stored the same illogical, messy way in Emerald as they are in Ruby? Have you looked into this at all? If so, what have you learned (comparing Ruby to Emerald)?

Chaos Rush May 12th, 2012 8:55 PM

Quote:

Originally Posted by InMooseWeTrust (Post 7172842)
There are plenty of things you can axe from 3rd gen to free up memory, if you know how:
-Mystery Gift
-ALL contest data, Pokéblocks, useless berries, and the like
-Secret base data
-Mail items
-Look at all of the items by index number (Bulbapedia article). Over half of them are useless.
-Box data (no one will be able to fill up all 14 unless they catch multiple of the same species)
-Game Corner
-Anything else you never see in a non-sideshow hack

I'm sure you can think of many more.

I don't see why I need to "axe" any of these, since Jambo51 has already figured out a way to expand the Pokedex flags without using more memory. Not to mention I would like to use Pokemon Contests in a future hack, and removing useless items would be more tedious than keeping them in, since it would require re-pointing the table and removing blank items that hackers could potentially use to create custom items. It makes absolutely no sense to remove them (and I've already used up about 30 of them for my custom items related to form changing, along with the new evolutionary stones introduced in D/P, and my custom stones, the Razor Stone, the Royal Stone, the Omega Stone, the Magnet Stone, and the Porygon Stone). And I will definitely be needing a Game Corner in my future hack Pokemon DarkViolet, so there is no way I'm going to remove that.

Quote:

Few things for Chaos Rush:

1. Do you have any plans for (or will you support) an item modernization project? This would basically axe a lot of the useless items and combine items that do the same thing (Poké Doll and Fluffy Tail) into one. It could also repoint the index numbers so you end up with a smaller list and a more friendly room for expansion. I'd like to start something like this for ROM bases. Or if it's too complicated, maybe just axe useless items like mails.
As I said earlier, removing useless items make no sense because it removes opportunities for hackers to easily create custom items.

Quote:

2. In fact, do you plan on getting rid of ANYTHING besides the Pokémon Contest data? I mean, if you look at completed ROM hacks and what people actually use in them, there's huge chunks of data that's just never used.
No, because I am planning on using Pokemon Contests in my hack(s). And I'm not going to remove something that was available in the original Ruby rom, why would I take away features, that makes no sense. You can't assume that no one is going to use them, for instance, you said I should remove the Game Corner, but I am planning on having a Game Corner in my own hack(s).

Quote:

3. My spriting skills are horrid but I am good at recruiting people. For your sprite modernization project, would you like me to scour for spriters here, Bulbagarden and Serebii and try to recruit people to help you?
Maybe. The thing is, my standards are ridiculously high, and I refuse to have anything below professional quality. And everytime someone tries to help, there's always something unsatisfactory about their sprite (sorry, people that have helped). I still appreciate the effort, but I don't see anything wrong with wanting to have high-quality sprites. Not that I'm gloating about my own skill or anything, but I've been spriting since 2006, and I created ALL of the custom graphics in Pokemon DarkViolet, so I think it's safe to say that I'm an excellent graphic artist:
http://a.imageshack.us/img840/9352/91253557.png http://a.imageshack.us/img837/9972/26691123.png
Oh, and look at my avatar. I love it.

Quote:

4. What are you doing with the free space between Celebi and Treecko?
Absolutely nothing. I'm keeping them there, so that hackers can use them for whatever. For instance, I'm planning on using them for mugshots. Also, if you remember in Pokemon DarkViolet, I had the fossil sprites appear in the Pewter Museum, despite being an Emerald hack. I used the ?? slots between Celebi and Treecko, and I will be needing them again when I restart DarkViolet on Ruby.

Quote:

5. Is adding fakemon problematic in Emerald if you replace existing space? I know you said that the animated graphics crash when you add later generation Pokémon, but you didn't specify what would happen if you simply replaced two-frame sprites of existing Pokémon.
It was only problematic because there are multiple tables relating to the animations, and none of them have been found. They crash because the slots for the added Pokemon simply don't exist in the table, which could easily be solved by finding the tables and expanding them. It is not problematic at all if you replace an existing Pokemon, because they already have an existing slot in the animation tables.

Quote:

6. (see 5) What if I were to use the space between Treecko and Celebi? And the index numbers for the Unown forms (if I'm okay with a screwed up Pokédex)? Would that work just as well?
The index numbers between Celebi and Treecko is being left untouched, so their functionality remains the same that it would be in any other Gen III rom. And while I'm not sure how the Unown index numbers work, I'm pretty sure you're not supposed to actually use them, as they all have blank base stats. You're supposed to use the first Unown (index #201), and Game Freak had their own method of choosing which letter is appears as, which I think Jambo51 found out how it was controlled in FireRed.

Quote:

7. Are cries stored the same illogical, messy way in Emerald as they are in Ruby? Have you looked into this at all? If so, what have you learned (comparing Ruby to Emerald)?
Yeah, they are all stored in the illogical messy way in all Gen III roms. My guess is that Kecleon was the first Gen III Pokemon created, hence why its the first cry in the table.

InMooseWeTrust May 13th, 2012 6:32 AM

Are you familiar with Destinedjagold's Ruby Destiny hacks? I remember in one of them, there was a cave where you could catch all of the Unown forms. And this was in RUBY. Maybe you can ask him how to exploit those index numbers?

Jambo51 May 14th, 2012 7:03 AM

Update on the dex: It almost works. Problem is, I'm having trouble tracking down the mistakes I made (if I made any - I'm not sure), or the pointers I have not yet repointed. The Pokédex works, and lists the Pokémon, but you currently cannot view the pages. This may be because of what follows.

If you try to scroll up or down (you can scroll with left and right, however), the game reverts you to slot 0 on the dex, which doesn't exist, obviously. I believe that I've missed, or badly pointed 1 of the values, and this particular value represents what slot on the dex you are on.

Nearly finished though, and it's a massive improvement on what I had before.

Chaos Rush May 14th, 2012 1:12 PM

Quote:

Originally Posted by Jambo51 (Post 7175024)
Update on the dex: It almost works. Problem is, I'm having trouble tracking down the mistakes I made (if I made any - I'm not sure), or the pointers I have not yet repointed. The Pokédex works, and lists the Pokémon, but you currently cannot view the pages. This may be because of what follows.

If you try to scroll up or down (you can scroll with left and right, however), the game reverts you to slot 0 on the dex, which doesn't exist, obviously. I believe that I've missed, or badly pointed 1 of the values, and this particular value represents what slot on the dex you are on.

Nearly finished though, and it's a massive improvement on what I had before.

That's good to hear. This might be a stupid suggestion, but wouldn't it be possible to find the value that lists the value of what slot on the dex you're on, simply by:

1. Get a clean Ruby rom
2. Play until you get the Pokedex
3. Open up the Pokedex, scroll between two blank entries back and forth
4. (assuming you're using VBA) Use the Memory Viewer or the Cheat Search function, and look for a value in the ram that changes back and forth every time you scroll up or down
5. Once you find that value, open up the clean Ruby Rom in a hex editor and search for a pointer(s) to that offset that you found with VBA's Memory Viewer and/or Cheat Search function
6. Open up the 649 Ruby Rom in a hex editor and go to the same offset that the pointer(s) is, and fix it
7. ????
8. PROFIT!!!

I apologize if that was already obvious to you, but I'm just trying to help XD. It's the same method I used to find where the game stores the 0x8000 variables when I was converting JPAN's Pokemon encryption routines to work with Ruby version.


EDIT: So I did some experimenting and it appears that the offset for whatever slot you're on in the Pokedex alternates between these offsets: 02019600, 02018600, and 02019E00.

farmerluk May 17th, 2012 5:13 AM

Quote:

Originally Posted by Jambo51 (Post 7163556)
Yes, ok. Very funny. You know fine well that I meant you can't modify an official Pokemon Ruby cartridge... :P For what it's worth, that's the very reason I adopted using the Bios for my patch - I know it should work on the actual hardware.

Got some good news, I have tracked down the Pokedex routines, and I am working on their expansion now. They are remarkably similar to the FR routines, and my initial guess about the static RAM address has proven to be correct.

Personally my way around using a keyboard is to use a ps2 controller and a usb adaptor (since while I have an R4 for DS games, I can only play GBA roms on my laptop or phone)

D3StR0Y4mike May 17th, 2012 8:55 AM

How did you create the new evolution items? Can you make a tutorial?

Saltsas May 25th, 2012 1:01 AM

awesome hack!is it still alive or what?good luck anyway finishing it:D

Chaos Rush May 25th, 2012 7:33 AM

Quote:

Originally Posted by Saltsas (Post 7189822)
awesome hack!is it still alive or what?good luck anyway finishing it:D

It's only been a few days -__-. Just because I haven't posted for a few days doesn't mean its dead...

Jambo51 is working on the Pokedex, while I've been working on sprites.

FableFan02 May 25th, 2012 8:49 PM

I have to say that what you guys have accomplished here is simply astounding. I'm new to Pokemon hacking, but I do have some experience hex editing other gba games and, if what you're doing is anything close to what I've put work into... Dang.

You guys are amazing and I hope to see this come to a satisfying conclusion so that you can get the credit you deserve.

Keep up the good work:D

MarinoKadame May 26th, 2012 9:58 AM

Wonder if later you gonna try the DS versions once ou are done with the GBA, would be great to do more fakemon and stuff on the DS. You've done a great job so far. Also you found a way to add all the Unown on the pokedex ?

Tanveer May 27th, 2012 8:35 AM

thats a really awsome project.

I have been looking around a good guide for this, but all the information are scattered.. Cant really get my head around this.

Is there a good guide on how to add a pokemon, change attacks, stats, dex entry(if not, at least not make the game freeze when its caught) etc etc.

would really love that.

daldryx May 30th, 2012 2:31 AM

Are the new moves still being implemented in this hack?

Mallowigi May 30th, 2012 6:07 AM

Quote:

Originally Posted by Tanveer (Post 7192985)
thats a really awsome project.

I have been looking around a good guide for this, but all the information are scattered.. Cant really get my head around this.

Is there a good guide on how to add a pokemon, change attacks, stats, dex entry(if not, at least not make the game freeze when its caught) etc etc.

would really love that.

As far as i know, there isn't an "easy" way. You can change existing Pokemon with the current tools, but when it comes to inserting them, it's a headache. You'll basically have to repoint a lot of things and stuff...

Really looking forward to the association Jambo/ChaosRush to provide something big. It's a shame that I can't help though, I'd love to understand all these mechanics

Chaos Rush May 31st, 2012 1:29 PM

Unfortunately Jambo51 has encountered some problems with the Pokedex expansion, and I don't want to pressure him to get them fixed. Also I'm going to re-do this whole thing, but this time on FireRed.

Now I know you're thinking: What's the point of doing this on FireRed if Jambo51's project (the original inspiration for this) is already on FireRed? Here's why:

*Jambo's project is focused towards 5th Gen, while mine will be focused towards 4th Gen
*Jambo's project is designed for emulators, while mine is specifically designed for GBA hardware through use of a flashcart, so I don't want features like the Day/Night system because they won't work
*I'll learn things in the process anyway
*I can easily copy+paste all the data and repoint tables as necessary
*FireRed is more documented
*Jambo51 provided documentation in his own thread on expanding the Pokedex (well kinda but whatevs)
*The original reason why I wanted to do DarkViolet on Ruby/Emerald is no longer applicable due to some ASM hacks that are possible on FireRed
*I'm working on all 4th Gen moves, thus forcing me to learn ASM more
*I'm Chaos Rush and I can do whatever I want and don't care if random people on the internet think its pointless


Quote:

Originally Posted by daldryx (Post 7197074)
Are the new moves still being implemented in this hack?

As of very recently, yes. I've actually already begun working on the new FireRed project several days ago:
http://i1151.photobucket.com/albums/o625/ChaosRush/New%20Attacks/2.png

I'll probably be starting a new thread since this new project will be slightly different, so a mod can close this if he/she wants.

daldryx May 31st, 2012 6:09 PM

Gallade without Psycho Cut would suck... Perhaps the animation could be the Confusion background mixed with Cut's animation? Just saying... :)

Sephirothxx June 5th, 2012 11:15 AM

Whoa... this is awesome. I love the fact that someone is really expanding ruby's pokedex.... when this is done you can bet it's gonna go on my flashcart. Can't believe I wasnt aware of this thread...

Chaos Rush June 5th, 2012 1:29 PM

Can a mod close this please? I'm redoing this project.

DrFuji June 5th, 2012 4:50 PM

Thread closed at owner's request.


All times are GMT -8. The time now is 8:54 AM.


Like our Facebook Page Follow us on Twitter © 2002 - 2018 The PokéCommunity™, pokecommunity.com.
Pokémon characters and images belong to The Pokémon Company International and Nintendo. This website is in no way affiliated with or endorsed by Nintendo, Creatures, GAMEFREAK, The Pokémon Company or The Pokémon Company International. We just love Pokémon.
All forum styles, their images (unless noted otherwise) and site designs are © 2002 - 2016 The PokéCommunity / PokéCommunity.com.
PokéCommunity™ is a trademark of The PokéCommunity. All rights reserved. Sponsor advertisements do not imply our endorsement of that product or service. User generated content remains the property of its creator.

Acknowledgements
Use of PokéCommunity Assets
vB Optimise by DragonByte Technologies Ltd © 2023.