|
Polski Portal COLOBOTa COLOBOT Polish Portal |
|
COLOBOT ogólnie - Wykrywanie CD
krzys_h - 24-04-2011, 18:22 Temat postu: Wykrywanie CD Podejrzewam, że jeszcze nikt nic nie badał w tej sprawie, ale w jaki sposób colobot rozpoznaje swoją płytę CD? Jeśli w C2 byłyby nowe audiotracki to trzebaby znaleść sposób, aby po włożeniu płyty CD rozpoznawał jako własną i nie pokazywał komunikatu "Włóż płytę z grą colobot i uruchom grę jeszcze raz". Chyba żeby zrobić skrót z parametrem -nocd.
PS. Nie byłem pewien czy to dać do działu "Colobot 2" czy tutaj, ale ponieważ może przydać się też w jedynce, dałem tu. W razie czego proszę o przeniesienie
Sioner - 24-04-2011, 18:49
Ostatnio płyta z Colobotem pokryła mi się czarnymi przeźroczystymi kropkami(?). Dane był uszkodzone ale udało się uratować ścieżki audio(zapisałem na dysku). Miałem na innej płycie Colobota(bez ścieżek audio) i przekopiowałem z niej pliki na dysk. Potem to skleiłem na mixmode(dane + audio cd). Może to rozpoznaje po nazwie plików? Trzeba spróbować utworzyć puste pliki + dodać nowe ścieżki audio.
Simbax - 24-04-2011, 19:24
Rozpoznaje w ten sposób, że gra wyszukuje na płycie pliki zabezpieczające. Jeśli ma SecuRom oczywiście, ale co do tego nie jestem pewien...
Jeśli dobrze pamiętam, gdy testowałem różne parametry to z parametrem -nocd nie odczytywało audiotracków mimo, że płyta była w napędzie.
krzys_h - 25-04-2011, 09:25
Najłatwiejszy sposób: próbować różnych kombinacji
Najtrudniejszy sposób (i najszybszy): zerknąć do zdeassemblowanego kodu
Spróbuję tej drugiej opcji.
[ Dodano: 25-04-2011, 10:01 ]
MAM!
Co colobot robi aby sprawdzić, czy w napędzie jest właściwa płyta:
1) Pobiera wartość CDpath
2) Sprawdza czy jest to napęd CD
3) Sprawdza coś w pliku install.ini na płycie (nie udało mi się określić co)
Kod tej funkcji:
Kod: | 00433A33 SUB_L00433A33:
00433A33 55 push ebp
00433A34 8BEC mov ebp,esp
00433A36 83EC7C sub esp,0000007Ch
00433A39 894D84 mov [ebp-7Ch],ecx
00433A3C C7458800000000 mov dword ptr [ebp-78h],00000000h
00433A43 8D4594 lea eax,[ebp-6Ch]
00433A46 50 push eax
00433A47 6819000200 push 00020019h
00433A4C 6A00 push 00000000h
00433A4E 68C0B95300 push SSZ0053B9C0_Software_Epsitec_Colobot_Setup
00433A53 6802000080 push 80000002h
00433A58 FF1578545500 call [ADVAPI32.dll!RegOpenKeyExA]
00433A5E 894590 mov [ebp-70h],eax
00433A61 837D9000 cmp dword ptr [ebp-70h],00000000h
00433A65 740A jz L00433A71
00433A67 B814000000 mov eax,00000014h
00433A6C E9B9000000 jmp L00433B2A
00433A71 L00433A71:
00433A71 C7459801000000 mov dword ptr [ebp-68h],00000001h
00433A78 C7458C64000000 mov dword ptr [ebp-74h],00000064h
00433A7F 8D4D8C lea ecx,[ebp-74h]
00433A82 51 push ecx
00433A83 8B5584 mov edx,[ebp-7Ch]
00433A86 81C2AC000000 add edx,000000ACh
00433A8C 52 push edx
00433A8D 8D4598 lea eax,[ebp-68h]
00433A90 50 push eax
00433A91 6A00 push 00000000h
00433A93 68E0B95300 push SSZ0053B9E0_CDpath
00433A98 8B4D94 mov ecx,[ebp-6Ch]
00433A9B 51 push ecx
00433A9C FF1570545500 call [ADVAPI32.dll!RegQueryValueExA]
00433AA2 894590 mov [ebp-70h],eax
00433AA5 837D9000 cmp dword ptr [ebp-70h],00000000h
00433AA9 7506 jnz L00433AB1
00433AAB 837D9801 cmp dword ptr [ebp-68h],00000001h
00433AAF 7407 jz L00433AB8
00433AB1 L00433AB1:
00433AB1 B814000000 mov eax,00000014h
00433AB6 EB72 jmp L00433B2A
00433AB8 L00433AB8:
00433AB8 8B5584 mov edx,[ebp-7Ch]
00433ABB 8A82AC000000 mov al,[edx+000000ACh]
00433AC1 88459C mov [ebp-64h],al
00433AC4 C6459D3A mov byte ptr [ebp-63h],3Ah
00433AC8 C6459E5C mov byte ptr [ebp-62h],5Ch
00433ACC C6459F00 mov byte ptr [ebp-61h],00h
00433AD0 8D4D9C lea ecx,[ebp-64h]
00433AD3 51 push ecx
00433AD4 FF1544565500 call [KERNEL32.dll!GetDriveTypeA]
00433ADA 894590 mov [ebp-70h],eax
00433ADD 837D9005 cmp dword ptr [ebp-70h],00000005h
00433AE1 7407 jz L00433AEA
00433AE3 B815000000 mov eax,00000015h
00433AE8 EB40 jmp L00433B2A
00433AEA L00433AEA:
00433AEA 68E8B95300 push SSZ0053B9E8_install_ini
00433AEF 8D559C lea edx,[ebp-64h]
00433AF2 52 push edx
00433AF3 E8F8C70E00 call SUB_L005202F0
00433AF8 83C408 add esp,00000008h
00433AFB 68F4B95300 push L0053B9F4
00433B00 8D459C lea eax,[ebp-64h]
00433B03 50 push eax
00433B04 E837D80E00 call SUB_L00521340
00433B09 83C408 add esp,00000008h
00433B0C 894588 mov [ebp-78h],eax
00433B0F 837D8800 cmp dword ptr [ebp-78h],00000000h
00433B13 7507 jnz L00433B1C
00433B15 B815000000 mov eax,00000015h
00433B1A EB0E jmp L00433B2A
00433B1C L00433B1C:
00433B1C 8B4D88 mov ecx,[ebp-78h]
00433B1F 51 push ecx
00433B20 E86BD70E00 call SUB_L00521290
00433B25 83C404 add esp,00000004h
00433B28 33C0 xor eax,eax
00433B2A L00433B2A:
00433B2A 8BE5 mov esp,ebp
00433B2C 5D pop ebp
00433B2D C3 retn
|
Simbax - 25-04-2011, 13:52
Może po prostu sprawdza czy plik install.ini istnieje? Albo czy ma dobrą zawartość?
Hmm... Kiepskie zabezpieczenia ma Colobot. Wystarczy sobie przegrać oryginalną płytę na inną lub po prostu zrobić obraz iso i działa... Właśnie robię eksperymenty
krzys_h - 25-04-2011, 14:19
Ciekawi mnie końcówka tego pliku: coś co wygląda jak przypadkowe znaki. Możliwe, że sprawdza czy te znaki są na końcu pliku
adiblol - 25-04-2011, 14:42
Na pewno nie jest to zabezpieczenie na miarę SecuROM czy podobnych DRM-ów bo można elegancko je ominąć opcją -nocd
Apus - 25-04-2011, 14:46
adiblol napisał/a: | Na pewno nie jest to zabezpieczenie na miarę SecuROM czy podobnych DRM-ów bo można elegancko je ominąć opcją -nocd |
O co chodzi z tym nocd? Gdzie to zmienić czy coś?
Simbax - 25-04-2011, 14:53
@Apus PPM na skrócie do Colobota | Właściwości. W Element Docelowy dopisać -nocd.
Mógłby mi ktoś napisać jak nagrać płytę w taki dziwny sposób jak ta z Colobotem? Chodzi mi o to, że jest jednocześnie Audio CD i zwykłą z danymi...
krzys_h - 25-04-2011, 15:07
Podpinam się do @up. Jakim programem to zrobić?
Raptor - 25-04-2011, 15:47
Prawdopodobnie trzeba wypalić to w dwóch sesjach.
Przy okazji: Teraz kombinuję z programem ImgBurn, jak zrobić dobry obraz oryginalnego, Mantowskiego CoLoBoT'a w formacie .bin, aby były też AudioTracki (.iso chyba nie obsługuje wielościeżkowości i wielosesyjności). Obraz już zrobiłem, teraz muszę jeszcze sprawdzić, czy działa, na jakimś CD-RW (mój wirtualny napęd CD nie obsługuje BIN).
adiblol - 25-04-2011, 15:51
Bo do .bin potrzebujesz .cue, wtedy obsłuży.
Simbax - 25-04-2011, 16:31
Mi Ashampoo Burning Studio bez problemu zrobił obraz cue z audiotrackami. Pomijając fakt, że je źle nagrał, bo słychać pisk.
Raptor - 25-04-2011, 16:44
adiblol napisał/a: | Bo do .bin potrzebujesz .cue, wtedy obsłuży. |
Wiem o tym. Sprawdziłem już kompletny obraz CoLoBoT'a i wszystko działa, jak należy. Muszę też zmienić program wirtualizujący napęd CD, bo Virtual CloneDrive obsługuje jednak bin/cue, z tym że brakuje AudioTrack'ów...
Apus - 25-04-2011, 17:03
Z tego co rozumiem to próbujecie skopiować Colobota na inną płytę. Ja mam taką kopię i nie było z tym żadnych problemów.
Simbax - 25-04-2011, 17:05
Ja też mam taką płytę. Tylko nie pamiętam jakim programem była nagrywana.
krzys_h - 25-04-2011, 17:24
Chyba w Nero była opcja dane+audio. Niestety już go nie mam, więc nie mogę sprawdzić.
[ Dodano: 25-04-2011, 17:29 ]
Apus napisał/a: | Z tego co rozumiem to próbujecie skopiować Colobota na inną płytę. |
Gdy zakładałem ten temat chciałem zrobić płytę z zupełnie innymi danymi (Instalator C2 ) i inną muzyką (nowe audiotracki) tak, aby colobot widział ją jako "własną" i nie wyświetlał komunikatu "Włóż płytę z grą". Przy okazji próbuję się dowiedzieć jakim programem utworzyć taką płytę.
Apus - 25-04-2011, 17:32
@up Niestety nie ja robiłem tą kopię, więc nie powiem ci czym (próbowałem Nero, ale z tego co pamiętam to coś było nie tak).
EDIT: To było robione programem CloneCD. 21 dniowa wersja próbna jest za free.
Sioner - 25-04-2011, 19:11
Apus napisał/a: | próbowałem Nero, ale z tego co pamiętam to coś było nie tak |
Ja używam ultraiso jednak tam chyba nie ma takiej opcji, ale... mam na dysku nero ale się popsuło bo pali płyty. Jednak udało się zgrać nim colobota bezproblemowo.
adiblol - 25-04-2011, 20:07
Sioner napisał/a: | mam na dysku nero ale się popsuło bo pali płyty. | Ta, i dym leci z nagrywarki?
wodim ftw!
KulikStudios - 07-09-2012, 01:44
Aby prawidłowo nagrać obraz płyty typu AudioCD+ należy zgrać oryginalną płytę z Grą Colobot do obrazu BIN za pomocą Daemon Tools Lite pobierz tutaj.
Gdy nasz obraz będzie gotowy, można go emulować tymże programem.
Jeżeli jednak, chcemy manipulować przy ścieżkach dźwiękowych polecam Nero.
Pozdrawiam
|
|