Windows Pretendulation Is Bad Even When Valve Does It

Valve’s Pierre-Loup A. Griffais announced that they’re including their brand new fork of the WINE Windows pretendulator in a new beta product for Steam. They call it Proton. WINE is an open-source Windows API emulation layer that lets Linux users play Windows games without rebooting into Windows. I call this process “pretendulation” because it isn’t emulating the entire operating system, but it is still far from native.

That sounds good, more games for Linux, right?

Well, when I started writing about Linux gaming 18 years ago there was a commercial, closed-source, fork of WINE called WineX. WineX had a lot of fans, it was developed by people who had been working on Wine, which was a more generalized product for Windows software, to target game software. These developers of WineX (later called Cedega) did a good job at writing the software, but it had a number of issues.

One of those WineX issues was that Windows compatibility is a moving target. Any progress the WineX developers made to support new versions of Microsoft’s DirectX game software programming interface were usually still years behind where modern games were. If the latest Battlefield game came out and it only worked with DirectX 8 and WineX was still on 6 or 7, it was going to be a while until they could support that new game.

Even though new DirectX versions are less of a headlining feature in Windows these days, compatibility with a wide range of games is going to be a problem for Valve’s Proton as well. 

Any emulation, or translation, layer, is also going to introduce some amount of performance overhead. You can’t emulate a PlayStation 3 or Dreamcast at full speed on a lot of expensive computers today, but you can buy the original console for $50 that plays those games perfectly. The same issue happens with emulating Windows APIs under Linux. Some games will only have a very small hit to performance, but others might be more of a problem and you won’t get the same framerate that you do under Windows.

So there are compatibility and performance issues, that’s it, right? Nope, there’s one more technical hurdle. When something breaks, you’re not going to know if it’s the game or the emulation layer. I imagine this will infuriate some developers.

Valve claims that games they’ve tested and whitelisted in this beta have an almost identical gameplay experience to Windows, and they acknowledge the performance overhead. Valve doesn’t acknowledge the negative effect this will have on real native ports of games. Back in those WineX days there were some developers and publishers who cancelled their plans for native Linux ports because Windows pretendulation was “good enough” for them, even when Wine or WineX didn’t provide a great experience for players.

“Good enough” Windows API emulation eventually turned into developers porting their games with Wine wrapped up into a library, giving Linux players some of the half-assed ports they have today.

One additional issue that wasn’t a problem with WineX, these improvements to Wine are only designed to work with games on Steam. You won’t be playing Battlefield  5 with Proton. Although Valve’s fork of Wine is open-source, unlike the old WineX fork which had its source closed behind an agreement that the executives at Transgaming later deleted and refused to acknowledge.

Proton is an interesting technology, but a bad thing for anyone who loves Linux gaming and wants native ports of games brought to Linux.

Apple’s “Fuck You” to Mac Game Developers & Players

This wasn’t in the keynote, but Apple had some bad news buried in the “What’s New in macOS” section of their developer site for anyone who makes games or other software with the OpenGL graphics API :

Deprecations and Removed APIs
Periodically, Apple adds deprecation macros to APIs to indicate that those APIs should no longer be used in active development. When a deprecation occurs, it’s not an immediate end of life for the specified API. Instead, it is the beginning of a grace period for transitioning from that API and to newer and more modern replacements. Deprecated APIs typically remain present and usable in the system for a reasonable time past the release in which they were deprecated. However, active development on them ceases, and the APIs receive only minor changes to accommodate security patches or to fix other critical bugs. Deprecated APIs may be removed entirely from a future version of the operating system.

As a developer, avoid using deprecated APIs in your code as soon as possible. At a minimum, new code you write should never use deprecated APIs. And if your existing code uses deprecated APIs, update that code as soon as possible.

Deprecation of OpenGL and OpenCL
Apps built using OpenGL and OpenCL will continue to run in macOS 10.14, but these legacy technologies are deprecated in macOS 10.14. Games and graphics-intensive apps that use OpenGL should now adopt Metal. Similarly, apps that use OpenCL for computational tasks should now adopt Metal and Metal Performance Shaders.

Metal is designed from the ground up to provide the best access to the modern GPUs on iOS, macOS, and tvOS devices. Metal avoids the overhead inherent in legacy technologies and exposes the latest graphics processing functionality. Unified support for graphics and compute in Metal lets your apps efficiently utilize the latest rendering techniques. For information about developing apps and games using Metal, see the developer documentation for Metal, Metal Performance Shaders, and MetalKit. For information about migrating OpenGL code to Metal, see Mixing Metal and OpenGL Rendering in a View.

Apple is already requiring that apps get updated to be 64-bit, or they’ll stop working in a future update.

As much as I loathe John Carmack today, and it certainly didn’t help that he decided to write this on Facebook, he recently wrote about how he persuaded Steve Jobs to support OpenGL on the Mac:

I was brought in to talk about the needs of games in general, but I made it my mission to get Apple to adopt OpenGL as their 3D graphics API. I had a lot of arguments with Steve.

Part of his method, at least with me, was to deride contemporary options and dare me to tell him differently. They might be pragmatic, but couldn’t actually be good. “I have Pixar. We will make something [an API] that is actually good.”

It was often frustrating, because he could talk, with complete confidence, about things he was just plain wrong about, like the price of memory for video cards and the amount of system bandwidth exploitable by the AltiVec extensions.

But when I knew what I was talking about, I would stand my ground against anyone.

When Steve did make up his mind, he was decisive about it. Dictates were made, companies were acquired, keynotes were scheduled, and the reality distortion field kicked in, making everything else that was previously considered into obviously terrible ideas.

I consider this one of the biggest indirect impacts on the industry that I have had. OpenGL never seriously threatened D3D on PC, but it was critical at Apple, and that meant that it remained enough of a going concern to be the clear choice when mobile devices started getting GPUs. While long in the tooth now, it was so much better than what we would have gotten if half a dozen SoC vendors rolled their own API back at the dawn of the mobile age.

While OpenGL isn’t going away immediately in macOS Mojave, when it is finally gone there will be many fewer games on macOS, it has been the only portable graphics API available for developers to bring their games to Linux and macOS, as well as other platforms, for decades.

Without OpenGL on macOS the Mac and Linux will both suffer, as will new platforms. They’ll have a harder time getting games and other software when bigger platforms are locked to vendor-specific APIs like Metal instead of cross-platform ones like Vulkan and OpenGL.

If I had to guess, I would hope that Valve will ship an intermediary layer to translate OpenGL calls for games on Steam, and hopefully they will make this software available for everyone else. There are already some other projects to translate OpenGL to platform-specific calls but it’s not going to be easy for games to support them. It’d be better if these projects had something to handle the translation on-the-fly. It’s also entirely possible that Valve will just give up on older games supporting modern versions of macOS after Apple fully deprecates OpenGL.

I don’t envy anyone trying to support old software and write good OpenGL drivers like Apple has (even when they don’t update their OpenGL support for years), but the deprecation of OpenGL is a real “Fuck You” to game developers and players unlike any other. Games getting updated from 32-bit to 64-bit, as well as going through the process of having any kind of graphics portability layer added on top, seems unlikely. Thousands of games are going to be lost to time when OpenGL dies off. Competition with popular hardware and software platforms will be even more difficult. I understand the desire to get rid of technical debt, but this is bad.

Joakim Sandberg’s Iconoclasts Out on Steam, PS4, Vita

It can be pretty frustrating to find out that something you want to fix is difficult or impossible to repair. Glued-on screens cover batteries that are all custom fit inside small cases that prevent curious people from learning how things work and fixing problems with their devices. Iconoclasts from Joakim Sandberg takes that a step further, it’s a world where a mechanic, Robin, finds that her profession is outlawed. Your mission is to get Robin and her friends together to fix things in what looks like a bit of a metroidvania side-scrolling action-adventure with a Metal Slug-y vibe to the art.

Andy Kelly likes it:

Iconoclasts is a fine game, offering both satisfyingly sharp platforming and shooting, and some really smart puzzles. It’s enormous too, packed with secret areas and other stuff to discover. And although I found the humour a little glib and childish at times, it tells its heartfelt story well. A lot of Metroidvania games go for a bleak, downbeat atmosphere, but Iconoclasts is infectiously vibrant and sunny, even if the story does occasionally venture into dark territory.

Iconoclasts is out now for $20 on Steam on Windows, macOS, and Linux, gog (same platforms)as well as the PlayStation 4 and Vita.

Meltdown & Spectre: Update Everything

There are two big computer vulnerabilities that were announced recently, Spectre and Meltdown attacks. These are significant because they affect almost every desktop, laptop, smartphone, tablet, and game console. Almost anything with a processor can be exploited to give attackers passwords and whatever other private information is on a device.

