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.


Advertise here

Reply
Click here to go to the first staff post in this thread.  
Thread Tools
  #1    
Old November 25th, 2013, 06:03 PM
awipe1's Avatar
awipe1
 
Join Date: Aug 2012
Gender: Male

Advertise here
So I really want to add a whole bunch of new trainer sprites to fire red but whenever I ask if this is possible, people say no. I have been asking for a year and people are saying no so I am assuming we haveyet to figure this out. However, wouldn't this be really easy?

If we used jambo51's trainer editor. We can see that the offset for trainer sprites is 0x23957C. Can't we just move that ofset to (0x900000) for example and start putting out trainer sprites there?

We would need a certain program that can insert sprites into that offset, but im pretty sure we can get NSE2.0 to do that, cant we?

I would love to get some feedback on this! Please and thank you!
__________________
Check out my Pokemon Rom! Click the Image Below!


Also I'm currently looking for a spriter for my ROM. Someone who can make OWs and possibly trainer sprites (I might make those myself). Message me if you would like to be a part of Pokemon Battle Brown!
NOTE: You wouldn't be designing your own sprites, I would be telling you what I needed, and you would make it for me ... as appealing as that sounds. I know it doesn't sound like a fun task, but if you want to be a part of this ROM, then that's what will happen. Also I would like to see some stuff you have made before I accept your offer.
Reply With Quote
  #2    
Old November 26th, 2013, 03:04 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
I really want to see this go somewhere since it has come up about 5000000000000000 times in simple questions. I can tell you a little bit: just like you said, we can just move that table. However, there are about 5 routines that access that table. All of these have a limiter byte to prevent an overdraw from the table. It is these bytes that no one has bothered to find and post. I'm sure others have found them, but just haven't shared.
__________________

Paired with Simba
Reply With Quote
  #3    
Old November 26th, 2013, 06:06 PM
awipe1's Avatar
awipe1
 
Join Date: Aug 2012
Gender: Male
haha well I am going to try my best!

Just a little curious though, can you explain this 5 routines thing for my though? Cause right now it to me its seems like just putting the sprite data in the new offset and using that offset should work, right?

Also with these bytes you talk about, any idea on how I can find those bytes? I'm assuimg I start looking at 0x23957C to see what kind of special bytes calls the sprites and displays them? I am still kinda new to this kind of thing
__________________
Check out my Pokemon Rom! Click the Image Below!


Also I'm currently looking for a spriter for my ROM. Someone who can make OWs and possibly trainer sprites (I might make those myself). Message me if you would like to be a part of Pokemon Battle Brown!
NOTE: You wouldn't be designing your own sprites, I would be telling you what I needed, and you would make it for me ... as appealing as that sounds. I know it doesn't sound like a fun task, but if you want to be a part of this ROM, then that's what will happen. Also I would like to see some stuff you have made before I accept your offer.
Reply With Quote
  #4    
Old November 26th, 2013, 06:23 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
Quote:
Originally Posted by awipe1 View Post
haha well I am going to try my best!

Just a little curious though, can you explain this 5 routines thing for my though? Cause right now it to me its seems like just putting the sprite data in the new offset and using that offset should work, right?

Also with these bytes you talk about, any idea on how I can find those bytes? I'm assuimg I start looking at 0x23957C to see what kind of special bytes calls the sprites and displays them? I am still kinda new to this kind of thing
The limiters will be in the general area of the pointers to the table. I can't remember if you do, but the easiest way to find them is to know ASM, and just look for a cmp rX, #0x[#ofSprites] in that general area. The ceiling, without some severe ASM on every routine and the storage, will be 255 sprites, just FYI.
__________________

Paired with Simba
Reply With Quote
  #5    
Old November 26th, 2013, 06:52 PM
Shiny Quagsire's Avatar
Shiny Quagsire
どないやねん, ヤドン
 
Join Date: May 2009
Location: Hoenn Safari Zone
Age: 16
Gender: Male
Nature: Jolly
I should probably add that you also have to repoint the animation table at 0x238E8C, which is in charge of every trainer sprite's animation (which by default is set to be just static). Otherwise it'll start trying to pull random animation data which may or many not crash the game if not screw up how the sprite appears on screen.
__________________



Reply With Quote
  #6    
Old November 26th, 2013, 06:56 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
Quote:
Originally Posted by shiny quagsire View Post
Yes, this is easily possible. All it will take is some repointing and perhaps some editing of limiter bytes (if any exist).

Also, I should note that you also have to repoint the animation table at 0x238E8C, which is in charge of every trainer sprite's animation (which by default is set to be just static).
I know they exist since I repointed the table once and it wouldn't accept the new sprites. I didn't bother to continue when I found 5 routines using the same table. Laziness prevailed, haha.

There is a trainer sprite animation? What? And they didn't use it? GAME FREAK! This is right up there with the 8 directional movement that they cancelled last minute
__________________

Paired with Simba
Reply With Quote
  #7    
Old November 26th, 2013, 06:56 PM
awipe1's Avatar
awipe1
 
Join Date: Aug 2012
Gender: Male
Thanks Quag! I was looking at that data and was wondering what it was there for! I thought it was random useless data! So could we use that data to add animations to our trainer sprites in fire red?

UPDATE!

Alright this is what I know.

So there is a table at 0x23957C which contains 148*8 bytes. The first 4 bytes represent where the sprite data is and the next 4 bytes just point to what trainer sprite we are looking at.

We also have the offset 0x239A1C which contains 148*8 bytes as well. These bytes point to the palette data for sprites in the same way the other data works. The first 4 bytes point to the offset data and the 4 bytes after that point to the trainer sprites who's palette it is pointing to.

There are also animations (thanks to shiny quagsire) that need to be taken into account. This offset is at 0x238E8C and they all point to the same data. This means they are all pointing to being inactive.

So far We have three different offsets:
Sprite Offset: 0x23957C
Pallete Offset: 0x239A1C
Animation Offset: 0x238E8C

Also I have discovered that 0x2390DC points to the data at 0x238E8C so what i believe is that the actual animation offset is 0x2390DC and 0x238E8C is just used to point it to emptyness.

Since these three offsets are so jam packed with data, If we wanted to add more trainer sprites we would need to repoint all the data to somewhere new.

My problem is I don't know where the animation offset comes in. Because the table points straight to the sprite offset and the pallette offset. However the animation offset doesn't come into play anywhere.
__________________
Check out my Pokemon Rom! Click the Image Below!


Also I'm currently looking for a spriter for my ROM. Someone who can make OWs and possibly trainer sprites (I might make those myself). Message me if you would like to be a part of Pokemon Battle Brown!
NOTE: You wouldn't be designing your own sprites, I would be telling you what I needed, and you would make it for me ... as appealing as that sounds. I know it doesn't sound like a fun task, but if you want to be a part of this ROM, then that's what will happen. Also I would like to see some stuff you have made before I accept your offer.

Last edited by awipe1; November 29th, 2013 at 10:13 AM. Reason: Your double post has been automatically merged.
Reply With Quote
Reply
Quick Reply

Sponsored Links


Advertise here
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 09:42 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.