This time, though, we need to shift things left. So what we do now is go to a new, fresh tile, which is where we’ll put the rest of the o. What about the rest of the o? We can’t just forget about it! People complained a bunch when we had incomplete hooks on our ys and gs and such way back when, imagine what people would say if we didn’t finish our letters horizontally either ? Looking good! But wait, we’re not done yet. You can do the bit math yourself to see how it turned into that if you want. Wherever there’s a 1 in the new o data, a 1 will be placed in the B’s data. Now, the next thing we’re going to do is a bitwise OR, which is one of the basic binary operations, to sort of “combine” the B’s data with the o’s data. Since the width of B is 5, we want to shift all of the o’s bits to the right 5 places. Now what we’re going to do is “shift” things around with how the “o” is stored, then sort of “stick” that on top of the B’s data. But if you look closely, you can even kind of see the “B” pattern in there. I’m not even sure if that’ll show up in HTML right. They’re stored in this order:įor “B”, every time there’s a pixel on, we set the corresponding bit to 1, otherwise we set it to 0. First, let’s look at how B is actually represented by 1s and 0s. How the fark do you do that? The key is seeing everything in binary, you know, 1s and 0s. Now, we need to somehow make this next “o” fit in the right spot:
But you also want to take into account that you want a blank column between letters, so we set the width of this B to 5 instead. We check it and it gives us the number we want for the letter we give it. We have a table elsewhere in the ROM that has the width of each letter. MOTHER 3 later converts this to 4bpp so it can use different colored text, but we’ll talk about 1bpp only for now. Sounds weird, but it’s probably just to space things nicely apart)īut we want a VWF, so this is one way to do it. (Incidentally, the MOTHER 3 programmers illogically place sprite text 10 pixels apart when they can actually be 16 pixels wide each. The start of the B and o are separated by 8 pixels because that’s the logical thing to do when handling 8×8 text. So, in a fixed width font, the first two letters would be represented by this: We’re also going to assume 8×8 letters, meaning 8 rows of pixels and 8 columns of pixels for each letter. For the sake of brevity, we’ll only look at the first two letters here though. Let’s say we want to print the word “Boobs” using a VWF.
MOTHER 3 REWRITE DOWNLOAD HOW TO
How to do that programming-wise is a bit complicated though. We want letters to only take up as much space on screen as necessary. So that’s why variable width fonts come into play. Japanese text is almost always spaced evenly and in rows/columns, but in other languages we don’t do that. A static width font puts the start of each letter at a fixed (static) distance apart. I’m assuming the difference between a static width font and a variable width font is clear by now. But the following explains how most variable width fonts (VWFs) are implemented in ROM translations.
MOTHER 3 REWRITE DOWNLOAD FREE
Again, this is technical mumbo jumbo blah blah jargon, so feel free to ignore it if you’re not into that sort of thing. So I was gonna make my own explanation real quick and figured hey, might as well make it a normal update. It’s really pretty simple, but in my search for other informative graphical tutorials, I came up with nothing. Since I have less time, I’ve been using what little time I have for hacking, so forgive the late/slow responses to stuff.įor now, I was going to answer a question someone asked about how the sprite VWF is actually going to do its stuff dynamically. Very busy with real work, so progress is slowish on the sprite welding front.