Fixing Prism Ark’s Choices with Simple Code Injection

This is actually the title screen I have since I was mucking around with images to figure out the file format.

Prism Ark has been a project that’s been on and off a few times, being translated by Aroduc. Part of the reason for the ‘off’ parts was because of technical issues, things I wasn’t able to or didn’t have time to fix. I take a lot of the blame, it’s easy to have too many things to do and not have time to dedicate on some projects. Part of the reason though is that some of the work required was beyond my technical understanding. Fixing technical problems are hard when you don’t know how to do so.

The main issue is that unlike past technical issues I tackled on other games, which I sort of fudged my way past with IdaPro and a hex editor, this game definately required the ability to modify or rewrite some of the code in order to make it work. I procrastinated a lot, to the point where I’m not sure if Aroduc has just completely given up and dropped the project or not. Still, I wanted to make good on my promise to fix the remaining technical issues, even if the project no longer is moving forward.

The breakthrough came when I got SVN access to the Rance VI project. SLC, the programmer involved in the project, performed a series of elaborate changes to the game in order to upgrade the game for the English release, and I was able to see how it worked. I used that as a starting point to try to understand how to do changes directly to a games code. I experimented, and eventually came to an understanding of how it works on a simple level.

This post is a tutorial of sorts, explaining how to do the changes to fix a text related issue on the game. Some of the terminology and methodology might be rough, since I’m just learning as I go, but I hope that this might be helpful in getting someone pointed in the right direction. Read more of this post

Writing a Baldr Sky Decompiler, Compiler, and Other Bad Ideas


So Baldr Sky got announced! I definitely didn’t see that coming. In truth, I’ve been working on the game for some time to address technical issues for Aroduc’s translation of the game, but even I hadn’t heard this was unexpected. Sadly, with an official release, I’d imagine a lot of this work will end up going to waste, since I’m certain they’ll have access to the original scripts. None the less, I wanted to go over exactly what was done on the project, because I think it’s pretty cool.

Read more of this post

EXE Haxing – Replacing Strings, The Hard Way

titleI was originally just going to explain things to Aroduc, but I figured I needed to make it pretty elaborate so I may as well just make it public. I had a hell of a time finding any information online on how to do this and kind of just winged it, so I figured I’d share some of that knowledge. Note that I’m pretty bad at this, so what I say may not always be right or the best way to do things!

So lets say you’ve got a game you’re working on translating as part of a fanTL project. Due to the awesomeness of the internet and VN community, you’ve got all these tools available to localize a game, but not all the text you need to modify are in those resources. Some of them are in the game’s own executable file. How do you handle that?  Well, it’s complicated. Read more of this post

Grisaia no Kajitsu Released!


It’s been a long time coming, but Grisaia no Kajitsu is finally out! Koestl gives it an amazing translation, and everyone on the team came together to make it a great release.  Head on over to TLWiki to grab a the patch. You’ll need the game installed prior to installing the patch, it doesn’t matter which version you have installed.

Edit: We’ve released version 1.1 of the patch, which fixes reported issues with the first release. Be sure to grab the latest version!

Edit2: The patch is no longer available now that the official release has been announced. Thanks to everyone who supported us!

Yumina the Ethereal

ss (2013-07-07 at 02.37.39)

So Yumina’s finally gone gold master. I came onto the Yumina project pretty late, as a result of my involvement in Seinarukana and Trample on Schatten I was asked if I could also work on the code for Yumina to resolve outstanding text formatting and interface issues. Over time, it ended up ballooning into a whole lot more as more issues were uncovered. It’s been pretty tricky getting this far, but I think the results are worth it.  Here’s a little of what I’ve done while on the game.

Note that there’s a lot of nitty gritty details about the internals of the game. While they’re not story spoilers, they might spoil some non-obvious aspects of the game.  Since this post is all about technical issues and fixes, it might not come off as very flattering. I don’t really want to give the game a bad reputation, cause it’s a lot of fun. Please keep that in mind while you’re reading. I’ll be off praying I’m not breaking NDA by talking about this stuff! Read more of this post

Code Highlighting for Kirikiri in Sublime Text (and more)

* This post doesn’t have a lot of merit for non technical users, sorry. 🙁

Since I’ve been working a lot with the Krkr engine (Pronounced Kirikiri), I’ve been working a lot on building a useful work environment for writing scripts up, which I figured I’d share in case there’s someone out there who could make use of it. Read more of this post

Mad Haxing, and Other Busy Work

Sorry about the lack of recent updates, I’ve found myself in a situation where I’ve got a lot of stuff on my plate all at once.  I figured I’d take a moment to show off all the fun and interesting things I’ve been working on.

Mangagamer Titles

I did testing for this game, Harukoi Otome. It’s cute, but like Koihime, holy sh*t is it long. Too long for my poor attention span.

