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