Go Back   The PokéCommunity Forums > ROM Hacking > Research & Development

Notices
For all updates, view the main page.

Research & Development Got a well-founded knack with ROM hacking? Love reverse-engineering the Pokémon games? Or perhaps you love your assembly language. This is the spot for polling and gathering your ideas, and then implementing them! Share your hypothesis, get ideas from others, and collaborate to create!
Research & Development programs in this forum are subject to moderator approval before they are displayed.



Reply
Click here to go to the first staff post in this thread.  
Thread Tools
  #1    
Old March 20th, 2014 (12:56 PM).
LCCoolJ95's Avatar
LCCoolJ95
Limited Capacity
 
Join Date: May 2009
Location: The World That Never Was
Age: 19
Gender: Male
Nature: Naive
Before you say anything, I am NOT flaming anyone. I respect everyone's work on these forums.

Adding new moves, creating new battle backgrounds for new moves, creating new battle effects, creating new abilities, expanding the amount of songs, TMs, Pokémon (over 1000 can be added) within a 3rd generation ROM, form changes of Pokémon...

Tell me, this is amazing, right? You would love to put this within Ruby and Emerald ROMs, correct?

Unfortunately, most of these are not possible, within them. Instead, they are all focused on Firered. As you may know, Firered has been edited immensely with many awesome and amazing features, and can be turned into a totally different game. That, or demakes of 4th and 5th generation games.

