grack.com

The nprof 0.4 alpha release (both binaries and source) is now available! The tabbed interface has been improved and a number of bugs have been fixed.

Note: there was a last-minute correction to the download, for those who might have jumped on it after it was released. The latest filename should be nprof-0.4a-alpha.zip.

Remember to send me some feedback if you’re trying it out.

Screenshots:

Read full post

I was considering adding a new feature to the profiler, but I’m looking for some feedback before starting. My idea is to hook up a function call tracer that could be enabled or disabled at any time during the profile run. This would allow you to track function calls made in response to a user action, such as clicking the mouse or hitting a keystroke. Ideas? Suggestions? Send them to the mailing list.

Read full post

I’ve finally got grack.com up to a point in Citydesk where I can publish it.  I’m still not completely convinced that I’ve got all my content up, but it should at least appear as if I do.  Let me know if you find any errors or omissions.

Read full post

I’ve managed to locate the code for HP-Kermit, as well as the binaries for the first version of Death Match.  I’ll have these items up (as well as screenshots for Death Match) as soon as I can.  I also managed to find the source for some of my POV-Ray  stuff, as well.

Read full post

I added a style picker to the bottom of the page to allow the visitor to pick which style they would like to use when navigating the site.  It uses a piece of Javascript written by Mark Wilton-Jones to save the current stylesheet in a cookie and later restore it when the page changes.

Each style link consists of a short Javascript link like so:

javascript:changeStyle('Default Style')

A small script in the <head> section of the HTML, along with the body onunload method, is hooked up to the style saving/loading code to transparently maintain the user’s current style:

<script type="text/javascript" language="javascript1.2">
    useStyleAgain('lastStyle');
</script>

<body onload="useStyleAgain('lastStyle');" 
	onunload="rememberStyle('lastStyle');">

The Javascript to do this magic can be found here.

Read full post

I managed to find a copy of Death Match on an old CD.  It took me a little while to the program running.  The first thing that came up was a copy protection scheme that I had written into it.  At the time it was written, most commercial games had a lookup sheet that you would need to consult to get the program to run.

I had written up a scheme where each letter would map to a different symbol.  For instance, the letter A maps to .  The screenshot below illustrates what a user would see:

The 6-character mapped character string was then looked up in a table of words and compared to the word that the user entered.  I had originally compressed Death Match with an executable compressor called “PKLITE”.  Because of this, I couldn’t just hex-edit the executable and locate the string table.  Luckily, I hadn’t protected the compressed version, so PKLITE allowed me to decompress it:

C:\old\pklite>pklite -x \old\dthmatch\dthmatch.exe
PKLITE (tm)   Executable File Compressor   Version 1.12    6-15-91
Copyright 1990-1991 PKWARE Inc.  All Rights Reserved.  Patent Pending
Expanding: /OLD/DTHMATCH/DTHMATCH.EXE
Original Size: 39929  Expanded 
Size: 112672

Once I had done that, it was a simple matter of using notepad to grab the string translations from the executable.

After that, I used The Gimp to create PNG files of each letter and created an HTML file to map the 6-character codes to the appropriate words.  I was then greeted with the title screen and main menu!

Getting the game to run properly is a bit tricky.  Bochs seemed to freeze in the main menu and running it under Windows 2000 seemed to result in corrupted graphics in a number of places.  I think I might be missing a few files that might be important.  Once I scour the remaining floppies, I should be able to discover which files are missing.

Update: I discovered that the code “LEMMEIN” works for any of the codes as well.  You can see it in the screenshot of notepad above.

Read full post