Суть такова, программа определяет что у меня мой Phenomчик не умеет в sse4.2
говорит про это и всё дальше не работает.
А мне надо чтобы она валилась на traps
illegal instruction
.
Чуть расширенная суть csgo
обновилась до cs2
и теперь на моём Phenom2 X6 не работает.
Завёл issue
И там человек посоветовал попробовать модуль ядра opemu-linux
для эмуляции недостающих инструкций и попутно он его подправил для сборки на свежих ядрах.
Им (удобно) я определил что валится игра на инструкциях:
Типа
OPEMU: pmaxud xmm0, xmm1
traps: cs2[blabla] trap invalid opcode
...
OPEMU: pminud xmm0, xmm1
traps: cs2[blabla] trap invalid opcode
Как видно нужные инструкции в этом модуле не реализованы и я кое как добавил в ядромодуль эмуляцию этих инструкций, благо они простые, найти в двух 128 битных регистрах максимальные 32 битные значения и вернуть их, а теперь ксДва грит
Launcher Error: A CPU that supports the `SSE4.2` instruction set is required.
А мне надо чтобы именно что программа бы падала на invalid opcode/illegal instruction
а для этого программе надо соврать что процессор умеет SSE4.2
=) Вроде можно было фичи процессора подменять не, ну в смысле без правки ядра? В голове усердно торчит мысль что можно, но как не вспомню, гуглить не получается, сырцы сейчас рыть лень просто хочется ответа, голёва болит, носъ пихтит, горьло как сарделька, болякаю ой нимагу, пожалейте, подскажити болезному боляке йуууууу.
Да знаю я что можно просто через objdump
получить все инструкции и вычислить те что не хватает дело не в этом.
Ну /proc/cpuinfo
это для примера, нужно чтобы программы не думали что нужные им фичи есть и их проверки обламывались.