CCS64 V3.9.2
30 August 2015

(C) 1995 - 2015 PER HÅKAN SUNDELL.
(C) 1995 - 2015 COMPUTERBRAINS.
All rights reserved. 30 August 2015.

Disclaimer/h2>

This program is released as SHAREWARE and is therefore freely distributable, although you may not charge anyone for more than the actual cost of the distribution. The meaning of SHAREWARE is that, if you use a program regularly, you should strongly consider registering it. When you register a program, it means that you are actually buying it.

The installation and use of this product is done completely under your own responsibility. Under no circumstances should the producers of this product be held responsible for any damages or costs that this product in any way could cause you or your equipment.

 

Introduction

Welcome to the world of CCS64. This a software emulator of the Commodore 64 computer. You may say this is not the first program trying to emulate the C64, but this is planned to be the finale C64 emulator. I have worked for several years to create this software, studying the C64 into its inner-most secrets. It should run perfectly with all games or demos.

 

Registration

As this is SHAREWARE, if you like and use this program regularly, you should register it. At the moment the register fee is 30 USD, or an equivalent amount in EURO, GBP, or SEK. Credit cards or cheques CANNOT be used. Please consult your local Post Office or bank for proper ways of sending money to Sweden.

To register, send your cash, together with your name, address, and/or e-mail address, to:

Per Håkan Sundell
Box 916
SE-501 10 BORÅS
SWEDEN

Or use the on-line registration utility, called Kagi, register.exe .

Or you can transfer the money directly to my bank account. Please pay via Euro-Giro or Swift to the Sundell Consulting account number 607 85 52-4 with Postgirot Bank AB (publ) S-105 06 Stockholm, Sweden. Swift address is: PGSI SESS.

You can also register on-line using credit card at http://order.kagi.com/?QRN .

The product will be continously updated as long as there are any features or bugs that need to be fixed.

 

System Requirements

WIN32 version:

Supported operating systems:

Hardware requirements:

Additional support:

 

Information

Emulation compatibility:

C64 main console:

1541 disk drive:

C2N cassette recorder:

Printer equipment:

C64 expansion port equipment:

C64 joystick port equipment:

1541 disk drive expansion:

Combinations:

User Interface:

Instructions

Starting

WIN32 version:

To start the program just run the file named CCS.EXE.

Using

To do anything meaningful, you should got the textual menu system, by pressing the [F9] key. Some options are also implemented in the graphical menu system. The textual menu system is the main menu system and has all options within it (and is here-after referred to as 'the menu').

To use PC joysticks, you have to calibrate them first. Calibration is selected from the Options/Input sub-menu within the menu.

If you have any problems with the settings and want the factory-default settings back, just delete the 'C64.CFG' configuration file in your CCS64 installation folder, and it will be re-stored back to default values, next time you run CCS64.

Menu

To use the menu, press the [F9] key, and then use the cursor keys to select different options. Use the [Right Cursor] or [Enter] keys to enter a choice. Use the [Escape] key to go back to the previous menu from within a sub-menu. Use the Up/Down Cursor keys to change the selection. Use the [Left/Right Cursor] keys to change a value. Where specified at the bottom, you could also use the Functions keys. When a selection can by applied, the [Enter] key can also be used.

In a directory listing you could also use the [Page Up/Down] keys to scroll faster through the listing. To get directly to the first file-name, which starts with a specific letter, you can press [CTRL] + [Letter].

In some (sub-)menus, you could also select an option by pressing the first letter in the option name, like [S] for the option "Select Disk".

Keyboard

The keyboard is emulated almost like a real C64 keyboard and follows the C64 keyboard layout, except for these keys:

C64 key

Emulation key

C= (Commodore) [Left CTRL]
RUN/STOP [Escape]
RESTORE [Page Up]. Observe that you must HIT this key like on a real C64!
CLR/HOME [Home]
Arrow Up [Delete]
Pound [Insert]
Control [Tab]

The user interface uses the following keys during the emulation session.

Key

Description

[F9] Control menu. Always continues from the sub-menu where you left.
[F10] Control menu.
[F11] Restores a frozen emulator state with the file-name "freeze.c64".
[F12] Freezes (saves) the emulator state with the filename "freeze.c64".
[Print Screen] Captures the screen as a 16-bit color image.
[Scroll Lock] Reinitialize screen mode. Sometime Windows manages to distort colors when switching between programs.

