PDA

View Full Version : Research: Chaos Rush's 649 on Ruby Project


Chaos Rush
November 20th, 2011, 11:55 AM
This project is very similar to Jambo51's project, in a sense that we're adding more Pokemon to a 3rd Gen game. However, mine is a bit different for these reasons:
*It's on Pokémon Ruby
*I have no intentions of adding 4th and 5th Gen abilities (for now)
*I have no intentions of adding 4th and 5th Gen moves (for now)
*I have no intentions of adding 4th Gen items (jk I'll add some stuff like evolutionary stones)
*I have no intentions on adding in forme changes with ASM, instead I'm just going to have Pokémon "evolve" to their alternate formes (even Arceus)
EDIT: *Actually I'm going to use some ASM after all since I learned it a bit, and I wrote a routine that allows me to change index numbers. But it only works without glitches if the index numbers have the same base stats, so for now, ASM is being used for handling Burmy's forms.


The features it will contain:
*649 Pokémon
*Every Pokémon will have a new sprite in the DS art style, but perfectly cleaned up. Sprites are taken from my Sprite Resource Project (http://www.pokecommunity.com/showthread.php?t=267728)
*A few new items that work as evolutionary stones to handle forme changes
*Lowercase everything instead of HAVING EVERYTHING IN ALL CAPS LOL

So far I've done:
*Re-point Pokémon names table
*Re-point Base stats table
*Re-point front sprites table
*Re-point back sprites table
*Re-point normal palettes table
*Re-point shiny palettes table
*Re-point TM-compatibility table
*Re-point evolution table
*Re-point moveset table
*Re-point Icon table
*Re-point Icon Palette table
*Re-point battle positioning tables
*Re-point footprint table


Screenshots (some of these are outdated):
http://img205.imageshack.us/img205/3423/42708380.png http://img830.imageshack.us/img830/5830/10628986.png http://img404.imageshack.us/img404/4834/91922913.png http://img51.imageshack.us/img51/4981/97618192.png http://img36.imageshack.us/img36/1885/41031222.png http://img856.imageshack.us/img856/9537/89443249.png http://img521.imageshack.us/img521/5438/66356726.png http://i39.tinypic.com/incnkm.png http://i44.tinypic.com/2wd8u9h.png http://i40.tinypic.com/2zitoxl.png http://i44.tinypic.com/t4to2d.png

I would like to thank the people who mainly posted in this thread:
http://www.pokecommunity.com/showthread.php?t=185257&highlight=65536&page=2


namely HackMew, thethethe, Wichu, and a couple others, for contributing VERY helpful information on getting things to work. Also special thanks for Jambo51 for helping find the move animation table offset.

Tools used so far:
*Gold Finger hex editor
*Pokemon Game Editor
*Wichu's Sprite Editor
*a calculator
*Paint

Credits:
*Me - for doing all this stuff
*everyone that posted & contributed helpful information in that thread I linked to
*Jambo51 - for helping me with stuff, and for his original 649 project that inspired me, for telling me about the secondary cry table, for fixing some problems with cries, and for just being awesome in general

I have successfully figured out how to add new working evolutionary stones, and thus here is how I will handle all evolutions and forme changes: (list might be a bit outdated)
Gligar --Razor Stone----> Gliscor
Sneasel --Razor Stone----> Weavile
Happiny --Royal Stone----> Chansey
Poliwhirl --Royal Stone----> Slowking
Slowpoke --Royal Stone----> Slowking
Clamperl --Razor Stone--> Huntail
Clamperl --Royal Stone--> Gorebyss
Onix --Magnet Stone----> Steelix
Scyther --Magnet Stone----> Scizor
Porygon --Porygon Stone-> Porygon2
Porygon2 --Porygon Stone-> Porygon-Z
Rhydon --Power Stone----> Rhyperior
Electabuzz --Power Stone----> Electivire
Magmar --Power Stone----> Magmortar
Dusclops --Power Stone----> DUsknoir
Seadra --Power Stone----> Kingdra
Magneton --Magnet Stone---> Magnezone
Nosepass --Magnet Stone---> Probopass
Feebas --Royal Stone---> Milotic
Karrablast --ShelmetDNA----> Escavalier
Shelmet --KarrablastDNA-> Accelgor
Mantyke --RemoraidDNA---> Mantine

Kadabra --Friendship--> Alakazam
Machoke --Friendship--> Machamp
Graveler --Friendship--> Golem
Haunter --Friendship--> Gengar
Boldore --Friendship--> Gigalith
Gurdurr --Friendship--> Conkeldurr
Piloswine --Friendship--> Mamoswine

Lickitung --Lv33--> Lickilicky
Tangela --Lv36--> Tangrowth
Aipom --Lv32--> Ambipom
Yanma --Lv33--> Yanmega
Bonsly --Lv17--> Sudowoodo
Mime Jr. --Lv18--> Mr. Mime

FORM CHANGING:
Rotom --Oven-----------> Heat Rotom
Rotom --Washing MCHN.--> Wash Rotom
Rotom --Refridgerator--> Frost Rotom
Rotom --Electric Fan---> Fan Rotom
Rotom --Lawn Mower-----> Mow Rotom
Rotom --Separator------> Rotom
Kyurem --ZekromDNA-----> Black Kyurem
Kyurem --ReshiramDNA---> White Kyurem
Kyurem --God Stone------> Kyurem
Genesect --Shock Drive--> Shock Drive Genesect
Genesect --Burn Drive---> Burn Drive Genesect
Genesect --Chill Drive--> Chill Drive Genesect
Genesect --Douse Drive--> Douse Drive Genesect
Genesect --Plasma Drive--> Gensect
Deoxys: Space Crystal
Deerling: SeasonalFlute
Sawsbuck: SeasonalFlute
Cherrim: Light Prism
Giratina: Griseous Orb
Shaymin: Gracidea
Arceus: Rainbow Plate
Darmanitan: Zen Doll
Meloetta: Relic Flute

NEW ITEMS:
*Shiny Stone
*Dusk Stone
*Dawn Stone
------------
*Razor Stone
*Royal Stone
*Magnet Stone
*Porygon Stone
*Power Stone
*Space Crystal
*ShelmetDNA
*KarrablastDNA
*RemoraidDNA
*ZekromDNA
*ReshiramDNA
*God Stone
*Oven
*Washing MCHN.
*Refridgerator
*Electric Fan
*Lawn Mower
*Separator
*SeasonalFlute
*Shock Drive
*Burn Drive
*Chill Drive
*Douse Drive
*Plasma Drive
*Light Prism
*Griseous Orb
*Gracidea
*Rainbow Plate
*Zen Doll
*Relic Flute



TO-DO LIST:
*Pokedex entries
*Add movesets for 4th and 5th Gen Pokemon
*Finish my 64x64 sprite project (roflmao this will take a while)
*Possibly start a separate project based off of this one where I work on 4th Gen moves, items, and abilities

Chaos Rush
November 25th, 2011, 01:00 PM
http://img233.imageshack.us/img233/1388/39245227.png http://img706.imageshack.us/img706/5752/38881409.png http://img337.imageshack.us/img337/7362/55451574.png
http://img805.imageshack.us/img805/8241/44291933.png http://img521.imageshack.us/img521/5438/66356726.png
Yup, Turtwig and Grotle no longer look like Blastoises.

Can a mod rename this to, "Chaos Rush's 493 on Ruby & Emerald Project"? Because I've also added more Pokemon to Emerald.

dudedude1
November 25th, 2011, 03:05 PM
Hey a new thread for this. Its looking good. I love how the sprites are so well made. My younger brother was recently planning Ruby Destiny: Reign of Legends and had a Grotle. I said "Wow look how poorly resized that is!" I am giving no offense to the creator because it was a great hack but the resizing was not great. I would now like to ask, are these the same sprites that are gonna be in Jambo's patch? If not then will FR users be allowed to rip sprites from here and insert them into Jambo's while crediting you if used in a public hack? Can't wait to see more masterpieces for you, Chaos Rush.

Chaos Rush
November 25th, 2011, 04:26 PM
I would now like to ask, are these the same sprites that are gonna be in Jambo's patch? If not then will FR users be allowed to rip sprites from here and insert them into Jambo's while crediting you if used in a public hack? Can't wait to see more masterpieces for you, Chaos Rush.
No, these sprites won't be in Jambo's patch (as of now), because I don't think Jambo even knows about these new sprites.

And lol, this isn't a "new thread for a sprite project", this is actually my own patch. In case this isn't clear, let me say this: I'm making my own patch for Ruby and Emerald with 493 Pokemon.

I've already done all of these on Ruby and Emerald:

*Re-point Pokémon names table
*Re-point Base stats table
*Re-point front sprites table
*Re-point back sprites table
*Re-point normal palettes table
*Re-point shiny palettes table
*Re-point TM-compatibility table
There's actually 439 Pokemon index numbers already in the 3rd Gen games, so Turtwig starts at #440, so currently in my roms I have 583 Pokemon. I count forme changes as separate Pokemon, hence why I added waaay more than 107 Pokemon slots, even though there's only 107 Pokemon introduced in Gen IV.

Jambo51
November 25th, 2011, 04:31 PM
No, these sprites won't be in Jambo's patch (as of now), because I don't think Jambo even knows about these new sprites.

And lol, this isn't a "new thread for a sprite project", this is actually my own patch. In case this isn't clear, let me say this: I'm making my own patch for Ruby and Emerald with 493 Pokemon.

Why not go the whole hog and add Gen 5 as well?
I'm just asking out of curiosity.
Also, feel free to use the data structures in my patch for yours if possible. It'll save you a bunch of time if you do, trust me.

dudedude1
November 25th, 2011, 04:40 PM
NAnd lol, this isn't a "new thread for a sprite project", this is actually my own patch. In case this isn't clear, let me say this: I'm making my own patch for Ruby and Emerald with 493 Pokemon.

Yeah, I know this is a patch but I'm hacking FR and was just wondering if ripping and reinserting and then crediting you was allowed?

Chaos Rush
November 25th, 2011, 04:44 PM
Why not go the whole hog and add Gen 5 as well?
I'm just asking out of curiosity.
Also, feel free to use the data structures in my patch for yours if possible. It'll save you a bunch of time if you do, trust me.
Well, a while ago I had this hack project going on called Pokemon DarkViolet. It was part of a 4-part series of hacks. I stopped because I realized I wanted to do it on Gen IV. But that would be kinda impossible with the lack of mapping documentation.

So the reason why my patch won't have Gen V Pokemon is simply because I have no use for them in my future hacks. BUT, I was thinking this yesterday, it really isn't that hard to re-point all the tables, it just takes a little while, so I might re-do the Ruby patch to include Gen V Pokemon. I'm not sure about Emerald, in fact, I'm not even sure if there's enough space in the rom to re-point all the tables to include 649 Pokemon, along with sprites and everything.

But you know what, I'll just see how long it takes for me to do all the sprites, then I'll think about Gen V Pokemon. Another reason is that do you seriously expect me to make sprites for 649 Pokemon, 493 is enough...

On and about the data structures, your patch has 649 Pokemon and a bunch of ASM stuff, while my patch has 493 Pokemon and no asm (except for that thing you have to do to make the new Pokemon sprites show-up in battle properly), so I don't think I can just copy+paste the data structures, but thanks anyways.

Yeah, I know this is a patch but I'm hacking FR and was just wondering if ripping and reinserting and then crediting you was allowed?
Of course it's allowed, the reason why I'm doing the sprite project is because I'm tired of seeing hacks with badly resized sprites.

EDIT: lol
http://img36.imageshack.us/img36/1885/41031222.png http://img856.imageshack.us/img856/9537/89443249.png http://img35.imageshack.us/img35/7472/41271925.png
Please ignore the weird Pokedex numbers, these sprites were inserted on a copy of the patch I made that I'm using specifically to "screw around" on. The actual patch does not have any movesets or sprites inserted yet.

Jambo51
November 26th, 2011, 05:51 AM
By data structures, I meant stuff like the base data (which is the same for you as it is for me, after all).

If you copy and paste it, then that will save you having to redo it all from scratch on your ROM.

No, I don't expect you to sprite them all. That would be insane. :P

Good luck, man!

Chaos Rush
November 26th, 2011, 10:30 AM
So here's what I've decided:

*The Ruby patch will have 649 Pokemon

*The Emerald patch will have 493 Pokemon. This is because of free space issues, and the Battle Frontier. There's enough Pokemon in the Battle Frontier to hack and evenly distribute 4th Gen Pokemon, but I don't think there's enough for 5th Gen Pokemon

*Because of this, in my sprite project, I will not be making a second frame for Gen V Pokemon, since Ruby doesn't have sprite animations.

These are the only Gen V sprites I've done so far:
http://img707.imageshack.us/img707/2802/snivyf.png

http://img836.imageshack.us/img836/3937/zekrom.png

Chaos Rush
November 27th, 2011, 05:57 PM
Minor issue I've run into: In Emerald, I'm assuming there's a table that tells how the Pokemon will animate when you send it out/view it in the Summary. I don't know where the table is, and until I find it and repoint it, some of the new Pokemon will freeze when viewing they try to animate. I know this because when they don't have to animate, they show up fine:
http://img18.imageshack.us/img18/5611/78839019.png http://img221.imageshack.us/img221/1213/17681666.png http://img830.imageshack.us/img830/7417/31144716.png http://img836.imageshack.us/img836/2701/69992585.png
(ignore the messed up icon sprites, I have yet to repoint those tables)

But when they have to animate, it freezes:
http://img259.imageshack.us/img259/9904/81259057.png
It also freezes when the front sprite that causes the freezing is the opponent Pokemon, like if you set it to appear in the grass, or if a trainer sends it out. For some reason only some of the added Pokemon freeze when viewing their animation, others work fine.

If anyone knows where the animation pointer in Emerald is (NOT THE FRONT FRAMES POINTER), that would be really great.

On a side note, here's my really lame way of doing forme changes:
http://img577.imageshack.us/img577/3221/25016735.png http://img545.imageshack.us/img545/3460/25316468.png http://img849.imageshack.us/img849/2779/83299820.png http://img580.imageshack.us/img580/2241/61749166.png http://img714.imageshack.us/img714/2833/27505505.png http://img820.imageshack.us/img820/2139/48262117.png
You use an item just like an evolutionary stone.

(ignore the fugly front sprites, they're just placeholders I inserted on a backup copy of the rom specifically for "testing things out" on. On the actual Emerald rom, every new Pokemon currently has Blastoises's pointers for sprites and palettes, so every Pokemon I inserted looks like Blastoise)

Chaos Rush
December 13th, 2011, 09:12 PM
Just posting to say this isn't dead, I've mainly been working on the sprite resource.

BUT.

Now, I know I said that I won't be implementing 4th/5th Gen moves, but I changed my mind...
http://img94.imageshack.us/img94/7449/20924770.png

Special thanks to Jambo51 for his thread on adding more moves, and special thanks to Darthatron for his research on the physical/special split (which I have successfully implemented into Ruby), and special thanks to Gamer2020 for Pokemon Game Editor, which saved me a lot of time on choosing which attack is physical/special. I won't be implementing every Gen IV and V move, but I'll implement every move possible without asm. I've gone through all the new attacks and made a list of all possible moves that I can add, so there will be 129 new moves. Also some attacks might be very slightly different in order to compensate for something, such as Roost having less PP because you can't remove the flying type in Gen III without asm...

In the Sideshowcase, I've posted a patch for Ruby on the physical/special split, but the thread hasn't been approved yet.

dooshboi
December 17th, 2011, 07:21 PM
Wow this is awesome. Why isn't there more interest in it!?

Jambo51
December 17th, 2011, 11:31 PM
I know, right? The lack of interest in these 2 patches and my own FR 649 Patch is criminal at times. Myself and Chaos Rush put a lot of time and effort into these patches (mines is downloadable - but buggy). Still, good things come to those who wait, and eventually, the patches will start to gain followers.

@Chaos Rush - I don't have the offset handy, but when I get home from work, I'll pass it on. I only have FR's offset, but as you suggested you could work with that.

Chaos Rush
December 18th, 2011, 12:18 AM
I know, right? The lack of interest in these 2 patches and my own FR 649 Patch is criminal at times. Myself and Chaos Rush put a lot of time and effort into these patches (mines is downloadable - but buggy). Still, good things come to those who wait, and eventually, the patches will start to gain followers.
I think it's simply because both of our patches aren't complete, so people won't be that interested until they're usable. Yours is in a beta stage, while I don't even have anything released besides the physical/special split thing in the Sideshowcase, which doesn't contain any new moves or Pokemon.


@Chaos Rush - I don't have the offset handy, but when I get home from work, I'll pass it on. I only have FR's offset, but as you suggested you could work with that.
Yes, that would be wonderful. A while ago I found a tool that can turn an offset into a pointer, and it can turn a pointer into an offset. So FireRed's animation table offset will do, because then I can just go to the offset of the first one listed in the table in FireRed, then search for the same bytes on Ruby, then re-calculate what the pointer should be according to where it is on Ruby, then it should take me straight to the table on Ruby. I used a very similar method when using your tutorial to add more moves, since yours was for FireRed. Also Darthatron's physical/special split was for Emerald, but I used a similar byte searching method to replicate it on Ruby.


Oh and btw the Emerald patch has been canceled, I'm now working exclusively on Ruby.
EDIT: (and a mod should change the 493 in the title to 649 :P)

Jambo51
December 18th, 2011, 03:19 PM
Oh and btw the Emerald patch has been canceled, I'm now working exclusively on Ruby.
EDIT: (and a mod should change the 493 in the title to 649 :P)

That's a shame - but perfectly understandable. Emerald is difficult to work with at the best of times, so adding a bunch of extra Pokémon wouldn't exactly be the easiest job, would it?

Anyway, the offset I promised you is this:
0x1C68F4

This is a pointer to a table of pointers in FR. The pointers point to a script of sorts. This script is what will be shared between the versions. You can use those scripts to backtrack to the pointer in your ROM. Apologies for not answering your query in the actual thread, but I genuinely hadn't noticed it.

Chaos Rush
December 18th, 2011, 04:54 PM
That's a shame - but perfectly understandable. Emerald is difficult to work with at the best of times, so adding a bunch of extra Pokémon wouldn't exactly be the easiest job, would it?

Anyway, the offset I promised you is this:
0x1C68F4

This is a pointer to a table of pointers in FR. The pointers point to a script of sorts. This script is what will be shared between the versions. You can use those scripts to backtrack to the pointer in your ROM. Apologies for not answering your query in the actual thread, but I genuinely hadn't noticed it.
Thank you so much, I found the Ruby offset for the table, which ended up being 0x1C7168.


EDIT:
http://img807.imageshack.us/img807/1930/91266137.png http://img831.imageshack.us/img831/269/30620271.png http://img687.imageshack.us/img687/5752/14409464.png http://img21.imageshack.us/img21/6295/97841229.png http://img28.imageshack.us/img28/1372/70032311.png

Using Volt Tackle as Fusion Bolt's placeholder animation = Best. Idea. Ever.

Chaos Rush
December 21st, 2011, 01:06 AM
I have all placeholder animations set for the 129 new moves, and I chose "fitting" animations.

http://img41.imageshack.us/img41/5885/56007059.png http://img14.imageshack.us/img14/2669/27618768.png http://img594.imageshack.us/img594/5568/88812541.png http://img46.imageshack.us/img46/5788/47828330.png http://img256.imageshack.us/img256/5016/64834404.png http://img513.imageshack.us/img513/91/93211605.png http://img692.imageshack.us/img692/812/17390380i.png http://img405.imageshack.us/img405/2218/23113027.png http://img72.imageshack.us/img72/8885/53168007.png http://img97.imageshack.us/img97/1715/99113930.png http://img716.imageshack.us/img716/5950/82334758.png http://img341.imageshack.us/img341/4080/69054780.png

Animations I chose:

Roost = Featherdance
Mirror Shot = Metal Sound
Hammer Arm = Dynamic Punch
Gyro Ball = Weather Ball
Bullet Punch = Mach Punch
Draco Meteor = Eruption
Spacial Rend = Cosmic Power
Seed Bomb = Egg Bomb
Earth Power = Fissure
Focus Blast = Horn Drill
Nasty Plot = Amnesia
Power Gem = Sky Attack (charging up)


I also put in all the move data for the 4th Gen moves, but I haven't started on 5th Gen moves yet because it was getting really boring and tedious, but I'll resume tomorrow (or soon). Besides, I already have the animations set for then 5th Gen moves anyways.

There are a total of 129 moves added. Most from 4th Gen, a lot from 5th Gen. Basically I added the ones that are possible to add without ASM, such as Dragon Pulse, but I didn't add impossible moves like Guard Swap.

Pikachu222
December 21st, 2011, 01:37 AM
nicely done im looking foward to the download link

Jcornell94
December 21st, 2011, 07:35 AM
Do you know how to actually change the animations?

Chaos Rush
December 21st, 2011, 08:55 AM
Do you know how to actually change the animations?
Yes and no. I could easily change the pointers of the new moves to a custom animation script. But, I don't know how to make a custom animation script, but I think Jambo51 and Gamer2020 are working on a battle script editor.

Of course the final version will have custom animations, these are just placeholders. (but I think using Featherdance for Roost turned out quite nicely :P)

Jambo51
December 21st, 2011, 09:24 AM
Actually - we were thinking about having Featherdance followed by the healing animation for Roost. It is possible (although we don't really know how yet) to combine bits of existing animations to create new ones. And Gamer2020 is working on a BATTLE script editor - this is an entirely different thing as the battle scripts control what the moves DO.

Myself and NintendoBoyDX are working on the animations. :) It goes without saying - if we work out a particularly good animation - we'll pass it on to you. You are, after all, letting me use your 4th and 5th Gen sprites in my patch, so it only seems fair. :P

Chaos Rush
December 21st, 2011, 09:45 AM
Actually - we were thinking about having Featherdance followed by the healing animation for Roost. It is possible (although we don't really know how yet) to combine bits of existing animations to create new ones. And Gamer2020 is working on a BATTLE script editor - this is an entirely different thing as the battle scripts control what the moves DO.

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

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


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

Jambo51
December 21st, 2011, 10:33 AM
Well, to be more accurate, I'm working on both.

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

Chaos Rush
December 21st, 2011, 10:43 AM
Well, to be more accurate, I'm working on both.

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


To change the topic, I have a question to ask all of you:
http://img849.imageshack.us/img849/60/14142752.png
Should I modify the Contest page on the Summary to look like this? If I did this, I would have to make it so that Pokemon Contests no longer work properly.

Full Metal
December 21st, 2011, 01:37 PM
I would only modify the battle-moves page, but maybe that's just me.

Chaos Rush
December 21st, 2011, 05:31 PM
Actually, let's be honest, who gives a crap about Contests. Everybody hacks FireRed anyway and doesn't care about Contests, and not to mention if I wanted to keep Contests, I would have to decide how the Gen IV and V moves would behave in a Gen III contest, not to mention there's no Contest stuff in Gen V at all.

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

On a more cheerier note, I got around to filling in the data for the remaining attacks, woo!
http://img217.imageshack.us/img217/7283/18174940.png http://img192.imageshack.us/img192/2874/46899652.png http://img594.imageshack.us/img594/3873/19758232.png http://img59.imageshack.us/img59/8338/80137478.png

Pretty soon I'll release a patch that has updated movesets for the 386 Pokemon in Ruby.

Lost Heart
December 21st, 2011, 06:37 PM
Wow. This is quite amazing. It's kind of a shame that you haven't been receiving more support for this.

Speedster
December 21st, 2011, 08:10 PM
I like the animations you both are applying Jambo and Chaos Rush. I tried to look for that Pokemon Vega game with the animations but couldn't find that. Although it would be very cool to see those move animations in-game. And as agentgeo said you guys really deserve some credit for this.

Chaos Rush
December 22nd, 2011, 12:50 AM
Wow. This is quite amazing. It's kind of a shame that you haven't been receiving more support for this.
Thank you, and what's even more amazing is that absolutely no ASM was required.

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


BUT


Here is my first "custom" animation:
http://img705.imageshack.us/img705/3582/62429622.png
I combined Mach Punch and Sky Uppercut's animations to produce this, which is essentially Sky Uppercut but with Mach Punch's background. But I might try and make it so that it uses Aeroblast's background.

EDIT:
http://img854.imageshack.us/img854/9624/73507905.png

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

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

0 170 39 0 151 39 10 3 14 251 97 29 8 40 8 5 1 55 0 23 12 12 8 4 38 2 248 31 60 8 2 5 0 0 28 0 0 0 0 0 5 0 4 4 3 161 127 10 8 2 5 1 0 4 0 0 0 6 0 1 0 25 123 0 63 2 168 180 61 8 131 4 228 255 28 0 1 0 1 0 4 1 25 123 0 63 2 168 180 61 8 131 4 241 255 8 0 1 0 1 0 25 123 0 63 4 1 25 123 0 63 2 168 180 61 8 131 4 251 255 244 255 1 0 1 0 4 1 25 123 0 63 2 168 180 61 8 131 4 0 0 224 255 1 0 1 0 4 1 25 123 0 63 2 168 180 61 8 131 4 5 0 204 255 1 0 1 0 2 248 31 60 8 2 5 1 0 230 255 16 0 1 0 4 0 4 4 3 85 129 10 8 2 5 1 0 0 0 3 0 6 0 1 0 4 30 2 224 31 60 8 2 3 0 0 0 0 6 0 4 4 2 224 31 60 8 2 3 1 0 0 0 6 0 11 3 13 21 22 16 7 255 255 23 8



EDIT: Oh and I found the patch for Pokemon Vega, gonna mess around with it

Jambo51
December 29th, 2011, 01:52 AM
Quick question. If you're adding the extra 263 Pokemon, won't you need to ASM hack the seen/caught flags for them to work properly?

In which case, what do you propose you will do, since IIRC you don't have the luxury of using the memory block hack?

Chaos Rush
December 29th, 2011, 11:18 AM
Quick question. If you're adding the extra 263 Pokemon, won't you need to ASM hack the seen/caught flags for them to work properly?

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

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

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

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

Jambo51
December 29th, 2011, 12:15 PM
Think of the expression, "We'll cross that bridge when we get there." In other words, I'll deal with it once all the sprites and movesets have been added.

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

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

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

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

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

If you manage to find that much free memory, it'd be easy to port the routine I made. Its the memory block, as opposed to the routine, which is causing the problems after all.

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

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

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

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

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

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



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

Pingouin_7
December 29th, 2011, 12:46 PM
That's a pretty nice work.
Looking forward to it.

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

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

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

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

JPAN's save block hack gives us an extra 0x1000 bytes of memory to use to save things to the save file. Which is useful since there is little or no free space inside the existing save blocks.

Chaos Rush
December 29th, 2011, 02:28 PM
Well then, looking at the Memory viewer, 0x0203A3DF - 0x0203FFFF appears to be unused in Pokemon Ruby, would it be possible to try anywhere from there? And there's a bunch of unused bytes before 0x0203A3BF that appears to be unused - in my nearly complete Ruby save file.


(sorry but I'm not sure how save blocks work)

Jambo51
December 29th, 2011, 02:42 PM
Yeah, I'm not that sure either man. But the thing is, this hack NEEDS the extended seen/caught flags. It would need ASM with either way you plan to do it, the only difference is that having them all available is infinitely better than just a handful of them.

I suspect (although I do have no evidence) that the area you've pointed me towards probably doesn't get saved when saving.

Chaos Rush
December 29th, 2011, 02:49 PM
Yeah, I'm not that sure either man. But the thing is, this hack NEEDS the extended seen/caught flags. It would need ASM with either way you plan to do it, the only difference is that having them all available is infinitely better than just a handful of them.

I suspect (although I do have no evidence) that the area you've pointed me towards probably doesn't get saved when saving.
I'll be willing to test it out for you. I have an older version of this hack that has 493 Pokemon, and we can also try having the 25 "??" Pokemon (the ones that occupy the slots after Celebi and before Treecko) show up in the Pokedex, since they actually have Pokedex numbers assigned to them (387-411).

Pingouin_7
December 29th, 2011, 08:22 PM
IMO, having those Pokémon show up as caught isn't that important, as long as they don't mess up anything in-game.
But having it done would make the hack look closer to what GameFreak would originally have done if they had included those Pokémon in Gen III.

Mr.Pkmn
December 29th, 2011, 11:31 PM
By sacrificing a box you get 80x30=2400 savable space.

Yes, there WILL be a storage shortage problem when you're dealing with an hack with x2 pokemon but i think it's a good compromise.

Just make sure to disable access to box 14 by every means

Chaos Rush
December 29th, 2011, 11:53 PM
By sacrificing a box you get 80x30=2400 savable space.

Yes, there WILL be a storage shortage problem when you're dealing with an hack with x2 pokemon but i think it's a good compromise.

Just make sure to disable access to box 14 by every means
But then I have to locate where the Box 14 data is stored in the ram, then edit the routine that loads the boxes to prevent box 14, neither of which I have any idea how to do.

By no means is your idea a bad one, but keep in mind that I have very little ASM knowledge and have no idea how to do anything when it comes to ram re-pointing.

Not to mention there's a good chance Ruby has enough space in the RAM, considering how it saves the least data out of all the GBA games.

Powerflare
December 30th, 2011, 05:50 PM
Just stumbled upon this project today and it's a really cool idea. Keep up the excellent work guys! :D I'm looking forward to seeing the final product.

Pingouin_7
December 30th, 2011, 07:39 PM
By the way, I like the way you decided to handle forme changes.
It's the best way to do it without having to be knowledgeable in ASM editing.
I assume the items are key items that don't get consumed once you change forme?

Powerflare
December 31st, 2011, 11:12 AM
Yeah, that's a good idea for dealing with the numerous Pokemon that have different formes. What are you gonna do about Pokemon such as Arceus with 17 (18 if you include ???-type, I thought I heard it has a sprite for it) formes? Will it evolve, for example, like this? Normal-type > Fire-type > Water-type > other types > Normal-type?

Also, another idea for the Brave Bird animation is the attacking phase of Sky Attack. Also Luster Purge could be used for a variety of different moves and would look pretty nice imo.

Another thing... I envy your spriting abilities. They all look so good. *is jealous*

Chaos Rush
December 31st, 2011, 02:18 PM
Since it's taking LIKE SERIOUSLY FOREVER to insert updated movesets, I decided since I'm not going to post anything for a while, I might as well have something to show:

http://imageshack.us/clip/my-videos/825/g0w.mp4/
(this video contains Flare Blitz, Seed Bomb, Aqua Tail, Inferno, and Shadow Claw)
EDIT: so um the video doesn't work crap ill upload it somewhere else soon



~~~~~~~
By the way, I like the way you decided to handle forme changes.
It's the best way to do it without having to be knowledgeable in ASM editing.
I assume the items are key items that don't get consumed once you change forme?
Well I actually haven't implemented the new items yet, that was just a test using existing items. But using them as Key Items sounds like a good idea.


Yeah, that's a good idea for dealing with the numerous Pokemon that have different formes. What are you gonna do about Pokemon such as Arceus with 17 (18 if you include ???-type, I thought I heard it has a sprite for it) formes? Will it evolve, for example, like this? Normal-type > Fire-type > Water-type > other types > Normal-type?

Also, another idea for the Brave Bird animation is the attacking phase of Sky Attack. Also Luster Purge could be used for a variety of different moves and would look pretty nice imo.

Another thing... I envy your spriting abilities. They all look so good. *is jealous*
About Arceus, I'm not entirely sure, but I'll do it somehow. I have creative ideas.

And yes, I was thinking about simply using the Sky Attack phase 2 animation, though possibly with a different background to differentiate it. And yes I've already used Luster Purge's animation for several new moves.

not to brag about my art, but I wish more people cared about sprites so I didn't have to sprite all this stuff alone ;_;

PKMN Trainer Alison
December 31st, 2011, 05:19 PM
With arceus, Maybe you could do an eevee like evolution depending on which "stone" you use. Then those forms all evolve back into the original form. I don't know, it was the best I could contribute to this awesome project.

Chaos Rush
December 31st, 2011, 05:45 PM
With arceus, Maybe you could do an eevee like evolution depending on which "stone" you use. Then those forms all evolve back into the original form. I don't know, it was the best I could contribute to this awesome project.
You can only have up to 5 evolutions. I already know what I'm going to do with Eevee, but I'm not too sure about Arceus yet.

Pingouin_7
December 31st, 2011, 09:58 PM
How about keeping only the Normal forme Arceus?
Or keeping only 5 formes.

Powerflare
January 1st, 2012, 07:25 PM
so um the video doesn't work crap ill upload it somewhere else soon

~~~~~

About Arceus, I'm not entirely sure, but I'll do it somehow. I have creative ideas.

And yes, I was thinking about simply using the Sky Attack phase 2 animation, though possibly with a different background to differentiate it. And yes I've already used Luster Purge's animation for several new moves.

not to brag about my art, but I wish more people cared about sprites so I didn't have to sprite all this stuff alone ;_;

I can't wait to watch it! Also, I wish I could help... but I can't sprite. I fail horribly. :( Anyways, Game Freak should be offering you money for your sprites... they're just that awesome.

Chaos Rush
January 1st, 2012, 08:00 PM
Alright guys, check this out:
http://tinypic.com/r/4gol6a/5
(the sound goes off-sync after a while, I don't know how to fix that)

Powerflare
January 2nd, 2012, 09:37 AM
Alright guys, check this out:
http://tinypic.com/r/4gol6a/5
(the sound goes off-sync after a while, I don't know how to fix that)
Wow! Excellent work! Great job! The sprites look great; also, great job with the new moves. :D

Rayziken 2
January 2nd, 2012, 11:59 AM
Perhaps you could make a logo that's half of the move's type (Like Grass) and category (Like Special). I'll make them all for you.

EDIT: Couldn't make them properly, the halfway line isn't exactly in the middle, and I can't find a good diagonal half line.

Teh Blazer
January 2nd, 2012, 12:20 PM
I must say, this is very impressive! I like how you cut bits from moves and re-use them to create new ones. It's pretty awesome.

Chaos Rush
January 2nd, 2012, 01:21 PM
Perhaps you could make a logo that's half of the move's type (Like Grass) and category (Like Special). I'll make them all for you.

EDIT: Couldn't make them properly, the halfway line isn't exactly in the middle, and I can't find a good diagonal half line.
Don't even bother, because I already know what I'm going to do (I will destroy Pokemon Contests! mwahahahah). Not to mention your method would involve creating an extra 17 new types, which is laughably ridiculous and tedious.

I must say, this is very impressive! I like how you cut bits from moves and re-use them to create new ones. It's pretty awesome.
Well that's not exactly what I did, I re-pointed all the tables associated with moves and simply added new moves, and currently most of the new moves use existing animations (EXCEPT BRAVE BIRD HAS A CUSTOM ANIMATION :DDDDDDD). But thanks anyways :D

Oh, and the reason why I won't be releasing anything for a while is because I'm currently in the process of updating every Pokemon's moveset. And it's taking literally forever ;____;

Speedster
January 2nd, 2012, 02:11 PM
Oh, and the reason why I won't be releasing anything for a while is because I'm currently in the process of updating every Pokemon's moveset. And it's taking literally forever ;____;
Well as I read you said you found that one hack that had B/W move graphics inserted so I'm guessing that'll help speed up the process.

Rayziken 2
January 3rd, 2012, 08:18 AM
That would be a good idea. My only problem is that the B/W graphics hurt my eyes whenever I play the game, including the move ones.

Chaos Rush
January 3rd, 2012, 03:14 PM
Well as I read you said you found that one hack that had B/W move graphics inserted so I'm guessing that'll help speed up the process.
Um no I said Pokemon Vega has Gen IV attacks in it. I don't think it has Gen V.

Also I was talking about each and every individual Pokemon's moveset. Not the game's moveset, but the Pokemon's. I have to do 386 of them. And I've only done 40 so far.

SkieTheKitsune
January 5th, 2012, 01:23 PM
>nitpicky post even though no one cares
Actually, Vega has 22 custom Gen V moves. C:

Anyway, I'm looking forward to this, so I'll be steadily following it. Keep up the good work. :D

AMT
January 13th, 2012, 10:55 PM
Please do not give up. :0 Im looking forward to this!

Chaos Rush
January 18th, 2012, 09:24 PM
Please do not give up. :0 Im looking forward to this!
Haven't given up, still working on movesets. Yes, it's taking THAT long.

Currently have up to Kadabra (#64) complete.

That's 64 movesets inserted. Only 322 to go. (585 if I include Gen IV and V)
*sigh* -____________-

Darkest Shade of Light
January 22nd, 2012, 09:41 AM
Definitely going to be following this. I just wish you would've kept up the track with 493 because I stopped at Gen IV, not really interested in Gen V :/

EDIT: For your issue with Arceus, why not do what Game Freak did with Castform? All you'd have to do is modify the transformation code to transform the Pokémon based on what item is being held, as opposed to what the status of the battle weather is.

Jambo51
January 22nd, 2012, 09:53 AM
Definitely going to be following this. I just wish you would've kept up the track with 493 because I stopped at Gen IV, not really interested in Gen V :/

I dislike all the Pokémon after Gen 2, and if I took that attitude towards any hacks I did, it would be incredibly short sighted. Just because I don't like them, it doesn't mean that everyone else doesn't like them. Long story short, I put all 649 Pokémon in my patch (and so is Chaos Rush) so that the end users have the choice of which Pokémon they want to use without having to overwrite existing Pokémon.

That's my philosophy towards it. :)

Awkward Squirtle
January 23rd, 2012, 12:38 PM
Haven't given up, still working on movesets. Yes, it's taking THAT long.

Currently have up to Kadabra (#64) complete.

That's 64 movesets inserted. Only 322 to go. (585 if I include Gen IV and V)
*sigh* -____________-

Level-up movesets? Are you doing them by hand? It would be much faster to write a script to translate and copy the movesets from a B/W ROM to your Ruby ROM, surely.

Chaos Rush
January 23rd, 2012, 03:21 PM
Level-up movesets? Are you doing them by hand? It would be much faster to write a script to translate and copy the movesets from a B/W ROM to your Ruby ROM, surely.
Yes, I am doing them by hand. And no, I can't copy+paste from B/W, because my move index numbers do not match B/W's move index numbers. I haven't added all moves up to Gen V, I've added a select 129 new moves from both Gen IV and V.

Speedster
January 23rd, 2012, 04:01 PM
EDIT: For your issue with Arceus, why not do what Game Freak did with Castform? All you'd have to do is modify the transformation code to transform the Pokémon based on what item is being held, as opposed to what the status of the battle weather is.
I know both Jambo and Chaos are extremely knowledgeable but I doubt it is very easy to modify the Castform Routine. I've seen it tried to be done before and there weren't good results. So it would take quite some time at my guess for it to be done.

NintendoBoyDX
January 23rd, 2012, 05:27 PM
Errr, no. It's most likely as simple as searching for castform's index number, looking for loads of it, and changing it.

Let me look at it one sec...Castform has index number 385, so that's 0x181. Let me search for loads of 0x181 with ida pro...

08011F50, 08018CD4, 08018E06, 08018E24, 08018E30, 080194F8, 08019DC0, 0803440A, 080345CA, 08034FCE, 08074638, 08074704, 08074768, 08076CA6, 08088E96

Use a debugger to set breaks on thumb at these points, then do a castform transformation. The one that breaks will be the place it loads and checks if the pokemon currently in battle is castform. From there all you'd have to do is change it to the one you want. Or you could add others if you hooked on your on routine in there some place.

Darkest Shade of Light
January 23rd, 2012, 05:51 PM
I dislike all the Pokémon after Gen 2, and if I took that attitude towards any hacks I did, it would be incredibly short sighted. Just because I don't like them, it doesn't mean that everyone else doesn't like them. Long story short, I put all 649 Pokémon in my patch (and so is Chaos Rush) so that the end users have the choice of which Pokémon they want to use without having to overwrite existing Pokémon.

That's my philosophy towards it. :)
I'm sorry, I was misunderstood.
What I meant was having two separate versions. One with the 649 from Generations I-V, and one with 493 from Generations I-IV, to avoid using unnecessary amounts of space for the 146 or so Pokémon not being used by people who want to avoid Generation 5. Also, this brings up the thought of how difficult it could be to remove Pokémon. Like, rolling back the ROM to make it only have Gen 1/2 Pokémon, freeing up space to have a massive world, or a crap ton of events and stuff...

Having issues with Multiquote:

@Speedster
Actually, it isn't all that hard, with about an hour of work, I just gave Castform two new transformations (overwriting ?? slots) that would be taken during sandstorm conditions and then when holding a Poké Ball in battle. Granted, this was only two forms, and Castform still showed up as normal in battle before changing to it's Poké Ball form in battle. But I suppose that doing it this way would require having more like 664 Pokémon in-game to accommodate for the Arceus forms, since I cannot for the life of me figure out how they added "frames" for Castform in R/S/E

Speedster
January 23rd, 2012, 06:07 PM
Errr, no. It's most likely as simple as searching for castform's index number, looking for loads of it, and changing it.

Let me look at it one sec...Castform has index number 385, so that's 0x181. Let me search for loads of 0x181 with ida pro...

08011F50, 08018CD4, 08018E06, 08018E24, 08018E30, 080194F8, 08019DC0, 0803440A, 080345CA, 08034FCE, 08074638, 08074704, 08074768, 08076CA6, 08088E96

Use a debugger to set breaks on thumb at these points, then do a castform transformation. The one that breaks will be the place it loads and checks if the pokemon currently in battle is castform. From there all you'd have to do is change it to the one you want. Or you could add others if you hooked on your on routine in there some place.

I'm sorry, I was misunderstood.
What I meant was having two separate versions. One with the 649 from Generations I-V, and one with 493 from Generations I-IV, to avoid using unnecessary amounts of space for the 146 or so Pokémon not being used by people who want to avoid Generation 5. Also, this brings up the thought of how difficult it could be to remove Pokémon. Like, rolling back the ROM to make it only have Gen 1/2 Pokémon, freeing up space to have a massive world, or a crap ton of events and stuff...

Having issues with Multiquote:

@Speedster
Actually, it isn't all that hard, with about an hour of work, I just gave Castform two new transformations (overwriting ?? slots) that would be taken during sandstorm conditions and then when holding a Poké Ball in battle. Granted, this was only two forms, and Castform still showed up as normal in battle before changing to it's Poké Ball form in battle. But I suppose that doing it this way would require having more like 664 Pokémon in-game to accommodate for the Arceus forms, since I cannot for the life of me figure out how they added "frames" for Castform in R/S/E

Well you both proved me wrong. I'm still guessing its not as simple as a snap of the finger though. There will still be bugs to work out in the routine but I'm glad your knowledge over me has helped me learn more.

Darkest Shade of Light
January 23rd, 2012, 07:19 PM
Well you both proved me wrong. I'm still guessing its not as simple as a snap of the finger though. There will still be bugs to work out in the routine but I'm glad your knowledge over me has helped me learn more.
No, it's nowhere near as easy as a snap of the finger. My method was very buggy, and only meant to show it would work, and it still took me an hour to work out how to do it. So, what Chaos Rush is doing is a very difficult, while still very useful, tool. Although I feel like a jerk just kind of waiting for this to be happened.

@Chaos Rush
Is there any way those of us interested could help out?

Chaos Rush
January 23rd, 2012, 09:31 PM
I know both Jambo and Chaos are extremely knowledgeable
AHAHAHAHAHAHA. I'm not knowledgeable. I can't do ASM. I just know how to repoint and expand tables, which is what's most important when adding new Pokemon.


I'm sorry, I was misunderstood.
What I meant was having two separate versions. One with the 649 from Generations I-V, and one with 493 from Generations I-IV, to avoid using unnecessary amounts of space for the 146 or so Pokémon not being used by people who want to avoid Generation 5.
That would be ridiculous. So you're saying, after painstakingly expanding all the tables to 649 Pokemon, I have to do it again on another rom, but this time 493? Sorry, I ain't doing that. Nobody's forcing you to use Gen V Pokemon. And Ruby has plenty of free space.



@Chaos Rush
Is there any way those of us interested could help out?
I wish :(. But I've made up all Pokemon's new movesets in Notepad to keep track of what their moveset would be with my patch's movebank, and since there's all these files and offsets I have to keep track of, it would be a disaster letting someone else work on it without all the information & plans I have.

This is gonna take awhile...seriously losing motivation

Jambo51
January 24th, 2012, 03:20 AM
I wish :(. But I've made up all Pokemon's new movesets in Notepad to keep track of what their moveset would be with my patch's movebank, and since there's all these files and offsets I have to keep track of, it would be a disaster letting someone else work on it without all the information & plans I have.

This is gonna take awhile...seriously losing motivation

Don't hesitate to ask for my help, man. I can provide just about any piece of information you want related to these expansions, and if you wanted, I could provide the little pieces of ASM you feel you need.

For example, I recently developed a Seen/Caught Flag repoint which actually redistributes the existing save space for them to allow for extra seen/caught flags. I can go into more detail than that if required. It's for Emerald, but it wouldn't be too hard to port to Ruby, I don't think.

Don't lose motivation. Stop for a while and come back to it when you ARE motivated. That's what I did, and I feel better for it, :)

HyperXhydra
January 24th, 2012, 10:20 AM
This is great, can't wait for it!

Darkest Shade of Light
January 24th, 2012, 06:21 PM
That would be ridiculous. So you're saying, after painstakingly expanding all the tables to 649 Pokemon, I have to do it again on another rom, but this time 493? Sorry, I ain't doing that. Nobody's forcing you to use Gen V Pokemon. And Ruby has plenty of free space.
Oh. I didn't know it'd be two completely separate projects. I figured just copy/pasting the same thing with smaller values for available Pokémon. I've never tried to mess around with tables and such :/

Awkward Squirtle
January 27th, 2012, 07:39 AM
Yes, I am doing them by hand. And no, I can't copy+paste from B/W, because my move index numbers do not match B/W's move index numbers. I haven't added all moves up to Gen V, I've added a select 129 new moves from both Gen IV and V.

When I did something similar (replace 4th gen movesets with 3rd gen moves), I made a table that maps non-existent moves to similar existing ones (e.g. Fire Fang -> Flame Wheel, Shadow Claw -> Shadow Punch etc) before replacing them. If you're still not too far in, it would save a lot of time if you did this (then manually edited the movesets afterwards if necessary).

Chaos Rush
January 27th, 2012, 02:45 PM
When I did something similar (replace 4th gen movesets with 3rd gen moves), I made a table that maps non-existent moves to similar existing ones (e.g. Fire Fang -> Flame Wheel, Shadow Claw -> Shadow Punch etc) before replacing them. If you're still not too far in, it would save a lot of time if you did this (then manually edited the movesets afterwards if necessary).
You seem to be forgetting that my rom has 129 new moves added. I didn't replace any moves. I added new moves.

Tropical Sunlight
January 28th, 2012, 01:02 AM
You seem to be forgetting that my rom has 129 new moves added. I didn't replace any moves. I added new moves.
No, I think what he meant was to replace the moves you added with already existing moves (or a single existing move, to make it easier for you) in a list, then write a program to export/import movesets from the list into the ROM, and then change the few newly added moves in the ROM manually.

Awkward Squirtle
January 29th, 2012, 04:27 PM
I meant replacing the moves in the movesets of the Pokémon. Let's say you didn't add Natural Gift. Your script would then find all instances of Natural Gift in Pokémon's movepools, and replace it with another move such as Present.

Obviously you can't just copy/paste the data, as B/W level-up move data has a different format to Ruby move data (mainly that the two move ID bytes are separate from the level byte) - you'd use a script written in e.g. Python to convert the B/W move list to Ruby format. While you're doing that, you can translate all the move index numbers to the Ruby index numbers, and replace any unimplemented move IDs as described above.

Chaos Rush
February 11th, 2012, 12:13 PM
Just posting to say that all Generation I Pokemon have their movesets updated.

Also debating on whether I should not add Gen V Pokemon in order to save time, so I can restart Pokemon DarkViolet faster.

MegaKuriboh
February 11th, 2012, 01:52 PM
Just posting to say that all Generation I Pokemon have their movesets updated.

Also debating on whether I should not add Gen V Pokemon in order to save time, so I can restart Pokemon DarkViolet faster.

I really love the 5th Gen Pokemon, I would really appreciate it if you would add them too.

Jambo51
February 11th, 2012, 02:19 PM
Just posting to say that all Generation I Pokemon have their movesets updated.

Also debating on whether I should not add Gen V Pokemon in order to save time, so I can restart Pokemon DarkViolet faster.

Well, even if you decide not to include them, you should probably leave what you HAVE done with them in. There's no point in adding all that stuff, only to remove it now. So my argument would be, if you DON'T decide to include the 5th gen Pokémon, leave their spaces open so that people can insert fakemon etc into the spaces.

Chaos Rush
February 11th, 2012, 02:24 PM
Well, even if you decide not to include them, you should probably leave what you HAVE done with them in. There's no point in adding all that stuff, only to remove it now. So my argument would be, if you DON'T decide to include the 5th gen Pokémon, leave their spaces open so that people can insert fakemon etc into the spaces.
The current base I'm working on doesn't have any Gen IV or V Pokemon added yet. Just 129 new moves. This is because when I first started this project I wasn't planning on adding Gen IV and V moves. I have an older base with Gen IV and V Pokemon included (just the names and expanded tables), but I've abandoned that base and have since started a new one. So I won't be deleting anything, since I haven't added it yet.

EDIT: I'll probably just add 156+ blank spaces so people could insert Gen V Pokemon if they want. And don't worry, I'll still make Gen V sprites in my sprite project, so people will have a decent set of sprites to use.

MegaKuriboh
February 11th, 2012, 04:38 PM
The current base I'm working on doesn't have any Gen IV or V Pokemon added yet. Just 129 new moves. This is because when I first started this project I wasn't planning on adding Gen IV and V moves. I have an older base with Gen IV and V Pokemon included (just the names and expanded tables), but I've abandoned that base and have since started a new one. So I won't be deleting anything, since I haven't added it yet.

EDIT: I'll probably just add 156+ blank spaces so people could insert Gen V Pokemon if they want. And don't worry, I'll still make Gen V sprites in my sprite project, so people will have a decent set of sprites to use.

Well, that works I guess. Although, that means I have to get up my lazy butt and learn to insert stuff

ZpAnish
February 14th, 2012, 11:47 AM
The current base I'm working on doesn't have any Gen IV or V Pokemon added yet. Just 129 new moves. This is because when I first started this project I wasn't planning on adding Gen IV and V moves. I have an older base with Gen IV and V Pokemon included (just the names and expanded tables), but I've abandoned that base and have since started a new one. So I won't be deleting anything, since I haven't added it yet.

EDIT: I'll probably just add 156+ blank spaces so people could insert Gen V Pokemon if they want. And don't worry, I'll still make Gen V sprites in my sprite project, so people will have a decent set of sprites to use.

No hair off my back, i'm majorly a fan of Gen 1 & 2. Can't wait til it's all finished :D

Fiori
February 17th, 2012, 10:48 AM
What a pity that you give up the Emerald patch.
I'd like to do the job myself, but i'v no idea what should i do to extend the number of pokemon.
I saw you have done these:
*Re-point Pokémon names table
*Re-point Base stats table
*Re-point front sprites table
*Re-point back sprites table
*Re-point normal palettes table
*Re-point shiny palettes table
*Re-point TM-compatibility table

I wanna ask ,is it enough i just repoint those tables and insert the new pokemons datas?

Chaos Rush
February 25th, 2012, 04:58 PM
Guys, I'm debating on whether having Gen IV and V moves are worth it. I just want to start Pokemon DarkViolet sooner and this is taking forevverrrrrrrrr. Do you guys think having Gen IV and V moves are worth it? (either way I will still have 493+ Pokemon)


What a pity that you give up the Emerald patch.
I'd like to do the job myself, but i'v no idea what should i do to extend the number of pokemon.
I saw you have done these:
*Re-point Pokémon names table
*Re-point Base stats table
*Re-point front sprites table
*Re-point back sprites table
*Re-point normal palettes table
*Re-point shiny palettes table
*Re-point TM-compatibility table
Actually that's what I've done on an older base. But then I decided I wanted Gen IV moves. So I restarted and all I've done on the new base is repoint+extend the the move name table, and repoint+extend the move animation table. and I'm currently in the process of updating the first 386 Pokemon's movesets.



I wanna ask ,is it enough i just repoint those tables and insert the new pokemons datas?
Yes. But you have to repoint ALL the tables. If you miss one things will glitch up/not work. Also ASM work is required if you want new Pokemon to show up in the Pokedex.

Fiori
February 26th, 2012, 01:35 AM
Yes. But you have to repoint ALL the tables. If you miss one things will glitch up/not work. Also ASM work is required if you want new Pokemon to show up in the Pokedex.

thanks, i will try to do it.

iRyahn
February 26th, 2012, 10:38 AM
Honestly the moves aren't that important. Just move on and once you finish the project you can go back and slowly add the rest of the moves if you really want. Not trying to rush you or anything, just my opinion.

ZpAnish
February 27th, 2012, 08:20 PM
Honestly the moves aren't that important. Just move on and once you finish the project you can go back and slowly add the rest of the moves if you really want. Not trying to rush you or anything, just my opinion.

I agree,and again, we don't want to rush you. Remember...you're the Boss

Chaos Rush
March 3rd, 2012, 11:33 PM
Because of this game breaking glitch (http://www.pokecommunity.com/showthread.php?p=7054044#post7054044) with the physical/special split system, I decided that I'm no longer going to have 4th Gen moves. However, I will still have 493 (or more) Pokemon.

Here is a patch containing all the work I did on adding new moves before Jambo51 discovered the game-breaking glitch. This patch is for Pokemon Ruby, and it contains:
*font from Pokemon Emerald
*129 new total moves (Gen IV and V)
*All Generation I Pokemon have updated movesets (this means that they will learn moves from Gen IV and V through level up, for example, Sandshrew learns Gyro Ball at Lv33 on this patch)
*A few Generation II Pokemon have updated movesets
*If you're wondering why I made Mewtwo and Mew learn Psycho Boost is because it's plot related in my future hack Pokemon DarkViolet. Who cares anywaylol

I strongly recommend NOT using this patch for a hack. This patch is merely for messing around, as it contains the game-breaking glitch that Jambo51 documented. This is not an official release, this is just an experimental patch.

Jambo51
March 4th, 2012, 02:36 AM
You are aware that this glitch is actually relatively easy to fix? It might not be the most attractive solution, but it works. I don't think you should throw away all that work for the sake of one tiny, easily fixed, glitch.

Chaos Rush
March 4th, 2012, 10:02 AM
You are aware that this glitch is actually relatively easy to fix? It might not be the most attractive solution, but it works. I don't think you should throw away all that work for the sake of one tiny, easily fixed, glitch.
Which is why I haven't deleted anything :)

Jambo51
March 4th, 2012, 01:45 PM
Which is why I haven't deleted anything :)

I keep saying to you that you should ask me for help if you need it. Provide me with the location of this same glitch, or with the location of the hacked code for the split, and I will knock out a fix for you to insert within a few hours at worst.

It's not the prettiest, but it works. I also worked out how the battle scripts work well enough to mimic most moves from Gen 4 and 5.

However, this stretches only to combinations of existing effects, as opposed to creating brand new effects. For brand new effects, it may be necessary to use a custom callasm battle script command.

Chaos Rush
March 4th, 2012, 01:53 PM
I keep saying to you that you should ask me for help if you need it. Provide me with the location of this same glitch, or with the location of the hacked code for the split, and I will knock out a fix for you to insert within a few hours at worst.

It's not the prettiest, but it works. I also worked out how the battle scripts work well enough to mimic most moves from Gen 4 and 5.
Sorry, I didn't know you already had a fix ready since you haven't posted it in that other thread.

I'm kinda busy right now, but later today I will find where the stuff is located in Ruby (I just search for similar bytes from FireRed, works every time). And yes, I understand that you will gladly provide me with help, it's just that I like to do things in order one at a time, so right now my focus is adding movesets and making sprites, which I can do by myself. Everything that I know I will need help with (such as Pokedex), I simply haven't gotten to that yet since I'm focusing on adding movesets and finishing the sprites first (I hope I don't sound rude, let me make this clear: I think you are really awesome and I really appreciate that you will help me) But like I said, I will find the Ruby offsets sometime today or next weekend, and you are awesome for taking care of this glitch.

Fiori
March 4th, 2012, 11:28 PM
It's not the prettiest, but it works. I also worked out how the battle scripts work well enough to mimic most moves from Gen 4 and 5.


Could please you tell me ,if i wrote a battel script how can i call this and do not affect the original routine?
thank you.

willitoh
March 5th, 2012, 09:15 PM
Hi, first of all, guys you really really rock! i'm new at this but I don't know if I missed it but, does it help you that I write the new movesets on a txt file, so you just copy them? at list the names and lvls, not the hex code or whatever it is called. Just to help you with the big bunch of stuff to write. IDK i just want to help a little

- imo, why adding more pokes without adding at least some basic new moves? for example, armaldo is pretty lame without x-scissor.

Chaos Rush
March 6th, 2012, 02:12 PM
Hi, first of all, guys you really really rock! i'm new at this but I don't know if I missed it but, does it help you that I write the new movesets on a txt file, so you just copy them? at list the names and lvls, not the hex code or whatever it is called. Just to help you with the big bunch of stuff to write. IDK i just want to help a little
I've already been doing that. This is because I only added 129 new moves, it would be impossible for me to keep track of which moves I didn't add, so I wrote every single Pokemon's new moveset in a text file, so then I don't have to keep track of the moves I didn't add.


- imo, why adding more pokes without adding at least some basic new moves? for example, armaldo is pretty lame without x-scissor.
Except that I'm already doing that also. That's why this is taking a ridiculously long amount of time, I still haven't finished updating the movesets of the 386 Pokemon already in the rom.


I feel like I've explained this like 9999999 times already...

willitoh
March 6th, 2012, 06:43 PM
Yeah sry, I just got confused + I was kind a drowsy so I end up lost. Well I just wanted to do one's bit.

rstar095
March 12th, 2012, 12:52 PM
Wow, I have been gone from this site for about 2 years now, only occasionally logging in to check out a few hacks, and what is being done with this project seems unreal. Great work to you guys, if you all finish it, you will get the recognition you deserve

tommzy09
March 13th, 2012, 02:24 PM
Should do this on Emerald instead of Ruby :)

willitoh
March 14th, 2012, 05:16 AM
He will not, since Ruby uses less data.

Chaos Rush
March 14th, 2012, 01:21 PM
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, 05: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, 03:19 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.

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, 09:50 AM
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
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
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, 08: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, 09:05 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.
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

Thundrake
April 24th, 2012, 09: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, 01:06 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.
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.

Thundrake
April 25th, 2012, 01: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, 01:37 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.
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.

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, 08:27 AM
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, 09:39 AM
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. (http://www.pokecommunity.com/showthread.php?p=7155239#post7155239)

Second of all, thanks to a post that JPAN made in this thread (http://www.pokecommunity.com/showthread.php?t=258012&highlight=species), 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, 02: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, 01:32 PM
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, 07: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, 07:51 AM
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
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.

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
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
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, 03: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, 08:18 AM
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.


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, 05:25 PM
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, 05:46 PM
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. it won't evolve, unless if you add a pointer entry in the usage table

Mr.Pkmn
May 9th, 2012, 01:25 AM
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, 01:42 AM
m watchin it ryt now.... :)

Jambo51
May 10th, 2012, 02: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, 01:16 PM
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.


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

@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, 02: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, 02:12 AM
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, 05: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, 08:55 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.
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.

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.

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

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.

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.

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.

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.

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, 06: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, 07: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, 01:12 PM
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, 05:13 AM
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, 08:55 AM
How did you create the new evolution items? Can you make a tutorial?

Saltsas
May 25th, 2012, 01:01 AM
awesome hack!is it still alive or what?good luck anyway finishing it:D

Chaos Rush
May 25th, 2012, 07:33 AM
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, 08: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, 09: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, 08: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, 02:31 AM
Are the new moves still being implemented in this hack?

Mallowigi
May 30th, 2012, 06:07 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.

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, 01: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


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, 06: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, 01:29 PM
Can a mod close this please? I'm redoing this project.

DrFuji
June 5th, 2012, 04:50 PM
Thread closed at owner's request.