Welcome Guest [Log In] [Register]
Welcome to Yoshi Lighthouse. We hope you enjoy your visit.


You're currently viewing our forum as a guest. This means you are limited to certain areas of the board and there are some features you can't use. If you join our community, you'll be able to access member-only sections, and use many member-only features such as customizing your profile, sending personal messages, and voting in polls. Registration is simple, fast, and completely free.


Join our community!


If you're already a member please log in to your account to access all of our features:

Username:   Password:
Add Reply
Alphabet Graphics
Topic Started: Mar 16 2010, 06:31:07 PM (1,288 Views)
Posted Image Salanewt
Member Avatar
Star Yoshi

Hello! Currently, we can now edit the font used for the list/menu format (like in your Inventory, for example), as well as the main font used in the game (like when characters talk). Here is where I will work on a guide to explain how it works.

List Font:

Posted Image

This is basically what we know so far. As you can see, each character is composed of six 32-bit strings, which should be divided into pairs (for the bottom, middle, and top third of each character).

The first 32-bit string of each pair accounts for the main colour, white. The second accounts for no colour (first and second strings are interchangeable though). If you mix them, you get Blue (the second colour that each character in this format uses). This does not apply (which will be explained later). The first of each pair can be no colour, and the second white (it depends on the commands of each pair). It is more complicated than this (since the second of each pair can also create extra pixels).

However, unlike when editing uncompressed graphics, each byte is composed of two commands (one for each letter, ranging from 0-F).

Posted Image

The above image shows how the pixels are arranged by their command. These can work for either of the strings in a pair, but work a bit differently if the other string in that pair also has a command for the corresponding letter.

Oh yes, you have to read the pixels from right to left, NOT left to right (based on the command numbers, which go from left to right).

Posted Image

I have colour coded the corresponding commands, which make some changes. This is how it works, for inverting bytes. If two commands have pixels which go in place (or overlap each other), they appear blue. If they do not overlap, the pixels are white.

Example 1: the red commands in each string ("1" in the first, and "2" in the second) are being used. Both pixels do not overlap, so they appear white.

Example 2: The purple commands in each string ("9" in the first, and "8" in the second) are being used. Because "9" has a pixel where "8" places one, that pixel is now blue.

And this brings the end of my character editing guide. Please note that this is only for the font which is used in areas with a darker background (like inventory, where enemy names are displayed during battle, etc.). When we find where there are more fonts, there will be more guides (I imagine that they would work more or less like this font though).

If anything is missing, or needs to be added, please tell me. You can also post in here with more information or questions (or even how to create new characters, if you really want).

Have a nice day.
:Idleblackyoshi: :Idlewhiteyoshi:

Edit: The test subject is the letter "M" in capital form.


Edit 2: We can now edit another font. "J" can be found here: 0851B788. To find the letter in one font (as long as the location is known in a different font), all you have to do is to find the difference. You can subtract the spacing pointer from the letter's location pointer to find the difference. Add this to the spacing pointer of a different font to find that corresponding letter.
Edited by Salanewt, May 4 2010, 06:52:33 PM.
Have a nice day!

Oh wow, it's been a while. Um. Hi. I guess I can get back into M&L stuff sooner or later, it really has been ages.

To use a sword, /\ and / again.
Offline Profile Quote Post Goto Top
 
Posted Image Salanewt
Member Avatar
Star Yoshi

Letter index: I will number them when this list is finished.

List-style font:

0851E1A0 = Start of List-style font (nothing in this space).

0851E1B8 = Arrow pointing up.
0851E1D0 = Arrow pointing right.
0851E1E8 = Arrow pointing down.
0851E200 = Arrow pointing left.

0851E218 = Unknown(*)
0851E230 = Unknown(*)
0851E248 = Unknown(*)
0851E260 = Unknown(*)

0851E278 = Heart
0851E290 = Music Note
0851E2A8 = Star

0851E2C0 = Small "e"
0851E2D8 = Small "er"
0851E2F0 = Small "re"
0851E308 = Unknown(*)

