Advanced VIC-II Programming: A Comprehensive Guide to C64 Demo Effects

FairLight - Home of the Real Crackers

Summary:

This video offers a comprehensive guide to advanced programming techniques for the Commodore 64's VIC-II chip, essential for aspiring demo coders. Key topics include:

  • An introduction to the "Holy Trinity" behind the C64's hardware (Al Carpentier, Bob Giannis, Chuck Pedal).
  • Defining fundamental terms like "raster line," "horizontal blank," and "vertical blank," and understanding VIC register behavior.
  • Detailed explanations of "bad lines" and their impact on CPU cycles.
  • Exploration of advanced graphic effects, including multi-layered sprites, Flexible Line Distance (FLD), and Line Crunch.
  • Deep dives into Virtual Screen Position (VSP), Any Given Screen Position (AGSP), and Flexible Line Interlace (FLI) for complex visual manipulations.
  • Insights into sprite-specific tricks like "Dough Hook" and "Sprite Crunch," showcasing how to manipulate sprite pointers and displays for unique visual outcomes.
    Important VIC registers and their functions for C64 programming
    Important VIC registers and their functions for C64 programming [ 00:15:50 ]
    Any Given Screen Position (AGSP) combines line crunch, VSP, and FLD for full-screen graphics movement
    Any Given Screen Position (AGSP) combines line crunch, VSP, and FLD for full-screen graphics movement [ 01:10:01 ]

Introduction to C64 Demos and VIC-II Chip [0:09]

Key C64 Figures (The Holy Trinity) [02:47]

The Holy Trinity of the C64: Jack Tramiel, Al Carpentier (VIC-II), and Chuck Peddle [<a href="https://youtube.com/watch?v=lLpXS6YiK3k&t=6502">6502</a>]
The Holy Trinity of the C64: Jack Tramiel, Al Carpentier (VIC-II), and Chuck Peddle [<a href="https://youtube.com/watch?v=lLpXS6YiK3k&t=6502">6502</a>] [ 00:04:30 ]

Defining Important Terms and Concepts [04:50]

Important VIC Registers [15:41]

Important VIC registers and their functions for C64 programming
Important VIC registers and their functions for C64 programming [ 00:15:50 ]

Understanding Graphics Layers ("A Bug or Isn't It?") [24:51]

VIC-II Chip Quirk: Gray Dot / Read-Modify-Write Instructions [32:38]

Key Demo Effects and Techniques

Open Upper/Lower Border [42:32]

Flexible Line Distance (FLD) [45:55]

Line Crunch [49:49]

Virtual Screen Position (VSP) [01:03:39]

Any Given Screen Position (AGSP) [01:08:39]

Flexible Line Interlace (FLI) [01:13:07]

Open All Borders (Escos) [01:19:58]

Dough Hook (Sprite Y-expansion trick) [01:32:02]

Sprite Crunch [01:33:55]