Автор Тема: Вопросы новичков  (Прочитано 207033 раз)

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

Оффлайн Guyver(X.B.M.)

  • Пользователь
  • Сообщений: 2849
  • Пол: Мужской
  • Уничтожим Кронос!
    • Facebook
    • Twitter
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Вопросы новичков
« Ответ #30 : 10 Июня 2021, 08:34:33 »
С большой натяжкой можно использовать это: http://chief-net.ru/index.php?option=com_content&task=view&id=466&Itemid=55

Онлайн Беларус

  • Модератор
  • Сообщений: 1775
    • ВКонтакте
    • Steam
    • Просмотр профиля
Вопросы новичков
« Ответ #31 : 10 Июня 2021, 19:54:11 »
Действительно близко. Забавно, какие жёсткие требования к вводу информации, будто поленился или не хотел делать защиты от ошибки.
Не возникало мысли сделать поиск одинаковых отрезков байтов по всему файлу?

Оффлайн Guyver(X.B.M.)

  • Пользователь
  • Сообщений: 2849
  • Пол: Мужской
  • Уничтожим Кронос!
    • Facebook
    • Twitter
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Вопросы новичков
« Ответ #32 : 12 Июня 2021, 02:52:11 »
Я эту поделку делал для перевода одной из игр (легко составить список поинтеров с её помощью из-за особенностей их хранения в роме). А разделение файла на куски попросили добавить. При этом я не программист (поэтому всё работает жутко медленно, нелогично и т.д.). И поэтому защит от ошибок почти не делал, так как знал что и для чего мне нужно. Таким образом я наклонировал примерно 5-6 подобных программ в своё время, каждая со своими функциями, нужными только для одной-двух игр... :neznayu:

Оффлайн firefly23412

  • Пользователь
  • Сообщений: 22
    • Просмотр профиля
Вопросы новичков
« Ответ #33 : 15 Июля 2021, 19:41:54 »
Вот у меня какая загвоздка. Пойнтеры, игра Suikoden 2 и программа Kruptar (6ая версия). Я делал всё по этому гайду - https://magicteam.net/index.php?page=documents&show=Kruptar%20для%20чайников Круптар для чайников от мэджик тим.

Текст у меня программа отображает. Значит разницу смещения я правильно высчитал, так? Или нет?

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

Можно ли как-нибудь найти пойнтер по offset'у предложения(ий), может быть? Я не знаю...

Онлайн Беларус

  • Модератор
  • Сообщений: 1775
    • ВКонтакте
    • Steam
    • Просмотр профиля
Вопросы новичков
« Ответ #34 : 17 Июля 2021, 12:33:43 »
Не пользовался программой, поэтому зачем пересчитывать пойнтеры/указатели? Не вмещается текст, который не менялся, скорее всего из-за неправильно указанного размера указателей, первого байта/двух байтов (где указана длина строки) или спецсимволов, что видны в тексте на скриншотах. Попробуй для эксперимента поставить у всего что можешь длину в 1 байт. Ну, кроме указателей на начало строк, наверно.
Потом методом половинного деления найдёшь в каком из них была ошибка :)

Оффлайн Guyver(X.B.M.)

  • Пользователь
  • Сообщений: 2849
  • Пол: Мужской
  • Уничтожим Кронос!
    • Facebook
    • Twitter
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Вопросы новичков
« Ответ #35 : 17 Июля 2021, 12:58:02 »
По скринам вообще не видно, что подключено место, куда будет вставляться перевод.



Лучше юзать версию круптара 7.1.1.8

Оффлайн firefly23412

  • Пользователь
  • Сообщений: 22
    • Просмотр профиля
Вопросы новичков
« Ответ #36 : 20 Июля 2021, 00:56:32 »
perfect_genius, Guyver(X.B.M.), Ура! Я вычислил указатели. По формуле оффсет предложения полученный через дебаггер - оффсет того же предложения из рома. Универсальная цифра 10DC50. Прибавляется к оффсету предложения из рома и последние два байта перевернуть. Хекс-адрес указателей таким образом получается.
Как оказалось в Suikoden 2 четырёх-байтные указатели(длина) и идут они сразу после текста. Я читал итальянский мануал ромхакера Паблито, он пишет, что в первой игре тоже четырёх байтные указатели. (как и в фэнтези стар 4 на мегадрайв, упомянута им также)

Но вопрос. Подскажите пожалуйста. Если указатели идут СРАЗУ после текста и их длина 4 байта, какие параметры надо ставить в Круптаре? Конкретно. Разница смещений - автостарт? Так получается или нет?

