Initial public version

This commit is contained in:
The Dust Council 2026-06-12 11:36:39 -07:00
parent 859b07774f
commit e8aee1bf1c

View file

@ -208,48 +208,6 @@ policy for the Vectorgons path:
```
script-src 'self' 'wasm-unsafe-eval'; connect-src 'self';
```
## Commodore 64 (`c64/`)
A bonus port for the original 1982 hardware lives in [`c64/`](c64/). The 1 MHz
6510 has no floating-point unit and a 1-bit, 320×200 hi-res bitmap, so this is a
ground-up reimplementation rather than the OpenGL engine recompiled — but it
keeps the heart of Vectorgons: **tumbling wireframe polytopes**, cycling through
a small shape library (cube, octahedron, tetrahedron, stellated star, pyramid,
and a 4-D tesseract shadow) in classic monochrome vector-graphics style.
Per the brief, the glass / metal / mirror objects are dropped — there is no
shading on a 1-bit bitmap. The compromises that make it fit a C64:
- **Integer fixed-point everywhere** — a 256-entry signed sine table (scale 128)
drives the 3-D rotation; points are perspective-projected with integer divide.
- **One object at a time**, drawn with a Bresenham line routine straight into the
VIC-II hi-res bitmap; each frame erases the previous edges and draws the new
ones (no full-screen clear) so it stays flicker-free without double buffering.
- Precomputed bitmap row/column/bit-mask address tables for fast plotting.
- A custom cc65 linker config keeps program code below `$2000`, reserves
`$2000$3FFF` for the bitmap, and puts BSS/heap/stack above it.
Build it with [cc65](https://cc65.github.io/) and pack it onto a disk image with
VICE's `c1541`:
```sh
cd c64
make d64 # -> vectorgons.prg and vectorgons.d64
make run # build + launch in the VICE x64sc emulator
```
If `cl65`/`c1541` aren't on your `PATH`, point the Makefile at them, e.g.
`make d64 CL65=/path/to/cl65 CC65_HOME=/path/to/share/cc65`. On real hardware (or
an emulator) load it the usual way and it autostarts:
```
LOAD"VECTORGONS",8,1
RUN
```
Press any key to return to BASIC.
## Settings persistence
Your settings are saved automatically on exit to `~/.vectorgons` (a plain