But, what about Ruby and Emerald (Sapphire and Leafgreen are sort of there, but I don't see many hacks of those games)? I've seen many wonderful hacks made using Ruby and Emerald. Light Platinum, Flora Sky, CrystalDust, Glazed, any of the Ruby Destiny series (In my opinion, Quartz was okay, but not as fantastic. More confusing than anything haha). LP, FS, G, and the RDS have fantastic storylines, and CD is a great demake of Crystal. So nostalgic, it makes me want to cry for joy whenever I play it.

One thing that I did was I updated some of those games. For example, Light Platinum (NOT THE + VERSION), I added new moves, new abilities, and proper cries to the Pokémon. But, you know, what bums me out is that Pokémon are replaced for other Pokémon. Also, no one has a clue on adding in abilities to those games (i.e. Machamp having No Guard in Emerald). Also, and I've seen it done in Firered, expanding the amounts of TMs within a game.

HMs? Eh...that's a big maybe.

There are currently 100 TMs in the current, main storyline Pokémon games. There are 50 TMs in the 3rd generation games...

*flips table* THAT'S NOT ENOUGH D-:<

Ahem, sorry about that. It is possible to have Reusable TMs within either Firered or Emerald however. Here, this is a video showing this within Emerald. Also, this is not advertisement, but reference:


Now, I'll just tell you right now, I am an avid Emerald hacker. I have made a few, personal Emerald ROMs. Fully changing storylines, implementation of the Fairy-type, I even worked on my own personal Black 2/White 2 Demake. Now I'm just freestyling, working on whatever Emerald ROM mod I feel like. But now, everything came to a halt, when I found out that more Pokémon can be added to a 3rd generation. To be more specific, 1020 Pokémon can be added. I don't know why you would want a game with over 1000 Pokémon in it, but that's totally your business.

But, anyways, do you know how amazing that would be if Ruby and Emerald has these features? Yes, I understand that all three of them differentiate vastly, but at least someone has to look into it. I have been doing it, but it's too big of a job for just one person. I want to see if anyone is interested in looking into the data of the games.

In general, Firered isn't the only Pokémon game everyone wants to edit. Ruby and Emerald hacks do exist, and I feel that they should be looked into as well, because I can't do it all alone, so I need help with this, if anyone would be so kind. Thank you, and have a nice day!
__________________
"The greatest obstacle in life is Yourself. Overcome it, and you will achieve the greatest accomplishment of all." -Art Beins, 1982

Fairy-type in Pokémon Emerald: http://www.pokecommunity.com/showpost.php?p=8185719&postcount=288
Reply With Quote
  #2    
Old March 22nd, 2014 (06:06 PM).
karatekid552's Avatar
karatekid552
What happens if I push it?....
 
Join Date: Nov 2012
Location: Do you really want to know? Really?
Gender: Male
Nature: Bold
Send a message via AIM to karatekid552 Send a message via Windows Live Messenger to karatekid552 Send a message via Skype™ to karatekid552
Before this becomes a sea of nothingness, let's get a focus here: The purpose of this thread is supporting research on Ruby and Emerald. This is why I have moved it to R&D. Let's use this thread to only submit research about games other than FR.

Rules:
-Only post if you have something to contribute. Posts like:

"^I totally agree!" and "Your idea is awful man." are absolutely pointless and will be removed.

-Ask questions only if you are willing to do the work. Don't just ask how to do something simply because you want someone else to do it. Start a discussion and work together to delve deeper into the mystery.

-This is not Simple Questions. If it can already be done, don't ask it.


Now let's get to work!
__________________

Paired with Simba
Reply With Quote
  #3    
Old March 22nd, 2014 (07:44 PM). Edited July 15th, 2014 by Tlachtli.
Tlachtli's Avatar
Tlachtli
Crit happens.
 
Join Date: Jan 2012
Location: Faraway place
Age: 24
Gender: Male
Nature: Modest
EDIT: I realized that my Light Metal had a pretty big oversight in it, so I'm getting to work on fixing that. In the meantime, I'll post some simple-but-useful ASMs for battle scripts.

I've actually been doing some work on getting some Gen 4-6 abilities into Emerald. With Jambo's callasm method for his Battle Script Pro, a lot of them can be done with a combination of battle scripting and relatively simple asm. BSP's damage multiplier can only handle integer multiplication though and a lot of damage multipliers are fractional, so I wrote a couple simple ASMs that can be called in place of the regular damage multiplier command. The 1/2 damage ASM (and others) could be used for several applications, they just need to be called after calculatedamage but before any hp removal.

x0.5 Damage:
Code:
.align 2
.thumb

Start:
    push {r0-r1}
    ldr r0, .input
    ldr r1, [r0]
    lsr r1, #1
    cmp r1, #0x0
    bne Finish
    add r1, #0x1

Finish:
    stm r0!, {r1}
    pop {r0-r1}
    bx lr

.align 2
.input:    .word 0x020241F0 /*attack damage*/
x0.75 Damage:
Code:
.align 2
.thumb

Start:
    push {r0-r2}
    ldr r0, .input
    ldr r1, [r0]
    mov r2, #0x3
    mul r1, r2
    lsr r1, #2
    cmp r1, #0x0
    bne Finish
    add r1, #0x1

Finish:
    stm r0!, {r1}
    pop {r0-r2}
    bx lr

.align 2
.input:    .word 0x020241F0 /*attack damage*/
*Note: the 0.5 and 0.75 multiplications will never return zero damage, because if the logical shift results in zero damage 0x1 will be added to make it nonzero. If you want to change that so it can give zero damage, just get rid of the cmp/bne/add lines above Finish.

x1.25 Damage:
Code:
.align 2
.thumb

Start:
    push {r0-r2}
    ldr r0, .input
    ldr r1, [r0]
    mov r2, #0x5
    mul r1, r2
    lsr r1, #2
    stm r0!, {r1}
    pop {r0-r2}
    bx lr

.align 2
.input:    .word 0x020241F0 /*attack damage*/
x1.5 Damage
Code:
.align 2
.thumb

Start:
    push {r0-r2}
    ldr r0, .input
    ldr r1, [r0]
    mov r2, #0x3
    mul r1, r2
    lsr r1, #1
    stm r0!, {r1}
    pop {r0-r2}
    bx lr

.align 2
.input:    .word 0x020241F0 /*attack damage*/
*Note: the values given for addresses only apply to BPEE, for any other version they need to point to the proper memory addresses.

I have psuedo-code written/planned for probably 25-30 in-battle abilities, I just need to go through the grunt work of actually typing out the scripts and asm's.
__________________
Pokemon Sigma Σmerald:

A Gen 3 remake de-make, (soon to be) featuring many Gen VI mechanics
Reply With Quote
  #4    
Old March 23rd, 2014 (08:40 AM). Edited March 23rd, 2014 by Deokishisu.
Deokishisu's Avatar
Deokishisu
Mr. Magius
 
Join Date: Feb 2006
Location: If I'm online, it's a safe bet I'm at a computer.
Gender: Male
Nature: Relaxed
To create reusable TMs is pretty easy in Emerald. Open up Item Editor, navigate to the TMs, and change the first mystery value to 1. Then, change the Price of all of the TMs to 0 so that the player can't sell them.

The TMs will be reusable, unable to be held, and won't have x01 next to them in the Bag.

HOWEVER, this is not true BW functionality. In BW, when TMs were used, they did not restore the PP of the move they were replacing. So, if you had a Pokemon with 2 PP left on Water Gun, and you replaced it with Water Pulse from a TM, the newly learned Water Pulse would only have 2 PP.

Without some ASM to replicate that feature, TMs basically work as Ethers. If I was low on Water Pulse PP, I would simply teach my Pokemon another TM to overwrite it, then learn Water Pulse again and have full PP.

Tlachi, could you share your code that puts the Physical/Special/Status symbols on the summary and move learning screens? (Also, the small glimpses of your ROM that you're leaking through your sig look amazing. Great work!)

Also, does anyone know where the type for the Egg is stored? We could change Curse to a Ghost type move, Eggs (which were ???-type in 3rd gen) to the Normal-type, and recycle the ??? Type into the Fairy Type for Ruby and Emerald. With Doesntknowhowtoplay's PSS patch, we won't have to worry about our ??? replacement doing, like, no damage. With the ability to change the Egg's type, we wouldn't have to change ??? into Normal, Normal into Fairy, and then shuffle all the types around.

EDIT: Jambo, I believe, figured out how to increase the Pokemon on Ruby in Chaos Rush's old 649 on Ruby project. But, as far as I can remember, the information wasn't released. Perhaps some of that knowledge would be applicable to Emerald as well? This is actually not correct. See the post below this one.

EDIT2: I'd also like to link to a post I found on another forum that basically increases the amount of freespace you have easy access to on Emerald. This right here. It's pretty informative in general about how Emerald freespace works, so that's also cool. The extra space will let us do a bit more in unexpanded ROMs. If anyone has found that the space freed up in this tutorial isn't actually free, please let me know and I'll remove this edit, or advise the reader to change up the offsets a bit.
Reply With Quote
  #5    
Old March 23rd, 2014 (09:27 AM).
Chaos Rush's Avatar
Chaos Rush
im sexy and i know it
 
Join Date: May 2007
Location: Taylor Swift
Gender: Male
Nature: Adamant
Quote originally posted by Deokishisu:
EDIT: Jambo, I believe, figured out how to increase the Pokemon on Ruby in Chaos Rush's old 649 on Ruby project. But, as far as I can remember, the information wasn't released. Perhaps some of that knowledge would be applicable to Emerald as well?
Actually he didn't. He did research on it (thank you, Jambo) but ultimately concluded that Ruby's coding is a huge mess and that because of how a lot of the pointers are hard-coded, they're near impossible to find. Now, I don't know how similar the code is between Ruby and Emerald, but I do know that Emerald, like FireRed, uses a malloc system for the Pokédex. According to SBird, Emerald does indeed use a malloc (Ruby doesn't at all), but apparently the way it works is rather different from FireRed: http://www.pokecommunity.com/showpost.php?p=8133791&postcount=70
__________________
Reply With Quote
  #6    
Old March 24th, 2014 (10:08 AM).
Deokishisu's Avatar
Deokishisu
Mr. Magius
 
Join Date: Feb 2006
Location: If I'm online, it's a safe bet I'm at a computer.
Gender: Male
Nature: Relaxed
So, I thought that maybe the Egg's type and other data was stored in the slot after Chimecho (whose name is "-"), but it appears not. That data just seems to be garbage. I'm sure other people thought of this before I did, but I decided to check and confirm for myself. If you're looking to change the Egg's ???-type, don't look there.

Fun fact, the - Pokemon seems to function normally when given to the player ingame, with the exception of freezing the game when you try to heal it at a Pokemon Center. It is Tough and Cute-type, with a garbage ability. It has a sprite, but it only shows for a split second, and it is the second frame of the Egg, the cracked one.

Reply With Quote
  #7    
Old March 24th, 2014 (12:55 PM).
LCCoolJ95's Avatar
LCCoolJ95
Limited Capacity
 
Join Date: May 2009
Location: The World That Never Was
Age: 19
Gender: Male
Nature: Naive
[QUOTE=Deokishisu;8161771]To create reusable TMs is pretty easy in Emerald. Open up Item Editor, navigate to the TMs, and change the first mystery value to 1. Then, change the Price of all of the TMs to 0 so that the player can't sell them.[/QUOTE]
I have done it, and this is not the way to do it.

It is not in Item Editor, it is within the ROM data itself (I'll post a link to the OP later tonight). Plus, if you set the price of TMs to 0, that would make buyable TMs easy to purchase, when certain ones are really not.

Also, at Tlachtil, nice work

And at Chaos Rush, I knew about that Ruby project for a while. I had a feeling Ruby's coding would be complex. But, if someone were to look more in-depth, it would be possible. I mean, there are things in Pokémon hacking that I thought that were impossible, but done. It just takes a lot of hardwork and dedication.
__________________
"The greatest obstacle in life is Yourself. Overcome it, and you will achieve the greatest accomplishment of all." -Art Beins, 1982

Fairy-type in Pokémon Emerald: http://www.pokecommunity.com/showpost.php?p=8185719&postcount=288
Reply With Quote
  #8    
Old March 24th, 2014 (01:40 PM). Edited March 24th, 2014 by Deokishisu.
Deokishisu's Avatar
Deokishisu
Mr. Magius
 
Join Date: Feb 2006
Location: If I'm online, it's a safe bet I'm at a computer.
Gender: Male
Nature: Relaxed
Quote originally posted by LCCoolJ95:
Plus, if you set the price of TMs to 0, that would make buyable TMs easy to purchase, when certain ones are really not.
The hacker would have to script up some way to keep the player from buying multiple instances of the same TM anyway; I figured they'd be smart enough to script up pseudo-marts for the TMs to give them a price while doing so. But, if you've figured out a way to make them unable to be sold but still have a price, please share! I'm sure buyable, unsellable items will have more uses than just for TMs!

In other news, I think I'm just going to try to Find+Replace bytes in large ranges to see if I can get the Egg's type to change in Emerald. If it does, we'll know it's just a simple byte change and can narrow down exactly where it is. I'm currently searching for 09 09 (because 09 is the ???-type index number, and, in the base stats structure, a ???-type Pokemon would be 09 09 in its type field) and replacing it with 00 00 (pure Normal-type's index number). If anyone thinks this is a stupid idea, or that I should be searching for something else, please speak up. I'm basically hacking blind here.
Reply With Quote
  #9    
Old March 25th, 2014 (01:41 PM). Edited March 25th, 2014 by LCCoolJ95.
LCCoolJ95's Avatar
LCCoolJ95
Limited Capacity
 
Join Date: May 2009
Location: The World That Never Was
Age: 19
Gender: Male
Nature: Naive
Well, here's something that you guys will like (credit to itari):

Spoiler:
Quote originally posted by itari:
Reusable TMs in Emerald

So I was taking a peek through good old reseach and development today when I saw a cute little post about resuable TMs. You know, making TMs act like HMs. After seeing that it had been found on Ruby and FireRed, I thought, why not find it one Emerald? So I did.

To do this little bad boy, go to 0x1B6EE0 in your Emerald ROM and change the A9 there to 90.
Simple as that!

Here's a tiny little explanation for those wondering.

First, 0x1B6EE0 is this little section of code called when a TM or HM is being used. For simplicity's sake, I'll show what is relevant:

Code:
081B6EE0: 20A9 mov r0, #0xA9
081B6EE2: 0040 lsl r0, r0, #0x1
081B6EE4: 4284 cmp r4, r0
081B6EE6: bhi $081B6EF0
What it does, is first take the number A9, and put it in r0. Then, it takes r0 and left shifts it 1. This is the same as multiplying by 2 (A9 << 1 = A9 * 2 = 152). If one was to look at any item editor, they would see that this is the index of TM50 in Emerald. Then, this new value is compared to r4, which has the index of the TM/HM being used. If this number higher, the game knows that an HM was used, so it goes to the relevant area to keep it.

This is where we come in. What we want the game to think is that all TMs are the same as HMs. So, what we need to do is change the index it looks for into the index for the first TM, rather than the first HM. So looking at the items, TM01's index is 121. Dividing this by 2 gives 90, so that is why we put 90. The only downside to doing this really is that item 120 is included in this check, which doesn't matter because it's not a TM anyway (it's the Devon Goods). So there ya have it!


Reusable TMs in Emerald...have at it, and I'll look through Ruby to see it work as well. Now, let's look to see how expanding the amount of TMs within the games are possible
__________________
"The greatest obstacle in life is Yourself. Overcome it, and you will achieve the greatest accomplishment of all." -Art Beins, 1982

Fairy-type in Pokémon Emerald: http://www.pokecommunity.com/showpost.php?p=8185719&postcount=288
Reply With Quote
  #10    
Old March 26th, 2014 (10:32 AM).
AtecainCorp.'s Avatar
AtecainCorp.
Rejishan awake...
 
Join Date: Jun 2008
Location: Takoabe Town (Region Thonsu)
Age: 22
Gender: Male
Nature: Hardy
From my personal Pokemon Ruby things. I found many ways <YOURSELF> For editing things like.
- Adding extra 25 Pokemon <Still Investigate to Add cries without ASM. But it was comming close that moment where I must learn how to change cries code>
- Porting Music from GSC and other GBC and GB games to GBA games <Even with unused themes. Simple method to make them usable>
And some other things.

It's true. Pokemon Ruby have mesed code with a lot of leftovers from Pokemon Crystal game Code. Now I searching about revive TIME CAPSULE for Pokemon RSE. I know that is in game code leftover text of Time Capsule about Pokemon Center. Meybe with game editing code is possible to link Pokemon Crystal with Pokemon Ruby by Wireless Comunication. I know that a lot of GSC hackers like Mateo or Koolboyman Implement Wireless function on its games. It need's investigation. Meybe some of you help me with that tasks. That make an great option for porting Gen 1 pokemon to Gen 6 by some steps. I mean that need update avaible game codes for trading. In Pokemon GSC add AXVE and for Pokemon Ruby add code of Pokemon Crystal.
__________________
- Thonsu Region will never die when Rejishan take care about them. Even the evilnesse of Team Mystic do not destroy land of Thonsu.

POKEMON DIRTY SUN - Comming Soon.
POKEMON RUBY RENEV - http://www.pokecommunity.com/showthread.php?t=341964

In case of any Questions... Go HERE
Reply With Quote
  #11    
Old March 26th, 2014 (04:30 PM).
Deokishisu's Avatar
Deokishisu
Mr. Magius
 
Join Date: Feb 2006
Location: If I'm online, it's a safe bet I'm at a computer.
Gender: Male
Nature: Relaxed
Quote originally posted by Ksiazek Bartlomiej:
From my personal Pokemon Ruby things. I found many ways <YOURSELF> For editing things like.
- Adding extra 25 Pokemon <Still Investigate to Add cries without ASM. But it was comming close that moment where I must learn how to change cries code>
- Porting Music from GSC and other GBC and GB games to GBA games <Even with unused themes. Simple method to make them usable>
And some other things.

It's true. Pokemon Ruby have mesed code with a lot of leftovers from Pokemon Crystal game Code. Now I searching about revive TIME CAPSULE for Pokemon RSE. I know that is in game code leftover text of Time Capsule about Pokemon Center. Meybe with game editing code is possible to link Pokemon Crystal with Pokemon Ruby by Wireless Comunication. I know that a lot of GSC hackers like Mateo or Koolboyman Implement Wireless function on its games. It need's investigation. Meybe some of you help me with that tasks. That make an great option for porting Gen 1 pokemon to Gen 6 by some steps. I mean that need update avaible game codes for trading. In Pokemon GSC add AXVE and for Pokemon Ruby add code of Pokemon Crystal.
From Crystal? That's not really factual. The only real reason the GBC hacks have "wireless" functionality is because the emulators we play on have to link somehow, and you're not gonna force someone to USB their phones/computers to each other. Either way, with the huge overhauls that happened to how Pokemon Data was structured in Gen 3, as well as how the GBA and GBC differ in how they link, there's no way you'll be able to trade back to Gen 2 without losing data from the Pokemon; and with how much that would have to be generated for a Pokemon traded up from Gen 2, well, you may as well just catch a brand new one in the later Generations. Let's focus on things that are actually possible and realistic.

You're not adding 25 more. You're replacing placeholder Pokemon in between Celebi and Treecko. We've been doing that for years. Now, if you've figured out how to give them cries, that would be something new. But when you catch those placeholders, the Pokedex sequence normally crashes the game, because they don't have dex data associated with them.

Music porting has also been done from the older consoles up into the GBA.
----

In other news, I haven't made much headway on changing the Egg's type. Will report back when I have something to add.
Reply With Quote
  #12    
Old March 27th, 2014 (04:57 AM).
AtecainCorp.'s Avatar
AtecainCorp.
Rejishan awake...
 
Join Date: Jun 2008
Location: Takoabe Town (Region Thonsu)
Age: 22
Gender: Male
Nature: Hardy
Well... Yes... But I found method of implementing Dex entries for extra Pokemon which do not crushing games.
__________________
- Thonsu Region will never die when Rejishan take care about them. Even the evilnesse of Team Mystic do not destroy land of Thonsu.

POKEMON DIRTY SUN - Comming Soon.
POKEMON RUBY RENEV - http://www.pokecommunity.com/showthread.php?t=341964

In case of any Questions... Go HERE
Reply With Quote
  #13    
Old March 27th, 2014 (08:16 AM).
LCCoolJ95's Avatar
LCCoolJ95
Limited Capacity
 
Join Date: May 2009
Location: The World That Never Was
Age: 19
Gender: Male
Nature: Naive
Quote originally posted by Ksiazek Bartlomiej:
Well... Yes... But I found method of implementing Dex entries for extra Pokemon which do not crushing games.
I know of your method...your way is not legitimate.

According to Jambo:

Spoiler:
"This method does not work. Both myself and karatekid552 have said so on several occasions.

1) You do not account for the seen and caught flags, meaning this works purely by dumb luck for the first 25, and not at all for any above that.

2) It will NOT work on FR, LG or Emerald, because all 3 of these games employ ASM limiters to limit the length of the Pokédex, something you do not account for.

