# TIC-80

TIC-80 is a free and open-source fantasy video game console for making, playing, and sharing games on a limited platform that mimics the 8-bit systems of the 1980s. It has built-in code, sprite, map, music, and sound effect editors, as well as a command line interface that allow users to develop and edit games within the fantasy console.
The games made in TIC-80 can be exported as virtual game cartridges and bundled for different platforms, including Android, Linux, MacOS, Windows, bare metal Raspberry Pi, Nintendo 3DS, RetroArch, and HTML5 (using WebAssembly). It supports programming languages including JavaScript, MoonScript, and Lua, as well as Ruby, Wren, Fennel, Squirrel, Python and D.
TIC-80 is often compared to PICO-8, a fantasy system which is not open source; both systems are becoming popular with games programmers who are interested in classic home computers and consoles.

## Capabilities

As a fantasy console, TIC-80 has some set limitations in terms of graphics and processing power in order to create a "retro-styled" gaming experience. These limitations include a 240x136 display; a 16 color palette; 256 8x8 sprites; and 4-channel sound. Integrated tools within the "tiny computer" allow developers to edit code, create graphics, write music, and build levels within games.

### Specifications

| Resolution | 240x136 pixels, 16 colors palette. |
| Input | 4 gamepads with 8 buttons / mouse / keyboard. |
| Sprites | 256 foreground sprites and 256 background tiles, 8x8 pixel. |
| Map | 240x136 cells, 1920x1088 pixels. |
| Sound | 4 channels with configurable waveforms. |
| Code | Up to 512KB (8 banks each 64KB, even in non-PRO version) of lua, ruby, js, moon, fennel, squirrel, wren or wasm. |
| Memory | Up to 272kb of RAM (including 32KB of VRAM). |
| Bankswitching | Up to 8 banks in cart (PRO version only). |

### Cartridges

The TIC-80 is capable of storing and loading back serialized dumps of memory regions using so called cartridges, another 80's metaphor. Unlike the original ones, which were actual physical objects, the TIC-80 cartridges are just files in .tic format. These can be created by typing "save filename.tic" on the console, and loaded back by typing "load filename.tic". Furthermore TIC-80 comes with a built-in cartridge browser, called "SURF" (see below). Free and Open Source tools to convert PICO-8 cartridges to TIC-80 cartridges exists, but they aren't perfect.
To push the metaphor one step further, this serialized memory dump can be embedded in a PNG picture (resembling a real physical cartridge) using steganography. However this isn't practical, because its storage capacity very limited (256 x 256 pixels, each 4 channels, and with 3 bits of data per channel, that's 256 * 256 * 4 * 3 bits / 8 = 98,304 bytes in total, although the memory dump is zlib compressed). Therefore you can find cartridges in the .tic format more often on the net, because .tic doesn't have such storage limitation.

### Color palettes

SWEETIE-16 :
| Number | Hexadecimal RGB value | Name |
| 0 | #1A1C2C | Black |
| 1 | #5D275D | Purple |
| 2 | #B13E53 | Red |
| 3 | #EF7D57 | Orange |
| 4 | #FFCD75 | Yellow |
| 5 | #A7F070 | Light green |
| 6 | #38B764 | Green |
| 7 | #257179 | Dark green |
| 8 | #29366F | Dark blue |
| 9 | #3B5DC9 | Blue |
| 10 | #41A6F6 | Light blue |
| 11 | #73EFF7 | Cyan |
| 12 | #F4F4F4 | White |
| 13 | #94B0C2 | Light Grey |
| 14 | #566C86 | Grey |
| 15 | #333C57 | Dark Grey |

## Playing and sharing games

TIC-80 runs on major operating systems including Windows, x86 Linux 32 and 64 bit, Mac OS X, and Android, and can be compiled from source code for other platforms such as Raspberry Pi. "Tic" cartridge files, containing playable versions of the game, are generated using the integrated development tools. There is a large and growing catalog of community-made games available through the TIC-80 web site.
The TIC-80 console has been featured in demo parties such as Outline 2022 in the Netherlands; Lovebyte 2021 online; and a 2018 LINE Fukuoka hackathon in Japan.