|
|
|
Канал X-Tension/X-BTF: «А давайте напишем в EGOSOFT...» |
|
|
Laster
155 EGP
  Репутация: 16 Сообщения: 133 Откуда: Нижний Новгород Зарегистрирован: 29.06.2004
 |
|
Тогда, может, так сделаем?
Откроем временную тему, где будут только варианты письма, а в этой теме выберем самый оптимальный текст. После того, как сделаем выбор, - временная тема полностью удаляется.
И еще нужно отработать примерный план письма.
|
|
|
Perseus
888 EGP
       Рейтинг канала: 4(87) Репутация: 158 Сообщения: 2122 Откуда: Челябинск Зарегистрирован: 13.02.2002
 |
|
Вот тут и будем ПисАть...
|
|
|
Laster
155 EGP
  Репутация: 16 Сообщения: 133 Откуда: Нижний Новгород Зарегистрирован: 29.06.2004
 |
|
Нашлось время рассмотреть XT поближе. В папке [l] лежат три файла 001.obj, 001.pch, 002.obj. При рассмотрение любого файла в HEX-виде , явно выделяются две области: область данных и область команд ( кроме 001.pch). И еще: если скрыть 001.obj – при попытке начать новую игру происходит выход в win, 002.obj – выход из игры в win. Эти файлы и есть результат работы КС компилятора?
|
|
|
fox68
1133 EGP
       Рейтинг канала: 3(44) Репутация: 192 Сообщения: 6435 Откуда: Татарстан г. Казань Зарегистрирован: 17.06.2002
 |
|
Мне кажется, что все это рядом, но не в точку. Можно взять за начало игру до патча, и потом после него. там и ковырять.
Вопрос нумер раз!
нужно точно знать, что данный патч меняет в игре.
Вопрос нумер два!
найти эти изменения в файлах игры.
Работа эта не на сутки, что самое печальное( я в этом ЛОХ)
_________________ Устал.... |
|
|
Laster
155 EGP
  Репутация: 16 Сообщения: 133 Откуда: Нижний Новгород Зарегистрирован: 29.06.2004
 |
|
Это сбор информации. Хотя бы для того, что бы легче было текст письма составить.
|
|
|
xmagnat
280 EGP
   Рейтинг канала: 5(106) Репутация: 54 Сообщения: 1244 Откуда: Екатеринбург Зарегистрирован: 06.12.2003
 |
|
Цитата: |
Эти файлы и есть результат работы ЕС компилятора?
|
Это давно уже известно, зато место, где хранится карта галактики и начальное местоположение всех объектов на момент начала новой игры, мы не знаем. Кстати, а для чего нужен файл 001.pch ?
|
|
|
Laster
155 EGP
  Репутация: 16 Сообщения: 133 Откуда: Нижний Новгород Зарегистрирован: 29.06.2004
 |
|
001.pch - помоему какой-то стэк... (неуверен)
|
|
|
xmagnat
280 EGP
   Рейтинг канала: 5(106) Репутация: 54 Сообщения: 1244 Откуда: Екатеринбург Зарегистрирован: 06.12.2003
 |
|
Кстати, заметил, что при генерации новой игры, обращение в жд не производится. Неужели карта галактики и начальное местоположение всех объектов на момент начала новой игры находится в ЕХЕ ?
|
|
|
Laster
155 EGP
  Репутация: 16 Сообщения: 133 Откуда: Нижний Новгород Зарегистрирован: 29.06.2004
 |
|
в файле 001.obj куча данных. Может там есть данные для инициализации объектов игры?
|
|
|
xmagnat
280 EGP
   Рейтинг канала: 5(106) Репутация: 54 Сообщения: 1244 Откуда: Екатеринбург Зарегистрирован: 06.12.2003
 |
|
Осталось только расшифровать код ( сейв ведь уже расшифрован ) и, если повезет, можно двигаться дальше.
|
|
|
Laster
155 EGP
  Репутация: 16 Сообщения: 133 Откуда: Нижний Новгород Зарегистрирован: 29.06.2004
 |
|
А вот здесь нужна помощь людей, которые принимали участие в разработке XT...
|
|
|
xmagnat
280 EGP
   Рейтинг канала: 5(106) Репутация: 54 Сообщения: 1244 Откуда: Екатеринбург Зарегистрирован: 06.12.2003
 |
|
Ну, можно попробовать методом ненаучного тыка, изменяя подозрительные байты.
|
|
|
Laster
155 EGP
  Репутация: 16 Сообщения: 133 Откуда: Нижний Новгород Зарегистрирован: 29.06.2004
 |
|
Кстати, при генерации новой игры обращение к жд происходит (щас попробовал на машине с памятью 64метра). Карта и все остальное, скорее всего, генерируются вместе с новой игрой по заложенным в obj-файле координатам (или .pch?)– поэтому карты вселенной и не смогли найти.
|
|
|
Laster
155 EGP
  Репутация: 16 Сообщения: 133 Откуда: Нижний Новгород Зарегистрирован: 29.06.2004
 |
