Join Now or Login Below:

Development Report

August Development Report

We have continued work on improving support for installers. Recently we have focused our work on the Call of Duty 4 installer. Many games check the user credentials during installation, however, full support for Windows credentials is not required for most games. There are many cases where we provide placeholder account information to pretend that we are currently running under an Administrator account. For some games, we even need to pretend that we are not running under an Administrator account. In this case, the installer makes an explicit check to see if it is being installed under an account with Administrator access via a method that we weren't handling. Support for that has been added, and all is now good.

Although we do not currently support .Net programs, some work has also gone into improving support for the .Net framework installer. While this may seem like an exercise in futility on the surface, some games (for example, Neverwinter Nights 2) use the .Net framework installer not only to install .Net components but to also install updated versions of the Microsoft Visual C++ run-time libraries. Although the game itself does not require .Net to run, it does require these run-time libraries; thus the .Net installer support is useful for its side-effect.

As many of you know, TransGaming is creating a Cider port for the Mac version of SPORE. Quite a bit of work has gone into this port, since it is a very graphically demanding game due to its procedurally generated content. We've stated in the past that much of the work that goes into Cider is beneficial to Cedega since both projects share the same core codebase. However, it doesn't always mean that no additional work is required to make sure things work on both platforms. There is the issue of installer support, which isn't required on the Mac; in addition, our graphics pipelines are not exactly the same on both platforms.

We experienced this problem with SPORE on Linux. While playing on Linux, the planets' surfaces were very messed up. We had terrain geometries that jutted far off into space or deep into the planets' cores instead of being a nice smooth planet surface like we were seeing on the Mac. A variation of this issue was being seen in the SPORE Creature Creator with various skins being incorrectly rendered. This was fairly baffling since the same exact game rendered just fine on one platform, but completely different on another. We tried a number of different approaches to track this down, including trying to make all of the Open GL extensions match up exactly between platforms, trying to (unsuccessfully) trigger the bad case on the Mac, and comparing step-by-step multi-gigabyte trace logs in order to figure out where things went awry.

What ended up being the problem had to do with how we handle DIB sections between the two platforms. Device Independent Bitmaps are a feature of Windows that allows an application to share a section of memory directly with the video card and Windows GDI (Graphics Device Interface), allowing any component to always have access to the most up-to-date copy of that surface. You can render something with the graphics card into this section of memory, then you can immediately have direct access to that new data from within your application.

While SPORE wasn't doing this directly, our X11 interface differs slightly from our Mac interface in how we handle reading data back from OpenGL. We discovered a problem in our X11 interface in which we sometimes had an incorrect flag telling us which component had the most up-to-date version of the surface data. So, instead of getting back data that was properly rendered, we were getting back garbage that the game then used to generate terrain for the planets or skin for the creatures. Obviously, this would cause a problem for procedurally generated content. With this bug fixed, both SPORE and the SPORE Creature Creator now look great on Linux as well.

Mark Adams
Development Manager
TransGaming Technologies
Broadening the Playing Field