TIC-80 support in the GameShell

I am trying to run TIC-80 on the GameShell.

I created an issue on their GitHub in case any change need to be done in the TIC-80 codebase: https://github.com/nesbox/TIC-80/issues/643

I tried running the linux build and it does run with the following command in ssh: SDL_VIDEODRIVER=x11 DISPLAY=:0 bin/tic80 but the screen size is wrong. I can only see part of the TIC-80 screen.

Does adding the “-fullscreen” command line argument help? (Haven’t tried it yet.)

I got PICO-8 sized well because it has more specific command line args for resizing the display. Maybe Tic-80 needs a similar feature. (I don’t see one in the code beyond -fullscreen.)

The -fullscreen did not help but I managed to run it by changing the UI scale from 2 to 1.
It does not take the full screen but it is centered.

Now I need to change the input configuration.

2 Likes

I made good progress.

First of all, you might to compile TIC-80 from sources for the linux target. Linux releases do not support ARM for now. Make sure it contains this commit: https://github.com/nesbox/TIC-80/commit/1504301a3bb65c5b8a0140db8dbaa3e73d12d0ac

Next, create a launcher. You can find information how to do so on this wiki page: https://github.com/clockworkpi/GameShellDocs/wiki/Running-PICO-8-on-the-GameShell

It is targetting the PICO-8 but most of the information is valid for TIC-80.

For the launcher, create a script with the following content (replace <path/to/tic80> witht the actual path to the binary):
<path/to/tic80> -uiscale 1 -fullscreen -surf

For the TIC-80 to recognize the GameShell button, we need to change the keymap.
Download the keymap matching your buttons layout (I made them on my computer as a convenience):

Copy your keymap file to this location:
./.local/share/com.nesbox.tic/TIC-80/.local/keymap.dat

I also made a small icon to fit in the GameShell launcher:
TIC-80

Now you can run TIC-80 on your GameShell.

There are some limitations though:

  • you can’t exit TIC-80, you will need to reboot the GameShell to quit
    There is no menu item to quit TIC-80, but the main developer is working on it
  • You need to be online
    The -surf argument starts a browsing mode, but if you want to download tic cartridges, it should be trivial to do so. I am not sure how to have a single launcher to do both.
  • It does not take the whole screen
    The screen resolution of TIC-80 only fits once in the GameShell screen. That’s what the -uiscale 1 argument is for. We cannot easily scale the screen to match the GameShell while keeping the aspect ratio.

Have fun playing with it!

3 Likes

great job

:slight_smile:

The developer has since added a “Quit TIC-80” menu option.
See https://github.com/nesbox/TIC-80/commit/b14dd23f5df9b54221aa16ff6fc1aa7470daac28

1 Like

today I cloned tic-80 and compiled it on GS

with arguments like :

DISPLAY=:0 ./tic80 -uiscale 1 -fullscreen -surf

then TIC-80 still not fullscreen

why is that?
:slight_smile:

The -fullscreen argument means the app is not windowed but I think that’s the default on the GameShell, so it doesn’t do much.

TIC-80 runs in multiple of 240x136 pixels, so it adds a lot of padding around the screen with a scale of 1x, and it doesn’t fit in the GameShell screen anymore at 2x.

well ,even I use -fullscreen ,it still windowed

if uiscale ==2 it will oversize the screen

pretty strange behavior

Is this still able to be built? they switched to cmake and it requires cmake 3.9. The GS uses cmake 3.7

EDIT: nvm, I installed a updated cmake via stretch-backports
https://packages.debian.org/stretch-backports/cmake

I tried commenting out the v3.9 requirement line in CMakeLists.txt. That’s building now so we’ll see if that works. How did you install this cmake 3.9 build? (Linux noob here…)

EDIT: Building worked with cmake v3.7, which was surprising.

I added stretch-backports to my repo list by adding:

deb http://ftp.de.debian.org/debian stretch-backports main

To the bottom of /etc/apt/sources.list
Then ran:

sudo apt-get update && sudo apt-get install -t stretch-backports cmake
1 Like

I created an issue on the TIC-80 repo on GitHub. I may try my hand at fixing it myself but we’ll see how much time I have on my hands in the coming weeks.

the fullscreen issue of tic80 is fixed now

Support may get better and better (and official):

The TIC-80 dev seems to really like the GameShell!

4 Likes

@damantisshrimp thanks for getting TIC-80 support in the GameShell ! Really enjoying it so far.

I’ve opened another thread about offline use of TIC-80 if you have any ideas : [TIC-80] offline version of cartridges

1 Like