TIC-80 support in the GameShell

tic80
fantasy-console

#1

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.


#2

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.)


#3

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.


#4

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!


#5

great job

:slight_smile:


#6

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


#7

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:


#8

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.


#9

well ,even I use -fullscreen ,it still windowed

if uiscale ==2 it will oversize the screen

pretty strange behavior