Jul 122017
 

Windows XP dark age logoI thought about writing something like this for a while now, so here it is. A list of games that don’t officially work on XP / XP x64, but still do. Either out of the box or by using some slight modifications or by using real binary hacks and stub DLLs. This list is by no means complete, it’s basically just the stuff I stumbled over. Some of the games will require slightly more complex solutions, for which individual guides already exist, either here or elsewhere. I won’t describe the procedures again, but just link to the corresponding information where necessary.

Where known, the game engine used by a title will also be listed, because games using the same engine can sometimes be persuaded to work in the same way.

Since my Anime (and Manga and visual novel) infection has already spread throughout my brain completely while creating fatal degeneration in the process, I had to split this article into four categories, to better suit peoples’ interests – 1 and 2 are almost the same though:

  1. Western games
  2. 64-bit games officially supported on XP x64
  3. Weird Japanese shit
  4. Visual novels (which by definition are often also weird Japanese shit)

Platform compatibility information was mostly taken from Valve Steam, so the operating system requirements specified here might not always match those listed at other websites selling those games.

I’m actually planning on keeping this list up to date as time progresses!

Ok, let’s start:

1. Western Games

Here’s the normal stuff:

Dishonored logo1a. Dishonored

Claims: Windows Vista
Developer & Engine: Arkane Studios, Unreal Engine 3
Requirements: None; Runs out of the box on XP & XP x64
Compatibility confidence: Maximum; Several playthroughs on XP completed, likely no more development
Genre: First Person Rogue (Steampunk setting)
Synopsis: See [Wikipedia]
Notes: It’s a dark, very much steampunk, interesting parallel world setting. Features a world that changes subtly based on the characters’ actions. The sequel will no longer work on XP. Runs fine even with mid-range hardware from around 2015 or so.

 

Legend of Korra logo

1b. Legend of Korra

Claims: Windows Vista
Developer & Engine: PlatinumGames, using their in-house PlatinumGames Engine
Requirements: None; Runs out of the box on XP & XP x64
Compatibility confidence: Fair; Only brief tests carried out, no playthroughs
Genre: Beat ’em up
Synopsis: See [Wikipedia]
Notes: It may look animeish at first, but is actually a US-made game.

 

Life is strange logo

1c. Life is strange

Claims: Windows Vista
Developer & Engine: Dotnod Entertainment, Unreal Engine 3
Requirements: None; Runs out of the box on XP & XP x64
Compatibility confidence: Fair; Only brief tests carried out, no playthroughs
Genre: Graphic adventure
Synopsis: See [Wikipedia]
Notes: It’s an episodic series, and I’ve only covered the first part.

 

Master of Orion (2016) logo

1d. Master of Orion

Claims : Windows 7 64-bit
Developer & Engine: NGD Studios, Unity Engine 5.2
Requirements: 64-bit; Will work on XP x64, but not on XP 32-bit, as it’s a true 64-bit binary.
Compatibility confidence: Fair; Only brief tests carried out, no playthroughs
Genre: 4X strategy
Synopsis: Not much to say here, it’s once again a turn-based game about conquering the galaxy.
Notes: This is about the 2016 version; A classic returns, well, at least almost. Requires fairly powerful hardware.

 

Mechwarrior Online logo

1e. Mechwarrior Online

Claims: Windows 7
Developer & Engine: Piranha Games, CryEngine 2.5 – 3
Requirements: Steam version; The regular game launcher won’t work.
Compatibility confidence: High; played for hundreds of hours, but there is a lot of active development, so the more distant future is rather uncertain, hence no “Maximum” confidence.
Genre: Tactical combat simulator
Synopsis: At the beginning of the clan invasion, the player – whether on the side of one of the Inner Sphere Houses or any of the Clans – is thrown into Battletech warfare.
Notes: They have just launched their new game launcher, which is now built with .Net 4.5.2, which doesn’t work on XP. So now, the only way is via the Steam platform. Until their single player title comes out, this is the latest and greatest from the Battletech universe, and it sticks to the canon rather strictly as well. Requires very powerful hardware even on XP, especially on the GPU side of things. Better use top end stuff. Note that it does automatically launch the 64-bit version when on XP x64.

 

Stellaris logo

1f. Stellaris (also applies to: Europa Universalis 4, Hearts of Iron 4 and Crusader Kings 2)

Claims: Windows 7
Developer & Engine: Paradox Development Studio, using their in-house Clausewitz Engine
Requirements: Stub DLL hack; Missing Win32 API / Kernel API function calls, requires UncleVasyas’ (Oleg Ovcharenkos’) XP hack: [Link].
Compatibility confidence: Low; Haven’t tested this myself at all, as I do not yet own the game. However, given users’ reports and when looking at results when using Olegs’ patch on other games, this will very likely work just fine.
Genre: 4X strategy (Stellaris)
Synopsis: See [Wikipedia] (Stellaris)
Notes: May buy this in the future. Requires very powerful hardware, even on XP. Better get ready to use the fastest stuff XP / XP x64 can support in terms of CPU and GPU.

 

XCOM logo

1g. XCOM: Enemy Unknown (also applies to: XCOM: Enemy Within)

Claims: Windows Vista
Developer & Engine: Firaxis Games, Unreal Engine 3
Requirements: Stub DLL hack; Missing file I/O function calls that are available via Microsofts’ backported fileextd.dll. Required hacks by KawaiiSara (32-bit) and ScavengerSpb (64-Bit) described [here] for XCOM: Enemy Unknown and [here] for XCOM: Enemy Within.
Compatibility confidence: High; No full playthroughs, but played for several hours
Genre: Strategy
Synopsis: See [Wikipedia]
Notes: This was one of the early binary hacks for Games on XP. This is mostly just because the developer didn’t care about properly including fileextd.h, as well linking against and deploying fileextd.dll. Requires fairly current hardware.

 

2. 64-bit Games officially supported on XP x64

This is a special category for games that do support Windows XP – either only in its 64-bit incarnation, or with a specific port supporting the 64-bit version of the OS officially. Because of this, the “compatibility confidence” rating is being omitted.

Vities Skylines logo

2a. Cities Skylines

Claims: Windows XP x64 Edition
Developer & Engine: Colossal Order, Unity Engine 5.x
Requirements: 64-bit
Genre: Construction & Management Simulation
Synopsis: Build a huge freaking city, what else?
Notes: Requires powerful hardware, not matter which OS you’re using. Better prepare a fast multi-core CPU and a lot of RAM, like 8GB+.

 

X-Plane 10 logo

2b. X-Plane 10

Claims: Windows XP or Windows XP x64 Edition
Developer & Engine: Laminar Research, using their in-house X-Plane 10 core engine
Requirements: None; Runs out of the box on XP & XP x64
Genre: Flight simulator
Synopsis: Fly planes. Huh.
Notes: Depending on what you’re doing this might require a ton of CPU horsepower and 4GB+ of RAM. The sequel will no longer work on XP / XP x64 due to requiring a more modern Direct3D API.

 

3. Weird Japanese shit

Well, Japanese stuff is… different. Sometimes in good ways. Sometimes in bad ways. And sometimes in weird ways. Let’s go:

A Magical Highschool Girl logo

3a. A magical high-school girl / 魔法の女子高生

Claims: Windows XP / XP x64 (So why is this game listed here? See below, it’s basically a reversed case…)
Developer & Engine: illuCalab, Unity Engine 5.4
Requirements: None; Is partially broken out of the box on XP & XP x64 though.
Compatibility confidence: Low; Played for many hours and it works, but audio is broken and will likely remain in this state.
Genre: ARPG, somewhat rouge-like
Synopsis: See [Steam]
Notes: This is an oddball. It actually specifies Windows XP, but its audio component is built with .Net 4.5, which is not available on XP / XP x64. It still works, but without sound. If you still want to play this on XP, I’d suggest you prepare a good music playlist to run in the background. You’ll have to make the “swooosh”, “zap” and “booom” sounds by yourself though. ;) It’s actually a pretty intelligent game, where spellcrafting works via some AI code that interprets the spell names you type in when creating a new one. Fun fact: Naming a spell “Nagasaki” creates a fire bomb type spell. Talk about political correctness, heh…

 

Crush Crush logo

3b. Crush Crush

