Недавно с другом сидели в дебаггерах - разбирали по кусочкам xrGame.dll сразу от финалки (он) и от билдов 2215/1935 (я). Он наткнулся на такой лок в движке:
Код
7C9034C8 F0:E4 00 LOCK IN AL,0 ; LOCK prefix is not allowed
Что именно он лочит, увы, понять было сложно в 27 тысячах страниц кода
А вот что до разбора "машинной" состовляющей, я нашёл весьма стояющий кусок. Вот сравнение (из финалки Сталкера, 4й патч):
CODE
SSZ10469018_E__stalker_patch_1_0004_xr_3da_x:
db 'E:\stalker\patch_1_0004\xr_3da\xrGame\CarDoors.cpp',0
db 00h;
db 00h;
db 00h;
db 00h;
db 00h;
SSZ10469050_Wrong_door_joint____Only_simple_:
db 'Wrong door joint!!! Only simple joint valid for a door and only one axis can be active, check other axes are zerro limited !!!',0
Align 4
И из xrGame.dll от билда 2215:
CODE
SSZ1047B798_Wrong_door_joint____Only_simple_:
db 'Wrong door joint!!! Only simple joint valid for a door and only one axis can be active, check other axes are zerro limited !!!',0
Align 4
SSZ1047B818_P__xr_3da_xrGame_CarDoors_cpp:
db 'P:\xr_3da\xrGame\CarDoors.cpp',0
db 00h;
db 00h;
db 00h;
db 00h;
db F0h; 'а'
db 41h; 'A'
db 00h;
db FEh; 'о'
db FFh; 'п'
db 46h; 'F'
db 00h;
db 00h;
db C0h; 'Ђ'
db 3Fh; '?'
db 95h;
db BFh; 'х'
db D6h; '–'
db 33h; '3'
db ACh; 'ї'
db C5h; '…'
db 27h; '''
db 37h; '7'
db 6Fh; 'o'
db 12h;
db 83h; '?'
db 3Ah; ':'
db 00h;
db 00h;
db F0h; 'а'
db 41h; 'A'
db 00h;
db FEh; 'о'
db FFh; 'п'
db 46h; 'F'
db 00h;
db 00h;
db C0h; 'Ђ'
db 3Fh; '?'
db 95h;
db BFh; 'х'
db D6h; '–'
db 33h; '3'
db ACh; 'ї'
db C5h; '…'
db 27h; '''
db 37h; '7'
L1047B864:
dd 3A83126Fh
db DBh; '›'
db 0Fh;
db C9h; '‰'
db 40h; '@'
db 00h;
db 00h;
db F0h; 'а'
db 41h; 'A'
db 00h;
db FEh; 'о'
db FFh; 'п'
db 46h; 'F'
db 00h;
db 00h;
db C0h; 'Ђ'
db 3Fh; '?'
db 95h;
db BFh; 'х'
db D6h; '–'
db 33h; '3'
db ACh; 'ї'
db C5h; '…'
db 27h; '''
db 37h; '7'
db 6Fh; 'o'
db 12h;
db 83h; '?'
db 3Ah; ':'
db DBh; '›'
db 0Fh;
db 49h; 'I'
db 40h; '@'
SSZ1047B888_cone_angle:
db 'cone_angle',0
Align 4
SSZ1047B894_headlights:
db 'headlights',0
Align 4
SSZ1047B8A0_lights:
db 'lights',0
db 00h;
db 00h;
db 00h;
db F0h; 'а'
db 41h; 'A'
db 00h;
db FEh; 'о'
db FFh; 'п'
db 46h; 'F'
db 00h;
db 00h;
db C0h; 'Ђ'
db 3Fh; '?'
db 95h;
db BFh; 'х'
db D6h; '–'
db 33h; '3'
db ACh; 'ї'
db C5h; '…'
db 27h; '''
db 37h; '7'
db 6Fh; 'o'
db 12h;
db 83h; '?'
db 3Ah; ':'
db DBh; '›'
db 0Fh;
db C9h; '‰'
db 40h; '@'
SSZ1047B8C4_CCar:
db 'CCar',0
db 00h;
db 00h;
db 00h;
db 00h;
db 00h;
db F0h; 'а'
db 41h; 'A'
db 00h;
db FEh; 'о'
db FFh; 'п'
db 46h; 'F'
db 00h;
db 00h;
db C0h; 'Ђ'
db 3Fh; '?'
db 95h;
db BFh; 'х'
db D6h; '–'
db 33h; '3'
db ACh; 'ї'
db C5h; '…'
db 27h; '''
db 37h; '7'
db 6Fh; 'o'
db 12h;
db 83h; '?'
db 3Ah; ':'
SSZ1047B8E4___Car_doesn_t_contain_sound_para:
db '! Car doesn',27h,'t contain sound params',0
Align 4
SSZ1047B908_transmission_switch:
db 'transmission_switch',0
SSZ1047B91C_relative_pos:
db 'relative_pos',0
Align 4
SSZ1047B92C_snd_name:
db 'snd_name',0
Align 4
SSZ1047B938_snd_volume:
db 'snd_volume',0
Align 4
SSZ1047B944_car_sound:
db 'car_sound',0
db 00h;
db 00h;
db 00h;
db 00h;
db F0h; 'а'
db 41h; 'A'
db 00h;
db FEh; 'о'
db FFh; 'п'
db 46h; 'F'
db 00h;
db 00h;
db C0h; 'Ђ'
db 3Fh; '?'
db 95h;
db BFh; 'х'
db D6h; '–'
db 33h; '3'
db ACh; 'ї'
db C5h; '…'
db 27h; '''
db 37h; '7'
db 6Fh; 'o'
db 12h;
db 83h; '?'
db 3Ah; ':'
L1047B968:
dd 47C35000h
Думаю и не программист заметит, что в 2215 (как и в 1935) часть кода, отвечающая за машину в игре, куда больше, чем в финалке. В коде от 2215 есть и работающие двери и трансмиссия и т.п. чего нету, по понятным причинам, в финалке. Что по поводу финалки - тут у нас было три варианта: 1) Кусок кода просто вырезан и помогло бы его копирование из 2215 файла. 2) Двери машины вырезаны из cardoors.cpp и без исходников ничего сделать уже нельзя. 3) Поскольку код дверей в xrGame.dll от финалки НЕ залочен, то была высказана идея, что вырезан код анимации дверей машины и, опять таки, без исходников - пустая трата времени.
Программистов, которые разбираются в машинном коде и понимают библиотеки очень прошу высказать вердикт - можно ли что-то сделать с дверями машины (которые открывались в 1935) или всё-таки гиблое дело?