Możesz pominąć całą historyjkę i od razu przejść do instrukcji jak usunąć problem z saveami w grach Drit 3 / Test Drive Unlimited / Gears of War i pewnie innych produkcjach wspieranych przez GFWL.

Cieszę się, że żyję w czasach w których mogę sobie w sklepi kupić oryginalną grę jak cywilizowany człowiek, obejrzeć kolorowe pudełko, poczytać reklamowe slogany a potem po prostu zainstalować grę i się nią cieszyć tak jak to powinno być. Widać jednak, że życie oryginalnych użytkowników nie jest takie różowe.

For English instructions (without crapy story) – how to fix savegame problem in Drit3 / Test Drive Unlimited / Gears of War and other GFWL productions.

Uważam się za „powersuera”, kogoś kto wykorzystuje cały potencjał sprzętu, odblokowuje rdzenie, używa macierzy dyskowych, przetaktowuje „co się da”, trzyma dokumenty i system na osobnych partycjach. I za to się płaci, bo jak robisz coś inaczej niż wszyscy to prędzej czy później trafisz na problem którego nikt nie ma.

Tak się stało, że nabyłem sobie oryginalną wersję Test Drive Unlimited wraz z MegaCar pakiem, bo to za*****a gra (nie jako wyścigi ale jako MMO)  i ma duże wsparcie. I jakie było moje zdziwienie gdy gra nie chciała połączyć się z serwerami Atari a do tego nie zapisywała stanu gry (na ten problem trafiłem już kiedyś przy Gears of War). Zonk! Przed całą zabawą dodam, że Test Drive Unlimited nie łączy się z serwami właśnie  przez to, że nie potrafi zapisać stanu gry (mimo patcha 1.66a).

Mój sposób rozwiązania problemu przedstawię na przykładzie gry Drit3, ale sposób jest uniwersalny. Problem bierze się z wadliwego systemem dostępu do zapisu, które nie pozwalają grze zapisać stanu gry jeśli mamy dokumenty na innej partycji (ja mam system na C a dokumenty luzem na F). W serwisie gram.pl (bo przecież mam oryginalną kopię więc mam prawo do pomocy technicznej) znalazłem wołającą o pomstę do nieba poradę żeby przenieść dokumenty z powrotem na C. Co to za metoda?! Przecież mam jakiś powód, dla którego ich tam nie trzymam, np. możliwość reinstalacji systemu bez kopiowania dokumentów albo małej pojemności dysku SSD). A więc do dzieła.

Jak obejść problem z zapisywaniem stanu gry na przykładzie Drit 3

Nie odpowiadam za szkody jakie można wyrządzić stosując metody tu opisane. Robisz wszytko na własne ryzyko. Możesz umieścić ten amuoczuek ina innej stronie ale zawsze dodaj link do tego oryginalnego materiału.

Mam system Windows 7 x64 (powinno działać pod Vistą, pod xp64 wymagana jest zmiana ścieżek dostępu do katalogu z profilem użytkownika), a dokumenty luzem na partycji F, Drita3 mam na partycji G w katalogu \Drit 3\.

Mój „hak” polega na zmianie lokalizacji dokumentów na czas gry bez przenoszenia dokumentów, poprzez automatyczne zmiany w rejestrze.

  1. W katalogu z grą Dirt3 tworzymy 3 pliki:
    start_game.bat
    my_doc.reg
    my_doc_mod.reg
  2. Następnie edytujemy ich zawartość. Plik  start_game.bat odpowiedzialny jest za zmiany w rejestrze, uruchamianie gry, a następnie importowanie pierwotnych ustawień
    @echo off
    reg import my_doc_mod.reg
    dirt3.exe
    echo Jak SKONCZYSZ grac wcisnij dowlony klawisz.
    pause
    reg import my_doc.reg

    Plik my_doc.reg zawiera informację gdzie znajduje się nasze dokumenty „na co dzień”. W tym pliku należy podać rzeczywistą lokalizację naszych dokumentów. Można ją zaczytać z odpowiedniej gałęzi rejestru, w moim przypadku jest to F:\, przy czym znak „\” jest powielony:

    Windows Registry Editor Version 5.00
    
    [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders]
    "Personal"="F:\\"
    
    [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders]
    "Personal"="F:\\"

    W pliku my_doc_mod.reg podajemy lokalizację naszych dokumentów tylko na czas gry, musi to być gdzieś na dysku C, ja po prostu trzymam to w katalogu użytkownika, w podkatalogu Docs

    Windows Registry Editor Version 5.00
    
    [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders]
    "Personal"="C:\\Users\\Marcin\\Docs"
    
    [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders]
    "Personal"="C:\\Users\\Marcin\\Docs"
  • Następnie uaktualniamy skrót do naszej gry tak aby zamiast na dirt3.exe wskazywał na start_game.bat i gotowe.

Próbowałem też zautomatyzować drugi wpis do rejestru poleceniem start /wait ale nie zawsze on działa ponieważ gry składają się z wielu plików wykonywalnych i czasem wpis zostaje zmieniony zanim gra się odpali. Możesz pokusić się o komentarz :)
A teraz wersja dla reszty świata.


How to fix game progress (and settings) not being saved, based on Drit 3 example (works also on Test Drive Unlimited, Gear of War, …)

I’m not responsible for any damage you can do to yourself with this tutorial, you’re doing everything at your own risk. Please do not steal my work and always include a link to original tutorial.

Show DIRT savegame fix
This fix was tested on Windows 7 x64 (it should work under Vista, with xp64 you need to change some user profile patch to Docuemnt and Settings). Normally I have all my documents on drive F. Drit3 is on my G partition in \Drit 3\ folder.My hack is changing document location for game play time without moving all document. The problem is somehow connected to permission problem that exists if documents are on different partition that system.

  1. We need to create 3 new files in Dirt3 folder:
    start_game.bat
    my_doc.reg
    my_doc_mod.reg
  2. Then we need to edit the as follows. start_game.bat file imports new documents location then starts the game and reverts all changes:
    @echo off
    reg import my_doc_mod.reg
    dirt3.exe
    echo After you have FINISHED playing press any key.
    pause
    reg import my_doc.reg

    my_doc.reg contains current, every day use location of docuemnts. I’n my case it’s F:\, please note that every slash is double:

    Windows Registry Editor Version 5.00
    
    [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders]
    "Personal"="F:\\"
    
    [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders]
    "Personal"="F:\\"

    my_doc_mod.reg contains fake, just-for-gametime location of document, that game doesn’t have problem writing to. In my case it’s „Docs” folder inside my user „Marcin” folder.

    Windows Registry Editor Version 5.00
    
    [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders]
    "Personal"="C:\\Users\\Marcin\\Docs"
    
    [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders]
    "Personal"="C:\\Users\\Marcin\\Docs"
  • Then you need to update you game shortcut from dirt3.exe to start_game.bat and that’s it.

I was trying to import old settings automatically after the game ends with start /wait but modern game have many executable file and it’s not easy to detect when exactly the game ends. If it works for you please comment.