I wrote a post over at the Mangagamer blog when I was first getting started, but I’ve been doing a variety of work for Mangagamer recently, including testing and more interestingly, programming and script work.  I’ve been working on all the titles that have been coming down from Softhouse Seal, doing engine localization and text insertion.  It’s pretty grunt level work but I can automate a lot of the text stuff and focus more on engine details.  So far ‘Sexy Demon Transformation’ and ‘Boob Wars’ have been released (If you encountered the crash bug in the original release, that was my mistake), and I’ve mostly finished up on SSSS – Super Secret Sexy Spy.  There’s more in the pipeline I’m sure, but I haven’t started working on any of the newer titles.

Mangagamer’s decision to go with the Softhouse Seal titles is interesting.  I’ll be the first to say that they aren’t exactly masterpiece games, but they are relatively fun for what they are (which is a attractive looking – compared to say magical teacher- sexy romp with a lighthearted story and a wide variety of sexual scenarios).  I actually liked Sexy Demon in particular, since it had some pretty creative scenes. While I’d rather see higher quality titles get translated, these titles are fairly quick to localize and sell pretty decently.  I don’t think these nukige are replacing the big name titles that MG does, they’re just filling in some of the gaps between releases.  They don’t sell as much as those flagship type plot focused titles, but they do require only a fraction of the translation muscle to localize.  I hear Boob Wars is actually selling fairly well, at least well by normal sales standards.

I’m also working on a separate title, one that’s been requested fairly frequently by MG’s fans.  I’m not allowed to give it away, but it’s being given quite the treatment.  I’ve been tasked with completely porting the game from it’s original game engine over to the Kirikiri game engine, the same one that runs the seal games, Kara no Shoujo, Jast’s Girlfriend is the President, and a whole bunch of other titles (it’s a very common free open-source game engine).  I must admit, my experience with the game engine before hand was quite limited, but I’ve gotten pretty good at using it.  It really is a quite advanced engine, and you can do a lot of things with it, but damn, it can be a little fickle at times.

Doing a full port is really quite interesting, but there’s a lot of work to do it.  Like, a LOT of work.  It’s a bit strange, since the original game engine wasn’t too bad for English text, but the company doesn’t have any staff available to support us since they’re all busy working on their new title, so porting seemed the best option in order to make the project feasible.  Relying on the Japanese companies to do a lot of the technical work can be difficult sometimes since they often don’t have dedicated staff to handle our concerns (and often it wouldn’t be economical to do so).  Doing things on our own gives us a bit of leeway and speeds up the process a lot. Anyways I’ve gotten kind of attached to the game, having put in so much time working on rebuilding it from the ground up.  It’s a big undertaking, and I will probably write a bit about the process once they actually announce the title.

On another note, I’ve also been doing some testing for Mangagamer.  I’ve worked on the re-edit for Koihime for the voice patch (which arguably made the game’s text bearable), and Harukoi Otome.  They’re both decent games, but holy cow they are long.  I do have a spare free game coupon that I don’t really need, maybe I’ll just drop it on the /vg/ VN thread or something.

Trample On Shatten!!

Probably the first time I’m mentioning this one, I’ve gotten involved with Moogy and Makoto over at JAST to do work on their recent acquisition, Trample On Schatten.  The original game engine is a spectacular train wreck when it comes to English text, so I will be porting this game as well to the Kirikiri game engine.

Schatten is a fairly action heavy game, as opposed to the Mangagamer title and there’s a lot of fancy on screen effects, movement and transitions, which complicates the porting process a lot.  Effectively what I did is I built a tool that compiles the original game scripts into equivalent Kirikiri scripts, and then work in all the functionality into Kirikiri that the original game requires to run.  If that sounds like it’s hard work, you would be right.

Progress is pretty good so far.  At the moment the entire first chapter plays (more or less) correctly in the new game engine.  There’s a lot of features that are missing, important things such as save/loading, message history, the gallery, and the scene select system thingy the game has… but it’s coming along well.  Moogy’s plodding along with the translation too, so hopefully we can work this one out before dragging it into JAST TIME.

Honestly it is a little weird to be working for both players in the English VN market, and I’ve heard a couple of joking ‘working with the enemy’ comments too.  But both of them are pretty cool though and I’m actually pretty happy to be working with both of them.  The differences in process between the ways each works is intriguing, although I guess I have to be careful about what I say and who I say it to.

Grisaia no Kajitsu

Koestl has been making steady progress on the game’s translation, having completed Amane’s route, and nearing completion on Sachi’s route.  That’ll put the entire project’s translation progress at about 60%.  I’ve not been doing much work personally on this lately, since the tools are all pretty solid and no major technical issues remain.  There’s still some interface translation work and some work in entering modified images, but at the moment there’s not much that needs my immediate attention.  Koestl’s the real hero for his work on translation, it’s amazing that he can keep dedicated and continue steady progress after all this time.

Other Fan Projects

I created this glorious piece of art while attempting to get duel savior to load new images. It took a lot of wrangling to get it to this point, but it worked.

