• Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
  • Ever thought it'd be cool to have your art, writing, or challenge runs featured on PokéCommunity? Click here for info - we'd love to spotlight your work!
  • Our weekly protagonist poll is now up! Vote for your favorite Conquest protagonist in the poll by clicking here.
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

pokecrystal For Dummies

November 2019 Update. A lot has changed over the years and the old tutorial just does not cut it anymore.

Hello, I am Pia Carrot and I hack gen 2 exclusively. Long gone are the days of using Goldmap, PKSV, AGIXP, and other tools that barely work on new OS these days. Since 2015, disassembly hs been pretty much the only logical choice for the aspiring gen 2 rom hacker. Why? Well, because it's already completely taken apart and put into easy-to-read code for you! With a simple text editor and a command, you can change things within seconds and build the rom from scratch. Do not fret, my young donut ASMs, ASM isn't necessary unless you are trying to change something very specific like a UI or a new feature. We even have some tutorials to do some of that work for you!

First off, where do I find pokecrystal? Well, here's some links!

Pokegold (incomplete): https://github.com/pret/pokegold
Pokecrystal: https://github.com/pret/pokecrystal

Install guide: https://github.com/pret/pokecrystal/blob/master/INSTALL.md
FAQ: https://github.com/pret/pokecrystal/blob/master/FAQ.md
Documentation: https://pret.github.io/pokecrystal/
Tutorials: https://github.com/pret/pokecrystal/wiki/Tutorials

Some tools you will need:
RGBDS: https://github.com/rednex/rgbds
Cygwin (windows only, refer to INSTALL.MD): https://www.cygwin.com/
Notepad++: https://notepad-plus-plus.org/

Graphics editors:
GraphicsGale: https://graphicsgale.com/us/
PaintXP: https://archive.org/details/MSPaintWinXP
Irfanview: https://www.irfanview.com/

Rangi's epic tools that will make life easy for you:
PolishedMap (Map Editor): https://github.com/Rangi42/polished-map/releases
Tilemap Studio (Tilemap Editor, useful for the town map): https://github.com/Rangi42/tilemap-studio/releases

