форум группы Chief-Net форум группы Chief-Net
Перевод приставочных игр и не только!
drako site Перейти на сайт группы     Наш чат      Помощь      Поиск      Пользователи


 Страниц (1): [1]   

> Описание: АРХИВНАЯ ТЕМА 2007 года
alex_231 Супермодератор
Отправлено: 31 Января, 2016 - 13:00:42
Post Id



Chief-Net


Покинул форум
Сообщений всего: 4688
Дата рег-ции: Окт. 2014  





Прочёл на форуме Шедевра следующее: "...это снесовская игра, абсолютных указателей тут и в помине нет."
Ничего не буду говорить в адрес автора (чтобы меня ещё раз неправильно поняли, нет уж увольте), расскажу о поинтерах NES и SNES.
NES:
так как адресное пространство приставки ограничено 64 килобайтами, то двухбайтовые указатели полностью его перекрывают и дают возможность сослаться на любую ячейку памяти, а отсюда следует вывод, что относительные ДВУХБАЙТОВЫЕ поинтеры здесь нерациональны, так как ведут к появлению дополнительных вычислений адреса (лично я ни разу не встречал в играх на NES относительных поинтеров).
SNES:
здесь немного сложнее, так как адресное пространство составляет 16 мегабайт и для его покрытия нужны трехбайтовые указатели, а в играх с большим количеством текста это приведёт к лишним затратам на третий байт указателя. Да, здесь используются относительные поинтеры. Но и трехбайтовых отсюда выкинуть нельзя, а так как структура памяти SNES, построена таким образом, что ром хранится не в начале, а в конце адресного пространства, обычно с адреса 0xC00000, то для того, чтобы привязать поинтеры к рому, от их значений следует отнять эту величину.
Но не стоит путать эти указатели с относительными, так как они указывают напрямую на ром в памяти приставки, а не на адрес в хекс-редакторе, относительные же потому и называются относительными, что указывают на место в памяти относительно определённого адреса, который явно должен присутствовать в памяти в момент использования относительного поинтера.
И вот, что я ещё хочу сказать: абсолютные поинтеры не только присутствуют в играх на SNES, но и интенсивно используются (особенно в больших играх).
Многие просто путают адресацию в памяти с адресацией в файле и вводят в заблуждение других.

-----
Делая выбор, отбрось простое решение и выбери правильное...
 
 Top
HoRRoR Пользователь
Отправлено: 31 Января, 2016 - 13:01:30
Post Id






Покинул форум
Сообщений всего: 654
Дата рег-ции: Окт. 2014  





HoRRoR
Поправки:
NES: Относительнытельные указатели встречаются ОЧЕНЬ часто.
SNES: Может кто-то путает абсолютные указатели со смещением из-за заголовка с относительными?
 
 Top
Griever Пользователь
Отправлено: 31 Января, 2016 - 13:01:58
Post Id


VIP


Покинул форум
Сообщений всего: 457
Дата рег-ции: Июнь 2015  





Griever
Цитата:
NES: Относительнытельные указатели встречаются ОЧЕНЬ часто.

? Надо бы пример привести, а то я чувствую вы друг друга не поняли...
 
 Top
alex_231 Супермодератор
Отправлено: 31 Января, 2016 - 13:02:13
Post Id



Chief-Net


Покинул форум
Сообщений всего: 4688
Дата рег-ции: Окт. 2014  





alex_231
1: Да, HoRRoR, приведи, пожалуйста, пример относительных поинтеров на NES.
2: Нет, заголовок тут не причём. Игра не имеет заголовка (в идеале), в смысле когда она хранится в памяти никакого заголовка там нет. (и как я уже писал: поинтер - это значение адреса в памяти приставки, а не в хекс-редакторе)

-----
Делая выбор, отбрось простое решение и выбери правильное...
 
 Top
HoRRoR Пользователь
Отправлено: 31 Января, 2016 - 13:03:29
Post Id






Покинул форум
Сообщений всего: 654
Дата рег-ции: Окт. 2014  





HoRRoR
Цитата:
1: Да, HoRRoR, приведи, пожалуйста, пример относительных поинтеров на NES.

LNB, FF1, EarthBound...
Цитата:
2: Нет, заголовок тут не причём. Игра не имеет заголовка (в идеале), в смысле когда она хранится в памяти никакого заголовка там нет. (и как я уже писал: поинтер - это значение адреса в памяти приставки, а не в хекс-редакторе).

Я имею ввиду, что может кто-то путает абсолютные указатели у файла с заголовком с относительными(из-за сдвига заголовка).
 
 Top
alex_231 Супермодератор
Отправлено: 31 Января, 2016 - 13:03:56
Post Id



Chief-Net