The user interface uses the following fast-keys during the emulation session and from the menu.

Fast-Key

Description

[ALT] + [8] Menu for 1541 device 8. Press twice for Status Menu.
[ALT] + [9] Menu for 1541 device 9. Press twice for Status Menu.
[ALT] + [0] Menu for 1541 device 10. Press twice for Status Menu.
[ALT] + [+] Menu for 1541 device 11. Press twice for Status Menu.
[ALT] + [1] Menu for Tape device 1. Press twice for Status Menu.
[ALT] + [SHIFT] + [8] Status Menu for 1541 device 8.
[ALT] + [SHIFT] + [9] Status Menu for 1541 device 9.
[ALT] + [SHIFT] + [0] Status Menu for 1541 device 10.
[ALT] + [SHIFT] + [+] Status Menu for 1541 device 11.
[ALT] + [SHIFT] + [1] Status Menu for Tape device 1.
[ALT] + [R] Re-set (Soft).
[ALT] + [SHIFT] + [R] Re-set (Hard).
[ALT] + [O] Options Menu.
[ALT] + [V] Video Menu.
[ALT] + [I] Input Menu.
[ALT] + [M] MC (Machine Code) Monitor.
[ALT] + [E] Special Menu.
[ALT] + [S] Sound Menu.
[ALT] + [C] Cartridge Menu.
[ALT] + [T] State Menu.
[ALT] + [F] Cartridge Freeze button.
[ALT] + [P] Pause on/off. In pause mode, you can press [I] to see the next interlaced frame, or [N] to step between frames.
[ALT] + [SHIFT] + [P] PAL TV filter emulation on/off.
[ALT] + [Q/X] Quit.
[ALT] + [F1] Save 16-bit color screen-shot.
[ALT] + [SHIFT] + [F1] Save PAL/RGB color screen-shot.
[ALT] + [F2] Save 256-bit color screen-shot.
[ALT] + [F3] Toggle Speed (100 - 500 %).
[ALT] + [F4] Quit.
[ALT] + [F5] Insert next .D64/.G64 disk image into device 8.
[ALT] + [F6] Insert previous .D64/.G64 disk image into device 8.
[ALT] + [F7] Select next input device/mode in C64 game port 1.
[ALT] + [F8] Select next input device/mode in C64 game port 2.
[ALT] + [F10] Exchange (switch) input device/mode settings between C64 game port 1 and 2.
[ALT] + [F11] Loads a frozen emulator state from selectable file-name.
[ALT] + [F12] Saves a frozen emulator state to selectable file-name.
[ALT] + [SHIFT] + [F2] Screen-shot current text menu display.
[ALT] + [SHIFT] + [F3] Toggles the warp speed (maximum emulation speed) option.
[ALT] + [K] Insert special C64 key-stroke.
[ALT] + [SHIFT] + [S] Toggles the recording of sound to a WAV file.
[ALT] + [SHIFT] + [V] Toggles the recording of video+sound to an AVI file.

The default joystick emulation in keys is as follows:

C64 Joystick Port 1

Key

Up [Keypad %]
Down [Keypad 5]
Left [Keypad 7]
Right [Keypad 9]
Fire button 1 [Right Alt] ([Alt Gr])
Fire button 2  
Fire button 3  

C64 Joystick Port 2

Key

Up [Keypad 8]
Down [Keypad 2]
Left [Keypad 4]
Right [Keypad 6]
Fire button 1 [Right CTRL]
Fire button 2  
Fire button 3  

  

Multi-Play Over Internet

From the main menu, enter the sub-menu of Device 1 or 1541 Device 8-11. Enter the directory that contains the .T64, .D64, or .PRG files that you want to be able to use for multi-play over Internet. Use the [Cursor Up/Down] keys to high-light the "." directory, then press the [F3] key. Using the Kaillera client, you can now connect to a server, and from there, either create a new game or join in to an existing one. Remember to not start your created game until enough people have joined. If you join an existing game, the game will start as soon as the game creator has started. To be able to join an existing game, you have to have started the multi-play menu from a directory which contains exactly the same file as the one that the game creator has.

During the multi-play session, no menu setting can be reached. Therefore, remember to set correct settings for input devices etcetera, before entering the multi-play menu. The multi-play session is ended by pressing either the [F9] or [F10] keys.

