64-bit Linux support

6 replies [Last post]
Joined: 12/23/2008

I couldn't find a public roadmap/TODO-list, so I apollogize if this has been mentioned before, but in the 64-bit build of the game I introduced some incompatibilities that might affect Gootool.

One you already noticed is that the single 32-bit executable is renamed to WorldOfGoo.bin32 (and WorldOfGoo.bin64 for the 64-bit edition). Gootool should probably launch the game through the wrapper script called WorldOfGoo, though.

The second change is that the 64-bit version uses incompatible movie/animation files, which are stored in files called movie.binltl64 and anim.binltl64 respectively. They have the same file format as the 32-bit .binltl files, but use 64-bit little-endian pointers instead so they can be loaded quickly. (There was a trade-off here between using a little more diskspace for the multilib build, or writing a complicated loader that converts between the file formats on the fly; I opted to keep the code simple and fast, as the res/ directory is about 70MB in total while the animations/movies take up only about 1MB).

I'm not sure how far along support for movies/animations in Goomods is, but if this is ever released, I would suggest that Gootool writes out both the 32-bit and 64-bit versions of the files, at least on Linux (or, even better, only when the player has version 1.41 installed, although that might be a bit trickier to figure out).

Joined: 07/27/2009

Hi,

I have a problem with gootools on my Ubuntu9.04(64).

A) Gooltool couldn't start. It couldn't find the Gootool.bin and doesn't accept the gootool.bin64. So I copy the gootool.bin 64 to goottol.bin and changed de mod of al the files with chmod 777.

B)After this I try to started Gootool again. A error massaged window popped up with "
Error reading current configuration: Unable to parse config.txt "

The config.txt is in /opt/WorldofGoo/properties
WorldofGoo is in /opt/WorldofGoo
Gootool is in ~/.java/.userPrefs/com/goofans

What could I do to run Gootools in my Ubuntu (amd64) system?

Joined: 11/04/2008

I'll give this a try shortly. The 64-bit issue (.bin64) is already on the TODO list to fix. I'll see if I can reproduce the config.txt issue. I don't have a 64-bit system (my computer's 5 years old!) but I doubt the config.txt issue is related to that.

Also, maks: noted. I assume this means all the "structs" in the file which have offsets within the file are now 8 bytes instead of 4, but the integers and floats are still 4-bytes.

Joined: 12/23/2008

FWIW, I just tested this myself, and I can summarize the issues as follows (some duplication here, to give you the complete picture):

  1. the WoG game dir is not detected, since the game looks for WorldOfGoo.bin which was replaced by WorldOfGoo.bin32 and WorldOfGoo.bin64.
  2. WorldOfGoo.bin32 and WorldOfGoo.bin64 files are copied (as they should be) but not marked executable, so the game won't launch.
  3. the library directories, called libs32 and libs64 aren't copied at all, presumably because the game looks for libs instead (I forgot to mention this change in the first post!)

I think that's it. I didn't have the config.txt issue so that is probably not specific to the this version. (I did notice Gootool adds an XML declaration to the config.txt file for some reason, but that doesn't seem to break things in my case).

davidc wrote:
I assume this means all the "structs" in the file which have offsets within the file are now 8 bytes instead of 4, but the integers and floats are still 4-bytes.

Exactly, and also the alignment of arrays/structures changed from 4-byte to 8-byte boundaries, although I guess this is not critical (as far as I know, x86_64 is able to process misaligned data just fine, albeit at a performance cost).

If you need help with testing any of this, I'd be happy to help out, just let me know. Smile

Joined: 11/04/2008

Thanks for the info. I have access to a 64-bit server so I can do some preliminary testing on this (but without graphics), I'll send it to you for testing before the next release - which I should do soon since I'm getting a lot of reports about it.

Indeed GooTool has a list of "allowed" subdirectories of the root WoG installation which I'll update. I forget the rationale behind this, I think it was perhaps to prevent custom WoGs being copied to another custom WoG and corrupting them.

  private static final String[] resourceDirs = new String[]{"properties", "res", "libs"};
<br/>

As far as the movie stuff goes, I should be able to test that myself, though at this point I'm not sure what (if anything) I want to do with it. To/from XML is fine but unless I put the effort into the Flash scripting it's pretty useless.

-davidc

Joined: 08/20/2009

Hi all,

Same issue here with GooTool not being able to find the .bin file (AMD64, Ubuntu 9.04).
WoG is installed in /opt/ WorldofGoo from the .deb install. I assume this is normal.

Before messing everything around (copying / renaming files, changing rights,...), I'll wait for the new release.

If I can help with testing, no pb, just let me know.

Thanks for the great work (which I'm eager to check... Wink )

Joined: 11/04/2008

The .bin[32/64] issue is fixed in GooTool 1.0.0

I am unable to reproduce the problem reading config.txt. If you still have this issue using GooTool 1.0.0, please e-mail me your config.txt. davidc @ this domain.

-davidc