TIC-80

TIC-80

Postby bzt » 20 Nov 2022, 08:51

Not my project, but it's just too good to be left unnoticed on this forum.
May I introduce to you the TIC-80, mini Free and Open Source fantasy console.

Image

It is pretty amazing that it's not just the player part, but also includes a full game editor suite as well (script editor, map editor, sound sequencer, Amiga MOD-like music editor etc.). I don't know how usable it is on this tiny screen (probably not fun to actually use it), but it's just damn amazing that they could squash all of that into this mini console.

I haven't tried to compile it yet, but looks straightforward (usual cmake and make), and looks like it supports WASM target as well. If anybody gives it a spin, let us know how it went!

Cheers,
bzt
User avatar
bzt
 
Posts: 313
Joined: 23 May 2021, 21:46

Re: TIC-80

Postby bzt » 02 Dec 2022, 15:53

If anybody gives it a spin, let us know how it went!
Nobody interested in this emulator? That's a pity :-(

Cheers,
bzt
User avatar
bzt
 
Posts: 313
Joined: 23 May 2021, 21:46

Re: TIC-80

Postby forty_sham » 02 Dec 2022, 18:18

I've looked into this. It seems kind of cool, so I've decided to sign up for an account on the website. Haven't really posted anything there yet, though.
User avatar
forty_sham
 
Posts: 12
Joined: 03 Oct 2022, 19:50

Re: TIC-80

Postby dulsi » 04 Dec 2022, 00:49

Virtual consoles don't generally have a lot of interests to me. The restrictions are generally not what I want. Most of them are just like older platforms. Redshift in Exapunks is a little different in that respect. It focuses on parallel programming. However, it is black & white while I prefer color. I think it is also low level enough it wouldn't be a lot of fun to program. PocketArcade & TinyArcade could interest me because there was hardware to go with it. TIC-80 just doesn't have anything to standout to me.
dulsi
 
Posts: 561
Joined: 18 Feb 2016, 15:24

Re: TIC-80

Postby bzt » 04 Dec 2022, 09:59

dulsi {l Wrote}:Virtual consoles don't generally have a lot of interests to me.
Maybe for you, but consoles like the PICO-8 are insanely popular, has a huge community, even taught in schools.

dulsi {l Wrote}:TIC-80 just doesn't have anything to standout to me.
The big downside of PICO-8 is, it's closed source, proprietary and non-free; even requires a registration to be downloaded. Why TIC-80 stands out is because it is very similar (short learning curve), but has lot more features and it is Free and Open Source. A viable alternative that I can compile on my computer and I can study its code is more than enough for me to stand out (and should be a minimal requirement in any school imho).

Not to mention that TIC-80 runs on more platforms than PICO-8, including Android and web (which PICO-8 promised but yet wasn't able to deliver) and Nintendo3DS and bare metal Raspberry Pi (which PICO-8 isn't even planning to support).

The fact that TIC-80 runs on bare RPi hardware without any OS makes it feel like a real console, don't you think?

Cheers,
bzt
User avatar
bzt
 
Posts: 313
Joined: 23 May 2021, 21:46

Re: TIC-80

Postby dulsi » 04 Dec 2022, 13:55

bzt {l Wrote}:Maybe for you, but consoles like the PICO-8 are insanely popular, has a huge community, even taught in schools.

I know. I'm amazed by the number of them that exist. I've seen some amazing games on them. But whenever I've tried one out I just haven't enjoyed developing for it. Maybe that is the big problem I have with them. You are using a custom language and a built-in editor which I don't like.

bzt {l Wrote}:The big downside of PICO-8 is, it's closed source, proprietary and non-free; even requires a registration to be downloaded.

As a PICO-8 replacement, TIC-80 looks great. If it works for you and others great.

bzt {l Wrote}:The fact that TIC-80 runs on bare RPi hardware without any OS makes it feel like a real console, don't you think?

I didn't know about that feature. However, it's still drastically limiting the power of a system. I can tell the difference between running on bare hardware and automatically booting into it with linux on the RPi.
dulsi
 
Posts: 561
Joined: 18 Feb 2016, 15:24

Re: TIC-80

Postby drummyfish » 04 Dec 2022, 20:22

Fantasy consoles are a great idea as such, TIC-80 is just too bloated for me, not talking about political censorship in the project etc. I used to look for a nice fantasy console but all I ever found had big issues, so I made my own -- no one except me made any games, but I'm still happy I have it :)
socialist anarcho-pacifist
Abolish all IP laws. Use CC0. Let's write less retarded software.
http://www.tastyfish.cz
User avatar
drummyfish
 
Posts: 441
Joined: 29 Jul 2018, 20:30
Location: Moravia

Re: TIC-80

Postby bzt » 04 Dec 2022, 23:38

drummyfish {l Wrote}:Fantasy consoles are a great idea as such, TIC-80 is just too bloated for me
I'm not sure we agree on that, it is simple ANSI C, cmake, that's all. The compiled binary is relatively small too.
drummyfish {l Wrote}:I used to look for a nice fantasy console but all I ever found had big issues, so I made my own -- no one except me made any games, but I'm still happy I have it :)
Not fair, your SAF is awesome, I know that. Don't compare these, different league! It would be tempting to compare it to my TirNanoG too, but that wouldn't be fair either (as my tool handles even movies and has a visual code editor, but it was never designed with limited resources in mind).

BTW, if anybody interested, to help the migration from proprietary to open source, I've quickly put together a PICO-8 cartridge to TIC-80 cartridge converter: p8totic. Works as a web-service or as a cli tool, totally dependency-free. Still not perfect though, but already usable. FOSS of course :-)

