VIC20

This is a port of the MiST VIC20 core to the Turbo Chameleon 64 cartridge.

This is not the same as the official Chameleon VIC20 core which, as I understand it, was developed mostly as an exercise in debugging the VIA chip implementation (needed for 1541 disk drive emulation in the C64 core). Turning that core into a polished end-user product was never the main goal, or a high priority – which is why I felt it worthwhile to bring the MiST VIC20 core to Turbo Chameleon 64.

This is an experimental core, and while I do my utmost to make sure it works for everyone and will try to help solve any problems that arise, you run this core entirely at your own risk.

If you’d like to show your appreciation for this core, or motivate me to work on this and other cores in future, donations are welcome at https://paypal.me/robinsonb5 or https://patreon.com/coresforchameleon. Anyone donating £20 or more via PayPal or sponsoring on Patreon at the second tier will be thanked by name in a “Core Supporters” shout-out page in subsequent releases.

Please note: it’s vitally important that you download the correct version of the core for your Chameleon.

VIC20 for Chameleon V1 hardware: If you have a single mini-DIN socket on the left hand side of your Chameleon, to which a breakout cable attaches for the keyboard and mouse, then you have V1 hardware and need this version:

VIC20 for Chameleon V2 hardware:  If you have three mini-DIN sockets on the left-hand side, with the keyboard and mouse plugging in directly, you have V2 hardware, and need this version:

Currently supported:

  • .PRG files
  • .TAP files
  • .D64 disk images
  • C64 keyboard / joystick
  • Real disk drives on the IEC port
  • CDTV joypad

Known problems:

  • The core doesn’t currently work correctly in NTSC mode. Disk loading seems to be OK, but neither tape nor cartridge loading works correctly. Loading a game and then switching to NTSC mode does appear to work, however.
  • After loading a .prg file you may have to type “RUN” to make the program run.
  • Occasionally the VIC will freeze after a program is loaded and will need to be reset.

ROM

The core requires a ROM file in the root of the SD card, called VIC20.ROM An example ROM file can be found at https://github.com/mist-devel/mist-binaries/tree/master/cores/vic20 or you can create your own by joining together ROMS found in, for example, the VICE package. The ROMs should be concatenated in the order:

  • C1541 (16k)
  • Kernal PAL (8k)
  • Kernal NTSC (8k)
  • Basic (8k)
  • Char (4k)

Controls

The VIC20 keyboard is emulated via the PS/2 keyboard, and the C64 keyboard is mapped directly.

Other keys:

FunctionPS/2 keyboardC64 keyboardCDTV controller
MenuF12
Power
RestoreF11Restore
ResetF10
Reset / Cart unloadShift-F10
Play/Pause tapeF9Play/Pause

The tape play/pause function can also be accessed via the menu.

Hold the menu button for 1 second or longer to toggle the scandoubler on or off.

Source code for this core can be found at https://github.com/robinsonb5/VIC20_MiST/

The core is based on the FPGAArcade Replay VIC20 core by Mike Johnson and others. MiST port by Gyorgy Szombathelyi with contributions by Nino-porcino.

The Turbo Chameleon 64 port wraps the MiST core in a compatibility layer (DeMiSTify, by Alastair M. Robinson), and makes very few material changes to the core itself. It does, however, include the newer SID implementation from the MiSTer C64 core, by Alexey Melnikov, with the lookup tables’ representation adjusted to be more space efficient by Alastair M. Robinson.