Список форумов shedevr.org.ru shedevr.org.ru
Группа перевода приставочных игр "ШЕДЕВР"
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

[Lab 313] TimView Plus
На страницу 1, 2  След.
 
Начать новую тему   Ответить на тему    Список форумов shedevr.org.ru -> Базовый ромхакинг
Предыдущая тема :: Следующая тема  

Ваше мнение о программе?
Отличная программа.
42%
 42%  [ 3 ]
Неплохо, но меня не устраивает то и то... (описать что именно)
0%
 0%  [ 0 ]
Ужасная программа! (напишите почему)
57%
 57%  [ 4 ]
Всего проголосовало : 7

Автор Сообщение
Dr. MefistO



Зарегистрирован: 28.03.2006
Сообщения: 189
Откуда: Беларусь

СообщениеДобавлено: Ср Авг 24, 2011 3:54 pm    Заголовок сообщения: [Lab 313] TimView Plus Ответить с цитатой



TimView Plus - универсальный вьювер TIM-файлов от Lab 313, обладающий следующим функционалом:
- Просмотр TIM-файлов;
- Отображение и изменение CLUT;
- Полная поддержка прозрачности/полупрозрачности;
- Сканер-рипер TIM-файлов;
- Правильный конвертер из BMP в TIM-файлы любой битности;
- Экспорт TIM в BMP, а также CLUT;
- Просмотр TIM-файлов в битностях, отличных от оригинальной;
- Поддержка параметров командной строки. О параметрах читайте ниже.

Отличия от других подобных программ:
- Корректный просмотр ВСЕХ ВОЗМОЖНЫХ TIM-файлов;
- Поддержка некоторых "особенных" TIM-файлов;
- Правильное преобразование BMP в TIM. Входной Bitmap не ограничивается цветами палитры;
- Небольшой размер программы, и высокая скорость работы;
- Быстрый сканер-рипер;
- Возможность установки программы как основного просмотрщика TIM-файлов;
- Отзывчивая техподдержка.

<- Ссылка на скачивание ->
Ссылка на сайт проекта: http://lab313.ru/
_________________
Metal is my life...


Последний раз редактировалось: Dr. MefistO (Вс Окт 23, 2011 1:05 pm), всего редактировалось 15 раз(а)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Dr. MefistO



Зарегистрирован: 28.03.2006
Сообщения: 189
Откуда: Беларусь

СообщениеДобавлено: Пт Авг 26, 2011 7:52 pm    Заголовок сообщения: Ответить с цитатой

Обновлена версия программы до v0.3.1 test (26.08.2011). Изменения такие:
Возможность поиска плохих TIM-файлов вынесена в отдельный пункт меню. Для командной строки это ключ -sb (вместо -s);
Исправлено отображение информации в таблице;
Исправлено поведение дефолтной палитры;
Мелкие багфиксы.
_________________
Metal is my life...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Dr. MefistO



Зарегистрирован: 28.03.2006
Сообщения: 189
Откуда: Беларусь

СообщениеДобавлено: Вт Авг 30, 2011 12:08 pm    Заголовок сообщения: Ответить с цитатой

Обновлена программа TimView Plus до версии 0.4 test. Вот список изменений:
- Добавлена возможность смотреть файлы в разных битностях, в том числе и VRAM;
- Теперь вы можете отобразить прозрачный черный, если таковой имеется в TIM-файле;
- Ускорена работа программы;
- Теперь список файлов не очищается при открытии нового файла, а происходит добавление открытого файла в этот список;
- Результаты сканирования отображаются в том же списке. Это намного удобнее;
- Каждый открытый двойным щелчком мыши TIM (при включеной ассоциации файлов) теперь открывается в существующем окне программы;
- Добавлено масштабирование при просмотре;
- Упрощен дизайн программы, все основные опции можно найти в главном меню;
- Исправлена ошибка, которая появлялась при частом переключении между двумя результами сканирования;
- Мелкие багфиксы.

Ссылка доступна в шапке темы.
_________________
Metal is my life...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
JurasskPark



Зарегистрирован: 15.03.2008
Сообщения: 155

СообщениеДобавлено: Вт Авг 30, 2011 7:27 pm    Заголовок сообщения: Ответить с цитатой

