Author
|
Topic: The Dragon Force II Localization Project (Read 2 times)
|
FaustWolf
Guest
|
|
« on: September 08, 2009, 02:54:51 am » |
|
http://www.youtube.com/watch?v=oHVdPIVFweQI recently caught up with two individuals who were on the forefront of Dragon Force II translation a couple years back and together we're resuming this project. Right now I'm working on collecting & decompressing cutscene dialogue while my colleagues are handling translation and reinsertion of uncompressed text. If anyone wants to "byte" on this we're certainly in need of help -- especially for exploring our options on implementing new fonts, possibly NOP'ing the dictionary decompression routine used by the game engine, and maybe implementing a VWF font if needed. Experience in Saturn modding specifically isn't all that important; PSX and SNES game modding principles apply pretty well once you can get into a Big Endian mindset. Rather than put out a Help Wanted ad for additional translators, I wanted to ask what major fan translation communities are out there right now? I'm just getting my feet wet in the translation scene with this project, and "Dejap" is still springing to mind...which shows you how outdated my knowledge is. Anyone know of bilingual RPG fans looking for a cool project to jump into, or of forums where these people tend to gather?
|
|
|
|
KaioShin
Guest
|
|
« Reply #1 on: September 08, 2009, 03:10:48 am » |
|
Rather than put out a Help Wanted ad for additional translators, I wanted to ask what major fan translation communities are out there right now? I'm just getting my feet wet in the translation scene with this project, and "Dejap" is still springing to mind...which shows you how outdated my knowledge is. Anyone know of bilingual RPG fans looking for a cool project to jump into, or of forums where these people tend to gather?
This is it for the English community. Quite a few romhackers have their own boards, but few are really active above the immediate project support stuff. AGTP has one and I think Gemini's board has a few regulars. Then there is Transcorp which is mostly dead except for when RHDN is down ( ) and the Dejap section on the zsnes board. This board here is really the most active and central community hub. As far as popular groups go, I think Kingcom and mine's pretty popular *shameless ad* http://kaioshin.romhacking.net/ We don't have a forum though, community interaction happens only through comments. (There are way too many forums out there as it is, and 99% cover the same topics as the rest. Who should visit them all?)
|
|
« Last Edit: September 08, 2009, 04:04:57 am by KaioShin »
|
|
|
|
I.S.T.
Guest
|
|
« Reply #2 on: September 08, 2009, 03:57:52 am » |
|
dejap has been dead for fucking YEARS, man! you didn't know that?
|
|
|
|
FaustWolf
Guest
|
|
« Reply #3 on: September 08, 2009, 12:34:00 pm » |
|
Thanks KaioShin. IST, I'll just give you a big: Actually though, I just found out about that when RH.net put out a front page announcement to the effect that Dejap.com had been overtaken by some kind of PS3 spam site. I hadn't paid much attention to the translation scene until I found out literally days ago how doable this project will be on the technical side, and how much work had already been completed by Sandslice and Sixfortyfive --I'd just feel bad to ask Sandslice to take up the job of translating the rest of the text singlehandedly. Since this is the most happenin' place, I'll submit a help wanted ad for kicks. Just to clarify, I'll repost what's on the Youtube video description: Help needed in the following areas: *Translators (high Japanese/English translation skills needed) *Modders experienced in implementing VWF routines and/or implementing new text fonts. *Anyone interested in completing the graphic design end of scanlations once written material has been translated.
|
|
|
|
Sixfortyfive
Guest
|
|
« Reply #4 on: September 08, 2009, 02:48:14 pm » |
|
Actually, we could use a little more help on the programming side, namely in the area of increasing the size of various text boxes and messing around with the text compression routine. There's plenty of space on-disk to expand text fields as needed, but on-screen real estate is at a premium in some areas of the game as it is, and I'm not experienced enough with that sort of stuff to tackle it right now.
We're probably capable of making something 100% playable/readable as it is, and the dumping and translation of the game script itself is where the bulk of the remaining work needs to be done, but the whole thing is certainly gonna look like a hack job until we level up our ASM skills.
I was gonna hold off on asking for outside help for a little while, but I guess it couldn't hurt. The only community I'm familiar with that might have applicable programming knowledge would be SegaXtreme, and I haven't been to that place in years. I wonder if all the old guys are still around.
|
|
|
|
kingofcrusher
Guest
|
|
« Reply #5 on: September 08, 2009, 03:26:14 pm » |
|
Saturn stuff is pretty tough, I tried to tackle Dungeon Master Nexus but couldn't figure anything out. You should try the Shining Force Central message board (there's a sub-board for the SF3 translation), the guy who figured out how to hack Shining Force III hangs out there and he's the only guy I know of who for sure can handle Saturn programming.
Also, I just watched that video you put on youtube and it looks great. Not even close to a hack job, that's some seriously nice work so far!
|
|
« Last Edit: September 08, 2009, 03:50:09 pm by kingofcrusher »
|
|
|
|
Sixfortyfive
Guest
|
|
« Reply #6 on: September 08, 2009, 03:48:38 pm » |
|
There's nothing particularly "difficult" about the Saturn compared to other game consoles when it comes to romhacking. In fact, there are tons of things about many Saturn games that make it easier to work with than older consoles. Standard text encoding (Shift-JIS) for most of the text means you don't have to mess with tables that much at all, standard file systems (ISO9660) make unpacking and repacking game files incredibly easy, big endian processors make pointer tables stand out more imo, region coding is easy to change, CDDA tracks make for easy audio swapping, plenty of tools exist for converting FMV, music, and other media files to PC-readable formats, and so on.
The biggest roadblock for romhacking seems to be the lack of reliable debugging emulators. SSF has high compatibility but no debugger. Yabause has a debugger but low compatibility.
|
|
|
|
FaustWolf
Guest
|
|
« Reply #7 on: September 08, 2009, 04:08:12 pm » |
|
SSF has high compatibility but no debugger. Yabause has a debugger but low compatibility. Oh man, this. We really lucked out that Yabause could play just enough of Dragon Force II to look at the dictionary table used for compressed dialogue in RAM. I think it loads the vs. screen taunts if not the battles, so if the graphics are compressed we should be able to get that compression routine using Yabause too. Edited the recruitment/demo video with the ASM modding request. We should definitely reach out to the Shining Force III translation group per kingofcrusher's advice, as well as SegaXtreme.
|
|
|
|
Kagemusha
Guest
|
|
« Reply #8 on: September 08, 2009, 04:11:49 pm » |
|
Probably your best bet would probably be CyberWarriorX (Yabuse author). He was helping with the FEOE 4 translation project, but I believe work ultimately stopped on it due to a lack of time. Can't really remember though. I think he was looking into doing a VWF though. To my knowledge, that hasn't been accomplished on the Saturn yet.
And the guy behind the Shining Force 3 hacking I believe is Knight0fdragon.
|
|
|
|
FaustWolf
Guest
|
|
« Reply #9 on: September 09, 2009, 01:51:13 am » |
|
Six has doubts that a VWF routine is really necessary for Dragon Force II, and after playing the game a bit with the preliminary translations completed so far, I tend to agree. But before we abandon this as a potential project goal, what are the typical advantages of a variable width font versus a normal font? Is there any rule of thumb that VWFs always turn out nicer than fixed width fonts?
About the font goals...
What you see in the Youtube video was Sixfortyfive literally using ASCII code to reinsert text translated by Sandslice. This can be done because Shift-JIS is basically "ASCII plus a million kana and kanji" as I like to describe it, and the result is really good -- but the catch is, the text was uncompressed to begin with in these cases.
The challenge comes in reinserting the storyline dialogue (the kind of text you saw in the first half of the video), which is compressed. The compression is really easy -- it's just uncompressed Shift-JIS with one-byte codes interspersed referring to commonly used values stored in a simple 256-entry dictionary. So when, say, an exclamation point is called, the game engine gets to use one byte as opposed to two every time the script needs that punctuation (the Shift-JIS exclamation consists of two bytes, whereas the ASCII exclamation point is just one).
But we can't simply use ASCII values to re-insert the translated text for the story dialogue on account of the game engine using one-byte codes to refer into the dictionary by default. The dictionary, of course, has to contain two-byte and therefore non-ASCII values -- we couldn't find any operators to pair up with ASCII values that would just produce a letter without an extra space or something. Also, I believe Six has played around with the idea of replacing dictionary values with the two-byte Roman alphabet characters stored in Shift-JIS (was it half-width or full width? I keep forgetting), and the result just looked awful.
One hypothetical solution to the problem is to simply NOP out the ASM routine for the dictionary compression, and assign the uncompressed text display routine to display the story dialogue as well. The downside is neither Six nor I are used to tracing ASM code (though I assume NOP'ing out the decompression routine would be easily accomplished in an appropriate dissassembler -- if one exists for Saturn ASM). I'm not sure how to go about finding it since ASM routines seem kind of nebulous to the uninitiated, whereas graphics and text values give you something concrete to stare at in RAM. So that's an area where help will be needed.
Failing that, I've hypothesized that we should be able to find the font graphics sheet (and decompress it if needed) and strategically overwrite appropriate kana and kanji images with our own stylized Roman alphabet font. Store two-byte values in the compression dictionary pointing to the spiffy Roman alphabet images on the sheet, and budda-bing, just write the English text in straight ASCII. The game engine will still treat the values as dictionary references, but each ASCII value circuitously points to its letter on the sheet if the ruse works well. However, there may be some kind of half-width/full-width issues Six might wish to bring up if we had to turn to a solution like this.
|
|
|
|
BRPXQZME
Guest
|
|
« Reply #10 on: September 09, 2009, 06:49:42 am » |
|
Is there any rule of thumb that VWFs always turn out nicer than fixed width fonts?
Visually, yes. Code-wise, well, I guess that’s kind of subjective.... From a strictly aesthetic perspective, a proportional font is easier to read (because of the way we read words—by shape, only going letters at a time if we are not familiar with the shape of a word) and does not give you huge gaps of negative space on skinny letters like “l†and “i†while cramming wide letters like “w†and “m†into the same width (of course, you can sacrifice one or the other, and you can put things like “ll†“li†and “il†into the same space, but ultimately, with a monospaced font, you should try to pick a width that makes more normal-width characters like “eâ€, “aâ€, and “n†easier to read). From a practical perspective, this also means you have a bit of extra space to play with in text boxes, though on the flip side, it also means you have to make sure text boxes are going to fit the way you need them to. The code, on the other hand, is the main issue. I’m not going to go around pretending it’s easy. This can be done because Shift-JIS is basically "ASCII plus a million kana and kanji" as I like to describe it
It falls 993,249 characters short of that goal Anyhow, it seems that you’ve got your work cut out for you with that there dictionary. From the sound of it, the “obvious†solution is to “simply†re-work the dictionary routine to not require extra dreck added to ASCII entries.
|
|
|
|
Cheetah
Guest
|
|
« Reply #11 on: September 13, 2009, 03:20:38 am » |
|
Wow I searched last week for news on translating this game, and now I find this thread. I am far from an experienced hacker and all my experience is with PSX and Final Fantasy Tactics, but I would be on board. If you have some graphics you need worked on I should be able to produce something and I have experience with changing window sizes.
|
|
|
|
FaustWolf
Guest
|
|
« Reply #12 on: September 13, 2009, 11:36:20 am » |
|
Cheetah, you mean changing the size of text display windows? That's exactly one of the most important things needed, due to some nasty text wrapping issues. How have you gone about this in the past?
PSX modding experience should carry over just fine to the Saturn, the major difference besides the type of processor being that the game data is stored in Big Endian mode.
|
|
|
|
Cheetah
Guest
|
|
« Reply #13 on: September 13, 2009, 12:04:34 pm » |
|
Well I know the theory behind finding that kind of stuff with ASM, but to be honest I have had more success doing it manually. I spend lots of time looking at the hex searching screen positions and finding patterns in the hex. Much more time consuming but I find it builds a better understanding of the actual code. Is this possible with this game because I heard that much of it was compressed, or was that just the text?
|
|
|
|
FaustWolf
Guest
|
|
« Reply #14 on: September 13, 2009, 01:52:59 pm » |
|
I should not have been so hasty to label everything "compressed" early on, since Sixfortyfive showed me that a large portion of the dialogue was uncompressed after all (I was just unfamiliar with Shift-JIS, so I didn't recognize the values). Even that part of the dialogue that was compressed was compressed with the simplest dictionary scheme imaginable. However, I'm not sure about graphics yet; those could be another matter entirely. However, if the window dimensions happen to be stored in RAM when a text box or other window appears onscreen, you could probably find them in Yabause live RAM dumps. I've been referred to some Saturn technical docs, namely these: http://forums.segaxtreme.net/showthread.php?t=32436and these: http://www.cyberwarriorx.com/saturn-hacking-documents/
|
|
|
|
|