The following fast-keys work and are distributed to all players:

[ALT] + [F5] Insert next .D64/.G64 disk image into device 8.
[ALT] + [F6] Insert previous .D64/.G64 disk image into device 8.

The following fast-keys work and are only local to the current player:

[ALT] + [F7] Select next input device/mode in C64 game port 1.
[ALT] + [F8] Select next input device/mode in C64 game port 2.
[ALT] + [F10] Exchange (switch) input device/mode settings between C64 game port 1 and 2.

Tape Device Noise - Raw-Tape (TAP) Files

You can listen to the tape drive noise that would be generated whilst loading raw-tape (TAP) files. This can be fun or just help pass the time away! Simply perform the following steps:

C64 Key-Strokes

This useful feature allows you to easily type anything that you could have typed on a real C64 keyboard. Many users find it hard sometimes to find a particular C64 character or C64 character combination, because these may reside on a completely different place on the PC keyboard. By pressing [ALT] + [K], then using the cursors keys, you can choose between every possible C64 key-stroke, press the [Enter] or [Space] keys, and then the key-stroke will be automatically typed. This saves you pressing long-winded combinations of keys on the PC keyboard, in order to emulate the pressing of a special key on the equivalent C64 keyboard.

Automatic Joystick Detection (Experimental)

This feature has nothing to do with real Joysticks. It is all about the problem that some C64 games use Joystick Port 1 and some others use Joystick Port 2. This feature tries to detect at run-time which Joystick Port the running program is currently using. In other words, you don’t have to keep pressing [ALT] + [F10], in order to switch Joystick Ports - this is done automatically. This feature also avoids the interference between joysticks and the keyboard on the C64 – if the game only uses the keyboard, joystick input (real or emulated) to the C64 is disabled. In the Special... sub-menu, ensure that the Joystick Detection option is set to On.

Additional Windows/Graphical Enhancements

The following additional enhancements have been made that take advantage specifically of the Windows/DirectX environment/functionality and other graphical techniques:

MC (Machine Code) Monitor

The native MC Monitor can be invoked either from the Menu or by using the fast-key. As the monitor is native it doesn't affect the current emulated program in any way, all memory is untouched - unless you do a change yourself, that is. The monitor is exited with the Escape key. The following commands are supported:

Command syntax

Description

