Commodore VIC 20 Emulator

Pfau Zeh for Win32

Documentation

Version 0.25 (4. May 1999)

(C) 1996-99 Arne Bockholdt


Pfau Zeh for Win32 is :

PFAU ZEH FOR WIN32 IS DISTRIBUTED "AS IS". NO WARRANTY OF ANY KIND IS EXPRESSED OR IMPLIED. YOU USE AT YOUR OWN RISK. THE AUTHOR WILL NOT BE LIABLE FOR DATA LOSS, DAMAGES, LOSS OF PROFITS OR ANY OTHER KIND OF LOSS WHILE USING OR MISUSING THIS SOFTWARE.

Arne Bockholdt


Table of contents :

  1. What's new in version 0.25
  2. Requirements to run Pfau Zeh for Win32
  3. Installation
  4. Command line options
  5. Menu options
  6. File format support
  7. Video emulation
  8. Sound emulation
  9. Keyboard emulation
  10. Joystick emulation
  11. Paddle emulation
  12. Light pen emulation
  13. Comparison Pfau Zeh for Win32 => VIC 20
  14. To do...
  15. Compatibility
  16. Frequently asked questions
  17. Reporting bugs, problems, comments and mailing list
  18. New releases and Pfau Zeh for Win32 home page
  19. History
  20. Thanks to...

What's new in version 0.25 :


Requirements to run Pfau Zeh for Win32

Hardware :

Software :


Installation

First of all, please extract the Pfau Zeh for Win32 package and start the the setup program.  You can specify a directory where the files will be copied to.

It will create a directory structure like this :

PfauZeh for Win32/

docs/

games/

In this package the ROM files are included.

kernel.pal

PAL Kernel ROM, 8 KB

kernel.ntsc

NTSC Kernel ROM, 8 KB

chargen.rom

Character generator ROM, 4 KB

basic.rom

Basic interpreter ROM, 8 KB

The ROMs are copyrighted by Commodore Business Machines.

That's all ! You can create a shortcut to your desktop if you want...

To uninstall Pfau Zeh for Win32 (you don't want to do that, he ?) choose Uninstall in the Control Panel/Software.

Note: The setup program installs the latest C-Library (MSVCRT.DLL) to your system directory. The setup program wants to reboot Windows after installation then.


Command line options

No command line options/paramters are available in the current Pfau Zeh for Win32 release. Perhaps in the next version.

 


Menu options

The Pfau Zeh for Win32 menus gives you the possibility to control Pfau Zeh for Win32 in various ways. To switch between the Win32-GDI interface and the Commodore VIC 20, please press one of the following keys/buttons:  

Here is a short description of the menus and their functions :

File menu :

You can popup this menu by pressing ALT-F at every time.

This is the only way to load or save your BASIC programs at the moment . You must enter the name of the file or choose the file in the file selector dialog. The file will be checked for the right memory expansion for this program. If you got the wrong memory expansion inserted Pfau Zeh for Win32 will reset the VIC and load the program afterwards. Now you can type "RUN" to start the program ;-)

Default :

Hot Keys :

This is the way to insert a cartridge into the VIC 20. To start a cartridge with auto-start sequence, please answer "yes" when the reset dialog appears. You can select more then one cartridge file at one time.

Default :

Hot Keys :

When you want to start another cart or if you want to enter a BASIC program, you must remove the inserted cartridge. You can manage this with this option. The inserted cartridge will be removed and the VIC 20 will be resetted. This option is only highlighted when a cartridge is inserted in the VIC 20.

Default :

Hot Keys :

Hardware menu :

You can popup this menu by pressing ALT-H at every time.

 Video mode ... :

 

 

Memory ... :

 

 

 

 Reset VIC 20:

 

 

Options menu :

You can popup this menu by pressing ALT-O at every time.

 

Joystick ... :

With the help of the following dialog box you can change the settings of the hardware joystick emulation. When you don't have a joystick or the driver isn't installed correctly than this menu entry is gray. Please see the Joystick section for more information.

 

Paddles ... :

With the help of the following dialog box you can change the settings of the paddles emulation. Please see the Paddles section for more information.

 

Sound ... :

With the help of the following dialog box you can change the settings of the sound emulation. When you don't have a sound card or the driver isn't installed correctly than this menu entry is gray. Please see the Sound section for more information.

 

Help menu :

You can popup this menu by pressing ALT-H at every time.

 

DirectDraw Info... :

This dialog boxs displays information about the capabilites of your display card and driver. A good card and driver is important for a good emulation speed, because Pfau Zeh for Win32 uses the most CPU time to render frames.

Direct Draw info dialog

To run the emulator you need a DirectDraw driver. To get the best possible emulation speed all checks of the dialog should be checked. Here's a short description of the meanings of the checks:

The performance rating should give you a hint of the maximum reachable emulation speed. With a medium priced display card with good drivers a very good rating should be possible on Win9x and WinNT.

 

DirectSound Info... :

This dialog box displays information about the capabilites of your sound card and driver. A good card and driver is important for a good sound quality, because Pfau Zeh for Win32 uses functions of DirectSound to produce the sound output.

Direct Sound info dialog

 

To get a accurate sound output you need a DirectSound driver. To get the best possible sound quality all checks of the dialog should be checked. Here's a short description of the meanings of the checks:

For a low latency it's required that your sound card supports hardware mixing of the sound channels. If this feature isn't available DirectSound emulates it and the mixing latency will be very high, the sound output will be bad.

If only one of the X Bit hardware mixing features is available you should use the mode which supports hardeware mixing.. If no hardware mixing is supported you should use the 8 Bit mode to get a better sound output.

The sound quality rating should give you a hint of the sound output quality. You need a real good sound card and drivers to get a good sound quality rating. I use a SoundBlaster AWE 32 with 2 MB Sample RAM and get a good sound quality rating.

Pfau Zeh for Win32 is a good test program for the quality of your sound card and your sound driver !

 

About Pfau Zeh... :

This dialog box displays information about the current version, a disclaimer and the internet addresses of the author.


File format support

Here's a list of supported file formats :  

Type :

Size :

Address :

 How to load :

 

Not supported are :

 


Video emulation

There are two different video modes for two different TV systems. The German (European ?) VC 20 used the PAL system and the American VIC 20 used the NTSC system.

You can choose the emulated video system in the Option/Video menu. Some games needs the PAL timing, others the NTSC timing. Here's a small table with a comparison between this two timings.

 

Timing : PAL NTSC
Lines per frame :  312 261
Frame rate :  50 60
Screen width :  233 210
Screen height :  284(9 lines), 265 (28 lines) 233 (9 lines), 214 (28 lines)

 

The position of the output screen in the window depends from the video timing and the sound is different too. If the position of the frame in the window isn't correct with your program, try the other video mode!

The kernel ROM file will be reloaded when you've changed the video timing !  


Sound emulation

The VIC 20 produces 3 melodic and 1 noise voice. There's a volume control for this voices too. Pfau Zeh for Win32 emulates all of this sound features with help of the DSP on your sound card. This sounds much better compared with FM synthesis or something like that but it costs much more CPU time to produce this samples.

Pfau Zeh for Win32 renders 8 or 16 Bit mono samples with 22.05 or 44.1 khz sampling rate.

If you want to hear this sounds you must have a sound card with DirectSound drivers. The drivers must support continuous sample rates output and should do hardware mixing.

Sound settings dialog

The sound dialog in the options menu gives you the possibility to control the sound emulation. This dialog is only visible when the sound card is available at statup. Here is a short description of these settings :


Keyboard emulation

The VIC 20 has got a nice keyboard very similar to a PC keyboard. Here's a picture of the VIC 20.
  Keyboard Layout

On this picture you see the differences between the VIC keyboard and the keys Pfau Zeh for Win32 uses for the emulation. Here's a list :

 

Remember : The keys F2, F4, F6 and F8 are accessed by pressing F1, F3, F5 and F7 with one of the shift keys !!!!

 


Joystick emulation

You can emulate the VIC 20 joystick in two different ways :

Joystick settings dialog

The joystick dialog is only enabled when you got a joystick with driver installed. The keyboard joystick emulation is always enabled. Here's a short description of the joystick settings:

 

Fire :

Numblock 0/Insert

Directions :

Cursor keys or cursor keys on Numblock  

 

You can use both control possibilities at the same time.


Paddles emulation

Pfau Zeh for Win32 got a paddles emulation. Some games needs this controller type. Use the following keys for the paddles :

To use the directions of the paddles you need to numlock the number block ! The fire keys are the same as the left/right directions of the keyboard joystick emulation.