Пока readme не прочитал, что
Цитата:

Авторы программы:
- Dr. MefistO, AID_X, Squall$.

никак не мог понять, почему ты её рекламируешь. Very Happy
_________________
Вот такой я интересный зверёк!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Dr. MefistO



Зарегистрирован: 28.03.2006
Сообщения: 189
Откуда: Беларусь

СообщениеДобавлено: Вт Авг 30, 2011 7:44 pm    Заголовок сообщения: Ответить с цитатой

Да, я занимаюсь кодингом этой программы, AID - исследованиями.
В инфо о программе тоже есть информация об авторах.
_________________
Metal is my life...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Dr. MefistO



Зарегистрирован: 28.03.2006
Сообщения: 189
Откуда: Беларусь

СообщениеДобавлено: Ср Авг 31, 2011 4:22 pm    Заголовок сообщения: Ответить с цитатой

Обновил версию программы до 0.4.2 test:
- Исправлен просмотр результатов сканирования в разных битностях;
- Добавлено предупреждение о возможном наличии в открытом файле более одного тима;
- Сохранение и загрузка настроек программы;
- Сохранение битмапа изображения происходит сразу для всех палитр (как и при ключе -i);
- Кнопка генерирования палитры теперь доступна в режимах другой битности;
- Проверка ассоциации программы с TIM-файлами;
- Изменения в горячих клавишах пунктов меню.
- Мелкие исправления.

Ссылка доступна в шапке темы.
_________________
Metal is my life...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Dr. MefistO



Зарегистрирован: 28.03.2006
Сообщения: 189
Откуда: Беларусь

СообщениеДобавлено: Чт Сен 01, 2011 9:39 pm    Заголовок сообщения: Ответить с цитатой

Выпущена новая версия программы TimView Plus v0.4.3 test. Изменения следующие:
- Добавлена экспериментальная поддержка импорта BMP файлов в 16 и 24-битный TIMы. О том, как это происходит, читайте в ридми;
- Исправлен баг, когда не отображались результаты сканирования не BIN(TIM)-файлов;
- Другие незначительные исправления.

Новая ссылка в шапке темы.
_________________
Metal is my life...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
HoRRoR
RRC2008
RRC2008


Зарегистрирован: 21.06.2006
Сообщения: 2341
Откуда: Ростов-на-Дону

СообщениеДобавлено: Чт Сен 01, 2011 11:55 pm    Заголовок сообщения: Ответить с цитатой

Можно я покритикую? На правах своей дурной славы буду жесток и беспощаден, ибо считаю слишком ничтожным соотношение полезность/работа. Как к этому относиться - дело ваше, я не обижусь.

И так, что мы имеем? Очередной клон бесполезной в плане перевода (если браться с умом) утилиты, которая может пригодиться только на этапе реверса. Это не конкретно про вашу тулзу, это про вьюверы/риперы в целом.
Заявленные «отличия от других подобных программ» считаю высосанными из пальца. В целом, конечно, молодцы - опыт как-никак, но зачем же так серьёзно изобретать велосипед вне пределов гаража? У меня таких начинаний с полсотни наберётся, но благо кроме меня их никто не видел.

А теперь перебор заявленного функционала:
Цитата:
- Просмотр TIM-файлов (*.tim), а также VRAM (в формате *.bin);

*.bin - это расширение. Если быть точнее - маска имени файла. Я так понимаю, имеется ввиду дамп VRAM? Всегда считал одной из основных проблем дилетантства отсутствие адекватной терминологии, ибо даже гуру зачастую далеки от профессионального лексикона и бросаются сленгом направо и налево. Более того - плюются, когда называешь вещи своими именами. Видимо, сила привычки, а точнее - «синдром утёнка».
Также ещё одной проблемой считаю вредную привычку связывать файлы с их именами. Те же расширения по-хорошему нужны лишь для простоты работы с файлами, и в целом имя должно лишь помогать найти нужный файл, а как его открывать - должен решать сам пользователь. Конечно, за исключением случаев, когда имя действительно заведомо гарантированно несёт определённую семантику, и именно по нему ориентируется программа.
Итого, что мы имеем... Вьювер тимов? Было. Вьювер видеопамяти? Было. Преимущества перед аналогами? Не вижу.
К слову, вот RAW-данные - по сути сырые данные любого типа, почему же они представлены маской *.bin, если у них даже принятого расширения нет? Ну да, часто .bin, но ведь не реже и .raw, .dat, etc.

