Автор Тема: [XBOX] Вопрос про Joker Codes  (Прочитано 636 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Dyons

  • Пользователь
  • Сообщений: 7218
  • инфернальный колдун
    • Youtube
    • Просмотр профиля
[XBOX] Вопрос про Joker Codes
« : 03 Август 2022, 17:57:30 »
В общем есть .ETM трейнеры, где читы запускаются нажатием комбинации кнопок.
Собственно где вообще можно почитать про синтаксис. Потому что если по ПС2 в гугле куча ссылок с гайдами по Joker Codes. То по хбокс ноль.

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5126
    • Просмотр профиля
[XBOX] Вопрос про Joker Codes
« Ответ #1 : 03 Август 2022, 21:24:44 »
Как я понял, нужен формат этих трейнеров Xbox Original ETM Trainers, которые используются в XBMC4Xbox. Нашёл первый попавшийся репозиторий: https://github.com/rkalz/xbmc4xbox. Здесь формат: https://github.com/rkalz/xbmc4xbox/blob/master/xbmc/utils/Trainer.cpp. Там не считаются первые 0xA байт, видимо это: размер файла (4 байта), 01 00 (версия?), размер заголовка? (4 байта). Там получают описания читов, но ETM_ID_LIST странный, по указанной позиции считываются 3 ID по 4 байта, но в файлах только 8 байт и последний залезает на другие данные. Оставшиеся байты между заголовок и строками - COM файл, как написано в Trainer.cpp, т. е. видимо обычный код, который я попробовал дизассемблировать в https://onlinedisassembler.com/odaweb/ (i386) и похоже на правду, в конце возврат (байт C3).
Весь трейнер грузится в память здесь https://github.com/rkalz/xbmc4xbox/blob/50f38fb2fce74f2d7679ffc14f3d5002b9c65b6a/xbmc/Util.cpp#L890. Причём памяти выделяется для трейнера 2400 (ETM_HEAP_SIZE), включая загрузчик 167 байт, но некоторые ETM больше по размеру.
Я посмотрел код читов и там везде проверка вида: cmp BYTE PTR cs:[ebp+0x116],0x0, где 0x116 - это смещение на область в трейнере (позиция на это в ETM на 0xA), где стоят нули и их как раз сколько читов в списке. Наверно это проверка, что активировано.
Может вы всё это знаете и речь была только про поиск кодов нажатия. Разбор трейнеров не поможет?
UPD: Оказывается есть программа для генерации ETM (MXT Easy Evox Trainer Maker от 25-Nov-2004). Я сначала посмотрел ETM для Fatal Frame http://ps2wide.net/xbox.html#xff, а там код лишний: две инструкции mov ax,0x1 в начале, после первой ax не изменяется, можно подправить ASM файл и произвольный код написать.
« Последнее редактирование: 04 Август 2022, 04:24:00 от Sharpnull »

Оффлайн Dyons

  • Пользователь
  • Сообщений: 7218
  • инфернальный колдун
    • Youtube
    • Просмотр профиля
[XBOX] Вопрос про Joker Codes
« Ответ #2 : 04 Август 2022, 05:33:43 »
Может вы всё это знаете и речь была только про поиск кодов нажатия.
Так речь и была про поиск кодов нажатия и вызов читов по комбинации клавиш. На ПС2 с этим проще, гайдов вагон и тележка и за минуту можно разобраться и начать коды писать. А на хбокс ноль инструкций по написанию кодов которые вызываются по нажатию комбинаций клавиш

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5126
    • Просмотр профиля
[XBOX] Вопрос про Joker Codes
« Ответ #3 : 04 Август 2022, 16:18:18 »
Так в чём проблема? В Bard tale [plus9] (PAL).etm и tiger.etm проверяется ввод. Там вставляется push + ret где-то в памяти для перехода на код трейнера и всякие проверки происходят. Для начала стоит разобраться как это работает. Может по сигнатуре вызова узнать где получают ввод, для этого можно скомпилировать программу для Xbox и посмотреть ASM или может кто-то плагин для Ghidra сделал и всё окажется просто.

Оффлайн Dyons

  • Пользователь
  • Сообщений: 7218
  • инфернальный колдун
    • Youtube
    • Просмотр профиля
[XBOX] Вопрос про Joker Codes
« Ответ #4 : 04 Август 2022, 16:33:03 »
Так в чём проблема?
Проблема в том что результат не стоит трудозатрат. Условно говоря мне надо было на R3 вешать вызов Chapter Select Menu в Fatal Frame 2, на ПС2 я это сделал меньше чем за минуту, если на хбокс мне на это надо потратить часы, то мне проще плюнуть и раз в год вызвать менюшку через Evox Trainers Telnet

Оффлайн Dyons

  • Пользователь
  • Сообщений: 7218
  • инфернальный колдун
    • Youtube
    • Просмотр профиля
[XBOX] Вопрос про Joker Codes
« Ответ #5 : 06 Август 2022, 12:49:14 »
Цитата
UPD: Оказывается есть программа для генерации ETM (MXT Easy Evox Trainer Maker от 25-Nov-2004). Я сначала посмотрел ETM для Fatal Frame http://ps2wide.net/xbox.html#xff, а там код лишний: две инструкции mov ax,0x1 в начале, после первой ax не изменяется, можно подправить ASM файл и произвольный код написать.
толку от произвольного кода если он один раз вызывается при старте игры, для опроса состояния клавиш он не канает