PS2VIC version 1.0
------------------

Copyright (c) 2004 Rami Rsnen.
E-mail: raipsu@users.sourceforge.net
http://ps2vic.sourceforge.net/


Introduction
------------

PS2VIC is a Commodore VIC-20 emulator for Playstation 2 platform. It
is not based on any other VIC-20 emulator, it is a new project. M6502
emulation core is from the MAME project.

Advantages:
  - 100% speed
  - PAL / NTSC emulation
  - Very accurate sound emulation
  - Cycle based VIC-I Raster emulation
  - Almost every commercial software works

Disadvantages:
  - Not so perfect timing, all demos are not working correctly
  - No cassette/disk drive emulation
  - Probably a lot of other things..

PS2VIC is licensed under GPL. Read COPYING for more information.


Features
--------

  - Full frame rate
  - PAL and NTSC emulation and video output
  - Audio emulation
  - Virtual keyboard
  - USB keyboard support
  - Menu for changing settings and running software


Usage
-----

PS2VIC can be run from cdrom, memory card and host-drive. It autodetects
where it has been loaded from, and loads few irx modules. It also needs a
rombase-file to load firmware etc. Following files must be in the same
directory with PS2VIC executable (ps2vic.elf):

  sjpcm.irx
  npm-usbd.irx or usbd.irx
  ps2kbd.irx
  roms.rb

or

  sjpcm.irx
  npm-usbd.irx or usbd.irx
  ps2kbd.irx
  kernal.rom
  basic.rom
  chargen.rom
  menu.txt

In emulation mode, use the following buttons on PS2 pad:

  Directional buttons     Joystick
  Cross                   Joystick button
  R1                      Open/close virtual keyboard
  Circle                  Press virtual keyboard button
  Square                  Hold virtual keyboard button
  Start                   Open/close menu
  Start+Select            Reset VIC-20

In menu:

  Up/Down                 Browse items
  Left/Right              Change settings
  Cross                   Select item/change setting
  Triangle                Go back to previous menu

You can also attach a real USB keyboard and use it as VIC-20 keyboard.
Keyboard map of USB keyboard is a little bit dumb. Maybe I'll provide
some keymap file in further version.


Virtual keyboard
----------------

Press R1 to view/hide the virtual keyboard in emulation mode.

Use left stick to move "mouse pointer" when the keyboard is visible. Pressing
circle on a key will press corresponding key on VIC-20. Use square to hold
or release a key.

You can drag the virtual keyboard with circle button. Hold circle on top
of the keyboard and use left analog stick to move the keyboard.


Rombase
-------

PS2VIC uses a rombase to store firmware and applications. Use mkrombase
to generate roms.rb.

Make a directory with the following structure:

rombase/
  kernal.rom
  basic.rom
  chargen.rom
  menu.txt

You can create some subdirectories with your applications for VIC-20. To
be able to run them, create menu.txt.

It is not necessary to use rombase, you can have kernal.rom, basic.rom,
chargen.rom, menu.txt and application .prg's in the same directory with
ps2vic.elf.


menu.txt format
---------------

;<directory>                  Create a "directory" into menu
<name>;<startup script>       Create a program entry
;..                           Go back to previous "directory"

Startup script is series of commands separated by ;'s. They are executed
after emulation is reseted. Supported commands:

  RB <num>           Expand memory with a RAM block
                     Supported blocks:
                     0 = 3k at 0400-0FFF
                     1 = 8k at 2000-3FFF
                     2 = 8k at 4000-5FFF
                     3 = 8k at 6000-7FFF
                     5 = 8k at A000-BFFF

  ROM <filename>     Load ROM (cartridge) image

  RAM <filename>     Load prg to RAM after startup, and type
                     RUN<return> automatically

Use "rb:" in filename to indicate that it resides in rombase. If you leave
rb: out, PS2VIC will try to load the file from your boot device (eg. cdrom:
or host:). 


menu.txt example
----------------

;games
;unexpanded
4 op een rij;RAM rb:games/unexpanded/4 op een rij.prg
Abductor;RAM rb:games/unexpanded/Abductor.prg
Alien Armada.b;RAM rb:games/unexpanded/Alien Armada.b.prg
;..
;..


Credits
-------

Juergen Buchueller   M6502 Emulator
Tony Saveski         PS2 GS Routines
TyRaNiD              PS2 USB Keyboard Driver
pukko                PS2 Pad library functions
Nick Van Veen        PS2 SjPCM