Цитата:
- Сканер файлов. Ищет все вхождения TIM-файлов. Имеется возможность сохранения выбранного tim-файла, либо автоматический рип всех вхождений;

Сканер? Было. Рипер? Было. Преимущество? Сомневаюсь.

Цитата:
- Экспорт TIM в BMP (в выбраной палитре), а также CLUT (собственно палитра);

Да было, было. Добавили бы PNG, что ли, для приличия. BMP как основной формат можно простить разве что из-за палитр, и то это технический аспект.

Цитата:
- Извлечение данных из BIN-образов данных, а также обратная сборка данных в BIN;

Вот тут можно понадеяться на явное преимущество, если речь идёт действительно о правильной обработке CD-образов.
Отсюда вытекает вопрос: при «сборке» (если быть точнее - при банальном реплейсе) корректируются EDC/ECC-данные? Если да - ставлю плюсик, если же нет и имеется ввиду простая поддержка больших файлов - то подобный вандализм образу на пользу не пойдёт.

Цитата:
- Возможность установки программы как основного просмотрщика TIM-файлов;

Дойдя до этого пункта, понимаешь всю суть программы и огорчаешься. Напихать всяких свистелок и перделок в тулзу можно всегда, а когда всё это делается ещё в тестовой версии - возникает сомнение, есть ли вообще в планах развитие основного функционала.
Господа, любую программу с поддержкой открытия файлов из командной строки в венде можно привязать к расширению, не стоит делать из этого «достоинство» инструмента.

Цитата:
- Поддержка командной строки.

Тогда уж добавьте: «- Запускается и работает». Как выражается один мой знакомый, «кошерная тулза» должна начинаться с командной строки.

Цитата:
- Проверка ассоциации программы с TIM-файлами;

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

Вот фишки, которые, как лично я считаю, смогли бы действительно сотворить неоспоримое преимущество:
Квантование с учётом альфы, работа с текстурными атласами, безграничные возможности по созданию TIM-файлов на низком уровне (особенно поддержка командной строкой), поддержка форматов PNG и PSD.
Вообще, жёстко не хватает инструмента для организации работы с текстурами. Например, имеется куча тимов (или файл с кучей тимов), которые являются текстурными атласами. Создаём проект, разбиваем атласы на отдельные текстурки, нужные экспортируем куда-нибудь в PNG. Вся мета-информация при этом хранится в проекте, т.е. под ногами ничего не путается. Когда всё перерисовано, тупо запускаем сборку (тем и хороша поддержка PSD, что не придётся делать лишние движение по конвертации), всё это дело квантуется (не будем же мы сковывать возможности локализации фиксированной палитрой, как длину строки указателями), собираются по данным из проекта текстурные атласы, если надо - вставляется обратно и все счастливы.
_________________
Работаю за деньги
KILL ALL HUMANS!!!!!111
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Dr. MefistO



Зарегистрирован: 28.03.2006
Сообщения: 189
Откуда: Беларусь

СообщениеДобавлено: Пт Сен 02, 2011 8:39 am    Заголовок сообщения: Ответить с цитатой

HoRRoR как всегда зол и беспощаден!) но, действительно, обижаться не на что.
Попробую все же отстоять свою позицию как разработчика утилиты.

Цитата:
*.bin - это расширение. Если быть точнее - маска имени файла. Я так понимаю, имеется ввиду дамп VRAM? Всегда считал одной из основных проблем дилетантства отсутствие адекватной терминологии, ибо даже гуру зачастую далеки от профессионального лексикона и бросаются сленгом направо и налево. Более того - плюются, когда называешь вещи своими именами. Видимо, сила привычки, а точнее - «синдром утёнка».
Также ещё одной проблемой считаю вредную привычку связывать файлы с их именами. Те же расширения по-хорошему нужны лишь для простоты работы с файлами, и в целом имя должно лишь помогать найти нужный файл, а как его открывать - должен решать сам пользователь. Конечно, за исключением случаев, когда имя действительно заведомо гарантированно несёт определённую семантику, и именно по нему ориентируется программа.
Итого, что мы имеем... Вьювер тимов? Было. Вьювер видеопамяти? Было. Преимущества перед аналогами? Не вижу.
К слову, вот RAW-данные - по сути сырые данные любого типа, почему же они представлены маской *.bin, если у них даже принятого расширения нет? Ну да, часто .bin, но ведь не реже и .raw, .dat, etc.