Онлайн Беларус

  • Модератор
  • Сообщений: 1775
    • ВКонтакте
    • Steam
    • Просмотр профиля
Вопросы новичков
« Ответ #37 : 20 Июля 2021, 18:54:46 »
Тут что-то странное. Какая логика в указателе в конце этого самого текста, на начало которого он и указывает? Обычно, есть массив из указателей на текстовые строки. Они могут указывать либо на первый символ текста, либо длину этого текста, после чего и идёт текст. Также сам текст часто кончается на какой-нибудь стоп-символ - обычно 0 или -1.
Ты либо вычислил адрес конца текстовой строки, либо указатель на длину последующей текстовой строки.

Цитировать
Универсальная цифра 10DC50
По этому адресу есть что-то? Это может быть адресом начала блока текстовых строк или массива указателей на эти строки.

Оффлайн firefly23412

  • Пользователь
  • Сообщений: 22
    • Просмотр профиля
Вопросы новичков
« Ответ #38 : 20 Июля 2021, 20:37:56 »
perfect_genius,

То число это разница из формулы вычисления из документа "Pointers in Playstation Games".

Цитировать
Next, we will find the text as it appears in the running game. Open the disc image using pSX. Navigate ingame to a place  where text appears. Go Debug -> Monitor. View the memory. Go to File -> Save binary. Start address is 0 and size, in bytes,  depends on the game. A value of 1000000 bytes is sufficent for Gundam GCentury.  Open this created file in MadEdit. Search for the same text as in the PS-EXE. ?????? now appears at 000C1BC4. The difference in memory must be found to calculate pointers in the future: C1BC4-B23C4=F800. Pointers may now be found and created using this information.

Тут всё правильно. Всё верно массив из указателей после текста. Надо было мне уточнить.

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

... вообщем я прикрепил скриншот. И байты 10 80 это похоже байты "пустышки". Они просто стоят между указателями и ни к чему не привязаны. То есть длина указателя в игре получается не 4 байта, а два.

У меня всё равно Круптар с ошибкой загружает текст и я не могу понять, что я в настройках выставил или наоборот не выставил. Разницу смещений по формуле высчитал, интервал в 2 выставлял. Короче, пробовал разные настройки и во-первых, у меня текст очень долго грузится из рома и сам текст не разбит на отдельные предложения как должно быть.

В чём может быть ошибка?

 

Оффлайн firefly23412

  • Пользователь
  • Сообщений: 22
    • Просмотр профиля
Вопросы новичков
« Ответ #39 : 21 Июля 2021, 17:54:10 »
Странно, а в седьмом Круптаре всё нормально выводит. Почему так?
Почему в шестом у меня не получалось вывести по-нормальному. Может быть это связано с кодами разрыва строк/окончания строк??? Кто-нибудь знает где в шестой версии Круптар опции с ними. Просто сама то шестая версия программы не просит вводить их. 

Оффлайн MWE

  • Пользователь
  • Сообщений: 174
  • Пол: Мужской
    • Просмотр профиля
Вопросы новичков
« Ответ #40 : 28 Июля 2021, 09:09:24 »
Чит коды для PS1 приводятся в таком виде:
800BF4A0 1333
8009EE4C 0C00
Как на основании чит кодов получить hex код, для редактирования исполняемого файла?
Написанное слово может преодолеть время и пространство.

Онлайн Беларус

  • Модератор
  • Сообщений: 1775
    • ВКонтакте
    • Steam
    • Просмотр профиля
Вопросы новичков
« Ответ #41 : 28 Июля 2021, 22:43:33 »
Запускаешь игру в дебаггере и ставишь breakpoint по этим своим адресам (800BF4A0 и 8009EE4C), чтобы поймать момент, когда к ним обращается код. Изучаешь этот код и подправляешь на нужное тебе поведение уже в роме/образе игры.
Делал так с игрой для SNES не зная его ассемблера, понадобилось узнать только несколько команд типа присвоения, условных переходов и NOP, чтобы им затереть команду уменьшения здоровья. Дебаггер показывал адрес команды не относительно начала рома (наверно, из-за маппера), поэтому этот участок в роме искал в хекс-редакторе по байтам команд.
« Последнее редактирование: 29 Июля 2021, 12:14:33 от perfect_genius »

Оффлайн Maksim86

  • Пользователь
  • Сообщений: 473
    • Просмотр профиля
Вопросы новичков
« Ответ #42 : 29 Июля 2021, 03:56:42 »
Здравствуйте! Подскажите пожалуйста, возможен ли ромхакинг (изменение цветов костюмов, новые арены, режимы и новые борцы), разных версий игры WWF WrestleMania - The Arcade Game? Это лучший аркадный реслинг, по моему мнению, но выглядит откровенно, как демо-версия, 2 режима и 8 борцов в версии для SMD.. Ясно, что в игре использованы захваты движений, или все так сложно, что бы добавить что-нибудь новое в игру?

