Egor
https://github.com/groverburger/g3d
там тоже есть setRotation и принимает квартернион...а как его расчитать....то есть что ему из вектором\позиций передать..боль
Luсky
Да, ешь мясо и спи не меньше восьми чесов.
Egor
боль от растущих нейронных связей. Терпи и задрачивай матрицы. За месяц прорастут и ты поймёшь.
можешь ли кинуть какой-то курс (да, могу сам найти в гугле, но не факт что там нормальные) ?
Luсky
На хабре есть курс
Luсky
Публикации / Профиль haqreu / Хабр https://habr.com/ru/users/haqreu/
Luсky
спасибо
Творческих узбеков!
Luсky
Если надоест, просто скачай Godot.
Egor
Если надоест, просто скачай Godot.
нет даблов ) либо я не нашел
Luсky
нет даблов ) либо я не нашел
This? https://godotengine.org/article/emulating-double-precision-gpu-render-large-worlds/
Igor
Слушайте, а знает кто-нибудь, между Lua 5.0 и 5.1 прям капец сильно байткод разнится? Можно ли старый путём патчей до 5.1 довести? Предполагаю, что изменить хедер будет недостаточно))
Igor
Мне просто как-то лень лазить по исходникам того и другого компилятора и сравнивать сидеть
UtoECat
Мне просто как-то лень лазить по исходникам того и другого компилятора и сравнивать сидеть
И ты предлагаешь это делать другим за тебя? 😁 Я сейчас в своеобразном отпуске, помочь не смогу сильно. По факту, достаточно будет сравнить количество инструкций и количество и тип их аргументов. Но. Ты не пробовал взять за основу какой-нибудь декомпилятор байткода обратно в код? И потом его скомпилить в 5.1? Даже если у тебя вм 5.0 кастомная, добавить парочку инструкций в существующий инструмент будет легче чем писать свой и уж тем более легче чем делать всё это ручками 😁
Igor
Если нет, то че уж делать, полезу сам
UtoECat
Не предлагаю, а спрашиваю, может уже кто сравнивал и инфой поделиться может
Наврятли. Так как за нас уже многое сделано. Для меня вариант с декомпиляцией звучит как самый лёгкий. Думаю другие тоже бы пошли по этому пути
Igor
Декомпилятора нормального просто нет
Igor
Оригинальный LuaDec, что написан Хишамом просто крашится от скриптов, которые я ему кормлю
UtoECat
Декомпилятора нормального просто нет
В каком именно плане? То, что на выходе может получаться разный байткод это нормально. Главное чтобы был одинаковый функционал.
Igor
А те, которые у него получается декомпилировать теряют куски кода какие-то
Igor
И декомпилятор об этом никак не сообщает
Igor
Да, я сравнивал машины
Igor
Разве что lua_Number заменен с double на float, больше изменений нет
Igor
Но и это изменение я внёс в декомпилятор, естественно
UtoECat
Да, я сравнивал машины
И кастомных defineов не было, меняющих типы данных?
Igor
И кастомных defineов не было, меняющих типы данных?
Я в оригинальном бинарнике полностью подменил все API функции Lua на 5.0.3
Igor
Путём хукования
Igor
И байткод нормально исполняется ванильной машиной
UtoECat
Но и это изменение я внёс в декомпилятор, естественно
Возможно не до конца внёс 😁 Нужно отлаживать сильнее, видимо.
UtoECat
И байткод нормально исполняется ванильной машиной
Каким образом, если ты поменял функции на 5.0.3 когда байткод у тебя 5.0.1? Ты что-то не догавариваешь...
Igor
Байткод разнится только между мажорными версиями Lua
UtoECat
Между 5.0.x не разный байткод
А стоп. Прочитал как 5.3. Понял
Igor
А вообще изначальная машина там 5.0.2, я её до 5.0.3 подменил и всё работает
UtoECat
А вообще изначальная машина там 5.0.2, я её до 5.0.3 подменил и всё работает
Ну тогда да, дебажить декомпилятор, разве что. А пробовал грузить байткод отдельно? На виртуалке? Т.е не чтобы он выполнятся, а просто для проверки, что он может загрузится без ошибок. Просто тебе и так придётся копаться в lvm.c и загрузчике/дампере байткода 5.0 для этого, а в случае написания отдельного инструмента ты нагрузишь себя этим вдвойне, с версии 5.1, что не хорошо, можно очень легко запутаться.
Igor
Блин, точно, вспомнил, там же вроде инструкции какие-то депрекейтнули при переходе на 5.1
Igor
Не... В ванильную 5.0 загрузи
Да в неё-то че загружать, и так знаю, что загрузится
UtoECat
Да в неё-то че загружать, и так знаю, что загрузится
А ты загрузи. Чтобы точно знать уже Семь раз отмерь, как говорится...
Igor
Ванильная lua50, только с измененным типом lua_Number, байткод скрипт из игры
Igor
unluac.jar не работает?
Работает, но та же сказка
Igor
Какой-то код теряется
Igor
и регистры портятся
Aqendo
Есть программа на андроид, sstool называется, китайская
Aqendo
Она тоже декодит
Igor
Есть программа на андроид, sstool называется, китайская
Скорее всего там тоже за основу взят luadec
Igor
или unluac
Aqendo
Но там настраивается декодинг
Igor
Декомпилировал скрипт вот этот util.lur через unluac
Igor
Это прям совсем маленький скрипт
Igor
Обёртка над корутинами, грубо говоря
Igor
Попытался его игре подсунуть
Igor
И в ответ получил это: Lua Thread: 0x13497E70[1] error: Scripts\Dumps\util.lua:73: attempt to call local `L0_4' (a nil value)
Igor
Соответственно опять какой-то кусок кода потерялся
Igor
Aqendo
кстати унлуаки тоже разные есть
Aqendo
сейчас попробую найти разные...
Igor
сейчас попробую найти разные...
я один толкьо знаю, что на гитхабе валяется
Aqendo
модификации есть
Igor
Кстати важная заметка, у скриптов игровых вырезаны байткодные дебаг-данные
Igor
Именно это и сводит декомпиляторы с ума
Igor
Подсунь в ванильную луашку, в ванильную вм.
она исполнит, потому что это рантайм ошибка
Igor
а сам скрипт синтаксически верен
Igor
И в ответ получил это: Lua Thread: 0x13497E70[1] error: Scripts\Dumps\util.lua:73: attempt to call local `L0_4' (a nil value)
Декомпильнутый LuaDec'ом Lua Thread: 0x179995A0[1] error: Scripts\Dumps\util.lua:43: attempt to call a nil value
Igor
Оба примерно на одном месте запинаются
Igor
Aqendo
Скрипт приватный? У меня есть апк декодера, но я хз вирус или нет, поэтому лучше не буду присылать
Aqendo
Могу попробовать расшифровать
Igor
UtoECat
Декомпилировал скрипт вот этот util.lur через unluac
В unluac чёрным по белому в readme написано, что debug info is required. Поэтому да, надо искать другой декомпилятор, которому не нужен debug info
Igor
Предположил, что она для восстановления нейминга нужна
Aqendo
http://hg.code.sf.net/p/unluac/hgcode unluac обновляется до сих пор что-ли?