-
Notifications
You must be signed in to change notification settings - Fork 37
Tutorial: Staff credits text (3.X)
Besides from the Cast sequence (which is a compressed graphic) you can also modify the Staff sequence text.
Thankfully, this sequence is all handled by mere text, so we don't have to screw around with compressed graphics for this part! (Phewww...)
Before you start, you might want to have the list of the Staff sequence credits. so that you know how the text is arranged with the HEX file.
Let's start then.
1. Finding the CCS file that handles the Staff text.
First off, you need to a quick search through your data_XX.ccs (data_55.ccs for newer dumps) files inside the /ccscript/ folder to find which one of them has the Staff text in it. You should look for the following text:
l_0xe1413f:
And it should be immediately followed by a bunch of HEX code. This is the text for the Staff sequence. If you are using a fresh dump with the newest CoilSnake version (2.3.1), this part should be in data_55.ccs
2. Knowing the HEX code.
Now that you found where the Staff sequence text is, you need to know what each HEX code does in this part.
- [ 03 XX ]
First of all, you have the [ 03 XX ] control code, which basically determines how much vertical space you will leave between each line of text. For example, [ 03 02 ] is the basic separator between the purple (small) letters of the sequence and the white (large) letters that go before the purple letters, while [ 03 06 ] is a large separator, like the space between the word STAFF and it's underline and the first purple letters (Produced and Directed by). There are others like [ 03 0C ] and [ 03 0E ] which are also used during the end of the sequence, but those are just variants of the space that you get between each line.
The bigger the HEX value, the bigger the space between each line. Remember that this control code must be used in the same line that you want to have moved.
"[ 03 06 ][ 01 ][ 40 40 5B 7A 4B 54 6C 44 7B 4B 7A 40 6E 40 54 48 7A 45 44 7B 4B 7A 40 40 ][ 00 ]" // Productor y director
"[ 02 ][ A3 88 89 87 85 A3 81 A4 8F 40 89 A4 8F 89 ][ 00 ]" // Shigesato Itoi
In this example, [03 06] is the space that separates the STAFF text from the ''Produced and Directed by'' text. So take into consideration that the spacing control code goes in the line after your wanted space, and not in the one where you want the space to start!
For consequent credits; like listing several people inside one category, i.e. Sound, you just need to specify [ 00 ] at the end of a single name (or text) to specify the end of the line. Marking [00] tells the game that the current line has ended and it should now parse new text in the next tile.
"[ 02 ][ 82 8F A5 40 8E 81 8B 81 8A 89 8D 81 ][ 00 ]" // Bou Nakajima
"[ 02 ][ A3 85 89 8B 81 40 81 82 85 ][ 00 ]" // Seika Abe
In this example, you can see how we don't use the [03 XX] control code and we only specify the end of line at the end of the HEX code, which means that we will get the next name printed right below the current line without the need to add the spacing control code.
- [ 0X ]
This isn't really a control code, but more of a value to let the game know which font it will use.
[ 01 ] uses the small 8x8 font (purple letters) found in the credits.png file inside the /Fonts/ folder of your CoilSnake decompiled project, while [ 02 ] uses the big 8x16 font (while letters and white symbols) inside the same credits.png file.
So just remember to set this part after the [ 03 XX ] control code, or at the beginning of the line if you are using names in a list form like this example:
"[ 02 ][ 82 8F A5 40 8E 81 8B 81 8A 89 8D 81 ][ 00 ]" // Bou Nakajima
"[ 02 ][ A3 85 89 8B 81 40 81 82 85 ][ 00 ]" // Seika Abe
Also, don't forget that [00] is the value to end the current line!
3. Credits.png Font HEX values.
Now that you understand what each HEX code in between square brackets does, the only thing left for you to to is to start writing text.
The value for this Font starts at 40 with the up-most row. Then each tile of 8x8 adds 0x10 to that value. Which means we start at [40] with the first row and end up at [F0] with the last row, giving the musical note an HEX value of [FC] and the ''o'' like symbol the value of [FF].
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F
60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F
70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF
B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF
One thing that you should be really careful about, is the difference between the HEX values for the 8x8 font and the 8x16 font. The HEX values for the 8x8 tiles (purple letters/characters) add 0x10 per row of characters, while the values for the 8x16 tiles (white letters/characters) add 0x20 per row of characters.
For example, you have the purple letter ''A'', which takes the value of [42], since it is located in the first row [40] and it is located in the third tile (or third column), taking the value of [02] (remember that the first value is 00, second 01, third 02, etc). The purple ''B'' letter is located in the second row, [50], and is located in the third tile also [02] = [52].
The purple font will grow by [10] with each 8x8 character.
As an example, this is how I'd write Project in spanish "Proyecto" for the Staff using the 8x8 font:
"[ 03 06 ][ 01 ][ 5B 7A 4B 6E 45 44 7B 4B ][ 00 ]" // Proyecto
Now to give you an example of the 8x16 tiles: The ''!'' symbol starts at the first row, which gives it the value of [40] and is located in the second column, which is [01], giving it the total value of [41], but what happens when you want to write the number 9 of the 8x16 font? Well, for those you have to remember that the values of the rows are all based in the 8x8 tiles. The number ''9'' starts at the third row [60], and is located at the tenth column [09], giving it the total HEX value of [69]. The lower portion of the 8x16 font is not taken into account!
As you can see, the White font (8x16 font) grows by [20] with each 8x16 character.
For example, this is how Shigesato Itoi will be written with that font in the CCS file using the 8x16 font:
"[ 02 ][ A3 88 89 87 85 A3 81 A4 8F 40 89 A4 8F 89 ][ 00 ]" // Shigesato Itoi
4. Expanding the Font for extra characters.
This part is not difficult at all.
Basically, you have to do the same thing you did in the Modifying Game Fonts section of this tutorial.
You add your custom character to the credits.png font, and then simply call it into the CCS file according to where it is located in the Font and the HEX value that position takes.
For example, in the following image I added a custom accentuated ''I'' to use with the 8x8 font next to the 8x16 font letter ''Z''.
The row in which the letter is located is row 12, or [A0] in HEX, and it's vertical position is [0B], giving it the value of [AB]. You can also use the portion below that very same letter to add another 8x8 letter.
For 8x16 letters it's basically the same thing, just remember to use the row value where the letter starts and not the row of the bottom of the letter.
5. Limitations.
-
There is no limit as to how many lines you can add to this sequence. The only real limit to this is the length of the song that plays during the Staff sequence. If you shorten the lines, the song won't have enough time to end properly, and if you add too much lines, the song will end before the sequence finishes.
-
You can write up to 32 letters in one single line. If you surpass the 32 letters for the line, you'll end up with the additional letters being parsed above and below the current line. Just take into consideration the 32 character limit for each line.
You can separate a line of text into two rows in the CCS if you have a lengthy phrase, like this:
"[ 03 06 ][ 01 ][ 59 4B 6B 40 5B 7A 4B 54 6C 44 7B 4B 7A 45 6B ][ 00 ]" // Los productores
"[ 01 ][ 6A 6C 48 45 7A 45 5A 40 42 46 7A 42 54 45 44 45 7A 40 42 ][ 00 ]" // quieren agradecer a
- The length of the "text scroll" is by default $11b0. This is the value that determines when the scrolling will stop; by default, it stops with the player name in the middle of the screen. If you change the vertical length of the credits, you will need to change this value at three locations, finding the correct new value by trial and error:
- 0x4f583
- 0x4f58c
- 0x4f66f
- Overworld Sprites
- Battle Backgrounds
- Battle Sprites
- Title Screen
- Window Graphics
- Logos
- Fonts
- Animations
- Swirls
- EB Project Editor
- Tile Data
- Tile Editor
- Collision Data
- Adding Map Palettes
- Map Editor
- Doors
- Warp Styles
- Enemy Placement
- Hotspots