Girl Genius Decoder Applet

The Obligatory Translation Table (thanks to Kaja Foglio for the images)

* Blue (inner) Ring
# Yellow (middle) Ring
@ Red (outer) Ring
$ Set Code Ring
^ Set Target Ring
+ Spin Clockwise
% Spin Counter-Clockwise
& Ignore / Resume

 

Instructions For Use:

The Short Version:

Type the Key Box, and the text to be decoded, into the Input field.  The decoded text will come out in the Output field. The applet only copes with ordinary characters, so you should translate the funky ones through The Obligatory Translation Table.

The More Detailed, and Therefore More Geekly Version:

Read the Short Version first.

This is a fully interactive decoder, which tries to show as much as possible about how things get decoded.  It therefore has several goodies:

There isn't a separate field for the Key Box, to make it easier to cut and paste text into the Input field.  So if you prefer to type stuff into a file and copy it in, knock yourself out.

Troubleshooting:

This applet was written in Java 1.1.  It should work with reasonably recent versions of Netscape and Internet Explorer, but hasn't been tested (and may not work) with old versions.

If the Output message seems to be okay for a while, then turns into garbage, odds are you've made a typo somewhere.  Move the cursor around in the Input field so that it just highlights the good bits.  Odds are that there's a typo in the Input right after that.

If you get a message saying <ERROR -- something> in the Output field, then there's almost certainly a typo at that point, or maybe earlier.  Follow the above instructions to find the typo.

Known Bugs:

In Netscape only: if there are carriage returns in the Input, the highlighting and stuff won't work quite right if the cursor is after the returns -- it'll be off by one for each return. This is because of a strange misbehaviour in how Netscape figures the cursor position in TextAreas. I might fix it at some point, but it's a nuisance, since the problem is Netscape-only. To work around the problem, do the whole input on one line. (Or don't worry about the highlighting: the decoded message will be correct, regardless.)

The whole thing is monstrously inefficient. (In geek terms, the processing for each user event is O(n), where n is the total length of the message.) It suffices for the smallish messages that Studio Foglio has tantalized us with so far, but will have problems with anything really big. If bribed sufficiently, I may rewrite it to be more scalable one of these days, using a fancier internal state machine.

There may be other bugs -- the thing's only been tested on the two messages that Studio Foglio has provided so far.  If you find other problems, write to me at  genius@waks.org, and I'll see what I can do.

Credits

The applet was written by Mark Waks, who is, obviously, unemployed as of this writing. The now-de-facto-standard symbol-to-ASCII encodings were created by Kenneth Graves. And the coding language itself is of course based on the wonderful comic book Girl Genius, by Phil and Kaja Foglio.

Source code to this little monstrosity is available, for those who wish to subject themselves to it. Don't say you weren't warned...

The Non-GUI Version

For those who are truly daring (or really prefer a command-line interface), my original command-line version of the decoder is also available, in both C++ source code and a compiled Windows executable. This simply reads the encoded version from standard input, and sends the decoded stuff to standard output. The source code has only been tested with Visual C++, but it's pretty bog-standard C++, and ought to work on pretty much anything.