Paddles settings dialog

The paddles dialog is always enabled. Here's a short description of the paddles settings:


Light Pen emulation

No light pen emulation in this release of Pfau Zeh for Win32. Sorry, but it will come, I promise...perhaps in V0.3


Comparison Pfau Zeh => VIC 20

This section should inform  you about the "quality" of Pfau Zeh for Win32. It tells you which parts of a real VIC 20 are emulated from Pfau Zeh for Win32.

6502 :

VIA 1

VIA 2

VIC

Misc.

 


To do...

Here's the list of things that I plan to implement / enhance / change in Pfau Zeh for Win32 for the future :

 

6502

VIC

VIA 1

VIA 2

I/O

Misc.


Compatibility

Here're the programs I've tested with the current version of Pfau Zeh for Win32 and the results I get. If you've got corrections or additions, please mail them to me. Thank you !

These programs should work fine with Pfau Zeh for Win32 :

 

Name of tested program : Comment : 
AE  
Aggressor  
Alien Blitz  
Alien Side-Step  
Amidar use RAM at $a000 and PAL timing
Andes Attack   
Andromeda  
Ape Escape   
Apple Panic  
Arachnoid  
Arrow of Death  
Artillery Duel  
Astro Blitz  
Astro Panic  
Atlantis needs NTSC timing
Attack of the mutant camels  
Avenger  
Bandits needs NTSC timing
Battle Zone  
Bewitched ROM version needs SYS 40985
Black Hole  
Buck Rogers  needs NTSC timing
Bumper Bash  
Car Race  
Catch a Snatch  
Caterpilla  
Cave in  
Centipede  
Chariot Race  
Choplifter  
Chuck Norris Superkicks  
Cloudburst needs PAL timing
Clowns  
Commodore Artist needs NTSC timing
Computer War  
Congo Bongo  
Cosmic Cruncher  
Cosmic Firebirds  
Cosmic Jailbreak  
Crawler  
Creepy Corridors  
Crossfire  
Dancing Bear  
Dark Dungeons  
Deadly Duck  
Defender  
Dig Dug  
Donkey Kong  
Doolhof  
ET needs SYS 43762 from BASIC
Face Maker  
Fast Eddie  
Final Orbit needs NTSC timing
Flightpath 737  
Football Manager  
Forth Encounter  
Fort Knox  
Frogger  
Galactic Abductors  
Galaxian  
Garden Wars  
Ghost Manors needs NTSC timing
Gold Fever  
Gorf  
Grandmaster  
Gridder  
Gridrunner  
Guardian  
Hellgate  
Hesmon  
Heswriter  
Home Babysitter  
ICBM  
In the Chips  
Jawbreaker  
Jawbreaker II  
Jelly Monster use the "fixed" version from ftp.funet.fi
JetPac  
Jungle Hunt  
Jupiter Defender  
Kids on Keys  
K-Razy Antiks  
Loderunner  
Lunar Leeper  
Mad Boogie  
Mastertype  
Matrix  
Menagerie  
Meteors  
Mets  
Miner 2049'er  
Mole Attack  
Money Wars needs NTSC timing
Monster Maze  
Moon Patrol  
Moons of Jupiter  
Mosquito Infestation needs PAL timing
Mountain King  
Ms. Pac Man  
Munchman  
Music Composer  
Mutant Herd  
Number Nabber Shape Grabber  
Omega Race  
Orbis  
Outworld  
Pac Man  
Paratrooper  
Perils of Willy  
Personal Finance  
Pharaohs Curse  
Pinball  
Pipes   
Poker  
Polaris  
Pole Position needs NTSC timing
Predator  
Princess and Frog needs NTSC timing
Programmers Aid Start Pfau Zeh, choose 24 KB memory expansion, reset VIC, load cart, don't reset !, type SYS 28681
Protector  
Q-Bert  
Quackers  needs PAL timing
Radar Rat Race  
Rat Hotel  
Renaissance  
River Rescue my first game on a VIC !
Road Race  
Robin Hood  
Robotron  
Sargon II  
Satellite Patrol  
Satellites and Meteorites  
Scorpion  
Sea Wolve  
Seeschlacht  
Serpentine  
Sir Lancelot  
Skibberen  
Skramble seems to use illegal opcodes !
Sky Blazer  
Snake Byte  
Speed Math  
Spiders of Mars  
Spike's Peak needs NTSC timing
Star Battle  
Star Patrol  
Star Post needs NTSC timing
Star Trek  
Sub Chase  
Super Amok  
Synthsong  
Synthsound  
Tank Atak  
Terraguard needs PAL timing
Threshold  
Thriller needs PAL timing
Titan  
Tomarc the Barbarian  
Tooth Invaders needs PAL timing
Topper needs NTSC timing
Tower of Evil  
Trashman  
Traxx needs PAL timing
Tron  
Turmoil needs NTSC timing
Type Attack  
VIC Blitz  
VIC Boogie  
VIC Chess  
VIC Color Test Load BASIC, reset VIC
VIC Graph  
VIC Super Lander  
VIC Super Slot  
Video Man  
Video Vermin  
Wacky Waiters  
Wordcraft needs >= 8 kb memory expansion
World at War  
Xeno II needs PAL timing

 