Claims: Windows 7 SP1
Developer & Engine: Sad Panda Studios, Unity Engine 5.4.1
Requirements: None; Runs out of the box on XP & XP x64
Compatibility confidence: Fair; Only brief tests carried out, no playthroughs
Genre: Clicker, Yuri
Synopsis: See [Steam]
Notes: It’s probably as bad as its logo suggests. While being a clicker you’re supposed to be able to flirt with or date girls, no idea. I only picked this up because it’s supposed to contain Yuri content (Girls Love). I might never really play this, but at least it’s free, so you got nothing to lose.

 

Hyperdimension Neptunia logo

3c. Hyperdimension Neptunia Re;Birth 1, 2 & 3 V Generation / 超次次元ゲイム ネプテューヌRe;Birth1, 2 & 3 V Generation

Claims: Windows 7 64-bit
Developer & Engine: Idea Factory, Compile Heart & Felistella, Sony PhyreEngine
Requirements: None; Runs out of the box on XP & XP x64
Compatibility confidence: High; Played for quite a while without issues, no complete playthroughs though.
Genre: JRPG
Synopsis: See [Wikipedia]
Notes: Runs with OpenGL 3.3 if modern Direct3D isn’t present, which allows the 3D renderer to work on XP. All the other components are fine with DirectX 9.0c. The later Neptunia versions (basically all which are asking for Direct3D 11) dropped support for OpenGL, so any version asking for D3D11 should no longer work on XP.

 

Valkyria Chronicles logo

3d. Valkyria Chronicles / 戦場のヴァルキュリア -Gallian Chronicles-

Claims: Windows Vista
Developer & Engine: SEGA, CANVAS Engine
Requirements: None; Runs out of the box on XP & XP x64
Compatibility confidence: Fair; Only brief tests carried out, no playthroughs
Genre: Strategy RPG
Synopsis: See [Wikipedia]
Notes: I should really play this! It seems to be a somewhat WW1/WW2ish game, and looks pretty good.

 

4. Visual Novels

Like “graphical novels”, these are crossovers between books and games, somewhat like those multi-branching adventure books for kids you might or might not know. VNs usually tend to require a fair amount of Japanophilia on behalf of the player / reader, at least sometimes. Most are distinctly Asian after all. There are two rough categories: 1.) Typical Visual Novels with a branching decision tree that allows the player to reach different story paths and endings and 2.) Kinetic Novels, that do not allow the player to make any choices, but instead focus on telling a single story as well as possible.

As all of them fall into a single genre (visual novel), the “Genre” part will be replaced with “Subgenre”, like “drama” or “Comedy” or something similar.

Let’s go:

Chuusotsu First Graduation: Time after Time logo

4a. Chuusotsu – 1st Graduation: Time after Time / ちゅーそつ! 1st graduation

Claims: Windows Vista
Developer & Engine: Studio Beast, KiriKiri Engine
Requirements: None; Runs out of the box on XP & XP x64
Compatibility confidence: Fair; The game hasn’t been released at the time of writing, but brief tests have been done running the demo without problems so far. The release is expected some time in Q4 2017.
Subgenre: Cute Slice of Life, Sterile Dystopia with social commentary (afaik)
Synopsis: See [Kickstarter]
Notes: I actually backed this. I like this kind of “no personal freedom” kind of sci-fi setups, where certain individuals struggle with their lack of free choice or expression of opinion. This title might be a lot less serious though, I simply don’t know yet.

 

Fatal Twelve logo

4b. Fatal Twelve / フェイタルトゥウェルブ

Claims: Windows 7
Developer & Engine: Aiueo Kompany & Sekai Project, Ren’Py Engine (Python 2.7)
Requirements: None; Runs out of the box on XP & XP x64
Compatibility confidence: Fair; The game hasn’t been released at the time of writing, but like with Chuusotsu, brief tests have been carried out on the demo without problems. The release is expected on 2018-01-01.
Subgenre: Mystery, supernatural, Yuri
Synopsis: See [Kickstarter]
Notes: I saw it’s graphical style, and I knew I had to back this. It looks rather well made, visually at least. Should contain lots of Yuri elements, which is always a reason for buying pretty much anything!

 

Flowers -le Volume sur Printemps- logo

4c. Flowers -Le volume sur Printemps-

Claims: Windows Vista
Developer & Engine: Innocent Grey, unknown engine
Requirements: None; Runs out of the box on XP & XP x64
Compatibility confidence: Maximum; Full playthrough completed, several parts replayed.
Subgenre: Yuri Drama, Slice of Life
Synopsis: Our protagonist Suoh – which suffers from pretty intense social anxiety – changes schools, right into a classy christian, private all-Girls school. The story follows her finding her first friends (and more than that) as well as her opening up to the people around her.
Notes: No explicit stuff, so this is on the softer side of Girls Love. It does feature drama as well. Note that this is a longer VN, but still only the first part of a four-part series. Each part is supposed to represent a season – spring, summer, autumn and winter, both in actual time of the year as well as the maturation of the characters. Rather lengthy, ~20 hours. Part 2 will come out soon (likely this month), and will be tested immediately after release!

 

Chusingura46+1 S logo

4d. ChuSingura46+1 S / 忠臣蔵46+1

Claims: Windows 7
Developer & Engine: inra, Unity Engine 5.4
Requirements: 64-bit; Will work on XP x64, but not on XP 32-bit, as it’s a true 64-bit binary.
Compatibility confidence: Fair; Only the first part has been tested, and only very briefly.
Subgenre: No idea. There are tons of Samurai girls, and that’s all I know.
Synopsis: See [Steam]
Notes: As said, only the initial free-to-play part has been tested, so I don’t know about chapters 2-5.

 

Kindred Spirits on the Roof logo

4e. Kindred Spirits on the Roof / 屋上の百合霊さん

Claims: Windows Vista
Developer & Engine: Liar-soft, codex RScript Engine
Requirements: None; Runs out of the box on XP & XP x64
Compatibility confidence: Maximum; Full playthrough completed.
Subgenre: Yuri, Slice of Life
Synopsis: Happens that for some reason our protagonist (a girl, like all characters here) is sensitive to the supernatural and hence manages to make contact with the two ghosts on the roof of the school. Those happen to have watched many a bad outcome when it comes to romances at the school, unable to intervene for decades. Now that they can talk to a living person for the first time, they’ve picked you to become their “tool” to “get those girls together”.
Notes: Does feature sex scenes, but they’re rare and not overly explicit. Its a longer Yuri VN, and despite having a few steamy moments, I’d still call this one “soft and sweet”. Gives you a good 20 hours of girls getting closer to girls!

 

Ne no Kami: The two Princess Knights of Kyoto logo

4f. Ne no Kami: The two Princess Knights of Kyoto / ねのかみ 京の都とふたりの姫騎士

