More C64 tools: C64 Hires to Charmode

A few weeks back, around the end of May, I came up with an interesting idea for a logo to use for a Commodore 64 intro for Hokuto Force. I designed a 3-color logo spanning multiple C64 screens in a PC graphic editor and I was looking for a way to convert it to char-mode. Unfortunately I could not find anything quickly enough so I decided to draft a tool to do just that.

I am not going to expose my logo just yet so I will show below how the tool works using somebody else’s logo meant to be displayed in char-mode (rather than hires mode). Of course the tool is meant to save time when designing graphics produced by a non cross-design editor (or simply found on the Internet, e.g. a still image): the careful design of the logo to be shown in char-mode is a high-value task and is best done in a native editor or one that behaves similarly!

So let’s assume I found the image below on the Internet and I was interested in putting together a fontset out of it (because I do know that it is a char-mode logo), without repetitions:

HF logo by DMD

HF logo by DMD

What I do is to load the PNG (or GIF, or BMP, etc) file into my tool, C64 Hires 2 Charmode:

C64 Hires 2 Charmode

C64 Hires 2 Charmode

By clicking on the button “Convert & Save” what I get is that I am requested to save the below picture:

C64 Hires 2 Charmode - Resulting fontset

C64 Hires 2 Charmode – Resulting fontset

Along with the video map that indexes the chars in the above fontset in order to display the original logo. The tool also gives feedback on the number of chars required to do the decomposition:

C64 Hires 2 Charmode - Count of chars

C64 Hires 2 Charmode – Count of chars

What I finally do is to use one of my other tools to convert the picture to raw font-data. I decided not to do such conversion in C64 Hires 2 Charmode when I coded it, but I might include the functionality at some point.

Posted in Pixel Design, Retrocomputing, Technical | Tagged , , , | 3 Comments

My second crack intro

A video of my second crack intro for the Commodore 64 is now available. Enjoy!

Posted in Pixel Design, Retrocomputing, Technical | Tagged , , , | Leave a comment

Total Eclipse II release

Now that the Jewel release of Total Eclipse II has been published on CSDB I can comment on a few interesting things that I’ve come across during the work I did on this title.

First thing first, the Freescape is very much a nicely designed game engine/framework and Total Eclipse II uses most of its features, especially for animating the environment. It provides a script interpreter that processes bytecode attached to objects, areas, and those that apply globally. For my work on trainers I actually had to modify a few of these :)

One of the nice touches I worked at was a patch for the area named “THEBES-D C12″. Normally when the player stumbles across a step on the floor, some water drops from the jar, as advised by the message “WATER SPILT” in the game dashboard. When that happens, a stain appears on the floor (dark red) that represents the water. I liked this touch of the coders so much that when I wrote my trainer for unlimited water I decided to disable both the display of the “WATER SPILT” message on the dashboard and the generation of the stain on the floor, among the other things. I like to go the extra mile with a trainer :)

Another nice touch was to decode the area with invisible walls, “THEBES-B C12″, an add a trainer to show the invisible walls as it can be quite frustrating to navigate through an invisible maze in a 3D world where you have to crawl at one point and carefully step up a number of times without falling before you can get across. Not only that, I also produced a few renderings of such area, so that if players don’t want to spoil the challenge, they can at least peek at the renderings for a little bit of help:

THEBES-B rendering 1

THEBES-B rendering 1

THEBES-B rendering 2

THEBES-B rendering 2

THEBES-B rendering 3

THEBES-B rendering 3

The ones in blue are the entrance/exit and the one in yellow is the gold bar, provided for orientation.

As you can certainly appreciate in the last rendering, when entering the maze from the door at the opposite side of where the gold bar is (i.e. during the journey back through the maze), it is enough to just go all the way left from the door and take advantage of the blocks stacked in the shape of a staircase. The game itself gives us a hint about this: the message “GO LEFT THEBES-B” is displayed whenever the player crosses the maze for the first time and steps into “THEBES-A C12″. Nice touch, eh?

Overall I had great fun reverse engineering the 3D engine and the bytecode interpreter at $6429. Here’s a few snippets from the interpreter itself:

B6477 LDA T6422 
      CMP #$01 ; Opcode 1: Add 3-byte value to score/money
      BNE B64D2 


B64D2 CMP #$02 ; Opcode 2: Add signed byte value to water level
      BNE B6503 


And so on and so forth!

I guess it’s enough for this update :)

Posted in Retrocomputing, Technical, Uncategorized | Tagged , , , , | Leave a comment

Video for Beam Racer available

A video of my first Commodore 64 intro is available!

Of course I did not mean to make a technically extreme one on my first attempt. I just wanted to put together something that looks nice and is timed nicely: check at what point the scrolltext starts and at what point the drums start – then check on NTSC too ;)

Posted in Retrocomputing, Technical | Tagged , , , | Leave a comment

All Rack-It loader variants supported in TAPClean now

Today, after rewriting the code for this format in order to extract loader parameters on a per tape basis (similarly to what happens for Cyberload), I also added support for the only known variant used in a few titles.

In total, there are 13 Commodore 64 tape dumps that can now be automatically tested and archived for preservation :)

Thanks go to Mason for making the tape dumps available and Peepo for setting up the FTP “exchange” server!

Posted in Retrocomputing, Technical | Tagged , , , , , , , , , | Leave a comment

Rack-It variants

Once again Mason has submitted a bundle of tape dumps, this time for his Rack-It/Hewson games. Interestingly enough these prove that loading parameters of the Rack-It loader (endianness, pilot byte, sync byte) were fully configurable at mastering time.

This is the second time in a few days that we have to correct our knowledge of a tape loader based on the inspection of tape dumps previously unavailable: It was 6 days ago that we made a similar discovery about Visiload!

I have identified the invariant bits that should make it possible to decrypt the code where loading parameters are stored and support all Rack-It/Hewson games at once in TAPClean :)

Posted in Retrocomputing, Technical | Tagged , , , , , , , | Leave a comment

Visiload variants

Mason has submitted tape dumps of a number of older tapes using variants of Visiload unsupported in TAPClean. These suggest the initial loading parameters were fully configurable at mastering time and in earlier tapes they were indeed configured in combinations that we had not seen so far.

All variants I was sent by Mason are now supported in TAPClean :)

Posted in Retrocomputing, Technical | Tagged , , , , , , , | Leave a comment