Marc's Demos

MarcDemos:right
We are happy to present Marc's Demos a collection of various Hires, Lores and Double Lores demos written by Marc Golombeck.

This collection is a sampler of six disk images each containing a piece of Apple ][ art from the last couple of years.

Enjoy this sampler of various old school demo effects with background music!






System Requirements

MarcDemos:right
Marc's Demos run on an Apple //e enhanced or better with the following minimum system requirements:

  • Apple //e enhanced or better
  • 65C02 CPU and min. 128 kB RAM
  • MockingBoard optional for sound playback











Getting the Demos

MarcDemos:right
The demos are free of charge. However, we charge for sending you a physical copy of the demos on floppy disk.

Physical Copy

Interested in a physical copy of any of the demos on 5.25" floppy disk? Drop us an email in order to receive information about availability and pricing.

Free DSK-Images



Visit our shop to receive your **free DSK-images** for playing the demos in your favourite emulator or to use it with your floppy emu! The demos are free for download there:


Content of Marc's Demos

  • XMAS Demo 2020: This year's XMAS-Demo is just a small feasibility study connecting the DOLORes library with a PT3-file audio player and a particle simulation state machine and some timed automatism in order to create a self-running demo of a Galton's Board simulation in double LORES on an Apple //e (128kB or better @1MHz).
    • Animation of 102 particles following a graviational force
    • Pseudo random number generation for movement direction decision of each particle
    • Automatic gravitational force reverse every ten seconds
    • User interaction possible
    • Music playback via a MockingBoard (or compatible sound card)*
  • XMAS Demo 2018: This little demo shows a rotozoomer in LORES written in 6502-assembly language. The frame rate is about 13,7 fps.
    • A rotozoomer is an already well-known old-school demo effect. However, I was interested to implement a version for the Apple ][ LORES-mode in order to see how fast (regarding to fps) and compact I can get the code.
    • A good description about the underlying maths of a rotozoomer can be found here.
    • In my approach of the rotozoomer I do the needed trigonometric calculus (linear transformation) for each frame only for three coordinates ((0,0), (1,0), (0,1)) of the texture and calculate the corresponding deltas before I draw the frame. The deltas in x- and y-direction are then only summed up when iterating through the complete LORES-screen.
    • Preparing a new frame needs 24 multiplications (3 * 8) for the three rotated points in order to determine the required deltas. This results in 7911 cycles/frame (around 8 ms) for the whole trigonometric calculus! *
  • Lens-Demo: Proof of concept of an Apple //e double LORES demo showing an old school LENS-effect with underlying background image and PT3-music output via a MockingBoard running on a 65C02 CPU @1 MHz. The demo shows a well-known lens simulation which is used as a dynamic mask to partially cover an underlying background image. This little demo should provide some more learning insights on how to implement oldschool demo effects on this platform using the DOLORES-library in that complicated framework of Apple //e bank switched memory layout (neighbouring pixels are located in different memory banks).
    • Animation of a 13 x 13 pixel lens
    • Fixed precalculated distortion matrix
    • Lens X/Y-trajectory for automated lens movement
    • User interaction possible
    • Music playback via a MockingBoard (or compatible sound card)
  • Fire-Demo: Proof of concept of an Apple //e double LORES demo showing an old school FIRE-effect with underlying animated banner and PT3-music output via a MockingBoard running on a 65C02 CPU @1 MHz. The demo shows a well-known foreground fire simulation which is used as a dynamic mask to partially cover an underlying banner which position and colouring is also animated. This little demo should provide some learning insights on how to develop fast double LORES algorithms outside the DOLORES-library in that complicated framework of Apple //e bank switched memory layout (neighbouring pixels are located in different memory banks).
    • Animation of 512 pixels with a FIRE-effect in the foreground
    • Pseudo random number generation for fire generation
    • Using the simulated fire as a mask for an animated logo in the background
    • User interaction possible
    • Music playback via a MockingBoard (or compatible sound card)
  • Twister-Demo: A TWISTER is an oldschool demo effect showing an overlay of different sinus waves which gives the impression of a winding spiral in 3D. The task was to implement that effect on a standard Apple II with 48k RAM @1MHz CPU speed.
    • The main task after playing around with the AppleSoft mockup was to transform the AppleSoft code into assembly language and make the algorithm as fast as possible.
    • The basic idea was to reduce needed CPU cycles by only drawing each second line which halves the required CPU cylces. Furthermore the boundary points of the sine wave overlays for each animation frame are precalculated during the setup procedure of the algorithm and stor4d in data tables in memory.
    • The effect uses 64 animation frames and hence requires 64 memory pages of 256 bytes as table data resulting in a 16k data table. Each data set for a line contains four 1-byte values representing the boundary points of the four sine waves. Hence a dataset of 256 byte can hold the data for 64 lines. Since we are plotting only every second line on the screen the height of the effect is 128 lines which is nice with a total of 192 screen lines in HIRES.
    • The calculation of the sine waves requires a sine table and a fast table based multiplication routine which was re-used from the 3D-Engine. The pre-calculation of the boundary points requires about a second and can be perceived from the black screen before the twister is displayed. Auto-generating the table data keeps the codse size of the effect small (the code resides below HIRES page 1 from $0A00 on) and setting up the boundary tables is rather fast.
    • Evaluating the boundary tables and drawing the TWISTER is done by using a modified rasterfill algorithm from the 3D-Engine.


Known Bugs & Limitations:

  • None

Credits

  • Code & Graphics: Marc Golombeck
  • Additional Advice: Dr. N. H. Cham
  • Hosting & Disk Distribution: 8-Bit-Shack