Оффлайн Cyneprepou4uk

  • Пользователь
  • Сообщений: 215
  • Пол: Мужской
  • Самый лысый ромхакер
    • ВКонтакте
    • Просмотр профиля
Вопросы новичков
« Ответ #43 : 29 Июля 2021, 05:00:48 »
возможен ли ромхакинг

возможен
Турниры по ретро играм - https://vk.com/nekketsu
Мои исходники NES игр - https://github.com/cyneprepou4uk/NES-Games-Disassembly

Оффлайн Марат

  • Пользователь
  • Сообщений: 560
  • Пол: Мужской
    • Просмотр профиля
Вопросы новичков
« Ответ #44 : 29 Июля 2021, 05:01:27 »
Так и на аркадной версии столько же.

Добавлено позже:
Чтобы вставить спрайты, надо уметь дебажить код. Найти спрайты, которые сжаты. Изучить код сжатия и написать компрессор/декомпрессор. Только потом можно попытаться вставить новые спрайты.
« Последнее редактирование: 21 Октября 2026, 03:11:46 от Беларус »

Оффлайн MWE

  • Пользователь
  • Сообщений: 174
  • Пол: Мужской
    • Просмотр профиля
Вопросы новичков
« Ответ #45 : 29 Июля 2021, 09:06:23 »
Запускаешь игру в дебаггере и ставишь breakpoint по этим адресам (800BF4A0 и 8009EE4C), чтобы поймать момент, когда к ним обращаются. Изучаешь код в этом месте и подправляешь на нужное тебе поведение уже в роме/образе игры.
Запускать игру в эмуляторе? Какой дебаггер порекомендуешь?
https://forums.pcsx2.net/Thread-PSOne-Widescreen-Patches
Здесь чит коды даются в виде адреса в памяти, но как патчить образ? Неужели только через дебаггер перехватывать обращение к памяти?
« Последнее редактирование: 29 Июля 2021, 09:43:55 от MWE »
Написанное слово может преодолеть время и пространство.

Онлайн Беларус

  • Модератор
  • Сообщений: 1775
    • ВКонтакте
    • Steam
    • Просмотр профиля
Вопросы новичков
« Ответ #46 : 29 Июля 2021, 12:24:11 »
У меня ещё не было опыта с PS, просто ищи эмуляторы с дебаггером с возможностью ставить брейки -> PS1 emulator with breakpoints.
У тебя по ссылке написано
Цитировать
PS1 games in general are harder to patch compared to PS2 games, or better said, there is a less universal way of patching games.
так что скорее всего, без дебаггера не обойтись.
Но ничего страшного, сделаешь всё как я написал и выложишь скриншот с кодом в нём тут - разберём где что.
Эти адреса могут указывать и на код, загруженный в память, тогда надо будет лишь найти эти последовательности байтов в образе игры не разбираясь с этим кодом.

Оффлайн Berstain

  • Emu-Land Team
  • Сообщений: 2764
  • Пол: Мужской
    • Просмотр профиля
Вопросы новичков
« Ответ #47 : 08 Августа 2021, 16:54:21 »
почему не хотите закреплять тему для новичков первой стройкой?
Создайте в первом посте небольшой FAQ, тогда имеет смысл закрепить тему.

Оффлайн Миха42

  • Пользователь
  • Сообщений: 286
  • Пол: Мужской
    • Просмотр профиля
Вопросы новичков
« Ответ #48 : 08 Августа 2021, 17:34:37 »
Создайте в первом посте небольшой FAQ, тогда имеет смысл закрепить тему.
Так кроме модераторов его никто и не сможет изменить первый пост, дата написания слишком старая.
Давно бы уже дали права изменения первого поста тем кто создаёт тему независимо от даты написания.

Оффлайн Rumata

  • Emu-Land Team
  • Сообщений: 25586
  • Ушел в закат
    • Просмотр профиля
Вопросы новичков
« Ответ #49 : 08 Августа 2021, 17:52:12 »
1. Закрепить первой строкой нельзя. Просто к существующим 14 закреплённым добавится ещё одна.
2. То, что закреплённые читают первыми - это иллюзия
3. https://www.emu-land.net/forum/index.php/topic,76109.0.html

Добавлено позже:
Кстати, первый пост этой темы - 100% нарушение 2.16 :cool:
« Последнее редактирование: 05 Ноября 2025, 12:59:51 от perfect_genius »
Главный бич последних лет — это высокомотивированные низкоквалифицированные люди (с)