0851E320 = Left half of up direction of D-pad.
0851E338 = Right half of up direction of D-pad.
0851E350 = Left half of down direction of D-pad.
0851E368 = Right half of down direction of D-pad.
0851E380 = Left half of left direction of D-pad.
0851E398 = Right half of left direction of D-pad.
0851E3B0 = Left half of right direction of D-pad.
0851E3C8 = Right half of right direction of D-pad.
0851E3E0 = Left half of "L" button.
0851E3F8 = Right half of "L" button.
0851E410 = Left half of "R" button.
0851E428 = Right half of "R" button.
0851E440 = Left half of "A" button.
0851E458 = Right half of "A" button.
0851E470 = Left half of "B" button.
0851E488 = Right half of "B" button.

0851E4A0 = (Space)
0851E4B8 = !
0851E4D0 = "
0851E4E8 = #
0851E500 = $
0851E518 = %
0851E530 = &
0851E548 = '
0851E560 = (
0851E578 = )
0851E590 = *
0851E5A8 = +
0851E5C0 = ,
0851E5D8 = -
0851E5F0 = .
0851E608 = /
0851E620 = 0
0851E638 = 1
0851E650 = 2
0851E668 = 3
0851E680 = 4
0851E698 = 5
0851E6B0 = 6
0851E6C8 = 7
0851E6E0 = 8
0851E6F8 = 9
0851E710 = :
0851E728 = ;
0851E740 = <(*)
0851E758 = =
0851E770 = >(*)
0851E788 = ?
0851E7A0 = @(*)

0851E7B8 = A
0851E7D0 = B
0851E7E8 = C
0851E800 = D
0851E818 = E
0851E830 = F
0851E848 = G
0851E860 = H
0851E878 = I
0851E890 = J
0851E8A8 = K
0851E8C0 = L
0851E8D8 = M
0851E8F0 = N
0851E908 = O
0851E920 = P
0851E938 = Q
0851E950 = R
0851E968 = S
0851E980 = T
0851E998 = U
0851E9B0 = V
0851E9C8 = W
0851E9E0 = X
0851E9F8 = Y
0851EA10 = Z

To be continued...

(*): Symbol should be here, but it is not created here. There is room reserved for it though.

Some final reminders. For letters, you have maximum dimentions of (LxW) of 12x8. Most characters tend to be 8x8 though, but the extra length is for letters that tend to "drop" below the line, like g or j (I think special characters can too though).

Also, for a Yoshi Egg (not the best, but still pretty good), you can use these bytes (viewed in 32-bit):

0CEEEEC0 0C6026C0 07FFFF70 06C37A40

Posted Image

I know that it is not the best egg, but I am proud of it. One reason why I made this (not only because I am a Yoshi maniac) was to show that editing or making your own characters is not nearly as hard as it looks.

Now, if you have any questions, or answers to questions, please just ask.

Have a nice day.

Edit: For that egg, I included the normal background colour, so you might want to place it in an art program to take a better look at it.
:Idleblackyoshi: :Idlewhiteyoshi:
Edited by Salanewt, Apr 10 2010, 09:53:43 PM.
Have a nice day!

Oh wow, it's been a while. Um. Hi. I guess I can get back into M&L stuff sooner or later, it really has been ages.

To use a sword, /\ and / again.
Offline Profile Quote Post Goto Top
 
Posted Image Salanewt
Member Avatar
Star Yoshi

Something a bit new... This is the function for character/letter spacing! I found it by searching near 0851F9E8 until something changed. I still barely know what most of the stuff in that bank contains, because only removing the one pointer made any obvious changes.

Eventually, I followed the first 0851F9D0 (removing the second one does nothing), which pointed me to the character/letter/word spacing at 0851E11C. I am still doing research here, but from what I gather...

Posted Image

This data helps tell the game how to read text. Aside from the 23, I have not yet pinpointed what everything affects (but it seems that certain bytes affect certain characters in the font described in the previous post). The 23 changes how the letters are read by the game, or else they could be scrambled up (in other words, it seems to be a flag which helps the game decide exactly where the font section ( the one that was discussed earlier in this topic) locates its bits from for the game).

Some of the data after the boxed in data might also affect fonts, but editing them has not shown me so. Every single digit (4-bit number) affects a specific character in each alphabet, but I still need to do much more testing. If this is the case, then there could be more data in here which belongs to more characters. Oh yes, the spacing only applies after said character... For example, setting the spacing of "R" in "Recover" would move the rest of the letters in accordance to what the spacing value is.

