Tiny Core Linux

Off-Topic => Off-Topic - Tiny Core Lounge => Topic started by: pioj on May 01, 2013, 06:29:47 AM

Title: Who wants to play some games? :)
Post by: pioj on May 01, 2013, 06:29:47 AM
I found this website: http://www.portablelinuxgames.org/ (http://www.portablelinuxgames.org/)

It provides standalone builds of many games. You just download the file, change its permissions to allow execute, and call the binary as usual (sh or ./ ). There's algo a section for applications...

Maybe it's not the philosophy of TinyCore Linux but it reminds me how great is to have everything portable in a single file.

I've tested Frogatto and Cave Story and they run fastastic.
Title: Re: Who wants to play some games? :)
Post by: vinnie on May 01, 2013, 09:03:47 AM
After I give all permission to the .run package I try to launch:
Code: [Select]
tc@box:~/test$ ./Cave_Story_1.run
./Cave_Story_1.run: error while loading shared libraries: libfuse.so.2: cannot open shared object file: No such file or directory

I install fuse.tcz:
Code: [Select]
tc@box:~/test$ ./Cave_Story_1.run
fuse: failed to open /dev/fuse: Permission denied
open dir error: : No such file or directory
tc@box:~/test$ sudo ./Cave_Story_1.run

Usage:
  ./<package>    :   play game
  ./<pagkage> -c :   show configuration
  ./<pagkage> -h :   show readme

ln: invalid option -- 't'
BusyBox v1.20.2 (2012-08-07 01:31:01 UTC) multi-call binary.

Usage: ln [OPTIONS] TARGET... LINK|DIR

Create a link LINK or DIR/TARGET to the specified TARGET(s)

        -s      Make symlinks instead of hardlinks
        -f      Remove existing destinations
        -n      Don't dereference symlinks - treat like normal file
        -b      Make a backup of the target (if exists) before link operation
        -S suf  Use suffix instead of ~ when making backup files

Starting game...
/tmp/.mount_kbVId7/AppRun: line 39: ./doukutsu: No such file or directory
tc@box:~/test$
Title: Re: Who wants to play some games? :)
Post by: pioj on May 01, 2013, 02:51:31 PM
I've tested it on a few full distros. Seems that gnome/glib or gtk remains as a dependency for them to run without errors.
Title: Re: Who wants to play some games? :)
Post by: jls on May 02, 2013, 08:00:07 AM
Code: [Select]
sudo chown -R jls:staff /dev/fuse
Title: Re: Who wants to play some games? :)
Post by: tinypoodle on May 03, 2013, 06:13:48 AM
I got as far as getting Cave Story start, but then it came to a choice where I could switch options with cursor keys, but no obvious way to continue.

From all others I tried, 0verkill is the only one working for me.

fuse is not an absolute need, the downloaded file could be mounted as iso, and then cd to mount point and executing "AppRun" should make it run...

Rather interesting is output of 'file' on provided download files:
Code: [Select]
ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV)\012-  ISO 9660 CD-ROM filesystem data\012-  'ISOIMAGE                       ', dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped
Title: Re: Who wants to play some games? :)
Post by: RazZziel on December 16, 2013, 01:52:01 PM
Hi guys! I'm the maintainer of PortableLinuxGames.org, I just found this thread googling around.

I'm sorry to dig this thread up, just want to drop some comments, hope you don't mind :)

After I give all permission to the .run package I try to launch:
Code: [Select]
tc@box:~/test$ ./Cave_Story_1.run
./Cave_Story_1.run: error while loading shared libraries: libfuse.so.2: cannot open shared object file: No such file or directory

That should be the only dependency to run an AppImage, most distros nowadays include it.

I install fuse.tcz:
Code: [Select]
tc@box:~/test$ ./Cave_Story_1.run
fuse: failed to open /dev/fuse: Permission denied
open dir error: : No such file or directory
tc@box:~/test$ sudo ./Cave_Story_1.run

Usage:
  ./<package>    :   play game
  ./<pagkage> -c :   show configuration
  ./<pagkage> -h :   show readme

ln: invalid option -- 't'
BusyBox v1.20.2 (2012-08-07 01:31:01 UTC) multi-call binary.

Usage: ln [OPTIONS] TARGET... LINK|DIR

Create a link LINK or DIR/TARGET to the specified TARGET(s)

        -s      Make symlinks instead of hardlinks
        -f      Remove existing destinations
        -n      Don't dereference symlinks - treat like normal file
        -b      Make a backup of the target (if exists) before link operation
        -S suf  Use suffix instead of ~ when making backup files

Starting game...
/tmp/.mount_kbVId7/AppRun: line 39: ./doukutsu: No such file or directory
tc@box:~/test$
[/quote]

