News:

11 March 2016 - Forum Rules

Main Menu

The Dragon Force II Translation Project

Started by FaustWolf, September 08, 2009, 03:54:51 AM

Previous topic - Next topic

FaustWolf

http://www.youtube.com/watch?v=oHVdPIVFweQ

I 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?
Verve Fanworks: We shall shew thee here the force of our arms!

KaioShin

#1
Quote from: FaustWolf on September 08, 2009, 03:54:51 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 ( ;D) 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/  :D 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?)
All my posts are merely personal opinions and not statements of fact, even if they are not explicitly prefixed by "In my opinion", "IMO", "I believe", or similar modifiers. By reading this disclaimer you agree to reply in spirit of these conditions.

Lilinda

dejap has been dead for fucking YEARS, man! you didn't know that?
Retired moderator/staff member as of July 14th 2016

FaustWolf

Thanks KaioShin. IST, I'll just give you a big:  :P  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.
Verve Fanworks: We shall shew thee here the force of our arms!

Sixfortyfive

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

#5
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!

Sixfortyfive

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

QuoteSSF 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.
Verve Fanworks: We shall shew thee here the force of our arms!

Pennywise

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

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.
Verve Fanworks: We shall shew thee here the force of our arms!

BRPXQZME

Quote from: FaustWolf on September 09, 2009, 02:51:13 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.

Quote from: FaustWolf on September 09, 2009, 02:51:13 AM
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.
we are in a horrible and deadly danger

Cheetah

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

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.
Verve Fanworks: We shall shew thee here the force of our arms!

Cheetah

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

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=32436

and these:

http://www.cyberwarriorx.com/saturn-hacking-documents/
Verve Fanworks: We shall shew thee here the force of our arms!

Cheetah

Well wow there is some crazy stuff going on with the graphics in this game. I have spent about 1.5 hours going through all the files with GGD and so far I have found only a couple things that I can recognize as graphics. The world map in "TP_MAP" and the character portraits in "FACEDATA". Though I couldn't find palettes in either of these file. Definitely nothing as far as menus are concerned.

I still haven't looked everywhere, but given my lack of success I'm guessing things are pretty complicated.

little_one

Wow glad there are people trying to translate my favorite game .

So how things going ? Well whatever it is good luck to you guys :)

FaustWolf

#17
Hi little_one! It's chugging along slowly but surely. The amount of text to translate is huge, but we're gradually getting more people on board on the translation side, which is great. All the compressed text has been uncompressed and dumped for the reading pleasure of the translation team. Since everyone's schedules are hectic, we're always keeping an eye out for more bilngual talent.

Next up on the technical side of the DF II project is handling a nasty issue where the text decompression routine is preventing us from using ASCII values (and the lovable half-width character output associated with those values in Shift_JIS) in storyline dialogue. Sixfortyfive had simply been using ASCII to type in menu text as seen in the now ancient sample video, but when it comes to the storyline dialogue, the compression routine treats ASCII values as compression dictionary references and not as ASCII input. We haven't found any way to make the dictionary entries refer to the English section or otherwise read half-width areas from the font sheet either.

Normally what would be done at this point, I think, is to NOP out the text decompression routine via ASM modding. Failing that (seeing as I'm inexperienced in ASM routines, let alone Saturn ASM code), I have a kooky backup plan.

If anyone reading this just happens to be either really experienced in reading, or interested in studying, Saturn ASM routines, and doesn't want to even begin to think about whatever constitutes a "kooky backup plan" in this case, we'd be greatful to have your help.  :D  If I can figure out enough about ASM code to intelligently communicate with the author of Yabause, I'll give that a try.
Verve Fanworks: We shall shew thee here the force of our arms!

tizubythefizo

wow, i'm glad to see that 2 games i've been wanting to play for YEARS are being translated. (this and chaos seed). I'm eventually going to have a degree in game programming, but at my current level of programming skill I think trying to learn saturn ASM would make my head implode lol. I'd almost wonder if trying to track down some of the old working design programmers might be an easier solution to your problem.

FaustWolf

Going straight to the source, eh? It's not an idea I would jump on after the Crimson Echoes experience, but has anyone in the game modding community ever done that before? I mean, got a technical question answered by the game's very developers? That would rock.

Well, it would have been Sega of Japan's "JForce team" that probably developed Dragon Force II (Working Designs translated and published in the US/English market); but it's also true that Working Designs had to do some modding of its own to make game enhancements from what I understand.

I'm confident enough in working out an elbow grease solution to the dictionary compression scheme problem. The major concern right now is just the translators finding time to work on the project, and recruiting more. Sandslice and Hanmyou have been much occupied with life lately, but most (if not all) of the in-battle quotes have been translated to date. That still leaves the story dialogue text, which is really the meat of the game's text. Filler has expressed interest in joining up once his plate is clear, so I'm excited at the prospect of getting this baby jumpstarted again down the road.

Expect another video on September 3 as an anniversary progress update.
Verve Fanworks: We shall shew thee here the force of our arms!