Skip to content

v1.0.0 - Initial public release

Choose a tag to compare

@xahmol xahmol released this 22 Aug 11:25
· 8 commits to main since this release

A from-scratch Commodore 128 VDC (8563/8568, 80-column chip) demo, written
in C with the Oscar64
cross-compiler -- showcasing the VDC's rare 64KB-VDC-RAM bitmap modes
(480x252 colour up to 800x600 monochrome) with real sourced artwork,
procedural effects, and a fastloader-backed asset pipeline.

This is the first public release. Every mode/section has been verified on
real Commodore 128D/128DCR hardware with an Ultimate II+, not just in
emulation.

vdcmaniac

Showcase modes

  • VDC-FLI (480x252, colour, non-interlace) + VDC-HFLI (640x400,
    colour, non-interlace) -- 3 Van Gogh paintings, 3 Hokusai woodblock prints.
  • VDC-IFLI: VDC-IHFLI (640x480, colour, interlace) + VDC-ITFLI
    (640x576, colour, interlace) -- 6 CC-licensed photographs.
  • VDC-mono: VDC-IMONO (720x700, interlace) + VDC-IM800 (800x600,
    interlace) -- 6 more photographs, one the author's own cat.
  • VDC Spectrum (256x192, doubled to 512x192) -- 3 real ZX Spectrum
    demoscene graphics-competition entries, decoded from genuine .scr screen
    dumps.

See the README's own Screenshots section
for every picture with full attribution.

Procedural effects

  • Plasma -- classic sine-table interference pattern, rendered directly
    into VDC bitmap memory.
  • Colour rotation -- palette/attribute cycling over a fixed bitmap.

VDC-SCROLL family

Three scripted-scroll sections sharing one menu row, built on a
real-hardware-verified technique for VDC register 27 (ROWINC) that
required root-causing an undocumented chip-level addressing quirk:

  • VDC-VSCROLL -- vertical scroll through a 640x798 tall bitmap.
  • VDC-PANORAMA -- horizontal pan through a bitmap wider than the
    display, via R27 + hardware HSCROLL.
  • VDC-PANORAMA 2D -- both combined into a diagonal 4-corner tour of a
    bitmap both wider and taller than the display.

Engine

  • Custom raster-IRQ trampoline on the CPU's hardware interrupt vector,
    driving every raster-bar effect and, via a foreground fallback, SID
    music playback.
  • Krill's fastloader with on-the-fly TSCrunch decompression for every
    asset load -- no raw picture files ship on the disk.
  • From-scratch VDC mode/register library (include/vdc_core.c) and its
    own picture converter (tools/vdc_convert.py).

Documentation

  • ARCHITECTURE.md, vdc_reference_manual.md, raster_lib_manual.md,
    krill_manual.md -- full internal design and VDC-register reference.
  • A PDF build of the README (make docs, requires pandoc) is included in
    this release's ZIP.

Requirements

  • Krill's fastloader needs exclusive use of the IEC bus (only the drive
    holding the demo disk, at device 8).
  • Only a D81 disk image is supported (SD2IEC is not -- cycle-exact IEC
    timing is required). See the README's own Requirements/Known issues
    sections for full detail, including monitor-compatibility notes per VDC
    mode.

Getting started

  1. Download vdcmaniac_v1.0.0.zip below.
  2. Extract it -- it contains vdcmaniac.d81 (the disk image) and
    README.pdf.
  3. Write the D81 to a real 1581 (or equivalent, e.g. an Ultimate II+), or
    mount it directly on an Ultimate II+ / in VICE
    (x128 -drive8truedrive vdcmaniac.d81).
  4. Boot with only that drive active on the IEC bus, at device 8.

Full requirements, known issues, and build-from-source instructions are in
the README.