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.
|