Jump to content

Recommended Posts

Posted (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-Body08.png

45-Body12.png

46-Body06.png

47-Body02.png

48-Body13.png

49-Body09.png

50-Body14.png

51-Body05.png

52-Body04.png

53-Body07.png

54-Body10.png

55-Body03.png

56-Body01.png

57-Body11.png

Edited by Poryhack
  • 8 months later...

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...