Оффлайн Berstain

  • Emu-Land Team
  • Сообщений: 2764
  • Пол: Мужской
    • Просмотр профиля
Вопросы новичков
« Ответ #50 : 08 Августа 2021, 19:11:41 »
Так кроме модераторов его никто и не сможет изменить первый пост, дата написания слишком старая
В чем проблема? Напишите так,  добавим. o_0

Оффлайн Rumata

  • Emu-Land Team
  • Сообщений: 25586
  • Ушел в закат
    • Просмотр профиля
Вопросы новичков
« Ответ #51 : 08 Августа 2021, 19:19:37 »
О чём FAQ - то будет? О вытаскивании палитры? Вообще о чём эта тема?
Главный бич последних лет — это высокомотивированные низкоквалифицированные люди (с)

Оффлайн Миха42

  • Пользователь
  • Сообщений: 286
  • Пол: Мужской
    • Просмотр профиля
Вопросы новичков
« Ответ #52 : 08 Августа 2021, 19:58:00 »
Вообще о чём эта тема?
Судя из названия, тема для новичков, чтоб задавали всякого рода разные вопросы, и не создавали миллионы тем. ;)

В Faq же не мешало бы доходчиво объяснить что необходимо знать для модифицирования игр, создания хаков, что есть читы и с чем их едят, и как выполнять наиболее лёгкие манипуляции по взлому игр.  <_< Если имеются блогеры любящие писать ..., то пусть напишут.  ;)

Оффлайн Rumata

  • Emu-Land Team
  • Сообщений: 25586
  • Ушел в закат
    • Просмотр профиля
Вопросы новичков
« Ответ #53 : 08 Августа 2021, 20:20:12 »
Судя из названия,
А судя по содержанию?

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

Вот в упор не понимаю этой фобии: "чтобы не создавать новую тему спрошу тут"

Я там выше третьим пунктом давал ссылочку, рекомендую к ознакомлению.

не мешало бы доходчиво объяснить
Ну попробуй :lol: Главное - чтобы это кто-то вообще читал :lol:
Главный бич последних лет — это высокомотивированные низкоквалифицированные люди (с)

Оффлайн Mr2

  • Пользователь
  • Сообщений: 1661
  • Пол: Мужской
  • Free roaming sorcerer
    • Facebook
    • Просмотр профиля
Вопросы новичков
« Ответ #54 : 08 Августа 2021, 20:23:51 »
Судя из названия, тема для новичков, чтоб задавали всякого рода разные вопросы, и не создавали миллионы тем. ;)
Ромхакинг. С чего начать?


Never be weak, no surrender, no retreat !
      Time will tell ya who is who!

Оффлайн Миха42

  • Пользователь
  • Сообщений: 286
  • Пол: Мужской
    • Просмотр профиля
Вопросы новичков
« Ответ #55 : 08 Августа 2021, 20:36:26 »
А судя по содержанию?
А судя по содержанию, по итогу начнётся неразбериха и тема забудется как и многие другие. )))

Онлайн Беларус

  • Модератор
  • Сообщений: 1775
    • ВКонтакте
    • Steam
    • Просмотр профиля
Вопросы новичков
« Ответ #56 : 09 Августа 2021, 22:33:17 »
Ромхакинг. С чего начать?
Больше похоже на тему с инструкциями, планом действий, а не свободное задавание "нубского" вопроса по любой области ромхакинга.

Оффлайн Rumata

  • Emu-Land Team
  • Сообщений: 25586
  • Ушел в закат
    • Просмотр профиля
Вопросы новичков
« Ответ #57 : 09 Августа 2021, 23:22:09 »
Больше похоже на тему с инструкциями, планом действий, а не свободное задавание "нубского" вопроса по любой области ромхакинга.
Слушай, а с чего ты решил, что правила на этом форуме задаёшь ТЫ? 0_0
Главный бич последних лет — это высокомотивированные низкоквалифицированные люди (с)

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1298
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
Вопросы новичков
« Ответ #58 : 10 Августа 2021, 00:30:36 »
Rumata, ну правда, закрепи тему:)
Sega MD researcher.

Оффлайн Rumata

  • Emu-Land Team
  • Сообщений: 25586
  • Ушел в закат
    • Просмотр профиля
Вопросы новичков
« Ответ #59 : 10 Августа 2021, 00:50:16 »
Rumata, ну правда, закрепи тему:)
А не лучше ли её снести к чертям с матерями?

Или тебе так хочется давать тупые ответы на тупые вопросы?
Главный бич последних лет — это высокомотивированные низкоквалифицированные люди (с)