alpet83 / Lua-Interceptor

Lua extension DLL for X-Ray engine and NLC7.1 modification of S.T.A.L.K.E.R. SoC
3 stars 0 forks source link

Фикс для совместимости NLC с Linux/Wine #1

Open gbtb opened 1 month ago

gbtb commented 1 month ago

Привет. TLDR: я нашел баг, который препятствует работе luaicp под wine, но т.к. нет никого кто мог бы исправить его и собрать новую dll из исходников, мне пришлось пропатчить luaicp.dll с помощью ghidra.

Я перепощу сюда свое сообщение с форума NLC для контекста и истории :

Я сейчас прохожу открытую сборку 3.8.2 под Wine, пока дошел до подземелий Агро. Действительно, есть проблема в дополнительной nlcшной обвязке вокруг exeшника, из-за которой мне пришлось пропатчить luaipc.dll, т.к. при запуске на линуксе он не может построить правильный путь до fsgame.ltx . А от него пляшут все остальные пути до конфигов и прочего, и тогда хотя игра и стартует, nlcшная скриптовая магия не запускается. К счастью, исходники какой-то из ранних версий этой штуки лежат на гитхабе, так что у меня получилось разобраться и найти где формируется кривой путь. По-факту, все что нужно это вот тут убрать лишнюю точку в конце, чтобы просто было '..\' . После этого все стартует и прекрасно работает, так как сам SOC под wine уже давно вполне работоспособен. Было бы круто, если бы разрабы пересобрали luaipc с данным фиксом, но пока я могу скинуть тебе патченную dll, если хочешь. Вроде больше никаких трудностей не было, просто установил под Bottles с относительно свежей версией proton-GE и играю.

Собственно, год спустя нашелся еще один линуксоид, кого заинтересовал запуск под Wine и потребовалась патченная dll ка, поэтому я выложу ее сюда luaicp.tar.gz Можете сравнить hexdiff вашу старую и новую dll, там исправлено 2 байта - убрана точка, и поправлена контрольная сумма дллки (т.к. целостность бинаря проверяется системой перед запуском). Еще один важный момент, чтобы все работало надо чтобы у вас была активна русская локаль. По-дефолту у меня англ, так что я запускаю wine так: export LC_ALL=ru_RU.UTF8; bottles

alpet83 commented 1 month ago

Спасибо. Исправление залил. Проверять не имею возможности. Жаль что никто не адаптировал код под современную бесплатную Dephi CE, возможно не так много надо сделать.