16 Aug 2014

Release: Version 0.9.3

Quick bug fix update, that sadly got released way past due date...
We're horribly understaffed, and I got flooded with RL work. Sorry about that.



24 Jul 2014

Release: Version 0.9.2

Like Santa Claus in July, I bring you shiny stuff on the 24th. Well, it's not actually that shiny, and I doubt it was on anyone's wishlist, or that anyone has any porridge for me for that matter... but christmas or not, have a KCT update.

The big thing in this update is support for Growl (along with the aptly named Windows port, Growl for Windows). Growl is a wonderful little program that does one thing, and does it damn well: displaying notifications.

I'd recommend all Windows users in particular to install Growl. Having customizable notification bubbles in a corner of the screen is a huge improvement over the little tray bubbles that's all Windows offers (to non-Metro applications, at least). Mac and Linux have more usable notification systems already, so it's a matter of taste there.

Less shiny, but certainly important, is the build system overhaul. We now use CMake for building, which makes everything (especially adding third-party libraries) a whole lot easier. This should speed development up considerably.

Oh, and it also won't flood the translator with junk lines (to the point where his work becomes impossible) every time something in the game changes. Which is also why it's pretty important that people update to this version as soon as possible, because the last version did exactly that.

Poor Amatsukaze still doesn't have an English translation of her name, because she got buried under a mountain of junk. If you won't update for me, do it for her!



01 Jul 2014

Overhauls, ho!

If anyone wondered what's going on with KCT (or worse, thought it dead), the simple answer is: overhauls!

The codebase had a lot of old stuff in it that got in the way more than it really helped.
Qt's build tool qmake works wonders for simple projects, but that description hasn't fit KanColleTool for a very long time now - it had several custom build scripts, a ton of hacks to make qmake do what we want, and the build process broke all the time, especially on Windows.

Getting new versions out should be as simple as running the script that updated the version number, hitting Build on two different machines and poking our Linux maintainer.
In reality, getting a new build out on OSX and Windows alone usually took me around one to two hours of work.

For the next version, I'm converting everything to use CMake. CMake is an amazing tool, that can be made to swallow nearly any project structure, spit out build files for anything from GNU Make to Visual Studio, and build external dependencies while it's at it.

Oh, and it can spit out platform-specific installers and archives too.

In addition, the next version will have:

The next version will let us blacklist things remotely, without having to push client updates.

For Windows users, this is a huge improvement over the tray bubbles that are all the system offers natively*, and you should definitely try it out.
For Mac users, using Growl vs Notification Center is just a matter of taste, and they both work almost identically.

This would have been impossible with the old qmake-based build system, by the way.

* Yes, Windows 8 has proper notifications, but non-Metro applications can't use them. Thanks, Microsoft.

25 May 2014

Release: Version 0.9.1

After nearly a month of me being too overloaded with school assignments to work on KCT, 0.9.1 is finally here.
Where 0.9.0 was a rushed attempt at patching in compatibility with the new KanColle patch, large parts of it has now been reworked, and none of the issues that arose with 0.9.0 should be left.

The biggest change in this version is that there is no more Direct Loading in the Tool.
Instead, the Viewer will write cache files that are picked up by the Tool, which eliminates the need for this.

The reason for this change is that
a) It was the one part of KCT that was potentially detectable, and
b) KC Staff have started actively trying to prevent programs from accessing player data

These two together tell me that keeping it really isn't a good idea.
As an added bonus, this makes the Tool start up in nearly no time at all.

In addition, when you enable translation, it will default to submitting untranslated strings back to the translation server.
This means that every time you see an untranslated line, it has popped up on the translation dashboard.




27 Apr 2014

The Spring patch for Developers

The latest KanColle patch merges a bunch of endpoints together to speed up the game, and makes an earnest effort to make tool development harder. Of course, this isn't gonna stop me, nor anyone else, so here's what's changed.

No more /api_get_master/

Yeah, that's right, no more api_get_master. Instead, all authoritative data is in the new /api_start2 endpoint.

/api_get_master/ship is now /api_start2 -> api_data.api_mst_ship, /api_get_master/slotitem is /api_start2 -> api_data.api_mst_slotitem, etc.

Random ship data filenames

Ship graphics used to be named simply <Ship ID>.swf; ever since the spring patch, they have a random sequence of letters for filename instead. These filenames can be pulled from the /api_start2 endpoint, under api_data.api_mst_shipgraph.

Player data merged into /api_port/port

This is perhaps the most interesting change: a bunch of player data is now under one endpoint, but that endpoint also requires a signature in the api_port parameter. Here's the code for how to generate that signature from the player's member_id (you can grab this from /api_get_member/basic), in JavaScript, because the game does it in ActionScript which is almost the same thing:

