Author Topic: Touhou Gensoumaroku ~ The Devil of Decline Partial English Gameplay Patch  (Read 129461 times)

Maiden Synnae ミ☆

  • Wizard Maiden
  • ★☆★☆★☆★☆★☆★☆
Welcome aboard, Eien! :D

I'm really happy to see you here. With a skilled person like you around, I'm completely sure we will get things done! ^^

Sweetness and love~ ♥

Hey everybody!

Synnae contacted me at romhacking.net about translating the story text for Devil of Decline, and I agreed to translate the story text (and really whatever else needs to be done).

I'm not too familiar with the Touhou series, but Devil of Decline looks like a really neat game, and I'm happy to help out.

Hacking isn't my thing, but I've done a large amount of fan translations for various game systems. This page has a bunch of my past projects if anyone is interested. The systems I'm most familiar with are SNES and NES, but I've also translated one or two games for the Gameboy, X68000, PC98, and Sega Genesis.

I'm pretty proficient in Japanese and I feel I have the translation skills it takes to get this project done! I look forward to working with you guys. :D

I'm already doing the translation of the story texts, so what to do?
If you want to help, then that would be nice. But how  should we do it?
« Last Edit: May 08, 2015, 08:43:18 PM by monhan »

Validon98

  • Deathguard Night Sparrow
  • *
  • Harbingers, yo.
Sorry for a late response on this, and welcome aboard, Eien Ni Hen! I took a look at some of the stuff you've done, and I'm glad to have someone experienced in translations helping out!

Of course, at this point monhan's got a point, originally he did volunteer, and I don't think that Synnae knew that when she contacted Eien Ni Hen, so I don't know what to say on that. Probably a good idea is to somehow divide the work up, have one of you work on one chunk of the text, the other work on another, and then have each other proofread the results, but I'm not sure.

Also, specifically to Eien Ni Hen, if you need any help with what certain titles or names might be, just let me know, I know what the consensus is on all of the names and places in terms of translations.
Derping at Touhou since June 2012, derping at RPing Touhou since Feburary 2013.

Devil of Decline Partial English Gameplay Patch!
Let's Play Nightmare of Rebellion!

Maiden Synnae ミ☆

  • Wizard Maiden
  • ★☆★☆★☆★☆★☆★☆
Oh, I wasn't aware that monhan volunteered for it too. My apologizes.

But either way, we should really let Eien work on it too, she is interested on helping and we all know she is extremely experienced on JRPG translations. I agree with Validon that perhaps the best thing to do is to divide the work between Eien and monhan. Maybe we could finish things much faster if this were to happen.

Sweetness and love~ ♥

Serela

  • Moon Tiara Magic
  • VIA PIZZA SLINGING
DoD has a large amount of story text; many of the shikigami recruit cutscenes are quite long, not to mention the actual plot ones, plus there's four routes. Two translators is definitely a boon!  :)
<mauvecow> see this is how evil works in reality, it just wears you down with bureaucracy until you don't care anymore

Maiden Synnae ミ☆

  • Wizard Maiden
  • ★☆★☆★☆★☆★☆★☆
DoD has a large amount of story text; many of the shikigami recruit cutscenes are quite long, not to mention the actual plot ones, plus there's four routes. Two translators is definitely a boon!  :)

I couldn't have said it better myself. :)

Sweetness and love~ ♥

Also, specifically to Eien Ni Hen, if you need any help with what certain titles or names might be, just let me know, I know what the consensus is on all of the names and places in terms of translations.

Sounds good!  I think there's definitely enough work for monhan and I to split up. Although in the few group translations I've done, usually there's a Lead Translator (or QA person, editor, etc.) who reviews the script as a whole for consistency, spelling, and grammar.

I think Synnae mentioned this to you already, but I have two main questions about the script translation:

1) What's the max Character Per Line length?
2) How do you want the CSV files formatted? I checked the files Deranged finished, and it looks like he just replaced the Japanese text with English and kept in the \n (line break) codes.

I don't seem to be able to send PMs, so feel free to email me at wise_mage @ yahoo.com (take the spaces out first). monhan, you're welcome to email me, too, and we can talk about dividing up the workload. :)

uhm...so..I just recruited marisa and when I try to swap sunny milk with her it doesnt work and just put sunny back.
is it a bug from the original patch or this one?

Validon98

  • Deathguard Night Sparrow
  • *
  • Harbingers, yo.
