No-CD для Hand of Fate CD-ROM |
Добро пожаловать, гость ( Вход | Регистрация )
No-CD для Hand of Fate CD-ROM |
Siberian GRemlin |
Aug 2 2007, 10:48
Сообщение
#1
|
Advanced Member Группа: CTPAX-X Сообщений: 533 Регистрация: 4-February 08 Пользователь №: 2 Спасибо сказали: 221 раз(а) |
Вообщем, решил поиграть во вторую Кирандию, но нормально так и не смог. VDMSound в оконном режиме не работает, а в DOSBox приходится вбивать каждый раз, чтобы он смонтировал образ в свой виртуальный CD-ROM, может конечно это и можно как-то автоматизировать, но эта падлюка после монтирования пытается работать с образом как с основным диском и игра говорит, что нету свободного места на винте и завершает работу. Вообщем, проще отучить от диска игру, чем изучать все премудрости других программ. Но что-то у меня не получается. Если интересно, вот файлик: http://slil.ru/24694340
Ресурсы игра берёт из папки [CD-ROM] :\HOF_CD\, естественно её надо приучить брать файлы из своей папки (папки с игрой) или из любой папки в папке с игрой. И не выводить дурацкое собщение "A CD-ROM device driver is required to run Hand of Fate CD.", а вместо этого нормально запускаться и работать. |
Siberian GRemlin |
Aug 7 2007, 06:36
Сообщение
#2
|
Advanced Member Группа: CTPAX-X Сообщений: 533 Регистрация: 4-February 08 Пользователь №: 2 Спасибо сказали: 221 раз(а) |
Всё работает. Спасибо! Я хочу разместить No-CD у себя на сайте в виде кряка, поэтому предлагаю решить его вопрос сообща.
CODE program ProjectHoFNoCD; {$APPTYPE CONSOLE} {$H-} uses SysUtils, Windows, Classes; const rus:byte=$EB; function TestExe:Boolean; var MSTR: TMemoryStream; begin if fileexists(ExtractFilePath(ParamStr(0))+'HOFCD.EXE') then begin MSTR:=TMemoryStream.Create; Mstr.LoadFromFile(ExtractFilePath(ParamStr(0))+'HOFCD.EXE'); if Mstr.Size=199284 then result:=true else result:=false; Mstr.Free; // if fileexists(ExtractFilePath(ParamStr(0))+'MAINDOS.EXE') then begin MSTR:=TMemoryStream.Create; Mstr.LoadFromFile(ExtractFilePath(ParamStr(0))+'MAINDOS.EXE'); if Mstr.Size=283328 then result:=true else result:=false; Mstr.Free; // if fileexists(ExtractFilePath(ParamStr(0))+'MAINWIN.EXE') then begin MSTR:=TMemoryStream.Create; Mstr.LoadFromFile(ExtractFilePath(ParamStr(0))+'MAINWIN.EXE'); if Mstr.Size=280000 then result:=true else result:=false; Mstr.Free; end else result:=false; // end else result:=false; // end else result:=false; end; procedure Patch(Logo: byte); var MSTR: TFileStream; begin MSTR:=TFileStream.Create(ExtractFilePath(ParamStr(0))+'HOFCD.EXE',fmOpenWrite,fmShareDenyWrite); Mstr.Position:=$EE29; Mstr.WriteBuffer(Logo,1); Mstr.Free; MSTR:=TFileStream.Create(ExtractFilePath(ParamStr(0))+'MAINDOS.EXE',fmOpenWrite,fmShareDenyWrite); Mstr.Position:=$181CD; Mstr.WriteBuffer(Logo,1); Mstr.Free; MSTR:=TFileStream.Create(ExtractFilePath(ParamStr(0))+'MAINWIN.EXE',fmOpenWrite,fmShareDenyWrite); Mstr.Position:=$181CA; Mstr.WriteBuffer(Logo,1); Mstr.Free; end; begin Write(' Hand of Fate No-CD'); Write(' Hack by -=CHE@TER=-'); Write(' Patch by Siberian GRemlin'); Write(' WWW.CTPAX-X.ORG'); Write(& #39;____________________________________________________________________________ ____'); if TestExe then begin patch(rus); WriteLn('All files patched successfuly.'); WriteLn('Please copy all files exept executables from [CD-ROM]:\HOF_CD to game folder.'); end else begin WriteLn('Some files of HOFCD.EXE, MAINDOS.EXE, MAINWIN.EXE not found or corrupted!'); WriteLn('Please reinstall game!'); end; Readln; end. |
Упрощённая версия | Сейчас: 27th April 2024 - 14:44 |