Claims: Windows 7 / Windows Vista in the Readme file, noting that “XP may work, but it’s untested”
Developer & Engine: Kuro Irodoru Yimiji, Artemis Engine w. m-kz / iMel
Requirements: None; Runs out of the box on XP & XP x64
Compatibility confidence: Maximum; 1½ playthroughs completed, both the censored and uncensored versions have been extensively tested.
Subgenre: Yuri, Supernatural
Synopsis: Our girl – despite being the long-time love interest of a rather well-endowed certain someone that will become really important in this story – is being abducted by her own friend to become a wielder of ancient, divine powers that are meant to be used to battle forces once again threatening to invade the Earth from some demonic realm.
Notes: This game knows how to smear the borders between good and evil. The more you learn, the less clear it becomes which side is really in the right and which isn’t. I like that way of world building and story development. This game does feature one explicit scene, which I found to be rather annoying. You can still play the censored version though. The sequel should be nearly completed now, it had to be delayed due to the unfortunate death of one of the lead voice actresses. :(

 

Nekopara logo

4g. Nekopara / ネコぱら

Claims: Windows Vista
Developer & Engine(s) NEKO WORKs, TCP(KiriKiri) or KiriKiri Z (unclear which one) Engine for Vol.0-2, Ares CatSystem2 Engine for Vol.3
Requirements: .exe unpack and binary header hack for the patches of Vol.1-2, Vol.3 itself needs an additional stub DLL hack on top of that, which is based on Oleg Ovcharenkos’ work for Stellaris, etc. When running the Steam version, Vol.3 also needs a Steamless hack to decrypt/unpack the SteamStub DRM so the stub DLL hack may be applied. The whole procedure from A to Z is documented [here]. Thanks fly out to Oleg for his help with Vol.3!
Compatibility confidence: High; No complete playthroughs through Vol.3 yet, but a lot of shorter test runs. Plus “I just have a good feeling about this” for some undefined reason. Vol.0-2 have a rating of Maximum.
Subgenre: Harem, dating simulator, Eroge
Synopsis: Tons of catgirls working in your bakery. Catgirls in heat (this turns into something very, VERY explicit, if you happen to have the uncensored version). Other than that, just cute catgirls that you can pet and play around with. Also: Minor character development.
Notes: This game will defile you. If you’re new to this stuff, it may redefine your understanding of how perverted Japanese shit can really be. Unless you play the pure, censored version.

 

Neko-nin exHeart logo

4h. Neko-nin exHeart / 猫忍えくすはーと

Claims: Windows 7
Developer & Engine: Whirlpool, YU-RIS Engine
Requirements: None; Runs out of the box on XP & XP x64
Compatibility confidence: Maximum; Complete playthrough without hiccups
Subgenre: Supernatural
Synopsis: There were once powerful catgirl ninjas (don’t switch your brain on please, you really don’t need that piece of equipment here) serving their human masters, but no more. It seems nobody needs their personal kitty ninjas these days. Nevertheless, two of them just show up one day declaring they would serve you (heh, right) as their new master, while you weren’t even aware catgirls existed. Or ninjas. Or ninja catgirls.
Notes: It ain’t great, but it’s cute, even if rather short. Bought this out of frustration during a time where Oleg Ovcharenko hadn’t yet helped me with hacking Nekopara Vol.3.

 

Nurse Love Addiction logo

4i. Nurse Love Addiction / 白衣性愛情依存症

Claims: Windows 7
Developer & Engine: Kogado Studio, unknown engine
Requirements: None; Runs out of the box on XP & XP x64
Compatibility confidence: Maximum; Complete playthrough without any issues
Subgenre: Yuri, Drama
Synopsis: Dragging her long-time friend along with her, our protagonist decides to become a nurse, hence entering a nursing school. But will she be ready for what she got herself into?
Notes: Don’t rush into this one thinking you’re going to get sweet, fluffy Yuri. This game looks like it, but it turns out to be quite dramatic and depending on how you approach the setting, it may hit you rather hard. Better keep that in mind, this VN is not as light-hearted or superficial as it may look on the surface. Easily goes on for 10+ hours as well.

 

Panzermadels logo

4j. Panzermadels

Claims: Windows Vista
Developer & Engine: DEVGRU-P, TyranoScript Engine
Requirements: Special launch condition; Works only when launched outside of Steam (with Steam still running in the background, you just have to click the .exe file directly instead of launching it from within the Steam client application).
Compatibility confidence: Maximum; Multiple complete playthroughs without any problems
Subgenre: Tank dating simulator (don’t ask…)
Synopsis: It’s so stupid, why don’t we just skip this?
Notes: The crown jewel of stupidity. You’re dating girls… who are tanks. I mean, in this game you can get court martialed for “doing sexual stuff with military equipment”. It’s still plenty of fun though, maybe because of it being so stupid. Just drink a beer or three while playing this and it’ll be fine! ;) Ah, by the way: This is not actually Japanese-made, the developers originate from the UK I believe. Also, this game was only meant as a short joke anyway.

 

Planetarian logo

4k. Planetarian ~The Reverie of a little Planet~ / Planetarian ~ちいさなほしのゆめ~

Claims: Windows Vista
Developer & Engine: Visual Art’s & Key, RealLive Engine
Requirements: None; Runs out of the box on XP & XP x64
Compatibility confidence: Maximum; Complete playthrough without problems
Subgenre: Postapocalyptic drama, Kinetic Novel
Synopsis: It’d be on the lengthy side, so see the [Wikipedia] instead
Notes:

I have not yet tested the newer “HD” version on Steam, which claims Windows 7, but only the regular version. The HD version will be tested in the future*. This is simply one of the best VNs I have ever played, despite it’s age and respectively lower visual quality. Its dark, hopeless and yet intriguing postapocalyptic world just draws you into this 2 character piece like few other VNs manage. Prepare your tissues however, this is a drama after all. Thumbs up for a VN that manages to do so much world building in such a short time (you’ll complete this in 3-5 hours).

*Update: …as soon as there is a version with English or German text. Currently it’s Chinese only.

 

Season of 12 Colors logo

4l. Season of 12 Colors / 十二色的季节

Claims: Windows 7 SP1
Developer & Engine: Juziban, BK Engine
Requirements: None; Runs out of the box on XP & XP x64
Compatibility confidence: Fair; Only brief tests completed, no playthroughs
Subgenre: Unsure, but not a drama? Seems to feature a slow, soft narrative…
Synopsis: See [Steam]
Notes: Rather untouched yet, I might play this in the not-so-near future. It’s supposed to have “healing” effects, so I guess it’s soothing to the mind.

 

Steins;Gate logo

4m. Steins;Gate

Claims: Windows 7
Developer & Engine: 5pb. Games & Nitroplus, Infinity Engine
Requirements: None; Runs out of the box on XP & XP x64
Compatibility confidence: Fair; Only brief tests completed, no playthroughs
Subgenre: Drama, time travel
Synopsis: See [Wikipedia]
Notes: Only the original DVD version has been tested, but not the Steam “HD” version. I haven’t really played this much yet, but it’s supposed to be one of the best visual novels ever. Remember how great the Anime was? It’s based on this game.

 

VA-11 HALL-A logo

4n. VA-11 HALL-A (“Valhalla”)

Claims: Windows 7
Developer & Engine: Sukeban Games, GameMaker C++ Engine
Requirements: Special launch condition; Requires the renaming or removal of the GameMaker engine component library GMResource.dll in the games’ root folder to execute without fatal errors. Works for all versions (original, Steam & GOG).
Compatibility confidence: Low; Only few tests completed, some basic gameplay, file I/O etc. The game does still reproducibly crash upon exit because something goes wrong with its use of Direct3D, which is by no means critical, but gives me a bad feeling about this. Really needs a playthrough to raise confidence.
Subgenre: Cyberpunk Dystopia, Yuri, Kinetic Novel
Synopsis: You’re a bartender girl in a dystopian cyberpunk world, taking good care of your patrons while listening to the stories they have to tell while drinking.
Notes: XP compatibility for this VN [was requested by Konstantin] in the comment section of the Nekopara Vol.3 hack. Well, barkeepers are cool, always wanted to play one in a game, because usually, you only meet them, but they’re never the stories’ protagonists. This title is supposed to have several Yuri characters as well, including yourself. I’m unsure how much drama there is though… Also: The game suggests you “get a drink and a few snacks” and chill out while reading / playing this – nice! :)

 

That’s it for now, but there might be more to come!

Jul 072017
 

Nekopara Vol.3 logo1. Introduction

Of course I would never play something like Nekopara *cough*, so this is just a post describing a technical solution to a compatibility problem! Ok?! Good.

Yeah, it’s another one of those “something broke on XP / XP x64, so let’s fix it” articles. I’ve already been pla…  eh.. investigating Nekopara Volumes 0, 1 and 2, and while the developer claims it needs Windows Vista or higher, those titles worked just fine on XP and XP x64. The final Volume 3 however broke.

I wondered why, given they’re all pretty similar, so I started unpacking the .exe files, looking for information. What I found in the meta data was that Vol.0-2 have been using the TVP(Kirikiri) or maybe the forked [Kirikiri Z] game scripting engine, whereas Vol.3 swapped that for the [Ares CatSystem2] engine, for whatever reason. My assumption would be, that the CatSystem2 thingy was actually built for Vista+ for real, thus breaking XP compatibility. Plus, some other minor components are broken as well (some installers, patches, etc., just like the older volumes).

Now, I’ve already been talking to a guy called UncleVasya / Oleg Ovcharenko, who built a [stub DLL solution] for games based on the Clausewitz Engine (Europa Universalis 4, Hearts of Iron 4, Crusader Kings 2 and finally Stellaris), making it work on XP. It’s pretty similar to the XCOM hacks[1][2]. So I asked him about this one as well, and with quite some work and some additional (important) hints from him regarding the Steam version, I managed to make it run!

So, first things first: Thanks Oleg, you’re doing great work! :)

