Post by Mateo on Nov 25, 2009 20:06:11 GMT -5
*******************************************************
Tileset Repointing Tutorial for Pokémon Gold and Silver
*******************************************************
Written by Mateo
*******************
Purpose for writing
*******************
To explain to people how you go about repointing and editing
tilesets in Gold and Silver (I assume its the same for Crystal,
also, but I don't hack crystal, so go figure)
****************
Difficulty Level
****************
Medium, Need basic understanding of Hex Editor and
Pointers
***************
Getting Started
***************
What you will need:
Pokémon Gold or Silver Version ROM (US English)
Hex Editor (i.e.- Hex Workshop)
Calculator (Windows CALC.EXE)
Pointer Calculator (Take your pick)
Tile Editor (TLP will be used in this tuorial)
Goldmap 1.6
***********************
Repointing the Graphics
***********************
*******
Step #1
*******
Ok, the first step is to open your rom in TLP and find Tileset
#1(Outside tileset). You then using plus and minus keys at the
top of the keyboard, have it so it is showing the top row of tiles
right, then lower it by so the colors are right but there is one
little row of what looks like garbage at the top of the first tile.
now copy the whole tileset and paste it into a blank space in
the rom. make you sure you have the tileset GFX, plus the two
bytes before and after the GFX themselves.
EDIT: Since this is probably still confusing, to make it easier I have uploaded this:
A blank tileset image you can just import in TLP at the offset you want to point to, and draw your tiles over the blank ones (using + and - keys to leave the random black and red pixel lines where they are)
*******
Step #2
*******
You now draw or paste your tiles over the existing ones in the
tileset(the one you just pasted in the blank space). After you
are done with that, save the rom. Write down the offset of the
2 bytes before the GFX started. You will need it later.
*******
Step #3
*******
Now, open your Rom in a Hex Editor, such as Hex Workshop.
Now, I will explain to you exactly what you need to do, so if you
are not familiar with hex you should still be able to do this
step. Now, while keeping the hex editor open, open your
calculator and figure up the following equation to find what
offset to go to: 156BE + (F * Tileset #) so if you were making
a replacement for tileset 4 (the houses in cherry grove) you
would set it to scientific mode, click over to hex, and type (F)
(x) (4) (+) (1) (5) (6) (B) (E) (=). that would tell you the offset
where Tileset #4's header starts. now, when you get there, the
data is stored in this manner: [Graphics Ptr, 3 byte] [Block
Data Ptr, 3 byte] [Collision/Effect data ptr, 3 byte] [Animation
Ptr, 2 byte] [Unused (00 00), 2 byte] [Palette Data Ptr, 2 byte.
Animation data is always bank 3F, Palettes are always bank
02.
*******
Step #4
*******
Open your pointer calculator and calculate a 3-byte pointer to
the offset where you saved the GFX(remember, the offset I
told you to write down). Now in your hex editor, while at the
offset of the header, type the pointer over the first 3 bytes of
the tileset header. Now save your Rom, and if all went
correctly it should be done.
*************************
Repointing the Block Data
*************************
This part is fairly simple if you follow directions.
*******
Step #1
*******
Ok, first step is to find a good stretch of blank space in the
rom. It can be in any bank(also this step is only necessary if
you wish to add more blocks than the original tileset had to
begin with).
*******
Step #2
*******
Next, Open up your pointer calculator and calculate a 3 byte
pointer to the blank space you found. Using the formula
above, find the header and insert this pointer over the old one.
*******
Step #3
*******
Now that it is repointed, open up Goldmap 1.6 and load a
map with your tileset. You will see everything is blank. Now
what you do is go through and simply make every block you
want. Long process, but its the only way to do it. Save and
your block data is set up!
**********************
Editing Collision Data
**********************
This is very similar to editing block data. Repoint to a stretch
of blank space, then type in the collision/effect data manually.
Collision data for each block is 4 Bytes long, in the order of
Upper Left, Upper Right, Bottom Left, Bottom Right. See the
attatched list of collision/effect data for which values to use.
Collision/Effect Data:
********************
Editing Palette Data
********************
There is no need to repoint, as this is always the same size.
Simply follow the pointer in the header, which you calculate
using the formula above.
Data is stored as follows:
The data is simply a list of which pallete colour for each tile
stored in order. Each pallete is half a byte, stored backwards.
for example, if the first 2 pallets in the tileset are "0" and then
"3", the byte would be "30" and so on. A list of Pallet numbers
follows:
0 = grey
1 = red/pink
2 = green
3 = water color (blue)
4 = orange
5 = brown
6 = roof color
Once you have your pallet allocations set up, you can test it by
loading it in Goldmap again. That is the beauty of Goldmap
1.6: Everything read from the rom.
**************
Animation Data
**************
Unfortunately, at this time I do not have a full list of what goes
here. All I can say is, find a tileset with the animations you like,
such as Tileset 1 if you want whirlpool, tileset 2 or 3 if you just
want Flowers and water, and so on, and copy its pointer.
Once I compile a list of them, they will be included in here as
well.
******************
Credits and such
******************
Credits go out to Hyper Hacker for info on header setup,
Coolboyman for his info on all the tile effects,
Jigglypuff for making Goldmap 1.6, and Momma for buying
this laptop, without it I wouldnt be sitting here typing this mofo
right now ^_^.
Colossians 3:23-24
Whatever you do, work heartily, as for the Lord and not for
men, knowing that from the Lord you will receive the
inheritance as your reward.
Tileset Repointing Tutorial for Pokémon Gold and Silver
*******************************************************
Written by Mateo
*******************
Purpose for writing
*******************
To explain to people how you go about repointing and editing
tilesets in Gold and Silver (I assume its the same for Crystal,
also, but I don't hack crystal, so go figure)
****************
Difficulty Level
****************
Medium, Need basic understanding of Hex Editor and
Pointers
***************
Getting Started
***************
What you will need:
Pokémon Gold or Silver Version ROM (US English)
Hex Editor (i.e.- Hex Workshop)
Calculator (Windows CALC.EXE)
Pointer Calculator (Take your pick)
Tile Editor (TLP will be used in this tuorial)
Goldmap 1.6
***********************
Repointing the Graphics
***********************
*******
Step #1
*******
Ok, the first step is to open your rom in TLP and find Tileset
#1(Outside tileset). You then using plus and minus keys at the
top of the keyboard, have it so it is showing the top row of tiles
right, then lower it by so the colors are right but there is one
little row of what looks like garbage at the top of the first tile.
now copy the whole tileset and paste it into a blank space in
the rom. make you sure you have the tileset GFX, plus the two
bytes before and after the GFX themselves.
EDIT: Since this is probably still confusing, to make it easier I have uploaded this:
A blank tileset image you can just import in TLP at the offset you want to point to, and draw your tiles over the blank ones (using + and - keys to leave the random black and red pixel lines where they are)
*******
Step #2
*******
You now draw or paste your tiles over the existing ones in the
tileset(the one you just pasted in the blank space). After you
are done with that, save the rom. Write down the offset of the
2 bytes before the GFX started. You will need it later.
*******
Step #3
*******
Now, open your Rom in a Hex Editor, such as Hex Workshop.
Now, I will explain to you exactly what you need to do, so if you
are not familiar with hex you should still be able to do this
step. Now, while keeping the hex editor open, open your
calculator and figure up the following equation to find what
offset to go to: 156BE + (F * Tileset #) so if you were making
a replacement for tileset 4 (the houses in cherry grove) you
would set it to scientific mode, click over to hex, and type (F)
(x) (4) (+) (1) (5) (6) (B) (E) (=). that would tell you the offset
where Tileset #4's header starts. now, when you get there, the
data is stored in this manner: [Graphics Ptr, 3 byte] [Block
Data Ptr, 3 byte] [Collision/Effect data ptr, 3 byte] [Animation
Ptr, 2 byte] [Unused (00 00), 2 byte] [Palette Data Ptr, 2 byte.
Animation data is always bank 3F, Palettes are always bank
02.
*******
Step #4
*******
Open your pointer calculator and calculate a 3-byte pointer to
the offset where you saved the GFX(remember, the offset I
told you to write down). Now in your hex editor, while at the
offset of the header, type the pointer over the first 3 bytes of
the tileset header. Now save your Rom, and if all went
correctly it should be done.
*************************
Repointing the Block Data
*************************
This part is fairly simple if you follow directions.
*******
Step #1
*******
Ok, first step is to find a good stretch of blank space in the
rom. It can be in any bank(also this step is only necessary if
you wish to add more blocks than the original tileset had to
begin with).
*******
Step #2
*******
Next, Open up your pointer calculator and calculate a 3 byte
pointer to the blank space you found. Using the formula
above, find the header and insert this pointer over the old one.
*******
Step #3
*******
Now that it is repointed, open up Goldmap 1.6 and load a
map with your tileset. You will see everything is blank. Now
what you do is go through and simply make every block you
want. Long process, but its the only way to do it. Save and
your block data is set up!
**********************
Editing Collision Data
**********************
This is very similar to editing block data. Repoint to a stretch
of blank space, then type in the collision/effect data manually.
Collision data for each block is 4 Bytes long, in the order of
Upper Left, Upper Right, Bottom Left, Bottom Right. See the
attatched list of collision/effect data for which values to use.
Collision/Effect Data:
00 = Land
01 = Grass
02 = ?
03 = ?
04 = ?
05 = ?
06 =
07 = Wall
08 = ?
09 = ?
0A = ?
0B = ?
0C = ?
0D = ?
0E = ?
0F = Wall?
10 = Bushy Effect (No Wild Pokemon)
11 = ?
12 = Cutable Tree
13 = ?
14 = Slightly odd Bush effect W/ Wild Pokemon
15 = Headbuttable Tree
16 = ?
17 = ?
18 = Bushes w/ Wild Pokemon
19 = ?
1A = Cutable Tree?
1B = ?
1C = Bushy Effect?
1D = Headbutt Tree?
1E = ?
1F = ?
20 = Surfable Water With Bushy Effect
21 = Surfable Water?
22 = Surfable Water?
23 = Slip N Slide!
24 = Whirlpool
25 = Water?
26 = Water
27 = Water Wall
28 = Water / Bush?
29 = Cave Water
2A = Water ?
2B = ?
2C = Whirlpool?
2D = Water?
2E = Water?
2F = Wall?
30 = Surfable WAter - Moves you Right
31 = Surfable WAter - Moves you Left
32 = Surfable WAter - Moves you Up
33 = Waterfall
34 = Surfable WAter - Moves you Right?
35 = Surfable WAter - Moves you Left?
36 = Surfable WAter - Moves you Up?
37 = Surfable Water - Moves you South
38 = Surfable WAter - Moves you Left?
39 = Surfable WAter - Moves you Right?
3A = Surfable WAter - Moves you North?
3B = Waterfall?
3C = Surfable WAter - Moves you Left?
3D = Surfable WAter - Moves you Right?
3E = Surfable WAter - Moves you North?
3F = Surfable WAter - Moves you South?
40 = ?
41 = Moves you Right
42 = Moves you Left
43 = Moves you North
44 = Moves you South
45 = ?
46 = ?
47 = ?
48 = ?
49 = Moves you Right?
4A = Moves you Left?
4B = Moves you North?
4C = Moves you South?
4D = ?
4E = ?
4F = ?
50 = Moves you Right?
51 = Moves you Left?
52 = Moves you North?
53 = Moves you Down?
54 = ?
55 = ?
56 = ?
57 = ?
58 = Moves you Right?
59 = Moves you Left?
5A = Moves you Up?
5B = Moves you Down?
5C = ?
5D = ?
5E = ?
5F = ?
60 = Fall Pit
61 = ?
62 = Wall?
63 = ?
64 = ?
65 = ?
66 = ?
67 = ?
68 = ?
69 = ?
6A = Wall?
6B = ?
6C = ?
6D = ?
6E = ?
6F = ?
70 = Walk South into Wall to Warp
71 = Door (Moves you South when Walked upon the Tile)
72 = Walk on WArp
73 = ?
74 = ?
75 = ?
76 = Walk left into Wall to Warp
77 =
78 =
79 =
7A = Stairway
7B - Cave Ent (Moves you South when Walked upon the Tile)
7C = WArp Pad
7D =
7E = Walk Right into WAll to Warp
7F =
90 = Can Talk to an NPC 2 blocks away
91 = Bookshelf
92 = Wall?
93 = Computer
94 = Radio
95 = Town Map
96 = Freezer
97 = "Its a TV"
98 = Wall?
99 = Wall?
9A = Wall?
9B = Wall?
9C = Wall?
9D = Window
9E = ?
9F = Incense Burner
A0 = East Ledge
A1 = West Ledge
A2 = North Ledge
A3 = South Ledge
A4 = South Ledge (Cannot Rejump until you reset map)
A5 = ?
A6 = ?
B2 = Cant Walk north
B3 = Cant Walk South
B4 = Cant walk East
B5 = Cant Walk West
01 = Grass
02 = ?
03 = ?
04 = ?
05 = ?
06 =
07 = Wall
08 = ?
09 = ?
0A = ?
0B = ?
0C = ?
0D = ?
0E = ?
0F = Wall?
10 = Bushy Effect (No Wild Pokemon)
11 = ?
12 = Cutable Tree
13 = ?
14 = Slightly odd Bush effect W/ Wild Pokemon
15 = Headbuttable Tree
16 = ?
17 = ?
18 = Bushes w/ Wild Pokemon
19 = ?
1A = Cutable Tree?
1B = ?
1C = Bushy Effect?
1D = Headbutt Tree?
1E = ?
1F = ?
20 = Surfable Water With Bushy Effect
21 = Surfable Water?
22 = Surfable Water?
23 = Slip N Slide!
24 = Whirlpool
25 = Water?
26 = Water
27 = Water Wall
28 = Water / Bush?
29 = Cave Water
2A = Water ?
2B = ?
2C = Whirlpool?
2D = Water?
2E = Water?
2F = Wall?
30 = Surfable WAter - Moves you Right
31 = Surfable WAter - Moves you Left
32 = Surfable WAter - Moves you Up
33 = Waterfall
34 = Surfable WAter - Moves you Right?
35 = Surfable WAter - Moves you Left?
36 = Surfable WAter - Moves you Up?
37 = Surfable Water - Moves you South
38 = Surfable WAter - Moves you Left?
39 = Surfable WAter - Moves you Right?
3A = Surfable WAter - Moves you North?
3B = Waterfall?
3C = Surfable WAter - Moves you Left?
3D = Surfable WAter - Moves you Right?
3E = Surfable WAter - Moves you North?
3F = Surfable WAter - Moves you South?
40 = ?
41 = Moves you Right
42 = Moves you Left
43 = Moves you North
44 = Moves you South
45 = ?
46 = ?
47 = ?
48 = ?
49 = Moves you Right?
4A = Moves you Left?
4B = Moves you North?
4C = Moves you South?
4D = ?
4E = ?
4F = ?
50 = Moves you Right?
51 = Moves you Left?
52 = Moves you North?
53 = Moves you Down?
54 = ?
55 = ?
56 = ?
57 = ?
58 = Moves you Right?
59 = Moves you Left?
5A = Moves you Up?
5B = Moves you Down?
5C = ?
5D = ?
5E = ?
5F = ?
60 = Fall Pit
61 = ?
62 = Wall?
63 = ?
64 = ?
65 = ?
66 = ?
67 = ?
68 = ?
69 = ?
6A = Wall?
6B = ?
6C = ?
6D = ?
6E = ?
6F = ?
70 = Walk South into Wall to Warp
71 = Door (Moves you South when Walked upon the Tile)
72 = Walk on WArp
73 = ?
74 = ?
75 = ?
76 = Walk left into Wall to Warp
77 =
78 =
79 =
7A = Stairway
7B - Cave Ent (Moves you South when Walked upon the Tile)
7C = WArp Pad
7D =
7E = Walk Right into WAll to Warp
7F =
90 = Can Talk to an NPC 2 blocks away
91 = Bookshelf
92 = Wall?
93 = Computer
94 = Radio
95 = Town Map
96 = Freezer
97 = "Its a TV"
98 = Wall?
99 = Wall?
9A = Wall?
9B = Wall?
9C = Wall?
9D = Window
9E = ?
9F = Incense Burner
A0 = East Ledge
A1 = West Ledge
A2 = North Ledge
A3 = South Ledge
A4 = South Ledge (Cannot Rejump until you reset map)
A5 = ?
A6 = ?
B2 = Cant Walk north
B3 = Cant Walk South
B4 = Cant walk East
B5 = Cant Walk West
********************
Editing Palette Data
********************
There is no need to repoint, as this is always the same size.
Simply follow the pointer in the header, which you calculate
using the formula above.
Data is stored as follows:
The data is simply a list of which pallete colour for each tile
stored in order. Each pallete is half a byte, stored backwards.
for example, if the first 2 pallets in the tileset are "0" and then
"3", the byte would be "30" and so on. A list of Pallet numbers
follows:
0 = grey
1 = red/pink
2 = green
3 = water color (blue)
4 = orange
5 = brown
6 = roof color
Once you have your pallet allocations set up, you can test it by
loading it in Goldmap again. That is the beauty of Goldmap
1.6: Everything read from the rom.
**************
Animation Data
**************
Unfortunately, at this time I do not have a full list of what goes
here. All I can say is, find a tileset with the animations you like,
such as Tileset 1 if you want whirlpool, tileset 2 or 3 if you just
want Flowers and water, and so on, and copy its pointer.
Once I compile a list of them, they will be included in here as
well.
******************
Credits and such
******************
Credits go out to Hyper Hacker for info on header setup,
Coolboyman for his info on all the tile effects,
Jigglypuff for making Goldmap 1.6, and Momma for buying
this laptop, without it I wouldnt be sitting here typing this mofo
right now ^_^.
Colossians 3:23-24
Whatever you do, work heartily, as for the Lord and not for
men, knowing that from the Lord you will receive the
inheritance as your reward.