| Разработка и ромхакинг > Ромхакинг и программирование |
| ArtMoney и PSX адреса |
| (1/1) |
| Legended:
Как ArtMoney из адреса 0x06DE3CB0 показывает 0x800CCC90? Вот некоторая информация Рабочая память PSX: 0x80000000 - 0x801FFFFF Нулевой адрес эмулятора (pSX 1.13): 0x00571A5C Что нужно отнять/прибавить чтобы из 0x06DE3CB0 получить 0x800CCC90? |
| paul_met:
Не знаю как в артмани, но, думаю, так же, как и в Cheat enging - адреса будут всегда разные. Нужной найти строчку "PS-X EXE" и от полученного адреса отнять "B070" - получишь адрес начала RAM. |
| dedok179:
--- Цитата: Legended от 07 Апрель 2018, 23:57:03 ---0x06DE3CB0 --- Конец цитаты --- Два раза кликни по адресу 0x06DE3CB0 в строке где ты его получил, тебе покажут реальный адрес в памяти приставки. |
| Legended:
--- Цитата: dedok179 от 08 Апрель 2018, 18:26:21 ---Два раза кликни по адресу 0x06DE3CB0 в строке где ты его получил, тебе покажут реальный адрес в памяти приставки. --- Конец цитаты --- Так адрес уже известен! мне интересно как ArtMoney это делает. Добавлено позже: --- Цитата: paul_met от 08 Апрель 2018, 08:25:51 ---Не знаю как в артмани, но, думаю, так же, как и в Cheat enging - адреса будут всегда разные. Нужной найти строчку "PS-X EXE" и от полученного адреса отнять "B070" - получишь адрес начала RAM. --- Конец цитаты --- А можно поподробней? Например я адрес с 0x800CCC90 поменял на 0x80000000 и PC адрес стал 0x06D48020, это он? |
| paul_met:
--- Цитата: Legended от 09 Апрель 2018, 08:28:44 ---А можно поподробней? Например я адрес с 0x800CCC90 поменял на 0x80000000 и PC адрес стал 0x06D48020, это он? --- Конец цитаты --- Повторяю, я не знаю как там в артмани (ибо никогда не юзал). Но в CE во всём доступном адресном пространстве ищем строку "PS-X EXE" в текстовом виде или в хекс представлении. Когда строка найдена, отнимаем от полученного адреса "B070" и получаем адрес начала RAM плойки. |
| Mr2:
--- Цитата: Legended от 09 Апрель 2018, 08:28:44 ---мне интересно как 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:
--- Цитата: Mr2 от 15 Апрель 2018, 12:05:50 ---В папке 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:
--- Цитата: Legended от 05 Май 2018, 18:38:30 ---Использую 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:
--- Цитата: Mr2 от 05 Май 2018, 20:06:54 ---;RAM 2MB;80000000;P00571A5C;200000 Я не вникал в суть, но если ты говоришь что адрес постоянно меняется, возможно тут используется не адрес начала памяти PSX, а указатель на этот адрес. На что может намекать буква "P" вначале адреса. :? --- Конец цитаты --- Судя по этому так и есть --- Цитата ---Кроме того, это помогает находить нулевые адреса в эмуляторах по известному адресу параметра. К примеру, есть адрес таймера отсчета времени на экране выбора игрока в игре Captain Commando на CPS1. Время на экране выбора игрока хранится в памяти точным значением, адрес в RAM (эмуляторный адрес) равен 00FF9275. RAM начинается с адреса 00FF0000. Когда выходит новая версия эмулятора (к примеру, эмулятор Final Burn Alpha), то можно запустить эту игру в эмуляторе, дождаться экрана выбора игрока, сделать паузу эмуляции, выполнить поиск значения таймера по всей памяти эмулятора, снять паузу на какое-то время, снова поставить паузу, отсеять на новое значение, после чего получим адрес таймера (у меня на 32 бит версиях эмулятора адрес находится после первого отсеивания). После этого к этому адресу прибавляем смещение -9275h, получаем нулевой адрес эмуляции. На это адрес нужно будет найти указатель, получим настройку новой версии эмулятора. --- Конец цитаты --- Но как найти на этот адрес указатель? |
| Mr2:
--- Цитата: Legended от 05 Май 2018, 20:40:36 ---Но как найти на этот адрес указатель? --- Конец цитаты --- Зачем его искать? Он уже найден для pSX 1.13. Если "P00571A5C" указатель на адрес, то он указывает на PC адрес начала PSX памяти в PC пространстве. В общем, если знаком с указателями, то обсуждать нечего, если не знаком, то гугли. ;) |
| Legended:
--- Цитата: Mr2 от 05 Май 2018, 20:52:09 ---Зачем его искать? Он уже найден для pSX 1.13. Если "P00571A5C" указатель на адрес, то он указывает на PC адрес начала PSX памяти в PC пространстве. В общем, если знаком с указателями, то обсуждать нечего, если не знаком, то гугли. ;) --- Конец цитаты --- Мне и надо найти то на что он указывает. P.S.Да в этом гугл хрен что найдешь если не знаешь что и как искать... прошу помощи! |
| krocki:
--- Цитата ---Мне и надо найти то на что он указывает. --- Конец цитаты --- Вопрос непонятный, ты же должен знать что за адрес и за что значение его отвечает. <_< |
| Legended:
--- Цитата: krocki от 06 Май 2018, 11:37:21 ---Вопрос непонятный, ты же должен знать что за адрес и за что значение его отвечает. <_< --- Конец цитаты --- Если я что-то знал то не спрашивал бы... UPD Пока ты не сказал про значение я не допер, вот я дебил... всё так просто оказывается, самого главного всё это время не замечал... Запустил сейчас эмулятор, адрес начало памяти PSX 06CF8020, смотрю что у нас в памяти по адресу 0x00571A5C (тот самый указатель) 0x00571A5C 20 80 CF 06 <-- а вот и наш адрес в HEX. Спасибо всем кто хоть как-то помогал, особенно krocki который ткнул лицом, так бы долго еще не понял Простите за мою не внимательность. |
| Навигация |
| Главная страница сообщений |