3) In Ruby and Emerald, the dex is held in a static location, with the dex operational data coming right after it. With your method, that data will be corrupted and overwritten by dex entry data.

Source: My own research into Pokédex extensions.

Fellow hackers, Be Warned! This method does not work as the OP claims it does, and in fact will break the Pokédex.

FACT: Ruby's (and Emerald's) Pokédex is stored in a static location in RAM which is followed by Pokédex operational data. Therefore, when you extend the dex, which somehow works when it shouldn't given that they have ASM limiters, you overwrite data critical to the operation of the Pokédex.

FACT: Both Fire Red and Leaf Green have specific ASM based limiters, which prevent the extension. They ALSO have a MALLOC based setup, meaning that, since you don't change the amount of memory requested by the Malloc, another Malloc request could very well overwrite Pokédex data.

FACT: Extending the Pokédex requires ASM. It's not optional, you can't get around it using tools and sheer brute force."


In short, your way has a 100% chance of breaking Ruby/Emerald. I should know this, I have tried expanding the amount of Pokémon within Ruby and Emerald before...I think I speak for all hackers here, we do NOT want our ROM hacks in progress broken.

However, if someone were to find a real, non-breaking way to do this in those games, that would be awesome :3
__________________
"The greatest obstacle in life is Yourself. Overcome it, and you will achieve the greatest accomplishment of all." -Art Beins, 1982