You have to press whatever your start button is in order to actually save the party changes. Simply backing out won't make a change. You'll know you made the switch when it makes the sound effect that plays when you initiate a battle/start a new game.
Derping at Touhou since June 2012, derping at RPing Touhou since Feburary 2013.

Devil of Decline Partial English Gameplay Patch!
Let's Play Nightmare of Rebellion!

Ghaleon

  • Long twintail-o-holic
I still haven't tried these releases since I recently got a 3DS and a psvita for super cheap and have been going on a binge for both...but... I'll TRY to test this too, no promises though lol. Seriously though, I'm having 0th world problems here where there are too many effing games I'm not just enjoying, but REALY enjoying demanding my attention all at once, combined with RL being nice to me for a change and letting me invest time in them.. ugh, it's like Imma 'splode from satisfaction.

I already thanked everyone involved but that was before this eien person tagged along, thank you too (and everyone else who has decided to start helping, will start helping, etc). I am curious though, pm me if you wish to not derail the topic, but eien what else have you worked on fanpatches for? I really love doujin rpg games (they're like SNES rpg games, which was like the golden age IMO, only better because there are less limitations, and more refinement over time... non-doujin rpgs should have these things but they kinda don't try to improve on SNES-style rpg formulas, but kinda are a subgenre of their own IMO) but can't read Japanese so I really appreciate fan translations.

Anyway, Imma try to find my DoD stuff now, try the patch, and hopefully not have to ask stupid questions about getting the patch to work =P

Thank you Validon and everyone else who is working on the translation. I registered to say how much I appreciate all the hard work put into this. April has been a awesome month with Dragon Force II and DoD.

Relatively new here, but since I'm a part-time editor, I figure might as well offer whatever I can do if needed. Let me know if you need another Editor/Proofreader~

(Sadly can't help with the translation. I don't trust my poor knowledge of Japanese anywhere near enough to do that)

Ghaleon

  • Long twintail-o-holic
Welp I feel like an idiot, I thought I had DoD but apparently not.
I'm having a hard time figuring out what the base game is, and what festival is... is festival a game+ expansion in one repackage kinda like touhou labyrinth special disc? Because I am completely stumped as to what is what.

Is it safe to get:
http://www.melonbooks.com/index.php?main_page=product_info&products_id=IT0000173058
? Or do I need to buy festival as well after? Also does melonbooks patch the game automatically? Because I can't find patches either to update to 2.12 or whatever it was
http://www.gensoukyou.org/bose16/
Doesn't seem to have any patch or support pages. I'm really confused, haalp.

edit: I have no issues dling the 0.05 patch, or the 0.05C patch, but 0.05D is stuck at 'starting' for me on the mega site.. is that just me? If so any ideas how to fix?
« Last Edit: May 12, 2015, 09:24:03 AM by Ghaleon »

Validon98

  • Deathguard Night Sparrow
  • *
  • Harbingers, yo.
The version you're linking there is Banquet, which is not the version of the game this patch supports. The Festival version, which is currently up to 2.11, would be this version of the game: http://www.gensoukyou.org/bose05/

I dunno if there's any copies of it left, but according to the website, it does include both the original game plus expansion. I linked the patch from version 2.00 of the game to 2.11 earlier in the thread, but here it is again: http://patch.hachikuma.net/maroku/patch_maroku_211x.exe

I think Synnae mentioned this to you already, but I have two main questions about the script translation:

1) What's the max Character Per Line length?
2) How do you want the CSV files formatted? I checked the files Deranged finished, and it looks like he just replaced the Japanese text with English and kept in the \n (line break) codes.

Ack, somehow I didn't notice you said this here, and I'm sorry for not responding, for some reason I didn't get the notifications until now for updates in this thread. To answer your questions (to the best of my ability):

1- There isn't a set maximum character per line length. Each of the text balloons are per-generated based on the length of the original Japanese text, but it won't change even if you change the text, so it varies by line. The most I can say is that probably a good estimate is roughly a little more than double the amount of Japanese characters in any given line. I wish I knew how to alter the size of the text balloons, but I have no idea.
2- That's pretty much how the format for this goes with replacing the Japanese with English, keeping line breaks. I can't think of any other way for it to be formatted.
Derping at Touhou since June 2012, derping at RPing Touhou since Feburary 2013.

Devil of Decline Partial English Gameplay Patch!
Let's Play Nightmare of Rebellion!