I will now show you how to make this visual novel / game work on XP x64 and XP, both for the slightly trickier Steam version (whether you choose to play the censored or the uncensored version doesn’t matter, the corresponding patch will be discussed as well), as well as the normal version.

Note: All screenshots in this post are 8-bit (256 color) PNG files. They may look a bit bad at times, but better than JPEG in the case of those specific images. Reason for not using truecolor PNG: 8-bit saves a ton of bandwidth.

2. How to make the non-Steam version work on XP / XP x64

Software required:

  1. [Nekopara Vol.3]
  2. [7-zip] archiver
  3. NTCore [CFF Explorer] (optional; only needed for patches)
  4. Olegs’ [patcher]

2a. The main game

First, buy the game and download it. Do not pirate it! You suck if you do (I actually fooled around with a pirated version as well, but only after buying the game). When running the installer, you’ll notice that it already breaks early on after invoking the launcher:

Nekopara Vol.3s' installer already breaks

Nekopara Vol.3s’ installer already fails to execute on XP

As you can see, it calls InitializeCriticalSectionEx(), which is a newer, Vista+ version of InitializeCriticalSection(), see the MSDN[1][2] for details. Since the new version works differently, you can’t just hex edit your way out of this one.

First, unpack Olegs’ patcher to some subdirectory of your choice. Then, unpack the Nekopara Vol.3 installer (the .exe file) into a subfolder using 7-zip, and look for a file called INSTALL.exe. Copy that file into the directory where Olegs patcher resides, so where files like xp_EU4_1.21.cmd and xp_Stellaris_1.6.cmd can be found.

Since the scripts from Oleg aren’t made for hacking our files, we’ll write a new one for this, let’s call it xp_installer.cmd. Edit that with a text editor, and add the following lines:

@ECHO OFF
rundll32.exe zernel32.dll,PatchFile INSTALL.exe

Make sure xp_installer.cmd, zernel32.dll and the INSTALL.exe from Nekopara are in the same directory, then execute xp_installer.cmd. either by just double clicking it, or by opening a cmd terminal and by running it from there. Like this (you don’t need to run the extra commands, they’re just there to show you more information):

Olegs' patch doing its magic on INSTALL.exe

Olegs’ patch doing its magic on INSTALL.exe!

After that, rename your original INSTALL.exe in the directory where you unpacked the Nekopara Vol.3 installer, creating a backup file. Copy the following files from the patcher directory back to the installer directory: INSTALL.exe, zernel32.dll, z3d9.dll, zs2_32.dll and normaliz.dll. The “z” files are now implementing the missing functions, while redirecting all the others to the real Windows libraries like kernel32.dll, d3d9.dll, ws2_32.dll etc.

You don’t need to repack anything, just run INSTALL.exe directly, and you’ll no longer be greeted with an error message, but with this:

The installer works now

The installer works now, great

Install the game to a directory of your choice. Now, if you click the NEKOPARAvol3.exe in the directory where the game was installed, the same launcher comes up again, but now it allows you to configure and play the actual game instead of installing it…

Nekopara Vol.3s' launcher after installation

Nekopara Vol.3s’ launcher after installation

…or does it? Well, the “System settings” part’ll work, yes, but when clicking that alluring “Start” button, you’ll run into yet another wall:

Nekopara still won't execute due to GetTickCount64()

What now? GetTickCount64(), that’s what.

Guess which function call doesn’t exist on XP? See the MSDN[1][2] again. GetTickCount64() really is an improvement over GetTickCount(), but still, XP simply doesn’t have this either. As you can see from the title bar, the offending binary is cs2.exe, which is the actual game. We can get rid of the issue by using Olegs’ patcher again, so it’s the same process as with INSTALL.exe, just use this script instead, call it xp_cs2.cmd or something:

@ECHO OFF
rundll32.exe zernel32.dll,PatchFile cs2.exe

Again, in case something goes wrong, rename your original cs2.exe before copying back the patched version with its .dll files. After copying back, you can run the game either by invoking cs2.exe directly, or by launching it from the NEKOPARAvol3.exe launcher:

Running the non-Steam version of Nekopara Vol.3 on XP x64

Running the non-Steam version of Nekopara Vol.3 on XP x64 (click to enlarge)

2b. Making patches work as well

Patches are essentially also just self-extracting archives that execute a launcher after unpacking. We’ll discuss the patch 11 in this case. Running it will produce a different kind of error (people who know the content restoration patches for the Steam version may have seen this error as well):

Nekopara Vol.3 patch failure

Nekopara Vol.3 patch failure, due to it not being “a valid Win32 application”.

This error means that the header of the binary is asking for a more modern platform. This may make sense, if the program really calls modern functions, but you know, there are modern applications that don’t ask for it and then fail with calls to things like GetTickCount64(), and there are programs which ask for a modern platform without ever having an actual need for it. The patchers are in the latter category of programs.

Unpack the patcher nekopara3_v11_update.exe using 7-zip, and look for a file called updater.exe. Create a backup copy of it, then open this file in NTCores’ CFF Explorer, and click on the “Optional Header” part. You’ll see something like this, I’ve marked the relevant lines with some red blocks for you:

updater.exe in CFF Explorer

updater.exe in CFF Explorer (click to enlarge)

The marked fields show values like 0006 and 0000, as you can see. The significant number is the last or rightmost, so 6 and 0. This corresponds to the platform target Windows NT 6.0, or in other words: Windows Vista. Just rewrite that to show the following numbers, then save the file:

Patch the header to NT 5.1

Patch the header to NT 5.1 (click to enlarge)

NT 5.1 (0005, 0001) equals Windows XP. Note that the kernel versions 5.0 mean Windows 2000, 5.2 means Server 2003 or XP x64 (slightly more modern). Again, no need to repack anything, just save the file after the modifications have been made and execute updater.exe afterwards, you should be getting this:

Nekopara Vol.3 non-Steam patcher working on XP

And here we have a working patcher (click to enlarge)

Yay! And now, for the Steam version of Nekopara Vol.3…

3. How to make the Steam version work on XP / XP x64

Software required:

  1. [Nekopara Vol.3] on Steam (a censored version)
  2. [Content restoration patch] (optional; only required if you have to do perverted things to the cat girls)
  3. at0ms’ [Steamless]
  4. A Windows Vista or newer machine (needed to run Steamless, can be a virtual machine)
  5. [7-zip] archiver
  6. NTCore [CFF Explorer] (optional; only needed for the content restoration patch)
  7. Olegs’ [patcher]

3a. The main game

First, buy the game on Steam and download it. If you really need the uncensored version (you probably do, heh?), buy the content restoration patch at Denpasoft and download that as well. Of course, running the game as-is won’t work, otherwise we wouldn’t need this article in the first place:

The Steam version of Nekopara Vol.3 breaks on XP as well of course

The Steam version of Nekopara Vol.3 breaks on XP as well of course, due to GetTickCount64() call, a newer and better version of GetTickCount(), see MSDN[1][2].

Now, what I didn’t get at first was that patching the Steam versions’ NEKOPARAvol3.exe can never work out of the box. The reason is, that the offending function calls aren’t plainly there for us to see – the actual game binary cs2.exe is encrypted and packed into a SteamStub binary as its payload data. This is a part of the Steamworks DRM system wrapping our program up.

To be able to patch it, we (unfortunately) need to crack its cryptographic DRM protection system first. Now, let me say this again: I do not condone piracy. Don’t fucking crack and distribute this game. You’re an ass if you do. Removing the DRM part is only being done so we can fix the game on XP, keep that in mind!

Well, let’s start; First, boot up a Vista or newer Windows, and install Steamless on it. I actually tried to compile Steamless for XP, but this is .Net 4.5.2 stuff. To make it work on .Net 4.0 would require modifications of its build files / source code, which is a bit over my head right now. So we’re stuck with needing a modern Windows OS to do this. Copy the problematic NEKOPARAvol3.exe from your Steam game installation directory over to that machine, or just install Steam and the game on the modern Windows OS as well (which is what I actually did).

Launch Steamless, open that .exe and decrypt / unpack it, Steamless will leave your binary alone, and create a new, fixed one, so you don’t need to create a manual backup copy:

Steamless cracking NEKOPARAvol3.exe

Steamless cracking NEKOPARAvol3.exe (click to enlarge)

Copy the fixed file back to XP, and rename it back to NEKOPARAvol3.exe. Create a backup of the original .exe in your Steam game installation directory, while you’re at it.