These programs have some problems with Pfau Zeh for Win32 :

 

Arcadia needs PAL timing, game timer seems too fast
Bongo needs PAL timing, problems with keyboard emulation
Demon Attack needs PAL timing, minor graphic problems
Dragonfire needs PAL timing, minor graphic problems
Krell problems with keyboard emulation, use joystick instead
Meteor Run Seems to work correct, I don't know the original
Robot Panic seems to have some timing problems ???
Star Defence needs PAL timing, start screen is invisible, press fire button to start

 

These programs don't work with Pfau Zeh for Win32 :

 

Cannonball Blitz program jumps into empty RAM, maybe a corrupted image file
Plasma from VVV (PAL timing) Pfau Zeh got serious problems with this but NTSC version seems to work
Most Scott Adams adventures All VIC-20 emulators seems to have problems with this games. I will try to solve this problems with the next version

 


Frequently asked questions :    

Question :  Answer : 
The screen position of a program isn't right. What is wrong ?  Perhaps you use the wrong video timing for this program. Please change this setting in the Hardware\Video menu.
I can't run Pfau Zeh for Win32 and I get only an error message box. Why ?  Have a look at the PFAUZEH.LOG in the Pfau Zeh for Win32 directory. Have you got DirectX2 (or later for Win95) installed? And DirectX compatible drivers? I highly recommend to install DirectX 6.1 for Win9x and the SP4 for WinNT. DirectX3.0 (not 3.0a !) with Win95 can crash the emulator because it is bogus ! Send me the log file and I will answer the question.
The sound output is very bad and it doesn't sound like a real VIC 20. What's the problem ? Good question. First of all, have a look at the pfauzeh.log or at the the help/DirectSound Info dialog. There you can find a quality rating. This rating depends on the capabilities of your sound card and drivers. If the rating is "good" or better than the sound output should be okay. All other ratings are bad and the sound output lacks. Get better drivers or a better card.
Program XXXX seems not to work correctly with Pfau Zeh for Win32. What can I do ? Have a look at the compatibility list in this file for a comment to this game. Change the video timing. If this doesn't help, please send me the game for testing.
Pfau Zeh for Win32 displays a message box where it says that an HLT instruction executed. What does that mean ? The HLT instruction is an illegal instruction which crashes the 6502 CPU. Possible reasons : 1. You have loaded a cartridge file that is a part of 2-file cartridge game. Load the other file , too. 2. The file is corrupted. 3. This is a real bug in Pfau Zeh for Win32, send me your bug report with the PFAUZEH.LOG.
The emulation seems very slow and/or the frame rate is bad. Why ? The performance of Pfau Zeh for Win32 is highly dependable on the speed of your processor and the speed of your graphic card and Direct Draw display driver. Some display drivers (e.g. for old cards like S3 Trio 32 etc) don't support to write directly to the display memory and it will be emulated through the DirectDraw HEL and system memory. This is *very* slow. Please get the latest drivers for your graphic card or buy a better one.
The frame rate seems to be not constant. What can I do? Please close all other running application before you start Pfau Zeh for Win32.
The joystick emulation is very jerky. What's the problem ? You must calibrate the joystick in the Control Panel before you start Pfau Zeh for Win32.
Why can I run Pfau Zeh for Win32 only in a fullscreen mode and not in a windowed mode ? At the very beginning of Pfau Zeh for Win32 I developed it in a windowed mode with different window sizes. Unfortunately the stretching function of DirectDraw is very slow compared with a flip between two surfaces. A windowed version would be much slower and the fullscreen version looks more like a original VIC !
Where can I find DirectX? Try this URL :  

