Skip to content

Commodore 64

Overview

The Commodore 64 application is an emulator for the Commodore 64 computer.

Vallation by Jason Kelk

JiffyDOS BIOS Files

By default, loading of Commodore 64 disks is quite slow as it mimics the original hardware for maximum compatibility. To significantly increase loading speeds, JiffyDOS BIOS files can be utilized. The following table lists these files which can be specified globally within the feed (See the Feed Properties Dialog and Commodore 64 Feed Properties sections).

The use of JiffyDOS can be disabled on a game-by-game basis if there are compatibility issues.

File Hash (MD5) Description
JiffyDOS_C64.bin be09394f0576cf81fa8bacf634daf9a2 JiffyDOS C64 Kernel
JiffyDOS_1541-II.bin 1b1e985ea5325a1f46eb7fd9681707bf JiffyDOS 1541 drive BIOS
JiffyDOS_1571_repl310654.bin 41c6cc528e9515ffd0ed9b180f8467c0 JiffyDOS 1571 drive BIOS
JiffyDOS_1581.bin 20b6885c6dc2d42c38754a365b043d71 JiffyDOS 1581 drive BIOS

Default Controls

The default keyboard and gamepad mappings are listed in the tables below. It is important to note that these are merely the default settings and can be modified on a game-by-game basis.

Keyboard

A computer physical keyboard maps to the Commdore 64 keyboard using a "positional" mapping approach (the computer keyboard maps closely to the actual location of Commodore 64 keys).

The easiest way to determine these mappings is to use the test program below. Click on the test program, and press keyboard keys to see how they map to the Commodore keys.

It is important to note that keyboard-based gamepad input should be disabled to allow access to all keys (otherwise, some keys will be utilized for joystick input).

The following table contains the default keyboard joystick mappings.

Name
Keys
Comments
Move
Fire 1
Fire 2

Gamepad

The default gamepad mappings are listed in the table below.

Name
Gamepad
Comments
Move  or 
Left Fire
Right Fire
Space Bar
Run/Stop
F1
Return Key Not available for Xbox and not recommended for iOS (see alternate)

Press the Menu (Start) Button.
Return Key
(Alternate)
 and  Hold down the Right Trigger and click (press down) on the Right Thumbstick.
Show Virtual Keyboard Not available for Xbox and not recommended for iOS (see alternate)

Press the View (Back) Button.
Show Virtual Keyboard
(Alternate)
 and  Hold down the Right Trigger and click (press down) on the Left Thumbstick.

Standard webЯcade mappings to display the pause screen.

Name
Gamepad
Comments
Show WebЯcade Pause Screen  and  Not available for Xbox and not recommended for iOS (see alternate 3 or 4)

Hold down the Left Trigger and press the Menu (Start) Button.
Show WebЯcade Pause Screen
(Alternate)
 and  Not available for Xbox and not recommended for iOS (see alternate 3 or 4)

Hold down the Left Trigger and press the View (Back) Button.
Show WebЯcade Pause Screen
(Alternate 2)
 and  Not available for Xbox and not recommended for iOS (see alternate 3 or 4)

Hold down the X Button and press the View (Back) Button.
Show WebЯcade Pause Screen
(Alternate 3)
 and  Hold down the Left Trigger and click (press down) on the Left Thumbstick.
Show WebЯcade Pause Screen
(Alternate 4)
 and  Hold down the Left Trigger and click (press down) on the Right Thumbstick.

On-screen Controls

On-screen Controls

The Commodore 64 application includes a set of on-screen controls which are detailed below.

Button Description
Virtual Keyboard Displays the Virtual Keyboard.
Toggle Gamepad Keyboard Mode

Toggles whether or not the keyboard should be used for joystick input. When disabled, the full keyboard is used to map to the Commodore 64 keyboard. When enabled, a subset of the keyboard keys are used for joystick input.

NOTE: This button is only visible if a physical keyboard key has been pressed.

Pause (Show Pause Screen) Displays the webЯcade pause screen.

Virtual Keyboard

The Commodore 64 application includes a virtual keyboard that can be utilized on devices that don't have a physical keyboard readily available (mobile, Xbox, etc.).

Display of the virtual keyboard can be toggled via the "Virtual Keyboard" button within the On-screen controls.

Special Keys

The virtual keyboard includes the following "special" keys.

Key Description
Switch to Letters Mode Pressing this key will switch to the Letters Mode of the keyboard.
Switch to Numbers Mode Pressing this key will switch to the Numbers Mode of the keyboard.
Switch to Symbols Mode Pressing this key will switch to the Symbols Mode of the keyboard.
Change Keyboard Position

Toggles between the various keyboard positions (center, bottom, etc.).

This key is available via the Numbers Mode of the keyboard.

Letters Mode

This mode primarily contains letters.

Virtual Keyboard: Letters Mode

Numbers Mode

This mode primarily contains numbers, the arrow keys, and a subset of symbols.

Virtual Keyboard: Numbers Mode

Symbols Mode

This mode primarily contains symbols, the arrow keys, and the HOME and RESTORE keys.

Virtual Keyboard: Symbols Mode

Pause Screen

The Commodore 64 application's pause screen provides options to access the Commodore 64 Application Settings.

Pause Screen

Commodore 64 Settings

The Commodore 64 application includes a custom settings dialog.

To access these settings, display the "Pause" screen and select the "C64 Settings" option (See screenshot above).

C64 Settings (Session)

C64 Settings (Session only)

