Вложений: 1 
		
		riku.kh3, в шапке пример не совсем примитивный. Там самый обычный PRX, как и все нормальные PRX-ы. EBOOT.BIN - это так же файл PRX, в распакованном виде ELF. Просто видимо в этой игре разрабы нахитрили. А может они все такие на UMD. 
	В общем я же дампил тексты из памяти. Так вот, эти тексты складываются в самый конец этого EBOOT.BIN эльфа. И сам файл EBOOT.BIN складывается в памяти в рабочий вид, он же состоит в основном из рабочего программного кода, только в конец складывает результаты работы по ходу продвижения игры. Я подглядел, как он складывается и могу дать тебе разгадку явления )) 
 В позиции 0x225E60 файл заканчивается, а в дампе туда приклеивается рабочая часть игры. Если откроешь дамп в текстовом редакторе в кодировке Shift-JIS, то почти в самом конце увидишь текст, на момент которого был снят дамп. Сам дамп памяти и готовый EBOOT.BIN приаттачиваю.  | 
		
 ErikPshat, да, prxtool теперь хоть и разбирает, но 'data ref' для этих фраз вообще не находит. Вот например одна из фраз в EBOOT.BIN декриптованом 1ECF7C-1ECFAB (в LITBIS дампе 1EBF7C-1EBFAB). Как ее хотя бы на байт вперед или назад сместить? Ничего что бы на ее начало указывало не находится, как в примере из шапки. :scratch_one-s_head: 
	 | 
		
 riku.kh3, а у меня PRXTool теперь с этим файлом вообще не работает ))) Так что видимо что-то не так с ибутом, это не выход. 
	Смещение узнаётся и без PRXTool-а. Нужно адрес позиции вбить в поиск и он выведет на то смещение. Но файл у нас получился не верный, поэтому это ни к чему не приведёт. Думаю нужно брать оригинальный декриптованный файл и с ним работать. Там заголовок не 0x60, как обычно, а 0x1018, поэтому его нужно отнимать. В оригинале думаю это позиция текста 0x1EDF70. И там нет указателей на текст. Скорее всего указатели в скриптпаке или их нет совсем между текстами. Они могут быть на начало каждой группы текстовых диалогов. Я там вижу, что каждый диалог начинается с 8175 и заканчивается 8176. Затем каждый диалог просто отделяется 2-умя нулями 0000 - это и есть цепная реакция между диалогами, их отделяющая. А уже между группами диалогов идёт 4 нулевых байта 00000000. Таким образом они по-очереди наверное и раскладываются без всяких указателей. Получается ты можешь двигать смещения внутри всех групп диалогов, но главное не сдвигать программный код до и после всех диалогов.  | 
		
 ErikPshat, там это рандомные фразы, которые персонажи говорят в мини-игре с бейсболом. Между ними последовательности точно нет, поэтому должны быть указатели на их начало.. И это точно не в скриптпаке. 
	Цитата: 
	
  | 
		
 Цитата: 
	
 А разве нельзя один диалог, чтобы залазил на другой, но между ними оставлять разделяющий байт. Просто один диалог будет длиннее, а другой короче. То есть, когда поинтер следующего диалога сдвигается от своего начала.  | 
		
 ErikPshat, только что проверил в наглую сдвинув этот самый разделяющий '00'. Фраза которая увеличилась отображается нормально ровно до '00'. Но следующая за ней фраза, за счет которой увеличил предыдущую, попросту начинается с конца предыдущей фразы пока не упирается в '00'. То есть вторая фраза испортилась и отображает лишь маленький кусочек конца предыдущей фразы. 
	 | 
		
 riku.kh3, получается поинтеры на каждую фразу где-то есть. Нужно поискать ))) они могут быть и в каком-нибудь отдельном куске. 
	Собсно поинтеры обычно заметно, их видно по стройному ряду кодов, плавно увеличивающихся. Обычно идёт 4 байта смещения и следом 4 служебных байта.  | 
		
 Вложений: 1 
		
		Не знаю, может помочь или нет, тут ELF'ы от PS3 и PS2 версии этой игры. В PS3 ELF'е эта фраза находится по 1D17D0-1D17FF, а в PS2 по 371988-3719B7. 
	Для PS2 ELF'ов есть тоже дизассамблер, называется ps2dis099_23, но я в нем тоже ничего, что бы указывало на начало этой фразы не нахожу.  | 
		
 Пока я сюда заглянул, дополню: по большей части инструкция написана для перевода homebrew, которые выводят текст отладочным шрифтом (вот этим вот мелким из пикселей). Как можно понять из комментариев, замена текста в коммерческих играх таким методом, как правило, невозможна. Однако, если кто-то всё же захочет изучить строение файла игры, то нужно работать с EBOOT.BIN файлом, который необходимо предварительно декриптовать при помощи pspdecrypt. Однако, доступная публично версия по ссылке достаточно устаревшая и может не понять какие-то методы шифрования (криптовки). Когда и если обновлённая версия будет доступна для всех, я постараюсь не забыть обновить этот (или добавить новый) комментарий со ссылкой. 
	 | 
		
 Цитата: 
	
  | 
		
 Re-Education,  
	да, но декриптер можно завернуть в скрипт удобный, например.  | 
		
 Вложений: 2 
		
		Цитата: 
	
 Вложение 19322  | 
| Текущее время: 14:18. Часовой пояс GMT +3. | 
	Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: zCarot
	
	PSPx Forum - Сообщество фанатов игровых консолей.