http://ww.microsoft.com/directx

The latest version for Win9X is 6.1. WinNT 4.0 comes with DirectX2. When you've got the SP3 (or later) installed, you've got DirectX3. Win2k will come with DirectX 7.

Will there be ports of Pfau Zeh for Win32 for other OS ? I don't know. Perhaps there will be. If you want to port it to other operating systems feel free to contact me !  BTW: The original version is for Linux and can be found at the Pfau Zeh homepage !
Where can I find games or tools ? Download them from :  

 ftp.funet.fi/pub/cbm/vic20/ 

What the hell does Pfau Zeh means ?  Well, a good question. At the very beginning it was a joke name for my project. The German VIC 20 was called VC 20, I think the reason for that name was the similarity to VW (Volkswagen, a German car manufacturer), the VC 20 should be the VolksComputer, a computer for everybody (like the Volkswagen, a car for everybody). You pronounce the "V" in German like "Pfau" and the "C" like "Zeh". Pfau Zeh simply means "VC" like the german name for the VIC ! 
A word-by-word translation for Pfau Zeh is : Peacock toe ;-)

 


Reporting bugs, problems, comments and mailing list:

 

If you got problems to run Pfau Zeh for Win32 or if you find any bugs in it, please contact me and send me a mail to my address :

 

  pfauzeh@classicgaming.com

 

Any kind of comments are welcome, too. If you find a program which doesn't work with Pfau Zeh for Win32 or got any glitches, please send it to me.

IMPORTANT: Please attach the PFAUZEH.LOG from the Pfau Zeh for Win32 directory and the DDCHECK3.LOG to every bug report or question. Thank you in advance !

There's also a mailing list where I announce new versions of Pfau Zeh for Win32. Please send me an email and I will put you on the list.


New releases and Pfau Zeh for Win32 home page:

You can find new releases on the Pfau Zeh for Win32 home page at :

 

  http://www.classicgaming.com/pfauzeh

 

If you want to be notified if a new version has been released I can put you on the Pfau Zeh for Win32 Mailing list. For further information see above.


History :  

Pfau Zeh is a project I started at the 1st. October 1996. It's the first emulator project I've made and the first program for X-Windows and Win32, too. 

The Commodore VC 20 (the German version of the VIC) was the first home computer I've seen in my life. I've played "River Rescue" on the VIC of a good friend. That's one of the main reasons for me to develop this emulator. And I'm very happy to see that River Rescue runs on Pfau Zeh, it's a very nostalgic feeling, my first computer game ever...

In the past Pfau Zeh was called Pfau Zeh (ASP) but this is obsolete now...Pfau Zeh for Win32 is the first port of the Pfau Zeh for Linux project.

Well, here's the changes to Pfau Zeh for Win32

 

V0.25

V0.2

V0.1

 

** : changed/updated/fixed in this release

++ : new in this release

--  : removed in this release  


Thanks to...

I would like to thank for their help on this project :  

Author of the VIC 20 emulator V20 for DOS for lots of help and for his great documentation.

For his very accurate VIA/VIC/6502 documentation, some suggestions to improve Pfau Zeh and for bug reporting.

BETA tester of Pfau Zeh for Win32 for very much bug reports. Visit his nice VIC 20 page at http://members.xoom.com/vic20

Author of Thriller for his permission to include Thriller in the Pfau Zeh package and for his beta testing of Pfau Zeh for Linux

Author of many emulators, in my case I must thank him for his DASM (6502 disassembler) program. It helps me debugging my emulator.  

For his nice 6510 test suite. I've tested my 6502 emulation with it. Unfortunately he stopped the developing of his PC64 emulator...  

I've taken the VIC 20 picture from her VIC 20 Page. URL : The World of JAZ  

   

Have a lot of nostalgic feelings !

Windows 95/98, Windows NT, Windows 2000, DirectSound, DirectDraw and DirectX are trademarks and copyrighted of Microsoft Coorperation.


Pfau Zeh for Win32 V0.25 rev.1  Copyright 1996-99 Arne Bockholdt  pfauzeh@classicgaming.com