Cheers,
bzt
User avatar
bzt
 
Posts: 313
Joined: 23 May 2021, 21:46

Re: TIC-80

Postby Julius » 05 Dec 2022, 11:55

That's a cool converter. Maybe there are some libre PICO-8 games that could be converted as a show-case? I never bothered to look for any libre ones, but some people might have used CC licenses for their stuff despite the engine being non-free?
User avatar
Julius
Community Moderator
 
Posts: 3256
Joined: 06 Dec 2009, 14:02

Re: TIC-80

Postby bzt » 05 Dec 2022, 23:39

Julius {l Wrote}:That's a cool converter. Maybe there are some libre PICO-8 games that could be converted as a show-case? I never bothered to look for any libre ones, but some people might have used CC licenses for their stuff despite the engine being non-free?
Yeah, I did convert lots of cartridges during testing, but haven't shared any because I'm not sure about their licenses. BTW most of my test cases are these cartridges, and as you can see absolutely no licensing terms provided in the repo...

ps.: I've updated the converter, it now converts Lua strings and comments with emojis, hirakana and katakana letters properly. I've also implemented a Lua syntax fixer (why is there a difference in PICO-8 Lua and TIC-80 Lua syntax in the first place?), and PICO-8 API calls are also automatically converted to TIC-80 API calls (although I'm not sure the tool covers everything, probably there are some edge cases left).

I'm also looking for contributors who are familiar with the TIC-80 in-memory layout of sound effects and music tracks. All sounds and music tracks are read properly from PICO-8 cartridges, but I simply cannot figure out how to format that into TIC-80 sound effects and music tracks.

Cheers,
bzt
User avatar
bzt
 
Posts: 313
Joined: 23 May 2021, 21:46

Re: TIC-80

Postby Julius » 06 Dec 2022, 03:21

There are some lua dialects like Roblox's luau, maybe Pico8 also doesn't follow regular lua closely as they can get away with it in their closed ecosystem?
User avatar
Julius
Community Moderator
 
Posts: 3256
Joined: 06 Dec 2009, 14:02

Re: TIC-80

Postby bzt » 06 Dec 2022, 23:40

Julius {l Wrote}:There are some lua dialects like Roblox's luau, maybe Pico8 also doesn't follow regular lua closely as they can get away with it in their closed ecosystem?
Yeah, I just find that surprising. Lua is not a big ecosystem with zillion different implementation (like Java, Python, JavaScript etc.), it's just a single library, so I wouldn't expect any differences. First I wanted to do simple string replaces, but that won't do. So I've quickly put together a tokenizer and serializer, and now the conversion is a piece of cake, hopefully I've covered everything (no comprehensive list exists, I had to pick it up piece by piece from forum posts and issue tickets).

Cheers,
bzt
User avatar
bzt
 
Posts: 313
Joined: 23 May 2021, 21:46

Re: TIC-80

Postby dulsi » 07 Dec 2022, 03:02

Lua does have two main implementations. Lua and luajit. Lua has continued to progress but last I knew luajit hasn't added any of the new features.
dulsi
 
Posts: 561
Joined: 18 Feb 2016, 15:24

Re: TIC-80

Postby bzt » 07 Dec 2022, 19:43

dulsi {l Wrote}:Lua does have two main implementations. Lua and luajit. Lua has continued to progress but last I knew luajit hasn't added any of the new features.
True, but neither of these fantasy consoles use luajit, which leads us back to: strange that they have different syntax.

BTW, new feature in the converter, it can now convert between binary cartridge files (.tic) and PNG cartridge images (.tic.png) back and forth. If the input is a .tic, then it outputs .tic.png, for every other input (including PICO-8 cartridges and TIC-80 PNG cartridges) the output is in .tic. I like simple ;-)

Here's an example:
Image
You can download this image and then just drag'n'drop to the tic80's window. The binary .tic data is hidden in this image using steganography.

Cheers,
bzt
User avatar
bzt
 
Posts: 313
Joined: 23 May 2021, 21:46

Re: TIC-80

Postby bzt » 09 Dec 2022, 22:47

Ehhh, github locked me out due to failure in two-factor auth... I already had issues with git push, but now I'm having trouble with the web interface too...

Could somebody be kind enough to proxy my answer to nesbox to this PR, please?

{l Code}: {l Select All Code}
> Here you store the cart data in the caRt chunk in addition to the steganographic data and it looks redundant, we are doubling the cart data in two places.

Only for now to provide backward compatibility.

> I suggest letting the user decide

I think it would be much wiser to abandon steganography entirely instead. My reasons:
- steganography has very limited storage capacity (98k tops)
- it silently fails if the cartridge data happens to be bigger than that
- it is extremely vulnerable to data corruption
- has no means at all to detect data corruption

On the other hand, chunk based storage
- has unlimited storage capacity (up to 2^31)
- can't silently fail on save, it always works
- has a CRC to detect data corruption (handled by libpng automatically)

A help would be greatly appreciated!

Cheers,
bzt
User avatar
bzt
 
Posts: 313
Joined: 23 May 2021, 21:46

Re: TIC-80

Postby dulsi » 10 Dec 2022, 00:35

Reply has been added to the issue.
dulsi
 
Posts: 561
Joined: 18 Feb 2016, 15:24

Re: TIC-80

Postby bzt » 13 Dec 2022, 01:52

Thank you very much, sir!

Cheers,
bzt
User avatar
bzt
 
Posts: 313
Joined: 23 May 2021, 21:46

Who is online

Users browsing this forum: Google [Bot] and 1 guest