Note: This guide was originally posted on my Sonic forum. The host has been down for sometime now, so I'm not sure if it'll be back up unfortunately... Anyways editing the title cards in the game can be a major pain in the butt. Since the title cards aren't labeled in the disassembly, you'd have to do some experimenting to figure out which text belonged with what level title cards. I did that, and constructed a guide for those needing to edit the title card text. Please give me credit, either credit me as "Ravenfreak" or "Sonikku1011", as I'm know as "Ravenfreak" in the Sonic Community, thank you.
- Spoiler:
- Code:
Each 8x8 tile is given a 2-byte, little endian value based on where it appears in the VRAM. This guide will help you edit the title card letters, since the hacking guide
doesn't go into great detail on how to do so... You also have to use a hex editor to change the letters since Aspect Edit cannot edit these mappings. Also most mappings
seem to be 70 bytes long, and from what I can tell you can use every 2-bytes for a letter, so you can have up to 28 letters appear. This may affect the "ZONE" mappings though...
For example, let's look at Green Hills mappings. When opened in a hex editor it looks like this:
70 11 70 11 70 11 70 11 03 11 08 11 03 11 1C 11 03 11 07
11 03 11 07 11 03 11 1A 11 70 11 70 11 03 11 09 11 0A 11
0B 11 03 11 17 11 03 11 17 11 1D 11 1E 11 70 11 70 11 70
11 70 11 70 11 70 11 0C 11 12 11 0C 11 25 11 0C 11 11 11
0C 11 11 11 0C 11 22 11 70 11 70 11 0C 11 13 11 14 11 15
11 0C 11 20 11 0C 11 20 11 26 11 27 11 70 11 70 11
The mappings can be very tricky to edit. The way the mappings are set up may be confusing to some... But I'm going to break it down for you. So let's take a look at this hex
array.
08 11 03 11 1C 11 03 11 07
11 03 11 07 11 03 11 1A 11
This is actually the first half of the letters in the word "Green". Specifically $08, $1C, $07, $07, $1A represent the the top of each letter. Changing these values will make
the mappings look strange, because you also need to change another set of values but I'll get to those later. Take a look at this next array.
70 11 03 11 09 11 0A 11 0B
11 03 11 17 11 03 11 17 11 1D 11 1E
This right here represents the first half of the word "Hills". Specifically $09, $0B, $17, $17, $1E represents the top of each letter in the word "Hills." See how I mean it may
confuse you? Likewise if you were to change these values without changing the last half of the letters your mappings are going to look strange.
11 0C 11 12 11 0C 11 25 11 0C
11 11 11 0C 11 11 11 0C 11 22 11 70
This is the bottom half of the word "Green". Specifically $12, $25, $11, $11, $22 represents the last half of the word "green." Please note that the actual letters are four
bytes apart each, so from $12 the next mapping is 4 bytes away and so on. You need to also change these values to make the mappings appear correctly. Needless to say, the title cards
are probably the most complicated piece of data to edit in Sonic 2. Also spaces not containing any letters are represented with $70 $11. Also some letters you cannot use. V for example
cannot be used since there's no mappings data for that letter... Same with the letter J.
So to break it down to make it easier for you to understand look bellow. Gt= G top, Rt= R top, Et= E top, sp= space, VR= Vram,
Ht= H top, It= I top, Lt= L top Gb=G bottom, Rb= R bottom Eb= E bottom, Nb= N bottom, Hb= H bottom, Ib= I bottom Lb= L bottom, Sb= S bottom.
Get it now? The letter values are listed bellow the example.
VR Gt VR Rt
70 11 70 11 70 11 70 11 03 11 08 11 03 11 1C 11
VR Et VR Et VR Nt sp sp
03 11 07 11 03 11 07 11 03 11 1A 11 70 11 70 11
VR Ht VR It VR Lt VR Lt
03 11 09 11 0A 11 0B 11 03 11 17 11 03 11 17 11
VR St sp sp sp sp sp sp
1D 11 1E 11 70 11 70 11 70 11 70 11 70 11 70 11
VR Gb VR Rb VR Eb VR Eb
0C 11 12 11 0C 11 25 11 0C 11 11 11 0C 11 11 11
VR Nb sp sp VR Hb VR Ib
0C 11 22 11 70 11 70 11 0C 11 13 11 14 11 15 11
VR Lb VR Lb VR Sb
0C 11 20 11 0C 11 20 11 26 11 27 11 70 11 70 11
$01 $02- top of the letter "A"
$03 $04- top of the letter "B"
$03 $05- top of the letter "C"
$03 $06- top of the letter "D"
$03 $07- top of the letter "E" and "F"
$03 $08- top of the letter "G"
$03 $09- top of the letter "H"
$0A $0B- top of the letter "I"
$0C $0D- bottom of the letter "A"
$0C $0F- bottom of the letter "C"
$0C $10- bottom of the letter "U" and "D"
$0C $11- bottom of the letter "E"
$0C $12- bottom of the letter "G"
$0C $13- bottom of the letter "H"
$14 $15- bottom of the letter "I" & "T"
$35 $15- bottom of the letter "Y"
$03 $1A- top of the letter "N"
$03 $1B- top of the letter "Q" and "O"
$0C $22- bottom of the letter "N"
$0C $25- bottom of the letter "R"
$03 $2A- top of the letter "U"
$2B $2C- top of the letter "Y"
$03 $17- top of the letter "L"
$03 $16- top of the letter "K"
$23 $24- bottom of the letter "Q"
$2D $2E- top of the letter "Z"
$36 $37- bottom of the letter "Z"
$18 $19- top of the letter "M"
$03 $1C- top of the letter "R" and "P"
$1D $1E- top of the letter "S"
$0C $20- bottom of the letter "L"
$0C $21- bottom of the letter "M"
$26 $27- bottom of the letter "S"
$28 $29- top of the letter "T"
$86 $86- "."