Logo

FORUM GITHUB | DISCORD

Mini boards now on sale!

US/CAN/AUS/NZ orders https://vicii-kawari.myshopify.com

UK/EU orders https://videogameperfection.com/products/vic-ii-kawari

* NOTE: VGP also ships worldwide

VIC-II Kawari 

VIC-II Kawari is my hardware replacement project for the VIC-II (Video Interface Chip II) found in Commodore 64 home computers. In addition to being compatible with the original VIC-II 6567/6569 chips, some extra features are also available. This project is meant to replace video chips found in breadbins. A C64-C replacement for the 8562/8565 is not (yet) available.

The PCB interfaces with a real C64 address and data bus through the VIC-II socket on a C64 motherboard. The board can replace all the functions of a real VIC-II chip including DRAM refresh, light pen interrupts, PHI2 clock source for the CPU and, of course, video output. (NOTE: Light pens would only work on a real CRT using composite.)

Have a board? Join the discord server to chat/ask questions.

Discord Server

Have an issue/bug? Research/Report it here.

Github Issues

Large Design (some installation caveats)

Small Design

Features

  • No 'VSP' bug
  • Configurable color palette (18-bit color space)
  • No need for a working clock circuit
  • Can software switch between NTSC and PAL
  • Optional hardware switch for NTSC / PAL switching at cold boot
  • An 80 column mode and (possibly) some new graphics modes
  • Compatible with 1084-S, 1084-D and 1080 monitors (with custom cable)
  • It's not an almost 40 year old device that may fail at any time

Limitations

  • Dot clock is not propagated to Pin 6 of cartridge port when using on-board oscillators
  • Large board HDMI port not easily accessible unless RF sheild removed
  • Board can be powered by HDMI monitors requiring monitor to be powered off
  • 'Native' motherboard clock circuit not suitable for generating HDMI (sometimes)
See github README for more details on device limitations

Video Blog on my YouTube Channel

I've been video blogging my development of this project on YouTube. Here are the links if you are interested in watching.

Part 1 - First prototype on a breadboard
Part 2 - VGA/HDMI added
Part 3 - Second prototype on MojoV3 and testing
Part 4 - Some extra features added
Part 5 - All-in-one PCB, NovaTerm Driver
Part 6 - Testing
Part 7 - Design Split

     Become a Patron!      Bitcoin Donations Accepted: 1EGazvbkXy5p43ynzMipKxKtMJfFuSS1UZ

Q&A

Is this emulation?

That's a matter of opinion. Some people consider an FPGA implementation that 'mimics' hardware to be emulation because some behavior is being re-implemented using a high level hardware description language. But it's important to note that the PCB is not 'running' a program like you would on a PC. The PCB is providing a real clock signal to drive the 6510 CPU. It's also generating real CAS/RAS timing signals to refresh DRAM. It is interacting with the same address and data bus that a genuine chip would.

Can this be a whole C64 on its own?

No. It only replaces the functions of the VIC-II video chip. You still need a working 6510, SID, DRAM, CIA's and all the other components that make up a C64. However, since VIC-II Kawari has its own clock, a functioning clock circuit is not required.

You are familiar with the thought experiment 'The Ship of Theseus' in the field of identity metaphysics?

Naturally.

How accurate is it?

To measure accuracy, I use the same suite of programs VICE (The Versatile Commodore Emulator) uses to catch regressions in their releases. Out of a total of 280 VICII tests, 280 are passing (at least by visual comparison).

I can't test every program but it supports all the graphics tricks programmers used in their demos/games. It is safe to say it is a faithful reproduction of the original chips.

What models of VIC-II chips will this replace?

It will replace 6567 and 6569 models found in breadbins. I am targeting breadbins initially. It can assume the functionality of either video standard with a simple configuration change followed by a cold boot. This means your C64 can be both an NTSC and PAL machine. (PAL-B only, PAL-N/PAL-M are not supported yet but could be in the future)

What kind of video options will there be?

I am planning on supporting HDMI and VGA. My latest design also generates luma/chroma signals for the RF modulator so the regular composite/RF video output will also work.

Will this make my C64 look like an emulator?

On an HDMI monitor, yes. Some people don't like the pixel perfect look. The default display mode applies half brightness to alternating lines, yielding a raster line effect. This makes the picture look slightly darker so it's not to everyone's taste. If you want the look of a CRT, you should choose one of the analog options (VGA/Composite). Also, the resolution will not match an HDMI monitor's native resolution, so there will always be some scaling taking place.

Will HDMI/VGA add delay to the video output?

There is no frame buffer for video output. However, there is a single raster line buffer necessary to double the 15khz horizontal frequency. Although this adds a very small delay, it is a tiny fraction of the frame rate and is imperceivable by a human. For HDMI, any additional latency will be from the monitor you use. Most TVs have a 'game mode' that turns off extra processing that can introduce latency and it is highly recommended you use that feature.

For composite output, the beam is driven in real time just like a genuine chip.

Will I need to modify my C64?

I'm trying to provide installation options that will not require modification to the machine.

Will this be open source?

Yes. Source has been released to the github site.