(C) 2000 PER HÅKAN SUNDELL
(C) 2000 COMPUTERBRAINS
All rights reserved. July 23rd 2000.
Disclaimer
This program is released as SHAREWARE and therefore freely distributable,
although you may not charge anyone for more than the actual cost of
distribution. The meaning of shareware is that if you are using the
program regularly, you should strongly consider to register the program.
With registering means that you are actually buying the product.
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
in several years with this product, studying the C64 into its innermost
secrets. This shareware version should run perfectly with all games
or demos, even those using the 1541 disk drive.
Registration
As this is SHAREWARE, if you like and use this program you are supposed
to register it. Of course you then will get a registered version of
this program with additional features and bonuses. At the moment the
register fee is 30 USD, or equal amount in GBP,DEM or SEK. Credit cards
or CHEQUES can NOT be used. Please consult your local post office or
bank for proper ways of sending money to Sweden.
To register you send cash money, together with your name, address and/or
e-mail to:
Per Håkan Sundell
Eklandagatan 56 B
SE-412 61 GÖTEBORG
SWEDEN
Or use the register utility for Kagi, register.exe
.
Or you can transfer the money directly to my bank account. Please pay
via Eurogiro or SWIFT to our (Sundell Consulting) account number 607
85 52-4 with Postgirot Bank AB (publ) S-105 06 Stockholm, Sweden. SWIFT
address: PGSI SESS
You can also register on-line using VISA credit card at http://order.kagi.com/?QRN.
Note that registered users are entitled to unlimited number of updates
of CCS64 without any further costs. The product will be continously
updated as long as there is any features or bugs to be fixed. This means
that you could safely register now, even if some special feature is
not ready yet, as you will not miss the update when that special feature
is ready.
System requirements
DOS version:
Supported operating systems:
- DOS 5.0 or later.
- Windows 95
- Windows 98
Hardware requirements:
- Pentium processor or better.
- 16 Mb of internal memory.
- VGA graphics.
Additional support:
- Soundblaster 8/16 or compatibles.
- Gravis Ultrasound.
- DOS compatible joystick.
- DOS compatible mouse.
WIN32 version:
Supported operating systems:
- Windows 95 with DirectX v3.0 or later.
- Windows NT 4.0 with Service pack 3 or later.
- Windows 98.
- Windows 2000.
Hardware requirements:
- Pentium processor or better.
- 16 Mb of internal memory.
- SVGA graphics.
Additional support:
- Windows compatible soundcard.
- Windows compatible joystick.
- Windows compatible mouse.
Information
Emulation compatibility:
C64 main console:
- 99.9% CPU 6510, MMU 82S100. All imaginable programs should work.
The emulation of CPU is cycle exact and considers all strange side-effects.
- 99.9% VIC 6566/6567/6569. All imaginable graphics modes and effect
should work. The emulation of VIC is pixel exact and considers all
strange effects, both known and unknown, as it emulates the inner
workings of the VIC chip.
- SID 6581/8581. Nearly perfect regarding the digital core emulation.
Approximated emulation regarding the filter emulation and analog
amplifier output. The emulation of SID is cycle exact and constructs
fully synthetic samples in 8 or 16 bits resolution.
- 99.9% CIA 6526. All features of the I/O circuits. The emulation
of CIA is cycle exact.
- Keyboard. All keys including Restore.
1541 diskdrive:
- 99.9% CPU 6502. All imaginable programs should work. The emulation
of CPU is cycle exact and considers all strange side-effects.
- 99.9% VIA 6522. All features of the I/O circuits. The emulation
of VIA is cycle exact.
- 99% GCR Read/Write electronics. Handles different densities and
all kind of syncronization patterns.
- Head step motor. Handles 84 half-tracks.
- Disk rotation motor.
C2N cassette recorder:
- Read/Write electronics. The pulse generation is cycle exact.
- Tape motor.
- Play button sense.
Printer equipment:
- Printer at serial port with device number from 4 to 7 emulated
at kernel level. Normal file operation from BASIC should work.
C64 expansion port equipment:
- 1764 Ram Expansion Unit (REU). Configurable in steps from 128
Kb to 16 Mb. Emulation is cycle exact.
- ROM/RAM Cartridges with custom hardware. Besides from normal kind
of cartridges, twelve types of custom hardware are emulated.
C64 joystick port equipment:
- Digital joystick. Supports up to three fire buttons.
- Mouse C1351.
- Paddles.
1541 diskdrive expansion:
- 99% Parallell cable connected between the C64 user port and the
1541 diskdrive.
- RAM Expansion. Configurable at any size at locations $2000-$C000.
Combinations:
- Up to four connected 1541 diskdrives.
- Can combine REU and normal cartridges.
User Interface:
- Control menu.
- Graphics output for VGA in resolutions 384x282,384x246,368x240 and
320x200.
- Graphics output for SVGA in resolutions 320x200,320x240,400x300,512x384,640x400,640x480
and 800x600.
- Graphics display with DirectX in either exclusive mode (fullscreen)
or normal mode (window).
- Sound output for Soundblaster or Ultrasound in quality up to the
maximum the soundcard manages (45454 Hz in 16 bit).
- Screen snap-shot, saves an image of the whole current C64 screen
(504x312 pixels for PAL, 520x263 for NTSC) in 16 or 256 colors.
- Joystick emulation, both with keys and real PC joysticks. Also supports
joystick adapter that allows usage of original C64 joysticks.
- Cartridge emulation using file format .CRT. Currently supporting
normal (plain ROM/RAM without I/O) types of cartridge, Action Replay,
KCS Power Cartridge, Final Cartridge I & III, Simons Basic, Ocean
games, Fun Play, Super Games, Atomic Power, Epyx Fastload, Westermann,
Rex and Expert Cartridge.
- True tape emulation including turbotape and tape images (use originals
on tape). Sorry but for the true tape images, it is a little hard
to create them, as I use special hardware and program on my AMIGA
computer, see the CCS64 Homepage. But there are
programs available for PC developed by other people, that could use
a commercial PC to C2N connector or an high-quality audio sampling.
- Pause mode, where you could single-step screen frames and look at
interlaced pictures.
- Freeze function, to save or restore the status of the emulator.
This feature is under development so use with care...
- Machine code monitor. This feature is under development so use with
care...
- Making wave-files from C64 music.
- Speed control.
- Maximum 1541 speed, when enabled the emulator gives the emulation
of the 1541 100% priority while it is active with reading/writing.
- Speed-o-meter, 1541 status and C2N status display.
- Support for different ROM sets.
- Support for fileimages in formats .PRG/.P00/.T64/.TAP/.D64/.G41
and .G64.
Instructions
Starting
DOS version:
To start the program from Windows, just double-click the CCS64
icon. If you want to run from DOS, change to correct directory and
type CCS64. If you have any problems with running the program from
Windows, then reboot and run the program from DOS instead.
WIN32 version:
To start the program just run the file named CCS.EXE.
Using
To do anything meaningful you should enter the program menu by pressing
the key F9.
To use PC joysticks you have to calibrate them first. Calibration
is selected from the submenu Options/Input in the menu.
If you have any problems with the settings and want the factory default
settings back, just delete the 'C64.CFG' configuration file and it
will be restored next time you run CCS64.
Menu
To use the Menu press F9 and then use the cursor keys to select.
Use cursor right or enter to enter a choice. Use escape to go back
to the previous menu from a submenu. Use cursor up or down to change
selection. Use cursor left or right to change a value. Where specified
you could also use the functions keys. When a selection can by applied,
enter can also be used.
In a directory listing you could also use PageUp or PageDown to scroll
faster through the selections. To get directly to the first filename
which starts with a specific letter, you could press CTRL+letter.
In some 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 |
The user interface uses the following keys during the emulation session.
Key
|
Description
|
F9 |
Control menu. Always continues from the submenu
from where you left. |
F10 |
Control menu. |
F11 |
Restores a frozen emulator state with the filename
"freeze.c64". |
F12 |
Freezes (saves) the emulator state with the filename
"freeze.c64". |
Print Screen |
Captures the screen as an 16 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+Shft+8 |
Status Menu for 1541 device 8. |
Alt+Shft+9 |
Status Menu for 1541 device 9. |
Alt+Shft+0 |
Status Menu for 1541 device 10. |
Alt+Shft++ |
Status Menu for 1541 device 11. |
Alt+Shft+1 |
Status Menu for Tape device 1. |
Alt+R |
Reset (Soft) |
Alt+Shft+R |
Reset (Hard) |
Alt+O |
Options Menu |
Alt+V |
Video Menu |
Alt+I |
Input Menu |
Alt+M |
MC 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 frames. |
Alt+X |
Quit |
Alt+Q |
Quit |
Alt+F1 |
Save 16 color screen |
Alt+F2 |
Save 256 color screen |
Alt+F3 |
Toggle Speed (100 - 500 %) |
Alt+F4 |
Quit |
Alt+F11 |
Loads a frozen emulator state from selectable filename. |
Alt+F12 |
Saves a frozen emulator state to selectable filename. |
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 |
|
MC 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 1541. |
B |
Show breakpoints |
BA <xxxx> [RWE] [<xx>[-<yy>]] |
Adds breakpoint at specified address,
which is trigged when the address is Read, Written or Executed.
Default is any access triggered. The trigg can also be limited
within a range of data read/written. Example:
BA D012 W F7-FF
- This will only trigger the breakpoint whenever a program writes
a value between F7 to FF to address D012. |
BR <xx> |
Remove the specified breakpoint. Example:
BR 0
- This will remove the first breakpoint. |
C <xxxx> <yyyy> <zzzz> |
Compare memory. |
D <xxxx> [<yyyy>] |
Disassemble. |
F <xxxx> <yyyy> <xx>
... |
Fill memory with hex values or ascii strings.
Example:
F 1000 2000 "HELLO" 0D 0A |
HD <xxxx> <yyyy> <string> |
Hunt disassembly output textually for
patterns. Wildcards 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" 08 1000 |
M <xxxx> [<yyyy>] |
Shows memory as hex values. |
P <xx> |
Printer redirect. Redirects output of
next D or M commands to the specified printer device (04-07). |
Q <xxxx>
|
Quicktraces 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 |
T <xxxx> <yyyy> <zzzz>
|
Transfer memory. Copies the contents of
a memory region into another. |
W [<xxxx>] |
Traces with singlestep. |
X |
Exits monitor. |
: <xxxx> <xx> ... |
Changes memory from hex values. |
, <xxxx> <xx> ... |
Changes memory from disassemble hex values. |
* [<xx>] |
Bank change 0-7 for different C64 MMU
maps, 8-11 for 1541. |
? <expression> |
Evaluate a numeric expression and display
the result in decimal and hexadecimal. 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 produces several lines of output, like
the M command, can be manually continued by scrolling up/down with
cursor keys to the screen limits, or using page up/down keys. To get
a free line to enter a new command, just press enter.
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 filename 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 filename of the config file to be used
(default is c64.cfg). |
-fastload |
Turns on the fastload feature when loading from disk
or tape file images. Can be less accurate. |
-normalload |
Turns on the most accurate emulation of the diskdrive
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, 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
|
SCREENMODE= |
0 - Blank screen
1 - SVGA 320 x 200, DirectX.
2 - SVGA 320 x 240, DirectX.
3 - SVGA 360 x 200, DirectX.
4 - SVGA 360 x 240, DirectX.
5 - SVGA 400 x 300, DirectX.
6 - SVGA 512 x 384, DirectX or DOS(VESA).
7 - SVGA 640 x 480, DirectX or DOS(VESA).
8 - SVGA 640 x 400, DirectX.
9 - SVGA 800 x 600, DirectX or DOS(VESA).
10 - VGA 320 x 200 Chained mode in 70 Hz, DOS.
11 - VGA 368 x 240 Planar mode in 60 Hz, DOS.
12 - VGA 384 x 246 Planar mode in 60 Hz, DOS.
13 - VGA 384 x 282 Planar mode in 50 Hz, DOS.
14 - VGA 384 x 282 Planar mode with Scanlines in 60 Hz, DOS.
15 - SVGA 1024 x 768, DirectX.
16 - SVGA 1152 x 864, DirectX.
17 - SVGA 1280 x 1024, DirectX.
If you change to a mode that doesn't work (or look nice) on your
equipment, immediately (this is VERY important, or your equipment
can be damaged) quit CCS64. |
SOUNDENABLE= |
YES - Sound output on
NO - Sound output off. |
SAMPLEFREQ= |
11111,22222,45454 etc. recommended on
Soundblaster.
11025,22050,44100 etc. recommended on Ultrasound.
any other value (ex. 17923) if your soundcard can manage it. |
SAMPLEBITS= |
16 - Tries to use 16 bits samples, otherwise
uses 8.
8 - 8 bits samples. |
LOADPATH= |
the path where you have your C64 games
and demos. |
RGBCOLOR0=
RGBCOLOR1=
...
RGBCOLOR15= |
the RGB color values that should be used
for emulating the C64 colors.
|
Common Problems
Sometimes special games on .D64 images will behave badly when you
use the 'Run' or 'Boot' feature. To solve this problems do like this.
1) Reset the C64.
2) Enter menu (1541 device 8) and select the correct .D64 (Insert
disk)
3) From the BASIC type:
LOAD"*",8,1
If you do not have a CD-ROM in your CD-drive or a disk in your diskdrive,
the emulator will hang up if you select this device in the menu. So
please, always be sure that you have a initialized (sometimes you
have to wait some seconds after instering it) CD-ROM in your CD-drive
before trying to use the CD device from 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 shure 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 changed
place when using under CCS64.
When you use the Screen-Shot function, the image will be saved as
CCS0.BMP or CCS1.BMP,CCS2.BMP and so on.
When you uses sound sampling the audio file will be saved as CCS0.WAV
or CCS1.WAV,CCS2.WAV and so on.
When you use the printer emulation, the output will be saved as PRINTER4.TXT,
PRINTER5.TXT and so on.
If you have some problems with the configuration of CCS64, and want
to go back to the default settings, just delete the C64.CFG file.
Using the emulator under Windows with old and outdated sound drivers
can sometimes cause the system to hang, or getting no sound at all.
In these cases, run in DOS if possible.
Notes
The C64 and 1541 roms is under copyright (C) by Commodore Business
Machines. If you don't want these original roms you could replace the
files KERNAL.ROM, BASIC.ROM, C1541.ROM and CHAR.ROM.
Contact Address
If you have any emulation problems or suggestions, please contact me.
Note that I get a lot of e-mail, so you can not count on that I will
reply to it. But of course I will read it.
E-mail: Hakan.Sundell@xpress.se
CCS64 homepage: http://www.computerbrains.com/ccs64
Computerbrains homepage: http://www.computerbrains.com/
Note that these addresses can change within near future, and when so
have happended you most certainly can find my new addresses by searching
the Internet.
|