Fairy-type in Pokémon Emerald: http://www.pokecommunity.com/showpost.php?p=8185719&postcount=288
Reply With Quote
  #14    
Old March 28th, 2014 (02:12 PM).
AtecainCorp.'s Avatar
AtecainCorp.
Rejishan awake...
 
Join Date: Jun 2008
Location: Takoabe Town (Region Thonsu)
Age: 22
Gender: Male
Nature: Hardy
I don't think so. I test in a lot of times. Only Footprints was broken. But is easy to fix.
__________________
- Thonsu Region will never die when Rejishan take care about them. Even the evilnesse of Team Mystic do not destroy land of Thonsu.

POKEMON DIRTY SUN - Comming Soon.
POKEMON RUBY RENEV - http://www.pokecommunity.com/showthread.php?t=341964

In case of any Questions... Go HERE
Reply With Quote
  #15    
Old March 28th, 2014 (04:10 PM).
HidoranBlaze's Avatar
HidoranBlaze
 
Join Date: Apr 2013
Age: 18
Gender: Male
Quote originally posted by Ksiazek Bartlomiej:
I don't think so. I test in a lot of times. Only Footprints was broken. But is easy to fix.
Have you been reading what Karatekid552 and Jambo51 have been telling you in the past? Here, I'll just quote them:

Quote originally posted by Karatekid552:
I know that every single routine has an overflow check to make sure that things aren't loaded that shouldn't be. The only reason your "hack" works on Ruby is because the check was misplaced for 411 instead of 386 like it should have been. This does not exist on any new games. The check is specifically set for 386.
(quoting this from your VM with Karatekid, hope you don't mind)

Quote originally posted by Jambo51:
1) You do not account for the seen and caught flags, meaning this works purely by dumb luck for the first 25, and not at all for any above that.

2) It will NOT work on FR, LG or Emerald, because all 3 of these games employ ASM limiters to limit the length of the Pokédex, something you do not account for.
In short, your method is not desirable at all. It only works for Ruby because there was a mistake made when coding Ruby, as Karatekid mentioned. And your method does not work for Emerald, a game that a LOT more people hack. And 411 Pokemon? I'd rather have 649 Pokemon, for personal reasons. I'm not trying to bash you or anything, but your method isn't going to help people who hack Emerald, like me.
Reply With Quote
  #16    
Old March 29th, 2014 (04:46 AM).
AtecainCorp.'s Avatar
AtecainCorp.
Rejishan awake...
 
Join Date: Jun 2008
Location: Takoabe Town (Region Thonsu)
Age: 22
Gender: Male
Nature: Hardy
Meybe. But i think that all who said that Pokemon Ruby is worse do not have right. For me Pokemon Ruby is easiest engine to edit. My method is first step to slove mystery of expanding Pokedex. Ok. I know. It need Footprints table repointing. But when we obtain NATIONAL DEX number of placeholders was shown correctly. From 387 to 411. Also extra footprints for them after repoint is easy to add. I also think, that ASM is not really needed to expand Pokedex. It must been somewhere in the game code Pointer which asigned how many Pokemon was in Pokedex.
__________________
- Thonsu Region will never die when Rejishan take care about them. Even the evilnesse of Team Mystic do not destroy land of Thonsu.

