Remix.run Logo
_the_inflator 8 hours ago

Fun fact for C64 guys:

The underlying mechanics of Carmack's technique is very similar to the full screen smooth scrolling effect on C64 at any speed and distance. It is nowadays referred to as DMA delay.

ELIF: You trick the CPU to display screen data at a different starting point than as designed by the hardware. This is tricky and need to be executed cycle exact.

Here is the explanation in detail together with all major top notch effects. The article is a legend and kind of the bible of doing the most sophisticated effects on C64. Some effects have since then even more and better explained and exploited due to cross platform development possibilities and better tooling, but understanding all mechanics here is a necessity to play a role in the Champions League of C64 demos, besides and also being able to implement the techniques mentioned here: https://www.zimmers.net/cbmpics/cbm/c64/vic-ii.txt

bonzini 4 hours ago | parent | next [-]

To clarify, it does not need to be executed cycle exact on the IBM PC, only on the C64.

deaddodo 4 hours ago | parent [-]

I was going to say, smooth scrolling is one place where VGA was fairly simple to work with, since it didn’t have to deal with chunky graphics/bitplanes or specific timing tricks.

In fact, Carmack specifically states that packed pixels were the impetus for id’s side scrolling experiments that led to Commander Keen and its ilk.

lazystar 5 hours ago | parent | prev [-]

> ELIF: You trick the CPU to display screen data at a different starting point than as designed by the hardware. This is tricky and need to be executed cycle exact.

heh, is there a new meaning for ELIF? im not sure that there are many 5 year olds who would understand that ;-)

kevindamm 4 hours ago | parent [-]

ELI5: explain like I'm five,

ELIF: explain like I'm forty.

zem 4 hours ago | parent [-]

explain like i'm fifteen, surely (:

goodmythical an hour ago | parent [-]

Fifty? Fungified? Faded? Fading? Foreign? Fabulous? Explain like I'm face-palming/fainting?