Дизасм Elite
Дизасм Elite
Факт 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 дня проведены не зря, рабочий дизасм готов, часть откоменчена, еще хуева туча кода впереди. Код двигается без проблем, потихоньку разбираюсь оптимизирую.
Не знаю насколько известный факт но 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 дня проведены не зря, рабочий дизасм готов, часть откоменчена, еще хуева туча кода впереди. Код двигается без проблем, потихоньку разбираюсь оптимизирую.
блин, ShadowMaker выкладывал проект с дизасмом.krt17 писал(а):
3 дня проведены не зря, рабочий дизасм готов, часть откоменчена, еще хуева туча кода впереди. Код двигается без проблем, потихоньку разбираюсь оптимизирую.
там тоже что-то было прокомментировано,
но похоже всё заглохло.
еле нашёл начало истории
http://web.archive.org/web/20130708071839/http://elite.mrs.mn/index.php?title=Заглавная_страница
Ну я такой задачи не ставил, мне изначально хотелось поправить странную отрисовку кобры на заставке, иногда проскакивают треугольники которые скрыты. Ну и просто посмотреть, почему же так тормозно. Так то код конечно грязноват, часто встречаются переменные которые не используются, видно в муках и аврале все писалось. Оптимизации по мелочи тоже прилично, когда (наверное никогда) все откоменчу можно будет и о других версиях подумать. Пока только зачистка оригинала.
какие-то исходники есть тута http://www.iancgbell.clara.net/elite/bbc/
и похоже на msx было пять миссий
и похоже на msx было пять миссий
Там была история с Кладовым который переделывая затормозил прилично так, затем летаргик обратно убыстрял. Все патчилось по живому, без дизасма. Все убыстрения были аля свернутую в лдир отрисовку обратно в лди, чистка по стеку как было и основное, горизонтальные линии кажись. Кромсали как бог черепаху, а параллельно нафлудили тему больше чем все исходники. Короче по нашему захуярили.
Факт 4
Арифметика в элите безусловно со знаками, в 3д по другому никак, но при этом не используется классическое дополнение до 0, а выделяется старший бит или отдельное место под знак. Поначалу кажется диковато ибо сложение адовое, но на самом деле вполне удобно.
Факт 5
Самое кривое в игре это печать. Видимо в торусах тоже был кодер уровня ааа и именно ему доверили данную часть как самое ответственное и важное. В игровом цикле надпись Front View ищется по индексу путем перебирания 94 сообщений через cpir. Ета пизда товарищи.
Арифметика в элите безусловно со знаками, в 3д по другому никак, но при этом не используется классическое дополнение до 0, а выделяется старший бит или отдельное место под знак. Поначалу кажется диковато ибо сложение адовое, но на самом деле вполне удобно.
Факт 5
Самое кривое в игре это печать. Видимо в торусах тоже был кодер уровня ааа и именно ему доверили данную часть как самое ответственное и важное. В игровом цикле надпись Front View ищется по индексу путем перебирания 94 сообщений через cpir. Ета пизда товарищи.
krt17 писал(а):
Факт 4
Арифметика в элите безусловно со знаками, в 3д по другому никак, но при этом не используется классическое дополнение до 0, а выделяется старший бит или отдельное место под знак. Поначалу кажется диковато ибо сложение адовое, но на самом деле вполне удобно.
Факт 5
Самое кривое в игре это печать. Видимо в торусах тоже был кодер уровня ааа и именно ему доверили данную часть как самое ответственное и важное. В игровом цикле надпись Front View ищется по индексу путем перебирания 94 сообщений через cpir. Ета пизда товарищи.
перекодь элиту в 128 к, сделай хоть что то полезное в жизни!
Пример переделки игры в дему Уругвайцами, к сожалению они не встаили ау музыку
http://zxaaa.net/view_demo.php?id=9426
нажал 1 и тупо сидишь смотришь игру

Кайф! Еще бы музончик от KDF Software вставили и был бы ахуенчик. Кто мешает этосделать? Никто!
http://zxaaa.net/view_demo.php?id=9426
нажал 1 и тупо сидишь смотришь игру

Кайф! Еще бы музончик от KDF Software вставили и был бы ахуенчик. Кто мешает этосделать? Никто!
krt17 писал(а):
Когда я был маленький я ел мандарины, а семечки бросал на землю, так что я засадил не одну мандариновую рощу. Хватит с меня полезного, теперь я семечки в ведро бросаю.
В чем смысл провести такую адову работу и дизасмить Элиту и не попробовать себя в маленькой шалости, убрать лишнее и заставить корабли двигаться под ау музыку, а именно по кругу управляя из вне в реалтайме о и п кнопками. Вед как здорово ощутить себя кодером и двигать оьбъекты в демо. Хотя бы работа по дизасму пройдет не зря. И будет видна другим. Пойдут слухи на ХУйпе что мол некий крт смог элиту распаковать, изучить и сделать так как ему надо. А ведь он круче кладова? Не это ли счастьяе кодерское? Не ради этого крт ел сосиски всю эту никчемныю жизнь?
Нет предлагаю не перебирать а сразу на печать отдавать адрес сообщения. Внезапно.GoodBoy писал(а):
предлагаешь отвести ещё два байта*94 для адреса каждого сообщения ?
Это нормально когда всяка шляпа печатается, но не выбрасывать 15к тактов просто на поиск того что и так известно где лежит.Отредактировано krt17 (2016-10-20 16:33:01)
В данном случае конечно я переделал по другому, все таки экранов 4 поэтому поиск просто начинается сразу с 1 а не прибавляется вся толпа и потом проматывается. Но это все конечно мелочи, подобной шляпы там прилично, это переделывается на автомате. Самое сложно там в диких простынях в 3д, пока окапываю вокруг.