// u = The current user's ID
function _(u) {
    var loc = [1171, 1841, 2517, 3101, 4819, 5233, 6311, 7977, 8103, 9377, 1000]
    var ret = 
        (loc[10] + u % loc[10]).toString() +
        ((9999999999 - Math.floor(new Date().getTime() / loc[10]) - u) * loc[u % 10]).toString() +
        cN() + cN() + cN() + cN();
    return ret;

function cN() {
    return Math.floor(Math.random() * 10).toString();

As you can see, this isn't one number, but instead three parts of fixed lengths.
The server will verify that this signature is correct, and if you get it wrong, you get Error 100 back.

(Note: the keys mentioned above have since been revoked. Also loc[10] is always 1000. Good luck.)

27 Apr 2014

Release: Version 0.9.0

It took a while, but now it's here: the big KCT update to accompany the game's Spring patch.
Along with improved compatibility, it also features quite a few improvements, particularly for Windows users.




15 Mar 2014

Release: Version 0.8.7

Just a quick update that works around a Flash Player bug that affected Windows users with a reasonably up-to-date Flash Player version. Due to issues with how Direct Rendering Mode is implemented on Windows, the game jumped up a bit and covered the viewer menus, in a way that shouldn't even be possible...

This update simply disables Direct Rendering Mode until I figure out a good way to safely enable it again.

14 Mar 2014

Release: Version 0.8.6

Sorry about all the updates lately.
0.8.5 is what happens when I try to push updates too late at night.


13 Mar 2014

Release: Version 0.8.5

This release has been delayed a lot by schedule issues and project restructuring. The last version was a bit rough around the edges, but this one should hopefully be less so.




02 Mar 2014

Release: Version 0.8.4



01 Mar 2014

Release: Version 0.8.3

Just a few quick bug fixes that slipped in with 0.8.2, sorry.


19 Feb 2014

Release: Version 0.8.2

With 0.8.2, a large part of the application's backend has been rewritten, mostly thanks to @Sauyon joining the project. Expect it to perform better and crash less.

There are two changes in this version that you may want to be aware of though:

Importing settings from a previous version

Navigate to "~/Library/Preferences/" (Open a Finder window, press Shift+Cmd+G, copypaste that and press Enter), rename com.macaronicode.KanColleTool.plist to com.kancolletool.KanColleTool.plist, and com.macaronicode.KCTViewer.plist to com.kancolletool.KCTViewer.plist.

Open the Registry Editor (Press Win+R, type "regedit", press Enter), navigate down to HKEY_CURRENT_USER\Software\MacaroniCode and rename the MacaroniCode node to KanColleTool.

Navigate to ~/.config/ (your file manager should have a way to jump to a given path), and rename the MacaroniCode directory to KanColleTool. Alternatively, run mv ~/.config/MacaroniCode/ ~/.config/KanColleTool/ in a terminal.

New Features:


07 Feb 2014

Release: Version 0.8.1

Looks like 0.8.0 accidentally broke the game for certain users (they got stuck on the loading screen).
While I haven't quite worked out what caused it, this is a hotfix that should make it work again.

06 Feb 2014

Release: Version 0.8.0

Big update right here!
The big feature of this release is Expedition notifications, and statuses on the fleet page.

As an extra bonus, have some hotkeys.
Ctrl+<num> switches pages (Fleets, Ships, Repairs and Constructions), and just <num> switches fleets.

New Features:


30 Jan 2014

Release: Version 0.7.1

Now that KanColle is back in business (for now), I'd like to push this out.
After the maintenance, there was a ban wave aimed towards cheaters. People got nervous, so I thought I'd go over KCT and change the User-Agent string it sends with requests to pretend to be Google Chrome.

KCT is now virtually undetectable on their end (indistinguishable from Google Chrome 32.0 running on Windows 8, of all things), and should thus be banhammerproof. Note that they can still ban you for being a foreign player or cheating, of course.

Oh, and it fixes a bug where you couldn't change API link in the tool under some circumstances (particularily on OSX).

28 Jan 2014

Release: Version 0.7.0

The big feature of this update is tool livestreaming.

Before, the tool only updated when you pressed Refresh, which then polled the game for new data.
With 0.7.0, the tool will leech off the Viewer and gobble up any data that goes through the game.
If something happens in the game, the tool will know of it, immediately.




26 Jan 2014

Release: Version 0.6.1

Just a minor fix update, that also adds update notifications.



25 Jan 2014


I just realized I completely forgot to update the downloads page!
Those of you who downloaded it and can't get the English translation working: please redownload.
You probably have Version 0.5.2 instead of 0.6.0.

The link in the post was the right one, the one on the downloads page was the last version.
Really sorry about that...

25 Jan 2014

Release: Version 0.6.0

Version 0.6.1 is out! →

The big feature of this translation is obviously the ENGLISH TRANSLATION OF THE GAME!
Brought to you together with Sikarra, translation by Commie.

Also a big thanks to Mary for catching my screwup with the translation code.

EDIT: I forgot to mention that the grayed-out checkbox in the Tool is intentional, and will be available in the next version.

20 Jan 2014

Release: Version 0.5.2

Second release today, sorry.
More bugfixes, and you should definitely upgrade, since the Construction page was broken in 0.5.0 and 0.5.1 thanks to the API being inconsistent again.



20 Jan 2014

Release: Version 0.5.1

Is now up. As usual, you can grab it from the downloads page.
This is just a minor bug fix version, so don't expect too much...

16 Jan 2014

Release: Version 0.5.0

...is up! Grab it from the new, shiny downloads page!

New Features: