Svět Might and Magic

Komunitní fórum stránek Svět Might and Magic

  • Leden 30, 2025, 19:21:38
  • Vítejte, Host
Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Pokročilé vyhledávání -

Autor Téma: Pomalé spouštění Might and Magic VI na Windows 7  (Přečteno 10220 krát)

Elemir

  • Administrator
  • Zasloužilý člen
  • *
  • Příspěvků: 7562
Pomalé spouštění Might and Magic VI na Windows 7
« kdy: Květen 03, 2022, 15:14:36 »

Upozornění: jedná se zatím jen o nástřel postřehů a možností, příspěvek proto budu postupně doplňovat!

1. O co jde?

Po spuštění Might and Magic VI následuje 1,5-2,5 minuty dlouhá prodleva, než se hra skutečně spustí. Poté hra běží bez problémů. Chyba se projevuje bez ohledu na verzi hry a režim kompatibility s předchozími verzemi Windows ničemu nepomůže, popř. se objeví chybová hláška související s knihovnou MSS32.DLL.

Knihovna MSS32.DLL reprezentuje Miles Sound System a do Windows se může dostat hned několika cestami (ovladače, instalace Visual C++ Runtime, hry apod.). Might and Magic VI využívá knihovnu MSS32.DLL umístěnou v kořenovém adresáři hry, která souvisí s RAD Game Tools. Jedná se pravděpodobně o upravenou verzi knihovny, takže její prostá náhrada za jiné verze knihovny vede k různým chybám. Prodleva ve spuštění hry je zřejmě způsobena pomalou interpretací (načtením) knihovny ve VC++ Runtime, kde se to možná mezi sebou chvilku hádá.

Původně jsem problém připisoval grafickému subsystému, ale hrátky s DirectX a různými kartami problém nevyřešily.

GOG verze hry vychází z Mok's patche pro Might and Magic VI, kdy jsou knihovna MSS32.DLL a spouštěcí soubor hry nahrazeny upravenými verzemi. Tento postup je samozřejmě použitelný i pro CD verze hry, nicméně není nutný. Důležité je, aby byly knihovna a spouštěcí soubor správně spárovány. GOG k tomu využívá ještě jeden mezikrok, kdy kombinuje knihovnu MSS32.DLL s knihovnou MSS32A.DLL. Knihovna MSS32A.DLL představuje originál upravené knihovny a knihovna MSS32.DLL pak redefinuje některé rutiny této knihovny (ve zbytku rutin se odkazuje zpět na knihovnu MSS32A.DLL). Tím se zřejmě řeší rozšíření možností nastavení hry skrze config MM6.INI.

Existuje samozřejmě další upravená verze knihovny, která je např. součástí modifikací série Might and Magic a Heroes of Might and Magic III (pracují s ní např. GrayFace patche). I tak je ale nutné nastavit spouštěcímu souboru MM6.EXE kompatibilitu na Windows 98/ME (tedy tak je to alespoň u mě). Mým cílem je ovšem zprovoznit originál instalačky a instalačky s aplikovaným Mok's patchem.

2. Kombinace knihoven

Na netu jsem našel celou plejádu verzí knihovny MSS32.DLL, ale ani jedna nefunguje v kombinaci s originálním spouštěcím souborem nebo úpravou tohoto souboru z Mok's patche. Knihovna obvykle hlásí jednu ze dvou možných chyb (dle použité verze). Zřejmě proto hra využívá vlastní modifikaci, kde jsou volané rutiny již odstraněny. Zajímavé je, že nastavení kompatibility spouštěcího souboru na Windows 98/ME vede v takovém případě k tzv. shrinku (objeví se prázdný soubor SHRINKER.ERR).

3. Dekomprese knihovny

Samo o sobě to nic neznamená, ale poskytlo mi to vodítko k hledání dalších indicií, respektive mi to pomohlo pospojovat si několik věcí dohromady. Už v roce 2004 se na TELP objevilo pár témat k problémům knihovny MSS32.DLL (viz třeba M&M6 - an mss32.dll problem), ve kterých se zmiňuje postup tzv. deshrinku. Knihovna MSS32.DLL je totiž z úsporných důvodů komprimována a někdy se stane, že jí systém nedokáže rozbalit a načíst. U mě načíst jde, ale jak jsem psal na počátku příspěvku, trvá to velmi dlouho. Pomoci by měla proto její dekomprese s pomocí programu DeShrink.

