Here you will find a framework ready to use for 64 kilobyte intros. It contains the basic code to do most OS tasks relevant for an intro, like memory allocations, maths, threading, sound etc, in a compact way (without crt and default libs). I included projects and some basic example code, so you basically put your intro and compile directly.
. The system is writen in a OS, compiler and architecture independant way (without ugly ifdefs).
. Currently Windows 32 bit, Windows 64 bit,Linux 32 bit and Linux 64 bit are supported (the lastest mught need some fixes may be, it's long since I don't compile the thing on Linux).
. The Windows 32 bit can be built under Visual C++ 6.0 or Visual Studio 2008, so there are separate projects for both compilers.
. You can work with all configurations at the same time, each one outputs it's crap to a different folder (always under the bin/ directory).
. The Debug configurations generate big exe files and link against the default libs, and allow you to put breakpoints and watch variables. The Release configurations are used for the final 64 kilobytes executable.
. For the final exe compressor, kkrunchy is used under Windows 32 bit, and Upx can be used for Linux 32 bit. Neither of both compressors supports 64 bit executables yet (Feb 2008). Under Windows 64 bit the base code generates a 11 kilobytes executable (opengl window opened, ready to use), so if you are macho enough you could already make 64kb intros for 64 bit Windows systems...
So the code compiles on all platform some constants are defined on the projects and makefile. Under Visual Studio you don't have to do anyghing especial, it's all ready. If you plan to use makefiles (linux), open makefile.common and have a look to the folowwing defines:
. Define osname as linux, windows
. Define architecture as a32bits or a64bits
. .. and so on ... :)
Click here to get the last update (13/06/2010) of the examples.
23/02/2008 Initial version
13/06/2010 Changed to VS2008. msys_rand() family of functions fixed and made thread save
|Windows 32 bit||yes||Up & Running||VC6.0, VS2008||kkrunchy|
|Windows 64 bit||yes||Up & Running||VS2008||none|
|Linux 32 bit||yes||Probably working||gcc||upx|
|Linux 64 bit||yes||Probably working||gcc||none|
|Irix||no||Need some quick revamping||g++||none|