65
65
@vskip 0pt plus 1filll
66
Copyright @copyright{} 1998-2012 Dag Lem
67
Copyright @copyright{} 1999-2012 Andreas Matthies
68
Copyright @copyright{} 1999-2012 Martin Pottendorfer
69
Copyright @copyright{} 2005-2012 Marco van den Heuvel
70
Copyright @copyright{} 2006-2012 Christian Vogelgsang
71
Copyright @copyright{} 2007-2012 Fabrizio Gennari
72
Copyright @copyright{} 2007-2012 Daniel Kahlin
73
Copyright @copyright{} 2008-2012 Antti S. Lankila
74
Copyright @copyright{} 2009-2012 Groepaz
75
Copyright @copyright{} 2009-2012 Ingo Korb
76
Copyright @copyright{} 2009-2012 Errol Smith
77
Copyright @copyright{} 2010-2012 Olaf Seibert
78
Copyright @copyright{} 2011-2012 Marcus Sutton
79
Copyright @copyright{} 2011-2012 Ulrich Schulz
80
Copyright @copyright{} 2011-2012 Stefan Haubenthal
81
Copyright @copyright{} 2011-2012 Thomas Giesel
82
Copyright @copyright{} 2011-2012 Kajtar Zsolt
83
Copyright @copyright{} 2012-2012 Benjamin 'BeRo' Rosseaux
66
Copyright @copyright{} 1998-2014 Dag Lem
67
Copyright @copyright{} 1999-2014 Andreas Matthies
68
Copyright @copyright{} 1999-2014 Martin Pottendorfer
69
Copyright @copyright{} 2005-2014 Marco van den Heuvel
70
Copyright @copyright{} 2006-2014 Christian Vogelgsang
71
Copyright @copyright{} 2007-2014 Fabrizio Gennari
72
Copyright @copyright{} 2007-2014 Daniel Kahlin
73
Copyright @copyright{} 2008-2014 Antti S. Lankila
74
Copyright @copyright{} 2009-2014 Groepaz
75
Copyright @copyright{} 2009-2014 Ingo Korb
76
Copyright @copyright{} 2009-2014 Errol Smith
77
Copyright @copyright{} 2010-2014 Olaf Seibert
78
Copyright @copyright{} 2011-2014 Marcus Sutton
79
Copyright @copyright{} 2011-2014 Ulrich Schulz
80
Copyright @copyright{} 2011-2014 Stefan Haubenthal
81
Copyright @copyright{} 2011-2014 Thomas Giesel
82
Copyright @copyright{} 2011-2014 Kajtar Zsolt
83
Copyright @copyright{} 2012-2014 Benjamin 'BeRo' Rosseaux
85
85
Copyright @copyright{} 2000-2011 Spiro Trikaliotis
86
86
Copyright @copyright{} 2007-2011 Hannu Nuotio
559
559
@chapter About VICE
561
561
VICE is the one and only @dfn{Versatile Commodore Emulator}. It provides
562
emulation of the Commodore C64, C64DTV, C128, VIC20, PET, PLUS4 and CBM-II computers
562
emulation of the Commodore C64, C64DTV, C128, VIC20, PET, PLUS4, SCPU64 and CBM-II computers
563
563
within a single package. The emulators run as separate programs, but have
564
564
the same user interface, share the same settings and support the same
577
577
accurate; it tries to emulate chip timings as precisely as possible and
578
578
does so @emph{efficiently}.
580
Please do @emph{not} expect the C64DTV, C128, PET, PLUS4 and CBM-II emulators to
580
Please do @emph{not} expect the C64DTV, C128, PET, PLUS4, SCPU64 and CBM-II emulators to
581
581
be as good as the C64 or VIC20 one, as they are still under construction.
583
583
@emph{Notice:} This documentation is written for the Unix release of VICE.
617
618
including synchronisation, ring modulation and filters. There are three
618
619
emulators of the SID chip available: first is the ``standard'' VICE
619
620
emulator, available since VICE 0.12; the second is Dag Lem's reSID
620
engine and the third one is reSID-fp. The reSID engines are a lot more
621
accurate than the standard engine, but they are also a lot slower, and
622
only suitable for faster machines.
621
engine. The reSID engine is a lot more accurate than the standard engine,
622
but it is also a lot slower, and only suitable for faster machines.
624
624
Naturally, also both CIAs (or VIAs, in some cases) are fully emulated
625
625
and cycle accurate.
729
729
@c FIXME: add link to section
732
@node CBM-II emulator features, Keyboard emulation, PET emulator features, Preface
732
@node CBM-II emulator features, SCPU64 emulator features, PET emulator features, Preface
733
733
@section CBM-II emulator features
735
735
The CBM-II emulator emulates several types of CBM-II models. Those
773
773
The different settings are described in @pxref{CBM-II model}.
775
@node Keyboard emulation, Joystick emulation, CBM-II emulator features, Preface
775
@node SCPU64 emulator features, Keyboard emulation, CBM-II emulator features, Preface
776
@section SCPU64 emulator features
778
The XSCPU64 emulator is a simulation of a C64 equipped with a SuperCPU64 V2B. Features:
781
@item 20 MHz asynchronous single cycle 65816 CPU core with proper dummy and invalid cycle handling.
782
@item 128 KiB static RAM, 0-16 MiB SIMM RAM, 64-512 KiB EPROM emulated and their respective timing details.
783
@item All RAM optimization configurations supported with write buffer.
784
@item I/O area access delays, write through to SRAM implemented.
785
@item Memory mappings including cartridge and boot memory map and kernal shadow.
786
@item Hardware registers and switches implemented.
787
@item Replacement SCPU64 ROM compatible with the original to avoid distribution problems
788
@item It's using the single cycle VICII core for accurate simulation
794
@item Measure and verify VICII interrupt phase shift
795
@item Measure and verify BA phase shift
796
@item SIMM RAM extra 7.5 cycle refresh delay every 10us missing.
797
@item CPU NMI support for ``reset'' button
800
The emulation is quite accurate but not perfect. If you code something timing
801
intensive using this simulation please always check it on real hardware to avoid
804
The hardware itself is asynchronous in nature, therefore caution must be taken
805
to not do long timing loops without synchronization in 20 MHz mode. Also don't
806
squeeze out the last remaining cycles without leaving a safety buffer.
807
Synchronization points can be created by doing I/O reads or writes and leaving
808
a few hundred cycles left each frame will not hurt.
810
Otherwise it can happen that the code is running on this version of VICE or my
811
SCPU64 V2+C128D perfectly but nowhere else due to manufacturing variations and
814
@node Keyboard emulation, Joystick emulation, SCPU64 emulator features, Preface
776
815
@section The keyboard emulation
778
817
There are two ways of emulating the keyboard in VICE.
1373
1415
Where @code{PREFIX} is the installation prefix (usually
1374
1416
@file{/usr/local}), @code{EMU} is the name of the emulated machine
1375
(@code{C64}, @code{C64DTV}, @code{C128}, @code{PET}, @code{PLUS4}, @code{CBM-II}
1417
(@code{C64}, @code{C64DTV}, @code{C128}, @code{PET}, @code{PLUS4}, @code{CBM-II}, @code{SCPU64}
1376
1418
or @code{VIC20}) and @code{BOOTPATH} is the directory where the executable resides.
1377
1419
The disk drive ROMs are looked for in a directory with @code{EMU} set to
1378
1420
@code{DRIVES}. @code{$HOME} is the user's home directory.
1452
The C128, VIC20 and C64 emulators also need the following DOS ROMs for
1494
The C128, VIC20, SCPU64 and C64 emulators also need the following DOS ROMs for
1453
1495
the hardware-level emulation of the 1541, 1571, 1581, 2000 and 4000 disk
1686
The SCPU64 needs the following files:
1691
@file{scpu64}, the SCPU64 ROM (128 Kbytes)
1694
@file{chargen}, the character generator ROM (4 Kbytes)
1644
1698
@node Keymap files, Palette files, ROM files, System files
1645
1699
@section Keymap files
1809
1863
As you can see, the file even uses the same syntax as the
1810
1864
resource file, it is just a bit stripped down.
1866
While a Romset file is processed, the directory where the Romset file
1867
was found is temporarily prepended to the search path (@code{Directory}
1868
resource). This also means that if you have a setting for
1869
@code{Directory} in it, its effect is limited to the Romset file itself.
1812
1871
@node Basics, Settings and resources, System files, Top
1813
1872
@chapter Basic operation
5828
5887
@item SidEngine
5829
5888
Integer specifying what SID engine will be used (@code{0}: FASTSID, @code{1}: RESID
5830
5889
, @code{2}: CATWEASELMKIII, @code{3}: HARDSID, @code{4}: PARSID_PORT1, @code{5}: PARSID_PORT2
5831
, @code{6}: PARSID_PORT3, @code{7}: RESID_FP).
5890
, @code{6}: PARSID_PORT3).
5833
5892
@vindex SidResidSampling
5834
5893
@item SidResidSampling
5880
5939
258: ReSID 8580 + digiboost,
5881
5940
1024: ParSID in par port 1,
5882
5941
1280: ParSID in par port 2,
5883
1536: ParSID in par port 3,
5884
1800: ReSID-FP 6581R3 4885,
5885
1801: ReSID-FP 6581R3 0486S,
5886
1802: ReSID-FP 6581R3 3984,
5887
1803: ReSID-FP 6581R4 AR 3789,
5888
1804: ReSID-FP 6581R3 4485,
5889
1805: ReSID-FP 6581R4 1986S,
5890
1808: ReSID-FP 8580R5 3691,
5891
1809: ReSID-FP 8580R5 3691 + digiboost,
5892
1810: ReSID-FP 8580R5 1489,
5893
1811: ReSID-FP 8580R5 1489D).
5942
1536: ParSID in par port 3).
5895
5944
@cindex -sidfilters, +sidfilters
5896
5945
@item -sidfilters
6643
6692
@item -chargse <name>
6644
6693
Specify name of Swedish character generator ROM image
6646
@cindex -intfunc, +intfunc
6648
6697
@itemx +intfunc
6649
Enable/Disable the internal Function ROM
6698
Enable/Disable the internal Function ROM (0: None, 1: ROM, 2: RAM, 3: RTC)
6650
6699
@cindex -intfrom
6651
6700
@item -intfrom <name>
6652
6701
Specify name of internal Function ROM image
6654
@cindex -extfunc, +extfunc
6656
6705
@itemx +extfunc
6657
Enable/Disable the external Function ROM
6706
Enable/Disable the external Function ROM (0: None, 1: ROM, 2: RAM, 3: RTC)
6658
6707
@cindex -extfrom
6659
6708
@item -extfrom <name>
6660
6709
Specify name of external Function ROM image
19860
19909
Made some console, dialog and joystick fixes for the BeOS port.
19861
19910
Maintains the BeOS port.
19863
19913
@b{Ulrich Schulz}
19864
19914
Maintains the Dingoo port(s).
19867
19917
@b{Kajtar Zsolt}
19868
Wrote the IDE64 interface emulation, FD2000/4000 drive emulation
19869
and alot of fixes. Improved the mouse support. Added drive burst
19870
modification support. Added 1541 drive sounds emulation. Improved
19918
Wrote the IDE64 interface emulation, FD2000/4000 drive emulation, SCPU64
19919
emulation and alot of fixes. Improved the mouse support. Added drive
19920
burst modification support. Added 1541 drive sounds emulation. Improved
19871
19921
c64 cart emulation.
20196
20246
@b{Magnus Lind}
20197
20247
Atari ST mouse and Atari CX-22 trackball emulation and pixel
20198
20248
aspect fixes. Improved the Amiga mouse emulation. Improved
20199
the vic20 sound output. Improved sound fragment size handling.
20249
the vic20 sound output. Added windows POV hat support.
20250
Improved sound fragment size handling.
20254
Made the initial android port of x64.
20202
20257
@b{Wolfgang Lorenz}
20489
20544
@itemize @bullet
20491
Copyright @copyright{} 1998-2012 Dag Lem
20493
Copyright @copyright{} 1999-2012 Andreas Matthies
20495
Copyright @copyright{} 1999-2012 Martin Pottendorfer
20497
Copyright @copyright{} 2005-2012 Marco van den Heuvel
20499
Copyright @copyright{} 2006-2012 Christian Vogelgsang
20501
Copyright @copyright{} 2007-2012 Fabrizio Gennari
20503
Copyright @copyright{} 2007-2012 Daniel Kahlin
20505
Copyright @copyright{} 2009-2012 Groepaz
20507
Copyright @copyright{} 2009-2012 Ingo Korb
20509
Copyright @copyright{} 2009-2012 Errol Smith
20511
Copyright @copyright{} 2010-2012 Olaf Seibert
20513
Copyright @copyright{} 2011-2012 Marcus Sutton
20515
Copyright @copyright{} 2011-2012 Ulrich Schulz
20517
Copyright @copyright{} 2011-2012 Stefan Haubenthal
20519
Copyright @copyright{} 2011-2012 Thomas Giesel
20521
Copyright @copyright{} 2011-2012 Kajtar Zsolt
20523
Copyright @copyright{} 2012-2012 Benjamin 'BeRo' Rosseaux
20546
Copyright @copyright{} 1998-2014 Dag Lem
20548
Copyright @copyright{} 1999-2014 Andreas Matthies
20550
Copyright @copyright{} 1999-2014 Martin Pottendorfer
20552
Copyright @copyright{} 2005-2014 Marco van den Heuvel
20554
Copyright @copyright{} 2006-2014 Christian Vogelgsang
20556
Copyright @copyright{} 2007-2014 Fabrizio Gennari
20558
Copyright @copyright{} 2007-2014 Daniel Kahlin
20560
Copyright @copyright{} 2009-2014 Groepaz
20562
Copyright @copyright{} 2009-2014 Ingo Korb
20564
Copyright @copyright{} 2009-2014 Errol Smith
20566
Copyright @copyright{} 2010-2014 Olaf Seibert
20568
Copyright @copyright{} 2011-2014 Marcus Sutton
20570
Copyright @copyright{} 2011-2014 Ulrich Schulz
20572
Copyright @copyright{} 2011-2014 Stefan Haubenthal
20574
Copyright @copyright{} 2011-2014 Thomas Giesel
20576
Copyright @copyright{} 2011-2014 Kajtar Zsolt
20578
Copyright @copyright{} 2012-2014 Benjamin 'BeRo' Rosseaux
20526
20581
Copyright @copyright{} 2000-2011 Spiro Trikaliotis