Tenhle postup se pak objevuje ještě v několika pozdějších tématech napříč různými diskusními fóry (např. Compatible Support Forums - Might and Magic won't play! HELP ME PLEASE! nebo VOGON - Might and Magic running on winxp/win7 and maybe newer). Zpětně jsem se dostal až na Andyho příspěvek na Celestial Heavens, který si z minulosti dobře pamatuju. Řešila se v něm kompatibilita M&M her obecně - tohle celé pak zdárně vyřešily a zjednodušily Mok's patche (jsou zmíněné v diskusi pod příspěvkem).

Zajímavé je, že podobný problém mělo ve své době i WINE - [Bug 2608] Might and Magic VI wont run until "DeShrinker" program is run on mss32.dll, takže to není zas tak neobvyklá věc, jak by se zprvu mohlo zdát. Já měl asi opravdu kliku v tom, že jsem měl před reinstallem Windows 7 nainstalováno takových věcí, že jsem zřejmě nechtěně dospěl do stavu, kdy mi to fungovalo bez problémů. Po reinstallu je to ovšem jinak :)

DeShrink je možné stáhnout z webu SAC.

4. Další postupy?

Samozřejmě se nabízí otázka, zda-li to jde vyřešit i nějak globálně? Možná ano, možná ne ;) Osobně se kloním spíše k tomu ano. Problém je totiž někde na straně Visual C++ Runtime a Windows 7, kdy oba louskají ten kód příliš dlouho. Navíc si vybavuji, že jsem šestku na Windows 7 už kdysi spouštěl a nebyl s tím problém. I když to je dost ošemetné, protože se mi mohlo povést nějak prolinkovat GF verzi MSS32.DLL. Samotného problému jsem si všiml až při testech čistých CD instalaček po reinstallu Windows 7.

Každopádně tohle je část, kterou budu teprve testovat. V první řadě potřebuju otestovat dekompresi a krom toho se podívat na registry, protože i v nich může být zakopaný pes.

nezpracované odkazy ...

https://community.pcgamingwiki.com/files/file/514-miles-sound-system-mss-v60m/
The Miles Sound System ... https://web.archive.org/web/20041015000000*/http://www.radgametools.com/mssdown.htm
https://web.archive.org/web/20040805224024/http://www.radgametools.com/mssdown.htm
IP zaznamenána
This is the end ...

tono

  • Zasloužilý člen
  • *****
  • Příspěvků: 836
Re:Pomalé spouštění Might and Magic VI na Windows 7
« Odpověď #1 kdy: Květen 03, 2022, 16:27:35 »

Ani neviem že takýto problém existuje. Roky som to hral pod W7, neskôr aj na W8 a bolo to OK. A to som experimentoval s MODmi.
IP zaznamenána

Elemir

  • Administrator
  • Zasloužilý člen
  • *
  • Příspěvků: 7562
Re:Pomalé spouštění Might and Magic VI na Windows 7
« Odpověď #2 kdy: Květen 03, 2022, 17:10:07 »

S velkou pravděpodobností je na té instalaci Windows 7 něco špatně, ale těžko říci co. Podobný výsledek dostanu i v kombinaci s virtualizovaným systémem. Někde na celé té cestě chybí prvek, který do systému cosi přidá a ten prvek může být klidně jiná hra, běžný software nebo cokoliv, co bylo před cca 5-10 lety běžné. Ta knihovna totiž v samotném systému chybí, přestože by měla být dodaná skrze Visual C++ Runtime. Proto to není tak běžný problém, ale za určitých okolností se holt vyskytne, no a to se stalo zrovna mě :D

Edit: tohle je třeba z README GF 2.1

[-] MSS32.dll bugs fixed by using a newer version of it. The bugs are: With original version the game didn't run on some systems producing SHRINKER.ERR file with "Pager initialisation error 2" in it. With version from Mok's patch the game could hang when you enter lords' castles or a movie show up.

