Initial public version
This commit is contained in:
parent
859b07774f
commit
e8aee1bf1c
1 changed files with 0 additions and 42 deletions
42
README.md
42
README.md
|
|
@ -208,48 +208,6 @@ policy for the Vectorgons path:
|
||||||
```
|
```
|
||||||
script-src 'self' 'wasm-unsafe-eval'; connect-src 'self';
|
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
|
## Settings persistence
|
||||||
|
|
||||||
Your settings are saved automatically on exit to `~/.vectorgons` (a plain
|
Your settings are saved automatically on exit to `~/.vectorgons` (a plain
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue