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


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

> Описание: "Вмещаемость" в contra
FastCat Пользователь
Отправлено: 31 Мая, 2020 - 15:31:59
Post Id





Покинул форум
Сообщений всего: 11
Дата рег-ции: Май 2020  





Доброго дня. Подскажите пожалуйста, как можно сделать так чтобы в игре влазило все слово которое нужно. К примеру возьмем игру Contra (U)!.nes
Использую hex редактор Translhextion, хочу изменить слово на главном экране SELECT на SELECTION, т.е. добавить еще три буквы ION. Вот нашел нужное слово, дописал еще три буквы, сохранил, запускаю и все черный экран. Подскажите на примере как это сделать Огорчение





Прикреплено изображение
Screenshot_2.png

 
 Top
Guyver Администратор
Отправлено: 31 Мая, 2020 - 15:37:54
Post Id



Chief-Net


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





Тебе нужно найти поинтер на это слово. И перенести его в свободное место, где тебе хватит букв, изменив этот поинтер.

Точнее, тебе нужно найти поинтеры на все слова, какое-то слово будет короче, какое-то длиннее, но они все в итоге "скомпенсируются" и всё влезет...

Про поинтеры с примерами ты можешь почитать статьи на нашем сайте.

http://chief-net.ru/index.php?op...=6&Itemid=33

Только вот хексредактор - это как на счётах в компьютерную эру считать. Он тебе не подойдёт для перевода (только для поиска/просмотра), нужно делать проект в круптаре.

-----
Я не волшебник - я только учусь...
 
 Top
FastCat Пользователь
Отправлено: 31 Мая, 2020 - 16:14:35
Post Id





Покинул форум
Сообщений всего: 11
Дата рег-ции: Май 2020  





как все сложно, 21 век, мда уж...
 
 Top
Mefistotel Администратор
Отправлено: 01 Июня, 2020 - 12:42:20
Post Id



Chief-Net


Покинул форум
Сообщений всего: 7127
Дата рег-ции: Окт. 2014  
Откуда: МАГАДАН





Есть способ попроще. Раздобыть волшебную палочку, загадать необходимое и сказать "бодиди-бадиди-бум". Вуаля.
P.S. Ссылка на документацию про пойнтеры не та.
Вот нужная:
http://chief-net.ru/index.php?op...09&Itemid=33

-----
"Перевод старых игр - отличная возможность понять, как устроены программы, подучить иностранный язык и поднять уровень владения родным. Ну и конечно, это просто возможность "общения" со своей любимой игрой детства." © Dimouse
 
 Top
FastCat Пользователь
Отправлено: 01 Июня, 2020 - 17:01:56
Post Id





Покинул форум
Сообщений всего: 11
Дата рег-ции: Май 2020  





Mefistotel пишет:
Есть способ попроще. Раздобыть волшебную палочку, загадать необходимое и сказать "бодиди-бадиди-бум". Вуаля.
P.S. Ссылка на документацию про пойнтеры не та.
Вот нужная:
http://chief-net.ru/index.php?op...09&Itemid=33


я пытался по этому руководству сделать, но нифига не получается:
https://shedevr.org.ru/cgi-bin/docs.cgi?n=3

