Amanita Design forum

Machinarium => Machinarium on Linux => Topic started by: rylleman on August 21, 2009, 10:52:22 am



Title: Linux version?
Post by: rylleman on August 21, 2009, 10:52:22 am
I really love the look and feel of this game!

I read it's flash-based. Does it require an installation or does it run straight as a flash-file?
If it requires an installation, do you plan on releasing a linux-version? If not, will it run through wine?


Title: Re: Linux version?
Post by: Fyr on August 24, 2009, 03:37:53 am
It should work on linux because it is made in Flash, but the Steam version definitely won't work.


Title: Re: Linux version?
Post by: rylleman on August 24, 2009, 09:57:23 am
Thank's.

So, will the game run as a standalone flash-file or will it require some sort of installation to run?

What is the Steam version?


Title: Re: Linux version?
Post by: SlickMcRunFast on September 18, 2009, 07:41:00 am
This game is looking great. Will there be a port for Linux to dock at? If so my wad of green paper is waiting at the bank.


Title: Re: Linux version?
Post by: heard-of-openid on September 19, 2009, 12:19:21 pm
+1
I would have already pre-ordered it, if there was Linux version promised.
Please make it happen!


Title: Re: Linux version?
Post by: makabra on September 30, 2009, 08:28:44 pm
Why there is no Linux version??? Whe whant also play on linux. Why you all forget about us??


Title: Re: Linux version?
Post by: sobkas on September 30, 2009, 09:57:23 pm
(http://lh6.ggpht.com/_ROYCjxde4tQ/SsOyUMZujyI/AAAAAAAAA0w/DiaqbDGHswk/screen.png)
Ha, Ha, but seriously, linux installer or archive with linux version inside, would be way better, than hack I have used.


Title: Re: Linux version?
Post by: ABoretz on September 30, 2009, 10:29:13 pm
...linux installer or archive with linux version inside, would be way better, than hack I have used.

I looked throughout the forum for any info JD had provided about a Linux version and found these quotes:
[Machinarium]"will be Flash and playable at PC, Mac OS or Linux." June 14, 2008  and
"we are not sure about Linux version yet." June 17, 2009
Perhaps there'll be a Linux port in June of 2010?   ;D  (just kidding about 2010, obviously JD won't neglect Linux users)

But in the meantime thanks, sobkas, for demonstrating that the machinarium.swf file can be run in Linux using Iceweasel.
I'm sure those interested in duplicating your fix can find all the info they'll need on The Web.



Title: Re: Linux version?
Post by: rylleman on September 30, 2009, 10:35:04 pm
Ok, so it does work then with the game supplied as an swf-file, even though there are no native linux installer?
That was what I wanted to know, now I'll order my copy.


Title: Re: Linux version?
Post by: sobkas on September 30, 2009, 11:38:35 pm
Ok, so it does work then with the game supplied as an swf-file, even though there are no native linux installer?
That was what I wanted to know, now I'll order my copy.
By hack, I meant that there is only exe file(in demo, I don't know anything about release), not raw swf file. To get it, you must do something.


Title: Re: Linux version?
Post by: Dude on October 04, 2009, 12:16:47 pm
Hi,
I just want to point out, that I am interested in a linux version, too! I see that there *may* be possibilities to make the windows-version run on linux, but would really prefer a native binary/installer. Even more because the flash-game should not be such a big problem to port to linux, does it?

Another question: If I buy the game, will I get all available versions (i.e. Win AND Mac atm.) or just one?

Thanks,
Dude


Title: Re: Linux version?
Post by: nicolas on October 04, 2009, 04:56:16 pm
Hi, :)
I've absolutely liked Samorost, and Machinarium is really the game that I wait the most now, for months. And I'm a Linux user, too.

