View Page Source

Back to Page
Revision 24 (current)
Edited by DrD2k9 on 2/27/2024 5:15 PM

Released and approved for TASVideos submissions

The commodore 64 core is written primarily by [user:SaxxonPike] with substantial contributions by [user:Alyosha]

Currently disk, tape and cartridges are supported.

C64Hawk is written in C# and licensed as MIT

%%TOC%%

!!! Introductory Guide to Commodore 64 TASing in BizHawk

C64 Tasing is a bit more complicated than cartridge/optical disc based systems which automatically load a ROM from power-on.

Most of the time (but not always) some form of syntax is necessary to properly load the game.  This syntax will vary depending on the type of media on which the game's data is stored.  More details on this later.

!! Media Format

There are three media formats that the C64 commonly used for games: Disks, Tapes, Cartridges.

Common image files of these formats are as follows follows:

*Recognized by BizHawk
**.d64 – disk image
**.g64 – also a disk image (sometimes used for games with disk format based copy protection)
**.tap – tape image
**.crt – cartridge image
**.prg – commodore 64 program file

*NOT Recognized by BizHawk, but may be by other emulators
**.t64 – another tape image (data is stored differently than a .tap file)
**.wav – audio file that may be usable as a tape image by some emulators

!! Choosing a Game Format

It's common to find a particular C64 game available in more than one of the above formats.  

For TASvideos purposes, maintaining as much authenticity as possible is still a ideal goal in choosing from which format to TAS.  ''In general, use an image format on which the game was officially released when TASing for submissions.''%%%
If a game was released on multiple formats, ideally try to use one that loads the fastest (see below); this is a guideline not a hard rule. 

*__Cartridge:__ In general use a cartridge version if an official cartridge release exists.  These will load upon power-on similar to other cartridge based systems like the NES.

*__Disk/Tape:__  Generally disks load faster than tapes of the same game, so use a disk image if the game was released on disk.  Try to only use a tape image if it was the only release format.

*__.PRG file:__ A .prg file does not represent a particular media format that was used on the C64. Instead, it is the C64 program data that would itself be stored on a Disk/Tape.  As BizHawk treats mounting/opening a .prg file as if it was a disk image, we allow use of .prg files for TASing if a good image is otherwise unobtainable in other formats.

!!Cracked Versions/Trainers
Sometimes original images of C64 games aren't readily obtainable.  In these cases, TASvideos does allow cracked versions of C64 games when TASing.  

Unfortunately, many cracked versions of games also have added trainers included which allow for setting cheats.  We prefer game versions without such trainers be used over ones that have them included. As such, there are a few situations where the general format guidelines above can be disregarded in order to minimize submissions/publications of runs with trainers:
*The game was only released on one media format, but obtainable images of that format all contain trainers.
**If a different media format or .prg file exists without the trainer, use one of these instead of the image with the trainer.
*The game was released on both disk and tape formats but only the slower tape format is available without a trainer.
**Use the slower loading format to avoid the trainer.
*The game was released on any/all formats, but the only obtainable media images are all trained.
**If a .prg exists without the trainer use it instead of a media format image.

!! Region (NTSC vs. PAL)

The C64 system itself saw both PAL and NTSC releases with the necessary hardware differences to work in a particular region.  While each C64 was designed for one region or the other, the C64 system itself did not have a region lock as is common with console systems like the NES.

Because of this, software from one region may run equally well on a system of the other region with the only notable difference being the speed at which the software runs.  The NTSC version of the C64 had a faster processor than the PAL version. This in conjunction with the higher screen refresh rate of NTSC tends to make games/software run slightly faster on NTSC systems than it does on PAL systems.