Našel jsem k tomu i téma na Celestial Heavens, kdy k té úpravě docházelo.

Edit 2: tak ta oprava je snad dokonce už z verze GF 1.10

« Poslední změna: Květen 03, 2022, 17:46:28 od Elemir »
IP zaznamenána
This is the end ...

Elemir

  • Administrator
  • Zasloužilý člen
  • *
  • Příspěvků: 7562
Re:Pomalé spouštění Might and Magic VI na Windows 7
« Odpověď #3 kdy: Květen 03, 2022, 20:59:42 »

CD instalaci jsem opravdu rozchodil ve svižném tempu kombinací dekomprese knihovny MSS32.DLL a nastavením kompatibility na Windows 98/ME.

U GOG verze tenhle postup nemá smysl, protože knihovna je již dekomprimována. Problém bude opravdu ve verzích a těch úprav by bylo potřeba více. Koliduje to totiž s kompatibilitou.
IP zaznamenána
This is the end ...

Elemir

  • Administrator
  • Zasloužilý člen
  • *
  • Příspěvků: 7562
Re:Pomalé spouštění Might and Magic VI na Windows 7
« Odpověď #4 kdy: Květen 04, 2022, 09:41:37 »

Prohlídka registrů byla poměrně rychlá a nic podezřelého jsem přitom neobjevil. Na GOG jsem ještě narazil na jedno téma o kompatibilitách, tak jak to obvykle řeší GOG (viz Launching Might and Magic VI vanilla GOG install - how to fix the DDraw error), ale to mě prakticky nemusí zajímat.

Zdá se tedy, že jsem uvízl na mrtvém bodě a s GOG instalačkou prozatím nijak nehnu. Ostatně to samé se týká Steam verze, která používá shodné binárky hry, akorát s menšími úpravami kolem. No, jak už jsem jednou někde psal, principielně je blbost tohle nějak do hloubky řešit :) Jednak je to vzácný problém (jak vidno, jsem první, kdo to tu za celá ta léta řeší :D) a navíc je řešitelný instalací GF patche. Mě akorát nejde do hlavy, proč ten problém nastal a jestli jsem ho opravdu jen celá léta přehlížel.

Z tohoto důvodu jsem zkusil zavzpomínat, jestli si to opravdu dobře vybavuju. Na Windows 7 jsem přešel v roce 2017 po skoro dvouleté zkušenosti s Windows 10. Předtím jsem používal cca do roku 2014 Windows XP, která jsem nahradil za Windows 8.1 (přes ně jsem pak v roce 2015 nainstaloval Windows 10). Windows 7 ke mě dorazily zhruba v době upgrade PC, takže když to vezmu, je to cca 5 let, co mám hardware a systém stejný. Navíc jsem pro hraní starších her stále využíval notebook s Windows XP. Je tedy opravdu klidně možné, že ta chyba se tu vyskytuje po celou dobu, protože poslední větší testy s Might and Magic jsem prováděl na Windows 8.1 nebo na notebooku. Navíc jsem ty zřídkavé pokusy na Windows 7 zřejmě prováděl ve verzi s nainstalovaným GF patchem. V tomhle ohledu začínám zjišťovat, že na paměť už se moc spoléhat nemůžu :D

Každopádně jsem vyřešil problém s CD instalačkami a to má pro mě klíčovější význam.
IP zaznamenána
This is the end ...

Elemir

  • Administrator
  • Zasloužilý člen
  • *
  • Příspěvků: 7562
Re:Pomalé spouštění Might and Magic VI na Windows 7
« Odpověď #5 kdy: Červen 06, 2023, 22:20:15 »