а еще я нашел эту прогу "Griever's pointer searcher", я так понимаю что это еще упрощает процесс, т.е. вбиваю адрес первой буквы и она находит мне сразу поинтер, так я понимаю?
Ну нашел допустим я поинтер слова PLAY, нашел поинтер второго слова SELECT, чтобы понять хоть что это работает, я вторым поинтером заменял первый, т.е. по сути как я понимаю должно было вывести при запуске игры SELECT SELECT, а в итоге ничего не изменилось. Значит я что-то делаю не так(((

(Отредактировано автором: 01 Июня, 2020 - 17:12:07)

 
 Top
Guyver Администратор
Отправлено: 01 Июня, 2020 - 17:48:03
Post Id



Chief-Net


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





Значит, ты не нашёл поинтер...

-----
Я не волшебник - я только учусь...
 
 Top
FastCat Пользователь
Отправлено: 01 Июня, 2020 - 19:03:55
Post Id





Покинул форум
Сообщений всего: 11
Дата рег-ции: Май 2020  





Guyver пишет:
Значит, ты не нашёл поинтер...


Я так все делаю?

Прикреплено изображение
Screenshot_2.jpg

 
 Top
FastCat Пользователь
Отправлено: 01 Июня, 2020 - 19:46:17
Post Id





Покинул форум
Сообщений всего: 11
Дата рег-ции: Май 2020  





Если этот адрес вбить в прогу, то вообще ничего не найдет, я так понимаю она работает 50 на 50. Поэтому ищем вручную
Прикреплено изображение
Screenshot_3.jpg

 
 Top
Guyver Администратор
Отправлено: 01 Июня, 2020 - 23:39:43
Post Id



Chief-Net


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





В проге поиска поинтеров ты забыл отнять от адреса 16 байт (h10), не? Я не знаю, прога сама их отнимает или нет...

Твоя фраза точно с этого адреса начинается? Ну т.е.

Фраза 1
стопбайт
Фраза 2
символ переноса
Фраза 3
символ переноса
Фраза 4
символ переноса
Фраза 5
стопбайт
Фраза 6
стопбайт
Фраза 7

В этом примере у тебя только 4 поинтера, на фразы 1,2,6,7. У тебя между словами стопбайты или символы переноса или что? (Сам я не смотрел). Если там поинтер только на первое слово, а остальное тупо переносами задаётся, то ты найдёшь только 1 поинтер вообще. Если стопбайты там - то найдёшь поинтеры на каждое из слов.

-----
Я не волшебник - я только учусь...
 
 Top
Mefistotel Администратор
Отправлено: 01 Июня, 2020 - 23:41:08
Post Id



Chief-Net


Покинул форум
Сообщений всего: 7127
Дата рег-ции: Окт. 2014  
Откуда: МАГАДАН





FastCat пишет:
Я так все делаю?

Да, всё верно, только у тебя таблица неполная. Добавь /00 - это пробел.
Ищи младший байт D5 выше или ниже текста в близости от текста. Меняй и проверяй.
Может быть так, что указатель на каждую строку идёт отдельно в коде и быть в самом начале рома.

-----
"Перевод старых игр - отличная возможность понять, как устроены программы, подучить иностранный язык и поднять уровень владения родным. Ну и конечно, это просто возможность "общения" со своей любимой игрой детства." © Dimouse
 
 Top
FastCat Пользователь
Отправлено: 02 Июня, 2020 - 00:32:46
Post Id





Покинул форум
Сообщений всего: 11
Дата рег-ции: Май 2020  





Mefistotel пишет:
FastCat пишет:
Я так все делаю?

Да, всё верно, только у тебя таблица неполная. Добавь /00 - это пробел.
Ищи младший байт D5 выше или ниже текста в близости от текста. Меняй и проверяй.
Может быть так, что указатель на каждую строку идёт отдельно в коде и быть в самом начале рома.


Добавил в таблицу пробел, перенос и окончание текста
Прикреплено изображение
Screenshot_9.jpg

(Отредактировано автором: 02 Июня, 2020 - 01:08:37)

 
 Top
Guyver Администратор
Отправлено: 02 Июня, 2020 - 02:47:18
Post Id



Chief-Net


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





Перед словом у тебя стоит 2 байта. Как я думаю, это по оси х и у координаты вывода слова. Т.е. адрес смещается ещё на 2 байта, и отнимать нужно h12, а не h10. FE похож на стопбайт...

-----
Я не волшебник - я только учусь...
 
 Top
FastCat Пользователь
Отправлено: 02 Июня, 2020 - 11:50:26
Post Id





Покинул форум
Сообщений всего: 11
Дата рег-ции: Май 2020  





Я обнаружил в игре две фразы PLAY SELECT и соответственно находятся на разных адресах

Вот это первая фраза
https://prnt.sc/ss7eqe

А эта вторая соответственно по котороя я и ищу:
https://prnt.sc/ss7fny

А первая тогда откуда фраза взялась, в игре что-то нигде ее не нашел, что это за дубль такой, может мне нужно было искать по первой фразе? Ничего не понимаю.

(Отредактировано автором: 02 Июня, 2020 - 11:51:43)

 
 Top
FastCat Пользователь
Отправлено: 02 Июня, 2020 - 15:16:14
Post Id





Покинул форум
Сообщений всего: 11
Дата рег-ции: Май 2020  





Фиг поймешь вас, один говорит что нужно 10 отнимать, другой 12, на шедевре жирным текстом написано "от всех адресов надо отнимать 10 байт". Один говорит посмотри одну инструкцию, другой эта не то, смотри другую, в итоге в той другой, а именно во второй части про пойнтеры, как показано на примере игры Double Dragon 3 так там почему то адрес берется ВООБЩЕ не первой буквы, а то что перед ней, и как тут что понять, хз....... Хм
 
 Top
BoreS Пользователь
Отправлено: 02 Июня, 2020 - 17:52:04
Post Id






Покинул форум
Сообщений всего: 322
Дата рег-ции: Окт. 2014  
Откуда: Кировскъ, Мурманской обл.





если ты не можешь разобраться съ такими простейшими вещами и начинаешь кого-то въ этомъ обвинять, то тебе вообще не стоитъ этимъ заниматься. Хотя бы до того момента, пока не научишься не только читать доки, но и понимать ихъ. Отъ того, что на дворе 21 векъ, не значитъ, что не надо думать своей головой.
 
 Top
FastCat Пользователь
Отправлено: 02 Июня, 2020 - 22:18:40
Post Id





Покинул форум
Сообщений всего: 11
Дата рег-ции: Май 2020  





BoreS пишет:
если ты не можешь разобраться съ такими простейшими вещами и начинаешь кого-то въ этомъ обвинять, то тебе вообще не стоитъ этимъ заниматься. Хотя бы до того момента, пока не научишься не только читать доки, но и понимать ихъ. Отъ того, что на дворе 21 векъ, не значитъ, что не надо думать своей головой.


Ну слушай если доки с ошибками, то как по ним что понимать? Ты сначала сам проверь прежде чем чесать языком и строить из себя героя защитника.
 
 Top
Griever Пользователь
Отправлено: 02 Июня, 2020 - 22:20:55
Post Id


VIP


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





Ну ведь мы и сами виноваты Закатив глазки
Те надписи, что интересуют FastCat (надписи титульника) - это не строки, а часть сжатой Konami RLE тайловой карты.
Чтобы изменить длину слова нужно её распаковать, отредактировать и попробовать упаковать в тот же размер или меньше.
 
 Top
Mefistotel Администратор
Отправлено: 02 Июня, 2020 - 23:45:15
Post Id



Chief-Net


Покинул форум
Сообщений всего: 7127
Дата рег-ции: Окт. 2014  
Откуда: МАГАДАН





Хоть кто-то нашёл время скачать ром и посмотреть.)))
FastCat, в моей доке нет никакой ошибки, просто надо знать адрес начала строки, если указатели стандартные. Строки не всегда начинаются с первой буквы слова. Перед словом могут идти координаты вывода строк, ширина строки и другие служебные байты. Пойнтер будет указывать именно на них.
Что касается данной игры, то Конами в своих играх всегда сжимали текст на титульниках, экранах копирайтов и прочих. Используй программу RLE Coder с сайта, только нужно найти адрес начала сжатой карты.
P.S. Сейчас скажет, что "третий про какую-то тайловую карту несёт"🤣
P.P.S. Изменил название темы.

-----
"Перевод старых игр - отличная возможность понять, как устроены программы, подучить иностранный язык и поднять уровень владения родным. Ну и конечно, это просто возможность "общения" со своей любимой игрой детства." © Dimouse
 
 Top
FastCat Пользователь
Отправлено: 03 Июня, 2020 - 00:52:32
Post Id





Покинул форум
Сообщений всего: 11
Дата рег-ции: Май 2020  





Mefistotel пишет:
Хоть кто-то нашёл время скачать ром и посмотреть.)))
FastCat, в моей доке нет никакой ошибки, просто надо знать адрес начала строки, если указатели стандартные. Строки не всегда начинаются с первой буквы слова. Перед словом могут идти координаты вывода строк, ширина строки и другие служебные байты. Пойнтер будет указывать именно на них.
Что касается данной игры, то Конами в своих играх всегда сжимали текст на титульниках, экранах копирайтов и прочих. Используй программу RLE Coder с сайта, только нужно найти адрес начала сжатой карты.
P.S. Сейчас скажет, что "третий про какую-то тайловую карту несёт"🤣
P.P.S. Изменил название темы.


Ну вот вразумительный ответ! Про тайловые карты я уже понял потому что решил открыть программу yychr и просмотреть ром, в итоге алфавита там не нашел, так как графика пожата. Кстати, похожая ситуация с играми от Codemaster
 
 Top
