icabod.org

PC Software

Here you'll find a few of the programs I've written that aren't (directly) ZX Spectrum-related. It's basically just some utilities and toys, generally they're unfinished or just plain poor. Often it's a way for me to experiment with ideas and coding techniques (for example zxToy was created initially as a way to prototype a demo effect quickly and easily on a PC).

Not all of the software listed here will be downloadable as some of it is currently for private use - again using zxToy as an example I wanted to show what it is as it's mentioned in the toolsets used for creating some of my ZX Spectrum software. I hope in the future to make it easy to use without the need to delve into C++ (probably adding a scripting engine), at which point I'll provide a downloadable version.

Also lot of the software I write is work-related, in which case it probably won't even get a mention on here due to "security issues". Yeah, it's silly, but that's corporate life.

Tools and Utilities

A few of the tools and utilities that I've created that may be useful to people. I'll add downloads as and when I get around to it. Some of the software will have its own page if I feel it's deserving enough.

PouetZXHighlight
Javascript
PouetZXHighlight - v1.00

I won't go into details, but these two scripts basically highlight comments made to ZX Spectrum productions on the Pouet.net comments page. Otherwise those comments are really tricky to spot.

Two versions exist - one for GreaseMonkey (a Firefox plugin), and a Bookmarklet: PouetZXHighlight (drag it into your bookmarks and click it to highlight). Only designed to work on the comments page.

Of course feel free to modify these for your own purposes, to highlight other platforms for example.

3eExplorer
c++/stl
mfc

I'll write something properly here later, but for now... this program will allow you to extract files from images of drives created with the Plus3e. Lovely.

PngConv
c++/stl
pnglib

PngConv is part of my attempt to streamline my ZX Spectrum development process. I had started using Make to build my software, and as I edited graphics in Photoshop I wanted an easy way to convert images (eg fonts) into a format usable by my z80 code. PngConv is the result - a command-line utility to convert simple PNG images into a "raw" bitmap format, output as text or binary data, in numerous format.

While there are several editors and utilites to manipulate "sprite" image data, there wasn't anything which would generate it automatically from an standard image. PngConv converts the image into a (masked) sprite in several formats. Currently only working with B/W images, added options for colour images are planned.

The software is written using the C++ Standard Template Libraries, so should be easily portable (when I eventually release the code).

BinTap
c++/stl
BinTap - v0.0.1

Another part of my attempt to streamline my development process. This is a small, very badly-written (but it works!) program which converts a Binary file to a .TAP file. That's it. It's nothing special, but the one I used previously didn't work with long filenames, so I wrote my own.

dos2unix
c
dos2unix - v0.0.1

Another very simple program - it reads in a file and converts it from DOS (CR/LF) to Unix (LF) format or vice-versa.

EveFS
winspy++
c/winapi
EveFS

A few years ago I started to play an MMO game called Eve:Online. Quite good it was too (still is I guess), eschewing the traditional MMO standards of dungeon instancing, Orks and even Elves. It was space-based, which appealed to me.

One of the problems was that Alt-Tabbing out of the game and back in could cause instability (or in my case colour-darkening issues). Running Windowed worked well, but you would always lose some of the screen as the border was displayed. So with a little hacking I created EveFS, a program that would make the windowed game look... windowless. It would take up the whole of the screen, but with the advantage that it was running in a window. You could even run other apps on top of it (a media player for example, or my own EveBell). Very simple (a single small C file and a few winapi calls), but very effective.

I no longer play Eve, and don't know if EveFS is even useful any more, but it's here for fun anyway.

EveBell
c++/mfc
EveBell

Another piece of software that was written during my time playing Eve:Online. This one was in fact commissioned (that's to say, someone asked me to write it, which I did for free coz I'm nice like that).

One of the staple ways to "win" in Eve:Online is through mining. This can be a long, labourious (and mostly dull) process - I know, I've done it. I was quite good at it by the time I left the game. One of the problems is that when your cargo hold is full your mining lasers shut off. This can take anything upwards of a minute, depending on your ship, skills, lasers, and other RPG elements. EveBell was designed so that you would calculate how long it takes to fill your cargo hold, and set a repeat timer to "ping" at that time, so you could stop surfing for pornography in the background, sort out your cargo hold, and continue. It worked well too.

As I like to learn programming methods when I write software, this was my first program with a proper custom GUI - I designed it to look like the standard Eve UI so it would sit on top of your Eve window as if it was built in.

Like EveFS I don't know if this is of any use to anyone any more, but it's a shame to waste it, so here it is.

Toys

Here are any "Toys" that I have written... software that serves no purpose other than allowing me to try out different techniques when programming. Some may be useful... others less so.

ZXoom
c++/mfc
ZXoom - v0.0.0.3

ZXoom was the result of me experimenting with the Windows API, specifically device-capture and hooks. Most "magnification" software that I had seen seemed to work in one of two ways... 1) it takes a snapshot of the screen and views a zoomed version of that image, or 2) you move the window over the section of the screen you want to view zoomed. I didn't like these approaches, and wanted to try a method of magnifying the active screen, animation-and-all.

ZXoom was a way for me to teach myself about Windows Hooks, capturing things like mouse movement when your own application isn't active, intercepting the API messages and passing them on. A magnification tool seemed a logical choice. The ZX part of the name comes from, you guessed, the ZX Spectrum. My idea was to zoom the screen and at the same time convert it to a ZX Screen$. Well I stopped development before I got that far, but I did include a psuedo-chunk mode. Try it with a movie playing - you can see what it would look like on a ZX (tho' you'll need to turn overlays off).

At some point I may add full Screen$ conversion, but until that point it's a fun little novelty.