My research has let me locate "l" (lowercase L). In the 32-bit segment "55715415", the first "1" is the spacing for "l". The letters in this area are in the same order as the rest of the characters already in the game's code, so this segment affects (in order): "i j k l m n o p". Knowing this, it is probably safe to say that there is much more data than I have shown in the boxed in data.

Have a nice day.
:Idleblackyoshi: :Idlewhiteyoshi:


Edit: The primary alphabet/font used in the game (used by most characters when they talk) has its spacing data here: 0851B014. This could help us locate the font, since the menu font's spacing data is conveniently placed right before all of the characters (so this font will hopefully be like this as well).

Edit 2: Apparently, the Map has its own font (the map you can access from the menu). The spacing starts here, and I am sure that the font uses the same format as the other two: 0851C898.
Edited by Salanewt, May 4 2010, 07:01:16 PM.
Have a nice day!

Oh wow, it's been a while. Um. Hi. I guess I can get back into M&L stuff sooner or later, it really has been ages.

To use a sword, /\ and / again.
Offline Profile Quote Post Goto Top
 
Posted Image Teawater
Who are you calling an old man?

3 things.

1. The header is 32-bit.

23 = The 3 seems to be the height of letters in 64-bits. (Which also affects the offset of letters.. due to multiplying the height of letters with the letter number.) This number is either 4-bit or 5-bit?

The 2 seems to affect the characters as well...


2. Next.. There are 8 rows. For each letter is 4-bit. from hex char 00 to FF.

Do note that the spacing is in pixels. A number of 0 would be 1 pixel apart, 1 would be 2, and so on. This is for Enemy Names. -- It looks like I can fit a sum of 96 with these spacing numbers. (Even with the m coming off the right a bit.) Anymore would suddenly disappear. A true maximum of 96 characters.

And SWEET! I'm sure I can somehow use the spacing database here as a character limit for many things. (Like Enemy Names.)


3. The alphabet in pixels. Each letter consisting of 64-bits * the height of letterfs specified in header data.



Why have we not posted the fonts? Er.


0851F9E8 (Font 1) =
0851F9EC (Font 1) = Suitcase Map Location Text
0851F9F0 (Font 0) = Dialogue Text
0851F9F4 (Font 2) = Suitcase Text (Excluding Map); Battle Text
0851F9F8 (Font 2) = Suitcase Text (Like Save menu and Options menu.)
0851F9FC (Font 1) =

Fonts:
0851F9A0:0851B014 = Font 0 = Dialogue Text
0851F9B8:0851C898 = Font 1
0851F9D0:0851E11C = Font 2 = Suitcase Text; Battle Text


I wonder...

-08504778 - Enemies hit effect graphic. (like puffs when they are hit, for example) Each 64-bit...
-Text Data
What is in this large gap?
0851B014 = Font 0 = Dialogue Text
0851F9E8 - Font data (pointers)
Edited by Teawater, Jun 6 2011, 03:48:52 AM.
If you ever find an error in any of my reference materials, PLEASE let me know.
Posted ImagePosted ImagePosted ImagePosted ImagePosted ImagePosted Image

Don't mind me, I'm nothing but a spoiler.
Offline Profile Quote Post Goto Top
 
Posted Image Teawater
Who are you calling an old man?

I have now ripped the fonts out.

Here they are in this image. All three of them. (Font 0 at the top, font 1 in the middle, font 2 at the bottom.) Using the palette of the NPC dialogue.
Attached to this post:
Attachments: mlssfonts.png (9.5 KB)
If you ever find an error in any of my reference materials, PLEASE let me know.
Posted ImagePosted ImagePosted ImagePosted ImagePosted ImagePosted Image

Don't mind me, I'm nothing but a spoiler.
Offline Profile Quote Post Goto Top
 
Tae
Hatchling
Font 2 in the middle does not match the letters to the original e... But Bobs Game Font changed the KOPQRSTUVZ and added the slash to the number zero.
Offline Profile Quote Post Goto Top
 
1 user reading this topic (1 Guest and 0 Anonymous)
« Previous Topic · Superstar Saga · Next Topic »
Add Reply

↓ It's not the truth (or is it?) Come back tomorrow to find out! (Joke.) ↓