BoreS Пользователь
Отправлено: 03 Июня, 2020 - 00:54:44
Post Id






Покинул форум
Сообщений всего: 322
Дата рег-ции: Окт. 2014  
Откуда: Кировскъ, Мурманской обл.





FastCat пишет:
Ну слушай если доки с ошибками, то как по ним что понимать? Ты сначала сам проверь прежде чем чесать языком и строить из себя героя защитника.


Я не строю из себя защитника, и не чешу языком. Если ты чего-то не понимаешь или лень что-то проверить, то это твои проблемы, а не ошибки въ докахъ. И такие люди просто раздражаютъ. Сами даже не хотятъ разбираться, но виноваты все вокругъ, особенно те, кто посылаетъ хотя бы документацию почитать и вникнуть въ неё.
Скажи ещё спасибо, что здесь люди добрые и нянчатся съ тобой. На шедевре бы быстро послали съ такими вопросами.
 
 Top
FastCat Пользователь
Отправлено: 03 Июня, 2020 - 00:59:06
Post Id





Покинул форум
Сообщений всего: 11
Дата рег-ции: Май 2020  





BoreS пишет:
FastCat пишет:
Ну слушай если доки с ошибками, то как по ним что понимать? Ты сначала сам проверь прежде чем чесать языком и строить из себя героя защитника.


Я не строю из себя защитника, и не чешу языком. Если ты чего-то не понимаешь или лень что-то проверить, то это твои проблемы, а не ошибки въ докахъ. И такие люди просто раздражаютъ. Сами даже не хотятъ разбираться, но виноваты все вокругъ, особенно те, кто посылаетъ хотя бы документацию почитать и вникнуть въ неё.
Скажи ещё спасибо, что здесь люди добрые и нянчатся съ тобой. На шедевре бы быстро послали съ такими вопросами.


Заплачь еще возьми.
 
 Top
BoreS Пользователь
Отправлено: 03 Июня, 2020 - 01:03:28
Post Id






Покинул форум
Сообщений всего: 322
Дата рег-ции: Окт. 2014  
Откуда: Кировскъ, Мурманской обл.





Всё съ тобой ясно.
 
 Top
Kolya88 Пользователь
Отправлено: 03 Июня, 2020 - 16:29:02
Post Id





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





Народ, подскажите как узнать размер заголовка рома y NES??
Вот тут выше читал что нужно отнимать 10h это я так понимаю размер, так а как можно где его посмотреть?
 
 Top
Guyver Администратор
Отправлено: 03 Июня, 2020 - 17:20:19
Post Id



Chief-Net


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





В хаксредакторе. Ромы бывают двух типов. У большинства заголовок 16 байт, т.е. h10.

CODE:
(Bytes 0->3 MUST BE What is stated below.)

0 = 4E (N)
1 = 45 (E)
2 = 53 (S)
3 = 1A (Character Break, necessary!)

(Bytes 4->8-15 Can BE MODIFIED!)

4 = PRG (Hex number depends on size of PRG file)-/-- (See Sect. 4)
5 = CHR (Hex number depends on size of CHR file)/
6 = Mapper 0-15/ V or H Mirroring, Battery, 4 Screen VRAM, Trainer Switches
Also is used as the "Ones" place holder digit for the extended iNES Header
format. (See Sect. 2)
7 = Mappers 16-?, the extended iNES Header format "Tens" place holder digit.
Again (See Sect. 2 for details on how this is set up.)

8->15 = Not used at this tume but MUST BE ALL ZEROS or games will not work.


Это был формат ines. Бывают ещё ромы немного другой системы. Про них я мало что знаю...

-----
Я не волшебник - я только учусь...
 
 Top
Kolya88 Пользователь
Отправлено: 03 Июня, 2020 - 19:01:18
Post Id





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





Ага, а если так вот через эмулятор можно посмотреть?
prg + chr = 16 + 8 = 18h это так получается?

или просто prg смотрим это у нас 16 = 10h
Прикреплено изображение
Screenshot_1.jpg

(Отредактировано автором: 03 Июня, 2020 - 19:03:44)

 
 Top
BoreS Пользователь
Отправлено: 03 Июня, 2020 - 20:36:15
Post Id






Покинул форум
Сообщений всего: 322
Дата рег-ции: Окт. 2014  
Откуда: Кировскъ, Мурманской обл.





