Releases: xahmol/vdcmaniac
Release list
v1.0.1 - Real-hardware fixes, credited to Tokra
A real-hardware feedback pass on v1.0.0.
Thanks to Tokra
Every fix in this release was prompted by Tokra (Akronyme Analogiker)
live-testing v1.0.0 on his own C128 and RGBtoHDMI setup after release,
and reporting back in real detail -- VICE-monitor register-dump
comparisons against his own working "VDC Mode Mania" build, a direct
screenshot review of a raster-timing routine, and real-monitor
observations from years of his own VDC demo work. Thank you for the time
spent testing and the precision of the reports -- this release exists
because of that feedback.
Fixes
- VSYNC (register 7) off-by-one on VDC-IMONO/VDC-IM800/VDC-ITFLI.
Tokra reported RGBtoHDMI interlace fields swapped for the mono modes; a
live VICE-monitorio d600comparison against his own build (his own
idea) found this project'sVTOTAL - VADJUSTderivation undershooting
his real literal values by exactly 1 for three of the four interlaced
modes he checked (VDC-IHFLI's own value already matched). Fixed to his
own constants -- the ITFLI fix was missed in this tag's first pass and
folded in shortly after; see "Amendment" below. - REFRESH (register 36) boot-baseline leak on the same two modes,
found in the same comparison pass -- a recurrence of this project's
own known "boot-baseline register leak" bug class on a register that
hadn't been added to the capture/restore set yet. raster_calibrate()'s CIA-timer sync-point bug. Tokra reviewed a
screenshot of the calibration loop directly and identified that the
CIA timer started counting before any known VBlank-aligned reference
point, letting the first sample land anywhere in a frame -- fixed by
establishing that reference point before the timer starts. Cross-
validated afterward against an independent real-hardware measurement
("Risen from Oblivion VDC v2", Crest/Oxyron 2006) landing on the exact
same value on the same machine.- Title screen raster bar retuned for the small timing shift the
calibration fix introduced.
New
- Live VSYNC nudge (cursor up/down) on the four interlaced-colour/
mono showcases, added directly on Tokra's own observation that
"interlace is super fiddly -- some displays may actually need the +1
value," and that his own original demo already offers exactly this
live adjustment. On-screen key hints now show it (and the existing
+/-colour cycle) on the relevant info screens. - Genuine diagonal panning in VDC-PANORAMA 2D's scripted tour -- two
of its four legs are now real simultaneous-axis diagonal glides across
the full image, not just alternating vertical/horizontal edge traces. - Build version + timestamp now shown on the system diagnostics
screen.
Credits
Full, dedicated thanks to Tokra added to include/defines.h's own
credit block, this changelog, and the in-demo end-credits scroller --
alongside newly added credits for VDC SpectruMania and Colour
Spectrum (both C128 VDC takes on ZX Spectrum graphics that inspired
VDC Spectrum mode) and Risen from Oblivion VDC v2 (whose own
VDC-timing "system analysis" screen inspired raster_calibrate()),
which were missing from the v1.0.0 credit block.
Amendment (same tag)
A re-audit of the full Messenger thread with Tokra found his VDC-ITFLI
report ("you use 99 while I use 98 for reg 7, decimal") hadn't actually
been applied in the first fix pass, despite being recorded as done.
Fixed and folded into this same v1.0.1 tag/release rather than cut as a
separate patch version, since the original hadn't been widely distributed
yet. If you already downloaded v1.0.1 before this note, re-download --
VDCR_VSYNC for VDC-ITFLI changed from 0x63 (99) to 0x62 (98).
Getting started
- Download
vdcmaniac_v1.0.1.zipbelow. - Extract it -- it contains
vdcmaniac.d81(the disk image) and
README.pdf. - 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). - 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.
v1.0.0 - Initial public 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.
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
- Download
vdcmaniac_v1.0.0.zipbelow. - Extract it -- it contains
vdcmaniac.d81(the disk image) and
README.pdf. - 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). - 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.
