TheC64 Maxi Game Tool 2020

Software v1.01 / Last Updated: 2020-03-5

TheC64 Game Tool 2020 is a tool designed to let you create a custom firmware .bin file to inject your favorite Commodore 64 games into the carousel UI of TheC64 classic computer.  

This can be accomplished without altering your TheC64 device’s hardware or wiping out the actual operating system of the unit.  This makes it safe to use and revertable; best of all - anyone can use it without any advanced technical skills or hardware experience.

Note: the title of the tool suggests it is for TheC64 Maxi (or full sized) version, but it has been tested work fine on TheC64 Mini version as well.  Additional features added to the tool in the future may not work properly with the Mini and this documentation will be updated to reflect changes and limitations imposed.

Table of Contents

Welcome!

Visual Tour

Main Screen

Add/Edit

Make FW

Input Configuration

System Configuration

The Process

Gather Games and Assets

Add the Game to the carousel

Make or Build the Firmware file

Save the file to a compatible USB media stick

Flash the custom Firmware

Test Your Games

Return to the tool

Advanced Techniques

Testing Before Flashing Using VICE

Using a VICE Snapshot As Game Image

Multi-Game Easy Cart (.CRT) Images

Starting With An Empty Carousel

Restoring Original Games (Clean)

Merging Games

Visual Tour

Let’s cover the layout of the various screens in the application.

Main Screen

A - Metadata for Selected Game

B - Screenshots for Selected Game

C - Games currently installed

D - Open Make Firmware Window

E - Launch VICE emulator

F - Import an existing game set (overwrites existing set; warning will be given)

G - Add a Game to the carousel

H - Edit the Selected Game

I - Delete the Selected Game (warning will be given)

J - Scroll through games on the carousel

Add/Edit

A - Metadata for the game

B - Files for the game (with selectors)

C - Game System configuration (with selectors)

D - Add/Edit Multi Easy Cart Games

Make FW

A - Log/Output area

B - When building, delete all existing games

C - When EXECUTING the firmware, backup existing game carousel

D - When EXECUTING the firmware, backup TheC64’s NAND memory

E - Puts a game entry for running the C64 BASIC input screen

F - Perform the firmware build

G - Once built, save the firmware file to your USB memory stick

Input Configuration

A - Input Assignment for TheC64 Joystick

B - Make all the currently assigned inputs the DEFAULT values when adding games

System Configuration

A - PAL (50hz) or NTSC (60hz) system emulation

B - Show disk drive access icon / Turn on True Drive Emulation

C - This forces the entire display – including top and bottom borders – into the 720p output image, sacrificing the accurate display but showing everything

D - On some TVs with some games that bleed graphics into the borders, you may want to shift the display up or down some pixels to aid in the display

E - Change the type of SID audio chip to emulate

F - This disables audio scaling, which automatically compensates for the adjustments in pitch of generated (rather than sampled) audio when running a computer at different refresh rates

Note: Not all features work on the original TheC64Mini classic console.

The Process

To successfully create, build and execute custom firmware - you’ll need to perform the following process:

  1. Gather Games and Assets
  2. Add the Game to the carousel
  3. Make or Build the Firmware file
  4. Save the file to a compatible USB media stick
  5. Flash the custom Firmware file to your TheC64 device
  6. Test Your Games
  7. Return to the tool to fix Games that may not have worked properly or change configurations that didn’t work as expected

Gather Games and Assets

For each game you want to add, you’ll need a few things.

If you’re going to add a large quantity of games to TheC64, I recommend gathering all your assets and making them as ready as possible prior to actually adding the games to your carousel.

Add the Game to the carousel

Once you have all your assets together, open TheC64 Maxi Game Tool and click ADD.

Fill in the metadata you collected for the game.

Select the game image file, cover and screens.

Choose the default joystick and alter any input configuration changes you would like to do.

Make any changes necessary to the emulation system parameters.  Most games will not require changes and the defaults are the best place to start.

Note: Avoid editing the text box containing the settings unless you’re sure you know what you’re doing.  Using the buttons next to each field and choosing options via the user interface is more reliable.

When finished, hit OK and the game will be added to the carousel within the tool.

2020-03-05  NOTE: We may have seen issues with carousels on the Mini with over 105 games.  Until more research is done, we recommend you keep the carousel on the Mini under 105 games.

Note: You must have a minimum of 6 games and a maximum of 150 games in order to successfully flash the firmware.  This number will likely be increased for TheC64 Maxi in the future.

Make or Build the Firmware file

Once you have added all the games you would like, you’re ready to make a firmware file.

Click Make FW from the main screen.

Note: If you want to ADD your custom games to the EXISTING games instead of replacing them, see this FAQ question.

There are four options available when making your firmware file.

Note: Backups made during the firmware flashing process will be stored on the root of your USB memory stick.  It is highly recommended you back these files up somewhere safe like a computer hard drive or even a cloud storage solution like Google Drive.

With your options selected, click MAKE.  Watch the logging/output window to see what is being done.

Save the file to a compatible USB media stick

After a few moments, the MAKE process will complete - saving all the files it needs to the tool’s directory.

