You are not logged in.
Hi guys, yesterday I began romhacking Pokemon Gold, my idea was to translate the text from the characters, but when I try to do it with Poketext, I don't know why the text box collapse at the end, and if I try to edit the text with PKSV the same, because when I want to translate the text I dont know how much text I can put on a line, and when I have to put the /, and I dont know what means /e /l /n.
If you guys could help me, and a beginner in this thread
If you've just started hacking Gen 2, I'd strongly suggest using the pokecrystal disassembly instead of directly editing a ROM with tools and hex editors. It's complete source code for Pokémon Crystal that you can write in a plain text editor like Notepad (or better yet, Notepad++ or Notepad2-mod). The instructions are pretty simple. Most of the modern Gen 2 help you'll find is for the disassembly. It's what the most active hackers here use, and there are tutorials to get you started. And the solutions are much simpler: like, the answer to "How do I change Prof. Oak's intro speech?" is "Edit _OakText1 to _OakText7 in text/common_3.asm and text/common_4.asm" instead of "Point PKSV to these addresses and make sure not to overwrite other text". ("Repointing" and "free space" are basically non-issues with pokecrystal; the assembler takes care of locating all the data, and translating labels like "_OakText1" into addresses.)
Anyway, it sounds like you're editing text that NPCs say? Most of it is in the maps/*.asm files. So if you talk with your rival in New Bark Town, you'll probably find his speech in maps/NewBarkTown.asm. Each line can have up to 18 characters. The "text" command begins a speech, "line" is the second line, "cont" scrolls down a line, and "para" starts again at the first line. There are some special characters which you can see in macros/charmap.asm. They're pretty self-explanatory, like "<PK>" for the small-caps "PK" character, or "…" for ellipsis. Also multi-character macros like "<POKE>", which expands to four characters "POKé", or "<PLAYER>", which expands to the player's name (could be seven characters).
thanks for replying and for the help man
can you answer me two questions?
The cygwin I have to install it at the beggining or I can install it at the end for compile the game?
With the pokecrystal can I edit trainer's name, wild pokemon and all that stuff or should I install some programmes which are easy to use?
Sorry if I say something stupid but i don't speak english fluently (I'm spanish) and I'm a beginner in this
You do the steps in order. First download Cygwin, then pick the "make git python gettext" packages during its setup, then download rgbds, then run "git clone --recursive https://github.com/pret/pokecrystal", then finally "make" should produce a 100% correct unmodified Crystal ROM. If that works, you can try editing some code and running "make" again to see your changes in-game.
You can edit literally anything. You don't need special tools for each thing because everything is in convenient text files already. Like, to edit wild Pokémon, look at the data/wild/*.asm files. The format is pretty obvious: map IDs, wild levels and species, seven entries for each map's morning, day, and night.
If you want to edit something but don't know where it is, try running "grep" (a search program). Like, one of the names for the boy trainer is "ALLAN". So if you want to edit that, run "grep -r ALLAN *" and see where that name is used. You get this:
$ grep -r ALLAN * constants/event_flags.asm:1545: const EVENT_BEAT_POKEFANM_ALLAN constants/trainer_constants.asm:575: const ALLAN main.asm:4786: db "ALLAN@" maps/Route6.asm:25: trainer EVENT_BEAT_POKEFANM_ALLAN, POKEFANM, ALLAN, PokefanmAllanSeenText, PokefanmAllanBeatenText, 0, PokefanmAllanScript trainers/trainers.asm:8260: db "ALLAN@"
So, it looks like there's a Pokéfan NPC named Allan, but also the name is in main.asm. Open it in your text editor and you'll see:
MalePlayerNameArray: ; 882c9 db "CHRIS@" db "MAT@" db "ALLAN@" db "JON@" db 2 ; displacement db " NAME @" ; title
FemalePlayerNameArray: ; 882f9 db "KRIS@" db "AMANDA@" db "JUANA@" db "JODI@" db 2 ; displacement db " NAME @" ; title
Just ignore any code you don't understand (but don't delete or change it!), because the names themselves are obvious. Change one, run "make", reload your ROM in an emulator, and verify that it worked!
Anyway, you can learn a lot just by reading the files. Explore through them, find interesting filenames, try picking a thing you know exists and find which file it's in. Most of the code uses names for numbers, so instead of a meaningless 13, it'll say LT_SURGE or RATTATA or FLY or ESCAPE_ROPE or MUSIC_BICYCLE or EVENT_GOT_HM04_STRENGTH or... you get the idea. And there are no numeric pointers or addresses to memorize: instead, the labels have names that explain what they are (like "MalePlayerNameArray" above). Often there are "; comments" too. Basically it's possible for a beginner to figure out how things work by reading them, which would not be possible with a binary ROM.
Last edited by Rangi (2017-04-30 18:22:22)
Thanks for the help man, i will try it and i will do few test.
Is any tutorial here in the forum that can help me?
Thanks a lot, you're the only one who helped me
I linked to these tutorials before. If you run into specific problems, first try figuring them out yourself, then see if someone else has already experienced and solved the problem, or if not, post a specific question here explaining what you tried and how it failed.
Thank you again men, it's nice to be grateful to people like you who helped the newest, you're great men
i use pksv not poketext but i using poketext in intro monologue and the phone call system txt
at pksv this is the simple script
#org 0x(hex address)
jumptextfaceplayer(player text) 0x(2bit pointer) ' 0x(hex address of your 2 bit pointer)
#org 0x(hex address of your 2 bit pointer)
= \h53 hey! \ni see a \plot of berry \nin South Region\e
final text :
jumptextfaceplayer 0x745A ' 0x12345A
= \h53 hey! \ni see a \plot of berry \nin South Region\e