The attacks work because of the way that computer processors attempt to speculatively work ahead of their current point in executing a computer program. My understanding is that even code executed in your web browser could execute these attacks.

There are already patches available through Apple operating systems, Microsoft’s Windows, some Android devices, and many Linux operating systems.

The workarounds that operating systems are implementing may slow these devices down because the attacks utilize performance features of the processors, but the performance effects of the mitigation might not be noticeable outside of specific workloads.

Bruce Schneier:

These aren’t normal software vulnerabilities, where a patch fixes the problem and everyone can move on. These vulnerabilities are in the fundamentals of how the microprocessor operates.

It shouldn’t be surprising that microprocessor designers have been building insecure hardware for 20 years. What’s surprising is that it took 20 years to discover it. In their rush to make computers faster, they weren’t thinking about security. They didn’t have the expertise to find these vulnerabilities. And those who did were too busy finding normal software vulnerabilities to examine microprocessors. Security researchers are starting to look more closely at these systems, so expect to hear about more vulnerabilities along these lines.

Super NES Classic Edition Stuff

SNES Box image via Nintendo

The Super NES Classic Edition is out for $80, Chris Scullion has a review of the Brit version which looks a little different externally and in the menu, but is functionally identical, to the US version:

The only main problem I have with the SNES Mini is how important the Reset button on the console is. Any time you want to change a game, save your state, load a state or rewind you have press the physical Reset button on the SNES Mini.

[…]

A button combo would’ve been a better way of doing this. It could be a complex one to avoid accidental restarts: most Game Boy games back in the day could be reset by pressing A + B + Start + Select, there’s no reason why that shouldn’t have been possible here.

That niggle aside, I’m happy with the way each game is handled here. They look great – even though it only outputs at 720p, on my 4K TV they still look crisp – they sound great, and they play great.

I think it is odd that in some places Nintendo have decided to straight out call it a “mini,” as Chris’ box shows:

Well at least we get our more hideous miniaturized console with buttons that lack colour.

Eurogamer’s John Linneman confirms that the tech inside is exactly the same as the NES Classic Edition:

The fact that the SNES mini runs on the same hardware as its predecessor has a number of implications. Among them, we can expect hackers to be looking to exploit the system in short order to add new games – exactly what happened with the NES mini. And secondly, the use of what is essentially the same technology makes it much easier for Nintendo to resume NES mini production.

The only game exclusive to the Super Nintendo Classic Edition is Star Fox 2, Christian Donlan has a review:

Star Fox 2 is an unusual game, an astonishingly inventive sequel that built on the combat and visual thrills of the first Star Fox but wasn’t afraid to experiment with the structure. Rather than starting you at one end of a space map and asking you to pick your route to the far side, choosing from missions that can eventually be all but committed to memory through sheer repetition, you’re suddenly protecting Corneria, your home world, from an ongoing attack from big villain Andross and the attack pretty much plays out in real time. Andross builds bases on nearby planets, and he has cruisers headed for you and IPBMs launching every few minutes. Your job is still to get across the map to take out Andross directly, but you have to respond to other things as they happen. Those cruisers! Those missiles! These are all problems that compete for your time and there’s a panicky thrill in knowing that if you head for a planet to take on an entrenched baddy, there will be missiles still snaking through space towards Corneria, launched from other points. Throughout this wonderfully breathless game, you are asked to think on the fly, and to dash headlong between danger zones, constantly prioritising threats.

The hackers are working on updating hakchi2 for the SNES Classic Edition so that you can load your own ROMs on to the system. Legally backed-up from your own cartridges or downloaded and deleted within 24 hours, of course.

I’m waiting for delivery of SNES Mini now, it will be delivered tomorrow. Seems like hakchi and hakchi2 will require some minor changes to work with SNES Mini. So please wait little more.

They might also be able to fix it so we don’t need to get off the couch to reset the console and access save states. Here’s hoping.

But if you’re going to go that far you almost might as well just listen to Seth Macy with his hilarious article titled “Why Spend $80 on an SNES Classic When You Can Install Emulators on a Raspberry Pi and Never Shut the Fuck Up About It?”:

Nintendo’s highly coveted SNES Classic Mini system comes out today and is certain to be a hot item. A word of advice to gamers who aren’t able to land an SNES Classic: did you know you can just buy a Raspberry Pi and remind people at every opportunity how much fucking better you are for it?