Назовите мне эмуляторы, которые сейвят VRAM не в формате BIN? Да, конечно, можно засейвить с любым другим расширением, но это ведь не главное! С таким же успехом можно придраться к эмуляторам Сеги, которые не понимают расширения файла *.seg, а берут только SMD (BIN). А так: всегда можно включить All Files (*.*) в фильтрах. Сделаю позже анализатор не по расширению, а по содержимому.
Цитата:
Сканер? Было. Рипер? Было. Преимущество? Сомневаюсь.

Скорость работы, ищет и плохие Тимы, которые пропускают другие риперы.
Цитата:
Да было, было. Добавили бы PNG, что ли, для приличия. BMP как основной формат можно простить разве что из-за палитр, и то это технический аспект.

Позже будет и PNG. Поэтому и test в названии версии. Да и в битмап программа палитры не сохраняет. Палитры сохраняются в отдельный битмап.
Это еще одно планируемое введение в проге: правильный конвертер из BMP в TIM, в котором не будет как в других конвертерах - если одинаковый цвет, то ссылаются на одну и ту же ячейку клата, при этом клат портится.
Цитата:
Вот тут можно понадеяться на явное преимущество, если речь идёт действительно о правильной обработке CD-образов.
Отсюда вытекает вопрос: при «сборке» (если быть точнее - при банальном реплейсе) корректируются EDC/ECC-данные? Если да - ставлю плюсик, если же нет и имеется ввиду простая поддержка больших файлов - то подобный вандализм образу на пользу не пойдёт.

Это сделано только для таких случаев, когда в смонтированном образе видны только пару файлов, не содержащих ни графики, ни других данных. Эта функция работает так: из каждого сектора берет только Data. И опять же: это только как доп. функционал.
Цитата:
Дойдя до этого пункта, понимаешь всю суть программы и огорчаешься. Напихать всяких свистелок и перделок в тулзу можно всегда, а когда всё это делается ещё в тестовой версии - возникает сомнение, есть ли вообще в планах развитие основного функционала.
Господа, любую программу с поддержкой открытия файлов из командной строки в венде можно привязать к расширению, не стоит делать из этого «достоинство» инструмента.

Это сделано опять же для удобства. Это не является основным "достоинством" программы. И... нашли к чему придраться.
Цитата:
Тогда уж добавьте: «- Запускается и работает». Как выражается один мой знакомый, «кошерная тулза» должна начинаться с командной строки.

Здесь имелось ввиду параметры командной строки, без запуска основной программы. Получается что-то типа GUI-Console в одном флаконе.
Цитата:
Так обычно делают, когда на основной функционал уже не хватает фантазии. И лично меня это жутко бесит. Всё-таки если я захочу повазюкать мышкой в венде, я найду кучу других способов. Спасает одно - это не навязчиво и включается опционально, поэтому можно не обращать внимания.

Вот и не обращаем. Это как дополнение.
Цитата:
Квантование с учётом альфы

Альфа в *.tim очень плохо реализована первоначально.

А вообще, спасибо вам за критику, дорой Хоррор. Учтем ваши пожелания и претензии.

Не хочется хвалиться, но мы не старались делать похожий на что-то проект. И, уже на данном этапе, TimView Plus обскакивает по функционалу и TimViewer, и прочие консольные аналоги-риперы. Ну а мы шагаем дальше. Функционал расширяется, изменяется согласно того, как этого желают юзеры, и разработчики (исходя из своих возможностей, навыков).
_________________
Metal is my life...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
HoRRoR
RRC2008
RRC2008


Зарегистрирован: 21.06.2006
Сообщения: 2341
Откуда: Ростов-на-Дону

СообщениеДобавлено: Пт Сен 02, 2011 9:18 am    Заголовок сообщения: Ответить с цитатой