Unpack Olegs’ patcher in a directory of your choice, and move the NEKOPARAvol3.exe there as well, that’s where files akin to xp_EU4_1.21.cmd and xp_Stellaris_1.6.cmd can be found. Since those patcher scripts aren’t targeted at Nekopara Vol.3, we’ll write our own, call it xp_neko_3.cmd or something, open it in a text editor and enter the following lines:

@ECHO OFF
rundll32.exe zernel32.dll,PatchFile NEKOPARAvol3.exe

Make sure that NEKOPARAvol3.exe, zernel32.dll and xp_neko_3.cmd are together in the same folder, then execute xp_neko_3.cmd either by double-clicking it, or by opening a cmd terminal and executing it from there. Like this:

Olegs' patcher handling the decrypted NEKOPARAvol3.exe

Olegs’ patcher handling the now-decrypted Steam version of NEKOPARAvol3.exe

Copy the fully fixed .exe back into the Steam game installation directory, together with the patchers’ stub libraries zernel32.dll, z3d9.dll, zs2_32.dll and normaliz.dll, which will handle the functions usually missing on XP.

Now, run the game either by executing NEKOPARAvol3.exe, or by launching it from within Steam, and you should be greeted with something like this:

Nekopara Vol.3 running on XP x64 in its Steam version

Nekopara Vol.3 running on XP x64 in its Steam version (click to enlarge)

Great (or something)!

Please be aware that if the binary is ever overwritten by Steam because of some update or whatever, you have to re-do the procedure, meaning the Steamless unpacking plus applying Olegs’ patch. If the game terminates without any error when launched from within Steam, try to run NEKOPARAvol3.exe directly instead, and you’ll see the error messages – Steam tends to suppress them.

3b. The content restoration patch (this also applies to the patches for Nekopara Vol.1 and Vol.2)

So you want to lewd the cat girls? Perverted! Plus, Windows XP / XP x64 won’t let you, because the patch is asking for a newer platform (despite not actually requiring it though):

Nekopara Vol.3 content restoration patch failure on XP

Nekopara Vol.3 content restoration patch failure on XP, due to the patch not being “a valid Win32 application”.

But if you absolutely have to, here’s how. Unpack the nekopara_vol3_Steam_R18DLC.exe you bought and downloaded from Denpasoft using 7-zip. Look for the file SteamPatch.exe, and open it in CFF Explorer:

The Nekopara Vol.3 Content restoration patchs' SteamPatch.exe in CFF Explorer

The Nekopara Vol.3 Content restoration patchs’ SteamPatch.exe in CFF Explorer

Now, this is similar to the procedure described for updater.exe for a non-Steam versions’ patch. The significant (rightmost) numbers in the fields where it days 0006 and 0000 represent Windows NT 6.0, or in other words Windows Vista. Since the patcher doesn’t really need any Vista-specific functions, we’ll just fix the header that is currently asking for a NT 6.0 platform as follows:

The Nekopara Vol.3 Content restoration patchs' SteamPatch.exe in CFF Explorer, fixed for XP

Change the fields to 5.1 (0005 and 0001 respectively) to have it check for XP+ instead, and it’s fixed!

Save the file after modifying it. Just like for the non-Steam version patches, there is no need to repack anything. Just run updater.exe directly, and you’ll now get this:

The Nekopara Vol.3 content restoration patch for the Steam version working on XP x64

The Nekopara Vol.3 content restoration patch for the Steam version working on XP x64. Because you’re in it for the Hentai.

There you go, pervert! You now have the fully restored version of Nekopara Vol.3 on Steam, running on XP or XP x64.

And last but not least: Thanks again, Oleg! I made you touch some weird shit, but you still fixed it and gave me the right ideas about the Steam version as well, yay! ;)

4. Bonus feature: How to make Mechwarrior Online work on XP / XP x64 after their launcher upgrade

While entirely unrelated to the weird Japanese shit above, I’ll just mention this here as well, because it doesn’t deserve its own post, given the simplicity of the “solution”; Piranha Games decided to give Mechwarrior Online (MWO) a new game launcher called “MWO Portal”, that is now built with .Net 4.5.2, just like Steamless, breaking it on XP. Mind you, the game itself would still work just fine, even the 64-bit version on XP x64.

The new MWOPortal launcher

Windows XP / XP x64 users will likely never see this launcher work on their OS (Unless ExtendedXP really takes off, it’s pretty good already, but yeah).

Since hacking .Net 4.5 stuff to run on .Net 4 / .Net 4 CP is not something I can do yet, MWO would be gone from all XP machines. There is an easy fix for this though:

Get the game on Steam! The Steam version doesn’t include the launcher, as Steam itself is handling both the execution and the updates of MWO. Without the launcher, MWO still works just fine! :)

Jun 072015
 

Kung Fury: Street Rage logoSo after the release of that crazy crowdfunded (and free of charge) movie [Kung Fury], there is also a game! Now that was fast. Made by the Swedish game developers of [Hello There], the game is basically a clone of [One Finger Death Punch], as many gamers have already pointed out. Not that anybody seems to mind that – me included. It’s a superficially very simple 2-button street fighting game, where one button means “punch/kick/whatever to the left” and the other “punch/kick/whatever to the right”. Don’t let the seeming simplicity fool you though. There is more skill involved than you might think…

So let’s have a look at the intro of the game, which strongly resembles an 80s arcade machine style:

Kung Fury: Street Rage; That's our Hero!

Kung Fury: Street Rage; That’s our Hero!

So with the use of some Direct3D 9.0c shaders, the game simulates the look of an old CRT monitor, just like the arcade machines of old had! At the press of a button or after waiting for a bit we’re greeted with this:

Kung Fury: Street Rage - Insert Coin

Insert Coin!

Another button press and we can hear our virtual player throwing a coin into the machine, which gives us three lives (after being hit three times, we’d go down for good). And then, whenever any enemy approaches us from either side, you just press left or right to punch, kick, shoot or electrify the guy. It’s ok, they’re all Nazis anyway. We do this with our pals Barbarianna, Triceracop and Hackerman standing around in the background – all three as seen in the movie of course, just like all the enemies we’re beating up:

Kung Fury: Street Rage; Beat 'em up!

There are splatter effects even!

That screenshot is from the very beginning of the game, where we can only see our lowest-end Nazi foes. There are some Swedish Aryans too, which can take two hits, then that clone chick with Kung Fury essence infused into her, which needs a more advanced left/right combo to put down, and more. Like the kicking machine and the mysterious Ninja, all as seen in the movie. As long as you don’t miss too much (you have limited range) or get hit, you’ll build up a score bonus too. Not sure if there are more enemies than that, I haven’t really gotten that far yet.

Actually, I did reach a new High Score while doing those screenshots accidentally, leaving both chicks behind me, pretty neat:

Kung Fury: Street Rage; New High Score!

A new High Score!

Now Thor might still be doable, but Hackerman will be one tough nut to crack. I don’t think I’ll ever make it to the top though, the game is pretty damn hard. As it progresses, it starts speeding up more and more, and it’ll also throw more of the harder enemies at you, which will require quick reaction and sharp perception to get the combos right. “Just mash two buttons” may sound easy as said, but don’t underestimate it! Like with “One Finger Death Punch”, only the most skillful players will have a chance to reach the top!

When you’ve got enough, just press <Esc> (on the PC), and you’re asked whether you really want to quit. In an interesting way:

Kung Fury: Street Rage; Quitting the game.

Quitting/bluescreening the game.

If you confirm to quit the game, you’ll get another shader-based CRT effect thrown in:

Kung Fury: Street Rage; Quitting the game

It’s shutting down…

I haven’t really managed to play this for more than 5 minutes in a row, which sounds like very little, but this game is extremely fast-paced, so I can’t take much more in one go. ;) It’s quite a lot of fun though, and while not as sophisticated as “One Finger Death Punch”, it’s awesome in its own right, given the Kung Fury cheesiness, the CRT look and the chiptune-like soundtrack of the game.

The game is available in both paid and partially also free editions on several platforms now, and while I’ve read that the free versions do have ads, the paid ones definitely don’t, as I can vouch for on the PC platform at least. So here are the links:

  • [PC version] @ Steam for 1.99€ / $2.50. Supports >=Windows XP, >=MacOS X 10.6 and SteamOS plus regular Linux on x86_32/x86_64.
  • [PC+ARM version] @ Windows Store for $2.29. Supports Windows >=8.0 on x86_32/x86_64 and ARM architectures.
  • [Android version] @ Google Play for free or for 2.46€ with ads removed. Also available as a [separate APK file]. Supports Android >=2.0.1.
  • [iOS version] @ iTunes for free or for $1.99 with ads removed. Supports iOS >=6.0 on the iPhone 5/6, iPad and iPod Touch.