I’ve gotten asked to help out on a few other random projects.  I helped Pun-kun with some text insertion tools for his Majikoi S project, although it was a relatively minor contribution. I helped Aroduc with his duel savior project, wrangling with the massive nightmare that is giga’s game engine. I didn’t do the hard stuff, but I did do a bunch of exe hacking, which was fun.  I also had to reverse engineer the ps2 version of the game to get all the voice files out (shout out to the people who worked on the Tomoyo PS2 project since I was able to re-use the decryption routine with Duel Savior).  I couldn’t decrypt the image data though, so I think Aroduc actually ran through the ps2 version in an emulator and captured all the cg directly.  Crazy.  Working with Duel Savior was a huge pain since the game engine hates everything, I wouldn’t be surprised if there’s a huge number of issues still present.  I heard CG unlocks were still broken for destiny route… but there’s not much I can do.

There are a few other random projects I’ve done work on, although not much I can talk about. One of them had maids in it though.  Mmm, maids.  At some point they’ll probably get announced,  or may not.   The unfortunate thing about doing technical work for games is that a lot of the time the work is very front loaded on a project.  Translation on the other hand is often the opposite, and drags on a very very long time.  I’ve only been doing this for a little bit and have already run into doing work for projects that effectively go nowhere, but I’ve put in a whole bunch of hours on.  I can see why the VN scene loses hackers at a steady rate, since they probably get burned by failed projects a few too many times.

I’m lucky in this regard, working with JAST and Mangagamer at the moment, as it’s unlikely I’ll really run into the issue of projects getting canned or abandoned.  Working with Koestl and co as my first project has really been a great experience, and while Duel Savior was frustrating to work on, working with Aroduc was cool. I’m certain he somehow has more hours in a day than I do cause he somehow gets a huge amount of work done in a short period of time. The reception seems to have been quite positive, despite some of the remaining bugs.

Here’s hoping future projects will go as smoothly.

Grisaia Demo Released

Just a heads up, the demo for Grisaia no Kajitsu is released, which covers roughly the first 1/3rd of the common route. Give it a whirl and let us know what you think!

TL Wiki Page
Demo Installer (Mirror)
Subtitled Opening Video

If you encounter any issues, typos, technical problems, be sure to let us know on the TL Wiki Error Report page for Grisaia.

Note: If you have an issue with the old installer where the text does not show up properly, manually downloading and installing the font (here) should fix it.

The Demo Plan

I’ve mentioned in a few places around the net that we plan on releasing a demo for Grisaia, so I figured I’d take a minute to explain what exactly that means.

Originally, we planned on providing an English version of the original Grisaia no Kajitsu demo, with the same selection of scenes. The Japanese demo was a bit strange though, and was played through a scene select screen where you could individually view individual scenes spread semi-randomly across the common route, as well as an H-Scene with Amane, and the first day of the ‘Angelic Howl’ story, a key scene in Amane’s route. The Japanese demo is clearly laid out to show off key scenes and sell the characters and actors, but it provides a rather disjointed experience. The inclusion of Angelic Howl and the H-Scene is there to sell the more serious side of the game, but it is really a huge spoiler in terms of her story.

So the team discussed it thoroughly and decided we wanted to provide a different experience from the original demo. What we’re doing is providing a linear chunk of the game, starting from the beginning, amounting to a bit more than a third of the game’s common route.  In terms of length the demo is roughly the same length as the original game demo.  To give an idea how how long that actually is, at my count the demo is in English about 70k words in length.  It’s not super long, compared to the game itself anyways, but it should give you an idea of what the game has to offer.  While we can’t really show you the more serious stuff later on yet, I hope that you won’t be dissapointed.

The main reason we decided to provide a demo is because we don’t plan on doing partial patches for individual character routes or the common route. I don’t think there’s any one specific reasoning behind it, but if I had to say, it’s simply that we’d rather provide a complete experience rather than a disjointed one.  Releasing a translated demo also allows us to provide a complete standalone package that people can enjoy without relying on the original game. While our changes to the demo content does make that a little grey, we’re hoping that the limited scope of what we’re providing will allow us to avoid any issues.

We plan on having as polished of a demo as we possibly can, and are working hard on making sure it’s as good as we can make it.  The demo is more or less in a working shape and we’re finalizing the editing and finishing up on some of the art. I don’t have a firm release date, but we’ll probably have it out before the end of the month. Stay tuned!

Hacking the Grisaia

So recently the translator Koestl contacted me for some help with the hacking for ‘Grisaia no Kajitsu’ (or ‘Fruit of the Grisaia’), since the game uses the CatSystem2 game Engine.  CatSystem2 was used by Kamikaze Explorer, which I released tools for before.  The tools didn’t work very well with Grisaia however, so some work was needed to get things playing smoothly. In the end I volunteered to help out making the game run well in English.

I should keep in mind that Koestl is the one doing the bulk of the heavy lifting, since translating the game, and it’s a huge ass game, is all his work.  I’m just working on the technical parts.  His translation is great and he does a really good job making it work in English.  He must keep an editor in his pocket because his translation comes out quite polished.  Look forward to playing it in English way (waaaay) down the road.  At the moment, the translation is 10.5% complete.

So anyways, that out of the way, onto the hacking stuff! Read more of this post