Running Old 8-Bit Computers on Win32 – VICE

Vıce is a emulator make able to running 8-bit computers on Unix, MS-DOS, Win32, OS/2, BeOS, QNX 4.x, QNX 6.x, Amiga, Syllable or Mac OS X. If you want to experience this emulator, you can download this amulator. We will explain features of C64, C64DTV, C128, VIC20, keyboard emulation, joystick emulation and supported file formats.

Firstly we will talk about features of VICE’s versions. C64 features: As of version 2.3, two C64 emulators are provided: `x64′ (fast) and `x64sc’ (accurate). The fast C64 emulator, called `x64′, features a fairly complete emulation of the VIC-II video chip: sprites, all registers and all video modes are fully emulated. The emulation has been fully cycle-accurate since version 0.13.0. The accurate C64 emulator, called `x64sc’, features a cycle-based and pixel-accurate VIC-II emulation. This requires a much faster machine than the old `x64′. A rather complete emulation of the SID sound chip is also provided.

All the basic features are implemented as well as most of the complex ones including synchronisation, ring modulation and filters. There are two emulators of the SID chip available: first is the “standard” VICE emulator, available since VICE 0.12; the second is Dag Lem’s reSID engine. The reSID engine is a lot more accurate than the standard engine, but it is also a lot slower, and only suitable for faster machines.Naturally, also both CIAs (or VIAs, in some cases) are fully emulated and cycle accurate.

C64DTV features: The C64DTV emulator, called `x64dtv’, features emulation of C64DTV revisions 2 and 3. The emulator is under construction, but most of the DTV specific features are already supported (with varying accuracy). Video cache is disabled by default as it currently doesn’t work with some of C64DTV’s new video modes. The new video modes have a simple “fake” video cache implementation that may give incorrect results and decreased performance.

C128 emulator features: The C128 emulator, called `x128′, features a complete emulation of the internal MMU (Memory Management Unit), 80 column VDC screen, fast IEC bus emulation, 2 MHz mode, Z80 emulation plus all the features of the C64 emulation.

VIC20 features: The VIC20 emulates all the internal hardware, including the VIA chips. The VIC-I video chip is fully emulated except NTSC interlace mode, so most graphical effects will work correctly. Sound support is implemented, but is still at an experimental stage. If you think it could be improved and know how to do so, feel free to contact us (see section 19 Contact information). The VIC20 emulator now allows the use of the VIC1112 IEEE488 interface. You have to enable the hardware (by menu, resource, or commandline option) and then load the IEEE488 ROM.

Second point we will talk about is keyboard emulation. There are two ways of emulating the keyboard in VICE.The default way (symbolic mapping) is to map every key combination to the corresponding key combination on the real machine: for example, if you press *, which is bound to Shift-8 on a U.S. keyboard, in the C64 emulator, the emulated machine will have just the unshifted * key pressed (as * is unshifted on the C64 keyboard). Likewise, pressing ‘ on the same U.S. keyboard without any shift key will cause the combination Shift-7 to be pressed in the emulated C64. This way, it becomes quite obvious what keys should be typed to obtain all the symbols. There is, however, one problem with symbolic mapping: some keys really need to be mapped specially regardless.

The most important examples being, in the VIC20, C64 and C128 emulators, that CTRL is mapped to Tab and that the Commodore key is mapped to the left Control). The RUN/STOP key is mapped to the ESC key on the PC keyboard. The PET emulator, lacking the Commodore key but having an ESC key, uses the left Control key as RUN/STOP and the ESC key as ESC of course. The second way (positional mapping) is to map every key on the “real” keyboard to the key which has the same position on the keyboard of the emulated machine. This way, no Shift key is forced by the program (with the exception of the function keys F2, F4, F6 and F8, which require Shift on the Commodore keyboards), and the keyboard is more comfortable to use in those programs (such as some games) that require the keys to be in the correct positions.

Warning: unlike the real C64, VICE “presses” the Shift key together with the key to shift when the Shift must be forced. In most cases this should work fine, but some keyboard routines are quite picky and tend not to recognize the shift key because of this. For instance, F6 (which on the real C64 is obtained with Shift + F5) could be recognized as F5. In that case, use the shift key manually (i.e., type Shift + F5 in the example). Yes, we know this is a bug.

Next point we will explain is joystick emulation. Joysticks can be emulated both via the keyboard and via a real joystick connected to the host machine (the latter only works on GNU/Linux systems). There are two keyboard layouts for joystick use, known as numpad and custom. The numpad layout uses the numeric keypad keys, i.e., the numbers 1…9 which emulate all the directions including the diagonal ones; 0 emulates the fire button. The custom layout uses the keys w, e, r, s, d, f, x, c, v for the directions and space for the fire button instead.

The last point we will talk about is Supported file formats. VICE supports the most popular Commodore file formats: X64 (preferred) or D64 disk image files; Used by the 1541, 2031, 3040, 4040 drives. G64 GCR-encoded 1541 disk image files P64 NRZI flux pulse disk image files. D67 CBM2040 (DOS1) disk image format. D71 VC1571 disk image format. D81 VC1581 disk image format. D80 CBM8050 disk image format. D82 CBM8250/1001 disk image format. D1M FD2000/FD4000 DD disk image format. D2M FD2000/FD4000 HD disk image format. D4M FD4000 ED disk image format. T64 tape image files. P00 program files. CRT C64 cartridge image files.

Leave a Comment