Ghaleon

  • Long twintail-o-holic
Thanks for the quick response, I thought what you linked was the old DoD before festival, and what I linked was it and festival in one package but wasn't sure and and *cries*...and the other 'rpg' game listed with akyu on the front may be banquet, I just... I, hold me! *sobs* =P

"line breaks happen depending on each line blah blah"...
AHAHAHHHAHA holy shit that sucks...I said thanks, but thanks again... hard to believe that other games had even rougher conditions (fushigi no gensokyou)

Validon98

  • Deathguard Night Sparrow
  • *
  • Harbingers, yo.
Eheh, the one with "Akyuu" on the front is actually Nightmare of Rebellion, which is another game altogether. :V

And yeah, the text balloon thing sucks and I have no idea how to manipulate it. So wheeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
Derping at Touhou since June 2012, derping at RPing Touhou since Feburary 2013.

Devil of Decline Partial English Gameplay Patch!
Let's Play Nightmare of Rebellion!

Serela

  • Moon Tiara Magic
  • VIA PIZZA SLINGING
There -is- an "append disc" version of DoD's expansion that ONLY includes the expansion and not the base game, so if you see a version that's extra cheap compared to a seemingly identical version of dod expansion, yeah :V
<mauvecow> see this is how evil works in reality, it just wears you down with bureaucracy until you don't care anymore

