Difference between revisions of "Main Page"

From SizeCoding
Jump to: navigation, search
(start a bytebeat section)
 
(48 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 
== Welcome to SizeCoding.org! ==
 
== Welcome to SizeCoding.org! ==
  
'''SizeCoding.org is a wiki dedicated to the art of creating very tiny programs for most popular types of CPUs. As sizecoding is also popular on other hardware we recently opened the website for other plaforms as well, check the links below.''' 
+
'''SizeCoding.org''' is a wiki dedicated to teaching programmers the various techniques used to create [https://nanogems.demozoo.org/ tiny demoscene intros]. While these techniques can be used for other applications (boot sectors, ROM, BIOS and firmware code, etc.), the information presented here is firmly oriented towards the [https://en.wikipedia.org/wiki/Demoscene demoscene]. Practicality and common sense are sometimes thrown out the window just to shave a single byte.
  
By "very tiny programs", we mean programs that are '''256 bytes or less in size''', typically created by members of the [https://en.wikipedia.org/wiki/Demoscene demoscene] as a show of programming skill.  The size of these tiny programs is measured by their total size in opcode bytes, and are usually presented as executable binary. 
+
For those unfamiliar with the demoscene or demoscene effects, here is:
 +
*'''[https://nanogems.demozoo.org/ A curated collection of the best Tiny Intros from the Demoscene]'''
 +
*'''[[Design Tips and Demoscene effects with pseudo code]]'''
 +
*'''[[Information about demoscene parties]]'''
  
'''Despite their tiny size, these programs are able to produce amazing graphical displays, playable games, and sometimes music.'''  There are even some surprisingly effective programs in under '''16 bytes''', such as [https://trixter.oldskool.org/2012/12/17/maze-generation-in-thirteen-bytes/ a maze generator in 10 bytes], a [[Paint16b|mouse-driven paint program in 16 bytes]], and an [[M8trix_8b|"Enter the Matrix" screensaver]] in only 8 bytes.
+
Now with that said, here is the list of active platforms available on this wiki:
  
'''The intent of this wiki is to teach assembler programmers the various techniques used to create tiny demoscene intros.''' While these techniques can be used for other applications (boot sectors, ROM, BIOS and firmware code, etc.), the information presented here is firmly oriented towards the demoscene. Practicality and common sense are sometimes thrown out the window just to shave a single byte -- consider yourself warned.
+
'''Oldschool 8-bit / 16-bit platforms:'''
 +
*'''[[Motorola 68000]]''' - [[Commodore_Amiga]], [[Atari_ST]], [[Spectrum_QL]], [[X68000]], etc.
 +
*'''[[6502]]''' - Commodore 64, Atari XE/XL, Apple II, Atari Lynx, BBC Micro, etc.
 +
*'''[[Z80]]''' - ZX Spectrum, Amstrad CPC, etc.
 +
*'''[[6809]]''' - Dragon 32/64, Tandy CoCo, Vectrex, etc.
 +
*'''[[PDP-11]]''' - BK-0010 / BK-0011, etc.
  
This wiki is divided into the following major sections for x86:
 
  
*'''[[Getting Started]]''' - What do you need to know before starting your first tinyprog?
+
'''As well as modern platforms like:'''
 +
*'''[[Fantasy consoles]]''' - [[TIC-80]], [[PICO-8]], [[MicroW8]]
 +
*'''[[Windows]]''' - Sizecoding for Windows: 1K and 4K intros.
 +
*'''[[DOS]]''' - Sizecoding for X86 / DOS.
 +
*'''[[Javascript]]''' - Sizecoding for Browsers / JavaScript
 +
*'''[[Processing]]''' - Sizecoding using Processing
 +
*'''[[Linux]]''' - Sizecoding for Linux.
 +
*'''[[ARM]]''' - ARM-based platforms (RISC OS, Acorn Archimedes, Gameboy Advance, etc.)
 +
*'''[[RISC-V]]''' - RISC−V micro-processors.
 +
*'''[[ReGIS]]''' - VT125, VT230, VT240/241 and more terminal display vector graphics language.
 +
*'''[[Bytebeat]]''' - Tiny music created from mathematical expressions.
  
*'''[[Techniques|Tips, Tricks, and Techniques]]''' - The meat of the wiki. Lists of small opcodes, default environment settings, size optimization basics, and a ton of random tips.
+
By "very tiny programs", we usually mean programs that are '''1024 bytes or less in size''', typically created by members of the [https://en.wikipedia.org/wiki/Demoscene demoscene] as a show of programming skill. In other scenes this artform is sometimes also known as generative , codeart , proceduralart , generativeart , codegolfing , codegolf , tweetcart dwitter , twigl and tweetjam.
  
*'''[[Case Studies]]''' - Analysis of existing award-winning tiny programs, with comments on what choices were made and why.
+
The size of these tiny programs is measured by their total size in opcode bytes, and are usually presented as an executable binary. Despite their tiny size, these programs are able to produce amazing graphical displays, playable games, and sometimes music. There are even some surprisingly effective programs in just '''16 bytes''' [https://demozoo.org/productions/?platform=&production_type=55] or even '''8 bytes''' [https://demozoo.org/productions/?platform=&production_type=54].
 
 
*'''[[Resources|Additional Resources]]''' - Discussion threads, competitions, repositories, and other external references that can aid you in your quest.
 
 
 
For other processors and platforms check out the sections here:
 
 
 
*'''[[Linux]]''' - Sizecoding on linux platforms.
 
*'''[[RISC OS on ARM based CPUs]]''' - Create your tiny intro on ARM hardware on RISC OS.
 
*'''[[ARM based CPUs]]''' - Other ARM Based Plaforms (Gameboy Advance, etc.)
 
*'''[[Motorola 68k based CPUS]]''' - Start Sizecoding on your Atari ST or Amiga.
 
*'''[[6502 based CPUs]]''' - Commodore 64, Atari XE/XL, Apple II, Atari 2600, Atari Lynx, etc.
 
*'''[[Z80 based CPUs]]''' - For all your ZX Spectrum, Amstrad CPC, etc. sizecoding needs
 
*'''[[PDP-11 CPUs]]''' - Get your BK-0010 and BK-0011 kicks here
 
*'''[[RISC-V CPUs]]''' - Mainly on cheap micro-controllers or qemu for now, but first RISC−V micro-processors based board come since one year.
 
*'''[[Fantasy Consoles]]''' - Dedicated to Fantasy Consoles and VM's like TIC-80, PICO-8, Javascript/js1k, etc.
 
*'''[[Bytebeat]]''' - Tiny music created from mathematical expressions.
 

Latest revision as of 16:21, 8 June 2025

Welcome to SizeCoding.org!

SizeCoding.org is a wiki dedicated to teaching programmers the various techniques used to create tiny demoscene intros. While these techniques can be used for other applications (boot sectors, ROM, BIOS and firmware code, etc.), the information presented here is firmly oriented towards the demoscene. Practicality and common sense are sometimes thrown out the window just to shave a single byte.

For those unfamiliar with the demoscene or demoscene effects, here is:

Now with that said, here is the list of active platforms available on this wiki:

Oldschool 8-bit / 16-bit platforms:


As well as modern platforms like:

  • Fantasy consoles - TIC-80, PICO-8, MicroW8
  • Windows - Sizecoding for Windows: 1K and 4K intros.
  • DOS - Sizecoding for X86 / DOS.
  • Javascript - Sizecoding for Browsers / JavaScript
  • Processing - Sizecoding using Processing
  • Linux - Sizecoding for Linux.
  • ARM - ARM-based platforms (RISC OS, Acorn Archimedes, Gameboy Advance, etc.)
  • RISC-V - RISC−V micro-processors.
  • ReGIS - VT125, VT230, VT240/241 and more terminal display vector graphics language.
  • Bytebeat - Tiny music created from mathematical expressions.

By "very tiny programs", we usually mean programs that are 1024 bytes or less in size, typically created by members of the demoscene as a show of programming skill. In other scenes this artform is sometimes also known as generative , codeart , proceduralart , generativeart , codegolfing , codegolf , tweetcart dwitter , twigl and tweetjam.

The size of these tiny programs is measured by their total size in opcode bytes, and are usually presented as an executable binary. Despite their tiny size, these programs are able to produce amazing graphical displays, playable games, and sometimes music. There are even some surprisingly effective programs in just 16 bytes [1] or even 8 bytes [2].