Due to this ability to use some software in either region regardless of where the software was created/released, as well as lack of reliable region information for a given game image, [MovieRules#GameplayMustBeAccurateToHardware|TASvideos generally allows] submissions of C64 games to be run using NTSC sync settings.  This usually results in a faster run.

The exception to this guideline is that some games/software were specifically coded to match a particular region's CPU clock and/or screen refresh rate.  Trying to use these games in the wrong region may introduce additional glitches or may simply fail to work at all in the wrong region.  In such cases, TAS the game in the correct region.

!! Setting Up the TASing Environment

#Open BizHawk
#Ensure you have the appropriate C64 firmwares set in the menu Config > Firmwares
#Open the game you want to TAS
#Click the C64 > Settings menu
#Select the "Sync Settings" tab
#Set VIC Type to the appropriate region (usually NTSC) %%% %%% [https://files.tasvideos.org/common/Wiki/Bizhawk/C64/sync-settings.png] %%%
#The other settings can usually be left at their defaults.
#If any sync settings are changed; reboot the core by pressing Ctrl-R or clicking emulation > Reboot Core.
#Open TAStudio (optionally)
#TAS your game!

!! Loading Syntax

Each media type requires different loading syntax.

__NOTE:__ C64 has {{Left Shift}} and {{Right Shift}} keys mapped in BizHawk to {{LeftShift}} and {{RightShift}} respectively. But the {{Shift}} keys on you actual keyboard may both be recognized as __just__ {{Shift}}, in which case you'll need to remap C64 {{Shift}}s to that.

Full keyboard layout for the reference:
* https://vice-emu.sourceforge.io/vice_2.html#SEC15

Full list of C64 BASIC commands:
* https://www.c64-wiki.com/wiki/BASIC

! Cartridge

None.  These will boot automatically into the game when opening them.

! Disk

Type {{L}}{{O}}{{A}}{{D}}{{"}}{{*}}{{"}}{{,}}{{8}}{{,}}{{1}} and hit {{RETURN}}
* A shortcut for {{L}}{{O}}{{A}}{{D}} can be performed using {{L}}{{⎾}}, where {{⎾}} is {{SHIFT}} + Letter {{O}}
* {{"}} is {{SHIFT}} + {{2}}
* {{*}} is mapped to {{]}} by default
* {{RETURN}} is mapped to {{Enter}} by default
* The {{,}}{{1}} at the end of the loading syntax is optional, but allows some games to run automatically by loading in at an address specified by the program.
**If this is not used, the program is loaded in as a BASIC program and will need run manually (See below).
**Even with the {{,}}{{1}}, some programs will not automatically start and will need run manually (See below).

The loading syntax (using the shortcut method) looks like this on-screen:

[https://files.tasvideos.org/common/Wiki/Bizhawk/C64/disk-load-syntax.png]

__RUN Command__%%%
When a game does not automatically run after loading, an additional {{R}}{{U}}{{N}} command is needed after a secondary {{READY.}} prompt appears.

Here type {{R}}{{U}}{{N}} and hit {{RETURN}}
*Sometimes further loading will then take place before the game actually becomes playable, though additional syntax input after a {{R}}{{U}}{{N}} command is typically not neccesary to get into the game.
* A minor shortcut for {{R}}{{U}}{{N}} can be performed using {{R}}{{╭}}, where {{╭}} is {{SHIFT}} + Letter {{U}}

This shortcut looks like this on-screen:

[https://files.tasvideos.org/common/Wiki/Bizhawk/C64/run.png]

! Tape

Press {{SHIFT}} + {{RUN/STOP}} (mapped to {{Caps Lock}} by default)

*While tape format games often start automatically after loading, occasionally a {{R}}{{U}}{{N}} command will still be necessary after the initial loading.

!! TL;DR

For submissions, TAS the game (regardless of its region of release) using NTSC sync settings unless the game doesn't run properly....then use PAL settings.

For image format, try to use an image format that matches an official release media format.  Loading speed follows this order: Cartridge is fastest, then Disk, then Tape.  Use a different format if necessary to avoid a trainer.

Use appropriate syntax to load and run the game.  If using disk or tape format...''make yourself a milkshake while you wait for the game to load.''

__Enjoy C64 TASing!__