Now if you’ll excuse me, I’ll take another shot at number 3! :)

Sep 062014
 

The Grim Dawn logoGame compatibility is generally becoming a major issue on Windows XP and XP x64, and I’m not even talking about Direct3D 10/11 here. Microsofts own software development kits and development environments (VisualStudio) come preconfigured in a pretty “Anti-XP” way these days, even if you intend to just build Direc3D 9 or OpenGL 4 applications with it.

There are examples where even Indie developers building Direct3D 9.0c games refuse to deal with the situation in any way other than “Please go install a new OS”, Planetary Annihilation being the prime example. Not so for Grim Dawn though, a project by a former Titan Quest developer which I [helped fund] on Kickstarter a while back. In their recent build numbered B20, an issue arose that seemed to be linked to XP exclusively. See this:

Grim Dawn B20 if_indextoname() Bug

Grim Dawn B20 if_indextoname() bug, in this case on a German 32-Bit Windows XP. Looks similar on XP x64 though. © by [Hevel].

More information can be seen in the corresponding Grim Dawn [forum thread], where I and others reported the issue, determining that it was on XP only in the process. That thread actually consists of two issues, just focus on the if_indextoname() one. This is also documented at [Microsofts MSDN library].

The function seems to be related to DNS name resolution and is a part of the Windows IP Helper API on Windows Vista and newer.  if_indextoname() does however not exist on any NT5.x system, which means Windows 2000, XP and 2oo3 Server which includes XP x64 and there is no fallback DLL. My assumption is, that this happened because of the newly added multiplayer netcode in the game.

Now the interesting part: After me and a few other XP users reported the issue starting on the 30th of August, it took the developers only 3 days to roll out a hotfix via Steam, and all was good again! I believe nowadays you can judge developers by how well they support niche systems, and in this case support was stellar. It may also have something to do with the Grim Dawn developers actively participating in their forums of course. That’s also great, as you can interact with them directly! No in-between publisher customer support center crap, but actually people who know their stuff, ’cause they’re the ones building it!

So I’d like to say a big “Thank you, and keep up the good work!” here!

Mar 312014
 

South Park: The stick of truth logoWhile marching towards the supposed “end” of my favorite operating system on the Microsoft side of things, there is a small piece of good news. So let’s get to the simple part first: The new South Park game, title “The Stick of Truth” works fine on Windows XP Professional x64 Edition SP2. The Steamworks title explicitly states “Windows XP SP3” on Steam, which would be the 32-Bit version only. Still, no hacking, no tricks, you just click on it and it works. So that’s that. There is however a more problematic issue at had with that game, and that’s the censorship.

Allegedly self-censored on certain target platforms and markets, the game isn’t easily obtained in its uncut form, depending on where you’re sitting and what machine you’re playing on. In the USA, there won’t be much of a problem. In Australia it’s getting troublesome, and same goes for the EU. I’ve been researching a bit, and it seems all versions released to the German and Austrian markets received the maximum cut. That would mean some anal probing and abortion scenes (Ubisofts self-censoring) are gone just as well as the Nazi zombie swastikas and Nazi zombie salutes (Not sure whether self-censored or a result of the German and Austrian constitutions, likely the latter).

It doesn’t end there though: Due to “marketing reasons” it appears to be the case that the UK console versions still have the swastikas, but not the other scenes, such as the anal probing. The UK PC version however remains 100% uncut. What a chaos. Also, the Nazi censorship in Austria and Germany is questionable at best. While portrayal of such imagery on TV is legal, as long as it is done for either making fun of the Nazis (“artistic purposes”) or for historical purposes, this is not the case for interactive games, even if all you may do in such games is fight and kill the Nazis. Or hilarious Nazi zombies, in this case.

Now, you can buy the US version and import it to Germany of course, but this being a Steamworks title, you can’t activate the game on Steam, plus there might be issues with customs. And no activation means no play anyway. You could open up a VPN tunnel to a United States gateway and activate by pretending you’re sitting in the States, but I didn’t want to do crap like that. Instead I tried my luck with the UK PC version, as it was supposed to be uncut and within the EMEA region. So would it allow me to activate it, and would it download the correct version?

Luckily, the answer is yes to both:

Oh, and there are even Nazi zombie animals to encounter. Not to spoil you too much here, so I won’t tell you which ones. But you can be sure, you’ll see tons of stuff that you know from the TV series, and the game delivers around 20 hours of nonsense-filled South Park action. While a little short for a role-playing game, I would say that it’s just fine for this specific one here.

And the important thing: If you’re sitting in the EMEA region or Russia, just get the UK version, stay on the PC and switch your Steam to English. Then nothing can go wrong and you’ll experience the game as it was intended by the creators, Matt Stone and Trey Parker.

The interesting part is, that [this Austrian game store] actually does sell the [US uncut version] and also the [UK uncut version] (it says there you need VPN to the UK for that too, which proved to be untrue), so how illegal can it be?! Probably not at all. Just like it was with “The Witcher”, for some games it’s still best to get the UK version!

Jan 262014
 

Brotherhood of Nod logoSometimes when you have a seriously weird problem and cannot solve it by yourself, the solution might just turn up – years later. As it happened just now. So, I was playing Command & Conquer 3 – Tiberium Wars again, a game that was released in 2007, so it’s somewhat old by now. Still a classic in my book, as its gameplay is so similar to the very first Command & Conquer released by Westwood Studios in 1995.

At some point though, out of nowhere, the cutscene videos started to stutter. I wasn’t sure if it was some video codec fucking things up, or some graphics driver update, who knows? I stripped my system clean of all DirectShow codecs, tried different drivers, tried to dis-/enable vertical synchronization, everything. Nothing worked. And today, I thought “why not search the web for this one last time”.

And I found [this]German flag, which probably referenced [this thread] on the Steam forums. Those guys are talking about changing a weird option in a C&C3 configuration file that doesn’t sound as if it could be related to video playback performance. But why not try? So I navigated to %APPDATA%\Command & Conquer 3 Tiberium Wars\Profiles\<ingame username>\ (adjust for Windows Vista and newer, this path is XP style) and opened the Options.ini, which looked like this:

AlternateMouseSetup = 0
AmbientVolume = 50.000000
AnimationLOD = UltraHigh
AntiAliasingLOD = 8
AudioQualitySetting = High
Brightness = 50
DecalLOD = High
EffectsLOD = UltraHigh
EnableSpecialEditionContent = 1
GameSpyIPAddress = <I CUT THIS OUT, THIS IS AN IP ADDRESS>
HasSeenLogoMovies = yes
IdealStaticGameLOD = VeryLow
ModelLOD = High
MovieVolume = 70.000000
MusicVolume = 70.000000
Resolution = 2560 1600
SFXVolume = 70.000000
ScrollFactor = 50
SendDelay = 0
ShaderLOD = UltraHigh
ShadowLOD = UltraHigh
ShowTickerAds = 1
ShowTickerNews = 1
StaticGameLOD = Custom
TerrainLOD = UltraHigh
TextureQualityLOD = High
ToolTipDelay = 0
VoiceVolume = 70.000000
WaterLOD = UltraHigh

Then I changed the option IdealStaticGameLOD from VeryLow to UltraHigh, just like those people were suggesting, saved and re-launched the game. And gone were all woes! Ha! And it took me so many years to find this. I guess when I searched the web back then, the solution was not yet discovered. I still don’t get what a level-of-detail setting has to do with smooth video playback, especially since it gets faster when you set it to a supposedly more demanding value, but oh well. At least it finally works now. And in a few years, when I install the game again (if I still can, depending on my operating system), I know where to look for the solution. ;)

Kane is pleased with video playback performance now

Kane is now pleased with video playback performance

Jan 112014
 

SteamOS logoYep, it’s SteamOS time again. Last time I’ve tried to cover its basic operation, running Steam itself and a few independently developed Steam games. But what I felt was still lacking was support for any average Linux application. Don’t get me wrong, SteamOS isn’t meant as a general purpose desktop operating system, I know that, but since the game selection is still somewhat limited, you might want to look into other things you can do with this OS. Initially, the system is configured to fetch binary packages only from Valves own server. Let’s have a look at the /etc/apt/sources.list which defines the package sources for Debians apt package manager:

## internal SteamOS repo
deb http://repo.steampowered.com/steamos alchemist main contrib non-free
deb-src http://repo.steampowered.com/steamos alchemist main contrib non-free

So as you can see, everything you’ll install using apt will come from the Steam server itself. And let me just say that ain’t very much. Last time I mentioned that SteamOS is a modified Debian 7.1, so now we’re going to try and see how compatible the userlands of the two operating systems really are. As user root, let’s add the following package sources for Debian stable generated by [this web tool] to /etc/apt/sources.list:

## Debian repos:
deb http://ftp.at.debian.org/debian stable main contrib non-free
deb-src http://ftp.at.debian.org/debian stable main contrib non-free

deb http://ftp.debian.org/debian/ wheezy-updates main contrib non-free
deb-src http://ftp.debian.org/debian/ wheezy-updates main contrib non-free

deb http://security.debian.org/ wheezy/updates main contrib non-free
deb-src http://security.debian.org/ wheezy/updates main contrib non-free

(This will become invalid as soon as Jessie becomes the next stable Debian release, replacing Wheezy. If you want to stay on Wheezy with SteamOS, change the “stable” strings to “wheezy”)

After that, also as root, run the command aptitude update to make apt aware of the newly added package sources. Now I tried to install a few typical applications, starting with a seriously fat one: LibreOffice, just like that: aptitude install libreoffice. This one was tricky, as it somehow depends on the proprietary AMD/ATi video card Xorg driver fglrx. Luckily, aptitude can suggest some alternative routes to solve dependencies, and one is to just replace the driver with the one from Debian. This might be suboptimal, but it works.

On top of that – and much more flawlessly so – I installed the Filezilla FTP/SFTP client, The Gimp for graphical content creation and even Wine, in the same simple way. Also, I did something really wrong, vile and perverted with Wine, installing the Apple Safari browser in its MS Windows version on SteamOS Linux. ;)

See the following screenshots:

So, I assume the answer is: Yes, you can turn SteamOS into a more versatile platform rather easily. There may be caveats and you may actually wreck your system doing stuff like that though. So whenever you’re installing new software using apt-get or aptitude, you should pay very close attention to what the package manager is telling you. Otherwise you may accidentally remove or break important packages on your system, worst case being an unbootable machine.

Real Steam Machines will of course ship with a recovery medium to restore the OS into factory condition, but I feel the risks should be mentioned at least. Oh, and running Apple Safari on Wine 1.4.1 really sucks by the way, crashes all the time. ;) Bad luck Debian doesn’t seem to have Wine 1.7. But smaller and older Windows tools should work rather fine.

So yeah, this opens up SteamOS to a wider range of possibilities. In my opinion, Valve should include the Debian package repositories to begin with, or rather mirror them to their own servers and protect their own modifications using repository priority protections to not let the user mess up things too easily.

On top of that – if I were a project leader for that – I’d make my team develop something like the graphical apt frontend “synaptic” in a simpler fashion, maybe like PC-BSDs “AppCafe”, so that people can install software in a super easy way.

I hope Valve is aware of its OS needing some more software variety for the targeted user audience. Most of the people buying Steam Machines are probably not experienced Linux users, so an easier way would be a good idea…

Jan 092014
 

SteamOS logoI’m usally always willing to try and play around with a new operating system, as I’ve now explored many Linux distributions, BSD UNIX distributions, OpenSolaris, Haiku OS, Windows etc. Now I wanted to give Valves SteamOS a chance to show me what it can do. The [Steam] platform is still the leading platform for digital game distribution besides services like Electronic Arts [Origin] or [GOG]. Other than EA, who focuses on Windows exclusively, Valve Software dared to move its client application onto MacOS X and Linux as well. While rather limited to Ubuntu 12.04 LTS and higher, it was still an important move for gaming on Linux.

Sure, far less games are available on Linux than on Windows, but some AAA titles like X3, Serious Sam 3: BFE or Metro: Last Light are actually available amongst many Indie games. Some use a packaged Wine distribution, some are native ELF binaries.

Now Valve wants to let OEMs like Alienware, Falcon Northwest etc. build dedicated [Steam Machines] (PDF), that will ship with SteamOS (and Steam, naturally) preinstalled. Since SteamOS is not based on Ubuntu Linux, but rather Debian 7.1 Wheezy, a Linux compatibility layer – likely just a set of libraries – has been included to ensure that Linux capable Steam games targeted at the Ubuntu platforms can still work out of the box.

Steam Piston

The original “Steam Piston” prototype machine

But the funny thing: Users may just modify SteamOS to their liking as it will be distributed freely by Valve. Well, it’s a Debian fork after all! So you can already get the official [beta version] or some modified ones that loosen the restrictions like UEFI+GPT booting a little, and build your own Steam Machine if you so desire. Now I had this running on VirtualBox with 3D passthrough via OpenGL enabled. It sucks, but I can at least show you a few indie OpenGL games running, plus my notorious x264 benchmark:

The only game severely misbehaving was “Hotline Miami”, as it would make the whole display manager constantly switch resolutions, making the system almost unusable. Also, other games had problems running in fullscreen, all probably by courtesy of the VirtualBox Xorg driver. I suppose with a native machine and a “real” graphics card driver like nvidia or radeon/fglrx these problems would disappear.

As for other software, the Valve apt repository does give you a very few things, most importantly stuff like their modified Linux kernel source code, but if you’re looking for a wide range of applications like maybe Mozilla Thunderbird, or LibreOffice etc., all that stuff is simply not there yet. You do get a compiler plus toolchain, but what about easy binary package installation? It may be possible to just add the Debian 7 repositories and install stuff from there, but I haven’t attempted that yet. Not sure if that would be safe, as Valve backported a newer kernel and more importantly a newer libc to SteamOS. But I’m gonna try soon and let you know how it worked out.

Maybe I’ll also come up with an installation guide for the x264 benchmark on SteamOS, although it’s naturally quite similar to any other Linux system, given that an almost complete build toolchain is provided by Valve.

Now, given the still meager availability of top-tier games on Linux, the BIG question is: Can Valve succeed with their “Steam Machines” and really make game developers finally go for Linux, or will they fail with the big commercial game studios? Time will tell, but for the first time there is a really big player going for it, so we can have some hope at least, even though some people including myself have reservations about the trustworthiness of Steam. But if this works out, others will surely follow, and we might see bigger Linux game releases even outside of Steam once again!

Jan 072014
 

XCOM: Enemy Within logoA while ago I have published an [article] describing the modifications and source code published by the Steam forum users KawaiiSara and ScavengerSpb to deal with XCOM: Enemy Unknown not running on Windows XP (dealt with by KawaiiSara) and Windows XP Pro x64 Edition (dealt with by ScavengerSpb). In short, what they did was to map certain kernel32.dll API calls that only exist on >=Vista to a Microsoft compatibility DLL called fileextd.dll. This is officially supported by Microsoft on Windows XP in fact, but some developers choose not to use it, or maybe they simply don’t know about it. The proper header file fileextd.h would be available in the Microsoft platform SDK, but my assumption still is, that the developers of XCOM have no clue about this. I tried to tell them, but I presume that my suggestion never reached the development team, getting stuck at the support level of the publisher. They did promise me to relay the information, but I doubt that ever happened.

So, now I heard about this new standalone expansion pack for the game, called [XCOM: Enemy Within]. A user going by the name of [renezett] in the [Voodooalert forums]German flag got the game and attempted to apply the same hack that was originally done, albeit based just on the binary version of the mapping stub DLL zernel32.dll, without compiling it from source himself. That’s ok though. By hacking the games EXE with a hex editor and placing the zernel32.dll and fileextd.dll in the same folder, the issues weren’t resolved this time around though.

XCOM: Enemy Within

XCOM: Enemy Within

It seemed that some part of the expansion pack still wanted to call the kernel API function GetFileInformationByHandleEx(), naturally a part of the NT 6.x kernel API or – on XP – fileextd.dll. See this part of the zernel32 header source code, where we can clearly see how the function is being intercepted and mapped over to fileextd.dll for hacked binaries calling zernel32.dll instead of kernel32.dll directly:

