Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
  You are not logged in - nap
Memento Mori   [2020]

Memento Mori Released by :
Genesis Project [web]

Release Date :
19 September 2020

Type :
C64 Demo

Website :
http://www.c64demo.com

Released At :
Function 2020

Achievements :
Mixed Demo Competition at Function 2020 :  #1

User rating:**********  9.5/10 (137 votes)   See votestatistics
**********  9.7/10 (44 votes) - Public votes only.

Credits :
Code .... Ksubi of Genesis Project
  Raistlin of C64GFX Staff, Genesis Project
  Sparta of Genesis Project, OMG
Music .... dLx of Genesis Project, Insane
  MCH of Dream, Genesis Project, MultiStyle Labs, Samar Productions
  psych858o of Elysium, Genesis Project, MultiStyle Labs
  Steel of Genesis Project, Success, Success + The Ruling Company
  Stinsen of Genesis Project
  Xiny6581 of Dees Productions, Digital Sounds System, Genesis Project, Gheymaid Inc., The Solution
Graphics .... Facet of Genesis Project
  JonEgg of Genesis Project
  Ksubi of Genesis Project
  Raistlin of C64GFX Staff, Genesis Project
  Razorback of Genesis Project
Design .... hedning of Genesis Project, Propaganda Magazine Staff
  Ksubi of Genesis Project
  Raistlin of C64GFX Staff, Genesis Project
  Sparta of Genesis Project, OMG
Idea .... hedning of Genesis Project, Propaganda Magazine Staff
Charset .... Ksubi of Genesis Project
  Razorback of Genesis Project
  Sparta of Genesis Project, OMG
Loader .... Sparta of Genesis Project, OMG
Docs .... hedning of Genesis Project, Propaganda Magazine Staff
Directory Art .... Ksubi of Genesis Project


SIDs used in this release :
Carbondioxide(/MUSICIANS/X/Xiny6581/Carbondioxide.sid)
Memento Mori (tune 1)(/MUSICIANS/M/MCH/Memento_Mori_tune_1.sid)
Memento Mori (tune 2)(/MUSICIANS/S/Stinsen/Memento_Mori_tune_2.sid)
Pinched(/MUSICIANS/D/Dlx/Pinched.sid)

Download :

Look for downloads on external sites:
 Pokefinder.org


Production Info
Submitted by Raistlin on 8 November 2023
Source code is now added to Github here: https://github.com/RobertTroughton/C64Demo-PublicReleases
Production Info
Submitted by Raistlin on 7 December 2022
And here’s another blog post, this time all about that Side Border Bitmap Scroller: https://www.c64demo.com/side-border-bitmap-scroller/ .. I feel sure that I must’ve missed details that are important, I mean my attention span just isn’t what it… umm. What?
Production Info
Submitted by Raistlin on 17 November 2022
Further blogs were written:-

https://www.c64demo.com/dxycp-scrollers/

https://www.c64demo.com/big-parallax-logo-mover/

https://www.c64demo.com/big-animating-sprite-logo/
Production Info
Submitted by Raistlin on 18 March 2022
A blog was written describing how the all-border double DYPP was made: https://c64demo.com/?p=19
Production Info
Submitted by JackAsser on 20 October 2020
<Lost in clipboard> DAMN!

Anyway, 1 line of overlap is perfect for x-only motion like in this case. Really nice! Well done! I usually go for 10-lines of overlap to allow for dynamic multiplexing and y-motion also.
Production Info
Submitted by Raistlin on 20 October 2020
I've added some notes on 20-pixel sprite interleave on Codebase 64, here: https://codebase64.org/doku.php?id=base:sprite_interleave

This technique is used on quite a few of my parts for this demo.
Production Info
Submitted by Raistlin on 24 September 2020
Here are some details of the code aspects of the demo... for those that might wonder :-)


*Skull Zoomer Basic Fader* (Ksubi)
A fullscreen 50 fps PETSCII animation with 64 phases, to set the pace of the demo.


*Real-time Rotating ECM Tunnel* (Sparta)
This is a 50 fps real-time effect without double buffer, using a 16x32 tile pattern. The rotation and movement along the tunnel can be freely adjusted. For the sake of simplicity, these were kept constant in the demo.


*Rotating GP Logo* (Raistlin)
A simple bytewise animation plotted into the sprite array with sprites laid out using the 20px interleave technique.


*Huge Memento Mori Logo* (Raistlin)
A ~2000 pixel wide multicolour logo split across 3 charsets. Sprite underlay is also ~2000 pixels wide and is plotted into the sprite array. Again we use 20 pixel interleave. This part was Facet’s brainchild - Raistlin originally telling him that it wasn’t possible due to C64 not having bitplanes like the Amiga platform that Facet is more accustomed to ;-)