So, as all other people in this topic, I'm completely interesting by a native Linux version of the game. I didn't succeed to run the demo with Wine (someone do ?). However, we can play it with a virtualized Windows, but in low-speed (compared to a test on a friend's Mac). :-\

I didn't plan to hesitate to buy Machinarium, some months ago, but now, since I know that I will maybe not be able to play, perhaps I will do.

I understand that you have choose to encrypt, rename and split all the files games to avoid online redistribution, or something like that, but can't you create a simple SWF file which do not contain the game, but only link and open all these encrypted files ? Opened in a browser, this local file could replace Mac OS X or Windows executable for Linux.  :P

Last thing : what are the dependencies of Machinarium for Windows ? Flash is integrated, or something like the Flash plugin for IE is needed ? And DirectX ? I ask that in order to find how to run the game with Wine.

Thanks for considering,
Nico. ;D

Edit: Ok, I've just done some tests. Files are only renamed and not encrypted, however - except for some of these (logo, menu text) - they aren't viewable alone in Flash Player (blank pages with sound only). The SWF file which open all that is actually packed and hidden in machinarium.exe. Fortunately, some tools which can easily unpack it are available (I won't post any link here), which allows to play on Linux (in full speed) ! :D It's what sobkas have done previously. So, I will buy the game, if the protect system isn't modified in the final version.  ;)

But, seriously, a real Linux version is needed. :) If Amanita doesn't want to provide the raw machinarium.swf, I'm sure there is somewhere something which can pack SWF files in a Linux executable, exactly like for Win or Mac. I will try to find that. :)


Title: Re: Linux version?
Post by: nicolas on October 04, 2009, 07:49:23 pm
Ok, there is a standalone Linux player available here : http://www.adobe.com/support/flashplayer/downloads.html (http://www.adobe.com/support/flashplayer/downloads.html) (see "Linux Debugger and Standalone Players for Flash Developers"). It support fullscreen mode like the Windows version, and the in-game option for activate/deactivate the fullscreen mode works perfectly. ;D

But I don't know yet if it is possible to embed a SWF Flash with it. I will try to write to Mike Melanson, the Linux Flash Player developer ...  :)

However, this standalone player can open renamed SWF files. So, for a Linux version, a solution could be :
- rename the raw machinarium.swf file (or whatever its real name) in another file with a binary name,
- put the standalone player somewhere with the game,
- do a small Linux executable/script named "Machinarium" which launch the player with the Machinarium SWF opened.
 :D

I will continue to find if an embedded Flash can be done ...  :P


Title: Re: Linux version?
Post by: nicolas on October 04, 2009, 08:10:38 pm
I found it ! ;D Now, we have a definitive solution to make a Linux version of Machinarium ! :) Actually, there is a special entry in a menu of the developer standalone Flash player for Linux to put an embedded SWF in a player. It creates a Linux executable, absolutely equivalent to the machinarium.exe file, but for Linux. ::) So, Amanita, here is the steps to do a native Linux version of your game, without show the raw SWF file, exactly like on others systems :  ;)

1. Start Linux on a computer.
2. Download "Linux Debugger and Standalone Players for Flash Developers" from http://www.adobe.com/support/flashplayer/downloads.html (http://www.adobe.com/support/flashplayer/downloads.html) (direct link (http://download.macromedia.com/pub/flashplayer/updaters/10/flash_player_10_linux_dev.tar.gz)).
3. Extract this flash_player_10_linux_dev.tar.gz and enter in the folder.
4. Go to standalone/release and extract flashplayer.tar.gz.
5. Launch the extracted file ("flashplayer").
6. The standalone Flash player is launched. Open the raw SWF file of Machinarium, the one you have packed in the Windows and Mac OS X executables.
7. Quit the fullscreen mode.
8. Open the menu File, and choose the option before Quit, something like "Create a projection" (I have it in French).
9. Choose a folder, and name your file "Machinarium". It will be the Linux executable, equivalent to machinarium.exe on Windows.
10. Move the file in a Machinarium folder, exactly where are the executables on versions of the game for others systems.
11. Compact the folder (the executable and all 00-11 folders) in a zip, or - better - in a tar.gz.
12. You have now a proper Linux version that you can distribute (as demo, or - above all - as sold complete version) !  ;D

