Getting started


First of all, i'm not pretending to know anything about anything and people who say they do about any topic should at all times be highly distrusted.

Secondly, this is not an all encompasing writeup of everything you need to get started, there are much better resources for that, such as the awesome wiki.

Instead, this is a little story about how I started my journey into sizecoding as well as some tips that could help you out on your own journey.

Everybody got to start somewhere...

...and this is my start last year at outline. I was sitting next to Rho/Trepaan minding my own business, when he was suddenly talking about competing in the 128 byte intro competition.

And while he was chipping away at his intro, he suddenly started to ask me all kinds of questions about x86 assembly. I had dabbled with assembly in my previous stint with the demoscene in the 90s, but I was by no means an expert in this field myself. However, during the process of helping him get his entry under 128byte, things I thought I forgot slowly started coming back to me, and before I knew it I was blabbing some stuff left and right, which helped him complete his intro Auwline at the party.

Upon returning home the concept of trying my hand on some sizecoding myself stuck with me. As I hadn't been active in the demoscene for a long long time and was not part of any big demogroup, it seemed like a nice opportunity to still be productive without having to have a large demogroup to complete a product.

Ready... Set.... Now what?

So for starters, get yourself the following:

Additionally, I highly recommend the following as well:

But what if i'm a millenial who doesn't do printouts?


Stares at prompt...

So yeah, let's get some visuals up the screen then:

org 100h ; start of your .COM file
push 0a000h ; screensegment (es) is at a000h
pop es
mov al,13h ; init 320x200x256 video mode
int 10h
mov ax,0cccdh ; thank your uncle rrrola
mul di ; dl=x, dh=y
add dx,bp ; add framecounter
mov al,dl ; color = x^y
xor al,dh
stosb ; store pixel
inc di ; remove if you want a clean pixel by pixel update
inc di ; or increase offset 2 more times crosshatched update
jnz frameloop ; and triggering the zero flag
inc bp ; increase framecounter
in al,60h ; check keys
dec al
jnz frameloop

yada yada...

Gaining knowledge:

Ambition vs Restriction:

At some point you may run into the limits of your skill level at a particular point in time, the sizelimits of your intro, or both..

This happens to everyone all the time. How you deal with development differs greatly from person to person.. I'm somebody that always has ambitious plans for an intro, start hacking away at it and quickly realises our intro is at least 64bytes over budget and not even half of the features i want are in there. Then i start slowly chipping away at it and/or remove even more features until i end up with a glimpse of my original intent.
I'm okay with that...

Blossom on the other hand is more cautious (some might say more realistic) about the scope of her plans and already starts sweating way before her stuff reaches the size limit and usually is able to execute what she intended to make within budget.
This is also just fine...

What i'm trying to say is: Choose your own adventure, but don't bitch about it aftewards ;-)

Moving forward:

So basically keep improving your skills with each effect or even tryout that you make. Don't be intimidated about what's out there. My experience is that the demoscene in general is very warm and welcoming to new people/sizecoders entering the scene. Don't be afraid to ask people for help.

For more information, you can find all our productions complete with sourcecode at:

Return to blog overview