M1ngXU / demo-moonshine-seawaves

Amiga 500 demo including copper lists and bitmap tricks

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Amiga 500 demo featuring the following technical highlights:

  • Assembly programming on the Motorola 68000 using several self-created APIs, including a GIF 87a decoder for importing the image art.
  • Efficient use of bitmaps by reusing the six bitplanes of the extra half-bright mode unchanged for the water reflection. This includes a Copper program as machine code (so-called Copper list) that selects the appropriate bitmap line within each horizontal blank.
    • At the start, the bitmaps and copper list are set up before reading the image so that you can watch the GIF-decoder's byte-to-bitmap conversion (which takes a bit on a 68000).
  • The water reflection includes two further Copper effects:
    • Seawaves by sine cycling the horizontal offset of the water lines. The more the line approaches the horizon, the smaller the amplitude.
    • More gloomy and bluish color palette, set on the horizon.
  • The joystick input is fetched from the 8520 CIA registers and used to move a pointer sprite on the upper section. You can even draw by pressing the fire button and moving around. As the bitmaps are reused for the sea, the drawing also appears there.

Splash

How to Start

The easiest way is to put the repository into a mounted directory of an emulated A500 and to invoke the executable which is provided for convenience.

cd bin
Demo

The sources are also included. Within your assembly IDE, you need to assemble src/Demo and start it from the src folder (relative pathes at work...).

By the way, press the mouse button to stop the demo.

About

Amiga 500 demo including copper lists and bitmap tricks


Languages

Language:Assembly 100.0%