Poryhack Posted September 2, 2009 Posted September 2, 2009 (edited) In the course of trying to edit every aspect of a pokemon for ROM hacking purposes, I've made some findings that may prove useful. Note that no tools exist to do this (yet), so I will just provide some insights on how each file works and those of you competent with a hex editor should be able to figure out the rest. The relevant file is (/data)/application/zukanlist/zkn_data/zukan_data.narc in a D/P ROM's internal filesystem. Unpack the narc (I used kiwi.ds's NDS Editor) and you'll get a folder with 58 binary files. Files 00 through 10 contain information pertaining to the height an weight comparison features of the pokedex, 11-58 contain lists of pokemon index numbers in various orders for use by the pokedex's search feature. Following is a list of each file, what information it holds, and notes on how it is structured. 00 I wasn't able to figure out anything about this file. Editing it did not seem to result in any changes in the pokedex -- maybe the information is related to the dex but actually used elsewhere. Of note is that it is the same length as 01, indicating 4 bytes per pokemon. 01 - Weight 4 bytes per pokemon. The number stored, divided by 10, equals the weight of the pokemon in kilograms used by the "weight check" feature. Note that numerical value in kg/lbs expressed by the pokedex IS NOT calculated from this. It is stored separately in msg.narc along with most other textual data in the game. I haven't taken the time to find the thresholds on which the animation used by the scale changes; if somebody wants to do this it would be appreciated. 02 I wasn't able to figure out anything about this file. Editing it did not seem to result in any changes in the pokedex -- maybe the information is related to the dex but actually used elsewhere. Length indicates 1 byte per pokemon. 03 - Trainer Scale Divisor (for female player) The number stored, divided by 256, equals the divisor used in scaling the trainer graphic in the height comparison feature. For example, if the divisor is 2, the size of the trainer will be half its unscaled size. 04 - Pokemon Scale Divisor (for female player) The number stored, divided by 256, equals the divisor used in scaling the pokemon graphic in the height comparison feature. 05 - Trainer Scale Divisor (for male player) The number stored, divided by 256, equals the divisor used in scaling the trainer graphic in the height comparison feature. 06 - Pokemon Scale Divisor (for male player) The number stored, divided by 256, equals the divisor used in scaling the pokemon graphic in the height comparison feature. 07 - Trainer Y-position (for female player) The higher this value, the further down the screen the trainer graphic used in the height comparison feature is. Default value is 8. 08 - Pokemon Y-position (for female player) Pokemon graphic used in height comparison feature is moved down by as many pixels as the value stored specifies. Values prefixed with FF instead of 00 will actually be moved up by 0xFFFF - x + 1 where x is the value stored. 09 - Trainer Y-position (for male player) The higher this value, the further down the screen the trainer graphic used in the height comparison feature is. Default value is 9. 10 - Pokemon Y-position (for male player) Pokemon graphic used in height comparison feature is moved down by as many pixels as the value stored specifies. Values prefixed with FF instead of 00 will actually be moved up by 0xFFFF - x + 1 where x is the value stored. 11 - National Dex order Listing of pokemon index numbers in the order that they appear in the National dex. In this case that is just the numbers 0-493. I have tried adding a 494th entry but unfortunately it did not result in a new pokedex entry. 12 - Sinnoh Dex order Listing of pokemon index numbers in the order that they appear in the Sinnoh dex. Pokemon that do not appear are omitted. 13 - Alphabetical order Listing of pokemon index numbers in alphabetical order. As with height and weight, editing the name of a given pokemon will not automatically update this. 14 - Heaviest to Lightest order You get the picture by now. 15 - Lightest to Heaviest order 16 - Tallest to Shortest order 17 - Shortest to Tallest order 18-26 - Subsections of Alphabet Each file contains a listing of pokemon index numbers with names that start with a letter in the given subset of the alphabet. Within each file the order is alphabetical. For example, file 18 contains an alphabetical list of all pokemon that start with the letters A, B or C. The letters associated with each file are as follows: 18-ABC 19-DEF 20-GHI 21-JKL 22-MNO 23-PQR 24-STU 25-VWX 26-YZ 27-43 - Types Each file contains a listing of pokemon that are of the given type; dual-type pokemon are listed in the file for each type. Within each file the order goes by national dex number. The type associated with each file is as follows: 27-normal 28-fight 29-flying 30-poison 31-ground 32-rock 33-bug 34-ghost 35-steel 36-fire 37-water 38-grass 39-electric 40-psychic 41-ice 42-dragon 43-dark 44-57 - Body Styles Each file contains a listing of pokemon that are of the given body style. Within each file the order goes by national dex number. Body style information is used exclusively in the pokedex and to the best of my knowledge these list are the only thing that makes a pokemon one style or another. The body style associated with each file is as follows (names for the different styles are never provided, so I'm using the actual graphics for clarity): 44- 45- 46- 47- 48- 49- 50- 51- 52- 53- 54- 55- 56- 57- Edited September 3, 2009 by Poryhack
Poryhack Posted May 15, 2010 Author Posted May 15, 2010 The index numbers are in national dex order so I guess you could say that. I don't know why they use that file but we should be glad they do because it makes order editing much easier.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now