VIC 20 Emulator

Pfau Zeh for Linux

Documentation

Version 0.8 (24.11.97)

(C) 1998 Arne Bockholdt


This documentation should help you to use the VIC 20 Emulator Pfau Zeh for Linux. You can read it with all available WWW Browsers. To display the included picture, you need a graphical  browser like Netscape etc.

Pfau Zeh for Linux is :

PFAU ZEH FOR LINUX 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.8
  2. Requirements to run Pfau Zeh for Linux
  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 Linux => VIC 20
  14. To do...
  15. Compatibility
  16. Questions and answers
  17. Reporting bugs, problems, comments and mailing list
  18. New releases and Pfau Zeh for Linux home page
  19. History
  20. Thanks to...

What's new in version 0.8 :


Requirements to run Pfau Zeh for Linux

Hardware :

Software :


Installation

First of all, please extract the Pfau Zeh for Linux  package with
 

. It will create a directory structure like this :

In the ROMS/ directors there're the following ROM files: :
 

You can find these ROM sets on this FTP Server :
 

The ROMs are copyrighted by Commodore Business Machines.

That's all ! Please compile your Linux kernel with sound driver enabled to get sound output and install the Linux joystick module to control the VIC 20 games with a real joystick.


Command line options

Pfau Zeh for Linux got the following command line options :

You can specify more than one image at the command line. All  images will be loaded into VIC memory.


Menu options

The Pfau Zeh for Linux menus gives you the possibility to control Pfau Zeh for Linux  in various ways. Here is a short description of the menus and their functions :

File menu :  

 

Options menu :

Memory ... :

 

Speed ... :

 

 Video ... :

 Reset VIC 20... :

 


File format support

Here's a list of supported file formats :  

Not supported are :


Video emulation

There are two different video modes for two different TV systems. The german VC 20 used the PAL system and the american VIC 20 used the NTSC system.

You can choose the emulated video system with the Video timing option 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 change the video timing !

You can double the height and the width of the Pfau Zeh window with the "-highres" parameter but it needs 4 times the CPU time to display one frame. You need a very fast computer to use this option...


Sound emulation

The VIC 20 produces 3 melodic and 1 noise voice. There's a volume control for this voices too. Pfau Zeh for Linux 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 Linux renders 8 Bit mono samples with 44.1 khz sampling rate.

If you want to hear this sounds you must have a sound card with Linux driver in the Linux kernel. All PC sound cards should be able to play this kind of samples.
If you don't have a sound card you can disable the sound output with the

command line parameter, but Pfau Zeh for Linux tests the presence of a sound card each time it starts, so there should be no need for this option...

If you want to get a more realistic sound output use the

command line parameter. You will get a smoother sound with some noise like on a real VIC 20 with an old TV. Please mail me your comments about this "feature" !!!!
The TV sound emulation needs much more CPU time as the normal sound emulation because it renders two more voices and uses another wave form for the melodic voices.


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 Linux uses for the emulation. Here's a list :

 

RUN-STOP = TAB key

Control = Left Control key

CBM = Left ALT key

Home = Home (Pos 1) Key

£ = Insert Key

Cursor Down = Page Down Key

Cursor Right = Page Up Key

Arrow Up = End Key

Restore = F12

 

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

Pfau Zeh for Linux is developed for US-layout keyboards, so if you use another one (e.g. german ;-) ) you can't use all keys.


Joystick emulation

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

-joy  

option. You must center the joystick when you start the emulator because Pfau Zeh for Linux tries to calibrate it for its use. This option disables the keyboard joystick emulation !
 


Paddles emulation

Pfau Zeh for Linux got a simple 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.


Light Pen emulation

The Light pen emulation is implemented with help of the mouse. You can choose the desired position on the Pfau Zeh for Linux screen with the mouse cursor and press any button of the mouse.
 

There aren't many programs for the VIC 20 that use a light pen. The only one I know is "Commodore Artist". It seems to work well in NTSC mode. If you find other programs with light pen control, please send them to me !!!!!!


Comparison Pfau Zeh for Linux => VIC 20

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

VIA 1:

VIA 2

VIC

 

Misc.

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 Linux for the future :
 


Compatibility

Here're the programs I've tested with the current version of Pfau Zeh for Linux 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 Linux :

 

Name of tested program : Comment : 
AE  
Aggressor  
Alien Blitz  
Alien Side-Step  
Amidar use -ram parameter 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 for Linux, 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 Linux :

 

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 Linux :

 

Cannonball Blitz program jumps into empty RAM, maybe a corrupted image file
Plasma from VVV (PAL timing) Pfau Zeh for Linux got serious problems with this but NTSC version seems to work

 


Questions and answers :    

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 Video menu.
I can't run Pfau Zeh for Linux and I get only a message "failed" at startup. Why ?  Use the "-verbose" parameter to see why Pfau Zeh for Linux fails to start.
Program XXXX seems not to work correctly with Pfau Zeh. 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 Linux fails when it tried to allocate colors. Why? You run another program which uses much colors. Please close it first and try again.
Pfau Zeh for Linux is too fast. What can I do ?  Set the frame rate to a higher value or/and increase the slow down delay. Use a higher resolution with "-highres" parameter
Pfau Zeh for Linux is too slow. What can I do ? Set the frame rate to a lower value and set  the slow down delay to 0. Use the normal resolution. You can disable the sound with -nosound parameter or the -tvsound option. You should use the key joystick control because it's faster than the /dev/js0 joystick emulation. And last but not least buy a faster computer ;-)
Where can I find the joystick driver for Linux ? Try this URL :   

I think the latest version is 0.8.0. There's a patch for kernel versions 2.1.X too.

Will there be ports of Pfau Zeh for Linux for other OS ? A Win32 port is available. It runs with Win95/98 or WinNT. Perhaps there will be other ports, too. If you want to port it to other operating systems feel free to contact me !
Where can I find games or tools ? Download them from :  
What the hell does Pfau Zeh for Linux 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 !

 


Reporting bugs, problems, comments and mailing list:

If you got problems to run Pfau Zeh for Linux 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 Linux or got any glitches, please send it to me. Thank you in advance !

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


New releases and Pfau Zeh for Linux home page:

You can find new releases on the Pfau Zeh for Linux 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 Linux 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, 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...

Well, here's the changes since version 0.1beta :

V0.8, build date 24.11.97

V0.7, build date 29.07.97

V0.6, build date 07.07.97

V0.55, build date 28.05.97

V0.5, build date 12.04.97

V0.41 release, build date 24.3.97

V0.4 release, build date 24.3.97

6502  :
 

VIA   :

VIC   :

Misc. :

V0.4 beta1, build date 15.3.97

V0.3 release, build date 9.3.97
 

V0.3 beta2, build date 10.2.97

V0.3 beta1, build date 2.2.97

V0.2 release, build date 30.1.97

V0.2 beta2, build date 22.1.97

V0.2 beta1, build date 12.1.97

V0.1 release, build date 8.1.97

V0.1 beta4, build date 16.12.96

V0.1 beta3, build date 13.12.96

V0.1 beta2, Build date 27.11.96


Thanks to...

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

   

Have a lot of nostalgic feelings !


Pfau Zeh for Linux V0.8 rev.2 Copyright 19987 Arne Bockholdt pfauzeh@classicgaming.com