Цитата:
Назовите мне эмуляторы, которые сейвят VRAM не в формате BIN? Да, конечно, можно засейвить с любым другим расширением, но это ведь не главное! С таким же успехом можно придраться к эмуляторам Сеги, которые не понимают расширения файла *.seg, а берут только SMD (BIN). А так: всегда можно включить All Files (*.*) в фильтрах. Сделаю позже анализатор не по расширению, а по содержимому.

BIN - не формат, это лишь часть имени файла. Какой может быть формат у дампа памяти? Дамп - он и в Африке дамп. А вот насчёт сеги тут не надо, smd и gen - принятые расширения для ромов.

Цитата:
Скорость работы, ищет и плохие Тимы, которые пропускают другие риперы.

Хорошо, допустим. Правда я не припомню, чтобы приходилось испытывать проблемы со скоростью.

Цитата:
Позже будет и PNG. Поэтому и test в названии версии. Да и в битмап программа палитры не сохраняет. Палитры сохраняются в отдельный битмап.
Это еще одно планируемое введение в проге: правильный конвертер из BMP в TIM, в котором не будет как в других конвертерах - если одинаковый цвет, то ссылаются на одну и ту же ячейку клата, при этом клат портится.

Не совсем понял о чём речь, особенно про портящийся клат.

Цитата:
Это сделано только для таких случаев, когда в смонтированном образе видны только пару файлов, не содержащих ни графики, ни других данных. Эта функция работает так: из каждого сектора берет только Data. И опять же: это только как доп. функционал.

С извлечением всё ясно. А как же со вставкой? Тоже обрабатывается только data? Вот это уже банально портит образ. Поправить коды коррекции ошибок не так уж и сложно, исходников куча.

Цитата:
Альфа в *.tim очень плохо реализована первоначально.

Не важно как, главное реализована. Хотя бы просто квантование прикрутите. Хотя без должной обработки текстурных атласов это бесполезно, подойдёт только для изображений с одной палитрой.
_________________
Работаю за деньги
KILL ALL HUMANS!!!!!111
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Dr. MefistO



Зарегистрирован: 28.03.2006
Сообщения: 189
Откуда: Беларусь

СообщениеДобавлено: Пт Сен 02, 2011 12:23 pm    Заголовок сообщения: Ответить с цитатой

Цитата:
BIN - не формат, это лишь часть имени файла. Какой может быть формат у дампа памяти? Дамп - он и в Африке дамп. А вот насчёт сеги тут не надо, smd и gen - принятые расширения для ромов.

Это ведь не проблема сменить на любое другое расширение. А описание функций писал на скорую руку - это опять же не главное. Хоть FCK расширение сделать, хоть JPG.
Цитата:
Не совсем понял о чём речь, особенно про портящийся клат.

Допустим есть два одинаковых цвета в одном из индексов клата на разных позициях. В тиме каждый байт имэйдж даты ссылается туда, куда ему указали при создании. Все известные мне конвертеры составляют блок имэйдж-даты так: берут пиксел БМП, ищут такой цвет в клате, заносят байты в файл. Но если два цвета одинаковых, то при конвертировании получится следующее:
на одной палитре картинка будет нормальной, а на других - уже бяка.
Возьму конкретный пример: клат - в нем две строки, в каждой по три цвета (1: черный, белый, черный; 2: белый, зеленый, черный).
Конвертер берет первый пиксел битмапа, и заносит данные (индексы) в имэйдж блок: получится, к примеру: 00 01 00 (последний будет 00, т.к. возьмется опять же первый черный) для первого. И тогда вторая картинка уже будет искажена, т.к. будет не (белый, зеленый, черный), а (белый, зеленый, белый). Такая вот получается проблема. И мне много раз приходилось с ней сталкиваться.
Цитата:
С извлечением всё ясно. А как же со вставкой? Тоже обрабатывается только data? Вот это уже банально портит образ. Поправить коды коррекции ошибок не так уж и сложно, исходников куча.

При извлечении создается три файла: с датой, остальной инфой из секторов, и файл с "контрольной суммой", чтобы при обратной сборке не собирались файлы, не подходящие друг к другу.
При сборке читается 24 байта инфы, потом даты 2048 байт, потом снова инфо 280 байт. Вот такая вот функция.
Цитата:
Не важно как, главное реализована. Хотя бы просто квантование прикрутите. Хотя без должной обработки текстурных атласов это бесполезно, подойдёт только для изображений с одной палитрой.

