The PokéCommunity Forums  

Go Back   The PokéCommunity Forums > ROM Hacking > Research & Development
Sign Up Rules/FAQ Live Battle Blogs Mark Forums Read

Notices

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
 
Thread Tools
  #1    
Old July 16th, 2010, 06:30 PM
Chaos Rush's Avatar
Chaos Rush
im sexy and i know it
 
Join Date: May 2007
Location: Taylor Swift
Gender: Male
Nature: Adamant
After some researching, I managed to find out how to edit the Battle Tower Pokemon. The offset of the Pokemon Data base starts at 0x4038E0 (Pokemon Ruby).

The offset in Emerald is somewhere around 0x5D97CC. I tried porting Emerald's list into Ruby, but I hit a brick wall when I couldn't find the offset. I thought the pointer in Ruby was at 0x134F54, but when I changed the bytes there to repoint to where I pasted the Emerald Pokemon list, the Battle Tower Pokemon were exactly the same as Pokemon Ruby & Sapphire. So then I tried simply pasting Emerald's list directly over Ruby's (even though Emerald has a much larger list than Ruby's, lol), all that did was crash the game when I tried to make a Battle Room challenge.

Anyways, I don't think I need to explain how to change it, but at 0x4038E0 you see the bytes 19 00, right? Yeah, and if you use GoldFinger, if you look up at the top while 19 is highlighted, you should see, "19 (25)". And Pikachu's hex number is also 25, meaning that the first byte is the species of the Pokemon. According to this page, there are only two Pikachu you will encounter in the Battle Tower, so at 0x4038E0, change 19 to 18, and congratulations, 50% of all Pikachus will now turn into Arboks.

I'm too lazy to figure out how to edit their moveset, but it's pretty easy, since the move bytes are very close to the species byte(s).

So here's some screenshots to prove that I'm not making up stuff:



I didn't edit the movesets, I just changed random 01s into 00s to change some of their species numbers, which is why you see non Hoenn-Pokemon using illegal moves (their movesets originally belonged to Hoenn Pokemon).

Obviously, I'm no advanced hacker, but the reason why I'm posting this is because hopefully some of you advanced hackers can figure out how to port Emerald's Pokemon list over Ruby's.

EDIT: I did a little more experimenting, I pasted part of Emerald's list over Ruby's, and that doesn't exactly work correctly. Usually it freezes right before you battle a trainer, but if you manage to make it into battle, the Pokemon use glitchy moves. One time where I made it into a Battle, when my foe Dustox attacked, it said, "Dustox used EXIT" and then it froze.


Credits:
*Serebii.net - for posting the Battle Tower list that helped me find Ruby's offset
*Peterko (a member at Smogon) - for making this thread that helped me find Emerald's offset
*HackMew - for making A-Trainer, which I used to mimic some Battle Tower Pokemon to help me find the offsets for both Ruby and Emerald
*Whoever made GoldFinger, the hex editor I used to find everything.

Also, this might help with research, but here's a patch for Ruby that makes some Kanto Pokemon appear in the Battle Tower with unfitting movesets:
Attached Files
File Type: ips RubyBattleTowerMod.ips‎ (1.8 KB, 10 views) (Save to Dropbox)
__________________

Last edited by Chaos Rush; July 17th, 2010 at 08:11 AM.
Reply With Quote
  #2    
Old July 21st, 2010, 05:19 AM
Wichu's Avatar
Wichu
Project Amethyst
 
Join Date: Sep 2007
Location: North Herts, England
Age: 21
Gender: Male
Nature: Naive
The reason it doesn't work if you just copy and paste is that the data format in Emerald is different. Also, even if you did repoint it, you'd have to change the number of Pokémon the game thinks there are in the list (if you just copied Emerald's list, Ruby would only consider the first part of the list, up to however many Pokémon are in Ruby's Battle Tower).

Here's the structure of the Battle Tower data for both Emerald and Ruby:
Code:
Emerald:

Pokémon List Offset: 0x5D97BC
Slateport Tent Offset: 0x5DE02C
Verdanturf Tent Offset: 0x5DEC28
Fallarbor Tent Offset: 0x5DF69C
Item List Offset: 0x5CECB0

Species (2 bytes)
Move 1 (2 bytes)
Move 2 (2 bytes)
Move 3 (2 bytes)
Move 4 (2 bytes)
Item (1 byte)
EVs (1 byte)
Nature (1 byte)
Padding (3 bytes)

Ruby:

Pokémon List Offset: 0x4038E0
Item List Offset: 0x403860

Species (2 bytes)
Item (1 byte)
?? (1 byte)
Move 1 (2 bytes)
Move 2 (2 bytes)
Move 3 (2 bytes)
Move 4 (2 bytes)
EVs (1 byte)
Nature (1 byte)
Padding (2 bytes)
Firstly, does anyone know what the unknown byte in Ruby does? It's not present in Emerald...

Secondly, is there not an editor for this yet? Looks like I have something to do :)

EDIT: By the way, the Item byte isn't an item ID, it refers to the Battle Tower's own item list. The item list is simply a list of 2-byte item IDs used in the Battle Tower.

EDIT2: Whoops, seems like I accidentally added a byte to the Ruby ROM, so the format was wrong. I've now corrected it.
__________________

Last edited by Wichu; July 22nd, 2010 at 12:06 AM.
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 12:40 AM.


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