## Cool Bun Demo ![demo](./demo.gif) Built for [The Obligatory Amiga Blitter Video](https://makertube.net/w/eV545ku522sRq8CTcxDuFZ). ## 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. 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) on Vamos's path: ``` # main ruby ./image_converter.rb && touch images.s && vamos -- smake # any others vamos -- smake ``` ## 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.