After the NES Classic Edition was announced and became immediately  impossible to find I attempted to do exactly what Macy is joking about by setting up a Raspberry Pi with emulators and it is indeed still a pain in the ass. It’s great that these classic NES and SNES consoles have embedded Linux at their core, but Nintendo have done so much work to obscure that core from their users and make things easy.

That hard work is exactly what has always been missing from any Linux distribution on a single board computer like the Raspberry Pi or desktops and laptops. I have the patience to use this software and fix it when it breaks but this is never as easy as using a Classic Edition. Hopefully Nintendo lives up to their promise and produces enough to go around.

Steam Has Over 3000 Linux Games

Liam Dawe:

Steam has hit another milestone for Linux games. We now have over 3,000 Linux games to fill our time with. The exact count for me right now is 3,008!

An impressive number of games with Linux support. I wonder how many are native ports versus Windows pretendulation.

My search comes up with 3164 for Linux and 13433 total games on Steam.

Regular Human Basketball

Powerhoof, the creators of Crawl, put out Regular Human Basketball back at the end of May 2015 and I just found out about it:

It’s local multiplayer, for 2-10 players, and it really is an explosively ordinary game of basketball, with absolutely nothing weird going on and DEFINITELY no giant robotic death machines!

It looks very fun and regular humans can freely download it on itch.io for Windows, Mac, and Linux. Definitely don’t download it if you’re a giant robotic death machine.

Are Steam Machines a Failure After Only 7 Months?

Valve’s first foray into home computing hardware, the Steam Machine collaborations with various computer makers, have sold fewer than 500,000 units since they were released last November. A figure estimated by Ars Technica via the number of Steam Controllers sold which includes Steam Machines as a portion of that total:

Half a million might not sound like a bad sales number for a brand new hardware platform, but it starts to look pretty tepid in the context of the wider gaming market. Both the PlayStation 4 and Xbox One sold over a million consoles in their first day on the market in 2013. After just over seven months on store shelves, Microsoft was up to about 5.5 million Xbox One sales and the PS4 had racked up 10.2 million worldwide sales. That’s what a successful gaming hardware launch looks like these days.

Valve is often guilty of starting something and then just giving up on it without iterating to find success. Their cousins at Microsoft would have had the same issue if they gave up on the original Xbox which sold only 24 million consoles over its first 7 years and was another system frequently referred to as a failure.

Sales figures of hardware over the course of a few months aren’t necessarily going to make or break a company, but I believe that Valve still needs SteamOS.

Quantum Break, the remastered Gears of War: Ultimate EditionForza Motorsport 6: Apex, the upcoming games Halo Wars 2 and ReCore are all exclusive to Windows 10’s built-in app store. SteamOS and Steam Machines continue to be a hedge against Microsoft’s built-in Windows app store restrictions that Valve will need to remain competitive in the event of even more anti-competitive changes to Windows.

Liam Dawe of Gaming on Linux is right on about the lack of advertising hurting sales of the nascent Steam Machines and SteamOS/Linux games:

We are facing real issues, like a lack of bigger platform-pushing titles and performance. Valve do need to up their own advertising a bit too, not just of Steam Machines, but of new Linux releases. They give big homepage banners to plenty of new Windows releases, but only a few SteamOS releases have been graced with such advertising. Valve haven’t even managed to get their own VR device with HTC on Linux yet, they need to up their own game.

Today in Payphone News

The aforementioned payphone

jwz’s payphone runs Linux now:

One of the props that I picked up to decorate DNA Lounge at the first Cyberdelia was an old payphone. It wasn’t hooked up for the first party, but just in time for the second party, it now runs Linux.

When I was trying to decide what I wanted the phone to do, “making phone calls” was obviously the least useful thing. Nobody needs that: that’s why payphones are extinct in the wild. It’s also why we no longer have Internet kiosks.

So instead, when you pick up this phone, it “rings” and connects you to a “voicemail” system. Press 1 to listen to our schedule of upcoming events (the same message you hear when you call us at 415-626-1409); press 2 to listen to your saved messages; press 3 to record a message.

Here is the sordid tale of how I made a payphone run Linux. I’m not so great at hardware hacks, and it shows. My bumbling exists for your amusement.

1,800 Games On Steam for Linux

Turns out, we’re up to 1,800 games on Steam that run under Linux. It’d be great to know how many of those are vegan, charlotte/georgia-based, handcrafted, locally-sourced, artisanal, native ports and how many are pretendulated, factory-farmed, gmo-enhanced, toxic garbage from Virtual Programming.