Odvážný nadpis že? O čem to tedy bude. O tom že Starcraft funguje ve wine se ví už dlouho. Co býval problém byl battle.net , ale o tom psát nebudu. Budu to o mých poznatcích s jeho chodem pod wine a hlavně HiRes hacku.
Začalo to objevením Wargus. Warcraft 2 ve vysokém rozlišení vypadal naprosto kouzelně (ta hra by ze s fleku mohla prodávat znova) a uvědomil jsem si, co mi na těch starých strategiích nejvíce vadí. To rozlišení. Nejde o kostičky ale o silně omezený rozhled. Člověk v té hře viděl tak maximálně 4 budovy a pár jednotek. Zbytek musela obstarávat minimapka a zběsilé posouvání obrazovky.
Z toho jsem již vyrostl a byl jsem překvapen, že po odstranění tohoto problému jsou tyto staré strategie stále velmi prudce hratelné.
Inu začal jsem něco podobné hledat i pro StarCraft, ale Stargus je míle od dokončení. Úprava alternativním enginem tedy nepřichází v uvahu.
Plán b) či spíše g) ukázal, že jistými způsoby je možné i originální engine dohnat do vyššího rozlišení.
Prográmků na to je několik. Trochu zestručním, z toho co jsem našel mi ve wine fungoval jen jeden jediný a to Resolution Expander 5.1 (ne 6.0, ten mi padal).
Takže k postupu.
Instalace
Nainstalovat StarCraft (a Brood War) klasickým způsobem a ihned po té aktualizovat na poslední verzi 1.16.1.
To přináší několik výhod.
Po těchto úpravách můžete Starcraft spustit. Bude fungovat a bude fungovat bez CD.
HiRes
Stáhnout Resolution Expander 5.1 a rozbalit do složky s hrou. Konkrétně soubory InsectLoader.exe ResolutionHack.dll a Resolution.ini.
Právě v tom ini najde sekci width a hight jež nastavte. V ini je pravopisná chyba u height ale funguje to s ní, tak nevím zda to opravovat, já to nechal.
Pak jen spouštět InsectLoader.exe a kochat se ;-)
Řešení problémů s výkonem
Popravdě, sám jsem s ním nikdy neměl problém, přitom na appdb se řeší.
Oprava: nikdy jsem s ním neměl problém, dokud jsem měl 640×480. Možná za to může ResExp, možná za to může wine.. zkrátka ve vyšším rozlišení mi chodil starcraft dost pomalu. Řídil jsem se radami na appdb, konkrétně:
V registru vytvořit klíč HKEY_CURRENT_USER/Software/Wine/Direct3D
a nakonec v nastavení wine odškrtnout „allow window manager to decorate the windows“.
Tyto úpravy už nejsou univerzální. Jsou grafické karty, kde to neudělalo nic, nebo to nešlo potom spustit. Na mé mobilní nvidii naštěstí fungovaly a výkon se vrátil téměř na normal.
Odlišnosti proti originálu:
Ač to zní velmi dobře, pár nevýhod to má.
Ale to vše je víc než překousnutelné vzhledem k přínosu jaké to má a silně doporučuji.
Všechny screenshoty, co jsou zde k vidění, jsou z mého notebooku s rozlišením 1280×800. Ještě mohu mít výhradu k menu dole vpravo, u Warcraftu na boku je mnohem přístupnější, ale člověk většinu dělá klávesama.
Omluvte gnomí kurzor v obraze, vsunul mi ho tam gnome-screenshot. Ve hře je samozřejmě klasický.
[gallery link=„file“]
n2n
viz místní článek
Hned z kraje řeknu, že se mi hra na UDP protokolu (IPX ani už nemám) nepovedla spojit.
Trocha cviku s Wiresharkem ukázala, že hra operuje na portu 6111 (i když všechny manuály píšou 6112) a hlavně: server je pasivní – vyšle informaci jen o spuštění a ukončení; klient je aktivní – každou ±vteřinu se se dotazuje na existenci serverů.
Ukázalo se, že jak klient, tak server posílají data na adresu 255.255.255.255 a ta mi vždy končila ve fyzické síti, ne vpn.
Na Windows ten samý případ.
Přiznám se, nenašel jsem způsob jak to vyřešit elegantně. Místo toho jsou si to naroutoval:
route add -net 255.255.255.255 netmask 255.255.255.255 dev gamevpn
gamevpn mám pojmenované zařízení, vy si budete muset dosadit edge0, n2n0 či co máte.
na Windows (už nějaké route ohledně 255.255.255.255 jsou):
route delete 255.255.255.255 *
route add 255.255.255.255 mask 255.255.255.255 ip_v_n2n
za ip_vn2n dosadit vaši IP.
Není to zrovna čisté řešení, ale čert to vem, funguje to. Má-li někdo lepší, rád se nechám poučit.
Stargus nebude ani nikdy dokonceny (iba ak by sa niekto nasiel, kto by ho dokoncil). Okrem Stratagusu existuje alternativny engine pre Starcraft I: http://bonzayrts.sourceforge.net/starcraft.html