Did you try to change the schr column in the CSV files ? I'm not on Windows so I can't test, (and I won't have enough time this evening to test), so I'm not sure it will change the balloons size, but seeing the CSV files, I think this column may control the balloons size.
Or maybe these sizes are in another files.

Validon98

  • Deathguard Night Sparrow
  • *
  • Harbingers, yo.
Looking at the schr column, I don't think they would change the balloon's sizes. The numbers in the column look rather random and unconnected to the length of the text for each balloon (for example, 106 comes up quite a bit and it's used for both short and long lines), so I think that it's influenced by something else.
Derping at Touhou since June 2012, derping at RPing Touhou since Feburary 2013.

Devil of Decline Partial English Gameplay Patch!
Let's Play Nightmare of Rebellion!

There isn't a set maximum character per line length. Each of the text balloons are per-generated based on the length of the original Japanese text, but it won't change even if you change the text, so it varies by line. The most I can say is that probably a good estimate is roughly a little more than double the amount of Japanese characters in any given line. I wish I knew how to alter the size of the text balloons, but I have no idea.

Yikes, that's not good. The CPL limits are probably stored somewhere in the code, and I'm betting they're changeable. I can't imagine them being hard-coded in. Unfortunately, I have no idea how to find and alter them, either.  :ohdear:

Anyway, I'll touch base with monhan about splitting up the translation work. :)

-Eien

You mean I'm not dreaming? Oh god. Oh god it really happened. Thank you so much for never giving up on this.
I don't think I'll resist until the story translation is done, so here we go for another playthrough I guess.

Maiden Synnae ミ☆

  • Wizard Maiden
  • ★☆★☆★☆★☆★☆★☆
You mean I'm not dreaming? Oh god. Oh god it really happened. Thank you so much for never giving up on this.
I don't think I'll resist until the story translation is done, so here we go for another playthrough I guess.

Rest assured you're not dreaming!

While I recognize that Validon did an amazing job on the gameplay only patch, I'm waiting for the full patch myself so I can enjoy the game at the fullest. I really want to understand the plot too... ^^;

Regardless, I'm also certainly enjoying how things are progressing smoothly again thanks to everyone's efforts.

Sweetness and love~ ♥

Alcoraiden

  • Do not go gentle into that good night
Same here. I want to see the story. I'll play other games until then.

Regarding changing the CPL limit (and other hacking issues), I found a thread on romhacking.net that might be of some help:

PC game hack tutorials

Specifically, esperknight's posts in the thread have a lot of useful information about how to hack and reverse-engineer PC games and what tools to use. The man really knows his stuff. :)

Ghaleon

  • Long twintail-o-holic
So I'm playing this for teh first time... is there anything in particular you want me to keep an eye out for testing purposes or is it still far too early to worry about that and you really would rather work on stuff that you're already aware of at this point?

Validon98

  • Deathguard Night Sparrow
  • *
  • Harbingers, yo.
At this point, just keep an eye out for anything that is very obviously wrong, awkward, or however you want to put it. There are some parts where I might have accidentally forgot to replace the double-width numbers with single-width numbers, or things might cut off a bit with skill descriptions because I didn't bother to make a new line (since skill descriptions can have up to four lines). There might be inconsistencies as well. The only thing that I know is not translated but I cannot do anything about are some of the system messages, because I have NO idea where to find them in the files. I've pretty much given up hope on that. I'm really sorry about that.
Derping at Touhou since June 2012, derping at RPing Touhou since Feburary 2013.

Devil of Decline Partial English Gameplay Patch!
Let's Play Nightmare of Rebellion!

Validon98

  • Deathguard Night Sparrow
  • *
  • Harbingers, yo.
Double posting mostly because I need to let monhan and Eien Ni Hen know that someone else has contacted me about doing story translation work. Originally I thought she was Eien Ni Hen contacting me on Skype, then I realized that she's actually someone else entirely, so now we have three people interested in doing story stuff. At the same time, this means three people who might be doing overlapping work, and whatnot.

I'm currently thinking we need to set up a Skype group or something. monhan and Eien Ni Hen, if the two of you have Skype, please add me (my Skype name's right in my profile/right at the bottom), and I'm going to try getting a group set up between us three and the third translator who's contacted me. That way we can keep each other posted on what's going on and get this whole translation more organized, because let's be honest, I've been doing a terrible job organizing everything and if we're going to get anywhere, we need to sort of have better communication. ^^;

EDIT: I sent a PM to you guys too, just in case you don't see this post.
« Last Edit: May 18, 2015, 01:31:45 AM by Validon98 »
Derping at Touhou since June 2012, derping at RPing Touhou since Feburary 2013.

Devil of Decline Partial English Gameplay Patch!
Let's Play Nightmare of Rebellion!

Maiden Synnae ミ☆

  • Wizard Maiden
  • ★☆★☆★☆★☆★☆★☆
^ The person is Michiru. Remember sometime ago when I invited her to help us on the other thread? It's her. (she also posted on the other thread once)

She is interested in helping as well, so now we have three translators total to do the work, which is great. :D

Sweetness and love~ ♥

And yeah, the text balloon thing sucks and I have no idea how to manipulate it. So wheeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
It's been years but I remember trying to tackle this in GoS. And I distinctly remember puzzling about this as well, though I'm pretty sure balloon size in that game was affected directly by the length of the input strings, modified by a multiple of the number of characters in a given line. I know for GoS I made a thing to add more text balloon types because some simply didn't exist, and backtracing from the code that figures out which sized balloon to pick, which is chosen in one of the global.srb files, is I believe how I found the relevant data originally.

It was a fixed multiplier value per character IIRC? Trying to deal with that without going to monospaced fonts is a pain in the ass.

Dunno if any of that is changed.

Validon98

  • Deathguard Night Sparrow
  • *
  • Harbingers, yo.
Right, so I got an initial translation of the prologue from monhan, and it's definitely looking like the balloon size is going to be an issue in a lot of cases. mauve did PM me about what he did for GoS, but unfortunately my programming knowledge isn't that great when it comes to the kinds of scripts involved in the .srb files. So I'm going to repost what mauve said here, in hopes that someone will be better able to figure it out. Since this involves the global.srb (I'm pretty certain, at least), I'm going to post that too. There's also another file I found, SCN_BALLOON.csv, but I don't know if it affects anything. I'm going to post it up just to check, but I have played around with it and so far I haven't figured out how to make it affect the game in any way.

Here's what mauve's said:

My memory's working a little better and I went back and checked my old GoS stuff. Again, I don't have DoD, and I don't even have GoS anymore, so this is all conjecture that may or may not be of any help to you:

In GoS, the size of the balloon was determined by a script within global.srb, and I had sent a modified version of this to thenewguy. Unfortunately I seem to no longer have the original so I can't diff the things, whoops.

