|
shedevr.org.ru Группа перевода приставочных игр "ШЕДЕВР"
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
&ryu
Зарегистрирован: 09.10.2004 Сообщения: 259 Откуда: Город Юности
|
Добавлено: Пн Июн 26, 2006 2:53 pm Заголовок сообщения: |
|
|
To HoRRoR:
Хватит уже...
To АнС:
А разве Translhextion так умеет? _________________ "Человек сам вершит свою судьбу..."(Ричард Рал) |
|
Вернуться к началу |
|
|
HoRRoR RRC2008
Зарегистрирован: 21.06.2006 Сообщения: 2341 Откуда: Ростов-на-Дону
|
Добавлено: Пн Июн 26, 2006 3:07 pm Заголовок сообщения: |
|
|
&ryu писал(а): | To HoRRoR:
Хватит уже... |
Да все, не буду. Ты уже второй, кто мне это говорит(вернее пишет).
В данном случае я хотел сказать, что в его ситуациях я искал подобное вручную. |
|
Вернуться к началу |
|
|
АнС RRC2008
Зарегистрирован: 08.11.2003 Сообщения: 2818
|
Добавлено: Пн Июн 26, 2006 3:15 pm Заголовок сообщения: |
|
|
&ryu писал(а): | To АнС:
А разве Translhextion так умеет? |
Да, используешь "*" в Search Relative. |
|
Вернуться к началу |
|
|
HoRRoR RRC2008
Зарегистрирован: 21.06.2006 Сообщения: 2341 Откуда: Ростов-на-Дону
|
Добавлено: Пн Июн 26, 2006 3:21 pm Заголовок сообщения: |
|
|
АнС писал(а): | Да, используешь "*" в Search Relative. |
Круто! Я и не знал... |
|
Вернуться к началу |
|
|
&ryu
Зарегистрирован: 09.10.2004 Сообщения: 259 Откуда: Город Юности
|
Добавлено: Пн Июн 26, 2006 3:24 pm Заголовок сообщения: |
|
|
АнС писал(а): |
Да, используешь "*" в Search Relative. |
Так же как в обычном? Прикольно! _________________ "Человек сам вершит свою судьбу..."(Ричард Рал) |
|
Вернуться к началу |
|
|
Axel Советник
Зарегистрирован: 14.11.2003 Сообщения: 680
|
Добавлено: Пн Июн 26, 2006 3:37 pm Заголовок сообщения: |
|
|
&ryu писал(а): | АнС писал(а): |
Да, используешь "*" в Search Relative. |
Так же как в обычном? Прикольно! |
хехе, даже ПП2 так умеет...
(только маск'ирование полубайтов я не стал делать...нужды не было...) _________________ Всех их вместе переведём! |
|
Вернуться к началу |
|
|
&ryu
Зарегистрирован: 09.10.2004 Сообщения: 259 Откуда: Город Юности
|
Добавлено: Пн Июн 26, 2006 7:40 pm Заголовок сообщения: |
|
|
А есть что-нибудь, что ищет ОДИНАКОВЫЕ неизвестные байты, расположенные через один байт?
всмысле: **XX**XX** (Где "XX" - неизвестные одинаковые байты, а "*" - любые)? _________________ "Человек сам вершит свою судьбу..."(Ричард Рал) |
|
Вернуться к началу |
|
|
Axel Советник
Зарегистрирован: 14.11.2003 Сообщения: 680
|
Добавлено: Пн Июн 26, 2006 8:50 pm Заголовок сообщения: |
|
|
&ryu писал(а): | А есть что-нибудь, что ищет ОДИНАКОВЫЕ неизвестные байты, расположенные через один байт?
всмысле: **XX**XX** (Где "XX" - неизвестные одинаковые байты, а "*" - любые)? |
а эти "одинаковые" тоже любые ?
в том смысле, что искалка должна какбы перебирать комбинации
??01??01??01??01
??02??02??02??02
...
??FF??FF??FF??FF
так ? _________________ Всех их вместе переведём! |
|
Вернуться к началу |
|
|
АнС RRC2008
Зарегистрирован: 08.11.2003 Сообщения: 2818
|
Добавлено: Пн Июн 26, 2006 10:38 pm Заголовок сообщения: |
|
|
&ryu писал(а): | А есть что-нибудь, что ищет ОДИНАКОВЫЕ неизвестные байты, расположенные через один байт?
всмысле: **XX**XX** (Где "XX" - неизвестные одинаковые байты, а "*" - любые)? |
Есть... и Аксель даже видел исходники |
|
Вернуться к началу |
|
|
Axel Советник
Зарегистрирован: 14.11.2003 Сообщения: 680
|
Добавлено: Пн Июн 26, 2006 10:44 pm Заголовок сообщения: |
|
|
АнС писал(а): | ...и Аксель даже видел исходники |
а ведь точно, у меня что-то в голове крутилось, но вспомнить не сумел... :)
кстати, в той проге еще и формулы можно было писать... _________________ Всех их вместе переведём! |
|
Вернуться к началу |
|
|
&ryu
Зарегистрирован: 09.10.2004 Сообщения: 259 Откуда: Город Юности
|
Добавлено: Вт Июн 27, 2006 11:12 am Заголовок сообщения: |
|
|
У меня такое ощущение, что что тестят мою соображалку :D
Вообще, эта идея появилась у меня год-полтора назад. У меня возник вопрос: "А почему бы не сделать прогу, которая будет искать поинтеры по смещениям текста?" При необходимости, добавлять различные варианты.
При продумывании алгоритма я пришёл к такому выводу:
У нас есть смещения строк, идущих друг за другом, например:
h1AD25
h1AD50
h1AD75
Значит пойнтеры у нас будут: 25AD50AD75AD. Но это в идеале, а на самом деле будет там не AD, а что-нибудь другое (из-за хедера например). Но соль в том, что они практически в любом случае будут одинаковы. И значит искать нам нужно 25XX50XX75XX (где "XX", естественно, одинаковый неизвестный байт.)
А если следующая строка имела бы смещение, например h1AE00, то наша чудо-прога ( ) простым вычислением AE-AD вычисляет, что дальше должен идти пойнтер "(XX+1)00". В идеале, нам даже не нужно было бы указывать все смещения строк, а только смещения начала и конца текста. Смещения строк она смогла бы вычислить по стоп-байтам. Но так как навыки программинга у меня тогда были никакие, то всё это так и осталось лишь на "бумаге". Что поделать, у меня теоритический склад ума _________________ "Человек сам вершит свою судьбу..."(Ричард Рал) |
|
Вернуться к началу |
|
|
АнС RRC2008
Зарегистрирован: 08.11.2003 Сообщения: 2818
|
Добавлено: Вт Июн 27, 2006 11:27 am Заголовок сообщения: |
|
|
&ryu писал(а): | Вообще, эта идея появилась у меня год-полтора назад. У меня возник вопрос: "А почему бы не сделать прогу, которая будет искать поинтеры по смещениям текста?" При необходимости, добавлять различные варианты.
При продумывании алгоритма я пришёл к такому выводу:
У нас есть смещения строк, идущих друг за другом, например:
h1AD25
h1AD50
h1AD75
Значит пойнтеры у нас будут: 25AD50AD75AD. Но это в идеале, а на самом деле будет там не AD, а что-нибудь другое (из-за хедера например). Но соль в том, что они практически в любом случае будут одинаковы. И значит искать нам нужно 25XX50XX75XX (где "XX", естественно, одинаковый неизвестный байт.)
А если следующая строка имела бы смещение, например h1AE00, то наша чудо-прога ( ) простым вычислением AE-AD вычисляет, что дальше должен идти пойнтер "(XX+1)00". В идеале, нам даже не нужно было бы указывать все смещения строк, а только смещения начала и конца текста. Смещения строк она смогла бы вычислить по стоп-байтам. Но так как навыки программинга у меня тогда были никакие, то всё это так и осталось лишь на "бумаге". Что поделать, у меня теоритический склад ума |
Эта идея в автоматизации поиска таблицы релативсерчем. Не пройдёт. :-] Тут элементы системы надо задействовать другим образом - работу оставить ручной (так как таблицы не всегда имеют ту идеальную структуру, так что их поиск требует творческого подхода, а не машинного), а инструмент (релативсерчер) усовершенствовать... И я даже не совсем практик... хотя до внедрения в производство тоже пока не дошёл... |
|
Вернуться к началу |
|
|
HoRRoR RRC2008
Зарегистрирован: 21.06.2006 Сообщения: 2341 Откуда: Ростов-на-Дону
|
Добавлено: Вт Июн 27, 2006 11:31 am Заголовок сообщения: |
|
|
Я сейчас думаю над прогой для Little Ninja Brothers(NES), которая будет считывать из оригинала стоп-байты и указатели, проделывать подобное и с измененным файлом, а затем прописывать нужные указатели в измененный файл. Нужно будет просто занести в прогу смещения начала и конца таблиц указателей, и смещения начала и конца блоков текста.
Правда, сначала нужно подучить VB 6.0, а то я не могу сие проделать из-за непонимания: как с помощью оператора GET#(не буду писать, какого плохого и нехорошего ) вынуть байты по определенным смещениям в переменную типа byte. Ни в одной документации я это не встречал, там указывается только про номера каких-то записей, но говориться, что при двоичном доступе к файлу, можно считывать конкретные одиночные байты.
Помогите кто-нибудь! |
|
Вернуться к началу |
|
|
&ryu
Зарегистрирован: 09.10.2004 Сообщения: 259 Откуда: Город Юности
|
Добавлено: Вт Июн 27, 2006 11:42 am Заголовок сообщения: |
|
|
АнС писал(а): |
Эта идея в автоматизации поиска таблицы релативсерчем. Не пройдёт. :-] Тут элементы системы надо задействовать другим образом - работу оставить ручной (так как таблицы не всегда имеют ту идеальную структуру, так что их поиск требует творческого подхода, а не машинного), а инструмент (релативсерчер) усовершенствовать... И я даже не совсем практик... хотя до внедрения в производство тоже пока не дошёл... |
Вообще-то эта идея взята из Круптара. Только подана другим боком. Для ВСЕХ случаев это естественно не подойдёт. Но для большинства - да. К тому же я два варианта думал: Релатив Пойнтер Сёрч, и простой поиск с усовершенствованиями (то о чём ты говоришь). А если в прогу ещё и добавлять новые вариации (например с помощью линкуемых библиотек), то уйти можно далеко.
Вся соль тут в том, что старики найдут и так, а новички и с этой прогой далеко не уйдут, если учиться не будут. Да и попасть может не в те руки. Но тем не менее. _________________ "Человек сам вершит свою судьбу..."(Ричард Рал)
Последний раз редактировалось: &ryu (Пт Июн 30, 2006 5:33 am), всего редактировалось 1 раз |
|
Вернуться к началу |
|
|
АнС RRC2008
Зарегистрирован: 08.11.2003 Сообщения: 2818
|
Добавлено: Вт Июн 27, 2006 11:49 am Заголовок сообщения: |
|
|
HoRRoR писал(а): | Я сейчас думаю над прогой для Little Ninja Brothers(NES), которая будет считывать из оригинала стоп-байты и указатели, проделывать подобное и с измененным файлом, а затем прописывать нужные указатели в измененный файл. Нужно будет просто занести в прогу смещения начала и конца таблиц указателей, и смещения начала и конца блоков текста. |
Это ты пишешь рекалькулятор поинтеров.
&ryu писал(а): | Вся соль тут в том, что старики найдут и так, |
Ну, облегчить труд она уж точно поможет.
&ryu писал(а): | Да и попасть может не в те руки. Но тем не менее. |
В каком смысле? |
|
Вернуться к началу |
|
|
&ryu
Зарегистрирован: 09.10.2004 Сообщения: 259 Откуда: Город Юности
|
Добавлено: Вт Июн 27, 2006 11:54 am Заголовок сообщения: |
|
|
HoRRoR писал(а): | Я сейчас думаю над прогой для Little Ninja Brothers(NES), которая будет считывать из оригинала стоп-байты и указатели, проделывать подобное и с измененным файлом, а затем прописывать нужные указатели в измененный файл. Нужно будет просто занести в прогу смещения начала и конца таблиц указателей, и смещения начала и конца блоков текста. |
Не изобретай велосипед. Скачай Круптар.
АнС писал(а): | Ну, облегчить труд она уж точно поможет. |
Вот-вот. :)
АнС писал(а): | В каком смысле? |
Просто вспомнил:
1. Обоснование невыкладывания ПП2
2. Чудо природы. _________________ "Человек сам вершит свою судьбу..."(Ричард Рал) |
|
Вернуться к началу |
|
|
HoRRoR RRC2008
Зарегистрирован: 21.06.2006 Сообщения: 2341 Откуда: Ростов-на-Дону
|
Добавлено: Вт Июн 27, 2006 12:12 pm Заголовок сообщения: |
|
|
&ryu писал(а): | Не изобретай велосипед. Скачай Круптар. |
А там есть такая фишка? Круто! Ну а в идеале конечно лучше написать индивидуальную прогу. |
|
Вернуться к началу |
|
|
АнС RRC2008
Зарегистрирован: 08.11.2003 Сообщения: 2818
|
Добавлено: Вт Июн 27, 2006 12:32 pm Заголовок сообщения: |
|
|
HoRRoR писал(а): | А там есть такая фишка? Круто! Ну а в идеале конечно лучше написать индивидуальную прогу. |
Как раз в реале лучше написать индивидуальную прогу, так как для конкретных ситуаций комбайны не очень хорошо подходят. |
|
Вернуться к началу |
|
|
&ryu
Зарегистрирован: 09.10.2004 Сообщения: 259 Откуда: Город Юности
|
Добавлено: Вт Июн 27, 2006 1:29 pm Заголовок сообщения: |
|
|
АнС писал(а): |
Как раз в реале лучше написать индивидуальную прогу, так как для конкретных ситуаций комбайны не очень хорошо подходят. |
В новом будет (вернее уже есть) поддержка линкуемых библиотек. Написал DLL-ку и всё Правда сейчас это практически невозможно сделать, т.к. это недокументированно _________________ "Человек сам вершит свою судьбу..."(Ричард Рал) |
|
Вернуться к началу |
|
|
IfoR
Зарегистрирован: 16.05.2006 Сообщения: 334
|
Добавлено: Вт Июн 27, 2006 4:44 pm Заголовок сообщения: |
|
|
HoRRoR писал(а): | Правда, сначала нужно подучить VB 6.0, а то я не могу сие проделать из-за непонимания: как с помощью оператора GET#(не буду писать, какого плохого и нехорошего ) вынуть байты по определенным смещениям в переменную типа byte. Ни в одной документации я это не встречал, там указывается только про номера каких-то записей, но говориться, что при двоичном доступе к файлу, можно считывать конкретные одиночные байты.
Помогите кто-нибудь! |
Для начала нужно объявить переменную для записи в неё байта (если объявить обычную как цифровое значение (стандарт), то в неё будет писаться всякая ерунда). Делается это так. В самое начало кода программы пишем такую строку: (в качестве переменной будет A)
Dim A as Byte
На всякий случай (во избежание ошибок) объявим цифровую переменную, в которую будет писаться номер отрытого файла. Пишем дальше: (в качестве переменной будет B)
Dim B
Затем пишем эти строки туда, где нужно открыть заранее выбранный файл. (C - текстовая переменная в которой путь к файлу)
B = FreeFile 'Пишем в переменную свободный номер
Open С For Binary As #B
Далее идёт считывание байта из файла. Синтаксис: Get #Номер_Файла,[Номер считывающего байта. Начиная с 1!!!],Переменная. Если Номер считывающего байта пропущен, то считывание идёт поочерёдно. Пишем: (Считываем байт по адресу 1ADh=429+1=430)
Get #B, 430, A
Теперь в переменной A находится содержимое байта по адресу 1ADh. Для записи байта в файл используется команда PUT. Синтаксис такой же только в переменной должно содержатся то, что нужно записать в файл. Пример: (Пишем в файл по адресу 430 значение в переменой A)
Put #B, 430, A
Теперь в файле записано то, что в переменой A. После того, когда нам файл уже не нужен нам нужно его закрыть (для освобождения номера файла). Пишем:
Close #B 'Если номер файла пропустить и написать просто Close, то закроются все открытые файлы.
Вроде всё. |
|
Вернуться к началу |
|
|
Axel Советник
Зарегистрирован: 14.11.2003 Сообщения: 680
|
Добавлено: Вт Июн 27, 2006 6:48 pm Заголовок сообщения: |
|
|
Ura_Orlov писал(а): | Для начала нужно объявить переменную... |
Ura,
отличное пояснение к моему коду
http://www.shedevr.org.ru/forum/viewtopic.php?p=19195#19195
я, правда, и сам люблю объяснения, начинающиеся словами
"...сначала, Земля была раскалённым шаром...", но в этом
конкретном случае, я сдался... просто рано...
ему еще, как завещал нам дедушка Л. - учиться, учиться и ...
...к сожалению, пока, не в коня корм...
(почитай ту ветку, всё сам поймешь...)
[edit]
да и не тот это форум, чтобы вот так всё разжевывать... _________________ Всех их вместе переведём! |
|
Вернуться к началу |
|
|
HoRRoR RRC2008
Зарегистрирован: 21.06.2006 Сообщения: 2341 Откуда: Ростов-на-Дону
|
Добавлено: Вт Июн 27, 2006 7:09 pm Заголовок сообщения: |
|
|
Огроооооооооооооооооооомное спасибо вам обоим!!! Век буду благодарен(если проживу ).
Я раньше вроде и это пробовал, но кроме нулей ничего не выдавалось... Тупой я, короче.
Axel, не обижайся, что я с твоего кода не допер(я в нем копался, честно), просто первый раз я РЕАЛЬНО взялся за VB только сегодня(даже програмку состряпал для вычисления указателей поинтеров по смещениям и обратно), а адаптироваться после номеров строк и $ в конце текстовых переменных сложновато...
Ura_Orlov, все документации о GET# и PUT# по сравнению с тобой - отстой! Короче, еще раз огромное спасибо, Axel'ю тоже. :jump:
З.Ы. Если что не так - искренне прошу прощения. И извините за тупость - я ведь только учусь. |
|
Вернуться к началу |
|
|
Гость
|
Добавлено: Вт Июн 27, 2006 7:32 pm Заголовок сообщения: |
|
|
ты, только имей ввиду, что в отличает от Юриных объяснений
в моём примере кода смещенния считаются с НУЛЯ, а не единицы...
(всё дело в волшебных пузырьках )
Код: |
ReDim myROM(0 To LOF(1))
|
а в принипе, он всё правильно написал... |
|
Вернуться к началу |
|
|
Axel Советник
Зарегистрирован: 14.11.2003 Сообщения: 680
|
Добавлено: Вт Июн 27, 2006 7:39 pm Заголовок сообщения: |
|
|
да, кстати, чтобы избавиться от "лишнего" нолика в конце
результирующего рома должно быть так:
ReDim myROM(0 To LOF(1) -1) _________________ Всех их вместе переведём! |
|
Вернуться к началу |
|
|
HoRRoR RRC2008
Зарегистрирован: 21.06.2006 Сообщения: 2341 Откуда: Ростов-на-Дону
|
Добавлено: Вт Июн 27, 2006 8:23 pm Заголовок сообщения: |
|
|
Я сейчас пишу прогу, которая пересчитывает стоп-байты в LNB, выписывает их адреса и вычисляет указатель следующего байта. |
|
Вернуться к началу |
|
|
|
|
Вы не можете начинать темы Вы можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
Powered by phpBB © 2001, 2005 phpBB Group
|