Author
|
Topic: Question about VWF (Read 1 times)
|
DeGamer
Guest
|
 |
« on: January 17, 2011, 09:18:17 pm » |
|
I wanted to ask if instead of making a game use a VWF (that normally doesn't have one), would it be easier to change the fixed width of font characters to a smaller size (for example, from a width of 16 to a width of 8 )?
Or would that be as much work as implementing a VWF in the first place? (Does it also depend on how the game was coded, meaning there is no general answer?)
On a side note: I now see why some games are never translated officially, or why some fan translations are abandoned. It's quite a bit of work. I've read so many documents here that it feels like school all over again. I feel like I've been working on my translation project for a much longer time than I've actually spent on it. Some of it has been fun, interesting, annoying and frustrating (what a combo!). :laugh:
|
|
« Last Edit: January 18, 2011, 02:39:27 pm by DeGamer »
|
|
|
|
DQ Chao284
Guest
|
 |
« Reply #1 on: January 18, 2011, 07:13:52 am » |
|
I wanted to ask if instead of making a game use a VWF (that normally doesn't have one), would it be easier to change the fixed width of font characters to a smaller size (for example, from a width of 16 to a width of  ? Or would that be as much work as implementing a VWF in the first place? (Does it also depend on how the game was coded, meaning there is no general answer?) On a side note: I now see why some games are never translated officially, or why some fan translations are abandoned. It's quite a bit of work. I've read so many documents here that it feels like school all over again. I feel like I've been working on my translation project for a much longer time than I've actually spent on it. Some of it has been fun, interesting, annoying and frustrating (what a combo!). :laugh: Well I am placing my part due to Dragon Quest 6 SNES(let alone have the DS version already released) and those who like old school stuff, the problem is that DQ6 uses "Fixed Width Font Compression" that has a fixed size to the fonts to each character with using a 2 to 4 pixel overlapping format that is diffcult to work with, the only thing is finding the source code and expanding the rom so that might make room to it.
|
|
|
|
RedComet
Guest
|
 |
« Reply #2 on: January 18, 2011, 07:29:46 am » |
|
In my experience, you can usually take the easy way out and alter the tilemap loading routine to shrink a 16 width font down to 8. VWF's have always required a lot more work.
|
|
|
|
Nightcrawler
Guest
|
 |
« Reply #3 on: January 18, 2011, 11:16:11 am » |
|
I'd go so far as to say in nearly all cases (on tile based systems anyway), it's less work to change a fixed width than implement a variable width. Depending on the game engine, sometimes you could get lucky and do it with a single byte change. Or it could require disabling some routines, taking out some shifts, etc. It's differs game to game like everything else.
|
|
|
|
DeGamer
Guest
|
 |
« Reply #4 on: January 18, 2011, 03:54:09 pm » |
|
Well I am placing my part due to Dragon Quest 6 SNES(let alone have the DS version already released) and those who like old school stuff, the problem is that DQ6 uses "Fixed Width Font Compression" that has a fixed size to the fonts to each character with using a 2 to 4 pixel overlapping format that is diffcult to work with, the only thing is finding the source code and expanding the rom so that might make room to it.
It's reasons like that, that I have stayed away from older consoles. I started messing around with disc based system. Call me crazy, but I find it easier to modify stuff around. In my experience, you can usually take the easy way out and alter the tilemap loading routine to shrink a 16 width font down to 8. VWF's have always required a lot more work.
& I'd go so far as to say in nearly all cases (on tile based systems anyway), it's less work to change a fixed width than implement a variable width.
I see. After reading the documents on VWFs I was hoping you guys said what you stated. So implementing a VWF does indeed involve much more work. Depending on the game engine, sometimes you could get lucky and do it with a single byte change.
So, that is possible. I'm not sure if I'm that lucky though.  \ I'll have to dig deeper. Or it could require disabling some routines, taking out some shifts, etc. It's differs game to game like everything else.
I hope that not the case with the game I'm working on. I don't see it worth it and might as well go with a VWF. Thank you all for your responses.
|
|
|
|
Ryusui
Guest
|
 |
« Reply #5 on: January 18, 2011, 04:19:12 pm » |
|
It's not an absolute that implementing a proportional font is significantly harder than changing the width of an existing monospace one. DS games, interestingly, use monospace fonts of nonstandard sizes, like 12x12: they already have the routines in place to display a proportional font, but they use it to display a monospace one instead. Changing this can be as simple as finding the game's font resource file (NFTR) and modifying the width table appropriately; unfortunately, lazy programmers like to skimp on including routines to actually load the appropriate width from the resource, assuming a monospace font in all circumstances, and so you'll need to actually hack the game in order to make it load the character widths and display a proportional font.
But yeah, if the hard part's not already done for you, it's easier to change a 16x16 monospace into an 8x16 monospace than it is to implement a proportional font. Not that it's always desirable, mind you. Proportional fonts involve a lot of bit-shifting and math to move character tiles around and glue them together in just the right way - and furthermore, they're the only way you can get a font smaller than 8x8. (Okay, yeah, Pokemon TCG uses a 4x8 font, but if you're going to go to the trouble to make that work, might as well go full-proportional...)
|
|
|
|
DeGamer
Guest
|
 |
« Reply #6 on: January 20, 2011, 12:42:38 am » |
|
It's not an absolute that implementing a proportional font is significantly harder than changing the width of an existing monospace one. DS games, interestingly, use monospace fonts of nonstandard sizes, like 12x12: they already have the routines in place to display a proportional font, but they use it to display a monospace one instead. Changing this can be as simple as finding the game's font resource file (NFTR) and modifying the width table appropriately; unfortunately, lazy programmers like to skimp on including routines to actually load the appropriate width from the resource, assuming a monospace font in all circumstances, and so you'll need to actually hack the game in order to make it load the character widths and display a proportional font.
I think the game I'm looking into does not have any routines anywhere for a proportional font. The Japanese characters are all 16x16 even if they don't need to be (but I'm sure it was done that way to make the programmer's work easier). Of course for Japanese characters I find this much easier to read, but with English text I'm adding in, it doesn't look all that hot, especially with the lower case letters. But yeah, if the hard part's not already done for you, it's easier to change a 16x16 monospace into an 8x16 monospace than it is to implement a proportional font. Not that it's always desirable, mind you.
Well, ideally you'd want a VWF because it would look better and display words properly, yes I agree. But are you saying that it not always desirable to change the existing fixed width to a smaller size because the 16x16 mono spaced characters would look worse as 8x16 (even if they were redone to fit that size)? I was even thinking of doing a DTE for the font, but I only have space for 254 combinations and I need a bit over 300. Although I'd like a VWF, if I could double my space by going from 16x16 to 8x16, that would give me enough room to fit properly translated text on the screen in 99% of the game (with much less work hopefully). With the way it is now, I can't even try to shorten sentences or their wordings because the game has a fixed line length of 8 characters (and in this instance expanding the text box won't help unless you changed the width of the characters anyway). For for places that I need to put a word that is longer than 8 letters it carries over to the next line, which looks awkward because English is obviously not read like that.
|
|
|
|
Ryusui
Guest
|
 |
« Reply #7 on: January 20, 2011, 12:46:47 am » |
|
What I meant to say is "it's easier to change a font from 16x16 to 8x16 than it is to implement a proportional font, but it's usually preferable to take the hard route and implement the proportional font if you can."
As for "fixed line length": there is no such thing as "fixed" if you're already up to your elbows in the game's code. (Unless we're talking about absolute hardware limitations.) Find out how the game determines a line has reached its eight-character limit and tweak it so that it works the way you want it to.
|
|
|
|
DeGamer
Guest
|
 |
« Reply #8 on: January 20, 2011, 04:19:34 pm » |
|
What I meant to say is "it's easier to change a font from 16x16 to 8x16 than it is to implement a proportional font, but it's usually preferable to take the hard route and implement the proportional font if you can." Alright so I did understand, so we're on the same page. As for "fixed line length": there is no such thing as "fixed" if you're already up to your elbows in the game's code. (Unless we're talking about absolute hardware limitations.) Find out how the game determines a line has reached its eight-character limit and tweak it so that it works the way you want it to.
Maybe I should have given an example. In all text boxes in the game (except one) there are no more than 8 characters per line. On screen it looks like this: マ ã‚° ムッ ト ビ ー ムを 使 ゠㪠ㄠ㨠ã 㤠ㄠ㋠も 㗠れ ã‚“ 㞠…
The text in the ROM looks like this (where 00 ends the string.) マ ã‚° ムッ ト ビ ー ムを 使 ゠㪠ㄠ㨠ã 㤠ㄠ㋠も 㗠れ ã‚“ 㞠…00 Even if the text box was expanded and I got the game to use more than 8 per line, the most I'd have room for is 10 characters per line if the font width remains mono spaced (which would not work for a lot of instances). That sentence translate to: "It might easier if you just use the Magnet Beam..." In the game, all I have room for is this: It might be easie r if you
But, if the width of the font was cut in half, I'd have space for the following ( and this would be the case for 99% of the game text, only a couple of instances where I'd have to make the string shorter for it to fit.) It might easier if you just use the Magnet Beam.
That's why I asked which method requires more work. I'm still a newcomer to romhacking on this level. And based on what I've read the documents section, my current skills are not enough to implement a VWF (which is what I'd prefer). So I was hoping changing the existing fixed width of font characters to a different size would not be as complex (which would be just as good as a VWF in my case since it will allow the needed translation to be inserted.) The documents also told me to stay away from compressed graphics if I came across any but, several weeks later, I figure out the compression it used without even knowing it's name until afterward (so now I know where they are and how to change them). I'm hoping to at least change the mono spaced font from 16x16 to 8x16. With the exception of some compressed graphics that I'm still changing, the font width would be the only thing stopping me from inserting a legible script, and then releasing a patch. Could I post in the Help Wanted section for such a thing? I've done everything else I could handle at this point.
|
|
|
|
|