[WIP - Full] Virgin's Protection Magic Translation (v 0.82 released 23/07/2017)

Status
Not open for further replies.
OP
habisain

habisain

Tentacle God
Joined
Jul 15, 2012
Messages
1,447
Reputation score
465
My current plan is for an update this coming week. I've been a bit sidetracked getting some data for another project, which I'll also be posting about. Yes, some people here might want me to focus on one project, but this other project's quite cool - if it works, at least.

My current hope is for a release in October at the latest.
 

Sue Nami

Demon Girl
Joined
Jun 5, 2014
Messages
233
Reputation score
106
Yeah, I've seen you on other threads. We try not to joggle your elbow too much when you have that much on your plate =)
 

Twiner34ern

New member
Joined
Jun 15, 2018
Messages
5
Reputation score
5
haha no rush it's only been a bit over a year since the last "at the latest" release, take all the time you need, i know fonts and sfx is serious business, godspeed.
 
OP
habisain

habisain

Tentacle God
Joined
Jul 15, 2012
Messages
1,447
Reputation score
465
OK, progress report time. For one of the first times in the last year, everything's been going pretty well. I've basically been closing out features in JapeTrans, and it's very nearly done - or at least to the point where I can distribute a tool that will patch the game (I'm not guaranteeing that there'll be a GUI - it could just be a fire-and-forget CLI program which you just put in the VPM folder). The only thing I really need to do is swap the patch parsing engine from a custom thing that I wrote to something based on a proper parser. For those interested, I'm currently using a Latex like syntax and am going to swap out my custom parser for one based on TexSoup. The reason for using a Latex-like is because it is a language which is purely designed for layout - which is what I want. I am planning in a future release of JapeTrans to add support for other layout languages like Markdown and RST, although that's long distance planning.

I also mentioned I'm doing another project which has been taking a bit of time. I'm not quite at a stage where I want to discus that in detail on ULMF (because that would take a bit too much of my time), but I have written it up on my own website. So if you want to have a look at my research on . I'm afraid that because that is a mostly-serious research proposition, some of you might find it a bit dry to read. If you have any comments or questions please put them over there in the comments section - I don't want to get this thread to get off topic. But the short story is that I am planning to, at some point, try and decensor all the things. Or at least all the mosaic'ed games.

I'm also debating whether or not I should annoy the people of F95Zone who've uploaded VPM pre-patched. I haven't mentioned this before, but what I saw that it was incredibly demotivating. I'm not sure if I should call people out on it (which is perhaps not too classy), or a technical thing (which would be fun, although I'd need to be certain this would work and not inconvenience others). Of course, I suppose this is all a bit petty, so it's most likely I won't do anything outside of noting that what they did was demotivating in this post.
 
Joined
May 20, 2017
Messages
235
Reputation score
176
HE LIVES!

So, does that mean the actual translation part is done, and what's left is the patch tool, or am I misreading that?
 
OP
habisain

habisain

Tentacle God
Joined
Jul 15, 2012
Messages
1,447
Reputation score
465
I've been posting regularly, so I resent the suggestion that I'm some kind of reanimated zombie posting things.

The big ticket item is the tooling, yes. I've mentioned before but the patch as it is after Chapter 4 is not typeset, i.e. if you applied it then text will spill out of bounds. My choices were either manually typeset the patch or develop tools which could typeset the patch for me (and while I'm at it, let me use nicer fonts rather than the standard fixed width font used in RPGMaker). In hindsight manually typesetting the patch would've been quicker, but here we are. Most of the actual translating has been basically done for quite some time now.

The translation tasks remaining are 1) create some rules to fix up onomatopoeia's and the like so they're (optionally, but by default) English onomatopoeia's rather than transliterated Japanese onomatopoeia's and 2) rebase onto the latest version of the game. The former shouldn't take long but has some unknowns in it, and the latter will take at most a few hours (because the tools, RPGMaker Trans/JapeTrans are precisely designed around the use case that the underlying game can change and there shouldn't be any inconvenience to the translator)
 

djweish

Grim Reaper
Joined
May 23, 2012
Messages
606
Reputation score
179
The nice thing about making generalised solutions like tools mean that they save time in the long run.
 

djunk101

Jungle Girl
Joined
Sep 25, 2015
Messages
69
Reputation score
9
The nice thing about making generalised solutions like tools mean that they save time in the long run.
Reminds me of something I once heard. Went "a programmer will spend 5 hours programming something that'll save them 15 seconds" or something like that.
 
OP
habisain

habisain

