Перевожу Contra Force, но не могу найти поинтеры. Вот мои шаги по их поиску:
1. Начальный адрес $14D90 (По этому адресу строка «HI. IT'S ME, FOX.»);
2. Отнимаю 10h: 14D90=14D80;
3. Убираю все цифры до тысячных: 14D80 - 4D80;
4. Делю это число на две пары: 4D80h - 4D 80;
5. Меняю эти пары местами: 4D 80 - 80 4D;
6. И соединяю пары обратно: 80 4D - 804D;
7. Получаю пойнтер: 804D;
Затем открываю Hexpose и Hex search-ем ищу 804D. Он ничего не находит. Я предполагаю, что тут используется система с Х000 смещением, т.е. вместо 14D80 - 1ХD80. Значение этого Х я не знаю, поэтому поступаю так:
1. Вместо 4D80 представляю XD80;
2. Делю это число на две пары: XD80h - XD 80;
3. Меняю эти пары местами: XD 80 - 80 XD;
4. Cоединяю пары обратно: 80 XD - 80XD;
5. Получаю пойнтер: 80XD;
Так как значение Х я не знаю я в Hex search ищу 80, но найдя его смотрю на байт справа. Вторая цифра этого байта должна быть обязательно D. Hex search нашел только два значения
805D и 806D (т.е. в первом случае Х000=1000, а во втором Х000=2000). Но эти байты тоже не являются поинтерами и дальше я не знаю как поступить. Поэтому у меня несколько просьб:
1. Укажите (если есть ) ошибки допущенные при вычислении поинтеров;
2. Ваша команда перевела этот ром и если можно, то укажите поинтер для этой строки и его адрес (если можно адрес именно в Hexpose т.к. в Translhextion эта строка имеет адрес $14D98 и я не знаю почему);
3. Если можно подскажите хороший способ вычисления Х000.
Спасибо.
Отредактировано Antony (2007-02-24 05:30:42)