неужели всехъ новичковъ забанили въ гугле? %)
Даже на геймфаке есть статья по заголовкамъ.
https://gamefaqs.gamespot.com/ne...86-nes/faqs/2947

и даже целая вики есть съ этой информацией
http://wiki.nesdev.com/w/index.php/INES

да даже на хабре есть про это.
https://habr.com/ru/post/187876/
Люди, научитесь сперва пользоваться поискомъ!

(Отредактировано автором: 03 Июня, 2020 - 20:36:44)

 
 Top
Kolya88 Пользователь
Отправлено: 04 Июня, 2020 - 00:51:30
Post Id





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





BoreS спасибо!
 
 Top
Guyver Администратор
Отправлено: 04 Июня, 2020 - 11:26:17
Post Id



Chief-Net


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







В общем, можно лого править без труда, но соблюдать при этом определённые правила. Правим по адресу h000918B в роме:

Старый код:
Цитата:
/00/8BPLAY/00SELECT
/04/00/85/E4/E5/F0/F1/F2/1A/00/8 8/F3/F4/F5/C5/C6/C7/C8/C9/0C/00/ 881/00
PLAYER/03/00/85/CA/CB/CC/CD/CE/0 3/00/82/EF/D6/15/00/86/D9/DA/DB/ DC
/DD/DE/04/00/81/E6/0B/00/902/00P LAYERS/00/E9/EA/EB/EC/ED/EE/04/0 0/81
/F6/17/00/84/D7/D8/E7/E8/13/00/8 DTM/00AND/00/C3/001988/0E/00
/97KONAMI/00INDUSTRY/00CO.,LTD/10/00
/8BLICENSED/00BY/0E/00/97NINTEND O/00OF/00AMERICA
/00INCM/00/83/A0/A0/20/06/00/82XR/03P/83/00/00/20/05/05/05/00/83/CC/FF


Новый код:
Цитата:
/00/8EPLAY/00SELECTION
/04/00/85/E4/E5/F0/F1/F2/1A/00/8 8/F3/F4/F5/C5/C6/C7/C8/C9/0C/00/ 881/00
PLAYER/03/00/85/CA/CB/CC/CD/CE/0 3/00/82/EF/D6/15/00/86/D9/DA/DB/ DC
/DD/DE/04/00/81/E6/0B/00/902/00P LAYERS/00/E9/EA/EB/EC/ED/EE/04/0 0/81
/F6/17/00/84/D7/D8/E7/E8/13/00/8 DTM/00AND/00/C3/001988/0E/00
/94KON/00INDUSTRY/00CO.,LTD/10/00
/8BLICENSED/00BY/0E/00/97NINTEND O/00OF/00AMERICA
/00INCM/00/83/A0/A0/20/06/00/82XR/03P/83/00/00/20/05/05/05/00/83/CC/FF


SELECT - добавил 3 буквы, поэтому /8B увеличил на 3 и стало /8E
Удлиннил я слово на 3 буквы за счёт слова /97KONAMI (можно за счёт чего-то другого, или даже 1 байт за счёт одного, а оставшиеся 2 байта уже за счёт чего-то другого)
Поэтому стало /94KON (сократил слово на 3 байта и длину его тоже уменьшил на 3)

Как видно, посдвигались и остальные картинки. Поэтому их тоже все придётся двигать (искать что и где сдвигается), соблюдая баланс - подвинул что-то на 1 байт вправо - должен подвинуть на 1 байт влево что-то другое. Иначе будет каша вместо экрана...

После приведения экрана в порядок, если потребуется, то придётся искать, где задаётся цвет разных частей картинки, так как картинки сдвинутся, а их "цветовая матрица" останется на старом месте. И если буквы какие-то в неё попадут - у них будет другой цвет и его придётся менять. В общем, веселья будет много! Ха-ха

Т.е. просто методом проб и ошибок можно сдвинуть всё как нужно. Нужно найти и понять за что отвечает каждый байт за/перед очередным словом и т.д. Это не так сложно. Но использовать при этом только не хекс редактор, там это ОЧЕНЬ трудно будет сделать! Круптар с заданием нулевых поинтеров подойдёт для этих целей в самый раз...





П.С. Алфавит в игре прекрасно ищется и редактируется в формате 1bpp. Он легко перерисовывается в DjinnTileMapper'е по адресу карты тайлов 12FD7.

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


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



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