#pragma comment(linker, "/export:GetFileInformationByHandleEx=fileextd.GetFileInformationByHandleEx")

So, what went wrong? When working together with renezett to resolve the issue for him, I had a hunch that it was simply some additional binaries or libraries calling the function for this new expansion set of the game, and that has proven true. While I cannot provide the exact file names, I asked renezett to look at all other EXE and DLL files of the game with his hex editor, and look for KERNEL32.DLL strings and to replace them with ZERNEL32.DLL, just like with the original hack. Now he did indeed find some additional DLLs in \common\XCom-Enemy-Unknown\XEW\Binaries\Win32\ that linked against kernel32.dll, and after replacing the strings and putting the zernel32.dll and fileextd.dll there, the game worked!

So basically, it’s the same hack, just more files that need to be modified in order to make it work! Scratch another XP incompatibility issue!

Update: A user calling himself None has posted a [comment]German flag, explaining that the problem was likely not some other binaries or libraries calling the Kernel API functions in question, but just some misplaced files, maybe just fileextd.dll not sitting next to the games binary. He also explained that only one file required hex editing as described, and that’s the following:

  • SteamLibrary\SteamApps\common\XCom-Enemy-Unknown\XEW\Binaries\Win32\XComEW.exe

Also, None suggested not to change anything in XComGame.com as that broke the game for him, rendering it inoperable entirely. So it seems to be pretty much the same as with the original XCOM game after all. </update>

Now, if only the Planetary Annihilation developers would finally learn, that Microsofts Visual Studio 2012 has a “v110_xp” and not just a “v110” platform target for the linker, wouldn’t that be something? Just a few clicks away! But it seems “we don’t wanna!” is their current attitude regarding the issue…

Oh, and to make it easier for you in case you want to try this out, here are the download links again:

If those links ever break, just let me know and I will re-host the files on my own server.

Dec 032013
 

Call of Juarez: Gunslinger logoActually, I never quite warmed up to Wild West themed games, shooters or not. I don’t know why, I did like related movies, especially the Bud Spencer & Terence Hill comedies, but also the more serious ones. Never liked any of the games though. But what I heard about the latest Call of Juarez game – a budget title for the first time – sounded so fresh that I gave it a shot. And damn, I was blown away. Sure it’s a linear shooter, yeah, ok, it has checkpoints instead of save games, and even quick-time events. It has all the bad stuff, and still it’s awesome, now how can that be? Simple. It’s all implemented in the right fashion and the game always delivers fun in great ways.

An old man going by the name of Silas Greaves walks into a bar one day in the early 20th century. Clearly, he’d seen better times, and he’s kind of out-of-place in this modern world with cars driving around, him still riding a horse, wearing sixshooters on his belt. In that bar, an old bartender and a few guys including an enthusiastic young dime novel reading boy await him. Recognizing his name as one of a relatively famous bounty hunter they start buying him some drinks to hear him tell his stories.

This unfolds in Mr. Greaves telling them the story of his life. And as he tells them, his words materialize within the game you’re playing, on the fly! And it soon turns out that he is telling his story a bit over-the-top and not quite so historically correct either, since he seems to be meeting all the big names of the West like Billy the Kid, Jesse James, Butch Cassidy and so on, duelling ’em all in the process of course, as he’s gunning his way though it all. The fun thing is, that the 3D engine itself and the gameplay adjust dynamically as Silas Greaves is telling his story, and sometimes he has to adjust a bit of his story as well here and there, especially as his listeners are left in disbelief more often than not.

Let me give you an idea: Silas is walking around on a wooden structure somewhere outside of a gold mine, and he’s stuck. Maybe because so is the story the old man’s telling here, so he has to come up with something new, and as he is remembering (or sometimes seemingly just making up) stuff, a ladder suddenly appears, the one that he thinks he climbed down to continue onwards. This would manifest in the game as a ladder “growing” up from the floor below, or just flying down from the sky and into the right place for Silas to step on it, all while you hear him tell the story piece in the background briefly. Sometimes he even has to tell an entire part of the story anew, which you will see as the whole game “rewinding” itself to let you play again, only very differently this time around.

So, it’s well-told, well-executed in the form of a fast linear shooting gallery that refuses to be ashamed of itself, the Chrome Engine 5 does a nice job of showing all that to us, the artwork is great, music plus awesome gun sounds plus awesome voice-over do a great job of pulling us in, and it costs next to nothing! Well, not all is perfect (for me) though, so let’s get technical, shall we?

The Chrome Engine 5 happens to be using a very fast Direct3D 9 renderer, leaving the game very compatible with Windows from XP/XP x64 all the way up to Windows 8.1 including SLI/CF support. There is only one thing missing. The one tiny little thing that I refuse to game without, and that it anti-aliasing. Missing FSAA leaves the Cel-shaded engine with very jagged edges and foliage. Unacceptable. So I tried to play around with nVidia Inspector again. See this first (click to zoom):

The Cel shader produces well-defined edges everywhere, which results in them being intensely jagged. Also, foliage is very jagged, which you might not see very well on the screenshot, but which will become very visible when moving around. Now, Call of Juarez: Gunslinger does have a driver profile in nVidias GeForce driver, but this does not feature any anti-aliasing compatibility bits whatsoever. After researching the web about this, I have assembled several forum and blog postings into this:

Call of Juarez: Gunslinger and nVidia Inspector

nVidia Inspector (click to zoom)

Now, this does feature some non-AA related stuff like SSAO bits, but that won’t hurt. The most important parts here are the compatibility flags 0x000010C0 and the behavior flags 0x00000000 / “None” as well as the Anti Aliasing Transparency Super-Sampling bits. Usually, Transparency Super-Sampling is for Alpha-Test textures only, to anti-alias foliage for instance. However, in Call of Juarez: Gunslinger, AA will not work without it at all. More specifically it will not work without this feature called “TAA” switched to expensive “SGSS TAA” or sparse-grid super-sampling, as ordered grids seem to be doing nothing at all. Now this does work, but there is a caveat too, as you will soon see:

“Wow” the pure FSAA aficionado might say, while the pure anisotropio (cough) might puke. Cel shaders and most other post processing shaders have a significant problem with sparse grid AA, and that is a distinct blur setting in on the entire 3D frame as soon as both are combined. Like with shader-based AA like CSAA or even more so FXAA, there will be blurring and it will be “ew”. So basically you’ll have to choose whether you’ll want smooth edges+foliage or sharp textures. Ew. For certain games there is a way around this, which means either you go for regular SGSS TAA withouth the sparse grid (doesn’t work on Gunslinger) or full-scene super-sampling anti-aliasing like 2×2 SSAA (works on Gunslinger, sort of). The latter looks like this:

“Beatufil, yaaay” all might scream in unison, but not entirely so I unfortunately have to interpose. This will most likely cause artifacts on textures that have pixel shaders render on alpha-test textures, like for instance heat haze or water, having those textures either disappear partially or render in a broken fashion. Extremely good if it doesn’t happen for you, but it did happen for me and a friend of mine, who has a very different configuration with Keplers instead of Fermi GPUs and Windows 7 instead of my XP x64, indicating a rather fundamental problem than a specific one. Meh.

Me, I chose the mode that you can see in that nVidia Inspector screenshot. Now I don’t like an even slightly blurry image, but I like jaggies less, so yeah. Hard choice there, but that’s all I can do right now. In case you’re interested what kind of a hardware configuration this profile was made for, here are the relevant specifications:

  • 2 x nVidia GeForce GTX 580 3GB in SLI
  • GeForce driver 331.82 non-WHQL
  • 2560x1600x32 (~4.1MPixel)

As I said, SGSS TAA is expensive, which is why I had to limit myself to 4 subsamples (Don’t count the CV samples). 8 samples would make the game not so enjoyable anymore. So to use this, you’ll need some serious GPU horsepower.

Also, there was another texture rendering problem with FSAA in Gunslinger, one that has been fixed by that “Antialiasing Fix” flag. The bug results in weird lines being rendered on textures, something also known to happen with the game “Dead Island” when attempting similar profile modifications.

People are saying that forcing AA works out of the box in both games for AMD graphics cards with the single exception of said bug appearing. For nVidia you can fix that, but not so for AMD. It might be, that newer drivers have taken care of this though, but I cannot comment on that, as I do not own an according system.

But hey, this is better than nothing at least!