Amiga blitter, copper, and sprite demo written in C and assembler for my Blitter video https://makertube.net/w/eV545ku522sRq8CTcxDuFZ
Go to file
John Bintz 623e51d164 More cleanups 2024-09-26 17:34:58 -04:00
images starting on the real thing 2024-05-27 14:58:13 -04:00
old starting on the real thing 2024-05-27 14:58:13 -04:00
system Move blitter commoon stuff to blitter header 2024-09-22 06:52:22 -04:00
.ccls starting on the real thing 2024-05-27 14:58:13 -04:00
.gitignore starting on the real thing 2024-05-27 14:58:13 -04:00
.rubocop.yml start on image converter 2024-06-03 12:46:32 -04:00
32x50 prepping for release 2024-09-26 17:32:04 -04:00
32x50_bun.c prepping for release 2024-09-26 17:32:04 -04:00
33x50 prepping for release 2024-09-26 17:32:04 -04:00
33x50_bun.c prepping for release 2024-09-26 17:32:04 -04:00
README.md More cleanups 2024-09-26 17:34:58 -04:00
any_position prepping for release 2024-09-26 17:32:04 -04:00
any_position.c prepping for release 2024-09-26 17:32:04 -04:00
blitter_speed_test starting on the real thing 2024-05-27 14:58:13 -04:00
blitter_speed_test.c starting on the real thing 2024-05-27 14:58:13 -04:00
blitter_speed_test.q double buffering and better startup 2024-06-01 07:42:11 -04:00
blitter_test starting on the real thing 2024-05-27 14:58:13 -04:00
blitter_test.c starting on the real thing 2024-05-27 14:58:13 -04:00
bun.c More performance stuff 2024-09-22 07:32:13 -04:00
bun.h start on more precise topaz art replacement 2024-09-19 21:51:45 -04:00
bun_test buns can march 2024-06-02 14:37:37 -04:00
bun_test.c buns can march 2024-06-02 14:37:37 -04:00
copper-colors it works 2024-06-10 22:04:40 -04:00
demo.gif prepping for release 2024-09-26 17:32:04 -04:00
image_converter.rb 50 fps! 2024-06-13 12:30:39 -04:00
images.s some text stuff, pending cleanup 2024-06-14 09:16:01 -04:00
keyboard_interrupt Keyboard handling, just get this up to 50fps 2024-09-22 06:31:08 -04:00
keyboard_interrupt.c Keyboard handling, just get this up to 50fps 2024-09-22 06:31:08 -04:00
left_side prepping for release 2024-09-26 17:32:04 -04:00
left_side.c prepping for release 2024-09-26 17:32:04 -04:00
main binary 2024-09-22 07:32:44 -04:00
main.c OK this is CPU bound, much precalculating required 2024-09-22 07:36:27 -04:00
mask-bitplane 50 fps! 2024-06-13 12:30:39 -04:00
right_side prepping for release 2024-09-26 17:32:04 -04:00
right_side.c prepping for release 2024-09-26 17:32:04 -04:00
screen.c More performance stuff 2024-09-22 07:32:13 -04:00
screen.h More performance stuff 2024-09-22 07:32:13 -04:00
smakefile prepping for release 2024-09-26 17:32:04 -04:00
sprite-copperlist 50 fps! 2024-06-13 12:30:39 -04:00
sprite-data 50 fps! 2024-06-13 12:30:39 -04:00
topaz-bitplane 50 fps! 2024-06-13 12:30:39 -04:00
topaz-narrow.png 50 fps! 2024-06-13 12:30:39 -04:00
topaz.png start on image converter 2024-06-03 12:46:32 -04:00
types.h More code cleanups 2024-09-19 13:03:46 -04:00

README.md

Cool Bun Demo

demo

Built for The Obligatory Amiga Blitter Video.

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 and SAS/C on Vamos's path:

# main
ruby ./image_converter.rb && touch images.s && vamos -- smake

# any others
vamos -- smake <other>

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.