PDA

Просмотр полной версии : Полный оффтоп, Ассемблирование игры


DeBUG
11.11.2008, 22:15
Заметки кодокопателя.
++++++++++++++++++

Сегодня было весело, наткнулся на блок кода относящегося к состоянию игрока. После пары манипуляций с данными увидел следующее: "игрок выполнил недопустимую операцию и будет перемещен в другой лок..." Это выглядело очень забавно, но для игры законечилось вылетом. Также движения текстур по экрану и прочее, заставили закончить эксперименты. Думаю оставить часть находок под сеть. Вот такие сегодня были успехи и неудачи.

Ace Hard
11.11.2008, 23:04
DeBUG, а реально ли сделать чтобы игра не заканчивалась после схода с рельс? Или чтобы мржно было проезжать красные? Пригодилось бы для сценариев....

DeBUG
12.11.2008, 12:50
А смысл играть после крушения? Тут два варианта, крушение игрока и крушение объекта управляемого компьютером. Все зависит от цели такой модификации.
По красному сигналу можно катать столько сколько нужно, но опять таки, зачем такое, если путь все равно занят. Спроси kozya-bozya может у него есть реализация такого. Тем более он думал поделиться наработками http://trainsim.ru/forum/showpost.php?p=49292&postcount=24

Сделать из игры можно любую модификацию и здесь нет преград технических. Если есть, то только финансовые и временные рамки. Хороший ассемблерщик не будет просто так делать работу, его нужно нанимать и оплачивать его труды.

E69
12.11.2008, 17:21
но опять таки, зачем такое, если путь все равно занят.Ну например. Впереди идёт поезд, удаляясь от игрока. Ты его догоняешь и, не успев затормозить, проезжаешь под красный. Останавливаешься, ждёшь пока идущий впереди освободит пару блок-участков и продолжаешь движение.
Однако нечто подобное, помнится, было реализовано в скриптах нашей сигналки без вскрытия кода игры.

dj.dan.mc
12.11.2008, 18:15
Однако нечто подобное, помнится, было реализовано в скриптах нашей сигналки без вскрытия кода игры.
Это ты должно быть про прописание в скриптах для каждого светофора
значения STOP_AND_PROCEED, которое позволяет красный проследовать по Tab.
Вот например:
SignalAspects ( 1
SignalAspect ( STOP_AND_PROCEED "Red" )
)
SignalNumClearAhead ( 1 )
Сигнал будет красным, но при нажатий Tab его можно будет спокойно проехать.

Zabor
12.11.2008, 18:24
dj.dan.mc, Спасибо за информацию, добавил к своим записям касательно сигналки, ибо скоро мне все это очень понадобится.

DeBUG
12.11.2008, 19:03
Ну например. Впереди идёт поезд, удаляясь от игрока... А как должно быть в реальности? Все зависит от смысла симуляции, каждый хочет увидеть свое, а это иногда противоречит с мнением другого и возникает конфликт, мы же не хотим конфликтов. Мое мнение, что у жд фанов нет общего виденья перспективы, нет умения находить компромис, есть кучки людей которые делают что хотят и получается все паршиво.

Zabor
12.11.2008, 19:10
DeBUG, Ну почему "все паршиво", никто же не говорит "давайте сделаем из сигналки цветомузыку и не более того", речь как я понял про возможности, а сторонников разных подходов рассудит реальная ЖД, которая является эталоном для симулятора.

E69
12.11.2008, 19:15
А как должно быть в реальности?В реальности "вылета" из игры не бывает :) Проехав красный, машинист конечно понимает что сильно попал, но всё равно ведь продолжает работать.
Мое мнение, что у жд фанов нет общего виденья перспективы, нет умения находить компромис, есть кучки людей которые делают что хотят и получается все паршиво.А ты чего хочешь? Создаешь ещё одну кучку?

Виталик
12.11.2008, 19:22
Наверное, здесь имеется ввиду такой факт: машинист в мстс спокойно едет по перегону с грузовым поездом со скоростью 80-90 км\ч. И вдруг за 100 метров до светофора он из-за сбоя сигнализации неожиданно переключается на красный. Естественно, грузовой поезд экстренным за 100 метров с такой скоростью не остановишь, и волей-неволей проедешь красный. И чтобы тебя не выкидывало из игры. Если выкидывание при проезде красного убрать, то можно моделировать любые сбои сигналки. Типа перед тобой неожиданно выехал с другой ветки неуправляемый состав.

Zabor
12.11.2008, 19:35
Виталик, "родить" трафик прямо под носом игрока и так никто не запрещает =)).

DeBUG
13.11.2008, 03:28
Для нарушителей:

Отключение выхода при проследовании запрещающего сигнала (http://debug-msts.narod.ru/bin/rc_io.exe)
http://debug-msts.narod.ru/bin/rc_io.exe

Краткое руководство:
Скопируйте файл в каталог с игрой(туда где train.exe) после запуска введите 1 - вкл. вылет, 2 - откл. вылет, другое - выход.

В реальности "вылета" из игры не бывает :) Проехав красный, машинист конечно понимает что сильно попал, но всё равно ведь продолжает работать.
А ты чего хочешь? Создаешь ещё одну кучку?

"Залет" и это реальный залет, когда нарушают правила.

Я бы создал свою команду, но нет таких людей, один я такой. Поэтому и тружусь в одиночестве. Нужны программисты, ассемблерщики и просто толковые ребята, где каждый будет делать свою часть, но в общем потоке идей и алгоритмов. А еще было бы отлично иметь свой сайт, сделанный профи и форум для обсуждения идей и проблем. Побольше свободного времени и желания заниматься этим делом. Ладно.

Помогают мне ваши товарищи, одни с пользой, другие с :russian: . Уровень не тот, нет у них возможности взять и сделать проект.

Фанат
14.11.2008, 00:29
Краткое руководство:
Скопируйте файл в каталог с игрой(туда где train.exe) после запуска введите 1 - вкл. вылет, 2 - откл. вылет, другое - выход.


Скопировал, ввёл 2 -не работает. Проезд запрещающего и конец сценария.:(
Какие будут предложения?

kozya-bozya
14.11.2008, 03:58
во-первых, название темы: должно быть все-таки дизассемблирование

во-вторых, да, проезд красного я делал, но только для первой версии exe-шника, т.е. без патчей от MS и без MSTSbin

проезд красного хакается так:

train.exe
0004856A: 85 40
0004856B: C0 90

если любопытно, модифицированный exe тут:
http://trainsim.ru/tmp/trainSIG.zip
там еще многие модификации внесены для сетевой игры, и есть косвенные баги, например он жрет 100% процессора всегда, ну впрочем это не сильно важно.

debug, у тебя есть IDA?
я дизассемблил там, и многое пометил, и прокомментировал

но я работал именно с первым exe-шником. мне так было удобнее



Мое мнение, что у жд фанов нет общего виденья перспективы, нет умения находить компромис, есть кучки людей которые делают что хотят и получается все паршиво.

вот тут разобраться надо бы: получается и весь Trainsim, разработки RRS и других, в которые вложен немалый труд и многие пользователи благодарны за это - это тоже паршиво?

Zabor
14.11.2008, 04:22
Сделал
0004856A: 85->40
0004856B: C0->90

Хех, работает, спасибо для отладки сценариев может пригодится (особенно для "летнаба"), но при выполнении сценария это плохо - можно запросто выехать на чужой маршрут и кирдык движению трафика обеспечен.

В отчет все равно вкатили провал по красному, хотя я их штук пять проехал и сам вышел из сценария, сильная вещь привычка - вышел из симулятора с чувством стыда за содеянное :o.

DeBUG
14.11.2008, 12:36
Скопировал, ввёл 2 -не работает. Проезд запрещающего и конец сценария.:(
Какие будут предложения?

А я не говорил, что будет работать у всех.

У меня работает так:
1. Запускаю программу.
2. Она выводит сообщения
"on red signal = 1, off red signal = 2, exit = any_key"
"Press key: 1 or 2 or any_key: "
если нет этих сообщений, а программа сразу закрылась, то не найдет файл "train.exe".
3. Вводим 2 и жмем Enter.
4. Должно появиться сообщение "Red color off" после 2 секунд программа закрывается автоматом.
5. Запускаем игру и все как обычно, Тестируем.


Хорошо, что написал о проблеме. Я редко тестирую.

во-первых, название темы: должно быть все-таки дизассемблирование

во-вторых, да, проезд красного я делал, но только для первой версии exe-шника, т.е. без патчей от MS и без MSTSbin...

Название темы отображает отношение к стилю работы.

Разница между оригиналом и патчами не такая и большая, есть участки, где идет смещение, а так все одинаково. Я тоже работаю на оригинале, но это не критично. При тестировании все выясниться и можно будет внести поправку. У многих патчи, а они даже не догадываются, что мой патч сделан на оригинал. Работает и это главное.

А патчим мы разные участки.
001864B9: C9 ->> E1


Нагрузка 100% это ошибка, такого не должно быть. Перестарались.

Да, ИДА у меня есть. Будет круто, если ты прокомментируешь все здесь для народа, им будет очень интересно.

Не нужно быть столь предвзятым к моему мнению и понимать его буквально. То, что люди реализовали - это заслуживает уважения. Есть то, что есть.

Сделал
0004856A: 85->40
0004856B: C0->90

Хех, работает, спасибо для отладки сценариев может пригодится (особенно для "летнаба"), но при выполнении сценария это плохо - можно запросто выехать на чужой маршрут и кирдык движению трафика обеспечен.

В отчет все равно вкатили провал по красному, хотя я их штук пять проехал и сам вышел из сценария, сильная вещь привычка - вышел из симулятора с чувством стыда за содеянное :o.

У меня такого нет, проехал и ладно.

Zabor
14.11.2008, 15:48
Запуск exe первой версии породит гору ошибок по ПС, который под патч, потому сломал свой, патченный, и положил пару sfx для быстрой замены exe на "исправленный" и обратно (два файла в корне не хочу держать), DeBUG, чего у тебя нет, не понял.

DeBUG
14.11.2008, 21:43
DeBUG, чего у тебя нет, не понял.
В моем случае нет провала по сценарию, нет регистрации нарушения. Об этом знает машинист и помошник, но свои то не сдадут. :rofl:

Правильно делаешь, что держишь оригинал. Архивация дело полезное, тем более перед патчированием.

Zabor
14.11.2008, 22:13
А, понял - регистрации проезда нет, ну да "совесть лучший контролер" :D.

svyatogor2007
15.11.2008, 00:31
Кстати по проезду красного это довольно интересно :)
У меня в сценарии который делаю видимо какая то ошибка, да и место сложное там есть одно. В итоге сразу после зеленого через 200м идет красный. Первый раз тестировал сценарий, остановиться не успел, вылетел, пришлось ставить ограничение. Попробую все вот эти штучки потестировать, может сценарий под них заточу, тогда можно будет смоделировать ошибку в си гнализации, и напугать игрока :)

Zabor
15.11.2008, 01:13
svyatogor2007, Это даже не смешно, ты, что хочешь сказать, что для прохождения твоего сценария пользователь должен модифицировать exe игры? Чем это может кончится для простого пользователя представляешь?

dj.dan.mc
15.11.2008, 10:56
Ну, ладно, с красным в сценарий разобрались...
А еще какие-нибудь идеи есть? Всмысле, что еще можно сделать с помощью модификаций ассемблера?

Фанат
15.11.2008, 16:19
У меня работает так:
Код:
1. Запускаю программу.
2. Она выводит сообщения
"on red signal = 1, off red signal = 2, exit = any_key"
"Press key: 1 or 2 or any_key: "
если нет этих сообщений, а программа сразу закрылась, то не найдет файл "train.exe".
3. Вводим 2 и жмем Enter.
4. Должно появиться сообщение "Red color off" после 2 секунд программа закрывается автоматом.
5. Запускаем игру и все как обычно, Тестируем.Хорошо, что написал о проблеме. Я редко тестирую.


У меня всё именно так и происходит. НО..проезд красного всё одно -запрещён! Поэтому и удивлён.:(

если любопытно, модифицированный exe тут:
http://trainsim.ru/tmp/trainSIG.zip
там еще многие модификации внесены для сетевой игры, и есть косвенные баги, например он жрет 100% процессора всегда, ну впрочем это не сильно важно.


При загрузке сценария или выбранного маршрута, проситься " к Биллу".
Поэтому как бы ничего не увидел..:confused:

(у меня-патч 1.4 и бин 1.8)
Что будем делать?

Zabor
15.11.2008, 17:57
(у меня-патч 1.4 и бин 1.8)
Что будем делать?
Сделай копию exe и модифицируй свой рабочий в любом HEX редакторе, что и где менять написано выше.

DeBUG
15.11.2008, 19:09
(у меня-патч 1.4 и бин 1.8)
Что будем делать?

Пробуй вот это http://debug-msts.narod.ru/bin/rc_io_mb18.exe


Сделай копию exe и модифицируй свой рабочий в любом HEX редакторе, что и где менять написано выше.
Лучше не делать. Там различия по коду.

Zabor
15.11.2008, 19:41
train.exe 1.7.051922 по байтам про которые писал kozya-bozya без смещения, все на месте и работает.

Фанат
16.11.2008, 01:39
Пробуй вот это http://debug-msts.narod.ru/bin/rc_io_mb18.exe


Это-то что доктор прописал!:)
Работает.:drinks:

Slava S
17.11.2008, 02:38
Извиняюсь за ламерство, я не программер )
Реально ли сделать, что бы в сценариях переключать централизованые стрелки ?

DeBUG
17.11.2008, 20:36
train.exe 1.7.051922 по байтам про которые писал kozya-bozya без смещения, все на месте и работает.
Я отвечал за свой вариант.

Это-то что доктор прописал!:) Работает.:drinks:
Отлично.