Возможно, оно будет реализовано в будущих версиях.
_________________
Metal is my life...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
HoRRoR
RRC2008
RRC2008


Зарегистрирован: 21.06.2006
Сообщения: 2341
Откуда: Ростов-на-Дону

СообщениеДобавлено: Пт Сен 02, 2011 12:41 pm    Заголовок сообщения: Ответить с цитатой

С клатом понял, на то и надо обрабатывать текстурные атласы как множество отдельных изображений, чтобы с палитрами не путаться. Хотя, если там палитровая анимация или просто несколько палитр принадлежат одному изображению, то тут уже косяк.

Цитата:
При сборке читается 24 байта инфы, потом даты 2048 байт, потом снова инфо 280 байт. Вот такая вот функция.

Сборка ведь подразумевает запись, а не чтение, не?
_________________
Работаю за деньги
KILL ALL HUMANS!!!!!111
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Dr. MefistO



Зарегистрирован: 28.03.2006
Сообщения: 189
Откуда: Беларусь

СообщениеДобавлено: Пт Сен 02, 2011 12:42 pm    Заголовок сообщения: Ответить с цитатой

Цитата:
Сборка ведь подразумевает запись, а не чтение, не?

Имеется ввиду чтение из полученных файлов и запись их в целый файл-образ.
_________________
Metal is my life...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
HoRRoR
RRC2008
RRC2008


Зарегистрирован: 21.06.2006
Сообщения: 2341
Откуда: Ростов-на-Дону

СообщениеДобавлено: Пт Сен 02, 2011 12:48 pm    Заголовок сообщения: Ответить с цитатой

Ничего не понял. Хочешь сказать, что извлекается сектор целиком, включая служебную информацию, в три разных файла?
_________________
Работаю за деньги
KILL ALL HUMANS!!!!!111
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Dr. MefistO



Зарегистрирован: 28.03.2006
Сообщения: 189
Откуда: Беларусь

СообщениеДобавлено: Пт Сен 02, 2011 12:56 pm    Заголовок сообщения: Ответить с цитатой

Цитата:
Ничего не понял. Хочешь сказать, что извлекается сектор целиком, включая служебную информацию, в три разных файла?

Нет, читает сектор из оригинала целиком, но пишет так: 24 байта из сектора в файл инфы, потом 2048 байт в файл даты, и 280 снова в файл инфы. Пока два файла. И в третий файл - "контрольная сумма" в виде размеров этих двух файлов.
При сборке:
читается 24 байта из инфы, записывается в файл образа, потом читается 2048 байт из даты, пишется в файл образа, и 280 байт из инфы, и записывает их файл образа. И так мы получаем новый образ.
_________________
Metal is my life...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
HoRRoR
RRC2008
RRC2008


Зарегистрирован: 21.06.2006
Сообщения: 2341
Откуда: Ростов-на-Дону

СообщениеДобавлено: Пт Сен 02, 2011 1:21 pm    Заголовок сообщения: Ответить с цитатой

Ужас какой. Первые 24 байта вообще трогать не следует, а вот последние 280 как раз-таки своего рода контрольная сумма, и при любом изменении блока data эти данные будут уже не верны, что вызовет ошибку при чтении. Поэтому их надо просчитывать на этапе записи в образ, и уж никак не сохранять в файл.
_________________
Работаю за деньги
KILL ALL HUMANS!!!!!111
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Dr. MefistO



Зарегистрирован: 28.03.2006
Сообщения: 189
Откуда: Беларусь

СообщениеДобавлено: Пт Сен 02, 2011 1:59 pm    Заголовок сообщения: Ответить с цитатой

Цитата:
Ужас какой. Первые 24 байта вообще трогать не следует, а вот последние 280 как раз-таки своего рода контрольная сумма, и при любом изменении блока data эти данные будут уже не верны, что вызовет ошибку при чтении. Поэтому их надо просчитывать на этапе записи в образ, и уж никак не сохранять в файл.

