Since our last development report, there have been two Cedega 6.0.x updates released. First was Cedega 6.0.4 which included a variety of fixes primarily for Steam and World of Warcraft, including:
As is always a hazard with auto-updating games, literally a few days after Cedega 6.0.4 was released, a Steam update broke support in Cedega. After analyzing the issue, it was felt that the complete fix was too invasive for a released product and couldn't be sufficiently tested in a timely manner (although that has been done in mainline). However, we managed to come up with a solution that was sufficient for Steam and got Cedega 6.0.5 out the door immediately afterward.
EVE Online, available on both Mac and Linux and one of our biggest titles, has seen a substantial amount of development work, enhancements and fixes. Much of that will be beneficial to other current and future games under Cedega. Two examples in the non-graphics area would be copy/paste and I/O completion ports. Copy and paste between games running under Cedega and regular Linux applications has been enhanced to work in many more cases now. For games that allow in-game text chatting, such as EVE, this can be particularly useful for passing around information or storing discussions. I/O completion ports is an asynchronous I/O mechanism introduced in the Windows NT series of operating systems. It is designed to be very scalable for network communications as well as being easier to use than the older overlapped I/O mechanism. Some online games, such as EVE, are now making use of I/O completion ports for their network communications, and thus they are now supported in Cedega along with the (somewhat) related technology of thread pools.
Our other titles under development and games we're looking to support under Cedega are continuing to drive our graphics technology forward. Two examples there would be support for sRGB textures and MRT (Multiple Render Targets). These are two features provided by DirectX 9 that some games will use if available in lower shader models, and expect to be present in shader model 3. As more and more games require shader model 3 at a minimum, support for these features is mandatory and has thus been implemented. This will also benefit some existing titles such as Half Life 2 - it requires sRGB support to default to running in DX9 mode.
One issue we've encountered in a couple of instances is a game reading a file using a lot of very small reads - for example, loading a 150k file one or two bytes at a time. This is pretty much a worst-case situation for us performance-wise, as there is non-trivial overhead on each read. After doing some investigation, we've implemented limited caching of small files in memory when opened for read-only access. This drastically speeds up the above case - in one game in particular, the time to load a level went from about 1.5 minutes to just a few seconds. This will likely require a bit of tuning over time, but it should give a bit of a speedup in general with a major speedup in a few particular situations.
As mentioned in the previous development report, we've been transitioning to Git for our revision control system. That has now been completed and is already paying dividends in terms of workflow and code layout (due to its support for following history through renames). We've also been fleshing out our testsuite infrastructure with an eye towards having automated tests that can be run after each build, thus ensuring higher stability and lesser chance of regressions as we continue development.
Finally, we've been pushing on getting things in shape for a major Cedega release in the not-too-distant future. This is involving both identifying and fixing regressions from the extensive work that's been done since the last major release, as well as getting some particular new titles working that have been highly requested in the polls. One set of games that have been highly requested have been the Orange Box games and thus they have been getting some attention. We do now have Team Fortress 2 and Portal working internally, although there is yet some polish to be done. Stay tuned!
Mark Adams
Development Manager
TransGaming Technologies
Broadening the playing field.