TIC-80 changelog
v1.4.1 · Oct 27, 2026
TIC-80 v1.4.1
TIC-80 v1.4.1 is a small polish release focused on editor input and clipboard fixes, controller/platform support, and build housekeeping.
What's new
- AltGr characters now reach the code editor.
- The clipboard now holds the editor’s entire code.
- The bundled Janet runtime is updated to 1.42.1.
Platform
- Linux ARM64 builds now draw through GLES.
- The PlayStation Classic controller works on Windows.
- On macOS, the Command key now acts as Control.
Bug fixes
- The code editor scrolls by the columns it draws, keeping horizontal scrolling aligned.
- MiniScript host version reporting is fixed.
Build & infrastructure
- PRO Linux builds now include the X11 headers.
Statistics: 11 commits, 9 pull requests, 2 contributors.
What's Changed
- ci: the PRO Linux builds get the X11 headers by @nesbox in https://github.com/nesbox/TIC-80/pull/3134
- sokol: the Command key is control by @nesbox in https://github.com/nesbox/TIC-80/pull/3139
- janet: the bundled runtime is 1.42.1 by @nesbox in https://github.com/nesbox/TIC-80/pull/3140
- studio: the code editor scrolls by the columns it draws by @nesbox in https://github.com/nesbox/TIC-80/pull/3141
- sokol: the PlayStation Classic pad works on Windows by @nesbox in https://github.com/nesbox/TIC-80/pull/3142
- sokol: the clipboard holds the editor's whole code by @nesbox in https://github.com/nesbox/TIC-80/pull/3148
- studio: AltGr text reaches the code editor by @nesbox in https://github.com/nesbox/TIC-80/pull/3149
- Fix MiniScript version.host by @MineRobber9000 in https://github.com/nesbox/TIC-80/pull/3144
- ci: the arm64 Linux builds draw through GLES by @nesbox in https://github.com/nesbox/TIC-80/pull/3150
Full Changelog: https://github.com/nesbox/TIC-80/compare/v1.4.0...v1.4.1
v1.4.0 · Oct 25, 2026
TIC-80 v1.4.0
Following v1.3.1, TIC-80 v1.4.0 refreshes the studio with a new menu bar and better sprite/music editing tools, adds line numbers and new drawing/input APIs, expands language support, and modernizes the desktop, web, and Android platform layers.
What's new
- Studio UI: New menu bar replaces the toolbar, export options are grouped by type, and menu/submenu behavior is more predictable.
- Line numbers: Optional line-number gutter with a toggle; visibility is preserved when toggling the gutter.
- Sprite editor: Palette presets, a tools menu, and an initial random brush.
- Music editor: Remembers its active tab and gets reworked tracker shortcuts plus general improvements.
- Drawing/input APIs: Added
btnr/keyr; added and fixedrrect/rrectbrounded-rectangle drawing across languages. - Languages: Gravity support; JavaScript runtime migrated to quickjs-ng; MiniScript 2.0.0; mruby 4.0.0; YueScript 0.34.3; Squirrel fixes and improvements.
- Editor/console polish: Improved comment-line shortcut; console commands answer cleanly; command history is more robust.
Platform
- Desktop player moved onto the sokol layer, with three desktop gamepad backends, better Windows gamepad/Switch Joy-Con report handling, XInput-unplaced pad support, restored CRT mask, and detached console for Windows GUI launches.
- Web player gets a WebGPU build; web clipboard fills ahead of the paste click.
- Android: Ruby returns to the APK; keyboard input works without
TOUCH_INPUT_SUPPORT. - WASM: fixed
wasmtic_paintexport, Zig signature/compile errors, and wasm macro formatting. - Sokol layer now owns typed text; platform input and window behavior are more consistent.
Bug fixes
- Fixed undo placing the cursor in the wrong place.
- Fixed line-number visibility and gutter lag.
- Prevented mouse movement from changing the active compact-mode menu; kept submenus visible unless another parent item is hovered.
- Fixed
clip()with no arguments in Python and Scheme. - Fixed languages requiring too many arguments for
rrect/rrectb. - Fixed Scheme
sfx()ignoring note/octave/speed from the SFX editor. - Fixed the Squirrel TIC/BOOT stack leak.
- Fixed console command/answer boundaries; history survives allocation failure and bounds stored deltas.
- Trimmed trailing filesystem slashes when creating studio.
- Included browser hotfix items for the add dialog,
alone=1, and Ctrl+R.
Build & infrastructure
- CI split into checks and artifact builds; added an API conformance suite at the C boundary, plus broader conformance coverage and Forth measurement.
- Added tests for
btnr/keyr. - Enforced MSVC
/W4,-Wall -Wextra -Werror,.clang-formatlinting, and analyzer/tidy checks for owned sources. - Modularized studio menu, console, strip/splash helpers, and boot cart handling.
- Forth leaves release builds; pforth binary is placed in the CMake sub-build directory.
- Updated README build instructions; pinned naett; updated vendored engines and dependencies.
Statistics: 78 commits, 63 pull requests, 11 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:
- A WebGPU player. In browsers that support WebGPU, a game page now loads a second player build that uses it; everywhere else the existing WebGL one still runs. Nothing to switch on.
- Your saved game gets its own name and icon on iOS. Adding the player page to the home screen on an iPhone or iPad names the app after the game and gives it the game's cover as the icon.
- Cartridge names are unique per account. Two live cartridges of yours can no longer share a name; the older duplicates were renamed with their id, and old
/play/{id}links redirect to the game's own page. - Forth cartridges are no longer accepted. The engine dropped pForth from its release builds, so an upload of a Forth cartridge is refused.
What's Changed
- feat(js): migrate JavaScript runtime to quickjs-ng by @Kaleidosium in https://github.com/nesbox/TIC-80/pull/3056
- chore(deps): bump YueScript to 0.34.3 by @Kaleidosium in https://github.com/nesbox/TIC-80/pull/3057
- tests: the API conformance suite — every call recorded at the C boundary by @nesbox in https://github.com/nesbox/TIC-80/pull/3065
- [WASM - Zig] Fix signature and compile errors by @codingglitch in https://github.com/nesbox/TIC-80/pull/3061
- add missing wasmtic_paint export by @DOCtorActoAntohich in https://github.com/nesbox/TIC-80/pull/3062
- Fix Squirrel TIC and BOOT stack leak by @HarshDhru23 in https://github.com/nesbox/TIC-80/pull/3064
- sokol: the CRT mask lands on the window's pixels again by @nesbox in https://github.com/nesbox/TIC-80/pull/3067
- naett: pin to 5f695cf, the Linux worker stops waiting out a second per request by @nesbox in https://github.com/nesbox/TIC-80/pull/3068
- boot: the cart an app carries becomes a module by @nesbox in https://github.com/nesbox/TIC-80/pull/3069
- studio: the strip's shared helpers become modules, and so does the splash by @nesbox in https://github.com/nesbox/TIC-80/pull/3070
- studio: the console becomes a module by @nesbox in https://github.com/nesbox/TIC-80/pull/3072
- Fix #3004: Scheme sfx() ignores note/octave/speed from SFX editor by @theluckystrike in https://github.com/nesbox/TIC-80/pull/3073
- sokol: the gamepad abstraction gains the three desktop backends by @nesbox in https://github.com/nesbox/TIC-80/pull/3071
- build: -Wall -Wextra -Werror for the sources we own by @nesbox in https://github.com/nesbox/TIC-80/pull/3074
- build: msvc /W4 for the sources we own by @nesbox in https://github.com/nesbox/TIC-80/pull/3075
- sokol: Windows reads the pads XInput does not place by @nesbox in https://github.com/nesbox/TIC-80/pull/3076
- android: fix keyboard input without TOUCH_INPUT_SUPPORT by @iyzsong in https://github.com/nesbox/TIC-80/pull/3077
- format: the .clang-format describes the code, and the lint job holds a change to it by @nesbox in https://github.com/nesbox/TIC-80/pull/3078
- tidy: the analyzer checks the tree, and the findings that were bugs are fixed by @nesbox in https://github.com/nesbox/TIC-80/pull/3079
- sokol: the desktop moves to the sokol layer by @nesbox in https://github.com/nesbox/TIC-80/pull/3084
- Add semicolons after macros to fix bad formatting in wasm.c by @swoolcock in https://github.com/nesbox/TIC-80/pull/3085
- Adds rrect and rrectb functions by @swoolcock in https://github.com/nesbox/TIC-80/pull/3086
- Line numbers by @swoolcock in https://github.com/nesbox/TIC-80/pull/3088
- Gravity language support by @swoolcock in https://github.com/nesbox/TIC-80/pull/3083
- Implement rrect/rrectb for Gravity by @swoolcock in https://github.com/nesbox/TIC-80/pull/3089
- Initial implementation of random brush by @swoolcock in https://github.com/nesbox/TIC-80/pull/3087
- ci: checks.yml takes the checks, build.yml keeps the artifacts by @nesbox in https://github.com/nesbox/TIC-80/pull/3090
- conformance: coverage semantics, and nine more languages measured by @nesbox in https://github.com/nesbox/TIC-80/pull/3092
- Add a button to toggle line numbers by @swoolcock in https://github.com/nesbox/TIC-80/pull/3091
- conformance: forth measured, and the RRECT/RRECTB the measuring found missing by @nesbox in https://github.com/nesbox/TIC-80/pull/3093
- sokol: a WebGPU build of the browser player by @nesbox in https://github.com/nesbox/TIC-80/pull/3096
- Fix gutter lag by @swoolcock in https://github.com/nesbox/TIC-80/pull/3094
- sokol: the web clipboard fills ahead of the paste click by @nesbox in https://github.com/nesbox/TIC-80/pull/3097
- android: ruby returns to the APK by @nesbox in https://github.com/nesbox/TIC-80/pull/3098
- mruby: the vendored engine moves to 4.0.0 by @nesbox in https://github.com/nesbox/TIC-80/pull/3099
- Update build instructions in README.md by @Kacper-aka-Lep in https://github.com/nesbox/TIC-80/pull/3100
- Fix some languages requiring too many arguments to rrect/rrectb by @swoolcock in https://github.com/nesbox/TIC-80/pull/3102
- Trim trailing slashes in filesystem path when creating studio by @swoolcock in https://github.com/nesbox/TIC-80/pull/3103
- Various squirrel fixes and improvements by @swoolcock in https://github.com/nesbox/TIC-80/pull/3105
- studio: the menu bar replaces the toolbar by @nesbox in https://github.com/nesbox/TIC-80/pull/3101
- Put the pforth binary in the cmake sub-build directory by @swoolcock in https://github.com/nesbox/TIC-80/pull/3106
- Fix clip() with no arguments in Python and Scheme by @r3wretrhy in https://github.com/nesbox/TIC-80/pull/3108
- studio: the sprite editor gets its tools menu by @nesbox in https://github.com/nesbox/TIC-80/pull/3109
- Keep submenus visible unless the user hovers another parent menu item by @swoolcock in https://github.com/nesbox/TIC-80/pull/3110
- Music tracker improvements by @swoolcock in https://github.com/nesbox/TIC-80/pull/3111
- studio: the menu becomes a module by @nesbox in https://github.com/nesbox/TIC-80/pull/3113
- studio: group the export menu by type by @nesbox in https://github.com/nesbox/TIC-80/pull/3115
- history: survive allocation failure, and bound the stored deltas by @nesbox in https://github.com/nesbox/TIC-80/pull/3116
- console: a command ends where its answer does by @nesbox in https://github.com/nesbox/TIC-80/pull/3117
- Add btnr and keyr API and tests by @swoolcock in https://github.com/nesbox/TIC-80/pull/3112
- Update MiniScript for 2.0.0 release by @MineRobber9000 in https://github.com/nesbox/TIC-80/pull/3118
- Music tracker shortcut rework by @swoolcock in https://github.com/nesbox/TIC-80/pull/3119
- Prevent mouse move from changing the active menu when in compact mode by @swoolcock in https://github.com/nesbox/TIC-80/pull/3121
- sokol: the layer owns typed text by @nesbox in https://github.com/nesbox/TIC-80/pull/3123
- studio: the music editor remembers its tab by @nesbox in https://github.com/nesbox/TIC-80/pull/3124
- studio: palette presets in the sprite editor by @nesbox in https://github.com/nesbox/TIC-80/pull/3125
- sokol: Windows reads the Switch full-state and Joy-Con reports by @nesbox in https://github.com/nesbox/TIC-80/pull/3126
- sokol: detach the console for a Windows GUI launch by @nesbox in https://github.com/nesbox/TIC-80/pull/3127
- Fix undo putting cursor in the wrong place by @swoolcock in https://github.com/nesbox/TIC-80/pull/3129
- Make sure line number visibility is retained if toggling the gutter by @swoolcock in https://github.com/nesbox/TIC-80/pull/3130
- Improve comment line shortcut by @swoolcock in https://github.com/nesbox/TIC-80/pull/3131
- build: Forth leaves the release builds by @nesbox in https://github.com/nesbox/TIC-80/pull/3133
New Contributors
- @codingglitch made their first contribution in https://github.com/nesbox/TIC-80/pull/3061
- @DOCtorActoAntohich made their first contribution in https://github.com/nesbox/TIC-80/pull/3062
- @HarshDhru23 made their first contribution in https://github.com/nesbox/TIC-80/pull/3064
- @theluckystrike made their first contribution in https://github.com/nesbox/TIC-80/pull/3073
- @Kacper-aka-Lep made their first contribution in https://github.com/nesbox/TIC-80/pull/3100
- @r3wretrhy made their first contribution in https://github.com/nesbox/TIC-80/pull/3108
Full Changelog: https://github.com/nesbox/TIC-80/compare/v1.3.1...v1.4.0
v1.3.1 · Oct 5, 2026
TIC-80 v1.3.1
A hotfix for the three things the 1.3.0 release left broken: the browser console's add command, the PRO alone=1 export, and Ctrl+R in the web player. The C and C++ templates gained an alternative Zig build.
Bug fixes
- The browser console's
addworks again. The file dialog the command needs is back on the site's player pages, where 1.3.0's player rewrite had dropped it, and the picked file now reaches the machine — the callback still calleddynCall, which current emscripten no longer emits. alone=1exports without the editors again. A same-platform native export preferred the running client — editors and all — so the PRO flag was ignored; it now takes the server's editorless stub, the way the html export already did.- Ctrl+R no longer reloads the web player. The key that is RUN in the studio is consumed by the player again, as it was in the 1.2 SDL web build, so Ctrl+R runs the cart instead of the browser reloading the page.
Platform
- The C and C++ templates gained an alternative Zig build system (#3051).
On tic80.com
- The add dialog is back on the site's player pages: the site carries the server half of the fix, and this client the rest.
Statistics: 2 commits, 2 pull requests, 2 contributors
What's Changed
- Add alternative build system for the C template using zig, add CPP template also using zig by @sergeypdev in https://github.com/nesbox/TIC-80/pull/3051
- hotfix 1.3.1: the add dialog, alone=1, and Ctrl+R in the browser by @nesbox in https://github.com/nesbox/TIC-80/pull/3058
Full Changelog: https://github.com/nesbox/TIC-80/compare/v1.3.0...v1.3.1
v1.3.0 · Oct 4, 2026
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
fftrandfftrs. - 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
codeimportupdates before running; new TinyGo-based Go starter template; Zig template updated for Zig 0.17. - 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
.ticassociation 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
addsurvives 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_ESaftertic_key_iso_extraremoval. - 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_tickcallback 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.mdno 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
.ticassociation 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
v1.2.0 · Sep 16, 2026
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:
fftandfftsrestored for Python, plus general FFT support. - Editor/API additions:
remap(), flood fill paint, sprite import BPP option, Rubyscrollx/scrollyinmouse(), Wrenmap()with no args,resume reload, autosave Surf carts, JSON options saving, flags editbox, informative screenshot names,rmalias fordel, 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
gametag adds the game's own items), while a run started from the studio,Ctrl+Rorrun, steps back to the editor or console.devmodeis 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/.pngfile associations, external keyboard arrow keys, Ctrl shortcut fixes, SDL 2.32.10, and Gradle 9.0.0. - Linux:
.tic/.pngassociations, 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/fgetreturn type, config saving, and templates after thelld --stack-firstchange. - 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
strncatissues. - 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, andtic_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_changediroverflow, 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_gifsubmodule with a single header; addedTHIRD_PARTY_LICENSES/LICENSES; removed sokol support; applied cleanup and.clang-format.
Statistics: 286 commits, 218 pull requests, 64 contributors.
What's Changed
- Increase in possible notes for playing on piano roll, new keyboard layout (like in popular DAWs) by @jejikeh in https://github.com/nesbox/TIC-80/pull/2336
- [Python] Fix incorrect signature of
printby @blueloveTH in https://github.com/nesbox/TIC-80/pull/2340 - zig: Replace
addSharedLibrarywithaddExecutableby @peterhellberg in https://github.com/nesbox/TIC-80/pull/2351 - Upgrade Python language bindings to
v1.3.0by @blueloveTH in https://github.com/nesbox/TIC-80/pull/2353 - #2335: added REVERT_SCROLL option to the config by @nesbox in https://github.com/nesbox/TIC-80/pull/2355
- #2345: fixed crash with custom --scale parameter by @nesbox in https://github.com/nesbox/TIC-80/pull/2356
- fix high fps bug for >60Hz displays by @borbware in https://github.com/nesbox/TIC-80/pull/2354
- api/wasm:
writeToStoragedefaults totrue, updatewasmtic_pmemsignature fromi(ii)toi(iI)by @peterhellberg in https://github.com/nesbox/TIC-80/pull/2362 - Alt caret by @bonjorno7 in https://github.com/nesbox/TIC-80/pull/2373
- #2358: fixed horizontal scroll in the code editor by @nesbox in https://github.com/nesbox/TIC-80/pull/2376
- Upgrade Python language bindings to
v1.3.1by @blueloveTH in https://github.com/nesbox/TIC-80/pull/2382 - Trim whitespace on save by @bonjorno7 in https://github.com/nesbox/TIC-80/pull/2377
- fix horizontal scrolling when using trackpads. by @Wang-Yue in https://github.com/nesbox/TIC-80/pull/2393
- Gamepad shortcut to Surf by @LettucePie in https://github.com/nesbox/TIC-80/pull/2387
- Use OpenGL backend for macOS by @Wang-Yue in https://github.com/nesbox/TIC-80/pull/2390
- Fix typo in max scale calculation by @Wang-Yue in https://github.com/nesbox/TIC-80/pull/2391
- Fix horizontal scrolling when press the shift key by @Wang-Yue in https://github.com/nesbox/TIC-80/pull/2400
- enumerate all music tab values in switch by @Wang-Yue in https://github.com/nesbox/TIC-80/pull/2395
- size_t should print with %zu by @Wang-Yue in https://github.com/nesbox/TIC-80/pull/2396
- return 0 when pos is not a valid tab character for removeTab by @Wang-Yue in https://github.com/nesbox/TIC-80/pull/2397
- remove unsequenced modification and access by @Wang-Yue in https://github.com/nesbox/TIC-80/pull/2398
- pointers should be printed with %p by @Wang-Yue in https://github.com/nesbox/TIC-80/pull/2399
- fix memory leak of mainmenu in studio.c by @Wang-Yue in https://github.com/nesbox/TIC-80/pull/2404
- Fix memory leak of script in console.c by @Wang-Yue in https://github.com/nesbox/TIC-80/pull/2405
- Fix memory leak of script in fs.c by @Wang-Yue in https://github.com/nesbox/TIC-80/pull/2406
- fix memory leak of buffer in fs.c by @Wang-Yue in https://github.com/nesbox/TIC-80/pull/2407
- Autosave option for keeping carts from Surf by @LettucePie in https://github.com/nesbox/TIC-80/pull/2410
- Update Python's time() to return a float instead of an int by @MineRobber9000 in https://github.com/nesbox/TIC-80/pull/2412
- Use memmove in tic_api_memcpy by @mbikovitsky in https://github.com/nesbox/TIC-80/pull/2417
- add
--target=wasm32-unknown-unknownto README.md by @phocks in https://github.com/nesbox/TIC-80/pull/2420 - Upgrade Python language bindings to
v1.3.5by @blueloveTH in https://github.com/nesbox/TIC-80/pull/2413 - Make WREN a configurable build option. by @Wang-Yue in https://github.com/nesbox/TIC-80/pull/2418
- Split CMake into submodules by @nesbox in https://github.com/nesbox/TIC-80/pull/2421
- Added cmake build options for all the supported scripts by @nesbox in https://github.com/nesbox/TIC-80/pull/2423
- Fix typo in cmake message by @Wang-Yue in https://github.com/nesbox/TIC-80/pull/2424
- Add "self" to the lua syntax by @lipx1508 in https://github.com/nesbox/TIC-80/pull/2425
- naett: Allow disabling when curl isn't available by @RobLoach in https://github.com/nesbox/TIC-80/pull/2432
- #2383: fixed track number switching by @nesbox in https://github.com/nesbox/TIC-80/pull/2442
- Add "rm" as an alias for "del" by @squidink7 in https://github.com/nesbox/TIC-80/pull/2449
- Update build.zig by @Angluca in https://github.com/nesbox/TIC-80/pull/2460
- Upgrade Python language bindings to
v1.4.1by @blueloveTH in https://github.com/nesbox/TIC-80/pull/2459 - Add BPP arg to sprites import by @TheDrawingCoder-Gamer in https://github.com/nesbox/TIC-80/pull/2452
- #2444: fixed name for screenshots by @nesbox in https://github.com/nesbox/TIC-80/pull/2463
- console: Indent all wrapped lines by @foxeng in https://github.com/nesbox/TIC-80/pull/2451
- add remap function by @TheDrawingCoder-Gamer in https://github.com/nesbox/TIC-80/pull/2453
- fix 2 bpp import by @TheDrawingCoder-Gamer in https://github.com/nesbox/TIC-80/pull/2464
- Makes Rust template
PrintOptionsandFontOptionsstructs fields public by @turbohz in https://github.com/nesbox/TIC-80/pull/2474 - Upgrade Python language bindings to v
1.4.2by @blueloveTH in https://github.com/nesbox/TIC-80/pull/2477 - PCM sound channel by @nesbox in https://github.com/nesbox/TIC-80/pull/2488
- Upgrade Python language bindings to v
1.4.5by @blueloveTH in https://github.com/nesbox/TIC-80/pull/2513 - #2257: build languages as shared libs by @nesbox in https://github.com/nesbox/TIC-80/pull/2519
- Fix missing dash in build.yml by @aliceisjustplaying in https://github.com/nesbox/TIC-80/pull/2525
- #2526: added flags editbox by @nesbox in https://github.com/nesbox/TIC-80/pull/2527
- Compile for MacOS arm64 in CI as well by @aliceisjustplaying in https://github.com/nesbox/TIC-80/pull/2528
- Fix tab-completion crash with load/save/etc. by @aliceisjustplaying in https://github.com/nesbox/TIC-80/pull/2533
- Add various debug options to CMake by @aliceisjustplaying in https://github.com/nesbox/TIC-80/pull/2534
- Update zlib to 1.3.1 so TIC-80 compiles with Clang 18 by @aliceisjustplaying in https://github.com/nesbox/TIC-80/pull/2535
- Update libpng to 1.6.43 so TIC-80 compiles with Clang 18 by @aliceisjustplaying in https://github.com/nesbox/TIC-80/pull/2536
- Update glew in sdl-gpu so AddressSanitizer doesn't error out on it; switch to my fork for it by @aliceisjustplaying in https://github.com/nesbox/TIC-80/pull/2537
- Fix autocomplete on command aliases by @aliceisjustplaying in https://github.com/nesbox/TIC-80/pull/2538
- bump Janet version to v1.34 by @AlecTroemel in https://github.com/nesbox/TIC-80/pull/2539
- Gamepad shortcut to exit surf by @LettucePie in https://github.com/nesbox/TIC-80/pull/2542
- README improvements by @aliceisjustplaying in https://github.com/nesbox/TIC-80/pull/2543
- Readme improvements (Fedora 40) by @aliceisjustplaying in https://github.com/nesbox/TIC-80/pull/2546
- Readme improvements (Ubuntu 22.04, 24.04) by @aliceisjustplaying in https://github.com/nesbox/TIC-80/pull/2548
#includemach-o/dyld.hon macOS for_NSGetExecutablePathby @aliceisjustplaying in https://github.com/nesbox/TIC-80/pull/2551- SDL: don't ignore briefly pressed keys by @dharrington in https://github.com/nesbox/TIC-80/pull/2553
- Fix the error 'folder <folder> doesn't exist' under Windows XP (win32 build) by @aliceisjustplaying in https://github.com/nesbox/TIC-80/pull/2558
- Scripts as shared libs by @nesbox in https://github.com/nesbox/TIC-80/pull/2568
- Fix
surfon win32 builds by @aliceisjustplaying in https://github.com/nesbox/TIC-80/pull/2567 - Fix typo in build.yml by @aliceisjustplaying in https://github.com/nesbox/TIC-80/pull/2569
- Help improvements by @Skeptim in https://github.com/nesbox/TIC-80/pull/2570
- fix horribly broken command line parsing by @Gargaj in https://github.com/nesbox/TIC-80/pull/2578
- adds gamepad state being reset by @LettucePie in https://github.com/nesbox/TIC-80/pull/2579
- #1950: added 'devmode: on' metatag to disable game menu by @nesbox in https://github.com/nesbox/TIC-80/pull/2581
- Readme improvements for Windows by @aliceisjustplaying in https://github.com/nesbox/TIC-80/pull/2585
- Add infos in README to the unofficial linux/arm64 nightly builds by @aliceisjustplaying in https://github.com/nesbox/TIC-80/pull/2586
- #2584: add 'of' js keyword by @nesbox in https://github.com/nesbox/TIC-80/pull/2587
- libretro: Update libretro.h header files by @RobLoach in https://github.com/nesbox/TIC-80/pull/2588
- libretro: Replace clock() with frame time callback by @RobLoach in https://github.com/nesbox/TIC-80/pull/2589
- libretro: Update the libretro state values by @RobLoach in https://github.com/nesbox/TIC-80/pull/2590
- libretro: Use memset() to set the initial TIC-80 state by @RobLoach in https://github.com/nesbox/TIC-80/pull/2591
- libretro: Update the list of static language libraries by @RobLoach in https://github.com/nesbox/TIC-80/pull/2592
- Hotkeys topic in help by @Skeptim in https://github.com/nesbox/TIC-80/pull/2594
- Fix for Arrow keys not working on android. by @Pedrocasf in https://github.com/nesbox/TIC-80/pull/2593
- libretro: Add
BUILD_WITH_ZLIBoption to allow disabling zlib link by @RobLoach in https://github.com/nesbox/TIC-80/pull/2596 - Save options as json to .local folder by @nesbox in https://github.com/nesbox/TIC-80/pull/2597
- Update MSYS2/MINGW build instructions; misc updates by @aliceisjustplaying in https://github.com/nesbox/TIC-80/pull/2598
- #2595: crash fix by @nesbox in https://github.com/nesbox/TIC-80/pull/2599
- #include mach-o/dyld.h when on macOS for _NSGetExecutablePath (needed for Clang 18) by @aliceisjustplaying in https://github.com/nesbox/TIC-80/pull/2600
- Debug scripts for Windows + macOS by @aliceisjustplaying in https://github.com/nesbox/TIC-80/pull/2601
- Feature: Byte Battle by @aliceisjustplaying in https://github.com/nesbox/TIC-80/pull/2602
- #1950: removed devmode and game menu by default, game menu will be shown if the 'game' tag exists in the tags section by @nesbox in https://github.com/nesbox/TIC-80/pull/2603
- .gitignore updates by @aliceisjustplaying in https://github.com/nesbox/TIC-80/pull/2605
- add .clang-format by @aliceisjustplaying in https://github.com/nesbox/TIC-80/pull/2606
- Feature: FFT support by @aliceisjustplaying in https://github.com/nesbox/TIC-80/pull/2607
- Implement "resume reload" command. by @technomancy in https://github.com/nesbox/TIC-80/pull/2609
- Mention reload argument in resume help text. by @technomancy in https://github.com/nesbox/TIC-80/pull/2610
- Add a check to draw.c:getPalette so it does not write out of bounds past the mapping static array into whatever static happens to come after: Fixes #2611 segfault by @OvermindDL1 in https://github.com/nesbox/TIC-80/pull/2619
- Update Fennel to version 1.5.0. by @technomancy in https://github.com/nesbox/TIC-80/pull/2620
- Fix wren bindings by @aliceisjustplaying in https://github.com/nesbox/TIC-80/pull/2623
- Fix
elliandellibbindings in wren by @aliceisjustplaying in https://github.com/nesbox/TIC-80/pull/2625 - fix sprite editor hotkeys when selecting by @Miguel-hrvs in https://github.com/nesbox/TIC-80/pull/2626
- Fix changing tile in map editor changes tool + not needing to hold shift to show tiles by @Miguel-hrvs in https://github.com/nesbox/TIC-80/pull/2631
- Fix ci 3ds and rpi builds by @Miguel-hrvs in https://github.com/nesbox/TIC-80/pull/2638
- Avoid command from history not fully visible at the bottom by @Miguel-hrvs in https://github.com/nesbox/TIC-80/pull/2627
- Fix changing tile in map editor changes tool for real by @Miguel-hrvs in https://github.com/nesbox/TIC-80/pull/2637
- fix bookmarks include whitespaces at the beginning of the name by @Miguel-hrvs in https://github.com/nesbox/TIC-80/pull/2642
- fix cart.png palette inconsistency with custom config by @Miguel-hrvs in https://github.com/nesbox/TIC-80/pull/2643
- add Nim Wasm template by @janAkali in https://github.com/nesbox/TIC-80/pull/2645
- Fix f1 hotkey conflict by @Miguel-hrvs in https://github.com/nesbox/TIC-80/pull/2646
- fix some strncat vulnerabilities by @Miguel-hrvs in https://github.com/nesbox/TIC-80/pull/2648
- font() chromakey argument order in python fixed (#2634) by @Gaiko-sw in https://github.com/nesbox/TIC-80/pull/2653
- Readme dependencies typo fixed by @Gaiko-sw in https://github.com/nesbox/TIC-80/pull/2651
- Fix buffer overflow in
tic_fs_changedirby @aliceisjustplaying in https://github.com/nesbox/TIC-80/pull/2658 - Update debug_macos.sh by @aliceisjustplaying in https://github.com/nesbox/TIC-80/pull/2659
- Proposal: remove support for
sokolby @aliceisjustplaying in https://github.com/nesbox/TIC-80/pull/2662 - Fix TIC-80 when using a French AZERTY layout by @aliceisjustplaying in https://github.com/nesbox/TIC-80/pull/2663
- Cleanup: remove all trailing spaces from the source code by @aliceisjustplaying in https://github.com/nesbox/TIC-80/pull/2664
- Revert to correct
demos/bunny/wasmmark/wasmmark.wasmby @aliceisjustplaying in https://github.com/nesbox/TIC-80/pull/2666 - Fix issue with alt+1 on certain layouts by @aliceisjustplaying in https://github.com/nesbox/TIC-80/pull/2665
- Search from cursor position + go to the top if ended going down with … by @Miguel-hrvs in https://github.com/nesbox/TIC-80/pull/2671
- debug-linux.sh by @aliceisjustplaying in https://github.com/nesbox/TIC-80/pull/2672
- Update
sdl-gpu; unbreak Wayland (partially) by @aliceisjustplaying in https://github.com/nesbox/TIC-80/pull/2673 - Update to Zig 0.14.0-dev, run through
$ zig fmtby @Des-Nerger in https://github.com/nesbox/TIC-80/pull/2675 - fix tic_modulo by @anescient in https://github.com/nesbox/TIC-80/pull/2676
- fix incorrect rounding on negative texture coordinates by @anescient in https://github.com/nesbox/TIC-80/pull/2679
- break out fs_isdir and use it to test fs argument by @anescient in https://github.com/nesbox/TIC-80/pull/2680
- add map() with no args to wren api class by @anescient in https://github.com/nesbox/TIC-80/pull/2687
- add scrollx and scrolly to ruby mouse() by @anescient in https://github.com/nesbox/TIC-80/pull/2692
- flood fill paint function by @anescient in https://github.com/nesbox/TIC-80/pull/2683
- Update lua to latest v5.4 by @Miguel-hrvs in https://github.com/nesbox/TIC-80/pull/2693
- Update squirrel to master branch by @Miguel-hrvs in https://github.com/nesbox/TIC-80/pull/2694
- Fix ruby mouse coordinates by @anescient in https://github.com/nesbox/TIC-80/pull/2698
- update to latest circle-stdlib by @Miguel-hrvs in https://github.com/nesbox/TIC-80/pull/2697
- Use debug.traceback for stack traces in Lua-based carts. by @technomancy in https://github.com/nesbox/TIC-80/pull/2705
- Upgrade janet to current master head by @AlecTroemel in https://github.com/nesbox/TIC-80/pull/2709
- Update 3ds docker toolchain by @Miguel-hrvs in https://github.com/nesbox/TIC-80/pull/2701
- Use O3 + flto with all but msvc by @Miguel-hrvs in https://github.com/nesbox/TIC-80/pull/2696
- Add openSUSE instructions and refactor README by @fentras in https://github.com/nesbox/TIC-80/pull/2712
- update pocketpy from v1.x to v2.0.1 by @PrimedErwin in https://github.com/nesbox/TIC-80/pull/2714
- fix bpp2 by @TheDrawingCoder-Gamer in https://github.com/nesbox/TIC-80/pull/2715
- Enable janet in mingw by @Miguel-hrvs in https://github.com/nesbox/TIC-80/pull/2722
- Swap LUA_COMPAT_5_2 for LUA_COMPAT_5_3, since we're in Lua 5.4 now by @MineRobber9000 in https://github.com/nesbox/TIC-80/pull/2728
- updated pkpy to v2.0.4 by @PrimedErwin in https://github.com/nesbox/TIC-80/pull/2730
- Lua API: Explicitly zero local array by @YoshiRulz in https://github.com/nesbox/TIC-80/pull/2740
- use -O2 and add arm64 build by @Miguel-hrvs in https://github.com/nesbox/TIC-80/pull/2745
- Fix OPT_END() missing without BUILD_EDITORS flag by @kawaii-Code in https://github.com/nesbox/TIC-80/pull/2748
- Allow build with system libraries by @iyzsong in https://github.com/nesbox/TIC-80/pull/2758
- Fix deprecated features for lua/fennel by @iyzsong in https://github.com/nesbox/TIC-80/pull/2759
- Update Ubuntu 24.04 build instructions by @marcosvpj in https://github.com/nesbox/TIC-80/pull/2764
- Baremetal Pi fix by @josei in https://github.com/nesbox/TIC-80/pull/2763
- QuickJS update by @nesbox in https://github.com/nesbox/TIC-80/pull/2776
- Add F-Droid download badge by @rugk in https://github.com/nesbox/TIC-80/pull/2783
- doc: Fix Linux/ARM link as it is broken by @rugk in https://github.com/nesbox/TIC-80/pull/2787
- Upgrade Python language bindings to
v2.1.0by @blueloveTH in https://github.com/nesbox/TIC-80/pull/2795 - Fix debug scripts by @aliceisjustplaying in https://github.com/nesbox/TIC-80/pull/2809
- Refactor
python.cand fix bugs by @blueloveTH in https://github.com/nesbox/TIC-80/pull/2801 - Update SDL to release-2.32.10 (pipewire fix) by @imsys in https://github.com/nesbox/TIC-80/pull/2827
- Informative screenshot filenames by @imsys in https://github.com/nesbox/TIC-80/pull/2826
- Libretro cursorfix by @imsys in https://github.com/nesbox/TIC-80/pull/2822
- Fix saving options to JSON by @Softkandi in https://github.com/nesbox/TIC-80/pull/2790
- Update macOS build instructions by @WillGreen in https://github.com/nesbox/TIC-80/pull/2788
- [libretro] Fixes frametime (and weird bugs) by @imsys in https://github.com/nesbox/TIC-80/pull/2829
- Replace msf_gif submodule with single header (–711 MiB) + macOS build fix by @imsys in https://github.com/nesbox/TIC-80/pull/2833
- [Android standalone] update SDL files to v2.32.10 by @imsys in https://github.com/nesbox/TIC-80/pull/2831
- [Android] Associate .tic files to TIC-80 app by @imsys in https://github.com/nesbox/TIC-80/pull/2834
- [Linux] Associates .tic and .png to TIC-80 by @imsys in https://github.com/nesbox/TIC-80/pull/2835
- [Android standalone] fix association of .tic and .png to TIC-80 app by @imsys in https://github.com/nesbox/TIC-80/pull/2837
- Informs retroarch that PNG extension is also supported by @imsys in https://github.com/nesbox/TIC-80/pull/2832
- [Android] Update gradle and gradlew to v9.0.0 by @imsys in https://github.com/nesbox/TIC-80/pull/2836
- [web export] Fix Safari Arrow keys in HTML export/webapp by @CarlQLange in https://github.com/nesbox/TIC-80/pull/2838
- [.github/workflows] macos-arm64 -DCMAKE_POLICY_VERSION_MINIMUM=3.5 by @imsys in https://github.com/nesbox/TIC-80/pull/2846
- sokol branch 258 tile esc key mouse flicker fix by @Miguel-hrvs in https://github.com/nesbox/TIC-80/pull/2849
- [demo] Fix minor mismatch between Fennel and other demo carts by @ckoparkar in https://github.com/nesbox/TIC-80/pull/2851
- Fix faulty implementation of pmemset by @aaneeley in https://github.com/nesbox/TIC-80/pull/2852
- Add YueScript as an additional scripting language by @Kaleidosium in https://github.com/nesbox/TIC-80/pull/2743
- Add credits for YueScript support contributors by @Kaleidosium in https://github.com/nesbox/TIC-80/pull/2854
- Fix build with Pro=On + Editors=Off (#2862) by @MikanHako1024 in https://github.com/nesbox/TIC-80/pull/2863
- Revamp the 3DS port by @carstene1ns in https://github.com/nesbox/TIC-80/pull/2864
- Migrate to macos-15-intel github action image by @carstene1ns in https://github.com/nesbox/TIC-80/pull/2865
- Add Nintendo Switch port by @carstene1ns in https://github.com/nesbox/TIC-80/pull/2866
- [cmake/mruby.cmake] Replace
exec_program(deprecated) by @Rhys-T in https://github.com/nesbox/TIC-80/pull/2869 - Fix WASM btnp and fget return type by @t-mw in https://github.com/nesbox/TIC-80/pull/2875
- Fix old python issues #2841 and #2856 by @blueloveTH in https://github.com/nesbox/TIC-80/pull/2878
- Update vendor/zip from v0.1.19 to v0.3.6 by @Kaleidosium in https://github.com/nesbox/TIC-80/pull/2883
- [CMake] Fix optimization flag ordering to respect user-specified -O flags by @imsys in https://github.com/nesbox/TIC-80/pull/2885
- Fix crash when pressing ESC during code editor popup hide animation (Fixes #2881) by @TetherIO in https://github.com/nesbox/TIC-80/pull/2887
- Bump miniaudio version by @sknebel in https://github.com/nesbox/TIC-80/pull/2888
- Fixes libretro NSwitch build by @imsys in https://github.com/nesbox/TIC-80/pull/2891
- docs: clarify map remap callback behavior across language bindings by @RDeckard in https://github.com/nesbox/TIC-80/pull/2894
- Fix music editor hex input with Caps Lock on by @RDeckard in https://github.com/nesbox/TIC-80/pull/2895
- [Fix] [Android] prevent extra character insertion on Ctrl shortcuts by @RDeckard in https://github.com/nesbox/TIC-80/pull/2896
- [Fix] [Android] restore external keyboard arrow keys by tightening joystick classification by @RDeckard in https://github.com/nesbox/TIC-80/pull/2897
- [Fix] [Console] generate help version runtime strings from CMake sources by @RDeckard in https://github.com/nesbox/TIC-80/pull/2898
- [Fix] [Music] Route note preview to the active editor channel by @RDeckard in https://github.com/nesbox/TIC-80/pull/2899
- [Fix] [SDL] Reset keyboard state on focus loss to avoid stuck keys by @RDeckard in https://github.com/nesbox/TIC-80/pull/2900
- Restore
fftandfftsfunctions for python by @MartinRykfors in https://github.com/nesbox/TIC-80/pull/2902 - Add THIRD_PARTY_LICENSES documentation and LICENSES directory by @TetherIO in https://github.com/nesbox/TIC-80/pull/2904
- Baremetal build fix by @imsys in https://github.com/nesbox/TIC-80/pull/2907
- Creates the BUILD_SURF build option by @imsys in https://github.com/nesbox/TIC-80/pull/2889
- [Fix] [Code] align mouse cursor mapping with tab width by @RDeckard in https://github.com/nesbox/TIC-80/pull/2901
- [Fix] [macOS] correct horizontal scroll direction by @RDeckard in https://github.com/nesbox/TIC-80/pull/2903
- Implement monolithic static libretro build by @imsys in https://github.com/nesbox/TIC-80/pull/2905
- Fix WASM templates after lld --stack-first default change by @RayenChalouati in https://github.com/nesbox/TIC-80/pull/2906
- Fix saving config in web version (wasm) by @imsys in https://github.com/nesbox/TIC-80/pull/2909
- Upgrade GitHub Actions by @imsys in https://github.com/nesbox/TIC-80/pull/2910
- Sort files alphabetically when surfing. by @imsys in https://github.com/nesbox/TIC-80/pull/2911
- Allows for '.' in lua outlines. by @CDVoidwalker in https://github.com/nesbox/TIC-80/pull/2914
- Fix ttri in low bpp, use segment offsets in tilesheet accessors by @ddelemeny in https://github.com/nesbox/TIC-80/pull/2921
- Added mobile touch controls for html export from @matstc by @RobinScaletta in https://github.com/nesbox/TIC-80/pull/2924
- Update GitHub username for Andrei Rudenko by @AndreiRudenko in https://github.com/nesbox/TIC-80/pull/2929
- Fix missing comma in JanetKeywords and SchemeKeywords arrays by @imsys in https://github.com/nesbox/TIC-80/pull/2954
- Fix Memory Leak in TIC/BOOT/BDR .. Callback Functions When Variable i… by @hadamak in https://github.com/nesbox/TIC-80/pull/2966
- Release pipeline: tag-driven builds, itch.io, self-host /create by @nesbox in https://github.com/nesbox/TIC-80/pull/2991
- release notes: our summary first, GitHub's pull request list after by @nesbox in https://github.com/nesbox/TIC-80/pull/2996
- release: the tag path hands the android signing secrets to the build by @nesbox in https://github.com/nesbox/TIC-80/pull/2997
New Contributors
- @jejikeh made their first contribution in https://github.com/nesbox/TIC-80/pull/2336
- @peterhellberg made their first contribution in https://github.com/nesbox/TIC-80/pull/2351
- @bonjorno7 made their first contribution in https://github.com/nesbox/TIC-80/pull/2373
- @Wang-Yue made their first contribution in https://github.com/nesbox/TIC-80/pull/2393
- @LettucePie made their first contribution in https://github.com/nesbox/TIC-80/pull/2387
- @MineRobber9000 made their first contribution in https://github.com/nesbox/TIC-80/pull/2412
- @mbikovitsky made their first contribution in https://github.com/nesbox/TIC-80/pull/2417
- @phocks made their first contribution in https://github.com/nesbox/TIC-80/pull/2420
- @lipx1508 made their first contribution in https://github.com/nesbox/TIC-80/pull/2425
- @squidink7 made their first contribution in https://github.com/nesbox/TIC-80/pull/2449
- @Angluca made their first contribution in https://github.com/nesbox/TIC-80/pull/2460
- @TheDrawingCoder-Gamer made their first contribution in https://github.com/nesbox/TIC-80/pull/2452
- @foxeng made their first contribution in https://github.com/nesbox/TIC-80/pull/2451
- @turbohz made their first contribution in https://github.com/nesbox/TIC-80/pull/2474
- @aliceisjustplaying made their first contribution in https://github.com/nesbox/TIC-80/pull/2525
- @dharrington made their first contribution in https://github.com/nesbox/TIC-80/pull/2553
- @Skeptim made their first contribution in https://github.com/nesbox/TIC-80/pull/2570
- @Gargaj made their first contribution in https://github.com/nesbox/TIC-80/pull/2578
- @Pedrocasf made their first contribution in https://github.com/nesbox/TIC-80/pull/2593
- @OvermindDL1 made their first contribution in https://github.com/nesbox/TIC-80/pull/2619
- @Miguel-hrvs made their first contribution in https://github.com/nesbox/TIC-80/pull/2626
- @janAkali made their first contribution in https://github.com/nesbox/TIC-80/pull/2645
- @Gaiko-sw made their first contribution in https://github.com/nesbox/TIC-80/pull/2653
- @Des-Nerger made their first contribution in https://github.com/nesbox/TIC-80/pull/2675
- @anescient made their first contribution in https://github.com/nesbox/TIC-80/pull/2676
- @fentras made their first contribution in https://github.com/nesbox/TIC-80/pull/2712
- @PrimedErwin made their first contribution in https://github.com/nesbox/TIC-80/pull/2714
- @YoshiRulz made their first contribution in https://github.com/nesbox/TIC-80/pull/2740
- @kawaii-Code made their first contribution in https://github.com/nesbox/TIC-80/pull/2748
- @iyzsong made their first contribution in https://github.com/nesbox/TIC-80/pull/2758
- @marcosvpj made their first contribution in https://github.com/nesbox/TIC-80/pull/2764
- @josei made their first contribution in https://github.com/nesbox/TIC-80/pull/2763
- @rugk made their first contribution in https://github.com/nesbox/TIC-80/pull/2783
- @imsys made their first contribution in https://github.com/nesbox/TIC-80/pull/2827
- @Softkandi made their first contribution in https://github.com/nesbox/TIC-80/pull/2790
- @WillGreen made their first contribution in https://github.com/nesbox/TIC-80/pull/2788
- @CarlQLange made their first contribution in https://github.com/nesbox/TIC-80/pull/2838
- @ckoparkar made their first contribution in https://github.com/nesbox/TIC-80/pull/2851
- @aaneeley made their first contribution in https://github.com/nesbox/TIC-80/pull/2852
- @Kaleidosium made their first contribution in https://github.com/nesbox/TIC-80/pull/2743
- @MikanHako1024 made their first contribution in https://github.com/nesbox/TIC-80/pull/2863
- @carstene1ns made their first contribution in https://github.com/nesbox/TIC-80/pull/2864
- @Rhys-T made their first contribution in https://github.com/nesbox/TIC-80/pull/2869
- @t-mw made their first contribution in https://github.com/nesbox/TIC-80/pull/2875
- @TetherIO made their first contribution in https://github.com/nesbox/TIC-80/pull/2887
- @sknebel made their first contribution in https://github.com/nesbox/TIC-80/pull/2888
- @RDeckard made their first contribution in https://github.com/nesbox/TIC-80/pull/2894
- @MartinRykfors made their first contribution in https://github.com/nesbox/TIC-80/pull/2902
- @RayenChalouati made their first contribution in https://github.com/nesbox/TIC-80/pull/2906
- @CDVoidwalker made their first contribution in https://github.com/nesbox/TIC-80/pull/2914
- @RobinScaletta made their first contribution in https://github.com/nesbox/TIC-80/pull/2924
- @hadamak made their first contribution in https://github.com/nesbox/TIC-80/pull/2966
Full Changelog: https://github.com/nesbox/TIC-80/compare/v1.1.2837...v1.2.0
v1.1.2837 · Oct 22, 2023
What's Changed
- Some keys are not working with foreign keyboard (i.e. right parenthesis for azerty layout) by @nesbox #2310
- add build instruction for ubuntu 22.04 by @jackygoule in https://github.com/nesbox/TIC-80/pull/2277
- Change janet's withsyms to with-syms by @sogaiu in https://github.com/nesbox/TIC-80/pull/2287
- Disable structured editing on non-Emacs editors by @neolight1010 in https://github.com/nesbox/TIC-80/pull/2294
- Update zig examples and template to latest Zig by @tupini07 in https://github.com/nesbox/TIC-80/pull/2298
- Update "help keys" output to include keycodes for ESC, F1-F12, and numpad keys by @cdwfs in https://github.com/nesbox/TIC-80/pull/2299
- Add true, false, nil to FennelKeywords by @neolight1010 in https://github.com/nesbox/TIC-80/pull/2303
- bump janet version to 1.31.0 by @AlecTroemel in https://github.com/nesbox/TIC-80/pull/2306
- Fix issue 2291 by @Eulenmensch93 in https://github.com/nesbox/TIC-80/pull/2309
- Handle Numpad Enter key as regular Enter key by @neolight1010 in https://github.com/nesbox/TIC-80/pull/2305
- Add a few more emacs bindings by @non in https://github.com/nesbox/TIC-80/pull/2318
- Upgrade Python language bindings to
v1.2.xby @blueloveTH in https://github.com/nesbox/TIC-80/pull/2315 - Janet language bindings for ttri fn, texsrc arg can be int or bool by @AlecTroemel in https://github.com/nesbox/TIC-80/pull/2323
- fixed eval command in ruby by @zacx-z in https://github.com/nesbox/TIC-80/pull/2326
tracecan log object-type argument in ruby to be consistent with lua by @zacx-z in https://github.com/nesbox/TIC-80/pull/2332
New Contributors
- @jackygoule made their first contribution in https://github.com/nesbox/TIC-80/pull/2277
- @sogaiu made their first contribution in https://github.com/nesbox/TIC-80/pull/2287
- @tupini07 made their first contribution in https://github.com/nesbox/TIC-80/pull/2298
- @Eulenmensch93 made their first contribution in https://github.com/nesbox/TIC-80/pull/2309
- @non made their first contribution in https://github.com/nesbox/TIC-80/pull/2318
- @zacx-z made their first contribution in https://github.com/nesbox/TIC-80/pull/2326
Full Changelog: https://github.com/nesbox/TIC-80/compare/v1.1.2736...v1.1.2837
v1.1.2736 · Aug 27, 2023
What's Changed
- Android: version code stuck #2283 by relan
- Sprite editor touch screen not working properly(Android) #2270 by MateusH7
- [Bug] [QuickJS] Glitches and crashes #2268 by scambier
- Remap signature has changed in JavaScript #2267 by scambier
- Some keys are not working #2265 by Kitsuinox
- [Bug] CRT shader doesn't work on HTML exports with alone=1 #2229 by scambier
- Some Android devices can't access tic files without rooted phone #2222 by rubensoleao
Full Changelog: https://github.com/nesbox/TIC-80/compare/v1.1.2729...v1.1.2736
v1.1.2729 · Aug 17, 2023
What's Changed
- Refactor and improve browser versions (tic-html, export stubs, webapp) by @tranxuanthang in https://github.com/nesbox/TIC-80/pull/1912
- Adjust scroll of console when a command spills to the next line. by @sakisakira in https://github.com/nesbox/TIC-80/pull/1925
- Enable scrolling Code Editor by key-combinations like Ctrl-P and Ctrl-N. by @sakisakira in https://github.com/nesbox/TIC-80/pull/1926
- Update fedora build instructions by @rktjmp in https://github.com/nesbox/TIC-80/pull/1936
- Building on FreeBSD by @peterhil in https://github.com/nesbox/TIC-80/pull/1941
- Add djgpp support by @phcoder in https://github.com/nesbox/TIC-80/pull/1942
- Feature: Optional auto-closing of delimiters by @benthor in https://github.com/nesbox/TIC-80/pull/1946
- Support OSX PPC, GameCube, Wii and WiiU as libretro core by @phcoder in https://github.com/nesbox/TIC-80/pull/1943
- Add credits for PR #1946 by @benthor in https://github.com/nesbox/TIC-80/pull/1947
- Fix mget function signature in WASM binding by @soxfox42 in https://github.com/nesbox/TIC-80/pull/1951
- Add metainfo and fix case typo in desktop category. by @kevinsmia1939 in https://github.com/nesbox/TIC-80/pull/1957
- Fix loading full-size BINARY chunks by @soxfox42 in https://github.com/nesbox/TIC-80/pull/1964
- Add smooth line drawing in sprite editor by @solarized-fox in https://github.com/nesbox/TIC-80/pull/1967
- Fix WASM font signature by @soxfox42 in https://github.com/nesbox/TIC-80/pull/1971
- Improve the Zig template by @soxfox42 in https://github.com/nesbox/TIC-80/pull/1974
- Add a Rust WASM template by @soxfox42 in https://github.com/nesbox/TIC-80/pull/1977
- Add C template by @Gota7 in https://github.com/nesbox/TIC-80/pull/1981
- Add DocumentsProvider for Android. by @sakisakira in https://github.com/nesbox/TIC-80/pull/1998
- Add receiving intent of ACTION_SEND for Android. by @sakisakira in https://github.com/nesbox/TIC-80/pull/2003
- Support fn+enter alias for insert on mac keyboards by @fiskWasTaken in https://github.com/nesbox/TIC-80/pull/2010
- override some scale settings; finer-grained SDL init by @dhorlick in https://github.com/nesbox/TIC-80/pull/2007
- (typo) fix name of utility in usage instructions by @joshgoebel in https://github.com/nesbox/TIC-80/pull/2044
- (fix) fix
time()API call - revert theclock()changes by @joshgoebel in https://github.com/nesbox/TIC-80/pull/2047 - (fix) help = by @joshgoebel in https://github.com/nesbox/TIC-80/pull/2057
- (fix) help api/cmd/usage is not exclusive by @joshgoebel in https://github.com/nesbox/TIC-80/pull/2058
- Fix rare segfault during shutdown by @jezze in https://github.com/nesbox/TIC-80/pull/2063
- Fix segfault in player-sdl by @jezze in https://github.com/nesbox/TIC-80/pull/2062
- Fix counter and freq for libretro by @jezze in https://github.com/nesbox/TIC-80/pull/2072
- Adding png chunk cartridge support by @bztsrc in https://github.com/nesbox/TIC-80/pull/2045
- Fixes #2016 by @Podepi in https://github.com/nesbox/TIC-80/pull/2070
- Don't show "unknown topic" when help message is displayed by @iacore in https://github.com/nesbox/TIC-80/pull/2068
- Skip empty menu option by @iacore in https://github.com/nesbox/TIC-80/pull/2067
- Minor fixes by @jezze in https://github.com/nesbox/TIC-80/pull/2066
- Fix typo and reduce 2 newlines at end to 1 in
baremetalrpiinstructions by @TylerMS887 in https://github.com/nesbox/TIC-80/pull/2052 - Add png chunk loading by @bztsrc in https://github.com/nesbox/TIC-80/pull/2088
- janet support by @AlecTroemel in https://github.com/nesbox/TIC-80/pull/2079
- (docs) <96kb is reserved RAM, not free by @joshgoebel in https://github.com/nesbox/TIC-80/pull/2094
- make errBuffer pointer, avoid memory bug by not using janet_buffer_init by @AlecTroemel in https://github.com/nesbox/TIC-80/pull/2095
- add function definitions for music args count 4 through 7 by @AlecTroemel in https://github.com/nesbox/TIC-80/pull/2096
- Correct dev MacOS app path by @lzap in https://github.com/nesbox/TIC-80/pull/2098
- add default waves and SFX for demo janet and fennel carts by @AlecTroemel in https://github.com/nesbox/TIC-80/pull/2099
- use different lua class setup to avoid weird field clobbering by @AlecTroemel in https://github.com/nesbox/TIC-80/pull/2101
- renamed misspelled tmap to map by @AlecTroemel in https://github.com/nesbox/TIC-80/pull/2103
- Improve the Janet demo cart by @soxfox42 in https://github.com/nesbox/TIC-80/pull/2106
- Add janet outline function by @AlecTroemel in https://github.com/nesbox/TIC-80/pull/2110
- S7 Scheme language support by @sthilaid in https://github.com/nesbox/TIC-80/pull/2113
- Update README.md by @sthilaid in https://github.com/nesbox/TIC-80/pull/2116
- Code Editor upgrades: structured s-expresion edition and emacs-mode by @sthilaid in https://github.com/nesbox/TIC-80/pull/2117
- update janet vendor, sandbox file (and everything else), implement OVR callback by @AlecTroemel in https://github.com/nesbox/TIC-80/pull/2118
- Added hotkey option to menu items. Used in Yes/No dialog. by @sthilaid in https://github.com/nesbox/TIC-80/pull/2120
- Language specific string delimiters by @sthilaid in https://github.com/nesbox/TIC-80/pull/2119
- Scheme defstruct by @sthilaid in https://github.com/nesbox/TIC-80/pull/2122
- Delete line improvement by @sthilaid in https://github.com/nesbox/TIC-80/pull/2123
- fixed error in scheme SPR api function by @sthilaid in https://github.com/nesbox/TIC-80/pull/2125
- Upgrade to Fennel 1.3.0. by @technomancy in https://github.com/nesbox/TIC-80/pull/2130
- Remove defaults for sx/sy in WASM map() function by @Madadog in https://github.com/nesbox/TIC-80/pull/2132
- Fix strict mode in default fennel cart. by @technomancy in https://github.com/nesbox/TIC-80/pull/2136
- Update list of Fennel keywords for version 1.3.0. by @technomancy in https://github.com/nesbox/TIC-80/pull/2139
- Bypass checks which disable Fennel friendly compiler errors. by @technomancy in https://github.com/nesbox/TIC-80/pull/2140
- Better scheme errors by @sthilaid in https://github.com/nesbox/TIC-80/pull/2145
- Clamp input to animEffect() by @Madadog in https://github.com/nesbox/TIC-80/pull/2149
- Upgrade janet to 1.27, add mingw workflow build by @AlecTroemel in https://github.com/nesbox/TIC-80/pull/2155
- Update README.md by @theKapcioszek in https://github.com/nesbox/TIC-80/pull/2167
- fix janet pmem implementation, which was completely broken. by @AlecTroemel in https://github.com/nesbox/TIC-80/pull/2171
- n3ds: fix crash on exit due to incorrect free() on screen buffer by @asiekierka in https://github.com/nesbox/TIC-80/pull/2180
- Vi mode by @koltenpearson in https://github.com/nesbox/TIC-80/pull/2174
- fix implementation of janet sfx function by @AlecTroemel in https://github.com/nesbox/TIC-80/pull/2186
- Python language bindings by @koltenpearson in https://github.com/nesbox/TIC-80/pull/2184
- Convert
vendor/pocketpyinto a git submodule by @blueloveTH in https://github.com/nesbox/TIC-80/pull/2200 - Fix bank parameter for music export by @borbware in https://github.com/nesbox/TIC-80/pull/2202
- Update Rust template to remove optimisation issue by @soxfox42 in https://github.com/nesbox/TIC-80/pull/2204
- Update macOS build instructions to match included plist file by @jpaquim in https://github.com/nesbox/TIC-80/pull/2206
- #2191 focus the canvas on click by @AlecTroemel in https://github.com/nesbox/TIC-80/pull/2209
- update pocketpy to v1.0 by @koltenpearson in https://github.com/nesbox/TIC-80/pull/2212
- adds editor options for indentation with spaces or tabs by @koltenpearson in https://github.com/nesbox/TIC-80/pull/2217
- C API accuracy improvements and better layout by @Gota7 in https://github.com/nesbox/TIC-80/pull/2227
- Run key processing even when ctrl key is pressed by @blind in https://github.com/nesbox/TIC-80/pull/2234
- fix typos by @kianmeng in https://github.com/nesbox/TIC-80/pull/2242
- Add numpad keys to keycodes by @cdwfs in https://github.com/nesbox/TIC-80/pull/2245
- Remove whitespaces before colons in pythondemo.py by @sudo-piko in https://github.com/nesbox/TIC-80/pull/2236
- Upgrade to Fennel 1.3.1 by @fosskers in https://github.com/nesbox/TIC-80/pull/2246
- Fix C template build error by @soxfox42 in https://github.com/nesbox/TIC-80/pull/2254
- #2260: Updated Rust template build instructions by @villesundell in https://github.com/nesbox/TIC-80/pull/2261
New Contributors
- @tranxuanthang made their first contribution in https://github.com/nesbox/TIC-80/pull/1912
- @sakisakira made their first contribution in https://github.com/nesbox/TIC-80/pull/1925
- @rktjmp made their first contribution in https://github.com/nesbox/TIC-80/pull/1936
- @peterhil made their first contribution in https://github.com/nesbox/TIC-80/pull/1941
- @benthor made their first contribution in https://github.com/nesbox/TIC-80/pull/1946
- @soxfox42 made their first contribution in https://github.com/nesbox/TIC-80/pull/1951
- @kevinsmia1939 made their first contribution in https://github.com/nesbox/TIC-80/pull/1957
- @solarized-fox made their first contribution in https://github.com/nesbox/TIC-80/pull/1967
- @Gota7 made their first contribution in https://github.com/nesbox/TIC-80/pull/1981
- @fiskWasTaken made their first contribution in https://github.com/nesbox/TIC-80/pull/2010
- @dhorlick made their first contribution in https://github.com/nesbox/TIC-80/pull/2007
- @jezze made their first contribution in https://github.com/nesbox/TIC-80/pull/2063
- @bztsrc made their first contribution in https://github.com/nesbox/TIC-80/pull/2045
- @Podepi made their first contribution in https://github.com/nesbox/TIC-80/pull/2070
- @iacore made their first contribution in https://github.com/nesbox/TIC-80/pull/2068
- @TylerMS887 made their first contribution in https://github.com/nesbox/TIC-80/pull/2052
- @AlecTroemel made their first contribution in https://github.com/nesbox/TIC-80/pull/2079
- @sthilaid made their first contribution in https://github.com/nesbox/TIC-80/pull/2113
- @Madadog made their first contribution in https://github.com/nesbox/TIC-80/pull/2132
- @theKapcioszek made their first contribution in https://github.com/nesbox/TIC-80/pull/2167
- @koltenpearson made their first contribution in https://github.com/nesbox/TIC-80/pull/2174
- @blueloveTH made their first contribution in https://github.com/nesbox/TIC-80/pull/2200
- @borbware made their first contribution in https://github.com/nesbox/TIC-80/pull/2202
- @jpaquim made their first contribution in https://github.com/nesbox/TIC-80/pull/2206
- @blind made their first contribution in https://github.com/nesbox/TIC-80/pull/2234
- @kianmeng made their first contribution in https://github.com/nesbox/TIC-80/pull/2242
- @cdwfs made their first contribution in https://github.com/nesbox/TIC-80/pull/2245
- @sudo-piko made their first contribution in https://github.com/nesbox/TIC-80/pull/2236
- @fosskers made their first contribution in https://github.com/nesbox/TIC-80/pull/2246
- @villesundell made their first contribution in https://github.com/nesbox/TIC-80/pull/2261
Full Changelog: https://github.com/nesbox/TIC-80/compare/v1.0.2164...v1.1.2729
v1.0.2164 · May 2, 2022
What's Changed
- Added --version command line argument by @nalquas in https://github.com/nesbox/TIC-80/pull/1503
- Handle emacs ^n ^p and ^e keys in the editor by @trufae in https://github.com/nesbox/TIC-80/pull/1530
- sdl: Fix comparision warning by @RobLoach in https://github.com/nesbox/TIC-80/pull/1537
- Add TIC_UNUSED() to handle unused parameter warnings by @RobLoach in https://github.com/nesbox/TIC-80/pull/1538
- Update Fennel to version 0.10.0. by @technomancy in https://github.com/nesbox/TIC-80/pull/1539
- fix path problems with baremeta #1541 by @msx80 in https://github.com/nesbox/TIC-80/pull/1582
- Improvements for language support by @msx80 in https://github.com/nesbox/TIC-80/pull/1590
- Baremetal RPI: added Squirrel language which was previously disabled. by @msx80 in https://github.com/nesbox/TIC-80/pull/1596
- Fix eval command by @technomancy in https://github.com/nesbox/TIC-80/pull/1633
- Optimize tic api call performance in LUA. by @vsariola in https://github.com/nesbox/TIC-80/pull/1628
- #714: fix crackling audio. by @vsariola in https://github.com/nesbox/TIC-80/pull/1618
- Activate strict mode in Fennel when strict: true header is found. by @technomancy in https://github.com/nesbox/TIC-80/pull/1653
- Poke1 and Peek1 by @SuperPupperDoggo in https://github.com/nesbox/TIC-80/pull/1616
- (fix) ignore negative index passed to spr by @joshgoebel in https://github.com/nesbox/TIC-80/pull/1665
- (enh) errors when mkdir fails by @joshgoebel in https://github.com/nesbox/TIC-80/pull/1667
- (chore) move moonscript into separate C file by @joshgoebel in https://github.com/nesbox/TIC-80/pull/1670
- fixup: move moon script and fennel into sep files by @joshgoebel in https://github.com/nesbox/TIC-80/pull/1671
- (enh) Music editor: Skip over sharp column when using cursor keys by @joshgoebel in https://github.com/nesbox/TIC-80/pull/1672
- Fedora build instructions by @lzap in https://github.com/nesbox/TIC-80/pull/1679
- add MacOS application instructions by @lzap in https://github.com/nesbox/TIC-80/pull/1680
- suggest pro when trying to open source with standard by @joshgoebel in https://github.com/nesbox/TIC-80/pull/1684
- Replace a right single apostrophe in the API help with an apostrophe by @blinry in https://github.com/nesbox/TIC-80/pull/1697
- Improvements to README.md by @Tyler887 in https://github.com/nesbox/TIC-80/pull/1701
- Add community guidelines by @Tyler887 in https://github.com/nesbox/TIC-80/pull/1703
- Update Fennel to version 1.0.0. by @technomancy in https://github.com/nesbox/TIC-80/pull/1708
- squirrel: Fix mouse() from returning null values by @RobLoach in https://github.com/nesbox/TIC-80/pull/1719
- Add some missing spaces, and reword a few phrases by @blinry in https://github.com/nesbox/TIC-80/pull/1722
- sdl: Fix warnings of string.h missing by @RobLoach in https://github.com/nesbox/TIC-80/pull/1724
- Fix OpenDingux builds by @RobLoach in https://github.com/nesbox/TIC-80/pull/1725
- Ruby scripting support by @remi6397 in https://github.com/nesbox/TIC-80/pull/1726
- Small changes to the Ruby bindings by @remi6397 in https://github.com/nesbox/TIC-80/pull/1733
- Add Shift+Return shortcut to the code editor that auto-closes a block by @blinry in https://github.com/nesbox/TIC-80/pull/1721
- When listing language options in the spec, use "x, y, or z" format by @blinry in https://github.com/nesbox/TIC-80/pull/1745
- On Linux, use Ctrl+L to clear the console, per default of other shells by @blinry in https://github.com/nesbox/TIC-80/pull/1753
- Add help topics for keys and buttons by @blinry in https://github.com/nesbox/TIC-80/pull/1754
- Typo: Correct variable was not getting updated by @joshgoebel in https://github.com/nesbox/TIC-80/pull/1783
- Create SECURITY.md by @joshgoebel in https://github.com/nesbox/TIC-80/pull/1786
- Console:
cdwith no args returns home by @joshgoebel in https://github.com/nesbox/TIC-80/pull/1789 - add default license, version, site tags to demos by @joshgoebel in https://github.com/nesbox/TIC-80/pull/1790
- support CTRL-A, CTRL-E console editing keystrokes by @joshgoebel in https://github.com/nesbox/TIC-80/pull/1791
- (chore) bring all Demo header into sync with new tags by @joshgoebel in https://github.com/nesbox/TIC-80/pull/1793
- fix: prevent cartridges hijacking keyboard events by @joshgoebel in https://github.com/nesbox/TIC-80/pull/1787
- Do not default to the first available language for new carts. by @remi6397 in https://github.com/nesbox/TIC-80/pull/1792
- (enh) moonscript supports eval now by @joshgoebel in https://github.com/nesbox/TIC-80/pull/1800
- faster drawTile, remove repeat clipping checks by @joshgoebel in https://github.com/nesbox/TIC-80/pull/1801
- order langauges by alphabetical order by @joshgoebel in https://github.com/nesbox/TIC-80/pull/1804
- split out main menu code from studio by @joshgoebel in https://github.com/nesbox/TIC-80/pull/1813
- Fix compilation for emscripten libretro by @phcoder in https://github.com/nesbox/TIC-80/pull/1821
- mruby: Make Ruby Build Optional by @RobLoach in https://github.com/nesbox/TIC-80/pull/1823
- Update SDL2 version by @luizdepra in https://github.com/nesbox/TIC-80/pull/1825
- Export without editor in pro version is done. by @Darenn in https://github.com/nesbox/TIC-80/pull/1837
- (chore) update Zig source to use new BOOT() by @joshgoebel in https://github.com/nesbox/TIC-80/pull/1863
- [WIP] Advanced tab-completion for the console by @blinry in https://github.com/nesbox/TIC-80/pull/1840
- fix(zig) fix template compiling and add TextureSource by @joshgoebel in https://github.com/nesbox/TIC-80/pull/1850
- D WebAssembly binding by @PierceNg in https://github.com/nesbox/TIC-80/pull/1886
- Fix crash when internet is disabled by @OldiLo in https://github.com/nesbox/TIC-80/pull/1890
- Improved D template by @PierceNg in https://github.com/nesbox/TIC-80/pull/1891
New Contributors
- @trufae made their first contribution in https://github.com/nesbox/TIC-80/pull/1530
- @vsariola made their first contribution in https://github.com/nesbox/TIC-80/pull/1628
- @lzap made their first contribution in https://github.com/nesbox/TIC-80/pull/1679
- @blinry made their first contribution in https://github.com/nesbox/TIC-80/pull/1697
- @Tyler887 made their first contribution in https://github.com/nesbox/TIC-80/pull/1701
- @remi6397 made their first contribution in https://github.com/nesbox/TIC-80/pull/1726
- @luizdepra made their first contribution in https://github.com/nesbox/TIC-80/pull/1825
- @Darenn made their first contribution in https://github.com/nesbox/TIC-80/pull/1837
- @PierceNg made their first contribution in https://github.com/nesbox/TIC-80/pull/1886
- @OldiLo made their first contribution in https://github.com/nesbox/TIC-80/pull/1890
Full Changelog: https://github.com/nesbox/TIC-80/compare/0.90.1723...v1.0.2164
v0.90.1723 · Jul 16, 2021
CHANGELOG v0.90.1723
CLOSED ISSUES
- #1517 - [0.90] "Cart has changed" dialog does not close
- #1513 - map editor: tile cursor not visible in 0.90
- #1494 - [0.90] Watcher fails when loading multiple carts
- #1510 - Unable to draw to bigger circles in 0.90
- #1499 - TIC-80 keeps stopping (Android)
- #1490 - [0.90] (Win7) getsystemtimepreciseasfiletime error in exported executable
- #1501 - TIC-80 is not opening on linux
- #1493 - Wonky icon [0.90 Bug]
- #1495 - [0.90] TIC-80 does not start
- #1492 - [0.90]No name and author name by pressing Ctrl+S to save cart.png
- #1496 - Won't Start in Firefox
- #1489 - [0.90 bug] ctrl+r returns multiple times
CHANGELOG v0.90.1706
THANKS to all the people who helped release this version, especially the contributors
@cogk
@Voklen
@brickviking
@schraf
@Karethoth
@jminor
@cgrs
@RobLoach
@txgruppi
@tstopak
@phlubby
@joshgoebel
@technomancy
@nalquas
@msx80
@asiekierka
@drako0812
MAIN CHANGES
Added text selection/copy/paste to the console
A cart can be saved and distributes as a PNG image, use save game.png command.
meat
TIC-80 can work like a compiler without UI with --cli command line parameter, for example here we load game.tic cart from current dir (use --fs .) and export it as game.exe executable for Windows:
$ ./tic80 --cli --fs . --cmd "load game.tic & export win game.exe & exit" cart game.tic loaded! use RUN command to run it GET /export/0.90/win [100%] game.exe exported :)
Also, games can be exported without access to the editors with alone=1 flag (PRO feature)export linux game.exe alone=1
The help command was redesigned and you can get info about spec/ram/api/command/...
>help usage: help [<text>|version|welcome| spec|ram|vram|commands|api|startup| terms|license] >help api API functions: OVR SCN TIC btn btnp circ circb clip cls elli ellib exit fget font fset key keyp line map memcpy memset mget mouse mset music peek peek4 pix pmem poke poke4 print rect rectb reset sfx spr sync textri time trace tri trib tstamp >help sync ---=== API ===--- sync(mask=0 bank=0 tocart=false) The pro version of TIC-80 contains 8 memory banks. To switch between these banks, sync can be used to either load contents from a memory bank to runtime, or save contents from the active runtime to a bank. The function can only be called once per frame.If you have manipulated the runtime memory (e.g. by using mset), you can reset the active state by calling sync(0,0,false). This resets the whole runtime memory to the contents of bank 0.Note that sync is not used to load code from banks; this is done automatically.
Another useful thing you can export whole help info in Markdown format, use command export help cheatsheet.md
Added mouse capture functionality to receive relative values instead of the current cursor position (useful in first-person 3D games), the cursor is hidden and this mode. To enable this mode pls use poke(0x7FC3F,1,1) command.
Small example with enabling the relative mode:
function flip(val)return val>0 and 0 or 1 end function TIC() if btnp(4)then poke(0x7FC3F,flip(peek(0x7FC3F,1)),1) end cls() local x,y=mouse() print(x..":"..y) end
Added baremetal/rpi/3ds builds to Github Actions and all the Nightly Builds can be downloaded here https://nightly.link/nesbox/TIC-80/workflows/build/master
Now you can change bit mode in the map editor
ezgif-1-4c01dcf4fc08
On Android, you can switch between the system keyboard and TIC-80 internal keyboard
image
Hardware keyboard now detects automatically.
CLOSED ISSUES
- #1486 - Problems with Jxx and row parameter of the music () function again present. Old lines are being used in src/core/sound.c
- #1482 - Website: Can’t upload Fennel cartridges
- #1480 - Website: Page titles
- #1477 - saveid not working when exporting with alone=1
- #1475 - Add an additional parameter to peek/poke functions for diferent bit resolutions
- #1469 - TIC-80 crash on Windows XP
- #1455 - Move all the icons to the config.lua
- #1454 - TIC throws OOMs when trying to run this cart in browser
- #1447 - Cursor shows over bookmarks tab
- #1446 - M command retriggers note
- #1434 - map editor select appears over show tiles
- #1430 - Horizontal scrolling while shift is held
- #1421 - Navigate palette with [ and ] keys
- #1414 - Please add Git SHA to the build number version in console
- #1405 - Code outline items corruption
- #1398 - TIC-80 Crashes when I stream it in a Discord voice channel.
- #1396 - Buffer Overflow Vulnerability in src/studio/fs.c
- #1395 - Distribute Linux version as zip on itch.io for better itch.io app integration
- #1394 - Incorrect OVR palette
- #1388 - RESUME command doesn't restore screen bug
- #1380 - Update wiki: CHUNK_SCREEN, tic_screen, sync, etc.
- #1372 - Path does not update on console correctly bug
- #1370 - Editor does not update when pressing enter bug
- #1360 - music function crashes in javascript bug
- #1356 - Saving cartridge crashes the dev (Pro) build bug
- #1345 - Crash in editor with 1BPP mode bug
- #1343 - (end) add "Debug" to TIC_VERSION_LABEL for debug builds
- #1338 - TIC80 Freezes When Trying To Run Game After Saving As Lua bug
- #1332 - alt-tab inserts a space in the code editor bug
- #1331 - Little pause at the beginning of the music
- #1326 - current build crashes on 3ds
- #1323 - duktape submodule fetches all duktape versions ever released
- #1319 - Add new & popular filter to the website
- #1315 - Add pagination to the website website
- #1312 - [Request] Please add THEME.CODE.FG to alter foreground text in code editor
- #1308 - Add a chunk to load default palette/waveforms
- #1306 - Game exits to the console if you press ESC twice
- #1290 - Live reload not working bug
- #1282 - Dividing by Zero in line function causes Tic-80 to crash. bug
- #1275 - Please add back ability to name gifs
- #1273 - Distorted sound with 0.80.1345 Pro on Linux
- #1271 - new fennel creates the cart with the old palette
- #1269 - tic80 -h command outputs to nowhere unless redirected
- #1268 - Zlib compression does not seem to work in 0.80+ versions of TIC-80
- #1267 - Command line arguments do not work anymore in the latest commit
- #1264 - Make all the network requests async
- #1255 - CRT effect in mac
- #1254 - better clipboard support
- #1247 - Make TIC work more like a compiler. console
- #1246 - Add benchmark demos for every supported script.
- #1240 - When compiling TIC-80 with GCC Mingw-w64 it (mingw64) adds additional DLL dependencies
- #1239 - Gif export does not automatically add .gif extension
- #1227 - Feature: Add colors to text with control characters (like Commodore 64)
- #1226 - music() parameter changed? bug lang: javascript
- #1225 - Change Bits Per Pixel in the Map Editor editor: map
- #1224 - install target on Linux does not follow CMAKE_INSTALL_PREFIX
- #1220 - In HTML exported games, all unused buttons on Xbox One controller open/close the TIC menu
- #1216 - Please add a export for web platform: html5
- #1213 - Default text color is now a dark grey
- #1210 - Missing Xext.h on Armbian buster
- #1206 - Minor bug when typing "cd \"
- #1205 - 0.80 running quite slower than 0.70.6
- #1195 - editor outline command ctrl+o scrolling not possible
- #1193 - Music() function with tempo parameters API
- #1192 - editor command for comment/uncomment for multiple lines bug editor: code
- #1188 - Creating or loading a cartridge resets font setting to default in code editor editor: code enhancement
- #1159 - (0.80 beta) No wave cut/copy/paste anymore in new SFX editor?
- #1111 - tic.c could be split into quasi-independent parts for api, io, core loop, drawing, music...
- #1102 - Add Keyboard Shortcuts for switching banks
- #1084 - Building without GTK dependencies
- #1044 - Error on openig in linux platform: linux
- #1033 - ls/dir fails to sort properly
- #1017 - Build succeeded : TIC-80 for Raspberry Pi (Raspbian Buster)
- #1003 - please add to the music editor the button "play from now on" editor: music
- #1001 - Use cover as raw binary screen buffer instead GIF
- #999 - (0.80-dev suggestion) Allow array of volumes in sfx() for left/right API
- #987 - key()/keyp() codes 66 to 78 don't work bug
- #986 - Suggestion: add a mouse capture functionality
- #979 - Replacement of circ() and circb() functions
- #978 - Add Keyboard Shortcuts to Music Editor
- #957 - CTRL+R doesn't work when launching a tic.computer/play cart SURF
- #923 - Website "store" improvements website
- #921 - Setup CI using Github Actions
- #912 - Integrating Raspberry Baremetal build
- #909 - Small font not working in "player" executable bug
- #901 - Properly name of cart.tic software in website website
- #832 - (0.80.0-dev Pro) Custom system sounds won't play at the correct speed bug
- #823 - corrupted size vs prev_size
- #799 - Native export shows "File not downloaded" bug
- #764 - Map editor: replace tile feature editor: map enhancement
- #755 - [Feature Request] Cartridge embedded in PNG export for easy sharing enhancement
- #749 - Music "joins" channels together after pressing "Play" while music / frame is still playing
- #726 - it should be possible to save and switch multiple 'sections' of the memory to a different 'bank' using sync (e.g. sprites & map) API bug
- #692 - Indent with the same characters as were used for previous line.
- #660 - Enable keyboard in landscape mode on Android
- #658 - Add CRT-filter option to the game menu enhancement
- #640 - Clear Input Text Instantly console enhancement
- #639 - Page Up / Page Down console enhancement
- #636 - CRT Shader Alternative (Speed, Simplicity)
- #559 - mouse() returns x,y outside 0,0-239,135 when mouse pointer is on screen border
- #454 - Allow using/pasting palettes with less than 16 colors editor: sprites enhancement
- #426 - Import sprite to specific slot enhancement
- #415 - input rgb values into palette editor editor: sprites enhancement
- #370 - Syntax highlighting bug bug editor: code lang: lua
- #312 - if you press up or down very fast it keeps repeating the same selection in SURF SURF bug
- #253 - Distribute TIC as package in Linux enhancement platform: linux
- #169 - Disable Editors PRO enhancement
- #154 - help (api function) command enhancement
MERGED PULL REQUESTS
- #1483 - #764: replace tile feature in map editor by @cogk
- #1464 - Installing and running instructions by @Voklen
- #1463 - Correct spelling of a single word by @brickviking
- #1457 - Adding a Progressive Web App build by @schraf
- #1456 - Fixes for 2 SIGSEGVs when section is NULL by @Karethoth
- #1443 - Enable CRT shader in wasm/WebGL build by @jminor
- #1442 - Fix import command. by @jminor
- #1435 - Fix CRT shader on macOS. by @jminor
- #1427 - fix dapper builds by @cgrs
- #1416 - wren: Add as and continue keywords by @RobLoach
- #1406 - Update Wren to 0.4.0 by @RobLoach
- #1393 - libretro: Add features from jdgleaver by @RobLoach
- #1390 - libretro: Fix retro_get_memory_size() by @RobLoach
- #1386 - Add "code" to the import usage documentation by @RobLoach
- #1385 - Font fix on cart load by @txgruppi
- #1369 - Fixed Squirrel's print function fixed flag by @txgruppi
- #1368 - Wren TIC.btn fixes by @txgruppi
- #1363 - Multiline Comments by @tstopak
- #1361 - libretro: Update the memory data slots by @RobLoach
- #1358 - Fix MinGW build, do not add msvc specific flag by @tstopak
- #1355 - Fix using full path as cart name when loading cart by @phlubby
- #1348 - libretro: Update libretro.h and code standards by @RobLoach
- #1341 - Show how to build pro version by @joshgoebel
- #1336 - Update to Fennel 0.8.1. by @technomancy
- #1328 - Update to Duktape 2.6.0, and use a shallow clone by @RobLoach
- #1322 - Clip mouse values in SDL and Sokol by @nalquas
- #1318 - Make RAM and VRAM a bit more explicit by @joshgoebel
- #1316 - (chore) Migrate Raspberry Pi build instructions from wiki by @joshgoebel
- #1265 - minor cleaning on RPI baremetal build and Credits by @msx80
- #1256 - bare metal rpi build updated to latest TIC-80 and Circle by @msx80
- #1234 - SDL Player: Add constants and clean up error reporting by @RobLoach
- #1222 - n3ds: add prescale linear filter, wide mode support; close #1219 by @asiekierka
- #1221 - Update Lua to 5.3.6. by @asiekierka
- #1218 - libretro: Add Mouse Hide Delay option by @RobLoach
- #1217 - n3ds: fix crash in async net_httpc access, close #1200 by @asiekierka
- #1178 - Update Duktape to 2.5.0 by @RobLoach
- #1176 - SDL: Render in the correct aspect ratio by @RobLoach
- #1175 - Update Wren to 0.3.0 by @RobLoach
- #1165 - fixes #1163 (0.80 beta) time() always returns 0 when built with sokol by @drako0812
- #1161 - Update to Fennel version 0.6.0. by @technomancy