Извиняюсь за ламерство, я не программер )
Реально ли сделать, что бы в сценариях переключать централизованые стрелки ?
Да, такое реально сделать.

DeBUG
18.11.2008, 20:00
Управление топливом на тепловозе.
http://debug-msts.narod.ru/index.html

Фанат
20.11.2008, 01:20
Реально ли сделать, что бы в сценариях переключать централизованые стрелки

А вот это-то зачем?

Barmaley
06.03.2009, 15:12
Этот файл может кто-то выложить или поделиться ?

rc_io_mb18.exe

Даниэль
06.03.2009, 15:33
Помнится был сценарий для Демитрова, "Ночной товарняк" кажется, вот там под вечный красный поезд встал. Там бы точно проезд на красный не помешал.:D

Romanrock
29.03.2009, 14:51
Блин, перезалейте это дело плз! Сайт сдох.

jawa634
29.03.2009, 15:57
http://ifolder.ru/11310973 внутри все похожие проги от DeBUG.

Romanrock
29.03.2009, 17:01
Спасибо большое.

Grebnev
30.03.2009, 20:49
http://ifolder.ru/11310973 внутри все похожие проги от DeBUG.

Прога управления топливом чего-й-то не работает. Поместил в корень игры. Запускаю. Пишет-не найден TrainSim. Патч 1,8. чтое делать, подскажите. Да, кстати и что дает прога?))

jawa634
30.03.2009, 21:13
Прога управления топливом чего-й-то не работает. Поместил в корень игры. Запускаю. Пишет-не найден TrainSim. Патч 1,8. чтое делать, подскажите. Да, кстати и что дает прога?))

Тоже не работала, так забросил и всё... Надо у автора спросить.

DeBUG
31.03.2009, 00:35
Прога управления топливом чего-й-то не работает. Поместил в корень игры. Запускаю. Пишет-не найден TrainSim. Патч 1,8. чтое делать, подскажите. Да, кстати и что дает прога?))
Запускаешь сценарий, потом программу и вводишь нужный литраж топлива в баке тепловоза.

rdz
02.06.2009, 20:19
Скинте все исходники и программы у кого они есть в ЛС.

Grebnev
16.07.2009, 20:57
Друзья ! Как известно в МСТСБине расширены возможности анимации по сравнению с дефолтным МСТС. Раздельная анимация дверей, пантографов,зеркала,

Вопрос.

Можно ли проанализировать дефолтный Train EXE и биновский, и найти как это сделано ?

Следующий шаг-возможно ли увеличить число независимо анимированых деталей ?

Интересуюсь , как любитель моделирования жалюзей, дверей и ручного запуска вентиляторов холодильника.

Итак, в идеале было бы лично с моей точки зрения :



4 группы деталей с независимой циклической анимацией. Все это сделать по шаблону Wipers дефолтных.

1. дворники
2. вентиляторы холодильника
3. вентиляторы ЦВС
4.вентиляторы ЭДТ

по шаблону дверей (Door)-анимация в 2 положения.

10 независимых групп деталей

4 группы-двери(по 2 с каждой стороны)
4 группы-форточки-окна
3 группы-жалюзи ЭДТ/ЦВС/холодильник

Как мне кажется( с программированием знаком на уровне бэйсика школьного курса 1991)-тут речь идет о простом добавлении триггеров в (подпрограмм) в тело программы ?.. Насколько сложно это сделать-если есть 2 образца до и после внесения подобных изменений. (дефолт и патч)



И попутно.

Как я понимаю-сим грузит S-файл в оперативку и туда обращается в процессе прохождения игры. Eсть ли возможность по некой команде, возможно надстройке-заменять S-файл в оперативке-другим в процессе прохождения сценария? Меня это заинтересовало для возможности включения-выключения света в салонах ПС.

Заранее спасибо, за возможные ответы.

Grebnev
03.08.2009, 13:37
и еще реально ли создать программу, которая бы перехватывала прямо в процессе игры(по командам с клавы) образ S-файла в оперативке и заменяла его другим?

Arix
08.09.2011, 22:02
А реально ли модифицировать игру, чтоб отключить сообщения об ошибках? Например, в Trainz не хватает на маршруте какого-либо куида, он просто не будет отображаться и всё. МСТС же сообщает о каждом недостающем объекте. Я поставил один японский маршрут. Там, я так понял, пути озвучены (стук и ли шум колёс). А самих звуковых файлов нет. Так стоит только сдвинуться с места, тут же вылазит сообщение: "Не удалось найти файл SMS...". Закрываешь его, тут же новое вылазит. Держишь нажатой клавишу Еsc, эти сообщения лезут десятками в секунду. Ездить совершенно невозможно, а где эти файлы брать - х3. Вот бы отключить эти сообщения и ехать спокойно.