Честно, я этого не знал(
Подскажите, как высчитывать данные для этих 280 байт?
_________________
Metal is my life...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
HoRRoR
RRC2008
RRC2008


Зарегистрирован: 21.06.2006
Сообщения: 2341
Откуда: Ростов-на-Дону

СообщениеДобавлено: Пт Сен 02, 2011 2:26 pm    Заголовок сообщения: Ответить с цитатой

На каком языке пишете? Где-то валялись исходники для C и Delphi. В гугле такие вещи почему-то с трудом находятся.
_________________
Работаю за деньги
KILL ALL HUMANS!!!!!111
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Dr. MefistO



Зарегистрирован: 28.03.2006
Сообщения: 189
Откуда: Беларусь

СообщениеДобавлено: Пт Сен 02, 2011 5:40 pm    Заголовок сообщения: Ответить с цитатой

Пишу на Делфи+KOL-MCK. Да, в гугле такие вещи не находил.
Буду рад исходникам на Delphi.
Подсчет ECC здесь по Хеммингу?
_________________
Metal is my life...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
HoRRoR
RRC2008
RRC2008


Зарегистрирован: 21.06.2006
Сообщения: 2341
Откуда: Ростов-на-Дону

СообщениеДобавлено: Пт Сен 02, 2011 6:55 pm    Заголовок сообщения: Ответить с цитатой

Тогда вот тебе мой частичный порт libedc, ещё со времён, когда я кодил на дельфях.

Вот моя функция, формирующая сектор. Тут ещё заполняется заголовок сектора, тебе этот шаг не нужен.
Код:

Type
  TMode2Sector = Array[0..2352-1] of Byte;
...
procedure ConvertSector(Data: Pointer; LBA: Integer; ModeData: Integer = $80000);
var Sector: ^TMode2Sector; edc: Integer;
begin
  Sector := Data;
  Move(cSectorHeader, Sector^[0], 12);
  FillChar(Sector^[12], 4, 0);
  Move(ModeData, Sector^[16], 4);
  Move(ModeData, Sector^[20], 4);
  edc := build_edc(@Sector^[16], 2048 + 8);
  Move(edc, Sector^[2072], 4);
  encode_L2_P(@Sector^[12]);
  encode_L2_Q(@Sector^[12]);
  BuildAdress(LBA, Sector^[12]);
end;

_________________
Работаю за деньги
KILL ALL HUMANS!!!!!111
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Dr. MefistO



Зарегистрирован: 28.03.2006
Сообщения: 189
Откуда: Беларусь

СообщениеДобавлено: Пт Сен 02, 2011 7:07 pm    Заголовок сообщения: Ответить с цитатой

Спасибо за помощь!
Цитата:
BuildAdress(LBA, Sector^[12]);

Что это за функция и что она делает? Ее нет в исходниках.
Так вроде бы понял суть происходящего, но...
Код:
Type
  TMode2Sector = Array[0..2352-1] of Byte;
...
procedure ConvertSector(Data: Pointer; LBA: Integer; ModeData: Integer = $80000);
var Sector: ^TMode2Sector; edc: Integer;
begin
  Sector := Data;
  Move(cSectorHeader, Sector^[0], 12);
  FillChar(Sector^[12], 4, 0);
  Move(ModeData, Sector^[16], 4);
  Move(ModeData, Sector^[20], 4);
  edc := build_edc(@Sector^[16], 2048 + 8);
  Move(edc, Sector^[2072], 4);
  encode_L2_P(@Sector^[12]);
  encode_L2_Q(@Sector^[12]);
  BuildAdress(LBA, Sector^[12]);
end;

З.Ы. Можете пояснить подробнее эту процедуру?
_________________
Metal is my life...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
HoRRoR
RRC2008
RRC2008


Зарегистрирован: 21.06.2006
Сообщения: 2341
Откуда: Ростов-на-Дону

СообщениеДобавлено: Пт Сен 02, 2011 7:26 pm    Заголовок сообщения: Ответить с цитатой

Цитата:
Что это за функция и что она делает? Ее нет в исходниках.

Функция записывает в заголовок сектора время, исходя из номера сектора. Я думаю, вместо этой функции тебе надо просто временно заменить эти 4 байта на нули, а в конце вернуть обратно. Хотя, возможно, этого делать не придётся. Я уже не помню, как и что считается.
На всякий случай:
Код:

Function bin2bcd(P: Integer): Byte;
begin
  Result := ((p div 10) SHL 4) or (p mod 10);
end;

Procedure BuildAdress(LBA: Integer; var Dest);
var P: PByte; Sec: Integer;
begin
  Inc(LBA, 75 * 2); // 2 seconds
  P := @Dest;
  P^ := bin2bcd(LBA div (60*75));     Inc(P);
  P^ := bin2bcd((LBA div 75) mod 60); Inc(P);
  P^ := bin2bcd(LBA mod 75);          Inc(P);
  P^ := 2; 
end;


Цитата:
З.Ы. Можете пояснить подробнее эту процедуру?

Сперва мы формируем заголовок. Тебе можно этот шаг пропустить, он у тебя уже есть. Но всё равно распишу.

Записываем сигнатуру (или маркер, не знаю как правильней) сектора:
Код:

  cSectorHeader: array[0..11] of byte = (
     $00, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $00
  );
  ...
  Move(cSectorHeader, Sector^[0], 12);


Забиваем нулями место, куда будет записано время сектора:
Код:

  FillChar(Sector^[12], 4, 0);


Записываем информацию о режимах сектора (например, XA-сектора записаны в другом режиме, и вместо кодов коррекции ошибок всё оставшееся место уходит под данные):
Код:

  Move(ModeData, Sector^[16], 4);
  Move(ModeData, Sector^[20], 4);


А вот теперь, собственно, что тебе надо.
Высчитываем EDC (контрольная сумма) и пишем её с 2072-го байта:
Код:

  edc := build_edc(@Sector^[16], 2048 + 8);
  Move(edc, Sector^[2072], 4);


Считаем ECC (коды коррекции ошибок), функции сами записывают их куда надо:
Код:

  encode_L2_P(@Sector^[12]);
  encode_L2_Q(@Sector^[12]);


И наконец, вычисляем и записываем время сектора (тебе вместо этого шага надо просто скопировать 4 байта начиная с 12-го, затереть это место нулями, а в конце вернуть обратно):
Код:

  BuildAdress(LBA, Sector^[12]);

_________________
Работаю за деньги
KILL ALL HUMANS!!!!!111
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Dr. MefistO



Зарегистрирован: 28.03.2006
Сообщения: 189
Откуда: Беларусь

СообщениеДобавлено: Пт Сен 02, 2011 7:38 pm    Заголовок сообщения: Ответить с цитатой

Код:
ModeData: Integer = $80000

ModeData по умолчанию равна $80000 или ее откуда-то надо брать?
Код:
  encode_L2_P(@Sector^[12]);
  encode_L2_Q(@Sector^[12]);

В какие именно позиции сектора записывают данные эти функции? На всякий случай.
_________________
Metal is my life...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
HoRRoR
RRC2008
RRC2008


Зарегистрирован: 21.06.2006
Сообщения: 2341
Откуда: Ростов-на-Дону

СообщениеДобавлено: Пт Сен 02, 2011 7:54 pm    Заголовок сообщения: Ответить с цитатой

Dr. MefistO писал(а):
ModeData по умолчанию равна $80000 или ее откуда-то надо брать?

Ещё раз говорю, ты работаешь только с data. Ну и временно затираешь 4 байта начиная с 12 до конца вычислений.

Цитата:
В какие именно позиции сектора записывают данные эти функции? На всякий случай.

См. CD-ROM (mode 1)
_________________
Работаю за деньги
KILL ALL HUMANS!!!!!111
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Dr. MefistO



Зарегистрирован: 28.03.2006
Сообщения: 189
Откуда: Беларусь

СообщениеДобавлено: Пт Сен 02, 2011 8:02 pm    Заголовок сообщения: Ответить с цитатой

Код:
Move(ModeData, Sector^[16], 4);
...
edc := build_edc(@Sector^[16], 2048 + 8);

Ну мне же надо считать EDC. Что тогда будет в секторе с 16 по 2048+8 позицию?
_________________
Metal is my life...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов shedevr.org.ru -> Базовый ромхакинг Часовой пояс: GMT + 3
На страницу 1, 2  След.
Страница 1 из 2

 
Перейти:  
Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group