|
Цитата: |
Ну, можно попробовать методом ненаучного тыка, изменяя подозрительные байты.
|
Предположительно, область команд в 001.obj занимает примерно 150кб - трудновато будет...
|
|
|
Laster
155 EGP
  Репутация: 16 Сообщения: 133 Откуда: Нижний Новгород Зарегистрирован: 29.06.2004
 |
|
По поводу файла 001.pch.
Маненько повнимательней посмотрел его
Это какой то хитрый шифр
Например:
идут символы 3 4 5 6(по возрастающей на 1, символ - двухбайтовое число)
сигналом конца цепочки служит: тек.символ !=(пред.символ+1) (пример: 3 4 5 6 2... здесь:2!=(6+1)), либо код FFFF.
Важно, с какого символа начался отсчет и сколько он длится не прерываясь и еще каким способом прерывается.
( Лучше всего это видно где-то в первой четверти файла)
Можно предположить, что это зашифрованные координаты карты или объектов вселенной в XT.
|
|
|
Laster
155 EGP
  Репутация: 16 Сообщения: 133 Откуда: Нижний Новгород Зарегистрирован: 29.06.2004
 |
|
В общем, пока так:
1) файл 001.pch – XT и без него прекрасно обходится, что в нем лежит – осталось непонятным ( результат работы какого-то неравномерного цикла)
2) исходные данные для начала новой игры находятся в файле 001.obj ( уверен на 95%)
3) просто необходим "словарик" команд...
|
|
|
xmagnat
280 EGP
   Рейтинг канала: 5(106) Репутация: 54 Сообщения: 1244 Откуда: Екатеринбург Зарегистрирован: 06.12.2003
 |
|
Цитата: |
исходные данные для начала новой игры находятся в файле 001.obj ( уверен на 95%)
|
Без него даже загрузиться с сохраненки нельзя - игра входит в ступор. Кстати, 001.obj и 001.pch входят в вер 2.1, а там карта менялась. Без 002.obj игра тоже обходиться.
|
|
|
Laster
155 EGP
  Репутация: 16 Сообщения: 133 Откуда: Нижний Новгород Зарегистрирован: 29.06.2004
 |
|
Цитата: |
Без него даже загрузиться с сохраненки нельзя - игра входит в ступор.
|
Так оно и должно быть, в 001.obj еще алгоритм игры содержится...
Рсширение "pch", может быть сокращением слова "patch"...
Про 002.obj - может быть XT использует его код для сборки мусора при завершении игры, т.е. освобождает память компа?
|
|
|
Grebomet
1466 EGP
      Рейтинг канала: 3(36) Репутация: 261 Сообщения: 4787 Откуда: Питербурх Зарегистрирован: 06.01.2003
 |
|
Цитата: |
файл 001.pch – XT и без него прекрасно обходится, что в нем лежит – осталось непонятным ( результат работы какого-то неравномерного цикла)
|
"Результат работы неравномерного цикла" - это скорее всего индексный файл, в котором идут оффсеты объектов из другого файла (для быстрого доступа к ним). Скажем, в базах данных без индексов для поиска какой-нибудь записи приходится просматривать ВСЕ записи по очереди, а с индексом - достаточно найти нужный индекс в таблице индексов (это обычно бинарное дерево), и по индексу быстро "навестись" на нужную запись.
Цитата: |
002.obj - может быть XT использует его код для сборки мусора при завершении игры, т.е. освобождает память компа?
|
Скорее всего там "другие скрипты" лежат. Для освобождения памяти никакие файлы не нужны, достаточно динамических указателей на область памяти.
Если мне не изменяет склеросЪ, в Х2 скрипты делятся на "галактические" и "внутрисекторные" - т.е. на те, которые исполняются в других секторах и те, которые исполняются в том же секторе, где и ты. Вполне логично было бы разнести их по разным файлам.
И еще один довод в пользу этого предположения: "галактических" скриптов меньше, они проще, и всегда находятся в памяти, поэтому их не нужно индексировать файликом 002.pch (один раз всосали в начале игры, и все).
_________________ Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов. |
|
|
Laster
155 EGP
  Репутация: 16 Сообщения: 133 Откуда: Нижний Новгород Зарегистрирован: 29.06.2004
 |
|
Значит, если скрыть 001.pch, обращение к объектам производится альтернативным, более медленным способом? ( игра без 001.pch работает без видимых изменений)
Жизнь галактики и сектора, в котором находится игрок, прекрасно течет и без файла 002.obj( предположительно, область команд в 002.obj занимает 5кб).
Но при попытке завершить игру <shift>+<Q> происходит выброс в win (вероятно, неудачная попытка выполнить скрипт из файла 002.obj). На этой основе я и предположил, что там содержатся скрипты - киллеры всех объектов ( станции, базы, корабли и т.д.)
(К сожалению, сейчас нет под рукой игры, чтобы проверить все это еще раз.)
Если XT - виртуальная машина выполняющая игровой байткод, то возникают вопросы:
как она работает с памятью? Хранит ли команды и данные в одном участке памяти или в разных? Память фиксированная или нет? И т.д. и т.п.
|
|
|
|
|
|
Канал X-Tension/X-BTF: «А давайте напишем в EGOSOFT...» |
|