Oryginalna strona colobot.cba.pl umarła, gdy cba.pl przestało oferować darmowy hosting. To jest statyczny mirror, pobrany w 2018. ~krzys_h
 
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 :mrgreen:
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 :mrgreen:

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. :shock:
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 :P ) 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? :lol:

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


Powered by phpBB modified by Przemo & WRIM © 2003 phpBB Group