Skip to content

Web Publishing – Converting a Static Website to Dynamic, Part 1 – Setting up a Development Environment

Currently, my website is nothing more than a static HTML page. Every time I update an application or want to add a new one, I have to manually edit the HTML source, re-arranging things, making sure it’s all got the right formatting and so on. This is inefficient, time consuming, and prone to error. As part of publishing new code, I also make a blog post with the release notes. I’d like to streamline my publishing process, so I only fill out the information I need once, without having to write any HTML, and it automatically updates the main web site as well as the blog.

The first task in implementing this new publishing process is to convert the existing static page into a dynamic page, e.g. one that reads data from an external source, in this case a database. I will attempt to chronicle my adventures. I’m learning things as I go, and I may find better ways of doing things, so later posts may reverse decisions made in earlier posts.

In this post, I will detail setting up a development environment.

Continue reading ›

Tagged

Scummbler v2 r15

New version of Scummbler (v2 r15). Changes:

  • Fix “drawObject” in V3-4 (was missing 3rd argument and outputting the wrong opcode).
  • Fix “getState” instruction’s syntax (was originally defined as “if (getState(Local[0] == 0))”, should have been “if (getState(Local[0]) == 0)”).
  • “debug?” instruction renamed to “debug”.
  • “PutCodeInString” – add support for a missing 2nd argument (as output by descumm).
  • Restructure code path structure, separate out some tests.
  • Added some tests based on my attempt to parse MI1 global scripts.
  • Change license to MIT license.
  • Update build scripts.
  • Update to the manual – change info for “getState”, add support e-mail to contact list.

Binary:
http://www.jestarjokin.net/sw/scummbler_bin_20110712.zip
Source:
http://www.jestarjokin.net/sw/scummbler_src_20110712.zip

 

I’ve discovered there are some bugs in descumm’s output (introduced by yours truly). I discovered these after trying to parse all the global scripts from Monkey Island 1 VGA floppy.

Script 82 and 83 – missing 2nd argument for PutCodeInString

[0000] (27) PutCodeInString(24, );

When the string is empty, descumm outputs nothing for the second argument. It should output this:

[0000] (27) PutCodeInString(24, "");

Scummbler now supports either scenario.

 

Script 135 – unknown string function

Global script 135 contains this line:

[049C] (FA) VerbOps(Var[100],[SetXY(0,Var[228]),Text("How to deal with  frustration, disappointment, " + unknown8(8224) + " and irritating  cynicism."),On(),Key(Var[229]);]);

The “unknown8″ instruction is incorrect, and can’t be parsed by Scummbler. You must manually change the text like so:

[049C] (FA) VerbOps(Var[100],[SetXY(0,Var[228]),Text("How to deal with  frustration, disappointment,\xFE\x08  and irritating  cynicism."),On(),Key(Var[229]);]);

Also, there shouldn’t be a semi-colon after the “Key()” instruction, but Scummbler handles this anyway.

 

Script 152 – not joining string functions

[00BF] (14) print(255,[Color(Local[8]),Center(),Text(getString(VAR_HEAPSPACE)keepText())]);

This line should read:

[00BF] (14) print(255,[Color(Local[8]),Center(),Text(getString(VAR_HEAPSPACE) + keepText())]);

Again, you’ll have to manually alter the script.

MusicSort – a small script for renaming and sorting music folders

I have a reasonable collection of music in a variety of compressed formats. I like to arrange my music in a tree structure on the filesystem, sorted by genre. I also like to name the album directories in a particular format. I had acquired a backlog of albums to rename & sort, so, one day when I was procrastinating, I wrote a music sorting script.

Win32 Binaries

http://www.jestarjokin.net/sw/musicsort_bin_20110619.zip

Python Source

http://www.jestarjokin.net/sw/musicsort_src_20110619.zip

This script (and the binaries) is license under the MIT License.

An explanation follows.

Continue reading ›

New mailing list for support issues, feature requests, and general chat

I’ve decided to set up a dedicated mailing list, which can be used for any support issues for my tools, or feature requests, or just general game hacking discussions. Mostly because I need to show evidence of an “active community” in order to qualify for a free license for PyCharm, and it doesn’t look like private e-mails will suffice. Feel free to use the mailing list to contact me; I reserve the right to forward to the mailing list any mail e-mailed directly to me, if I feel it is worth sharing with others.

The mailing list address:

support@lists.jestarjokin.net

You can set up subscriptions and other info here:

http://lists.jestarjokin.net/listinfo.cgi/support-jestarjokin.net

The archives will be located here:

http://lists.jestarjokin.net/private.cgi/support-jestarjokin.net

Robin Hood – The Rules, Roughly

After nearly two years since I poked around in Robin Hood’s guts (I’m referring to the game, of course), I got the urge to investigate further, and now have a rough idea of how the data in the rules files is stored.

