Monday, May 25, 2015

GSoC 2015 WineHQ projects

This is from the WineHQ developers mailing list.

Matteo Bruni 

Hey all,

tomorrow the coding period of the Summer of Code begins and I though it might be a nice idea to let the community know about the projects we've got this year. Actually, I though it would be even better if the student themselves wrote a short summary of their own project for the mailing list.

So, with no authority backing me, I'm kindly asking that. No need to write anything too fancy, just a few lines explaining what are you going to work on over the summer and maybe what are the expected benefits for Wine.

Thank you!

Aaryaman Vasishta

Thank you for inviting me to this opportunity! I will try my best to keep it short, though it might be a bit long for some. There's a TL;DR at the end, though. :)
A bit about myself. My name is Aaryaman Vasishta and I'm currently studying in my third year of Computer Engineering in Pune Institute of Computer Technology, India. My interests lie in game programming and computer graphics.

My project focuses on implementing the rendering backend for the D3DRM API [1].

D3DRM (Direct3D Retained Mode) is basically a scene graph API running on top of Direct3D's Immediate Mode API. You can say it's more like a rendering engine API which encapsulates Immediate Mode functionality in order to make it easier for programmers to develop 3D scenes using it, making it a possible competitor to OpenGL at the time.

At the moment wine's implementation of this API is mostly full of stubs, and there's quite a bit of work left before something can be drawn on the screen. My role here mainly focuses on implementing object Creation/Initialization functions for some of the main interfaces, mainly devices, textures and viewports, all of which are COM based. If time permits, I will also work on implementing some frequently used frames and lighting functions.
The API is quite old (it has been removed since DX 8 SDK, and the dll doesn't come included with vista onwards) but there are a few popular games that used it. Namely, Lego Rock Raiders and Steel Beasts, and applications as well, like FMS (Flying Model Simulator). So there is some merit in working on this. Implementing these functions will help accelerate further development of this API to get some long-awaited apps to run on wine (I can see quite a few threads on google of people trying to get FMS running, and a couple for LRR too, so there is some demand for it). As an added bonus, I also get to interact with wine's ddraw implementation for this one, which could potentially help ddraw's implementation via possible bug detection/fixes and implementing any ddraw functionality that d3drm requires.

TL;DR: I'm implementing a main chunk of a graphics API called Direct3D Retained Mode, which is based on Direct3D Immediate Mode. The API is mostly a stub in wine and this project should help get things going.

Thank you!
Aaryaman Vasishta

Zhenbo Li


I'm glad to working on Wine GSoC this year. My project's focus is IHMLTXMLHttpRequest. Many websites would use hacks to determine whether the browser was IE6.0 or IE 7+. As XMLHttpRequest object identifier was shipped in IE 7.0[0], the web developers would use ActiveX to access IXMLHttpRequest object. Wine IE implements some new features, so it is common that Wine IE is treated as a IE 7+ browser(like Firebug Lite[1])

Mozilla has implemented nsIXMLHttpRequest[2], and my approach is to call the wine-gecko functions from wine code. I can't tell how many applications' status on appdb will change from "garbage" to "silver/gold", but IMHO, implementing XMLHttpRequest is necessary to make wine IE more usable.


 Iván Matellanes

 Hi all!

I'm looking forward to contributing to Wine.
My project consists on implementing part of the legacy Visual C++ iostream runtime, which was shipped with Visual Studio versions up to 6.0 and is currently a stub. I'll work on as many functions as time permits, and one of the key points is to reuse code from the modern Visual C++ runtime library that is already implemented.

Some old applications and games (like MS Reader and Tron 2.0) would benefit from this, as they would run with the built-in library. A quick search on Bugzilla for 'msvcirt' shows several bugs related to unimplemented functions.


YongHao Hu

 Hi, all.

Sorry for the late reply. I am happy to join this discussion.

My project focuses on implementing all the functions from tr2 namespace, which was included in the header and being proposed for standardization. Though there are many methods to implement the functions like _File_size and _Equivalent etc, the hard part is finding the most appropriate one.

New applications like MSVC12[1] would benefit from this.

Thank you!


Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.

Friday, May 22, 2015

CodeWeavers CrossOver 14.1.3 has been released

I am delighted to announce that CodeWeavers has just released CrossOver 14.1.3 for both Mac OS X and Linux.  CrossOver 14.1.3 has important bug fixes for both Mac and Linux users.

Mac customers with active support entitlements will be upgraded to CrossOver 14.1.3 the next time they launch CrossOver.  Linux users can download the latest version from

Change Log For CrossOver Mac and Linux :

14.1.3 CrossOver - May 18, 2015

  • Mac OS X:
    • Fixed graphics problems with character models in the game Banished on certain Mac hardware.
  • Linux:
    • Updated the version of the gnutls library we use for compatibility with newer Debian and Ubuntu distributions. This will fix connection issues in Diablo III as well as other possible problems.
Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.

Tuesday, May 19, 2015

PlayOnLinux 5 : We want your opinion!

Edit: apparently there are some people that do not want to play the game and decided to flood the poll. Fair enough. The poll is now closed. Please comment instead.

Hi everybody!
As some of you have heard about it, we are seriously thinking about the future version of PlayOnLinux (a.k.a. PlayOnLinux 5.  The version 4 has a long history and the code contains stuff that makes it very hard to maintain. We really need to have a more stable version if we want to continue to give you the best. If we continue working on PlayOnLinux v4 we are assuming that:
  • PlayOnLinux will no longer have new features
  • PlayOnLinux may become completely broken one day
In this piece of news, I'm going to explain the option we prefer, why are we prefering it and also we are going to ask you if you agree or not.

Please read the whole article before complaining, trolling. It is a really important topic! Once you have read everything and you understand the problem, fell free to send comments and to vote. 

As many of you may have heard, we are seriously thinking about switching from Python to Java. I perfectly understand some concerns and to be honest, I was the first to criticize Java even few months ago.
However there are several reasons that let us think that Java is the right choice for us:
  • Portability: We want PlayOnLinux to be accessible on Linux, FreeBSD, OpenBSD, Mac, ... and why not, being prepared to run on ARM/Android devices later.
  • Maintenability
    • Java do a lot of things to force developers to do things great
    • Java is statically typed. It is a lot easier to do simple task like refactoring, code-checking, ...
    • I have recently discovered the tools that exists Java to measure the code quality and the technical debt and to be honest, it is just impressive. You may have a look at this end of this news (SonarQube)
  • Contributions
    • We've noticed that there were hardly any contribution for PlayOnLinux v4 and we target to make some really infrastructure and guidelines so that everyone contribute. (See "infrastructure" paragraph at the end of this news)
PlayOnLinux is a lot more complex than just a GUI for wine. It is mainly a set of tools allowing you to write very powerful scripts. That is why it is a little more complicated than just a GUI for wine.

Responses to the main concerns

I don't want to install Oracle JDK or any closed program on my computer

We are going to guarantee you that PlayOnLinux v5 is compatible with OpenJDK (GPLv2)

PlayOnLinux will become very slow because Java is very slow

I can ensure you that this is wrong.
Java is a lot faster than Python in general ( Moreover, the v4 branch has a lot of non optimal code. The tests we have already done with Java is showing us than what we have developed so fare behave a lot faster that PlayOnLinux 4. To be honest, there is only one drawback: the JVM takes a little more time to start than the python interpreter.

You should have used QT! That makes more sense.

You may be right, but I'm talking about the language here, not about the graphical interface. So far, we've started to work with OpenJFX:
  • It is Open Source
  • It is customisable with some CSS
  • It supports GPU acceleration
  • We could support different skins for PlayOnLinux or imagine a Steam-Like interface. Everything is possible!
  • It is portable
  • It may not be fully integrated with your Desktop theme
However, the design of PlayOnLinux v5 perfectly allows to implement several user interface and let users chose the one they want. So it is perfectly possible to implement a QT interface with QTJambi for example: (But it is not a priority. A command line interface is more important)

Java applications are ugly, not integrated to the system.

You may be talking about Swing. In our case, we are planning to use different interfaces that look a lot better.

Java is insecure, there are so many security patches

The reason for that is that Java also has a "sandbox" mod which is often used to allow browser to execute some Java code without the approval of the user. We do not want to run PlayOnLinux on your web browser, so that's fine if you disable your browser plugin.

Proposal of a new design

A image is better to start. We plan to replace bash script with python scripts.
  • Python scripts will be directly run by Java (yes it is possible thanks to Jython!).
  • We are going to get a small part of PlayOnLinux v4 code just for backward compatibility (after some cleanup of course)
  • A lot of effort are going to be made to ensure the good quality of the code.

So you plan to run Wine inside Bash inside python inside Java :-O.

Of course not, that is where Jython comes. Jython is not using your system python at all! In fact it is a library that compile your python code into Java class on runtime. Basically, it means than it can just run your python script directly on the Java Virtual Machine without depending on Python. In fact, there will be less layer than there are today because the scripts will be able to execute Java codes directly without needing to create any sockets or other stuff like that.

Tasks that have already been done so far


We have set up two tools:
  • Jenkins ( This tool will periodically run unit tests to be sure that the code stays in a stable state
  • SonarQube ( This tool will periodically scan the whole code to measure its quality. It is a really powerful tool that is giving us precious advice.
  • GitHub (


We have developed the following component as a proof of concept. If you agree with us, we are going to continue on that way to be able to propose you the best version of PlayOnLinux in the next few months.
  • PlayOnLinux core
    • Dependency injection
    • Unit test
  • PlayOnLinux core script management (all keywords are not yet implemented though)
    • PlayOnLinux Python script compatibility
    • PlayOnLinux Legacy (v4) script compatiblity
    • Script exemples
  • Install window (with remote downloading)
  • Other important stuff
    • GPG Script signature check
    • Complete wine registry parser (it means that you are going to be able to browse the registry with a very few line of script)
    • Wine management: Create a prefix with a progressbar, ...
    • Filesystem management (Copy with progressbar, download with progressbar)


So far, I'm pretty confident that this version can perform a lot better than v4.
  • The core we have is a lot faster
  • The scripts are smoother
  • We have a really clean code (for the moment at least)
  • We have a really clean infrastructure
  • Some external people have already shown interest in contributing to v5 code (by sending small patches)
However, I want to have your opinion about this choice. Please send the most comment as you can and talk freely. Please provide arguments with your commentary so that we can progress.

Now the time has come to vote!

Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.

Monday, May 18, 2015

CodeWeavers CrossOver 14.1.3 ChangeLog

CodeWeavers recently released CrossOver 14.1.3 for Linux and Mac. Gaming performance continues to advance with this release. The full change log is provided below.

 You Can use promo code TOM23 in CodeWeavers store and save 20% off the normal retail price.

14.1.3 CrossOver - May 18, 2015
  • Mac OS X:
    • Fixed graphics problems with character models in the game Banished on certain Mac hardware.
  • Linux:
    • Updated the version of the gnutls library we use for compatibility with newer Debian and Ubuntu distributions. This will fix connection issues in Diablo III as well as other possible problems.
Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.

Saturday, May 16, 2015

Oculus Rift to drop support for Mac and Linux but their is still CodeWeavers to fill the gap

Oculus announced today that they will be dropping support for their Virtual Reality Oculus Rift platform on Mac and Linux due to the need to focus solely on the Windows platform for the foreseeable future. Here is the post from the Oculus site giving hardware specifications and the demise of Mac and Linux support.

Powering the Rift

About Atman Binstock:

Atman is Chief Architect at Oculus and technical director of the Rift. Before joining, he was one of the lead engineers and driving forces behind Valve’s VR project, creating the ‘VR Room’ demo that garnered so much excitement at Steam Dev Days. Prior to Valve, Atman led several projects at top companies in the industry including RAD, DICE, and Intel.

 Given the challenges around VR graphics performance, the Rift will have a recommended specification to ensure that developers can optimize for a known hardware configuration, which ensures a better player experience of comfortable sustained presence. The recommended PC specification is an NVIDIA GTX 970 or AMD 290, Intel i5-4590, and 8GB RAM. This configuration will be held for the lifetime of the Rift and should drop in price over time.

The Rift is specifically designed to deliver comfortable, sustained presence – a “conversion on contact” experience that can instantly transform the way people think about virtual reality. As a VR device, the Rift will be capable of delivering comfortable presence for nearly everyone. However, this requires the entire system working well.

Today, that system’s specification is largely driven by the requirements of VR graphics. To start with, VR lets you see graphics like never before. Good stereo VR with positional tracking directly drives your perceptual system in a way that a flat monitor can’t. As a consequence, rendering techniques and quality matter more than ever before, as things that are imperceivable on a traditional monitor suddenly make all the difference when experienced in VR. Therefore, VR increases the value of GPU performance.

At the same time, there are three key VR graphics challenges to note: raw rendering costs, real-time performance, and latency.

On the raw rendering costs: a traditional 1080p game at 60Hz requires 124 million shaded pixels per second. In contrast, the Rift runs at 2160×1200 at 90Hz split over dual displays, consuming 233 million pixels per second. At the default eye-target scale, the Rift’s rendering requirements go much higher: around 400 million shaded pixels per second. This means that by raw rendering costs alone, a VR game will require approximately 3x the GPU power of 1080p rendering.

Traditionally, PC 3D graphics has had soft real-time requirements, where maintaining 30-60 FPS has been adequate. VR turns graphics into more of a hard real-time problem, as each missed frame is visible. Continuously missing framerate is a jarring, uncomfortable experience. As a result, GPU headroom becomes critical in absorbing unexpected system or content performance potholes.

Finally, we know that minimizing motion-to-photon latency is key to a great VR experience. However, the last few decades of GPU advancements have been built around systems with deep pipelining to achieve maximum throughput at the cost of increased latency; not exactly what we want for VR. Today, minimizing latency comes at the cost of some GPU performance.

Taking all of this into account, our recommended hardware specification is designed to help developers tackle these challenges and ship great content to all Rift users. This is the hardware that we recommend for the full Rift experience:
  • NVIDIA GTX 970 / AMD 290 equivalent or greater
  • Intel i5-4590 equivalent or greater
  • 8GB+ RAM
The goal is for all Rift games and applications to deliver a great experience on this configuration by default. We believe this “it just works” experience will be fundamental to VR’s success, given that an underperforming system will fail to deliver comfortable presence.

The recommended spec will stay constant over the lifetime of the Rift. As the equivalent-performance hardware becomes less expensive, more users will have systems capable of the full Rift experience. Developers, in turn, can rely on Rift users having these modern machines, allowing them to optimize their game for a known target, simplifying development.

Apart from the recommended spec, the Rift will require:
  • Windows 7 SP1 or newer
  • 2x USB 3.0 ports
  • HDMI 1.3 video output supporting a 297MHz clock via a direct output architecture
The last bullet point is tricky: many discrete GPU laptops have their external video output connected to the integrated GPU and drive the external output via hardware and software mechanisms that can’t support the Rift. Since this isn’t something that can be determined by reading the specs of a laptop, we are working on how to identify the right systems. Note that almost no current laptops have the GPU performance for the recommended spec, though upcoming mobile GPUs may be able to support this level of performance.

Our development for OS X and Linux has been paused in order to focus on delivering a high quality consumer-level VR experience at launch across hardware, software, and content on Windows. We want to get back to development for OS X and Linux but we don’t have a timeline.

In the future, successful consumer VR will likely drive changes in GPUs, OSs, drivers, 3D engines, and apps, ultimately enabling much more efficient low-latency VR performance. It’s an exciting time for VR graphics, and I’m looking forward to seeing this evolution.

Last week I posted about CodeWeavers en-pending support for Oculus Rift on Mac and Linux see the original post here. So with this lasted announcement from Oculus it looks as tho CodeWeavers is going to be the only game in town to support Rift VR on Mac and Linux for the foreseeable future.

Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.

Thursday, May 7, 2015

CodeWeavers to support Oculus Rift virtual reality headset in CrossOver Linux and Mac

I just seen a Tweet from CodeWeavers that they are working hard on Supporting the upcoming Oculus Rift VR headset in their flagship CrossOver offerings on Linux and Mac. Here is a post from SoftPedia about the Oculus Rift pending release.

After a long wait and plenty of speculation, Oculus has just revealed the highly anticipated consumer version of its Rift virtual reality headset, alongside a firm release period of the first quarter of 2016.
Oculus amazed millions of gamers with the first version of its Rift headset, which brought virtual reality in a pretty great package, and quickly racked up millions in terms of crowdfunding via Kickstarter.
After having unleashed not one but two different developer early versions of the headset, the startup was acquired by social media giant Facebook and started hiring even more experienced staff to help bring the long-awaited consumer version of the Rift to life.

The final Oculus Rift VR headset is coming in early 2016

Now, after we heard a few recent rumors, Oculus confirms on its website that the final version of the Rift has been nailed down in terms of design and will arrive in the first quarter of 2016.
The announcement also confirms that pre-orders for the highly anticipated devices are going to open up later this year so that fans can make sure they get it as soon as possible.

According to Oculus founder Palmer Luckey, the Rift encompasses not only a device but a full virtual reality ecosystem that allows for an optimum experience even for newcomers or less technically skilled users.

What's more, this final version of the device builds on the Crescent Bay prototype by improving the head tracking to allow for seated and standing users, but also comes with a better design and a more natural fit, as you can see in the new render images below.

"The Rift delivers on the dream of consumer VR with compelling content, a full ecosystem, and a fully-integrated hardware/software tech stack designed specifically for virtual reality. The Oculus Rift builds on the presence, immersion, and comfort of the Crescent Bay prototype with an improved tracking system that supports both seated and standing experiences, as well as a highly refined industrial design, and updated ergonomics for a more natural fit," he says.

More details about the hardware, software, and games that will be made for VR using the Rift are set to appear in the near future. The full tech specifications are already scheduled to surface next week.

Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.

Monday, May 4, 2015

The Zen of Rolling Rocks Uphill

From Jon Parshall Blog :

I'm coming up on my 13-year anniversary with CodeWeavers in the next couple months. And the question of the hour is: why did I decide to come to CodeWeavers, rather than staying in my previous role as an IT consultant? And was that a good call, particularly given that my livelihood is connected to an insanely difficult open-source technology like Wine?

The parking lot at CodeWeavers. Note the shocking lack of BMWs and Porsches...
Our fabulous parking lot. Note the shocking lack of BMWs and Porsches...
Flash back to the summer of 2002. I was working as an independent business analyst, doing a gig at a large local real-estate firm. I was making very good money. I was also
absolutely bored to tears. So when Jeremy White came calling, saying he needed a right-hand man to help him run CodeWeavers, and that he couldn't really pay me hardly anything to start, and would I like an "opportunity" like that, I honestly didn't hesitate much before saying "Why, yes! I would love an opportunity to work for an obscure, struggling software company while earning a lot less money, and a lot more aggravation!"

Fast-forward to 2015, and here I am. Still. And CodeWeavers is still doing pretty much the same thing: selling CrossOver. We're making more money, but not tons more. And from a technical perspective, we're still rolling a gargantuan rock uphill. Yeah, Wine has come a long way in thirteen years. It runs a lot more stuff now. But it's still a colossal pain in the butt to improve it. And not only that, but as more people have adopted tablets and smartphones, the importance of the Windows software marketplace has slowly diminished (sort of like my hairline), meaning that the hard work we do is arguably less important now than it was when I came aboard. Isn't that just awesome?

Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.

CodeWeavers CrossOver 14.1.1 has been released

Josh DuBois Sent this message to CodeWeavers Forums

I am delighted to announce that CodeWeavers has just released CrossOver 14.1.0 for both Mac OS X and Linux.  CrossOver 14.1.0 has important bug fixes for both Mac and Linux users.

CrossOver 14.1.0 fixes a bug which prevented the .NET 3.5 run-time from installing.  We have fixed a crash in Outlook and improved connectivity with certain Exchange servers.  On OS X, we have fixed a problem with maximized windows which impacted Quicken.  For users of Ubuntu Linux, we have updated our packaging so that CrossOver installs cleanly on Ubuntu 14.04.2.  We have improved the start-up time of the CrossOver Software Installer on all Linux platforms.

Mac customers with active support entitlements will be upgraded to CrossOver 14.1.0 the next time they launch CrossOver.  Linux users can download the latest version from

 Change Log :

14.1.1 CrossOver - April 21, 2015
  • Mac OS X:
    • We have improved joystick support for several games, including Final Fantasy VII and Vanguard Princess (winmm support was improved, so any game which uses this should benefit).
  • Other changes:
    • Allow a new behavior by setting an environment variable, CX_DIRECT_DESKTOP. Bottles created when this environment variable is set will use the native Desktop directly instead of putting a link to it on the Windows Desktop
Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.