Home Page
Projects > Small
Small Thumbnail
Small v1.0
Size minimization framework for executables (For MSVC6)
Rating: 6 (Not a program, but a useful concept)
Project Time: Sept 2005-Oct 2005: 15
Languages: C
Downloads: Binary Source (See any updates below for prior versions)
Sections: Information, Content, Concepts, Notes, Updates, Comments
Make your programs tiny

Small optimized programs have most recently been made popular with the advent of uTorrent, but the concept and implementation has long been a computer niche, especially in the 64K community. 64K demos are complete multimedia experiences with full video and audio compressed into as small an executable size as possible.

The demo scene, which originally started out as just making pretty graphics and audio demonstrations on hardware like the commodore 64, has evolved with the coming of better technology into (often) breathtaking 3D visual multimedia experiences with heart pounding audio tracks. While demos serve no real purpose besides showing off one’s skillz and maybe telling a short story through visuals, they still garner a large community. Conventions, usually for gaming, often even contain demo contests.

One of the larger subcategories of demos is the 64K demos, in which the authors attempt to squeeze as much possible content into as little an executable (64KB) as possible. While 64KB is usually an appropriate size to fit a good demo into, there are also contests for larger and smaller ones too, like the often touted 4K demos. The original purpose of Small was to make one of these demos, but unfortunately I took too long a break from it without writing down my visual/story ideas, so I doubt its original intent will ever be picked back up.

While the original goal is no longer of consequence, this project turned into a framework for tiny executables and led to discoveries of other shortcuts towards smaller executable sizes. Right now I’ve only included my base two files needed for small executables, and example source code, but I should, in the semi-near future, be adding in explanations on how it works and all my other discoveries. Doing all the research for this project took a good deal of time. The example source file uses a completely default project workspace for a windows subsystem.

One might ask “Why not just use an executable packer like UPX?”, which I do actually use on all my released projects. The answer to that relies in the underlying executable compression technologies, and hand doing this kind of thing yourself, especially with your own assembly code, should always yield better results. A base project with all default options used in Visual Studio compressed with UPX yields a 9.5KB executable for Windows, while my framework yields a 420 byte executable :-). I wouldn’t mind using this for all of my released projects actually, except that I am trying to keep the source codes simple.

Oh, I also figured this would be a good place to include some of my favorite 64K demos too :-). Well... ones that I had saved on my hard drive for whatever reason, heh. All of these were acquired well before 2003, I believe. [None of these are mine, of course]
  • The product: This was the very first 64K demo I saw back in 2000, and it had me absolutely fascinated, especially as 3D graphics were still somewhat novel in those days. It was made by farbrausch, one of the most prolific, and IMO, best demo makers. It is still my favorite.
  • Heaven 7
  • 003
  • poem to a horse: Also by farbrausch.
  • frame

See also: Executable Stubs.
Minimizing footprints
Ah, 64k demos
Dakusan License v2.0 @ 2009-11-04 16:06:57 - Download

I have updated the licensing information across the board for my website and all its projects to the Dakusan License v2.0, a slightly modified version of the Original BSD License.

The Copyright page and all project downloads have been updated accordingly.

Added Readme files to all project downloads @ 2009-09-19 05:35:19

Binary and source zip downloads for all Projects now have readme files in them, except as mentioned below.

This only applies to the Draw Image Project in Web Scripts, and not the Directory Manager project (The only project zip file now without a readme).

More Project Thumbnail Updates @ 2008-09-28 15:48:04

The following projects have had thumbnails added to them: College Crap, Freedrive URL cracker, Highschool C++ Class, HTTP Zip, Small, Other Web Scripts.

The Eyes project thumbnail has been updated to have a transparent background to better represent it.

Small v1.0 @ 2008-06-07 09:23:18 - Download
Uploaded version 1.0 of small and wrote the content section. The main download links to the source as that is what is important. The binary is here, which is just a 420 byte executable that starts and exits.
To add comments, please go to the forum page for this project (guest comments are allowed for the Projects, Posts, and Updates Forums).
Comments are owned by the user who posted them. We accept no responsibility for the contents of these comments.

No comments for this Project