TIC-80

com.nesbox.tic
by Zapstore _@zapstore.dev

Republished from GitHub / F-Droid by the Zapstore main account.

TIC-80 is a 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 console. The games made in TIC-80 can be exported as virtual game cartridges and bundled for different platforms. It supports programming languages including JavaScript, MoonScript, Lua, Ruby, Wren, Fennel, Squirrel and D.

First release: Oct 4, 2026, 1 total release.

Most recent release: Oct 4, 2026.

Website Repo

Appears in 0 app stacks.

0 sats / 0 zaps received in the past year.

Sats Received

Underlying data available via MCP: app_zaps, app_releases.

Zap Count

Underlying data available via MCP: app_zaps, app_releases.

Releases

  • Oct 4, 2026 1.3.0
    # TIC-80 v1.3.0 TIC-80 v1.3.0 adds MiniScript and Forth runtimes, new audio-analysis APIs, native Metal rendering for macOS/iOS, and a wide set of web, editor, controller, and platform fixes since v1.2.0. ## What's new - **New runtimes:** MiniScript and Forth are now supported, with MiniScript updated to the latest MiniScript 2 main. Help/version docs now name both as post-1.2.0 runtimes. - **Audio APIs:** Added VQT audio analysis and spectral whitening APIs, plus raw FFT magnitude APIs `fftr` and `fftrs`. - **Script eval:** Python and JavaScript now implement `eval`; JavaScript also no longer crashes when there is nothing to evaluate. - **Editor & templates:** Python editor now outlines defs/classes; code from `codeimport` updates before running; new TinyGo-based Go starter template; Zig template updated for Zig 0.17.
    More…
    - **Web & export:** Added a Surf build option, a sokol web system layer, 4M wasm stack plus a check, and HTML export/site-player improvements. A played cart now returns to the browser on CLOSE GAME, and Surf no longer starves the browser or leaks fetch bodies. ## Platform - **Apple:** New Metal renderer with native macOS/iOS support; optimized gamepad polling, border rendering, and file-change checks on Metal. - **Linux/ARM:** Added Linux ARM GLESv2 support; Linux icons/mimetypes moved to the hicolor theme. - **Android:** Manifest now uses the Game category and fixes `.tic` association on Android 12+. - **Controllers:** Dynamic controller assignment; SDL right stick moves the cursor and only shows after first movement. - **Web/libretro:** WASM libretro core no longer fails at runtime; optional libretro environment calls are non-fatal; console `add` survives Emscripten runtime trimming. - **Console:** Improved eval feedback when no cart is loaded; help tables and VRAM docs cleaned up. ## Bug fixes - Fixed bookmark panel crash when a bookmark is on a blank line. - Fixed Squirrel out-of-bounds array indexing and a scanline/border callback memory leak. - Fixed Python `sfx()` ignoring note/octave/speed from the SFX editor. - Fixed world map preview ignoring the map editor BPP setting. - Fixed space key with `KEYBOARD_LAYOUT_ES` after `tic_key_iso_extra` removal. - Fixed code editor tab width after horizontal scroll. - Fixed same-platform export preferring an external native template instead of the local one. - Fixed JavaScript eval crash when there is nothing to evaluate. - Improved code rendering by adjusting viewport handling. - Fixed Studio net field declaration and `tic80_tick` callback declarations. ## Build & infrastructure - CI now builds main and pull requests instead of every branch, builds players on every build, and restores stubs to releases. - Site now consumes per-language HTML pairs on every build. - Added a PRO linux-arm64 build; removed GCC 14 from the matrix. - Configure now warns when the build has no network. - Release tag builds receive Android signing secrets; stub lists include MiniScript and Forth. - Release notes now lead with this summary before GitHub's PR list; `SECURITY.md` no longer pins specific versions. - Build asset directory now follows the build itself; toolbar modularized. **Statistics:** 62 commits, 54 pull requests, 19 contributors. <!-- What changed on tic80.com since the previous client release. The site's own work has no pull request in this repository, so the summary above never mentions it — generate-notes.sh prints this file verbatim after the summary. Rewrite it for every release; when nothing site-side has changed, empty (or delete) it and the section disappears. The comment itself does not render. --> ## On tic80.com The site moved on too: - **Games delete and restore.** Your own cartridges, from their page or your profile: hidden at once, recoverable for 30 days, comments and +1s included. An account can delete itself the same way. - **A notifications page** — comments and +1s on your cartridges, with a counter in the navigation. - **A liked-games page** — everything you have +1'd, in one place. - **+1 is open to everyone**: the old gate that required your own games to be liked first is gone. - **Sign in with your e-mail** as well as your user name. - **A full-screen player** — a game page, and the browser IDE, can open the cartridge alone: no site chrome, the player fills the screen, and the game starts as soon as the page opens. - **Every game states the language** it is written in. - **Game pages load a player built for that language** — several times smaller than the universal one, so they start faster. - **New games are announced in the community chat** again. ## What's Changed * Fix #2773: space key broken with KEYBOARD_LAYOUT_ES after tic_key_iso_extra removal by @joshgoebel in https://github.com/nesbox/TIC-80/pull/2962 * Fix #2920: Python sfx() ignores note/octave/speed from SFX editor by @joshgoebel in https://github.com/nesbox/TIC-80/pull/2963 * Fix #1558: world map preview ignores map editor bpp setting by @joshgoebel in https://github.com/nesbox/TIC-80/pull/2964 * fix: squirrel scanline/border callback memory leak (#2825) by @joshgoebel in https://github.com/nesbox/TIC-80/pull/2965 * Update SECURITY.md to remove specific versions by @pixelbath in https://github.com/nesbox/TIC-80/pull/2948 * libretro: don't treat optional environment calls as fatal by @wescopeland in https://github.com/nesbox/TIC-80/pull/2980 * Declare tic80_tick's callbacks as they are defined and called by @annejan in https://github.com/nesbox/TIC-80/pull/2981 * Declare Studio's net field under the condition it is used by @annejan in https://github.com/nesbox/TIC-80/pull/2982 * Fix WASM libretro core build failing at runtime by @Ferk in https://github.com/nesbox/TIC-80/pull/2983 * Fix attempting to out-of-bounds index Squirrel arrays by @swoolcock in https://github.com/nesbox/TIC-80/pull/2988 * Fix bookmark panel crashing if there is a bookmark on a blank line by @swoolcock in https://github.com/nesbox/TIC-80/pull/2993 * [Fix] [Export] prefer local native template for same-platform export by @RDeckard in https://github.com/nesbox/TIC-80/pull/2916 * Fix code editor tab width after horizontal scroll by @RDeckard in https://github.com/nesbox/TIC-80/pull/2957 * web: 4M of stack for the wasm build, and a check on it by @nesbox in https://github.com/nesbox/TIC-80/pull/3006 * ci: build main and pull requests, not every branch by @nesbox in https://github.com/nesbox/TIC-80/pull/3008 * AndroidManifest -> Set to Game category, and fix `.tic` association on Android 12+ by @imsys in https://github.com/nesbox/TIC-80/pull/2956 * Optimize code rendering by adjusting viewport handling by @Wang-Yue in https://github.com/nesbox/TIC-80/pull/2974 * [SDL] Uses right stick to move cursor + only shows after first move by @imsys in https://github.com/nesbox/TIC-80/pull/2936 * Dynamic controller assignment by @imsys in https://github.com/nesbox/TIC-80/pull/2958 * Change in the index.html file for html exports by @bettywolfy in https://github.com/nesbox/TIC-80/pull/2998 * Adds support for Linux ARM GLESv2 by @imsys in https://github.com/nesbox/TIC-80/pull/2912 * templates: add Go starter project template using TinyGo by @akhenakh in https://github.com/nesbox/TIC-80/pull/3002 * Add raw FFT magnitude APIs fftr and fftrs by @aliceisjustplaying in https://github.com/nesbox/TIC-80/pull/3000 * Add VQT audio analysis and spectral whitening APIs by @aliceisjustplaying in https://github.com/nesbox/TIC-80/pull/3001 * Add MiniScript support by @MineRobber9000 in https://github.com/nesbox/TIC-80/pull/2992 * Forth by @luginf in https://github.com/nesbox/TIC-80/pull/2947 * release: grow the stub lists with MiniScript and Forth by @nesbox in https://github.com/nesbox/TIC-80/pull/3009 * version: a build's asset directory follows from the build itself by @nesbox in https://github.com/nesbox/TIC-80/pull/3010 * help version: name the two runtimes added after 1.2.0 by @nesbox in https://github.com/nesbox/TIC-80/pull/3011 * console: one definition per help table, and VRAM without angle brackets by @nesbox in https://github.com/nesbox/TIC-80/pull/3013 * ci: a PRO linux-arm64 build, and gcc14 out of the matrix by @nesbox in https://github.com/nesbox/TIC-80/pull/3014 * surf: a played cart returns to the browser on CLOSE GAME by @nesbox in https://github.com/nesbox/TIC-80/pull/3016 * Add Metal Renderer and native macOS/iOS support for TIC-80 by @Wang-Yue in https://github.com/nesbox/TIC-80/pull/2973 * ci: the per-language html pairs on every build the site consumes by @nesbox in https://github.com/nesbox/TIC-80/pull/3027 * html: the site's players keep the editors by @nesbox in https://github.com/nesbox/TIC-80/pull/3030 * ci: the players on every build, the stubs back to releases by @nesbox in https://github.com/nesbox/TIC-80/pull/3031 * python: implement eval by @zayfod in https://github.com/nesbox/TIC-80/pull/3019 * js: implement eval, and stop crashing when there is nothing to eval by @zayfod in https://github.com/nesbox/TIC-80/pull/3020 * console: say when eval has no cart to evaluate against by @zayfod in https://github.com/nesbox/TIC-80/pull/3022 * Update MiniScript 2 to latest main by @MineRobber9000 in https://github.com/nesbox/TIC-80/pull/3012 * Always update code from codeimport before running game by @MartinRykfors in https://github.com/nesbox/TIC-80/pull/3025 * console: the add command survives emscripten's runtime trimming by @zayfod in https://github.com/nesbox/TIC-80/pull/3018 * macOS Metal: optimize gamepad polling, border rendering & rate-limit file change checks by @Wang-Yue in https://github.com/nesbox/TIC-80/pull/3021 * Move Linux Icon to hicolor Theme by @amayer5125 in https://github.com/nesbox/TIC-80/pull/3026 * Add Linux Mimetype Icon by @amayer5125 in https://github.com/nesbox/TIC-80/pull/3029 * python: outline the code editor's defs and classes by @zayfod in https://github.com/nesbox/TIC-80/pull/3023 * #3033: warn at configure time when the build has no network by @nesbox in https://github.com/nesbox/TIC-80/pull/3034 * Surf build option by @nesbox in https://github.com/nesbox/TIC-80/pull/3041 * The toolbar becomes a module by @nesbox in https://github.com/nesbox/TIC-80/pull/3046 * sokol: a system layer for the web build by @nesbox in https://github.com/nesbox/TIC-80/pull/3048 * surf: covers stop starving the browser, and a fetch body is freed once by @nesbox in https://github.com/nesbox/TIC-80/pull/3049 * Update Zig template to support Zig 0.17 by @sergeypdev in https://github.com/nesbox/TIC-80/pull/3050 ## New Contributors * @pixelbath made their first contribution in https://github.com/nesbox/TIC-80/pull/2948 * @wescopeland made their first contribution in https://github.com/nesbox/TIC-80/pull/2980 * @annejan made their first contribution in https://github.com/nesbox/TIC-80/pull/2981 * @Ferk made their first contribution in https://github.com/nesbox/TIC-80/pull/2983 * @swoolcock made their first contribution in https://github.com/nesbox/TIC-80/pull/2988 * @bettywolfy made their first contribution in https://github.com/nesbox/TIC-80/pull/2998 * @akhenakh made their first contribution in https://github.com/nesbox/TIC-80/pull/3002 * @luginf made their first contribution in https://github.com/nesbox/TIC-80/pull/2947 * @zayfod made their first contribution in https://github.com/nesbox/TIC-80/pull/3019 * @amayer5125 made their first contribution in https://github.com/nesbox/TIC-80/pull/3026 * @sergeypdev made their first contribution in https://github.com/nesbox/TIC-80/pull/3050 **Full Changelog**: https://github.com/nesbox/TIC-80/compare/v1.2.0...v1.3.0