S hrami je to daleko lepší než jsem očekával :) Vesměs všechny novější hry, které jsou napsané pro Windows a DirectX jedou na Vistě bez problémů. Dokonce i takové hry, které kontrolují typ OS na Win9x (např. The Neverhood) běží díky Application Compatibilitu módu bez větších problémů na Vistě. U těchto starších her je občas potřeba trochu "poladit" kompatibilitu a v nejhorším případě spustit hru jako admin. Kompatibilita aplikací se provádí přes pravé tlačítko myši nad .exe souborem a výběrem položky Properties

image

Dobré je i to, že mnoho her a aplikací bylo testováno ještě před uvedením Visty a potřebné nastavení kompatibility je uloženo v rámci Windows Vista Application Compatibility, který je součástí OS. Tento list se aktualizuje v rámci Windows Update a díky němu není nutné u mnoha aplikací/her "laborovat" s nastevním aplikací, tak aby fungovali. Jeden z update tohoto listu je např. zde: http://support.microsoft.com/kb/929427. Potud je to stejné pro Vistu x86 a x64.

Tam kde se narazí na problém na x64 jsou 16-bitové hry a aplikace. Ty na x64 nejedou! Zde se ale nejedná o problém x64, ale o to, že Win64 (64-bitové Windows) nepodporují 16-bitovou emulacu. Neobsahují NTVDM.EXE/WOW32.DLL. Hlavním důvodem je to, že WOW32 závisí na možnosti oříznutí HWNDs a dalších handlů z 32-bit na 16-bit, tak aby bylo možné je emulovat v 16-bit prostředí. Na Win64 je práce s HWNDs a handly kompletně předělána tak, aby bylo možné s nimi bez ztráty dat pracovat ve 32-bit prostředí. Jejich další oříznutí pro 16-bit prostředí by již vedlo ke ztrátě dat.

16-bit DOS a Windows 3.x aplikace při spuštění skonší s chybou GetLastError()=193, ERROR_BAD_EXE_FORMAT. Viz např. pokus o spuštění hry Descent 1.

image 

Samozřejmě jakýkoliv pokus o spuštění hry z cmd.exe vede ke stejné chybě. Jak jsem psal již v Život s Vistou x64 (5.) - System32 vs SysWOW64 je cmd.exe buď 32-bitové či 64-bitové. Nejedná se již o "dosovskou" příkazovou řádku, ale o konzoli příkazové řádky.

Někde na webu jsem našel poznámku: "Exceptions to this rule are 16 bit ACME setup stubs versions 2.6, 3.0, 3.01, and 3.1 and InstallShield 5.x. Compatible versions of these EXEs have been included in the box and the 16-bit versions have been SHIMed to launch the 32-bit counterpart."  Sice moc netuším wo co go, ale třeba to někomu pomůže ;)

Naštěstí existuje projekt http://sourceforge.net/projects/dosbox/, díky kterému získáme plnohodnotný DOS box pro běh 16-bitových aplikací. Přestože není projekt ani ve verzi 1.0, je již plně funkční a zatím jsem nenašel žádné větší problémy, se kterými by si člověk nevěděl rady. Takže první co jsem zkusil bylo spustit Descent 1.

Nejdříve setup grafické karty a zvukové karty (DOS box provádí namapování starých zvukových karet jako je Soundblaster 16 či Gravis Ultrasound na moji stávají zvukovou kartu):

image

No a po úspěšném nastavení již jenom hru spustit:

image

Mno a kdyby bylo fakt už nejhůře tak pak už jenom zbývá spustit hru pod VPC. Na toto téma existuje i blog: Gaming under Virtual PC.

Co ještě dodat. Již existuje pár 64-bitových her, ale ty se mi ještě pod ruku nedostaly, takže nemohu porovnat v čem jsou lepší než jejich 32-bitové verze.

No a na závěr několik zajímavých linků, kde se dá sehnat celkem vyčerpávající seznam her běžících pod x64.