51 lines
1.6 KiB
Markdown
51 lines
1.6 KiB
Markdown
## Cool Bun Demo
|
|
|
|
![demo](./demo.gif)
|
|
|
|
Built for [The Obligatory Amiga Blitter Video](https://makertube.net/w/eV545ku522sRq8CTcxDuFZ).
|
|
|
|
Uses a bunch of C and Assembler code to drive the blitter, sprites, and copper
|
|
to display high color Topaz art overtop of flying cool bun logos.
|
|
|
|
## Running
|
|
|
|
Click the mouse to escape any demo.
|
|
|
|
* `main`: Main demo
|
|
* `32x50`, `33x50`, `left_side`, `right_side`: Rendering Cool Bun in various
|
|
locations on screen.
|
|
* `any_position`: Cool Bun flies around like a DVD player pause screen.
|
|
* `keyboard_interrupt`: Tests using `input.device` to access the keyboard.
|
|
* `blitter_speed_test`: Get the speed of blitter vs. CPU memory operations
|
|
* `bun_test`: Run some unit tests (yes, really!)
|
|
|
|
This will get 50 fps on an 020, and 25 or lower on an 68EC020 and below.
|
|
|
|
## Building
|
|
|
|
### Vamos
|
|
|
|
You'll want [Vamos](https://github.com/cnvogelg/amitools/blob/master/docs/vamos.md),
|
|
and [SAS/C](https://www.amigaclub.be/blog/steffest/2/amiga-c%20compilers)
|
|
& [GenAm from DevPac](https://archive.org/details/Devpac_v3.14_1994-12-16_HiSoft)
|
|
on Vamos's path:
|
|
|
|
```
|
|
# main
|
|
ruby ./image_converter.rb && touch images.s && vamos -- smake
|
|
|
|
# any others
|
|
vamos -- smake <other>
|
|
```
|
|
|
|
The image converter requires Ruby 3.2.4 and RMagick installed.
|
|
|
|
## Performance
|
|
|
|
The best way I can think of to make this way faster is for a script in
|
|
Ruby or Python to calculate every blitter register for every frame of data
|
|
for bun renders and clears, store that in a list of words, and rip through
|
|
those lists in Assembler, shotgunning the values directly into the registers
|
|
without the C code needing to track bun positions and bun clears. That's a
|
|
project for another day.
|