Hello and welcome to my first ever tutorial on Pokemon hacking!
Today I'll show you how to edit the town map of Red/Blue/Yellow, in HEX offcourse
but don't worry about that.
Things needed: - a ROM of Red/Blue/Yellow
- a HEX editor ( I use Translhextion )
- an emulator ( VisualBoyAdvance is great )
- a RBY text table
- knowledge of gameboy pointers
Let's get started. Remember to backup your Rom ( If your editing Yellow the offsets will be different but the codes are the same )
Part 1; The Image
Open your Rom in your Hex editor and go to x71100. The first byte should be 7F,
which means that theres 16 ( F=16 in hex ) tiles of tile number 7.
There's 16 tiles to choose grom.
0x- Blank tile
1x- Weird vertical line ( isn't used in game )
2x- Weird horizontal line ( isn't used in gme )
3x- Weird ball like thing ( isn't used in game )
4x- Sea tile
5x- City tile
6x- Land tile
7x- Route tile ( also used in the most upper area where the name is displayed )
8x- Coast tile ( bottom, left )
9x- Coast tile ( bottom, right )
Ax- Coast tile ( Upper, right )
Bx- Coast tile ( Upper, left )
Cx- Sidearea tile
Dx Sea "intersection"
Ex- Sea route ( horizontal )
Fx- Sea route ( vertical )
Your map can be 20 tiles wide and 18 tiles high, though the most upper tiles
should be left with no. 7 since the name is displayed there.
Let's get editing.
First, the pointer to the map is at x710D1 do there and change it ( 00 51 )
to A0 7B wich leads to x 73BA0
Then go to x73BA0 and write 7F 75, wich means that the most upper row will be no.7
So now you can write the map. It's really simple ( I'll put images up for help later )
If you want 4 water tiles in a row you just write 44 ( 4x for water tile, x4 for 4 tiles)
If you want land afterwards you just write 6x and how many tiles.
When one row is full it begins on the next one, but if you hav a tile in the end of a row
and the same in the beginning of the nex the you should write seperatly and not together.
I recomend you check your game every five bytes or so in case you mess upp. Believe me that's easy.
Once you got it right you can go back and erase the old map so you have free space if you need
The old map is at x71100 to x711AA.
Part 2; The locations
Once you're done with the image you'll notice that the locations are screwed, so let's fix that.
Now there are 47 possible locations on the map already, but i'm not shure how to add more or delete properly...yet.
So try to keep it under 47.
Now let's change the locations, go to x71313.
Now every area uses 3 bytes; 1 byte for location and 2 bytes for name pointer, After that comes the next area.
Pallet town's location byte is B2 which means 2 tiles left and B tiles down ( B=11 )
Since the biggest single value in Hex is F/16 you cannot cover the entire map.
The two last tiles on the left and right side are innaccessible and the most upper and lowest tiles are innaccessible.
The locations data doesn't follow the in game locations but i have them written down here: ( remember there's a 2-byte
pointer after each location )
-Pallet-Viridian-Pewter-Cerulean-Lavender-Vermillion-Celadon-Fuchsia-Cinnabar-Indigo-Saffron-Unused map with same pointer as Pallet Town.
-Routes are in number order 1-25.
-Diglett's cave-Mt.Moon-Rock tunnel-Bill's cottage-Power plant-SS.Anne-Pokemon-Tower-Seafoam Islands-Viridian forest-Victory road-Safari zone.
( If you want to change the order of the ares go to x70F11 and mess around. Each byte represents an area and here they are ingame order.
example first byte is Pallet town second byte is Route 1..Last byte is Power plant)
This can be very complicated so comment or PM me and i'll try to help, and remember to check your game every few bytes and save
a backup as soon as you get something right.
But you can easily know what location you're editing if you follow the followig pointer to the text data.
Part 3 The names
The names are ofcourse all wrong. Now here's where the text table comes in handy, otherwise you're going to have pain in the Froslass.....
So you have the pointers after the location data, change them to an empty spot in the same rombank and write you own name.
Once your done you can delet the old text data so you have empty space if needed.
Thanks for reading and hope this helps some of you guys ( I'll post images as soon as I have posted 15 times )
Credits to: Datacrystala & Cartmic
Wanna be a hex editing wizard ... Check out Miksy91's Youtube tutorials.