(http://img185.imageshack.us/img185/2372/machinariumlinux.png)

(You can also make distribution packages, equivalent to installers on Windows or dmg on Mac OS X, but it's more complicated than zipping and not essential)  ;)


Title: Re: Linux version?
Post by: popsUlfr on October 04, 2009, 09:09:44 pm
That's great! I just made my own Linux demo  ;D
Only thing I noticed was that it reacted incredibly slowly to mouse input but that's maybe due to my Laptop.


Title: Re: Linux version?
Post by: nicolas on October 05, 2009, 07:42:48 pm
Quote from: popsUlfr
Only thing I noticed was that it reacted incredibly slowly to mouse input but that's maybe due to my Laptop.
Oh, yes, you've right :-\ If you open the SWF with the standalone player, or even with the Flash plugin, there is not any issue like that, isn't it ? It seems it happens only when you open it embedded in the player. And not always, I've done some others executable creations, where this problem seemed to be sometimes almost reduced. Maybe the cursor replacement system used isn't the most efficient ? I don't know. :P

By the way, I've just seen the DMG of the Mac version, and the raw SWF is inside, clearly. So, hide this file in the Linux version may not be a necessity ...  ::)


Title: Re: Linux version?
Post by: popsUlfr on October 05, 2009, 09:48:14 pm
I tested it on my other x86_64 machine. The IA32 package has to be installed by the way or the projector won't launch (for AMD64 systems).
I think the thing with the cursor was due to the Laptops poor performance, no problem at all on the other one  :P

With UPX I managed to reduce the file from 9.2 MB to 3.5 MB!
EDIT: there are problems with the compression on startup :\ I spoke too fast it's not working when compressing it. Though after decompression you get a working version  ???

A pic  ;) :

(http://img156.imageshack.us/img156/5500/machinariumlinux.th.jpg) (http://img156.imageshack.us/img156/5500/machinariumlinux.jpg)


Title: Re: Linux version?
Post by: ABoretz on October 05, 2009, 10:29:51 pm
A pic  ;) :

(http://img156.imageshack.us/img156/5500/machinariumlinux.th.jpg) (http://img156.imageshack.us/img156/5500/machinariumlinux.jpg)

Good gosh, what a neat and tidy desktop you keep!  Mine's a mess of icons and shortcuts.  :D



Title: Re: Linux version?
Post by: popsUlfr on October 05, 2009, 11:03:32 pm
Good gosh, what a neat and tidy desktop you keep!  Mine's a mess of icons and shortcuts.  :D

Well it's a rather fresh install and I generally don't add any shortcuts in Linux, I get to all my apps either through the quickstartmenu or the Terminal.
However MY Windows board gets messy really fast!  ;D


Title: Re: Linux version?
Post by: nicolas on October 06, 2009, 08:33:53 am
A pic  ;) :

(http://img156.imageshack.us/img156/5500/machinariumlinux.th.jpg) (http://img156.imageshack.us/img156/5500/machinariumlinux.jpg)
How have you done to choose the window title, "Machinarium" ? On the mine, there is only "Flash Player 10". :)


Title: Re: Linux version?
Post by: popsUlfr on October 06, 2009, 10:47:00 am
How have you done to choose the window title, "Machinarium" ? On the mine, there is only "Flash Player 10". :)

I "hacked" it with a Hex Editor, just have to search for "Adobe Flash Player 10" (the first match!) and put "Machinarium" in that same space. One should use the whitespace character (20hex)  for filling unused slots and NOT 00hex otherwise it won't work. The 00hex before the 2nd Adobe... must be left untouched. I wanted to get rid of the menu bar also but I yet need a better understanding of the ELF format.


Title: Re: Linux version?
Post by: popsUlfr on October 06, 2009, 06:45:58 pm
Did you also notice a slight audio delay Nicosmos? It's very subtle but there.
Also I didn't see that one yet, the bubble with the cake! How great...