So here's some fun output from globalscript with NDEBUG defined, and some explanations. (I had to make it print out strings too, because for some reason my copy wasn't gonna do it. also apparently 3a was erroring out? i seem to remember that being a dummy instruction or something...)
Code: [Select]
(45) 230e[04c0]: 45: [0300] // SETPARAM 3
(2a) 22cc[0502]: 2a: 03 [00] Img\System\Balloon\Balloon%1%_%2%.png // MOV param[0], string
(29) 22f6[04d8]: 29: 03 [01] 02 [9700] // MOV param[1], value[0x97]
(29) 22fc[04d2]: 29: 03 [02] 02 [9800]  // MOV param[2], value[0x98]
(26) 2302[04cc]: 26: (21) // CALLFUNC 0x21
(2a) 2304[04ca]: 2a: 02 [d100] 04 [] // MOV value[0xd1], result
(2f) 2309[04c5]: 2f: (0000003d) // JMP SHORT +0x3d
(45) 230e[04c0]: 45: [0300] // SETPARAM 3
(2a) 2311[04bd]: 2a: 03 [00] Img\System\Balloon\Balloon0_%2%.png // MOV param[0], string
(2a) 2339[0495]: 2a: 03 [01] // MOV param[1], [empty]
(29) 233e[0490]: 29: 03 [02] 02 [9800] // MOV param[2], value[0x98]
(26) 2344[048a]: 26: (21) // CALLFUNC 0x21
(2a) 2346[0488]: 2a: 02 [d100] 04 []  // MOV value[0xd1], result
2a is an inline 'copy string to target', and 29 is a 'copy value to target' instruction, so pretty much MOV [dest],[src]. 02 is used to prefix references to variables, and so forth.

In this case, it's pretty obvious value[98], or 9800, is the one that indicates the size of the balloon to get. (note that endian order is wrong on printout so d100 is really 0x00d1!)

Okay! So now we search back upwards to find 'write to value[0x98]' instructions...
Code: [Select]
(0b) 1144[168a]: 0b: 02 [0201] 02 [9800] 06 [00000000] // CMPE value[0x102], value[0x98], 0x00
(31) 1150[167e]: 31: 02 [0201] (00000030) // JMPCOND SHORT 0x30
(0e) 1158[1676]: 0e: 02 [0201] 02 [2c00] 06 [12000000] // CMPL value[0x102], value[0x2c], 0x12
(31) 1164[166a]: 31: 02 [0201] (0000000e) // JMPCOND SHORT 0x0e
(29) 116c[1662]: 29: 02 [9800] 06 [02000000] // MOV value[0x98], 0x02
(2f) 1175[1659]: 2f: (00000009) // JMP SHORT 0x09
(29) 117a[1654]: 29: 02 [9800] 06 [01000000] // MOV value[0x98], 0x01
(2f) 1183[164b]: 2f: (00000000) // JMP SHORT 0x00 -- Go nowhere, probably bad output from their script parser
0b and 0e are obviously comparison functions, probably == and < respectively, and storing the result in the first param value[0x102]. value[0x2c] contains the length of the string here, and it's comparing to see if it's <0x12 (18) or not, then conditionally jumping away if it is. I'm pretty sure I modified the length value to something lower than the original, here.

Code: [Select]
(0e) 1424[13aa]: 0e: 02 [0201] 02 [2c00] 06 [1c000000] // CMPL value[0x102], value[0x2c], 0x1c
(31) 1430[139e]: 31: 02 [0201] (000000e5) // JMPCOND SHORT 0xe5
(0b) 1438[1396]: 0b: 02 [0201] 02 [9a00] 06 [00000000] // yada yada
(0b) 1444[138a]: 0b: 02 [0401] 02 [9b00] 06 [00000000] // yada yada
(19) 1450[137e]: 19: 02 [0501] 02 [0201] 02 [0401]    // probably an AND test for the last two comps or something
(31) 145a[1374]: 31: 02 [0501] (0000000e) // JMPCOND SHORT 0x0e
(29) 1462[136c]: 29: 02 [9800] 06 [03000000] // MOV value[0x98], 0x03
(2f) 146b[1363]: 2f: (00000000) // JMP SHORT 0x00
I'm pretty sure that value[0x9a]/value[0x9b] are just debug values and not to be used by anything. value[0x2c], again, is being compared vs a value, this time for <0x1c (28). Again probably another value I modified...

There's a bunch of other sets, but they don't seem to be used. Again, this is for GoS, but the script format looks similar enough; remember that SJIS characters considered two bytes and affect the string length accordingly.

You can probably figure out how to adapt this for DoD, or pass it along to someone who can, if it is at all possible to use there or even similar in structure.


I'm almost positive that the script format is similar enough (they run off the same engine and use the same file format, not to mention mauve's tools worked on these files for the most part, so I'm positive that there's something also in the global.srb for this).
Derping at Touhou since June 2012, derping at RPing Touhou since Feburary 2013.

Devil of Decline Partial English Gameplay Patch!
Let's Play Nightmare of Rebellion!