Среди русскоязычных доков я бы не посоветовал ничего. Пожалуй, единственная толковая дока - дока CaH4e3a "NES изнутри"
http://cah4e3.shedevr.org.ru/nes_inside.html, хотя она вообще-то не для новичков. И в ней рассматривается только NES. Англоязычные доки по тематике поинтеров я не читал. Смотри сам, может найдёшь что-нибудь полезное -
http://www.romhacking.net/?Category=6&Console=0&Game=0&Author=0&Recm=0&Level=&docsearch=++Go++&title=&dsearch=&page=docs&action=doclist.
Здесь главное понять суть. Грубо говоря, на каждый ресурс в игре (будем считать, что это текстовая строка) что-то указывает. Это "что-то" - адрес или проще, число. Это число "говорит", откуда нужно считывать эту строку, это и есть поинтер или указатель. В простейшем случае адрес строки и будет являться указателем на её, т. е. это число равно адресу строки (строка хранится по адресу 01A23Dh, и поинтер имеет значение 01A23Dh (или 3DA201h - об этом ниже)).
При этом очень часто поинтеры объединяются в таблицы, в которых идут друг за другом (иногда закономерность в таблицах другая, но для простоты пока не надо принимать это во внимание).
Однако существует такая хитрая вещь как адресация, "способ указания на ресурс". Например, строка имеет адрес в роме 01A23Dh, а поинтер имеет значение 573Dh или 0801A23Dh. В первом случае разница между адресом строки и значением указателя "равна" 14B00h, во втором - 08000000h. В некоторых случаях эта разница известна заранее, но чаще всего - нет. Самое главное то, что в пределах одной таблицы поинтеров она
одинакова. А так как они идут друг за другом в таблице, то таблицу эту относительно легко найти по повторяющимся байтам (типичный пример для таблицы указателей игры на NES: 0082 0582 7B82 FE82 1283 4A83 5183 и т. д.)
Ещё один фактор, сбивающий с толку начинающих - это как этот поинтер будет считываться: справа налево, т. е. от младшего байта к страшему (для примера выше 00 - младший байт, 82 - старший байт в адресе) или наоборот, слева направо (для примера выше 57 - страший, 3D - младший байт). Это зависит только от системы (например, для NES это первый тип, для Сеги - второй).
И наконец, хедер, он же заголовок. Так уж было принято, к ромам для некоторых систем прибавляют заголовок. Причём он может и отcутствовать. Для NES его размер составляет 10h, для SNES - 200h, у сеговских ромов его нет. Поэтому работая с ромами, у которых есть заголовок, его
всегда надо учитывать и отнимать от адреса ресурса.
Ну вот, вроде все подводные камни новичков при работе с поинтерами описал.
Имхо, лучший способ разобраться - это учиться на готовых примерах. Возьми игру, в которой известно расположение строк и поинтеров к ним, смотри, изучай закономерности. Общего способа нахождения указателей не существует. Более того, большая разница бывает даже среди игр одной платформы. Так что постигать это надо опытным путём.
P.S. Для тех, кто "в теме": прошу меня ногами не пинать за вольные трактования и упущения:) Все это сделано намеренно. Главное, чтобы человек понял суть, а с тонкостями он разберётся сам, если ему действительно будет это нужно.