github nesbox/TIC-80 v1.2.0
TIC-80 tiny computer 1.2.0

7 hours ago

TIC-80 v1.2.0

TIC-80 v1.2.0 is a major update since v1.1.2837, adding new scripting options, platform ports, editor and input fixes, and a rebuilt release pipeline.

What's new

  • YueScript support added as a scripting language, with contributor credits.
  • New language/runtime updates: Lua 5.4, Python bindings v2.1.0, Fennel 1.5.0, Janet, Squirrel, QuickJS, pocketpy v2.0.4, and a Nim WASM template.
  • FFT support: fft and ffts restored for Python, plus general FFT support.
  • Editor/API additions: remap(), flood fill paint, sprite import BPP option, Ruby scrollx/scrolly in mouse(), Wren map() with no args, resume reload, autosave Surf carts, JSON options saving, flags editbox, informative screenshot names, rm alias for del, console wrapped-line indentation, cursor-position search, and Alt caret.
  • Music editor: more piano-roll notes and a DAW-like keyboard layout, note preview routed to the active editor channel, better track switching, and Caps Lock hex input.
  • Touch/gamepad: mobile touch controls for HTML export, gamepad shortcut to Surf/exit Surf, and gamepad state reset.
  • PCM sound channel: 128 samples per frame written straight into RAM, played at 7680 Hz, poked from any language with no new API to learn.
  • Menu behavior: the pause menu now follows where the run came from, not what the cartridge declares. ESC in a player's run always opens it (a game tag adds the game's own items), while a run started from the studio, Ctrl+R or run, steps back to the editor or console. devmode is gone.
  • Byte Battle feature added.

Platform

  • Nintendo Switch port added; libretro NSwitch build fixed.
  • 3DS port revamped, with updated toolchain and CI fixes.
  • Android: .tic/.png file associations, external keyboard arrow keys, Ctrl shortcut fixes, SDL 2.32.10, and Gradle 9.0.0.
  • Linux: .tic/.png associations, F-Droid badge, openSUSE instructions, and ARM link fix.
  • macOS: horizontal scroll direction fix, OpenGL backend, arm64 CI, macOS-15-intel image, and updated build instructions.
  • Web/WASM: touch controls, Safari arrow keys, btnp/fget return type, config saving, and templates after the lld --stack-first change.
  • libretro: monolithic static build, frametime/cursor fixes, updated state handling, zlib option, and PNG extension support.
  • Baremetal: Raspberry Pi fixes and circle-stdlib update.

Bug fixes

  • Fixed memory leaks in TIC/BOOT/BDR callbacks and fs/console/studio; fixed buffer overflow and strncat issues.
  • Fixed crashes from ESC during popup hide, custom --scale, tab completion, #2595, and palette out-of-bounds.
  • Input: stuck keys on focus loss, Android arrow keys, French AZERTY layout, Alt+1 layouts, Safari arrows, F1 hotkey conflict, and mouse cursor mapping with tab width.
  • Editors: sprite hotkeys, map editor tile/tool behavior, bookmarks whitespace, horizontal scrolling with Shift/trackpads, command history visibility, alias autocomplete, and command-line parsing.
  • Scripting: Janet/Scheme keyword commas, Python issues #2841/#2856, Wren bindings, Ruby mouse coordinates, Lua traces, deprecated Lua/Fennel features, tic_modulo, pmemset, and tic_api_memcpy.
  • Graphics/audio: ttri low bpp, bpp2 import, tilesheet segment offsets, negative texture rounding, font chromakey order, and miniaudio updates.
  • File/config: WASM config saving, options JSON, tic_fs_changedir overflow, Windows XP folder error, and whitespace trimming on save.

Build & infrastructure

  • Tag-driven release pipeline with Android signing secrets, itch.io publishing, and self-hosted /create.
  • CMake refactored into submodules, with configurable script languages, system libraries, BUILD_SURF/WREN/zlib options, debug options, and fixed optimization flag ordering.
  • Updated GitHub Actions, macOS images, Ubuntu 24.04/MSYS2/MINGW/openSUSE docs, Zig 0.14.0-dev, and docker toolchains.
  • Vendor updates: SDL 2.32.10, miniaudio, libpng 1.6.43, zlib 1.3.1, zip v0.3.6, QuickJS, Janet, Squirrel, pocketpy, Fennel, and Python bindings.
  • Replaced the msf_gif submodule with a single header; added THIRD_PARTY_LICENSES/LICENSES; removed sokol support; applied cleanup and .clang-format.

Statistics: 286 commits, 218 pull requests, 64 contributors.

What's Changed

New Contributors

Full Changelog: v1.1.2837...v1.2.0

Don't miss a new TIC-80 release

NewReleases is sending notifications on new releases.