Покинул форум
Сообщений всего: 4688
Дата рег-ции: Окт. 2014  





alex_231
В LNB (как минимум) не используется банкование блока с текстом, впервые вижу игру такого типа.
Не мог бы поконкретнее описать, как используются поинтеры в FF1 и EarthBound?
Цитата:
Я имею ввиду, что может кто-то путает абсолютные указатели у файла с заголовком с относительными(из-за сдвига заголовка).

Может, но это совсем уже надо быть "того", так как относительные используются на большом расстоянии от начала адресации (и начинаются обычно с нулевого смещения), а не в 512-ти (или 16-ти!) байтах от него.
Да, и ещё: на SNES часто используются двухбайтовые указатели, которые приводятся к абсолютным без каких-либо арифметических действий, путем простой записи в память рядом со старшим байтом, указывающим нужный блок (например, XX XX F0, где "ХХ ХХ" - переменный поинтер).

-----
Делая выбор, отбрось простое решение и выбери правильное...
 
 Top
HoRRoR Пользователь
Отправлено: 31 Января, 2016 - 13:04:24
Post Id






Покинул форум
Сообщений всего: 654
Дата рег-ции: Окт. 2014  





HoRRoR
Цитата:

В LNB (как минимум) не используется банкование блока с текстом, впервые вижу игру такого типа.
Не мог бы поконкретнее описать, как используются поинтеры в FF1 и EarthBound?

К поинтерам прибавляется/отнимается определённое значение.
 
 Top
Griever Пользователь
Отправлено: 31 Января, 2016 - 13:04:55
Post Id


VIP


Покинул форум
Сообщений всего: 457
Дата рег-ции: Июнь 2015  





Griever
Цитата:
К поинтерам прибавляется/отнимается определённое значение.

Шокирован НЕТ! В случае LNB поинтер указывает на абсолютный адрес в PPU памяти (поэтому биты имеют прямой порядок (как в чипах Мотороллы 6800, 6809, 68000) - о пайплайнинге тут речи не идёт. Уже из PPU текст копируется в RAM. Поэтому только для простоты можно считать, что к нему что-то прибавляется, но с технической точки зрения указатели абсолютные.
EarthBound: Там вообще всё нормально: поинтеры показывают непосредственно на начало данных в RAM. Всегда. Ну, кроме последнего случая, с которым ты разбирался - там поинтеры ни при чём.
FF1: Тут уж совсем не понял: всё же стандартно! Указатель на фразу самого первого охранника (The King is looking...): 0х28072, что соответствует расположению текста в RAM ($8E04)
 
 Top
HoRRoR Пользователь
Отправлено: 31 Января, 2016 - 13:05:06
Post Id






Покинул форум
Сообщений всего: 654
Дата рег-ции: Окт. 2014  





HoRRoR
FF1, указатель на фразу:
~
And so, their^
journey begins....\
Адрес указателя ~36810
Адрес фразы ~36842
 
 Top
Griever Пользователь
Отправлено: 31 Января, 2016 - 13:05:21
Post Id


VIP


Покинул форум
Сообщений всего: 457
Дата рег-ции: Июнь 2015  





Griever
Ну! Всё верно... Я, правда, замучался таблицы делать, поэтому буду говорить про байты:
Адрес фразы ~36842 - это фраза (01 8A 3B 24 B2 BF 1B 1D) в момент вывода текста располагается по адресу $a832 в RAM. Указатель по адресу 0x36810 имеет значение $32 $A8.
Указатель абсолютный.
 
 Top
HoRRoR Пользователь
Отправлено: 31 Января, 2016 - 13:05:37
Post Id






Покинул форум
Сообщений всего: 654
Дата рег-ции: Окт. 2014  





HoRRoR
Ладно, вам видней, не буду спорить Улыбка
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Базовый хакинг »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



> Похожие темы: Вопрос о поинтерах NES и SNES
Темы Форум Информация о теме Обновление
Динамическое создание объектов
...
Программирование Ответов: 0
Автор темы: alex_231
24 Июля, 2015 - 11:15:55
Автор: alex_231
Логотип
...
Архив Ответов: 0
Автор темы: alex_231
16 Августа, 2015 - 05:13:36
Автор: alex_231
Chrono Trigger [SNES]
АРХИВНАЯ ТЕМА 2005-2012 годов
Переводы Ответов: 0
Автор темы: alex_231
10 Августа, 2016 - 10:11:26
Автор: alex_231
Final Fantasy III (NES)
...
Прохождение... Ответов: 0
Автор темы: alex_231
24 Июля, 2015 - 12:59:57
Автор: alex_231
Размер загружаемого файла
...
Архив Ответов: 0
Автор темы: alex_231
24 Июля, 2015 - 11:20:00
Автор: alex_231
 

Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®