Projekt 1065: A Practical Book Review
The Commodore 64 is dead. Most people still write about it like it matters. But Projekt 1065 by Markus "Bisqwit" Rintanen is one of those rare books that actually makes you care about the hardware underneath all the nostalgia. It is not a guide to writing games or making chiptunes. It is a dense, technically rigorous walkthrough of the C64's VIC-II chip, SID chip, and CPU architecture, written for people who want to understand how the thing actually works at the register level. If that sounds boring, it probably will be. If you are the kind of person who stays up until 3 AM reading memory maps, this book is your new bible. This book assumes you already know what a 6502 processor is and that you have written assembly before. It does not hold your hand through basic concepts. I remember reading the first chapter on VIC-II sprite registers thinking, okay, I know this stuff, and then hitting page twelve where Bisqwit starts describing the exact bitwise layout of the sprite expand and overflow registers with timing diagrams that assume you are running a debugger. You are not going to learn the C64 from this book if you have never opened a service manual or flashed a cart before. That is the point. It targets hardware hackers, retro developers, and people who need to write a custom OS or a demoscene intro and cannot afford to guess at register behavior. I personally ran into an edge case that nearly broke my confidence with the material. I was following the SID filter mode calculations around chapter eight, trying to implement a resonant filter patch program. The book describes the filter frequency and resonance register interactions in a way that is technically correct but practically ambiguous when you are dealing with real hardware versus an emulator. My patches were clipping at high resonance values regardless of what the formula said. The workaround was to add a hard clip at 0x0FFF on the frequency parameter and to cap resonance at 0x7F instead of letting it hit full scale. After that, the math in the book matched exactly what I observed on both a real C64 and in VICE. The book does not mention this. You figure it out by breaking things.
What the Book Covers Well
The VIC-II section is thorough. I mean genuinely thorough, the kind of thorough that makes you question why anyone would ever try to write a sprite multiplexer without reading the relevant sections twice. Bisqwit goes line-by-line through the raster interrupt timing, explains how the screen base address and horizontal scroll interact with the CIA registers, and provides real code examples in 6502 assembly that you can assemble and run. The SID chapters are equally detailed, covering oscillators, filters, envelope generators, and the noise generator. The CPU section is shorter but sufficient for reference. The writing style is dry. No humor, no anecdotes, just specifications and implementation notes. That is not a complaint. It is exactly what you want when you are reading a technical reference. The biggest issue beginners face is that the book assumes you have a working development environment set up. If you do not know how to install CC65, assemble with ACME, or load programs via a carbide or SD2IEC device, you will struggle. I spent two full days just getting a build chain working before I could even test the code examples. The book does not cover setup. It starts at the assumption that you already have a machine or emulator ready to go. Also, some of the timing diagrams use PAL values. If you are on NTSC, you need to adjust for the different frame rate and cycle counts. The book mentions this in passing but does not provide a full NTSC conversion table. Another problem: the SID chapter uses a specific version of the SID chip (the 8580) for its examples. The older 6580 behaves slightly differently, particularly around filter behavior and oscillator drift. If you are targeting original hardware, this distinction matters. There is a short note about it but not enough for someone who is unaware of the difference between the two chips. I also found that the raster interrupt examples in the VIC-II section rely on exact cycle timing that is harder to replicate on real hardware than in emulation. On a real C64, the VIC-II and CPU share the same bus, and other peripherals like the SID or data directory can steal cycles. The code works perfectly in VICE but may desync on actual silicon if you have a disk drive attached and are reading from it during the interrupt handler. The workaround is to either disable the disk controller during your raster demo or to make your interrupt routine cycle-independent where possible. The book does not discuss this tradeoff at all.
Where It Falls Short
There is no index. I repeat, no index. Looking up a specific register or feature requires you to scroll through the table of contents and guess which chapter covers it. The chapters are organized by hardware component rather than by topic, which is fine for a reference but annoying when you are trying to find something quickly. The PDF is also unpaginated in the traditional sense. It uses a continuous scroll layout that some readers find easier but makes referencing specific sections difficult. I ended up bookmarking pages in my PDF viewer after about three weeks because I kept losing my place. The book is also not updated. It was released several years ago and covers the C64 as it existed in the mid-1980s. Modern developments like the C64DTV, the Ultimate 64, or FPGA-based reproductions are not addressed. If you are working on custom hardware that extends the original design, you will need to supplement this with current schematics and datasheets from MOS Technology originals or community documentation.
Get the Full Details

Alternatives Worth Considering
If Projekt 1065 feels too dense for where you are right now, start with the Commodore 64 Programmer's Reference Guide. It is older, more accessible, and covers the same hardware at a higher level. If you want something more focused on graphics and demoscene techniques, check out the "C64 Demo Scene Guide" by various authors on pouet.net. For pure SID work, the SID documentation from the VICE emulator project is surprisingly good and free. But for deep hardware understanding, nothing beats Projekt 1065. It is the most complete single-source reference I have seen for the C64's inner workings, and it rewards careful reading with knowledge that you will actually use when building something real. The book is available for free from Bisqwit's website. There is no paid edition, no print version, and no official support forum tied to it. You are on your own with the errata, which is fine because there are very few errors. The ones that exist are minor typos in register addresses that you will catch the first time you assemble and get a syntax error. Just read carefully, test on real hardware when you can, and accept that some things only make sense after you have burned through a few cartridges debugging them yourself.