Hi,
I have the same (I think) problem -the game freezes after 30-90 mins of play. Video freezes first, then audio stutters/loops for a bit then dies. This is true for both OSS and Alsa options, I'm afraid, no difference as far as I can tell (I don't have Pulse audio on my Arch system so I can't test that option).
(On a related note - since I've paid for the game through Humble Indie Bundle, how do I get updates & bug fixes?)
Freezing in Ubuntu Lucid
Re: Freezing in Ubuntu Lucid
Apparently I was lucky enough to change the engine sound of the ALSA sound device is "1" in my /. Osmos / config.cfg. Played about 20 minutes and had no problems. This binary version. This trick is really good.
- eddybox
- Site Admin
- Posts: 653
- Joined: Sat Dec 13, 2008 11:22 am
- Location: Nelson, BC, Canada
- Contact:
Re: Freezing in Ubuntu Lucid
@markhadman: once we have a solid fix we'll update the version on the download page of the Humble Bundle as well. 

Re: Freezing in Ubuntu Lucid
I've run into this problem a few times now myself (in my case, on a 32-bit Gentoo system). I took the liberty of pulling it up in GDB and found something that struck me as odd:
(So this function is just a wrapper for gettimeofday() that returns the current time in microseconds.)
(That's the current time value. Finishing the function and going a little farther:)
(Here EBX is pointing to the microseconds value calculated above, 0x81...)
This is what caught my attention: there's what looks like a reference time value right at the upper limit of a 32-bit signed integer being subtracted from the current time value. Is there any chance this might be an integer overflow issue?
EDIT: I was able to get the game to continue running by waiting 2^31 microseconds for the 32-bit counter to roll over, then resetting the reference value loaded from EAX above with the current time pointed to by EBX.
Code: Select all
(gdb) bt
#0 0xb7815424 in __kernel_vsyscall ()
#1 0xb72c9746 in gettimeofday () from /lib/libc.so.6
#2 0x0809a2d1 in ?? ()
#3 0x0809a307 in ?? ()
#4 0x0808196f in ?? ()
#5 0xb7255be6 in __libc_start_main () from /lib/libc.so.6
#6 0x0804c211 in ?? ()
(gdb) finish
Run till exit from #0 0xb7815424 in __kernel_vsyscall ()
0xb72c9746 in gettimeofday () from /lib/libc.so.6
(gdb) finish
Run till exit from #0 0xb72c9746 in gettimeofday () from /lib/libc.so.6
0x0809a2d1 in ?? ()
(gdb) disass $pc-32,$pc+32
Dump of assembler code from 0x809a2b1 to 0x809a2f1:
[...]
0x0809a2c8: lea -0x10(%ebp),%eax
0x0809a2cb: push %eax
0x0809a2cc: call 0x804ba70 <gettimeofday@plt>
=> 0x0809a2d1: imul $0xf4240,-0x10(%ebp),%eax
0x0809a2d8: add -0xc(%ebp),%eax
[...]
End of assembler dump.
(So this function is just a wrapper for gettimeofday() that returns the current time in microseconds.)
Code: Select all
(gdb) nexti
0x0809a2d8 in ?? ()
(gdb) nexti
0x0809a2db in ?? ()
(gdb) p/x $eax
$1 = 0x8198e52a
(That's the current time value. Finishing the function and going a little farther:)
Code: Select all
(gdb) finish
(gdb) nexti
(gdb) nexti
(gdb) nexti
0x0809a30d in ?? ()
(gdb) x/i $pc
=> 0x809a30d: mov (%eax),%eax
(gdb) nexti
0x0809a30f in ?? ()
(gdb) p/x $eax
$2 = 0x7fffdea5
(gdb) x/i $pc
=> 0x809a30f: sub %eax,(%ebx)
(Here EBX is pointing to the microseconds value calculated above, 0x81...)
This is what caught my attention: there's what looks like a reference time value right at the upper limit of a 32-bit signed integer being subtracted from the current time value. Is there any chance this might be an integer overflow issue?
EDIT: I was able to get the game to continue running by waiting 2^31 microseconds for the 32-bit counter to roll over, then resetting the reference value loaded from EAX above with the current time pointed to by EBX.
- Meal Worms
- Posts: 624
- Joined: Wed Apr 22, 2009 12:22 pm
- Location: Toronto, Ontario, Canada
- Contact:
Re: Freezing in Ubuntu Lucid
Thanks for the detective-work achruch. Sure does sounds like overflow. More soon...
Dave
Dave
- Meal Worms
- Posts: 624
- Joined: Wed Apr 22, 2009 12:22 pm
- Location: Toronto, Ontario, Canada
- Contact:
Re: Freezing in Ubuntu Lucid
Hey folks,
Great news: with the help of achurch's detective work, I've tracked down and fixed the Linux freeze bug. Anyone who is interested in verifying the fix is welcome to get in touch with me at daveburke at hemispheregames.com to try out the binary. In the mean time, we're packaging up a patch containing fixes for the freezing and font issues and will be rolling out soon.
Cheers all,
Dave
Great news: with the help of achurch's detective work, I've tracked down and fixed the Linux freeze bug. Anyone who is interested in verifying the fix is welcome to get in touch with me at daveburke at hemispheregames.com to try out the binary. In the mean time, we're packaging up a patch containing fixes for the freezing and font issues and will be rolling out soon.
Cheers all,
Dave
Re: Freezing in Ubuntu Lucid
Great to hear there's a fix. My copy has been locking up within a few minutes now that I'm past the intro levels. I'd like to get a copy of the updated version, because it's locking up my system to the point I have to reboot. Blech!
- Meal Worms
- Posts: 624
- Joined: Wed Apr 22, 2009 12:22 pm
- Location: Toronto, Ontario, Canada
- Contact:
Re: Freezing in Ubuntu Lucid
wizkid, ping me at daveburke at hemispheregames dot com citing this thread and I'll hook you up.
Dave
Dave
Re: Freezing in Ubuntu Lucid
Meal Worms wrote:wizkid, ping me at daveburke at hemispheregames dot com citing this thread and I'll hook you up.
Dave
I've sent you an email as well... Not had to reboot myself, but the game is pretty much unplayable due to the freezing in ubuntu 10.10 and debian squeeze 32bit anyway.
- Meal Worms
- Posts: 624
- Joined: Wed Apr 22, 2009 12:22 pm
- Location: Toronto, Ontario, Canada
- Contact:
Re: Freezing in Ubuntu Lucid
FYI, everyone who's run the new executable has found it to fix the freeze, so we're going ahead with the patch! More details soon... 
Thanks all,
Dave

Thanks all,
Dave
Return to “Osmos PC (Win/Mac/Linux)”
Who is online
Users browsing this forum: No registered users and 4 guests