Click SAVE and save the final firmware file (named theC6409_9_9.bin) to your TheC64 USB memory stick.  It will not erase the contents.  If you’re using a stick already to house your custom game files, you can use the same stick for the firmware.

The USB memory stick must be formatted as FAT32.  Most smaller memory sticks are probably already formatted as such, but if you have a larger stick it may be formatted as NTFS or ExFAT.  These will not work.  On your PC, right click your memory stick drive letter and select PROPERTIES.  Look at the File System.  

If it is not FAT32, you’ll need to reformat it (make sure you save the contents on the stick first if you want to keep it).

To format, right click the drive letter for your memory stick and select Format.  Choose the FAT32 file system.

If your memory stick is too big, you’ll need to format it to FAT32 using a tool like GUIFormat.

Flash the custom Firmware

After you’ve saved the firmware .bin file to your USB memory stick, you’re ready to flash it.

Eject the stick from your PC and insert it into your TheC64.

Select the wrench icon to open the SETTINGS.

Choose System Information from the options.

If you’ve done everything right, you will see a prompt to install the custom firmware file.

Select Apply.

An on-screen indicator will show progress; don’t worry - there will be multiple indicators.

Upon success, it will reboot your TheC64 system automatically.

Congratulations!  You’ve flashed your custom firmware.

Note: At this point, it is highly recommended that you retrieve the backups made during the firmware flashing process - they are stored at the root of your USB flash drive.  Copy these files off to a secure, safe location - even multiple locations such as cloud storage.

Test Your Games

You’re probably very excited to play your games!  

As you try each one, you’ll probably run into a few issues.  Some common things you’ll find are:

Some issues can be solved by changing which joystick is default (most games run on Port 2, but a surprising number require the controller to be mapped to Port 1) or by turning on True Drive Emulation (aka Accurate Disk option).  Others can be solved by remapping special keys needed by the game to the various buttons on the controller using the Input configuration within the EDIT GAME window.

Return to the tool

To make changes, open TheC64 Maxi Game Tool, select the game and click EDIT.  Archon, for example, must use Joystick Port 1.  While we’re in there, the game needs Function Keys to work - so we’ll map those to A, B and C button.

Make changes to all your games that require them, then follow the Make FW process again and reflash.

If you decide you no longer wish to keep a game, you can select the game and hit DELETE.  A warning will be given before the game is removed.

That does it for the basics, keep reading for some more advanced techniques and processes.

Advanced Techniques

Now that we’ve covered the basics, let’s look at some more advanced things you can do with this tool.

Testing Before Flashing Using VICE

Once you’ve added a game and it appears on the carousel, you can double click the game cover and it will launch the game in the included special version of the VICE emulator (don’t use a newer or different version or you may get unexpected results).

This is exactly how the game will run when selected on TheC64.