Other useful tools:
GSC Town Map Editor By Harrison (if you use this over Rangi's tool, not recommended, you will need a hex editor): https://hax.iimarckus.org/topic/97/
GoldFinger (hex editor): https://www.romhacking.net/utilities/204/
Midi2asm: https://hax.iimarckus.org/topic/7671/

OK, I guess this isn't really a tutorial anymore, and more of a resource, but that's how this community rolls! We love to share and keep (almost) everything open to everyone!

Music:
Mmmmmm: https://hax.iimarckus.org/topic/6777/
TriteHexagon: https://hax.iimarckus.org/topic/7684/ https://hax.iimarckus.org/topic/7697/
AzureKeys: https://hax.iimarckus.org/topic/7636/

Graphics:
PiaCarrot (check out the other artists I have linked on my page, they all do GSC graphics!): https://www.deviantart.com/piacarrot
Custom Graphics Thread (older pages are mostly 404d): https://hax.iimarckus.org/topic/197/
I will update graphics with more once we have something more solid to link to, it's kind of all over the place.

Useful Discords:
Pret: https://discord.gg/6EuWgX9
Orange: https://discord.gg/hA96ewC
Polished Crystal: https://discord.gg/2Vtw8Vj
Red++: https://discord.gg/Xah4PRr
Ancient Ruby: https://discord.gg/ZRZg5fG

Gen 2 Banzai!
 
Last edited:
cool, it's great to have a resource like this!

i understand it's a work in progress so maybe you're planning to add these, but there are definitely more features that are relatively easy to add - replacing/adding moves, changing trainer teams, adding types and items, so on and so forth. i could certainly contribute if you'd like
 
cool, it's great to have a resource like this!

i understand it's a work in progress so maybe you're planning to add these, but there are definitely more features that are relatively easy to add - replacing/adding moves, changing trainer teams, adding types and items, so on and so forth. i could certainly contribute if you'd like

If you'd like to add on, certainly. I will include it in the resources section as a link to your post. I wanted to provide the bare necessities required to make a basic Pokémon game, anything else would be great!

Also, I assume you are the BynineB, in that sprite pack are a lot of your old sprites that are no longer available online (dead links, etc.) there are a couple I had to restore via google images, so maybe have yourself a nostalgia trip, if you'd like :)
 
If you'd like to add on, certainly. I will include it in the resources section as a link to your post. I wanted to provide the bare necessities required to make a basic Pokémon game, anything else would be great!

Also, I assume you are the BynineB, in that sprite pack are a lot of your old sprites that are no longer available online (dead links, etc.) there are a couple I had to restore via google images, so maybe have yourself a nostalgia trip, if you'd like :)

oh man, weird to see those, it's been probably 5-6 years since i made them! i should probably touch them up at some point...

anyway, yeah, i'd be happy to help. let's start off with a pretty simple one: changing trainer rosters.

Changing Trainer Rosters
Spoiler:


Hope this helps!
 
Hello!

I'd like to know more about scripting. I want to at least make it so that the legendary dogs can be encountered similarly to ho-oh and lugia, so they're in some area where you can walk up to their sprite, talk to them and fight them. I would probably make an event constant that will be set whenever you've fought them in that area, but at the bottom theres this long line of variables. What are they? I notice some of them indicate sprites and the event, but some are numbers with 0 explanation.. Can someone help me with this? I don't want to break the code.

One other thing I'd like to do is make it so you have to fight a new elite 4 when you've gotten all the kanto gyms too..
 
oh man, weird to see those, it's been probably 5-6 years since i made them! i should probably touch them up at some point...

anyway, yeah, i'd be happy to help. let's start off with a pretty simple one: changing trainer rosters.

Changing Trainer Rosters
Spoiler:


Hope this helps!

Is this really needed? I feel like anyone can look at the already existing code and edit it themselves. Maybe I'm overestimating hackers, but I don't think anyone really needs a guide for this type of thing. Same with the stuff you mentioned before, I think it's pretty easy to figure out.
 
Is this really needed? I feel like anyone can look at the already existing code and edit it themselves. Maybe I'm overestimating hackers, but I don't think anyone really needs a guide for this type of thing. Same with the stuff you mentioned before, I think it's pretty easy to figure out.

You'd be surprised, I think it's better to spoonfeed, especially when we are trying to encourage people to try the Gen 2 scene out.
 
You'd be surprised, I think it's better to spoonfeed, especially when we are trying to encourage people to try the Gen 2 scene out.
Well, the thing about GSC hacking is the lack of spoonfeeding. I think that people would be discouraged when after reading the guide to editing pokecrystal trainers, they look elsewhere for more delightfully spoonfed tutorials, only to find there are not many more. If you're going to make tutorials showing hackers how to hack every single part of gsc, go ahead, but I don't think the tutorials you are writing help much, because there's a few things more challenging than editing pokecrystal trainers.
 
Well, the thing about GSC hacking is the lack of spoonfeeding. I think that people would be discouraged when after reading the guide to editing pokecrystal trainers, they look elsewhere for more delightfully spoonfed tutorials, only to find there are not many more. If you're going to make tutorials showing hackers how to hack every single part of gsc, go ahead, but I don't think the tutorials you are writing help much, because there's a few things more challenging than editing pokecrystal trainers.

It's up to other people to contribute and build it up the same way gen 3 hacking was. Before XSE and Advance Map I would argue gen 3 hacking was in a similar state. Everything provided here is enough to build a simple Pokemon game.
 
As someone completely new to hacking, nice guide. Hopefully someone can add something for changing moves/attacks properly. That's my main issue right now with regard to my goals (I.E. Rebalancing the game as well as making it more difficult).

Gen 3 has so much support (guides) it seems, but I think quite a few people like myself are very interested in Gen 2 and have good ideas, but learning the basics does not seem to be as accessible. This is a good start though.
 
I cant find map_header.asm please help me
 
I cant find map_header.asm please help me
It seems they have either renamed and located the file elsewhere than under /maps, or integrated the map headers data in some other file.

Nevertheless, you could either check the commit history of pokecrystal master branch where the data has been moved (google "view commit history github", or try finding help with similar keywords if that doesn't help). You could also join the pret server in Discord and ask others there, where the map headers data has been moved.
 
Last edited:
thanks but that didnt help me that much I searched key words like route29 that they were in map_header.asm but couldnt find it and looked up in google view commit history github but it didnt help me at all,anyways thank you
 
Srry but I tried everything exept I cant find the "pret" server can you send me the discord password
 
Srry but I tried everything exept I cant find the "pret" server can you send me the discord password
Here's an invitation link: https://discord.gg/7pSjRu

It only works for 24 hours, so register tomorrow if you're not registered in Discord yet, and follow that link before it expires in order to join.
 
Back
Top