Title: Intel Macs Post by: Han on March 10, 2006, 11:21:24 am hi all, now that the Intel Macs are out (I have a MacBook Pro), are there any moves to make the OSX version of UQM a universal binary?
Secondly, if so, then that would largely solve the problem of endianness between save games, right? Title: Re: Intel Macs Post by: Han on March 10, 2006, 11:28:05 am Oh, I might just add that I'm currently running UQM on Rosetta on my MBP (at least I hope it is... Get Info says that UQM is a PPC app), while I'm also running UQM on my PC (I need windows on my desktop but the MBP is still my one true love).
That being the case, I would like to play a single game of UQM but be able to transfer between PC and Mac. Unfortunately the difference in endianness is an issue, but I was hoping that since the MBP is running on Intel chips, perhaps a universal binary would allow me to transfer save games in this way. Title: Re: Intel Macs Post by: Novus on March 10, 2006, 12:00:31 pm hi all, now that the Intel Macs are out (I have a MacBook Pro), are there any moves to make the OSX version of UQM a universal binary? Well, it wouldn't solve the problem; you'd end up with two incompatible Mac versions instead. The Intel Mac version would probably be compatible with the other Intel versions, though (Windows, Linux, et.c.).Secondly, if so, then that would largely solve the problem of endianness between save games, right? Fixing the save game format is one of things that are supposed to be done before version 1.0, IIRC. Title: Re: Intel Macs Post by: meep-eep on March 10, 2006, 05:22:44 pm I happen to have been looking at the saving and loading yesterday, and it's a miracle it's as portable as it is.
Title: Re: Intel Macs Post by: Death 999 on March 20, 2006, 11:06:15 pm hi all, now that the Intel Macs are out (I have a MacBook Pro), are there any moves to make the OSX version of UQM a universal binary? Well, it wouldn't solve the problem; you'd end up with two incompatible Mac versions instead. The Intel Mac version would probably be compatible with the other Intel versions, though (Windows, Linux, et.c.).Secondly, if so, then that would largely solve the problem of endianness between save games, right? Fixing the save game format is one of things that are supposed to be done before version 1.0, IIRC. Novus, the question was about a 'universal' app, which is what Apple is calling an application that works on both kinds. So, NO, it WOULDN'T be incompatible. Title: Re: Intel Macs Post by: Novus on March 21, 2006, 10:44:25 am Novus, the question was about a 'universal' app, which is what Apple is calling an application that works on both kinds. So, NO, it WOULDN'T be incompatible. Unless I've completed misunderstood Apple's documentation, an OS X "universal" binary is just two binaries glued together so that it looks like a single executable. This means that endianess issues are still a problem as the same file contains two different programs that are supposed to do the same thing on different systems.See Apple's Introduction to Universal Binary Programming Guidelines (http://developer.apple.com/documentation/MacOSX/Conceptual/universal_binary/) for details. Note the emphasis on endianness issues. Title: Re: Intel Macs Post by: Michael Martin on March 31, 2006, 06:53:25 am With the exception of savegames, though, the content is all basically endian-safe.
The fact that the same source compiles both for x86 and PowerPC as it is implies that gluing two such binaries together shouldn't be a huge deal. Any endian-specific code would already have been dealt with. Yes, this is said with the breezy confidence of someone who's never tried to do it. We'd really need to have people with x86 Macs available for testing purposes to be confident that the "easy attempt" worked. Title: Re: Intel Macs Post by: Death 999 on April 13, 2006, 08:16:40 pm Novus, the question was about a 'universal' app, which is what Apple is calling an application that works on both kinds. So, NO, it WOULDN'T be incompatible. Unless I've completed misunderstood Apple's documentation, an OS X "universal" binary is just two binaries glued together so that it looks like a single executable. This means that endianess issues are still a problem as the same file contains two different programs that are supposed to do the same thing on different systems.I don't see anything in your link saying that that is the strategy they used (though I only spent a few minutes on it). Certainly, they do speak of endianness issues, but it seems to me moer like they're trying to educate those who only work on big-endian machines about the difference, rather than saying that they have to be handled in one way or another. If our code already works on both, and we aren't basing it off _i386_ and _ppc_ but rather _BIG_ENDIAN_ and _LITTLE_ENDIAN_ then we're in good shape. But let's see, where do we care about endianness? Anywhere other than file I/O? Title: Re: Intel Macs Post by: Novus on April 13, 2006, 11:07:12 pm I don't see anything in your link saying that that is the strategy they used (though I only spent a few minutes on it). Right in the introduction, they state that universal binaries run natively on both PowerPC and i386. Therefore, the universal binary contains native code for both architectures, as their instruction sets are incompatible. What I said isn't explicitly stated, though.Certainly, they do speak of endianness issues, but it seems to me moer like they're trying to educate those who only work on big-endian machines about the difference, rather than saying that they have to be handled in one way or another. Quote If our code already works on both, and we aren't basing it off _i386_ and _ppc_ but rather _BIG_ENDIAN_ and _LITTLE_ENDIAN_ then we're in good shape. File I/O is hard to do efficiently and completely endianness-neutrally. However, the content loading routines are all OK. The save game routines are the real problem, as they just dump internal data structures to disk with no attempt at consistency (as meep-eep said, it's a miracle UQM save games can be moved between even different operating systems on the same CPU).But let's see, where do we care about endianness? Anywhere other than file I/O? |