cool-bun-demo/README.md

40 lines
1.1 KiB
Markdown
Raw Normal View History

2024-09-26 21:32:04 +00:00
## Cool Bun Demo
2024-09-22 12:13:38 +00:00
2024-09-26 21:32:04 +00:00
![demo](./demo.gif)
2024-09-22 12:13:38 +00:00
2024-09-26 21:32:04 +00:00
Built for [The Obligatory Amiga Blitter Video](https://makertube.net/w/eV545ku522sRq8CTcxDuFZ).
2024-09-22 12:13:38 +00:00
2024-09-26 21:32:04 +00:00
## Running
* `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.
This will get 50 fps on an 020, and 25 or lower on an 68EC020 and below.
2024-09-22 12:20:58 +00:00
2024-09-22 12:12:37 +00:00
## Building
### Vamos
2024-09-26 21:32:04 +00:00
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)
on Vamos's path:
2024-09-22 12:12:37 +00:00
```
2024-09-26 21:32:04 +00:00
# main
2024-09-22 12:12:37 +00:00
ruby ./image_converter.rb && touch images.s && vamos -- smake
2024-09-26 21:32:04 +00:00
# any others
vamos -- smake <other>
2024-09-22 12:12:37 +00:00
```
2024-09-26 21:32:04 +00:00
## 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.