Tentacle God
Joined
Jul 15, 2012
Messages
1,447
Reputation score
465
Reminds me of something I once heard. Went "a programmer will spend 5 hours programming something that'll save them 15 seconds" or something like that.
That's certainly an extreme example. To be fair to myself, adding typesetting to my tools was not a complex task. It took me about 2 hours to do automate an extremely boring job that would have taken at least 15 if done by hand. The real delays have been caused by other bits of JapeTrans going wrong, which set me back a number of weeks, and a drastic reduction in my free time that started in January and only really abated in August. If it weren't for me losing most of my free time for 7 months, this project would have been done a long time ago.

I have to say, I'm not sure I'd do things differently if I had fore-knowledge of what would happen. There's no doubt in my mind that getting JapeTrans done to enable the use of custom fonts (and in particular, using different fonts to denote e.g. onomatopoeia's from normal text) and fragment translations (which I'm using to fix the onomatopoeia's) is the right thing to do because it will result in a better translation in the end. The fact that it's ended up taking a long time sucks, and I'm sure there's a lot of people who'd rather me prioritise speed over seemingly inconsequential things. But I've always done things my own way, and I'm gonna keep doing that.
 
Last edited:

zekemckillip

Jungle Girl
Joined
Aug 2, 2014
Messages
66
Reputation score
19
That's certainly an extreme example. To be fair to myself, adding typesetting to my tools was not a complex task. It took me about 2 hours to do automate an extremely boring job that would have taken at least 15 if done by hand. The real delays have been caused by other bits of JapeTrans going wrong, which set me back a number of weeks, and a drastic reduction in my free time that started in January and only really abated in August. If it weren't for me losing most of my free time for 7 months, this project would have been done a long time ago.

I have to say, I'm not sure I'd do things differently if I had fore-knowledge of what would happen. There's no doubt in my mind that getting JapeTrans done to enable the use of custom fonts (and in particular, using different fonts to denote e.g. onomatopoeia's from normal text) and fragment translations (which I'm using to fix the onomatopoeia's) is the right thing to do because it will result in a better translation in the end. The fact that it's ended up taking a long time sucks, and I'm sure there's a lot of people who'd rather me prioritise speed over seemingly inconsequential things. But I've always done things my own way, and I'm gonna keep doing that.
Dude, you keep being you. Personally, I love it, and I can't wait to see how this turns out. Even better, I can't wait to see what you do next. Thank you again for all your hardwork!
 

Sue Nami

Demon Girl
Joined
Jun 5, 2014
Messages
233
Reputation score
106
> I'm also debating whether or not I should annoy the people of F95Zone who've uploaded VPM pre-patched.

I'm not sure, but I think I remember your tools explicitly say that pre-patched versions are not to be distributed. So at least the uploader, and possibly F95zone already know that it's against your wishes, and telling them again may not be of use. I can see some counter-strategies:

1. Make a big stink in the forums, which may or may not work.
2. Ignore it because what OTHERS do with a translation isn't in your power to control and no reasonable person would expect to blame you for.
3. Deep-six the upload by reporting it if it's hosted on a upload site, and make it your policy to do that for all pre-patched uploads you discover. However, DON'T tell anyone that you reported any particular upload, as it will invite retaliation. Just post the policy, and let them wonder if it was really you who deep-sixed them. You could even post the policy and then NOT deep-six anything, as trolls will eventually do your job for you and again they have to wonder. That's kind of a war declaration, so it might be too extreme.
 
OP
habisain

habisain

Tentacle God
Joined
Jul 15, 2012
Messages
1,447
Reputation score
465
I'm not sure, but I think I remember your tools explicitly say that pre-patched versions are not to be distributed. So at least the uploader, and possibly F95zone already know that it's against your wishes, and telling them again may not be of use. I can see some counter-strategies:

1. Make a big stink in the forums, which may or may not work.
2. Ignore it because what OTHERS do with a translation isn't in your power to control and no reasonable person would expect to blame you for.
3. Deep-six the upload by reporting it if it's hosted on a upload site, and make it your policy to do that for all pre-patched uploads you discover. However, DON'T tell anyone that you reported any particular upload, as it will invite retaliation. Just post the policy, and let them wonder if it was really you who deep-sixed them. You could even post the policy and then NOT deep-six anything, as trolls will eventually do your job for you and again they have to wonder. That's kind of a war declaration, so it might be too extreme.
The tools don't say that, but the game does after patching. It's in big letters on the splash screen.

3 is tricky because it would require me to identify myself on the DMCA claim - which I'm not keen on doing - and I'm not 100% I actually have a valid claim, so it's actually a very risky strategy. Besides, it isn't particularly classy - and neither is 1. Super classy would be to engineer something that could detect if it had been put in an archive. I'm not 100% that's possible, although I have some ideas I might test out. Of course, I've no doubt that a determined uploader would be able to reverse engineer and remove such a thing pretty quickly (and I would put out a version which didn't have that feature after a few days in any case), but I'd say if it's possible/easy to get to work, it's the classiest "screw you" I can think of.
 

MyNameIsHawk

Jungle Girl
Joined
Jun 9, 2015
Messages
23
Reputation score
3
im in a aggrement whit sue nami, and to add something, if you go around trying to take down the pre patched uploads our there can cause a
Streisand effect.



basically, when you try to censore or hide something uploaded on the internet cause the information wide-spread more that doing nothing
 
OP
habisain

habisain

Tentacle God
Joined
Jul 15, 2012
Messages
1,447
Reputation score
465
MyNameIsHawk: I'm more inclined not to do takedowns for other reasons (as I said in the previous post which you may not have seen due to cross-posting ninja's).

The Streisand effect probably doesn't apply in this circumstance though. For the Streisand effect to happen you need a large number of people to take an interest in promoting the thing that's been censored or taken down, which ends up causing a snowball effect. I don't know for certain obviously, but I don't see it happening for the number of people interested in this project.
 
Last edited:

djweish

Grim Reaper
Joined
May 23, 2012
Messages
606
Reputation score
179
Preempt them by releasing your own pre-patched version that has a built in fatal flaw making the game unplayable after you get half an hour in. ;)
 

Sue Nami

Demon Girl
Joined
Jun 5, 2014
Messages
233
Reputation score
106
Ah, I hadn't known you'd considered and rejected that. I was merely trying to be useful =)
 

Kayot

Lurker
Joined
Apr 11, 2018
Messages
10
Reputation score
5
I leave for a week and things go from crickets to brutal. I think the Demosaic research is pretty cool. It's weird that we can count on Japan to fuel our sick fetishes, but they can't be bothered to repeal their censorship laws.

I've read about your move to JapeTrans and wondered, is it still going to be programmed in Ruby?

I like the idea of a command line. It gives me the ability to write a GUI for the program for patch development.

Regarding the full game with translation on f95, I'd ignore the shameless bastards that insult the work. I've been learning Japanese for the past year and that shit is difficult. Please don't hate on f95 however since that's the place I get my dirty game fix. Other sites only list translation patches and I end up hunting down the games to patch. Putting a logic bomb in a game is a really bad idea. Certain giant software companies did just that and the reviewers simply stated that the games were buggy and to not buy them. I take fan patches as they are. The patches are free and I expect nothing and am pleasantly surprised when it looks great. I HATE machine translations.

Finally; remember the axiom, a happy customer might talk, an unhappy customer will never shut up. I enjoyed the translation.

So keep calm and flutter on!
 
OP
habisain

habisain

Tentacle God
Joined
Jul 15, 2012
Messages
1,447
Reputation score
465
I've read about your move to JapeTrans and wondered, is it still going to be programmed in Ruby?

I like the idea of a command line. It gives me the ability to write a GUI for the program for patch development.
JapeTrans is 99% Python + 1% optional C - although quite a lot of useful features are in that C code, most notably the interfaces onto SDL for font handling. One of the more problematic components in development was a pure Python Ruby Marshal serialiser/deserialiser, primarily because CRuby does not follow its own specifications in its Marshal format in odd corner cases (for example, in Ruby do "x = 2**128" then "y = [x, x]". Obviously, y[0] and y[1] have the same object_id, but this won't hold if you Marshal/Unmarshal y). I'm not sure if these are bugs in CRuby or not. Fortunately the next engine I'm planning to add, RPGMaker MV, is just JSON and should be straightforward. Not counting games which are packaged with Enigma VirtualBox, of course.

And when I said a command line program I meant that if I go down that route, it's probably going to be a one shot "this program can apply a given patch to a given game" and displays its output in a command line window rather than a proper CLI - the main reason to do this is because it cuts down on the amount of program logic, which means I have to do less testing and so can get it out quicker. There certainly will be a full CLI version of JapeTrans though - I personally don't use the GUI when I'm doing my patch development.

(And a random note on JapeTrans development - I had to ditch the TexSoup backend, because TexSoup's response to malformed Latex is to crash with no useful info. So we're going for my Custom Latex-like dialect first, and then in the future there will be other dialects like RST and Markdown which should make it easier for people who know those. Otherwise still going pretty smoothly.)
 

Kayot

Lurker
Joined
Apr 11, 2018
Messages
10
Reputation score
5
Unrelated - I've been making the move from C# and WinForms to C/C++ and Qt. The move to C/C++ is pretty straight forward, getting the GUI stuff to work is another story. I'll be honest, coming from a .NET background I'm still learning all the differences between 4th and 3rd generation languages. I haven't bothered with Ruby or Python, though I see the appeal in both since I've been getting used to Linux (Arch) on my desktop. I've been running Linux (Ubuntu Server) on my server for five years. The C/C++ with Qt is so I can finish the move and recreate my C# archive tools for Linux.

Related - One thing that got me early on with your tools was main.rvdata2 which was generated by a plugin. At first I didn't understand what was going on and why I couldn't find the missing text despite making a search tool. I found out that it needed a different tool to decrypt the file. I also got hung up on " every now and then. I considered making an issue on your tracker regarding another issue I had with your tools, but I figure I'll wait until your new tool comes out and I'll check if it's still an issue. (spaces in path names causes it to fail) To be honest, I thought you stopped work on the project so I worked with what I had. I made my GUI copy your tools and the TES Decrypter to a sub folder of the project, keep the paths under the project from having spaces, and I used ..\..\ etc to get around the limitations. Even if your tool didn't have the issue, the TES tool would. Both programs had a copy of the Ruby runtime which caused the application to swell in size. The TES tool is relatively simple so I considered rewriting it in C by translating the Ruby to C. You're tool is massive so the idea of rewriting yours without errors was daunting to say the least. Read as, I didn't want to. My GUI tools are really basic since I'm still learning Japanese, though I can sort of read the text now. I figure that once I really start translating the game I've picked out, the tools will get constant improvements as I find issues or needs arise. The best way to create a tool is to use it.

I always saw LaTeX as a scientific layout tool for extreme document formatting. I won't have an issue for any syntax you come up with since I'm using a custom lexer to do the coloring. I ended up writing a shoddy one for now. It works well enough. I'd prefer something more XML like though since open and close tags are just so easy to work with code wise plus there are already lexers for those.

A recent MV game I played was called 'Elise the Devil' which was machine translated. The text layout is horrible. It's worse than the translation itself. The story looks good, the battle system is generic (I prefer to see the monsters coming at me in the overworld) and repetitive (slow level gain in a porn game? wtf?) I just couldn't keep going. I understand that text placement is VERY important. Another game I've recently played 'Arms Devicer!+' had an issue where the text just slightly went outside of the box. Just enough to annoy the hell out of me.

A year or so ago a client needed PDF support in an application I was writing. I used PDFSharp and I kept getting the weirdest errors. For a while I ended up using Try/Catch blocks until I figured out I was using the libraries the wrong way. I figured it out through trial and error since the error messages were vague and useless. The weird part was the function still worked inside a Try/Catch block and would return the correct values. Since then I've made it a point to write clear exception messages in my libraries. Something like, "Cast Error; Did you perhaps try to use a( n ) {ValueType} instead of a string?" goes a long way towards debugging. More so when I'm the one getting the message.
 
OP
habisain

habisain

Tentacle God
Joined
Jul 15, 2012
Messages
1,447
Reputation score
465
RPGMaker Trans development had essentially stopped as of a year ago, because JapeTrans is pretty much a from the ground up rewrite (there was a post on this on the website, but I'll admit I've been quite lax in communicating progress on JapeTrans). And RPGMaker Trans has never claimed to be completely generic. In fact, there's bits of VPM that RPGMaker Trans cannot touch (the scene names in the event viewer). JapeTrans is quite a lot more generic because you can specify which contexts you want to translate (dumping everything is rarely a good idea, because modifying file name strings is unlikely to end well). There's also a plan to be able to add plugins to handle preprocessing strings - mostly for the purposes of making things easier to parse for translators, but it could be used to support games which cipher the text inside themselves (OneOne1 springs to mind,), but that's in its infancy.

XML would be pretty easy to add as a dialect, but it's not a high priority - the reason being that it's verbose, and isn't particularly friendly to translators. Basically the more stuff a user has to write, the less likely I'm to add it. Tex-like was chosen because it's concise and pretty clear what's going on in it when you start defining your own macros i.e. \macro{text} is applying a macro to some text, or \macro for a no-argument version. None of the alternative dialects I've seen are anywhere near as concise or clear (e.g. XML is <macro>text</macro> or <macro/>). And yes, do remember that I'm only using Tex for it's syntax, and not implementing all of Latex, so it's substantially simpler.

I would note that in writing this post, I've also realised that I'm not sure this type of thing is even possible in RST, so perhaps I should not do that one at all...

Anyhow, perhaps best to wrap up on the discussion of possible future JapeTrans features because I fear this is getting far too off topic. I'll keep the discussion of JapeTrans to only things which are relevant to VPM.
 
Last edited:
Status
Not open for further replies.
Top