Dneska jsem se zkusil s odstupem času na celý problém podívat ještě jednou. Po vytvoření dualbootu Win7/10 jsem totiž musel Windows 7 reinstalovat a problém byl opět na světě. Napadlo mě, že by to mohlo mít něco společného s DirectPlay, což je komponenta používaná (ještě) v DirectX 9.0c a ta pak občas dělá problém ve Windows 10 (DirectPlay je pro vyšší verze DirectX obsoletní a třeba už u Windows 8 bylo nutné doinstalovat příslušnou "aktualizaci" - shodou okolností jsem na to narazil u Heroes). Nicméně u mě není patřičné menu ani dostupné a reinstal DirectX 9.0c také nepomohl (DX9 jde jakoby přinstalovat k DX 11). Zkoušel jsem opět vše možné a bez úspěchu. Dokonce jsem zjistil, že mi tentokrát blbne i virtualizace pod VirtualBoxem, ale to s tím asi nesouvisí :).

Na PCGamingWiki jsem našel ještě odkaz na úpravu knihovny ddraw.dll (program DXGL), ale od toho jsem si taky moc nesliboval. Zkoušel jsem totiž předtím ještě dgVoodoo 2, které pro změnu na MM6 vůbec nefungovalo. Navíc jsem pochyboval, že by byla chyba právě v ddraw.dll. A skutečně, nic se nezměnilo.

Nepomohly ani hrátky s xp-patchi a nastavováním kompatibility, což jsem pro jistotu také zkoušel komplet od znovu. Nakonec mě napadlo stáhnout GOG instalačku šestky a nainstalovat jí ...

Ze zástupce GOG instalačky jsem hru nespustil, namísto toho se objevila hláška o nutnosti vložit CD, což souviselo s posledním pokusem nainstalovat xp-patch na předchozí (jinou) instalačku. Šel jsem proto přímo do GOG adresáře hry a spustil MM6 odtud. A ejhle, hra se spustila ihned a bez problémů.

Nakonec to asi nebyl ani tak problém Windows 7, jako spíš problém s kombinací instalaček, kdy se v registrech vytvořil nějaký bordel. Zřejmě se mi už na začátku něco blbě nainstalovalo a všechny ostatní instalačky pak tuhle chybu přebíraly, což bylo vidět právě na tom prolinkování zástupce GOG instalačky s jinou instalačkou.

Problém to ale vyřešilo jen z části, dalším pozorováním jsem zjistil, že řešení ve skutečnosti spočívá v tom, že musím spouštěcí soubor hry odklikávat 2x po sobě. To první odkliknutí vede k dlouhému načítání, ale to druhé už spustí hru hned.

Edit: stejné urychlení pak funguje třeba i na Deus Ex, takže těžko říci, v čem je vlastně chyba. Každopádně i tohle řešení je pro mě dostačující, protože předtím jsem na spuštění MM6 čekal i více jak 2 minuty.
« Poslední změna: Červen 06, 2023, 22:36:37 od Elemir »
IP zaznamenána
This is the end ...

Elemir

  • Administrator
  • Zasloužilý člen
  • *
  • Příspěvků: 7562
Re:Pomalé spouštění Might and Magic VI na Windows 7
« Odpověď #6 kdy: Červen 22, 2023, 07:35:33 »

Tak jsem zjistil, že problém mají nakonec jen MM6 a skutečně to asi bude souviset s nějakým bordelem v registrech.

U Deus Ex jsem totiž zjistil, že stačí nastavit kompatibilitu na Windows XP SP2 nebo 3. Podobné problémy jsem měl totiž nedávno u Wizards and Warriors a Wizardry 8. U W&W jsem si pak vzpomněl, že i na Windows XP jsem musel nastavit kompatibilitu na Windows 98/Me, u Wizardy 8 pak stačila kompatibilita s Windows XP SP2/3. U W&W mě akorát překvapilo, že jde o GOG instalačku, takže jsem si myslel, že to mají pořešené už v defaultu.

Každopádně řešení skrze dvojité spouštění mm6.exe je pro mě nakonec dostačující. Řekl bych, že předtím jsem to neregistroval jen proto, neboť se po prvním dvojkliku nic nedělo, takže jsem na soubor klikl automaticky hned podruhé. Dokud jsem to tedy nepovažoval za chybu, tak jsem to tak nějak neřešil a nevšímal si toho :D. No a hlavně většinu testů jsem prováděl na notebooku, kde mi vše fungovalo krásně.
IP zaznamenána
This is the end ...