Автор Тема: ArtMoney и PSX адреса  (Прочитано 3841 раз)

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

Оффлайн Legended

  • Пользователь
  • Сообщений: 6
    • Просмотр профиля
ArtMoney и PSX адреса
« : 07 Апрель 2018, 23:57:03 »
Как ArtMoney из адреса 0x06DE3CB0 показывает 0x800CCC90?

Вот некоторая информация
Рабочая память PSX: 0x80000000 - 0x801FFFFF
Нулевой адрес эмулятора (pSX 1.13): 0x00571A5C

Что нужно отнять/прибавить чтобы из 0x06DE3CB0 получить 0x800CCC90?
« Последнее редактирование: 08 Апрель 2018, 08:04:48 от Legended »

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8109
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
ArtMoney и PSX адреса
« Ответ #1 : 08 Апрель 2018, 08:25:51 »
Не знаю как в артмани, но, думаю, так же, как и в Cheat enging - адреса будут всегда разные. Нужной найти строчку "PS-X EXE" и от полученного адреса отнять "B070" - получишь адрес начала RAM.

Оффлайн dedok179

  • Пользователь
  • Сообщений: 496
  • Пол: Мужской
    • Youtube
    • Просмотр профиля
ArtMoney и PSX адреса
« Ответ #2 : 08 Апрель 2018, 18:26:21 »
0x06DE3CB0
Два раза кликни по адресу 0x06DE3CB0 в строке где ты его получил, тебе покажут реальный адрес в памяти приставки.

Оффлайн Legended

  • Пользователь
  • Сообщений: 6
    • Просмотр профиля
ArtMoney и PSX адреса
« Ответ #3 : 09 Апрель 2018, 08:28:44 »
Два раза кликни по адресу 0x06DE3CB0 в строке где ты его получил, тебе покажут реальный адрес в памяти приставки.
Так адрес уже известен! мне интересно как ArtMoney это делает.

Добавлено позже:
Не знаю как в артмани, но, думаю, так же, как и в Cheat enging - адреса будут всегда разные. Нужной найти строчку "PS-X EXE" и от полученного адреса отнять "B070" - получишь адрес начала RAM.
А можно поподробней?
Например я адрес с 0x800CCC90 поменял на 0x80000000 и PC адрес стал 0x06D48020, это он?

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8109
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
ArtMoney и PSX адреса
« Ответ #4 : 09 Апрель 2018, 13:27:28 »
А можно поподробней?
Например я адрес с 0x800CCC90 поменял на 0x80000000 и PC адрес стал 0x06D48020, это он?
Повторяю, я не знаю как там в артмани (ибо никогда не юзал). Но в CE во всём доступном адресном пространстве ищем строку "PS-X EXE" в текстовом виде или в хекс представлении. Когда строка найдена, отнимаем от полученного адреса "B070" и получаем адрес начала RAM плойки.

Оффлайн Mr2

  • Пользователь
  • Сообщений: 1598
  • Пол: Мужской
  • Free roaming sorcerer
    • Facebook
    • Просмотр профиля
ArtMoney и PSX адреса
« Ответ #5 : 15 Апрель 2018, 12:05:50 »
мне интересно как ArtMoney это делает.
В папке ArtMoney, лежит файл "artmoney.emul" со смещениями памяти консолей в адресном пространстве PC.

Пример:

*Sony Playstation
ePSXe 1.6.0;EPSXE.EXE
;RAM 2Mb;80000000;005B6E40;200000

*Sony Playstation
ePSXe 1.6.0;EPSXE.EXE
;Размер памяти консоли; начало памяти консоли; начало памяти консоли в адресном пространстве PC; конец памяти консоли

Оффлайн Legended

  • Пользователь
  • Сообщений: 6
    • Просмотр профиля
ArtMoney и PSX адреса
« Ответ #6 : 05 Май 2018, 18:38:30 »
В папке ArtMoney, лежит файл "artmoney.emul" со смещениями памяти консолей в адресном пространстве PC.

Пример:

*Sony Playstation
ePSXe 1.6.0;EPSXE.EXE
;RAM 2Mb;80000000;005B6E40;200000

*Sony Playstation
ePSXe 1.6.0;EPSXE.EXE
;Размер памяти консоли; начало памяти консоли; начало памяти консоли в адресном пространстве PC; конец памяти консоли

Использую pSX 1.13

Для него:
pSX emulator 1.13;psxfin.exe;N;813a8a0980e7f07e34da147d9cd603f2
;RAM 2MB;80000000;P00571A5C;200000

Так как адрес всегда разный (начало памяти psx) то я не пойму как мне этот адрес самому найти используя эти данные...

Вставив в ArtMoney PSX адрес 0x80000000 получаю 0x06D33020 (PC), при следующем запуске PC адрес уже будет другим.
Вообще не понимаю как это всё работает, и как это всё ищется...

Пока написал для себя такой костыльный алгоритм:

Перебираем все адреса (размером в 4 байта).
Пока не будет найден адрес со значением 209730586.
Это будет адрес 0x80000082 (PSX).
Отнимаем от PC адреса 0x82 и получим начало PSX памяти.
0x80000082 - адрес самый ближний к началу PSX памяти в котором всегда такое значение размером в 4 байта.

