Факт 1
Не знаю насколько известный факт но elite будучи запущенной в unreal на заставке Load New Commander бывает зависает/сбрасывается спустя энцать минут. Причем если запустить в спектакуляторе то может крутится вечно, по крайней мере мне надоедало быстрее. Причина была в говнокоде (#a79c), процедурка пыталась забрать значение со стека сохраняемое вызывающей. Ну то есть поп адрес возврата поп значение, потом обратно, при этом в игровом цикле там действительно что то было, а в заставке там было пзу (дефолтный стек по ffff). Шут бы с ним пзу так пзу, но прерывания то разрешены, и вот спустя энцать минут звезды выстраивались как надо и хана ret в неизвестность. В спекуляторе видимо из за эмуляции медленной памяти инты приходили удачнее, и в место х никогда не попадали.
Факт 2
В элите нет таблицы синусов, совсем нет.
Факт 3
В элите нет умножения, нет оно конечно есть но как правило используется формула через квадраты
((x+y)/2)^2-((x-y)/2^2=
(x^2+2xy+y^2)/4-(x^2-2xy+y^2)/4=
4xy/4=xy
Этого 2 деления на 2 (изи roll), 3 плюса-минуса (12 тактов не жалко) и 2 табличных квадрата. Мегафаст.
Таблица квадратов там конечно есть, причем она единственная таблица на всю игру, 512b.
3 дня проведены не зря, рабочий дизасм готов, часть откоменчена, еще хуева туча кода впереди. Код двигается без проблем, потихоньку разбираюсь оптимизирую.


