(Link to AcmlmWiki) Offline: thank ||bass
Register | Login
Views: 13,040,846
Main | Memberlist | Active users | Calendar | Chat | Online users
Ranks | FAQ | ACS | Stats | Color Chart | Search | Photo album
05-15-24 05:11 PM
0 users currently in The Pit of Despair.
Acmlm's Board - I3 Archive - The Pit of Despair - Red/Blue Pokemon data New poll | | Thread closed
Add to favorites | Next newer thread | Next older thread
User Post
kremlin
Newcomer


 





Since: 05-03-06

Last post: 6573 days
Last view: 6573 days
Posted on 05-10-06 10:21 AM Link
I've been trying to read and display pokemon data directly from the ROM file, there are a few things that are puzzling me.

I noticed that while the games have what seems to be a fairly random order for the pokemon index numbers, the pokemon data starting at 0x383DE in the ROMs is in order by pokedex number. Giegue's Master Guide to Hacking Pokemon Games Red-Crystal says this is the format of that data:

27 bytes total:
1st: pokemon number
2nd: HP rating 0-255 higher is better
3rd:ATK rating 0-255
4thEF " "
5th: SPEED
6th: SPECIAL
7th: Type ##1
8th: Type ##2
9th: Rarity factor 0-255, higher is rarer
10th: EXP factor, 0-255, higher is more points
1th: Picture size? (not completely sure how this affects the picture)
12, 13: Pointer value for picture facing you (enemy)
14, 15: pointer value for picture facing enemy (your pokemon)
16-19: attacks known at level 1
20-27: Which HM's and TM's the pokemon learns. (probably 64 binary switches in order)

What I can't seem to find is how it determines the growth rate - how much experience per level a particular pokemon takes. The experience field in the data block doesn't seem to have anything to do with that, and a mechanics guide I read said that it's only used to tell how much exp a pokemon is worth when it's defeated in battle. I've found plenty of player's guides that list what the rate is for each pokemon, but so far I've had no luck with grabbing it directly from the ROM.

After I noticed the orderly organization of that data I looked around and found that I couldn't make sense of most of the other block data in the ROM. The list of pokemon names appeared to be in the strange index order, but beyond that a lot of the information looked like it was in complete disarray - not following the pokedex ordering or the index numbers.

Ahh, that was a lot. So what I'm asking is: How does it store what the growth rate of each pokemon is, and how can you calculate the proper order for things that don't seem to have one?

Attached is a win32 console application that displays the pokemon data at 0x383DE, and the inaccurate name since the name array is not in the same order. I hope to expand it to display all of the pokemon information accurately reading directly from the ROM. Syntax is: pkmnutil <romfile> <pokemon number>

Attachments

pkmnutil.zip (2809b) - views: 50
Dan

Purple Leever


 





Since: 11-18-05

Last post: 6304 days
Last view: 6295 days
Posted on 05-10-06 10:38 AM Link
The inaccurate order could maybe be down to a pointer table used to store the addresses for each pokemon. They could be in order in the table, but not in sequential order in the actual ROM.
Kyoufu Kawa
Intends to keep Rom Hacking in one piece until the end








Since: 11-18-05
From: Catgirl Central Station

Last post: 6295 days
Last view: 6295 days
Posted on 05-10-06 01:05 PM Link
Originally posted by Dan

The inaccurate order could maybe be down to a pointer table used to store the addresses for each pokemon. They could be in order in the table, but not in sequential order in the actual ROM.
Congratulations. You win a cookie.
Keitaro

Mole


 





Since: 11-18-05
From: Massachusetts

Last post: 6454 days
Last view: 6454 days
Posted on 05-14-06 07:43 PM Link
But they aren't, even the text names are stored in this seemingly random order. Originaly it was thought they were stored by picture size, I foret what the exact reason was now...but whatever it was it didn't make a whole lot of sence, so try not to make too much of it also, I have a set of math formulas used to calculate various things in the original games, it might just be what you're looking for. Let me know if you're interested, I'll have to dig around for it a bit.
Tauwasser

Red Goomba








Since: 11-19-05

Last post: 6387 days
Last view: 6308 days
Posted on 05-16-06 01:00 PM Link
I heard there's a special Table used for calculations of internal number --> PokéDex number. You can just reverse it by looking for the PokéDex number and then reading out it's internal index. That way you can calculate a lotta things like rombanks for pictures and so on.

cYa,

Tauwasser
kremlin
Newcomer


 





Since: 05-03-06

Last post: 6573 days
Last view: 6573 days
Posted on 05-16-06 09:36 PM Link
Originally posted by Keitaro
But they aren't, even the text names are stored in this seemingly random order. Originaly it was thought they were stored by picture size, I foret what the exact reason was now...but whatever it was it didn't make a whole lot of sence, so try not to make too much of it also, I have a set of math formulas used to calculate various things in the original games, it might just be what you're looking for. Let me know if you're interested, I'll have to dig around for it a bit.


I'd be quite thankful if you would.
Tauwasser

Red Goomba








Since: 11-19-05

Last post: 6387 days
Last view: 6308 days
Posted on 05-17-06 05:47 AM Link
There you go

It's the numbering table's offset. No other equations tho =/ Babelfishrun should help with getting it.

cYa,

Tauwasser
Add to favorites | Next newer thread | Next older thread
Acmlm's Board - I3 Archive - The Pit of Despair - Red/Blue Pokemon data | Thread closed


ABII

Acmlmboard 1.92.999, 9/17/2006
©2000-2006 Acmlm, Emuz, Blades, Xkeeper

Page rendered in 0.025 seconds; used 375.83 kB (max 458.74 kB)