The Commodore 64 Application's "settings" tab is detailed below. It is important to note that the settings on this tab are Session only meaning they will not persist between gaming sessions.

Field Description
Swap controllers Swaps the controller ports.
Current Media Displays the current media (Disk, tape, cartrdige, etc.). This control is used to swap to another disk of a multi-disk game, etc.

Display Settings Tab

Display Settings

The Commodore 64 application's "Display Settings" tab is detailed below.

Field Description
Screen size The screen size to use when playing a game.

Options include:
  • Native : The application's native resolution
  • 16:9 : Widescreen resolution
  • Fill : Fill the entire contents of the screen
Force bilinear filter

Forces bilinear interpolation on the output display. Enabling bilinear filtering produces display output where pixels are not as sharp and pronounced.

On-screen controls Toggle whether the on-screen controls should always be displayed, or only when keyboard, mouse, or touch is detected.

Virtual Keyboard Settings

Virtual Keyboard Settings

The Commodore 64 application's "Virtual Keyboard Settings" tab is detailed below.

Field Description
Transparency

Toggles the degree of transparency the virtual keyboard should have.

A higher degree of transparency allows more of the game to be visible through the keyboard (which may make the keyboard itself less visible).

Saving Changes to Media

This application supports persisting changes to a game's media (disks, cartridge-based ram) into the browser's local storage or optionally to cloud-based storage.

Feed

This section details how Commodore 64 application instances can be added to feeds.

Type

The type name for the ScummVM application is retro-commodore-c64.

Note

The alias commodore-c64 also currently maps to this application. In the future, the commodore-c64 alias may be mapped to another Commodore 64 application (different emulator implementation) if it is determined to be a more appropriate default.

Feed Properties

The table below contains global Commodore 64 feed properties. These properties must be specified in the props object of the feed's Feed Object.

Property Type Required Details
commodore8bit_bios Array of URLs No

An optional array of URLs to Commodore 64 BIOS files.

See JIffyDOS BIOS files.

Item Properties

The table below contains the properties that are specific to the Commodore 64 application. These properties are specified in the props object of a feed item.

Property Type Required Details
uid String Yes

A unique identifier for the particular game (must be unique across all Commodore 64 games).

This identifier is primarily used to associate persistent state with the game.

media Array of URLs No

An optional array of URLs that point to the media (disks, tapes, cartridges, programs) for the game.

swap Boolean No Whether to swap the controller ports.
region Numeric No Sets the region of the computer.
(defaults to "auto")
  • 0 : (auto)
  • 1 : NTSC
  • 2 : PAL
saveDisks Numeric No

The count of "save disks" to create for the game.

Save disks can be used in a variety of ways (save programs that are created, save disks for the game being played, etc.).

Defaults to 1 save disk.

disableAutoload Boolean No

Whether to disable auto-loading of the Commodore 64 media (disk, tape, etc.). If disabled, boots to the Commodore 64 prompt.

(Defaults to false, auto-loading is enabled)

jiffydos Numeric No

Whether to enable the use of JiffyDOS BIOS files (if they are present).

  • 0 : (auto)
  • 1 : Disabled

Default to auto, which will utilize the JiffyDOS BIOS files if they are present.

disableTrueDriveEmulation Boolean No

Whether to disable true drive emulation (TDE). True drive emulation mimics the behavior of original Commdore disk drives, at a significantly reduced speed.

Disabling true drive emulation significantly increases loading speeds, but may result in compatibility issues.

Utilizing JIffyDOS BIOS files is an alternative to disabling true drive emulation with the added benefit of much better compatibility.

(Defaults to false, true drive emulation is enabled)

zoomLevel Numeric No A numeric value indicating how much the display image should be zoomed in (0-40).
ramExpansion Numeric No

The amount of RAM to add to the computer.

  • 0 : (none)
  • 1 : 128kB (1700)
  • 2 : 256kB (1764)
  • 3 : 512kB (1750)
  • 4 : 1024kB
  • 5 : 2048kB
  • 6 : 4096kB
  • 7 : 8192kB
  • 8 : 16384kB

Defaults to 0, no RAM expansion.

mappings Map of Strings (key-value pairs) No

Game-specific mappings of Commodore 64 keys and joystick controls to the gamepad.

The simplest way to determine these mappings is by creating a Commodore 64 item in the Feed Editor and exporting it.

The following is a simple example of a set of mappings. The key is the gamepad controller button and the value is the Commdore 64 key or joystick control that it is mapped to.

{
    start": "return",
    "a": "fire1",
    "b": "fire2",
    "y": "space",
    "lb": "runstop",
    "rb": "f1"
}

Example

The following is an example of a complete feed that consists of a single Commodore 64 application instance (type value of commodore-c64). The media property contains a single URL that points to the excellent homebrew game Vallation by Jason Kelk. The uid property value contains a unique identifier for this specific game (must be unique across all Commodore 64 games).

{
  "title": "Commodore 64 Feed",
  "props": {},
  "categories": [
    {
      "title": "Commodore 64 Games",
      "items": [
        {
          "title": "Vallation",
          "type": "commodore-c64",
          "props": {
            "media": [
              "https://raw.githubusercontent.com/webrcade/webrcade-default-feed/main/content/c64/vallation_16k.zip"
            ],
            "uid": "d7c73cc9-5182-4b58-b7b8-f2e7b58bf394"
          }
        }
      ]
    }
  ]
}

This example can be tested by adding a feed with the following URL within the webЯcade player:

https://tinyurl.com/sample-c64-feed

References

Back to top