A <xxxx> <mnemonic> Assemble. Example:
A 1000 LDA #$09
BANK [<xx>] Bank change 0-7 for different C64 MMU maps, 8-11 for the 1541 device.
B Show break-points.
BA <xxxx>[-<yyyy>] [RWX] [<xx>[-<yy>]] Adds a break-point at the specified address [xxxx] or within the specified address range [xxxx-yyyy]. It is triggered when the address [xxxx] or anywhere within the address range [xxx - yyyy] is Read from, Written to, or Executed. Default is any access triggers the break-point. Example:
BA D012 W F7-FF
- This will only trigger the break-point whenever a program writes a value between F7 to FF to address D012.
BR <xx> Remove the specified break-point. Example:
BR 0
- This will remove the first break-point.
C <xxxx> <yyyy> <zzzz> Compare memory.
CD [<path>] Changes directory to the specified path or prints the current working directory if no path is specified. MS-DOS path-names can be used and Long path-names can be used (if the Long path-name is enclosed in " signs). The / sign can be used instead of the \ sign.
D <xxxx> [<yyyy>] Dis-assemble.
DIR [<path>] Displays the contents of the directory path specified or prints the contents of the current working directory if no path is specified. MS-DOS path-names can be used and Long path-names can be used (if the Long path-name is enclosed in " signs). The / sign can be used instead of the \ sign. Directory listings can be interrupted by pressing <ESC>.
F <xxxx> <yyyy> <xx> ... Fill memory with Hex values or ASCII strings. Example:
F 1000 2000 "HELLO" 0D 0A
HD <xxxx> <yyyy> <string> Hunt dis-assembly output textually for patterns. Wild-cards are expressed with *. Example:
HD A000 B000 "LDA*$*Y"
H <xxxx> <yyyy> <xx> ... Hunt memory for Hex values, ASCII and wilds (XX). Example:
H 1000 2000 10 XX "LEVEL"
I <xxxx> [<yyyy>] Interpret memory as ASCII.
L "<filename>" <xxxx> [<yyyy>]  Loads memory from binary file (not .prg). Example:
L "Hack" 0800 1000
LP "<filename>" <xxxx> [<yyyy>]  Loads memory from binary program file (.prg). Example:
LP "Hack.prg"
M <xxxx> [<yyyy>]  Shows memory as Hex values.
P <xx>  Printer re-direct. Re-directs output of next D or M commands to the specified printer device (4-7).
Q <xxxx>     Quick-traces until the PC reaches a certain address.
R <reg> <xx..> ...    Register. Changes the contents of the named CPU register. Example:
R PC FCE2 A 0
- This will set the PC to FCE2 and A to 0.
S "<filename>" <xxxx> <yyyy>     Saves memory to binary file (not .prg). Example:
S "Picture" 2000 3F40
SP "<filename>" <xxxx> <yyyy>     Saves memory to binary program file (.prg). Example:
SP "Demo.prg" 2000 3F40
T <xxxx> <yyyy> <zzzz>     Transfer memory. Copies the contents of a memory region into another.
W [<xxxx>] Traces with single-step.
X Exits monitor.
: <xxxx> <xx> ... Changes memory from Hex values.
, <xxxx> <xx> ... Changes memory from dis-assemble Hex values.
* [<xx>] Bank change 0-7 for different C64 MMU maps, 8-11 for the 1541 device.
? <expression> Evaluate a numeric expression and display the result in decimal and hexa-decimal. The syntax of the expression is as follows:
expr ::= hexnr | '$' hexnr | '#' decnr | '-' expr | expr '+' expr | expr '-' expr | expr '*' expr | expr '/' expr | expr '%' expr | '(' expr ')'
Example:
?23+(56%7+55*(#23-7/3))

Some of the commands that produce several lines of output, like the M command, can be manually continued by scrolling up/down with the [Cursor Up/Down] keys to the screen limits, or using the [Page Up/Down] keys. To get a free line to enter a new command, just press the [Enter] key.

You can also get up on-line help and status page by pressing the function keys [F1] to [F4].

[F1]    -    Help
[F2]    -    VIC Status
[F3]    -    CIA1 Status
[F4]    -    CIA2 Status

You can swap to one of the 8 different session screens by pressing the [ALT] key together with one of the keys [1] to [8].

[ALT] + [1]    - Session 1
[ALT] + [2]    - Session 2
...
[ALT] + [8]    - Session 8

Command-Line Options

To get a syntax description of the current available command-line options, just run the program from a command-window with the argument "?". Example:

CCS ?

This will probably give an output like: CCS [filename.{prg/p00/p01/t64/d64/g41/tap/crt}[,index]] [-cfg filename] [-fastload] [-normalload] [-autorun] [-manualrun] [-window] [-hardsid id]

Explanation:

[]                          - means that this option is optional and has not to be given.
{opt1,opt2,...}    - means one of the options.

filename.{prg/ p00/ p01/ t64/ d64/ g41/ tap/ crt}[,index] A file-name that describes a disk/tape/cartridge image to be loaded at the start of CCS64. The optional index tells which individual file inside of a disk/tape images that should be loaded (default is the first one).
Example: mygame.d64,3
-cfg filename Change the file-name of the config file to be used (default is c64.cfg).
-fastload Turns on the fast-load feature when loading from disk or tape file images. Can be less accurate.
-normalload Turns on the most accurate emulation of the disk drive when loading from disk or tape file images.
-autorun Automatically starts the program that are loaded at the start of CCS64.
-manualrun Do not start the program that are loaded at the start of CCS64.
-window Force the emulator to use the windowed mode of the DirectX graphics display.
-hardsid id Select the correct id for the HardSID sound card.

Example:

CCS C:\TheBestGames.D64,2 -window -autorun
- This will run CCS64 in windowed mode, and select the disk file image named TheBestGames.D64 as the current inserted floppy disk into disk drive with device 8, and then load the 2nd file from the directory of that floppy disk, and automatically start it.

Configuration

To change your configuration you could either use the program menu or edit the configuration file C64.CFG manually.

Parameter name

Description

$RGBCOLOR0=
$RGBCOLOR1=
...
$RGBCOLOR15=
The RGB color values that should be used for emulating the C64 colors.
$SCREENMODE= If you change to a mode that doesn't work (or look nice) on your equipment, immediately (this is VERY important, or your equipment may be damaged) quit CCS64. Screen modes are detected dynamically and are hardware/driver dependent.
$WINDOWSIZEX= The width of the 'Window 1x' window in pixels, when CCS64 is run in Windowed mode. This value, once saved, will be retained.
$WINDOWSIZEY= The height of the 'Window 1x' window in pixels, when CCS64 is run in Windowed mode. This value, once saved, will be retained.
$SAMPLEBITS= 16 - Tries to use 16 bits samples, otherwise uses 8.
8 - 8 bits samples.
$SAMPLEFREQ= 11111, 22222, 45454, or any other value, if your sound card can manage it.
$SOUNDENABLE= YES - Sound output on.
NO - Sound output off.
$LOADPATH= The path where you have your C64 games and demos.
$SHIFTKEYAUTO= LEFT - Use the key, in order to emulate the C64 cursor up/left keys.
RIGHT - Use the key, in order to emulate the C64 cursor up/left keys.

Common Problems

Sometimes special games on .D64 images will behave badly, when you use the 'Run (Fast)' or 'Boot (Fast)' feature (this is default). To solve these kind of problems, use the 'Run (Normal)' or 'Boot (Normal)' features instead; otherwise, perform the following:
1) Re-set the C64.
2) Enter the 1541 Device 8 menu, high-light the correct .D64, the select the Insert Disk option.
3) From the BASIC type:
LOAD"*",8,1

If you do not have a CD-ROM in your CD-ROM drive or a floppy disk in your floppy disk drive, the emulator will hang, if you select this device in the menu. So please, always be sure that you have an initialized (sometimes you have to wait some seconds after instering it) disk in your drive, before trying to use that device from within the menu.

The option Load As Turbo-Tape should only be used when you get a message like "PRESS PLAY ON TAPE" on your C64-screen, and you're sure about that the second part should be loaded as turbo-tape. Otherwise, nothing useful will happen.

Note that when your sampling the C64's audio output to a .WAV file, the sample rate and bit resolution will be the same as selected in the C64.CFG file.

Note that on a German keyboard, the keys [Y] and [Z] will have swapped, when using under CCS64.

When you use the Screen-Shot function, the image will be saved as CCS0.BMP, CCS1.BMP, CCS2.BMP, and so on.

When you use the Sound Sampling function, the audio file will be saved as CCS0.WAV, CCS1.WAV, CCS2.WAV, and so on.

When you use the Video Sampling function, the video file will be saved as CCS0.AVI, CCS1.AVI, CCS2.AVI, and so on.
NOTE: AVI files are un-compressed, i.e. very large; therefore they should be re-compressed, using video editing software, prior to further distribution.

When you use the printer emulation, the output will be saved as PRINTER4.TXT, PRINTER5.TXT, and so on.

When you use the HardSID support, the "Channels 1-4 Burst" and "Channels 1-4 Buffered" modes are recommended for faster CPUs; the "Channels 1-3 Burst & Channel 4 Emulated" mode is recommended for slower CPUs.

If you have some problems with the configuration of CCS64, and want to go back to the factory-default settings, just delete the C64.CFG file from within the CCS64 installation directory.

Using the emulator under Windows with old and out-dated sound drivers can sometimes cause the system to hang or for there to be no sound at all.

 

Notes

The C64 and 1541 ROMs are (C) Commodore Business Machines. If you don't want these original ROMs, you should replace the files KERNAL.ROM, BASIC.ROM, C1541.ROM, and CHAR.ROM with alternative ROM images.

PAL TV filter emulation by John 'Graham' Selck and Philip 'Pepto' Timmermann.

SID filter emulation contributed by Michael Kleps.

CCS64 Keyboard Layout (PDF) document by Stilianos 'Stello' Doussis.

Contact Addresses

If you have any emulation problems or suggestions, please contact me. Note that I get a lot of e-mail, so you cannot count on me reply to your message. But, of course, I will read it.

E-Mail: phs@ccs64.com

CCS64 Homepage: http://www.ccs64.com

Computerbrains Homepage: http://www.computerbrains.com

Note that these addresses may change in the future, so you can find my new addresses by searching the Internet.