Commodore 64
Overview
The Commodore 64 application is an emulator for the Commodore 64 computer.
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
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.
Numbers Mode
This mode primarily contains numbers, the arrow keys, and a subset of symbols.
Symbols Mode
This mode primarily contains symbols, the arrow keys, and the HOME
and RESTORE
keys.
Pause Screen
The Commodore 64 application's pause screen provides options to access the Commodore 64 Application Settings.
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)
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
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:
|
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
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")
|
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 |
jiffydos | Numeric | No | Whether to enable the use of JiffyDOS BIOS files (if they are present).
Default to |
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 |
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.
Defaults to |
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
|
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