Sunday, 20 July 2025

Multi part VIC20 game conversions part 9 million and 12

Seems like I have done a lot of these, but not for a while, so here are three more.

We were almost at the release state for the Penultimate +3 DCR when TFW8b suggested a few more games to add following one of his "5 random games" videos (link at the end).

Out of the ones suggested, three of them looked promising, and of course it's never as easy as a single PRG or a cartridge that I can just add straight in.

These games were typically designed to run on an expanded VIC20 and would load in multiple parts. The first would show a title and maybe some instructions, and often setups some game code or character graphics.

They would then load the second part, the game itself, which would overwrite the previously loaded program as there wasn't space to keep both in RAM at the same time.

My tactic for conversions like this is to make a cartridge ROM with a routine to copy a block of code (the first program) into RAM and run it as if it had just been loaded

I then change the code which would load the second part from disk or tape to be a SYS call to jump back to the cartridge ROM to copy the second block of code into RAM and run that.

Diamond Hunt

This one is nice and obvious. The first part prints up some instructions and then sets up some thing into RAM at $0298 and $0338 (I think it is graphics data, it does not look like code).

And then it prints out a LOAD command, and then a few pokes to put "RETURN" into the keyboard buffer

The disk drive device number is correctly set using PEEK(186), which stores the last one used. That is a nice touch that a lot of these loader miss and just hard code device ID 8.

When the program ends, the RETURN in the keyboard buffer is processed and the LOAD command is run, the second half is loaded and you get the game.

It's a sort of Boulder Dash without the boulders with a hint of Centipede.

Every level is choose different colours and characters for the items, so you can sometimes get caught by the baddies before you have adjusted.

One thing that threw me with this one was there are four files in the D64 image.


"DIAMOND HUNT" and "C/DIAMOND V1.29" are used, but the other two do not appear to be referenced anywhere. Not sure what happened there. They appear to contain similar code. I suspect they may be left over from the conversion to D64 as this was probably originally a cassette game.

Mission Mercury

This is another two-parter. The first part puts up a title screen.

It scrolls up from the bottom of the screen.

Then it is rolled off to the left (reducing the screen size character by character).

Leaving a blank screen whilst the second half is loaded.

And then you get the actual game.

It's quite a nice little game, sort of upside down Frogger meets Jupiter Lander.

Your landing craft starts off in the mothership that moves across the top

When you press fire, you need to navigate to one of the bases, avoiding the floating aliens.

I was expecting to need to land another two crafts, but the next stage is to take off and go back to the mothership.

The first part is mostly the title screen, and some code which is POKEd into RAM at 700 ($02BC).

This is the usual setup and call to SETLFS, SETNAM and LOADSP to load the second half, and then a jump into the code.

Here I just changed the call to runs that code to a call back into the cartridge ROM to load the second half and that's another one done.

Android Attack

The last of these there Android Attack.

Another animated title.

This time with optional instructions.

The first page is oddly short - has something been cut?

The rest of the pages are full.

Quite a lot of text to basically say "shoot the aliens".

We then get a blank screen whilst part 2 is loaded.

And finally, the game.

It is a sort of Space Invaders meets Blitz.

You need to shoot the invaders, but unusually, you rotate rather than move left or right.

Even diagonally.

This one had an interesting loading mechanism, there was some extra code at the end, after the BASIC program.

This code copies itself into a safe place in memory ($0140), then jumps to the copy. The code there is the usual KERNAL calls to LOAD the program and then jump to $1000 to run the game.

Like the previous title, the game code fills the full 4K of RAM from $1000 to $1FFF, including the screen, which is why the screen is reduced to 0x0 characters and you get the blank screen during loading.

Oooh, have we got a video?

See Rod playing these games (before they were added to the Penultimate Cartridge)


Adverts

The Penultimate +3 DCR is shipping from from TFW8b, including these three titles (amongst hundreds of others - 271 at the last count)


Tindie

Your reward for reading all of that is notice that there is 15% of everything in my Tindie store throughout July.


Patreon

You can support me via Patreon, and get access to advance previews of things going on behind the scenes updates, currently working on the Mini VIC and Mini PET II. This also includes access to my Patreon only Discord server for even more regular updates.