*All Border DYPP* (Raistlin)
The tallest all border DYPP made on C64 yet. We use y-expanded sprites. Getting this right was very tricky as we had to ensure the sinus only used up to 4 sprites per rasterline.. note that we add detail back into the scroller by using subtexel rendering - so the source font data is full resolution, even though each frame only uses half of that - in a similar way to interlace, the extra detail appears and makes the scroller look much smoother than it really is.


*Turn Disk DYPP* (Raistlin)
Note with this that the DYPP is single-pixel precision and that there are 4 colours used, plus black (ie. 5 colours). This is done by using black hires inverted chars for the DYPP and underlaid sprites moving across the screen to add the colour.


*Large Scaling DYPP* (Raistlin)
A well worn effect.. very simple. A staple of Bonzai demos ;-)


*Plot Skull* (Sparta)
A fullscreen 50 fps animation with 64 rotation phases, 300+ plots per frame, displayed without double buffer on a multicolor bitmap. The routine could handle even more dots per frame but the C64's RAM can't (maybe we will use REU for the next one). While the animation is refreshed every frame, the rotation phase is mostly updated every other frame to show it at an acceptable speed. Fun fact: the skull is based on a real person's skull and coordinates were obtained from a CT scan.


*All Border Double DYPP* (Raistlin)
This works in a very similar fashion to the above .. but .. by using the screen-disabled-but-all-borders-open trick, we can use 8 sprites on each line - hence being able to have 2 scrollers. There are some DMA glitches on this part, unfortunately, that were unavoidable using this scroller form.


*Stained Glass Window Plasma* (Sparta)
This is a simple color blending effect on a multicolor bitmap which renders a separate plasma in each of the three color spaces of the bitmap (i.e. low and high nibbles of the screen RAM, and color RAM). The effect is updated every frame.


*Turn Disk Greetings* (Raistlin)
A simple “circle” scroll. This time using a larger font than usual to make the text clearer and a note-quite-a-circle shape to add some variety.


*Side Border Vertical Bitmap Scroller* (Raistlin and Sparta)
A full 192 pixel high screen. 408 pixels wide - 48 in the left border, 320 for the screen and 40 for the right border. The stunning artwork was of course done by Razorback. Being one of the first parts we worked on, it set the tone for the rest of the demo.

Most of the bitmap and sprite scrolling is interleaved into the side border IRQ code. Running at 25fps, we scroll 8 pixels every 16 frames - 15 frames doing the bitmap/screen/sprite data copying and the 16th updating the colour memory. We play music during vblank and, otherwise, leave the CPU as free as possible to allow Sparkle to do its magic loading in the next chunks of data. A very complex demo part, really, lots of different problems to resolve. Without Sparkle, we would’ve had this running at 16.666fps (ie. scrolling 1 pixel every 3 frames instead of 1 every 2 as we managed with Sparkle).

Raistlin coded the original scroller routine, which was very nearly running at 25fps - but failing in the areas where the picture got more complex. Sparta helped optimise the data format to better feed Sparkle, along with optimising Sparkle and helping to remap and compress the bitmap colour data more efficiently. It was a true coder collaboration - and helped G*P snag Sparta :-)

We achieve the switch between multicolour and hires mode by self modifying all the areas of code where D016 etc are changed in the IRQs.




**Raistlin’s Code Generator**
Note that most of Raistlin’s parts used his C++ tool for generating highly optimised/unrolled ASM. It’s able to neatly interleave any “grunt” code (such as bitmap/char/sprite plotting) into accurately timed IRQ code (eg. For border opening). With this, opening borders and such is very simple - allowing the coder to concentrate on optimising the plotting algorithms. Without the tool, we shudder to think how someone might go about achieving some of the things we made for this demo ;-)
Search CSDb
Advanced
Navigate
Prev - Random - Next
Detailed Info
· Summaries (2)
· User Comments (83)
· Production Notes (7)
Fun Stuff
· Goofs
· Hidden Parts
· Trivia (1)
Forum
· Discuss this release
Info on other sites
· demozoo.org
· Pouët
· YouTube
Support CSDb
Help keep CSDb running:



Funding status:




About this site:
CSDb (Commodore 64 Scene Database) is a website which goal is to gather as much information and material about the scene around the commodore 64 computer - the worlds most popular home computer throughout time. Here you can find almost anything which was ever made for the commodore 64, and more is being added every day. As this website is scene related, you can mostly find demos, music and graphics made by the people who made the scene (the sceners), but you can also find a lot of the old classic games here. Try out the search box in the top right corner, or check out the CSDb main page for the latest additions.
Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.116 sec.