I will be discussing the format based on the “ERULES.PRG” file, which contains English text. The other rules files should be in exactly the same format, only the string values should be different. All bytes are in little-endian format (unless otherwise stated).

I’ll state up here at the start of this post, if anyone wants to join forces in exploring the intricacies of the game, feel free to send me an e-mail: jestarjokin@jestarjokin.net

View after the break, IF YOU DAAAAARE…!

Continue reading ›

The Clue! Profidisk – request for an German->English translator

I’ve heard whispers that The Clue! is being considered for inclusion in ScummVM. I’d love if it was. This got me looking into the source code for The Clue!, which was released to the public quite a few years ago.

It looks like there was a “Profidisk” expansion released for the game, but only for the German version. This expansion adds a few more scenarios for burglarising. I’d like to play this expansion in the English version, but lack the Deutsch to translate it myself, so if anyone out there could help me, contact me at my e-mail (listed later).

Turns out the text requires very little to change; all text data is stored in external files, which are XOR encrypted using a key ox 0×75. At this point I’m not sure if any graphics will require editing, for now I will concentrate on the text.

If anyone wants to help me out by translating the text, I’d be grateful. E-mail me at jestarjokin@jestarjokin.net.

 

Also, while the German game data was released to the public, the English version remains in limbo. Would it be worthwhile to translate the whole game into English again, to avoid any copyright issues?

It may also be worth editing the original English text anyway, since from memory it didn’t make much sense at times.

 

If you want to unencrypt the files yourself, here’s a small Python script to do so. If you have Python installed, you can run it like “xor.py 0×75 TEXT\*.txt”.

xor.zip

 

EDIT: 30/05/2011 – I’ve found my translator! Turns out Google Translate does a damn fine job. I’ll tweak the text a bit to match some of the existing English translations and maybe add some flavour… stay tuned.

ScummPacker v3 r1a

It seems there was a problem with the last build of ScummPacker. I’m not sure why, possibly because I did it on a different computer than usual. This release is just a new build which seems to be working. There are no code changes.

Win32 Binaries
http://www.jestarjokin.net/sw/scummpacker_bin_20110521.zip

Python Source
http://www.jestarjokin.net/sw/scummpacker_src_20110521.zip

Tagged

ScummSpeaks v3 r4

A bug fix release for ScummSpeaks.

  • Fix issue where importing sounds into a MONSTER speech map did not sort the sounds by ID (original offset), resulting in invalid game resources when exporting.

Win32 Binaries
http://www.jestarjokin.net/sw/scummspeaks_bin_20110512.zip

Python Source
http://www.jestarjokin.net/sw/scummspeaks_src_20110512.zip

Tagged

ScummPacker v3 r1, and SCUMM Image Encoder v2 r1

ScummPacker v3 r1

  • Complete rewrite. Breaks all compatability with old versions.
  • Supports SCUMM v4, v5, and v6 games, as well some v3 games.
  • Outputs some information (such as headers) to XML format.
  • No longer need to explicitly state the order of each block.
  • All object data are contained within their own sub-folder.
  • Local scripts are contained within their own sub-folder.
  • License changed from “public domain” to the MIT/X11 license.

Win32 Binaries
http://www.jestarjokin.net/sw/scummpacker_bin_20110425.zip

Python Source
http://www.jestarjokin.net/sw/scummpacker_src_20110425.zip

SCUMM Image Encoder v2 r1

  • Updated to work with ScummPacker v3
  • New option to “freeze” the palette, preventing the original palette from being updated.
  • New option to specify the quantization (number of colours in the palette)
  • License changed from “public domain” to the MIT/X11 license.

Win32 Binaries

http://www.jestarjokin.net/sw/scummimg_bin_20110425.zip

Python Source

http://www.jestarjokin.net/sw/scummimg_src_20110425.zip

And that’s it!

I’m afraid I have no intention on performing any further work on my SCUMM tools. I will still perform maintenance work, and will consider feature requests, but I will be focusing on other projects.

  • v3 r1
  • Complete rewrite. Breaks all compatability with old versions.
  • Supports SCUMM v4, v5, and v6 games, as well some v3 games.
  • Outputs some information (such as headers) to XML format.
  • No longer need to explicitly state the order of each block.
  • All object data are contained within their own sub-folder.
  • Local scripts are contained within their own sub-folder.
  • License changed from “public domain” to the MIT/X11 license.

ScummSpeaks v3 r3

A new bug fix for ScummSpeaks.

Summary

  • Fix problem trying to export sound resources, where the sound map contains sounds that are not mapped to any line of text (and will effectively be unused in the game). This might exhibit itself in an error box popping up with a message like “973996″.

Win32 Binaries
http://www.jestarjokin.net/sw/scummspeaks_bin_20110330.zip
Python Source
http://www.jestarjokin.net/sw/scummspeaks_src_20110330.zip