TIC-80 is a fantasy computer for making, playing and sharing tiny games.
MIT License
Bot releases are visible (Hide)
v1.2.x
by @blueloveTH in https://github.com/nesbox/TIC-80/pull/2315
trace
can log object-type argument in ruby to be consistent with lua by @zacx-z in https://github.com/nesbox/TIC-80/pull/2332
Full Changelog: https://github.com/nesbox/TIC-80/compare/v1.1.2736...v1.1.2837
Published by nesbox about 1 year ago
Full Changelog: https://github.com/nesbox/TIC-80/compare/v1.1.2729...v1.1.2736
Published by nesbox about 1 year ago
time()
API call - revert the clock()
changes by @joshgoebel in https://github.com/nesbox/TIC-80/pull/2047
baremetalrpi
instructions by @TylerMS887 in https://github.com/nesbox/TIC-80/pull/2052
vendor/pocketpy
into a git submodule by @blueloveTH in https://github.com/nesbox/TIC-80/pull/2200
Full Changelog: https://github.com/nesbox/TIC-80/compare/v1.0.2164...v1.1.2729
Published by nesbox over 2 years ago
cd
with no args returns home by @joshgoebel in https://github.com/nesbox/TIC-80/pull/1789
Full Changelog: https://github.com/nesbox/TIC-80/compare/0.90.1723...v1.0.2164
Published by nesbox over 3 years ago
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
Added text selection/copy/paste to the console
A cart can be saved and distributes as a PNG image, use save game.png
command.
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
On Android, you can switch between the system keyboard and TIC-80 internal keyboard
Hardware keyboard now detects automatically.
Published by nesbox about 4 years ago
First of all, I want to say THANKS to all the people who helped release this version, especially the contributors
@asiekierka
@robloach
@ddelemeny
@technomancy
@anatolse
@stefandevai
@gouchi
@phcoder
@michaeldel
@wadetb
@farvardin
@buckle2000
@kawa-yoiko
@cuu
@grahamclemo
@rudenkoarts
@librorumque
@kostik1337
The new version has a new UI made with the Sweetie16
palette designed by GrafxKid.
toggle [CTRL+F1], next [F1], prev [SHIFT+F1], remove all [CTRL+SHIFT+F1]
dofile()
function, but you can save cart in text format and edit in any editor you want, use save game.lua
and folder
to locate it4bpp
, 2bpp
, 1bpp
modes you can store more sprites by lowering the color bit (added by @ddelemeny). Please, read Advanced Drawing Techniques article and look at bpp.tic
demoexport sfx/music [index]
command to export .wav
export html
creates .zip
ready for production on itch.io with Web Assembly insideduk_is_null_or_undefined
in jsapi.cPublished by nesbox about 6 years ago
Published by nesbox about 6 years ago
eval
command (thank you @technomancy)VSYNC
support, using delay
instead, so TIC should work on monitors > 60Hz without sound desyncCTRL+PGUP/PGDN
to switch modes (thank you @technomancy)Quit TIC-80
to the game menu-uiscale
command line argument (UI_SCALE
in the config)build.sh
script (thank you @matimati433)textri
api (thank you MonstersGoBoom)you can review full changelog here https://github.com/nesbox/TIC-80/milestone/23?closed=1
Thanks all for the support and Pull Requests.
PS.
I hope next update will be released earlier than a half year :)
Published by nesbox almost 7 years ago
4 gamepads + mouse XY and buttons + keyboard
KEYMAP
command, you can configure gamepad mapping in the GAME MENUSYNC
label (synchronization error) if your game doesn't fit 60 FPS (only native, doesn't work in web version)-- input: gamepad
or -- input: keyboard
)spr
, circ
and tri
, now they > 2x faster (by @jahodfra)-skip
command line option to run TIC without startup animation-fullscreen
command line option to run in Fullscreenshadow
variable to the Config to hide shadow in the Code Editorreset()
API, to restore your game to initial statesync()
API, you can do it only one time per frame for tiles, sprites, map, sfx, music, info here https://github.com/nesbox/TIC-80/wiki/sync#parameters
Thanks for contributions:
@jahodfra
@frenetic
and others, for the bug reports!
Published by nesbox almost 7 years ago
added:
tic80 .
will use current directory as storage, tic80 ../path/to/cart.tic
will use ../path/to/
as storage and load cart.tic
make linux-pro
for examplespr()
function performance (got 20000 points in benchmark, 13000 was before)tic
renamed to tic80
sync()
api has new direction parameter, true -> sync from RAM to cart, false -> sync from cart to RAM (useful to restore cart data in the RAM)tic80 -surf
to start in SURF modetic80 -nosound
to start in silent modetic80 -fullscreen
to start in fullscreen modeedit
command to show editorsversion
commandfixed:
pix()
api color boundstextri()
, also fixed crashPublished by nesbox almost 7 years ago
In .47 we got help from 4 contributors:
Matheus Lessa Rodrigues
Anthony Camboni
Filippo
Death
Thanks!
All the editor modes use the only system palette now, except Sprite and Map Editors (they use game palette), added LUA live reload command line parameter (use -code-watch
) and closed other small issues...
Published by nesbox about 7 years ago
Music Editor can copy/paste selected area now
added on/off green buttons to temporarily mute the channel
CTRL+scroll changes note value of selected notes
also, we have first pull request from @Nullious 🎉
he added textri
api function which you can use to draw a triangle filled with texture from image ram or map ram
Published by nesbox about 7 years ago
The main enhancement is SURF mode for browsing local and website carts
use surf
command to run it (or press any button on the gamepad)
Published by nesbox about 7 years ago
Closed issues:
TIC-80 got new logo/emoticons/mascot
People called it TICSY
If you press ESC (or BACK on mobile) you'll see Game Menu where you can resume/reset the game, configure gamepad buttons mapping or exit to the editors. Menu shows in exported and website games only.
config.lua is deprecated and it looks like cartridge now, in code you define variables, system images in sprites and systems sounds in SFX editor accordingly
as usual use config
command to load configuration, config reset
to reset
you will see WARNING dialog:
load/new/exit
commandspress F9 to start/stop GIF recording (you'll see REC label in the top-right corner)
also, you can define these variables in the Config
GIF_LENGTH=20 -- in seconds
GIF_SCALE=2
and finally, we have the same ARM build for PocketCHIP and RaspberryPi
hope you enjoy it!
Published by nesbox about 7 years ago
Published by nesbox over 7 years ago
Fixed performance issue in HTML export
Published by nesbox over 7 years ago
Added PocketCHIP build
Array of transparent colors for SPR() api #225
Fixed game crash exported to html
Published by nesbox over 7 years ago
The main enhancement is Javascript support, use new js
command to load Hello World demo
Published by nesbox over 7 years ago
peek/poke
functions+-----------------------------------+
| 80K RAM LAYOUT |
+-------+-------------------+-------+
| ADDR | INFO | SIZE |
+-------+-------------------+-------+
| 00000 | SCREEN | 16320 |
| 03FC0 | PALETTE | 48 |
| 03FF0 | PALETTE MAP | 8 |
| 03FF8 | BORDER COLOR | 1 |
| 03FF9 | SCREEN OFFSET | 2 |
| 03FFB | GAMEPAD MASK | 1 |
| 03FFC | GAMEPAD | 2 |
| 03FFE | ... | 2 |
| 04000 | SPRITES | 16384 |
| 08000 | MAP | 32640 |
| 0FF80 | PERSISTENT MEMORY | 28 |
| 0FF9C | SOUND REGISTERS | 72 |
| 0FFE4 | WAVEFORMS | 256 |
| 100E4 | SFX | 4224 |
| 11164 | MUSIC PATTERNS | 11520 |
| 13E64 | MUSIC TRACKS | 408 |
| 13FFC | MUSIC POS | 4 |
| 14000 | ... | 0 |
+-------+-------------------+-------+
TIC has 60 music patterns in total which can be assigned to any channel and any track
fixed bug with sfx
api, you couldn't play effect on two channels at the same time
add import/export map
command to get the map as raw binary (240*136 bytes), also you can inject map from command line tic cart.tic -map world.map
added X
Y
gamepad buttons handling (also you can configure binding in keymap
)
add gamepad mask to assign what buttons show and handle (00111100
by 0x03FFB
address will show LRAB only)
add frame
and loop
parameters to music
api
music [track=-1] [frame=-1] [loop=true]
Loading cart and code via command line does not load the palette within the cart. #180
HOTFIX
Published by nesbox over 7 years ago