During the booting of the game, make notes of the keystrokes (Space, Run/Stop, Y, N, D, H or other special keys you might need to get through intro and trainer.

Determine what keys are needed to actually START the game (F1, F3, F7 etc.) and any special keys you might need during play such as RETURN or SHIFTLOCK.  You can reassign the keys to a button when configuration the inputs in the tool.

If the game doesn’t boot, you can try changing to True Drive Emulation (also known as Accurate Disk in TheC64).

After selecting, reload the game image file via File-> Autostart disk/tape image and try again.

To test the game’s control port, try using arrow keys and Left CTRL to fire.  If your player doesn’t control properly, change to Port 1.  Open Settings->Joystick settings.

Change Port 1 to Keyset A and Port 2 to None.

Hit OK and try to move the character around now.  Make a note that you need to update the input configuration for the game.

Close the VICE window when you’re done and update your game settings based on the new information you’ve discovered.

Using a VICE Snapshot As Game Image

Instead of booting a game from scratch and going through intros, trainers, crack screens and more - you can try to create a “snapshot” of the game once it has loaded past all those things.

Look at this example comparing a long standard load versus using a snapshot for the game Archon.

https://www.youtube.com/watch?v=ZnOmqzuVhjc

Pretty impressive, right?  Not every game works using this technique, but probably 95%+ will.

In the TheC64 Maxi Game Tool, find a game you have already added that has a long loader or lots of crack screens and trainers.  Double click the cover to launch the game in the VICE emulator.

Get to the point where you want to snapshot the game (such as the main title screen - after the loading is done) and select Snapshot->Save Snapshot image.

If you believe the game will return to the disk for loading levels or otherwise accessing the disk, then check the box Save currently attached disk images before saving the .VSF file.

Go back and edit your game, substituting the VSF for the game image.

Hit OK and rebuild your firmware file.  Flash the new firmware to your TheC64 system.  Test your game.

Multi-Game Easy Cart (.CRT) Images

TBA

Starting With An Empty Carousel

After you’ve been building your dream carousel for a while, you may want to start fresh with an empty carousel.

Note: Companion video available here - https://youtu.be/18Kd51a16K8

The single best way to do this is to simply download TheC64 Maxi Game Tool again, extract it into another location and run the program again for the “first time”.  The application stores all files relative to the main EXE, so you can really have as MANY copies of TheC64 Maxi Game Tool as you like.

If you are sure you want to start over, just rename the GAMES folder inside the tool’s folder.

Rename it to “games-old” or “games-bak”; or just delete it.

The next time you run TheC64 Maxi Game Tool, it will look like a first run - but your default joystick settings, window positions, etc will be still respected.

Restoring Original Games (Clean)

If you ever want to put the games back you wiped off your TheC64 - either the original games that were there - or a games backup you took during firmware flashing, you can pretty easily do so with TheC64 Maxi Game Tool.

Note: Companion video available here - https://youtu.be/18Kd51a16K8

First, locate your games_backup_YYYY.MM.DD-HH:mm_zz.tar file that you created as part of your first backup.  You DID perform a backup on your TheC64 device before deleting the games, right?

If you have trouble locating it, it should be right next to your nand files you also backed up (prefixed with nanda_backup and nandb_backup).

Once you have that file, follow the instructions for Starting With An Empty Carousel to get an empty database.

Now click Import and select Yes when prompted.  Select your games_backup file.

You may get a warning message:

You may select Yes and the process will continue.

Note: You may end up having an issue with “Nobby”.  If so, please come to the Discord for help.

In a few moments, you will see your carousel restored.

At this point, you can go ahead and build this carousel into a firmware .bin file and flash it like you would any other firmware file.

Your TheC64 has been restored.

You could also use the Merge method to retrieve your original games and merge them with your custom carousel.

Merging Games

It is completely possible to merge two different game backups (including the original backup you took from your TheC64 when you wrote your first custom firmware).

Note: Companion video available here - https://youtu.be/18Kd51a16K8

Importing OVERWRITES existing games with the merged versions.  If you have created your own copy of Jumpman, for example - and you merge your original game backup from your TheC64 - your version will be overwritten by merging one.  In the screens below, the left screen shows my custom version of Jumpman.  On the right, post merging with my original TheC64 games file.

With that warning in mind, let’s do our merge.

Open TheC64 Maxi Game Tool with your current custom carousel filled with your games.

Now click Import and select Yes when prompted.  Select your games_backup or custom_games backup file.

You may get a warning message:

You may select Yes and the process will continue.  You can always restore the BASIC programming icon when you create your firmware.

In a few moments, you will see your carousel has merged the existing games with the games in the backup.

At this point, you can go ahead and build this carousel into a firmware .bin file and flash it like you would any other firmware file.

Frequently Asked Questions

These are common questions we’re asked.  Got one?  Send it here.

Can the custom carousel use multi-disk games?

Unfortunately, no.  Multiple disk scenarios require the ability to “change disks” mid-game which is easy in an emulator - but there is no functionality for doing so within the carousel. You’ll need to use the “usb loader” functionality and do the weird work around to make multi-disk games work.  It can be done - just not using the carousel or this tool.  You can see an example of this using Seven Cities of Gold in this video.

Your other option is to try and find a “.crt” edition of the game - which means someone took the time to create a special, patched version of the multi-disk game that runs from an Easy Flash cartridge on a real Commodore 64.  Check this zip archive (has a lot) or search the internet for “c64 .crt games”.

Can I keep the built in games and add my own instead of wiping them all out?

Yes.  But it is sort of a roundabout way.  Create your custom carousel first with all your games (or at least 6).  Create the firmware as outlined in this documentation, but do not select Delete All Games First as part of your first firmware flash.  Use these options when building your first firmware file:

This will backup your existing, built-in games and your NAND  - then insert your custom games on top of the existing carousel games.  This is a “merge” operation, so if you have “your” versions of games (like Jumpman) in your custom carousel, it will wipe out the built in version.  See Merging Games.

Why would I replace built-in games with the same game?

In my videos, I talk about replacing Jumpman with my own version.  Why would someone want to do that?

The games included within the original carousel are often altered with changes to speed or presentation from the original game image.  Sometimes this is to get around multi-disk limitations.

Plus, I want my own selected custom box and/or screenshots and metadata.  Bottom line - if you’re satisfied completely with the built-in version of the game, then there is no reason to replace it.

Can we have other genres added to the Tool’s drop down?

At this point, I do not believe that is possible.  When creating an entry for the carousel, we’re at the mercy of what TheC64 will accept.  You can’t just fill in the blanks with a new one; the tool uses a code for the full name like “shoot” to represent “Shoot’em Up”.  You can’t add abbreviations for genres that aren’t available in the machine’s base operating system.

Does the carousel support .D81 files?

I have submitted this question to the developer.  At this point, while VICE will run one properly, TheC64 doesn’t appear to be.  We have tried straight .d81 files, renaming .d81->.d64 and making a .VSF with the .D81 captured with the snapshot; nothing appears to be working.

The save/highscore/writes aren’t working on games in the carousel.

Most games (if not all) being used by the carousel are VICE snapshots; that means every time you launch the game, you’re not “loading it from disk” - you’re starting from the same place as the game was initially captured - so no, nothing “saved” to the disk during play is kept.

My recommendation is to use TheC64’s built in save/snapshot system for games that you wish to retain the information on between game plays.