(http://img207.imageshack.us/img207/2117/machinariumlinuxcake.th.jpg) (http://img207.imageshack.us/img207/2117/machinariumlinuxcake.jpg)


Title: Re: Linux version?
Post by: jd on October 07, 2009, 03:22:41 pm
hi Linux users,

we have created Linux version of the demo, however we need to test it carefully. please download it here, try it and let us know: http://machinarium.net/stahni-test/Machinarium-Demo-EN.tar.gz
we heard about some problems of flash player on certain 64bit Linux systems...

thanks!


Title: Re: Linux version?
Post by: Dude on October 08, 2009, 01:37:00 am
we have created Linux version of the demo, however we need to test it carefully. please download it here, try it and let us know: http://machinarium.net/stahni-test/Machinarium-Demo-EN.tar.gz
we heard about some problems of flash player on certain 64bit Linux systems...
Great, thanks.

Unfortunately I have indeed a problem doubtless because of 64bit:
./Machinarium-Demo: error while loading shared libraries: libnss3.so: cannot open shared object file: No such file or directory

I have the package containing this file installed (libnss3-1d), but this is 64bit of course and it seems there is no 32bit library available. :-(


Title: Re: Linux version?
Post by: popsUlfr on October 08, 2009, 10:57:47 am
we have created Linux version of the demo, however we need to test it carefully. please download it here, try it and let us know: http://machinarium.net/stahni-test/Machinarium-Demo-EN.tar.gz
we heard about some problems of flash player on certain 64bit Linux systems...
Great, thanks.

Unfortunately I have indeed a problem doubtless because of 64bit:
./Machinarium-Demo: error while loading shared libraries: libnss3.so: cannot open shared object file: No such file or directory

I have the package containing this file installed (libnss3-1d), but this is 64bit of course and it seems there is no 32bit library available. :-(

Hey dude! You need the IA32 library in order to run 32 bit apps on a x86_64 system ;)

@jd: your demo just crashes for me :( (I see the Adobe Flash Player window for a couple of seconds and then it dies) May I upload my version? I would of course just supply the final projector with the numeric folders and NOT the swf contained in the exe. It may work better for some.

EDIT: Ok I'm investigating a bit, I'm having the issue too if I RENAME my own machinarium demo folder.

I don't get it. I'm having trouble with the fullscreen mode, it just crashes.

EDIT2: I resolved it, was only a problem related to the graphics drivers.


Title: Re: Linux version?
Post by: Dude on October 08, 2009, 03:49:26 pm
we have created Linux version of the demo, however we need to test it carefully. please download it here, try it and let us know: http://machinarium.net/stahni-test/Machinarium-Demo-EN.tar.gz
we heard about some problems of flash player on certain 64bit Linux systems...
Great, thanks.

Unfortunately I have indeed a problem doubtless because of 64bit:
./Machinarium-Demo: error while loading shared libraries: libnss3.so: cannot open shared object file: No such file or directory

I have the package containing this file installed (libnss3-1d), but this is 64bit of course and it seems there is no 32bit library available. :-(

Hey dude! You need the IA32 library in order to run 32 bit apps on a x86_64 system ;)
I know ;) As I said, there is no 32bit library available. Yes, I have the package ia32-libs installed.


Title: Re: Linux version?
Post by: popsUlfr on October 08, 2009, 05:44:01 pm
I'm not sure I understand. It worked right away for me after installing the ia32-libs...  ???
Did you try to locate the file "libnss3-1d" (e.g. /usr/lib32 or even /usr/lib) and create a link called "libnss3.so" to it in /usr/lib32?

EDIT: Forgive me, I didn't thought that one through try to look for "/usr/lib/libnss3.so.0d"  an check if there's a link to it in the same directory. Otherwise create one to it called "libnss3.so"! Not sure if this might help in this case :(


Title: Re: Linux version?
Post by: Dude on October 08, 2009, 10:45:22 pm
I'm not sure I understand. It worked right away for me after installing the ia32-libs...  ???
Did you try to locate the file "libnss3-1d" (e.g. /usr/lib32 or even /usr/lib) and create a link called "libnss3.so" to it in /usr/lib32?

EDIT: Forgive me, I didn't thought that one through try to look for "/usr/lib/libnss3.so.0d"  an check if there's a link to it in the same directory. Otherwise create one to it called "libnss3.so"! Not sure if this might help in this case :(
/usr/lib is a symlink to /usr/lib64, where my libnss3.so is located. Do you have 64bit Debian unstable and a libnss3.so in /usr/lib32?
There is no libnss3* in my /usr/lib32.


Title: Re: Linux version?
Post by: popsUlfr on October 11, 2009, 10:30:22 am
/usr/lib is a symlink to /usr/lib64, where my libnss3.so is located. Do you have 64bit Debian unstable and a libnss3.so in /usr/lib32?
There is no libnss3* in my /usr/lib32.

Sorry for the late reply but I have a libnss3.so and libnss3.so.1d in my /usr/lib32. Same for /usr/lib (also I think you mean a symlink from /usr/lib64 to /usr/lib ?). There's your problem I think.

Are you sure the ia32-libs are correctly installed? I just checked and this file is part of it.

You might try to run this command in a Terminal:
Code:
dpkg-reconfigure ia32-libs

or try to reinstall:

Code:
apt-get remove ia32-libs
apt-get -f install ia32-libs


Title: Re: Linux version?
Post by: Dude on October 11, 2009, 12:19:59 pm
(also I think you mean a symlink from /usr/lib64 to /usr/lib ?)

Yes, you are right.

Are you sure the ia32-libs are correctly installed? I just checked and this file is part of it.

Where did you check? It is definitively not in this package:
http://packages.debian.org/sid/amd64/ia32-libs/filelist

Nor is there a 32bit version of this file in any other Debian unstable amd64 package:
http://packages.debian.org/search?searchon=contents&keywords=libnss3.so&mode=filename&suite=unstable&arch=amd64

Edit:
I now copied the files libnss3.so, libnssutil3.so, libsmime3.so, libssl3.so from the i386 package of libnss3-1d and libnspr4.so, libplc4.so, libplds4.so from the i386 package of libnspr4-0d to /usr/lib32/.
This leads to another 64bit error:
(Machinarium-Demo:20336): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/engines/libglide.so: wrong ELF class: ELFCLASS64
But there *is* the 32bit version of this file available in /usr/lib32/... (from the package ia32-libs-gtk).

I wonder why my system does not try to use it.


Title: Re: Linux version?
Post by: popsUlfr on October 11, 2009, 03:01:21 pm
Are you sure the ia32-libs are correctly installed? I just checked and this file is part of it.

Where did you check? It is definitively not in this package:
http://packages.debian.org/sid/amd64/ia32-libs/filelist

Nor is there a 32bit version of this file in any other Debian unstable amd64 package:
http://packages.debian.org/search?searchon=contents&keywords=libnss3.so&mode=filename&suite=unstable&arch=amd64

That's odd, I've checked the files the package installs through the terminal:
Code:
dpkg --listfiles ia32-libs | tee temp.txt
grep libnss3.so temp.txt
It would return me 2 entries saved in /usr/lib32
Quote
/usr/lib32/libnss3.so
/usr/lib32/libnss3.so.1d
Code:
rm temp.txt
to remove temp file.

Or
Code:
apt-get install apt-file
apt-file update
apt-file search libnss3.so
It gives a couple of matches with
Quote
ia32-libs: /usr/lib32/libnss3.so
ia32-libs: /usr/lib32/libnss3.so.1d

Edit:
I now copied the files libnss3.so, libnssutil3.so, libsmime3.so, libssl3.so from the i386 package of libnss3-1d and libnspr4.so, libplc4.so, libplds4.so from the i386 package of libnspr4-0d to /usr/lib32/.
This leads to another 64bit error:
(Machinarium-Demo:20336): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/engines/libglide.so: wrong ELF class: ELFCLASS64
But there *is* the 32bit version of this file available in /usr/lib32/... (from the package ia32-libs-gtk).

I wonder why my system does not try to use it.

You are starting it through the Terminal? try to launch the executable directly with a double-click on it.


Title: Re: Linux version?
Post by: Dude on October 11, 2009, 03:32:52 pm
Quote
dpkg --listfiles ia32-libs | grep libnss3
No output for me.

Quote
apt-file search libnss3.so
Complete output:
Quote
iceape-browser: /usr/lib/iceape/libnss3.so
libnss3-1d: /usr/lib/libnss3.so
libnss3-1d: /usr/lib/libnss3.so.1d
libnss3-1d-dbg: /usr/lib/debug/usr/lib/libnss3.so.1d

You are starting it through the Terminal? try to launch the executable directly with a double-click on it.
That does not change anything. It doesn't happen anything.

I assume you aren't using plain Debian unstable?


Title: Re: Linux version?
Post by: popsUlfr on October 11, 2009, 03:55:31 pm
I assume you aren't using plain Debian unstable?

No, I'm not using Debian unstable.

Quote
dpkg --listfiles ia32-libs | grep libnss3

Oh! I've looked for a way to do just that without a temp file. Didn't think of piping it directly to the application.
Thanks!  ;D


Title: Re: Linux version?
Post by: Dude on October 11, 2009, 04:00:30 pm
I assume you aren't using plain Debian unstable?

No, I'm not using Debian unstable.

Then what are you using?

Quote
dpkg --listfiles ia32-libs | grep libnss3

Oh! I've looked for a way to do just that without a temp file. Didn't think of piping it directly to the application.
Thanks!  ;D

No problem :-)


Title: Re: Linux version?
Post by: popsUlfr on October 11, 2009, 04:29:03 pm
Then what are you using?

Forgive me, running on Linux Mint at the moment. It gets repositories from Ubuntu which in turn gets it from Debian.


Title: Re: Linux version?
Post by: robotics on October 13, 2009, 07:53:14 pm
Mě to taky nejdeeeeeeee! Debian Lenny 64 bit. Viz. f


Title: Re: Linux version?
Post by: amd64_user on October 16, 2009, 03:44:44 pm
How about an official Linux 64bit release? I am sure I am not the only one who would appreciate it.


Title: Re: Linux version?
Post by: Luca on October 16, 2009, 05:43:28 pm
Please DON'T create port this game to Linux. I admin of StopLinux, and I think that linux is stupid system, but if Linuxoids want to play in games thay are free to use WINE. Linux do not needed native games. Look at it's drivers model! It's come from 1990 year! heh!


Title: Re: Linux version?
Post by: dirtyepic on October 19, 2009, 08:44:29 am
To play Machinarium on 64bit Gentoo Linux just emerge www-plugins/adobe-flash with the 32bit USE flag enabled.  This will install all the necessary 32bit libraries.


Title: Re: Linux version?
Post by: popsUlfr on October 19, 2009, 04:16:10 pm
To play Machinarium on 64bit Gentoo Linux just emerge www-plugins/adobe-flash with the 32bit USE flag enabled.  This will install all the necessary 32bit libraries.

Thanks for the info, I will try it out. I had some trouble with the xorg-server, black screen. But gnome is working flawlessly... ok getting Off-Topic.

EDIT:Works like a charm ;)


Title: Re: Linux version?
Post by: nosense on November 21, 2009, 03:46:00 am
Hi folks,

How about an official Linux 64bit release? I am sure I am not the only one who would appreciate it.

seconded (I'd like to run it on Debian 64-bit).

And would it be possible to make a statically linked version, perhaps?
I had to create symlinks on Debian (Etch) before I then ran into the glibc mismatch.

I bought it but I can't play it at all at the moment -- won't run in Wine, either. :(