POKEMON DIRTY SUN - Comming Soon.
POKEMON RUBY RENEV - http://www.pokecommunity.com/showthread.php?t=341964

In case of any Questions... Go HERE
Reply With Quote
  #17    
Old March 29th, 2014 (10:33 AM).
LCCoolJ95's Avatar
LCCoolJ95
Limited Capacity
 
Join Date: May 2009
Location: The World That Never Was
Age: 19
Gender: Male
Nature: Naive
Quote originally posted by Ksiazek Bartlomiej:
Meybe. But i think that all who said that Pokemon Ruby is worse do not have right. For me Pokemon Ruby is easiest engine to edit. My method is first step to slove mystery of expanding Pokedex. Ok. I know. It need Footprints table repointing. But when we obtain NATIONAL DEX number of placeholders was shown correctly. From 387 to 411. Also extra footprints for them after repoint is easy to add. I also think, that ASM is not really needed to expand Pokedex. It must been somewhere in the game code Pointer which asigned how many Pokemon was in Pokedex.
...you know, I'm not going to start a flame war or anything with you. I'm someone who prefers to make peace amongst people. I hate fighting.

Okay, first of all, you MUST listen to the advice HidoranBlaze and I just stated from hackers who have a vast amount of knowledge of Pokédex expansion and ASM hacking. They have looked within the ROM itself. Not just through a hex editor, but the RAM itself. Let me just tell you the facts from my friend Jambo51:

Spoiler:
FACT: Ruby's (and Emerald's) Pokédex is stored in a static location in RAM which is followed by Pokédex operational data. Therefore, when you extend the dex, which somehow works when it shouldn't given that they have ASM limiters, you overwrite data critical to the operation of the Pokédex.

FACT: Both Fire Red and Leaf Green have specific ASM based limiters, which prevent the extension. They ALSO have a MALLOC based setup, meaning that, since you don't change the amount of memory requested by the Malloc, another Malloc request could very well overwrite Pokédex data.

FACT: Extending the Pokédex requires ASM. It's not optional, you can't get around it using tools and sheer brute force.


The three games, Ruby, Fire Red, and Emerald, all have been programmed differently, so the Pokédexes (Pokédexs? I don't know haha) have been done differently. Trying to force the game to extend the amount of Pokémon (and Pokédex entries) WITHOUT ASM WILL DESTROY THE GAME. Don't tell me over and over again that your way works.

Unless you can do it, THE CORRECT WAY WITH ASM, make a video, showcasing a Pokédex in RUBY and EMERALD that has, about, 500 Pokémon. Then, THEN I'll believe you. But for now, get off this thread.

God, I hope that I didn't break any mod rules.
__________________
"The greatest obstacle in life is Yourself. Overcome it, and you will achieve the greatest accomplishment of all." -Art Beins, 1982

Fairy-type in Pokémon Emerald: http://www.pokecommunity.com/showpost.php?p=8185719&postcount=288
Reply With Quote
  #18    
Old March 29th, 2014 (10:50 AM).
AtecainCorp.'s Avatar
AtecainCorp.
Rejishan awake...
 
Join Date: Jun 2008
Location: Takoabe Town (Region Thonsu)
Age: 22
Gender: Male
Nature: Hardy
For first CALM DOWN!!!

I try my own method. Say whatever you want.

ASM is not answer for everything. I wait for day when you all understand that.
__________________
- Thonsu Region will never die when Rejishan take care about them. Even the evilnesse of Team Mystic do not destroy land of Thonsu.

POKEMON DIRTY SUN - Comming Soon.
POKEMON RUBY RENEV - http://www.pokecommunity.com/showthread.php?t=341964

In case of any Questions... Go HERE
Reply With Quote
  #19    
Old March 29th, 2014 (06:46 PM).
LCCoolJ95's Avatar
LCCoolJ95
Limited Capacity
 
Join Date: May 2009
Location: The World That Never Was
Age: 19
Gender: Male
Nature: Naive
Well, here's what Jambo himself told me about your method:

It's not impossible, it's impractical. There are over 100 (known) locations (and many more unknown) that need modified to make the extended dex work properly.

His method works by sheer fluke, not because it's a proper way to do it, and if he were to actually extensively test his method, he'd find it would break, and quite quickly at that, because his method does not take account of the fact that the data which is necessary to run the Pokédex is stored directly after the Pokédex in Ruby.

So say you have your 386 Pokémon Pokédex, that amounts to 8 * 386 bytes for that data, after that 8 * 386 bytes of data is more data that is necessary to run the dex.

His method doesn't move this data, which means that, eventually, his method will corrupt the Pokédex.

Make sense?
__________________
"The greatest obstacle in life is Yourself. Overcome it, and you will achieve the greatest accomplishment of all." -Art Beins, 1982

Fairy-type in Pokémon Emerald: http://www.pokecommunity.com/showpost.php?p=8185719&postcount=288
Reply With Quote
  #20    
Old March 30th, 2014 (12:33 AM).
SBird
 
Join Date: Aug 2009
Gender: Male
Whoa guys...

Maybe I can clear some of the things up... First of all: I cannot talk about ruby, since I have never looked at it, but I would imagine, that if there is no way of allocating more memory to the pokédex, it will likely crash your game soon if you just add entries due to the fact that the static data afterwards will be overwritten. That for ruby.

For emerald, the world is completely different: We have malloc, a different one though(Let's call it malloc2), the difference is, that malloc2 clears the space it allocates. Also, for emerald, the pokédex flags do not use malloc (I don't think they do in firered either), to add to here you need some sort of a save hack(Like Jambo's recycle hack) and you need to reallocate the flags yourself. The Pokédex memory uses static, global variables. So let's say we have the data(which by the way stores the GUI and all that visual shinanigance) at BASE_LOCATION, than the scrolling speed is stored at BASE_LOCATION + X and if we just add some entries, they will interfer with "X" which is the global variable. That may or may not make sense now, anyways to get over this fact you have to add a ton of entries, someone suggested doing this by an automated script, that works kind of fine. You also have to kill a lot of limiters, otherwise your data will not be shown or corrupt.

So, thats what I researched, if you still think there is something different I guess you have to take a look at the code yourself.

~SBird
Reply With Quote
  #21    
Old March 30th, 2014 (06:43 AM).
LCCoolJ95's Avatar
LCCoolJ95
Limited Capacity
 
Join Date: May 2009
Location: The World That Never Was
Age: 19
Gender: Male
Nature: Naive
SBird, I heard about your method. I saw that Emerald had a malloc system as well. I didn't have the proper tools to look further into it however (I'm not too sure on how to add ASM code yet, and I can't find HackMew's compiler anywhere). It's cool that you looked into it. So, it is possible to extend it, but way more complex than Fire Red's process?
__________________
"The greatest obstacle in life is Yourself. Overcome it, and you will achieve the greatest accomplishment of all." -Art Beins, 1982

Fairy-type in Pokémon Emerald: http://www.pokecommunity.com/showpost.php?p=8185719&postcount=288
Reply With Quote
  #22    
Old March 30th, 2014 (07:22 AM).
Tlachtli's Avatar
Tlachtli
Crit happens.
 
Join Date: Jan 2012
Location: Faraway place
Age: 24
Gender: Male
Nature: Modest
Quote originally posted by Deokishisu:
Tlachi, could you share your code that puts the Physical/Special/Status symbols on the summary and move learning screens? (Also, the small glimpses of your ROM that you're leaking through your sig look amazing. Great work!)
I'll be happy to, once I'm totally satisfied with how it works anyways. Right now it's appearing about 1-2 frames too early, which I know sounds unimportant but it's one of those things you can't un-see once you notice it. I'm still working on that at the moment.

Quote originally posted by Ksiazek Bartlomiej:
ASM is not answer for everything. I wait for day when you all understand that.
As far as GBA hacking is concerned, it actually kinda is. ASM (assembly language) is as close to the actual machine code as you can get, and is the basis for just about everything that happens while a ROM operates.
__________________
Pokemon Sigma Σmerald:

A Gen 3 remake de-make, (soon to be) featuring many Gen VI mechanics
Reply With Quote
  #23    
Old March 30th, 2014 (08:50 AM).
AtecainCorp.'s Avatar
AtecainCorp.
Rejishan awake...
 
Join Date: Jun 2008
Location: Takoabe Town (Region Thonsu)
Age: 22
Gender: Male
Nature: Hardy
So. Is ASM is really handy? Why when I asking a lot of times do not get POINTER ADRESS for Pokemon Ruby Cries Table? I start do my own researches avoiding ASM by this fact. NO ONE GIVE ME THAT DAMIT POINTER WHICH I NEED. Only telling that ASM is EASY TO LEARN. Lying! Is not easy. When it was easy I've do not must found method which avoid ASM code.
__________________
- Thonsu Region will never die when Rejishan take care about them. Even the evilnesse of Team Mystic do not destroy land of Thonsu.

POKEMON DIRTY SUN - Comming Soon.
POKEMON RUBY RENEV - http://www.pokecommunity.com/showthread.php?t=341964

In case of any Questions... Go HERE
Reply With Quote
  #24    
Old March 30th, 2014 (09:24 AM).
SBird
 
Join Date: Aug 2009
Gender: Male
Quote originally posted by Ksiazek Bartlomiej:
So. Is ASM is really handy? Why when I asking a lot of times do not get POINTER ADRESS for Pokemon Ruby Cries Table? I start do my own researches avoiding ASM by this fact. NO ONE GIVE ME THAT DAMIT POINTER WHICH I NEED. Only telling that ASM is EASY TO LEARN. Lying! Is not easy. When it was easy I've do not must found method which avoid ASM code.
No offense, but what you are speaking is not even english, and that comes from a person who is not even a native lol...
However, I do not want to discuss this any further, if you want to use your method go ahead.
@LCCoolJ95: Yeah, you pretty much nailed it.

~SBird
Reply With Quote
  #25    
Old March 30th, 2014 (09:33 AM).
AtecainCorp.'s Avatar
AtecainCorp.
Rejishan awake...
 
Join Date: Jun 2008
Location: Takoabe Town (Region Thonsu)
Age: 22
Gender: Male
Nature: Hardy
Ok. Do what you want. Blindly follow Karatekid522 and Jambo51 do not listen new and fresh methods which is easier and working. I don't care now.

And for all who said that I crush rom. I use my Method for remake of Pokemon Ruby. All works ideal without any failure.
__________________
- Thonsu Region will never die when Rejishan take care about them. Even the evilnesse of Team Mystic do not destroy land of Thonsu.

POKEMON DIRTY SUN - Comming Soon.
POKEMON RUBY RENEV - http://www.pokecommunity.com/showthread.php?t=341964

In case of any Questions... Go HERE
Reply With Quote
Reply
Quick Reply

Sponsored Links
Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Minimum Characters Per Post: 25



All times are UTC -8. The time now is 05:05 PM.