+  RHDN Forum Archive
|-+  Romhacking
| |-+  ROM Hacking Discussion
| | |-+  How do you add new characters?
Pages: [1]
Author Topic: How do you add new characters?  (Read 724 times)
Ancenande
Guest
« on: January 01, 2008, 10:06:05 am »

I'm translating Pokemon Red to Spanish, just for fun. However, I need the special characters such as the accent and the reverse ? and !. Is it hard to add these to the game?
Ryusui
Guest
« Reply #1 on: January 01, 2008, 02:54:41 pm »

It depends on how much space you have after the game's font.

Once you have a table written up (and you should know how to assemble a table if you're going to be translating anything), see if you have space after the game's font for inserting extra characters. (Be mindful of bank boundaries.) If there are blanks you can exploit, you can insert your accented characters and special punctuation there. (As a matter of fact, it's not unthinkable that the accented characters might already be in the font.) When that's done, just append the extra characters in sequence to the end of your table.
xdaniel
Guest
« Reply #2 on: January 01, 2008, 03:39:36 pm »

If I remember correctly, Pokemon R/B's font was made up of upper- and lowercase letters, tiles containing "'s", "'v", "'r", etc., numbers 0-9, symbols (?, !, etc. plus ex. PK, MN, the currency symbol and some arrows) and at least some blank tiles. Look for those blank tiles, and look which letters or "letter combos" ("'s" etc) you don't need, and overwrite them with your characters.

As for adding characters after the font, that's sadly not possible as 1) the main font is accessed using single bytes values, to be exact the bytes 0x80-0xFF, thus everything below it can't be accessed like this. 2) there is no free space below it. It's stuck in the middle of a giant chunk of graphic data containing player and NPC sprites, the title screen logo, copyrights, and other stuff.

Hope I got everything right, it's been a while and I don't my ROMs and tools here right now to check. I'm totally going off memory here ^^"
Ancenande
Guest
« Reply #3 on: January 01, 2008, 07:33:04 pm »

Thanks! I can't seem to find the characters, though. Is there any way to find them?
xdaniel
Guest
« Reply #4 on: January 01, 2008, 07:47:45 pm »

The font's stored in 1BPP format in the ROM, either directly below or above the title screen logo. Don't have an exact offset here, but it should be rather easy to find when you use the logo for orientation Smiley
Ancenande
Guest
« Reply #5 on: January 01, 2008, 08:00:52 pm »

Found it. Missed the logo completely.
Ancenande
Guest
« Reply #6 on: January 01, 2008, 09:10:26 pm »

The letters are weird. They look like they're half one and half another? Why is it like this?
Ryusui
Guest
« Reply #7 on: January 01, 2008, 10:02:32 pm »

Likely because the offset isn't an even multiple of $10. Press the plus and minus keys until the font lines up properly.
Ancenande
Guest
« Reply #8 on: January 02, 2008, 08:19:59 am »

Weird... There seems to be two characters per tile.
RedComet
Guest
« Reply #9 on: January 02, 2008, 08:43:09 am »

I seem to recall someone telling me that the Pokemon games use a 4x8 font, meaning two letters per 8x8 tile.
xdaniel
Guest
« Reply #10 on: January 02, 2008, 10:35:08 am »

I'm 100% sure that all Pokemon RPGs for the GB/GBC - Red/Blue/Green/Yellow/Gold/Silver/Crystal - use an 8x8 font. I think the Trading Card Game uses a half-width 4x8 one, and Puzzle Challenge a VWF and an additional 8x8 font.

Which tile editor are you using? Also, are you really looking at the font in 1BPP mode, not 2BPP?
Ancenande
Guest
« Reply #11 on: January 02, 2008, 10:47:02 am »

I'm using Tile Layer Pro, and it says that the GameBoy default settings is 2BPP, which seems to be what I'm using. Changed it to 1BPP and the letters appear correctly, but everything else is messed up. Well, you can't have everything in life.
xdaniel
Guest
« Reply #12 on: January 02, 2008, 11:25:06 am »

It's normal that games may have graphics of different format in them, TLP's descriptions for the formats are just somewhat generic: GB and SNES ROMs often have 1BPP fonts, for a more extreme example, the WonderSwan/WS Color uses - depending on the game - "GameBoy", "Genesis" and/or "SMS" (Master System, think SMS is what TLP calls it) format graphics, etc, etc. Smiley
Nightcrawler
Guest
« Reply #13 on: January 02, 2008, 12:50:46 pm »

Graphics can quite literally be stored in any format the programmer chooses. Those platform markings you see are just guidelines to what's common and/or used by the system hardware.

It's certainly possible that any given system could store their graphics in 1bpp, 2bpp, 3bpp, 4bpp etc. There's nothing to stop from storing your graphics as PNG files in an NES ROM if you wanted to other than that huge headache of resource constraints and ultimately turning that image data into a format the hardware can use. It's all just data however you look at it.

The reality of course is they are going to be most likely stored in the most effective format for the job. Fonts and other low color graphics can be stored in 1 or 2bpp as storing them in a higher format would be wasteful. It's very easy to convert 1bpp to any higher bit plane format if needed for the hardware on runtime. The main sprite graphics and what not that utilize all the colors of the system will have to be stored in higher bits pe pixel. Space was always tight in the cartridge era, so they used what was most effective. Often times, that meant compression on top of that.
Ancenande
Guest
« Reply #14 on: January 02, 2008, 04:39:03 pm »

Thanks for everything!
Pages: [1]  


Powered by SMF 1.1.4 | SMF © 2006-2007, Simple Machines LLC