Но пока не пойму как это делает ArtMoney не успокоюсь, тут уже дело принципа, да и не охота костылем всё время пользоваться, лучше когда всё нормальным методом ищется (аналогичным в ArtMoney).

Оффлайн Mr2

  • Пользователь
  • Сообщений: 1598
  • Пол: Мужской
  • Free roaming sorcerer
    • Facebook
    • Просмотр профиля
ArtMoney и PSX адреса
« Ответ #7 : 05 Май 2018, 20:06:54 »
Использую pSX 1.13

Для него:
pSX emulator 1.13;psxfin.exe;N;813a8a0980e7f07e34da147d9cd603f2
;RAM 2MB;80000000;P00571A5C;200000

Так как адрес всегда разный (начало памяти psx) то я не пойму как мне этот адрес самому найти используя эти данные...

Вставив в ArtMoney PSX адрес 0x80000000 получаю 0x06D33020 (PC), при следующем запуске PC адрес уже будет другим.
Вообще не понимаю как это всё работает, и как это всё ищется...

;RAM 2MB;80000000;P00571A5C;200000
Я не вникал в суть, но если ты говоришь что адрес постоянно меняется, возможно тут используется не адрес начала памяти PSX, а указатель на этот адрес. На что может намекать буква "P" вначале адреса. :?

Оффлайн Legended

  • Пользователь
  • Сообщений: 6
    • Просмотр профиля
ArtMoney и PSX адреса
« Ответ #8 : 05 Май 2018, 20:40:36 »
;RAM 2MB;80000000;P00571A5C;200000
Я не вникал в суть, но если ты говоришь что адрес постоянно меняется, возможно тут используется не адрес начала памяти PSX, а указатель на этот адрес. На что может намекать буква "P" вначале адреса. :?
Судя по этому так и есть
Цитата
Кроме того, это помогает находить нулевые адреса в эмуляторах по известному адресу параметра. К примеру, есть адрес таймера отсчета времени на экране выбора игрока в игре Captain Commando на CPS1. Время на экране выбора игрока хранится в памяти точным значением, адрес в RAM (эмуляторный адрес) равен 00FF9275. RAM начинается с адреса 00FF0000. Когда выходит новая версия эмулятора (к примеру, эмулятор Final Burn Alpha), то можно запустить эту игру в эмуляторе, дождаться экрана выбора игрока, сделать паузу эмуляции, выполнить поиск значения таймера по всей памяти эмулятора, снять паузу на какое-то время, снова поставить паузу, отсеять на новое значение, после чего получим адрес таймера (у меня на 32 бит версиях эмулятора адрес находится после первого отсеивания). После этого к этому адресу прибавляем смещение -9275h, получаем нулевой адрес эмуляции. На это адрес нужно будет найти указатель, получим настройку новой версии эмулятора.
Но как найти на этот адрес указатель?

Оффлайн Mr2

  • Пользователь
  • Сообщений: 1598
  • Пол: Мужской
  • Free roaming sorcerer
    • Facebook
    • Просмотр профиля
ArtMoney и PSX адреса
« Ответ #9 : 05 Май 2018, 20:52:09 »
Но как найти на этот адрес указатель?
Зачем его искать? Он уже найден для pSX 1.13. Если "P00571A5C" указатель на адрес, то он указывает на PC адрес начала PSX памяти в PC пространстве. В общем, если знаком с указателями, то обсуждать нечего, если не знаком, то гугли. ;)

Оффлайн Legended

  • Пользователь
  • Сообщений: 6
    • Просмотр профиля
ArtMoney и PSX адреса
« Ответ #10 : 05 Май 2018, 20:55:41 »
Зачем его искать? Он уже найден для pSX 1.13. Если "P00571A5C" указатель на адрес, то он указывает на PC адрес начала PSX памяти в PC пространстве. В общем, если знаком с указателями, то обсуждать нечего, если не знаком, то гугли. ;)
Мне и надо найти то на что он указывает.
P.S.Да в этом гугл хрен что найдешь если не знаешь что и как искать... прошу помощи!

Оффлайн krocki

  • Пользователь
  • Сообщений: 1250
  • Пол: Мужской
  • ...:::Hacking_Craft:::...
    • Просмотр профиля
ArtMoney и PSX адреса
« Ответ #11 : 06 Май 2018, 11:37:21 »
Цитата
Мне и надо найти то на что он указывает.
Вопрос непонятный, ты же должен знать что за адрес и за что значение его отвечает. <_<

Оффлайн Legended

  • Пользователь
  • Сообщений: 6
    • Просмотр профиля
ArtMoney и PSX адреса
« Ответ #12 : 06 Май 2018, 13:03:18 »
Вопрос непонятный, ты же должен знать что за адрес и за что значение его отвечает. <_<
Если я что-то знал то не спрашивал бы...
UPD
Пока ты не сказал про значение я не допер, вот я дебил... всё так просто оказывается, самого главного всё это время не замечал...

Запустил сейчас эмулятор, адрес начало памяти PSX 06CF8020, смотрю что у нас в памяти по адресу 0x00571A5C (тот самый указатель)
0x00571A5C 20 80 CF 06 <-- а вот и наш адрес в HEX.

Спасибо всем кто хоть как-то помогал, особенно krocki который ткнул лицом, так бы долго еще не понял
Простите за мою не внимательность.
« Последнее редактирование: 06 Май 2018, 13:17:04 от Legended »