Anders Malm

Most of my sparetime coding projects are based on, more or less, Demoscene related projects.
This interest started in 1985 on a Commodore 64 and is still going on, many years later, but now mainly on machines running Windows and OS X.
Recently got back into C64 coding again, let's see what happens with that.

Inside the demoscene there are different categories which are more limited then the standard demos. The two most common ones are 4k and 64k.
4 and 64 is the amount of kB the final binary is allowed too occupy on disk.
The rules usually say that the binary should work directly on a clean Windows installation with the latest drivers and DirectX SDK.
This means that you are allowed to use all the resources which are available, and all the installed DLLs.

64k is the category which I like the most. You have a lot of space for code and can do really interesting effects,
but you can't load resources like in a demo so you need to generate content from algorithms.
4k is fun, but it's a lot more limited as an art form. You need to use every byte wisely.


Texture Generator ( 2002-2004 )

This is a pure texture tool which I did after seeing the dutch demo group Aardbei's texture tool.
It used a very simple GUI which I wrote in OpenGL. All the operators was written in C++, and then rewritten in X86.
I'm trying to find a copy of it somewhere. I know that I have either a binary or the source code on a cd somewhere.

Used in the following release:

Odious - A Waste of Space (64k, 2nd place at Solskogen 2004 combined 4k/64k )
Odious - A Waste of Space, on

TexTool ( 2004-2005 )

The next generation of texture tools I did. The big improvement was that all the operators was connected as a graph.
This gave new levels of complexity, in a good way, when composing textures, and really added a new dimension.
This GUI consisted of a fullscreen graph. When double-clicking one of the nodes a parameter screen for that node was shown.
This tool worked equally good on OS X and Windows.
No Assembler was used in this tool, all is written in C++.
The main reason for this was that I switched between my Apple iBook running a G4 and my X86 PC.

Never used in any public releases. There is an intro called A Waste Of Space 2 on one of my old drives, but it was never finished.
I will see if I can get it to build and make a YouTube video out of it.

The green connections are the main input, and the yellow ones are for additional input.
When blending two images one is the main input, and the other is an additional. There are nodes with multiple additional inputs.

Oudio - 4k synthesizer and tracker ( 2005-2006 )

A combined synthesizer and tracker. Written in C++ and uses a simple OpenGL based GUI.
The synthesizer code used in the editor is exactly the same as the one used for playback.

The limitation here is that the final binary should consist of a graphical effect, the synthesizer and all the audio data.
This synth added almost 2k to final compressed binary of Methylparaben, which is way too much.


Found two tests which I did with Oudio:

Small tests trying to create interesting sounds.

Another small test, trying to create a song.

Used in the following releases:

Odious - Happy New Year (4k, Released on New Years Eve 2005/2006 )
Odious - Happy New Year, on

Odious - Methylparaben (4k, 2nd place at ifparty 2006 combined 4k )
Odious - A Waste of Space, on

Oditor - Intro Editor, Work in Progress ( 2012 )

This new system was built more as a complete intro tool, compared to the previous pure texture tools.
All GUI is written directly using OpenGL. The whole tool is written as an intro without standard libraries.
This system works exactly the same on both Windows and OS X, but I enjoy Windows more as a demo platform since the OpenGL support on OS X is really crippled.
The current tool is about 70kB uncompressed Windows binary, the idea is to have the complete tool as a compressed 64kB binary... don't ask me why :)
Also preparing adding a complete synthesizer and tracker in the editor. I have started a new VST synthesizer for 64k intros.
Since I have this interest in texture tools it was the first nodes which I created.
Compared to previous tools and tests this uses only GLSL fragment shaders for all texture operations.
This tool doesn't have any separate screen for handling settings, all settings are controlled directly on the inputs.
Left-click to start a connection, right-click to change the value.
Each input is color coded and only nodes with the same type of input can be connected.
BLUE, a texture object.
ORANGE, any kind of selector which can be represented by a single integer. In this image it's the width and height of the texture, all power of 2 between 2 and 8192.
GREEN, an integer. Each node defines it's max and min value. All inputs are clamped.
RED, a floating-point number. Each node defines it's max and min value. All inputs are clamped.
PURPLE, a color in RGBA.
When hovering over any input the current input is shown.
Closeup of the color picker. Right-click a purple connector and a color picker is shown.



This group I started together with my twin brother and a friend.


Demo, 1st place at Deadline 2003
Odious - Complex, on

A Waste of Space

64k, 2nd place at Solskogen 2004 combined 4k/64k
Odious - A Waste of Space, on

Happy New Year

4k, Released on New Years Eve 2005/2006
Odious - Happy New Year, on


4k, 2nd place at ifparty 2006 combined 4k
Odious - A Waste of Space, on

s/n - Signal to Noise Ratio

Started a group called S/N together with a friend. We have made three releases, I have been involved in the two 64k intros below.

Transmission 1

Download a binary at Pouet.
Released at Assembly 2010. 6th in the combined 64k competition.

In Utero

Download a binary at Pouet.
Released at Edison 2012. 2nd in the PC Demo competition. 38kB intro.
Won best in show.

Censor Design

I have joined Censor to be a C64 coder. This is just for fun and brings a lot of memories back too me.