![]() |
Quote:
(in other words, it's not gonna happen) |
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. |
Quote:
|
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.
|
Quote:
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. |
Quote:
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. :) |
Quote:
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. |
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. |
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. |
Quote:
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 |
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. |
Quote:
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. |
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. |
Quote:
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. |
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
|
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:
|
Quote:
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. |
Quote:
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 |
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. |
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. =/ |
Quote:
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. |
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
|
Brilliant
It suprises me that you putted in all pokémon
but what about the pokédex that's what is bothering me. |
Quote:
Quote:
|
Quote:
I always make sure that everything I do on this patch works on my GBA: http://i50.tinypic.com/1570k2h.jpg |
could u post the snivy pc icon up? would like to add it into my rom hack...
sorry to disturb u |
Quote:
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. |
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?
|
Quote:
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:
|
Quote:
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! |
Quote:
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:
|
Quote:
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) |
m watchin it ryt now.... :)
|
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. |
Quote:
Quote:
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:
|
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) |
Quote:
I know that this is hardly your fault, I just felt the need to say something like this. :P |
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)? |
Quote:
Quote:
Quote:
Quote:
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:
Quote:
Quote:
Quote:
|
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?
|
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. |
Quote:
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. |
Quote:
|
How did you create the new evolution items? Can you make a tutorial?
|
awesome hack!is it still alive or what?good luck anyway finishing it:D
|
Quote:
Jambo51 is working on the Pokedex, while I've been working on sprites. |
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 |
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 ?
|
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. |
Are the new moves still being implemented in this hack?
|
Quote:
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 |
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:
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. |
Gallade without Psycho Cut would suck... Perhaps the animation could be the Confusion background mixed with Cut's animation? Just saying... :)
|
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...
|
Can a mod close this please? I'm redoing this project.
|
Thread closed at owner's request.
|
| All times are GMT -8. The time now is 8:54 AM. |
![]()
© 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.