Hmmmm, why does that ln don't have a "-t" argument? Busybox? If that introduces a portability problem I can remove it from my scripts. The oldest or "smallest" distro I test my games on is Ubuntu 10.04, so I'm not ready to "hardcore" distributions like this one. I didn't know about TinyCoreLinux, but I actually like the phylosophy, and it can make a pretty decent "hardest" distro to test my packages on, meaning that if they work here, they'll probably work elsewhere (although I still need to target the most popular distros in use nowadays like Ubuntu or Mint)

I've tested it on a few full distros. Seems that gnome/glib or gtk remains as a dependency for them to run without errors.

That shouldn't be the case, GTK is very rarely used in games, and it should always come packaged in.

I got as far as getting Cave Story start, but then it came to a choice where I could switch options with cursor keys, but no obvious way to continue.

Hmm, weird, maybe SDL was not detecting the key presses?

From all others I tried, 0verkill is the only one working for me.

What kind of errors were you finding? Some old packages (older than say two months ago) have known portability bugs, but the rest should be pretty portable, although I''ve never tested in TinyCore so I might be surprised :) in some of the games I need to do some nasty sfuff, for example with unionfs, in order to make them work, and I've tuned that to work from Archlinux to Ubuntu 10.04, but no further.

fuse is not an absolute need, the downloaded file could be mounted as iso, and then cd to mount point and executing "AppRun" should make it run...

Rather interesting is output of 'file' on provided download files:
Code: [Select]
ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV)\012-  ISO 9660 CD-ROM filesystem data\012-  'ISOIMAGE                       ', dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped

Indeed, an AppImage is just a compressed ISO (zisofs) with an ELF header (more info here: http://portablelinuxapps.org/docs/1.0/AppImageKit.pdf). It's funny that your 'file' reports both personalities of the file; mine only says "ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, BuildID[sha1]=fe926b7ea13be61d05cdd605e313f50042040153, stripped"
Title: Re: Who wants to play some games? :)
Post by: tinypoodle on December 17, 2013, 08:18:22 AM
I got as far as getting Cave Story start, but then it came to a choice where I could switch options with cursor keys, but no obvious way to continue.
Hmm, weird, maybe SDL was not detecting the key presses?

I couldn't exclude that, but cursor keys did work...

Quote
From all others I tried, 0verkill is the only one working for me.
What kind of errors were you finding? Some old packages (older than say two months ago) have known portability bugs, but the rest should be pretty portable, although I''ve never tested in TinyCore so I might be surprised :) in some of the games I need to do some nasty sfuff, for example with unionfs, in order to make them work, and I've tuned that to work from Archlinux to Ubuntu 10.04, but no further.

I couldn't remember all details, likely unmet dependencies and incompatibilities with installed software similar to the unknown option reported above, tried a few randomly, and they all failed except as mentioned. I suggest you'd try yourself to get a direct impression  ;)

Quote
fuse is not an absolute need, the downloaded file could be mounted as iso, and then cd to mount point and executing "AppRun" should make it run...
Rather interesting is output of 'file' on provided download files:
Code: [Select]
ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV)\012-  ISO 9660 CD-ROM filesystem data\012-  'ISOIMAGE                       ', dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped
Indeed, an AppImage is just a compressed ISO (zisofs) with an ELF header (more info here: http://portablelinuxapps.org/docs/1.0/AppImageKit.pdf). It's funny that your 'file' reports both personalities of the file; mine only says "ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, BuildID[sha1]=fe926b7ea13be61d05cdd605e313f50042040153, stripped"

Try:
Code: [Select]
file -k ;)
Title: Re: Who wants to play some games? :)
Post by: RazZziel on December 20, 2013, 01:53:33 PM
Aw damn; I've setup TinyCore to run from an ISO on grub, started running some AppImages, and contemplated in horror that most of them fail due to some unmet gobject dependency, which I've not found in any other distro. It's weird that my dependency checks didn't find this one, I'll see what can be done.

EDIT: Augh! The dependency seems to be actually libglib-2.0.so.0, and it's on the AppImage itself. It seems to be used by some isofs related routines. Could probably be re-implemented without this dependency, although it'd take some time.

By the way, I had to patch TinyCore's /usr/bin/ldd so it would accept binaries with spaces on their filename: http://pastebin.com/qzfqi25p
Title: Re: Who wants to play some games? :)
Post by: curaga on December 21, 2013, 12:58:19 AM
Thanks, ldd updated.

Note that it's very bad practise to have binaries with spaces in their names  :o
Title: Re: Who wants to play some games? :)
Post by: RazZziel on December 21, 2013, 01:37:48 AM
I know it'll make the oldschool cringe, but I really want beautifully human readable names in the packages, and they happen to be the binaries as well :P
Title: Re: Who wants to play some games? :)
Post by: bmarkus on December 21, 2013, 01:41:23 AM
Replace ' ' with '_'