Автор Тема: Структура данных на CD дисках  (Прочитано 5564 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8119
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Структура данных на CD дисках
« : 08 Декабрь 2015, 10:04:51 »
Посоветуйте, где можно почитать о структуре данных на CD дисках (не только игровых). Интересует полное описание форматов (Mode 1/2), как определять размер сектора (2048/2352), как и откуда читать файловую систему, по каким оффсетам находится та или иная информация и т.д. В сети находил какие-то скромные и не полные руководства.
« Последнее редактирование: 08 Декабрь 2015, 10:17:08 от paul_met »

Оффлайн SILENT_Pavel

  • Пользователь
  • Сообщений: 2734
    • Youtube
    • Просмотр профиля
Re: Структура данных на CD дисках
« Ответ #1 : 08 Декабрь 2015, 12:40:28 »
Тут наверное смотрел но все же скину
http://wiki.redump.org/index.php?title=Dumping-Guides

на этом сайте должна быть информация по дампингу сиди тоже
http://www.gamecopyworld.com/games/gcw.php?nf=1

в целом в сдк пс1 например в деталях написано как лежат аудиотреки и прочее в структуре диска

Оффлайн s1nka

  • Пользователь
  • Сообщений: 1571
  • Пол: Мужской
    • Steam
    • Просмотр профиля
Re: Структура данных на CD дисках
« Ответ #2 : 08 Декабрь 2015, 17:17:39 »
Тут наверное смотрел, но все же скину
https://en.wikipedia.org/wiki/ISO_9660
Ну и сам ISO 9660 или ECMA-119 к обязательеному чтению.

https://en.wikipedia.org/wiki/ISO_image
https://en.wikipedia.org/wiki/El_Torito_(CD-ROM_standard)
https://en.wikipedia.org/wiki/Joliet_(file_system)

з.ы. лично сам разгребал формат по ECMA-119, но в жизни пока все в коде не оформил.

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8119
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Re: Структура данных на CD дисках
« Ответ #3 : 09 Декабрь 2015, 08:36:13 »
Цитата: SILENT_Pavel
http://www.gamecopyworld.com/games/gcw.php?nf=1

Что-то не нашёл там ничего толкового.

Цитата: s1nka
Тут наверное смотрел, но все же скину
https://en.wikipedia.org/wiki/ISO_9660

Именно тут более-менее нормальная инфа, но мало.


Оффлайн SQR218

  • Пользователь
  • Сообщений: 319
  • Пол: Мужской
    • Просмотр профиля

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8119
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Re: Структура данных на CD дисках
« Ответ #5 : 09 Декабрь 2015, 11:15:22 »
В принципе вроде раскурил то, что мне было нужно путём ручного разбора различных образов. Теперь буду пробовать. Всех благодарю за ссылки.

Оффлайн s1nka

  • Пользователь
  • Сообщений: 1571
  • Пол: Мужской
    • Steam
    • Просмотр профиля
Re: Структура данных на CD дисках
« Ответ #6 : 09 Декабрь 2015, 17:36:35 »
paul_met, Если не сложно, то отпишись по заметкам своим и раскопкам. На русском инфы мало, а так хоть что-то. :).
За ранее благодарю.

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9389
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Re: Структура данных на CD дисках
« Ответ #7 : 09 Декабрь 2015, 19:16:43 »
paul_met, если есть какие конкретные вопросы или что-то не понятное - спрашивай.
с этой темой возился вот буквально недавно, пока не забыл )

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8119
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Re: Структура данных на CD дисках
« Ответ #8 : 09 Декабрь 2015, 19:51:56 »
Цитата: s1nka
paul_met, Если не сложно, то отпишись по заметкам своим и раскопкам. На русском инфы мало, а так хоть что-то. .
За ранее благодарю.

Поглядим.

Цитата: MetalliC
paul_met, если есть какие конкретные вопросы или что-то не понятное - спрашивай.
с этой темой возился вот буквально недавно, пока не забыл )

О, это хорошо. Буду иметь в виду. ;)
« Последнее редактирование: 10 Декабрь 2015, 11:00:15 от paul_met »

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8119
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Re: Структура данных на CD дисках
« Ответ #9 : 10 Декабрь 2015, 11:00:21 »
Всё-таки меня терзают сомнения на счёт определения размера сектора. Неужели он определяется только по адресу в 16-м секторе, где записано "CD001"?

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9389
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Re: Структура данных на CD дисках
« Ответ #10 : 10 Декабрь 2015, 12:15:33 »
что ты вообще делаешь ?
размер сектора всегда одинаковый - 2048, в Primary Volume Descriptor(PVD) указан размер логического блока, на практике там тоже 2048, хотя в теории мож быть и другая кратная цифирка, впрочем как и PVD может быть не в 16м секторе.

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8119
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Re: Структура данных на CD дисках
« Ответ #11 : 10 Декабрь 2015, 14:44:55 »
Цитата: MetalliC
что ты вообще делаешь ?
размер сектора всегда одинаковый - 2048, в Primary Volume Descriptor(PVD) указан размер логического блока, на практике там тоже 2048, хотя в теории мож быть и другая кратная цифирка, впрочем как и PVD может быть не в 16м секторе.

Ну есть же размер сектора 2352 и разные режимы (Mode 1/2). Вообще, я пытаюсь найти файл в образе (iso/bin), если известно его имя и папка, в которой он лежит.

Оффлайн Dyons

  • Пользователь
  • Сообщений: 7220
  • инфернальный колдун
    • Youtube
    • Просмотр профиля
Re: Структура данных на CD дисках
« Ответ #12 : 10 Декабрь 2015, 14:56:10 »
Ну есть же размер сектора 2352 и разные режимы (Mode 1/2). Вообще, я пытаюсь найти файл в образе (iso/bin), если известно его имя и папка, в которой он лежит.
у тебя ж в образе у каждого файла указан лба, от него и пляши

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8119
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Re: Структура данных на CD дисках
« Ответ #13 : 10 Декабрь 2015, 17:56:03 »
Цитата: Dyons
у тебя ж в образе у каждого файла указан лба, от него и пляши

И что мне с него, если я не определил размер сектора? К тому же, подразумевается. что я ничего не знаю о LBA того или иного файла. Передо мной стоит задача программно найти файл в образе, зная только его имя и путь к нему (если он в папках).
К примеру, есть 2 образа одного и того же диска - один с размером сектора 2048, а другой 2352. Понятное дело, что LBA файлов в обоих случаях будут совпадать, но за счёт разных размеров секторов абсолютные адреса файлов в образе будет отличаться.

Оффлайн SILENT_Pavel

  • Пользователь
  • Сообщений: 2734
    • Youtube
    • Просмотр профиля
Re: Структура данных на CD дисках
« Ответ #14 : 10 Декабрь 2015, 18:13:05 »
Цитата: paul_met
задача программно найти файл в образе, зная только его имя и путь к нему
Случайно не такую вещь надо сделать как тут описано?
http://www.emu-land.net/forum/index.php/topic,69611.msg1035940.html#msg1035940

Оффлайн Dyons

  • Пользователь
  • Сообщений: 7220
  • инфернальный колдун
    • Youtube
    • Просмотр профиля
Re: Структура данных на CD дисках
« Ответ #15 : 10 Декабрь 2015, 18:38:59 »
К примеру, есть 2 образа одного и того же диска - один с размером сектора 2048, а другой 2352. Понятное дело, что LBA файлов в обоих случаях будут совпадать, но за счёт разных размеров секторов абсолютные адреса файлов в образе будет отличаться.
давай без гипотетических примеров
на CD диске у тебя размер сектора всегда 2352 байта, что туда пишется зависит от формата (http://www.cdcopy.com.ua/ru/articles/205.html)
а когда у тебя образ то тут надо смотреть какой у тебя формат образа, если простой iso, то там хранится только 2048 байта  пользовательских данных

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8119
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Re: Структура данных на CD дисках
« Ответ #16 : 10 Декабрь 2015, 18:49:24 »
Цитата: SILENT_Pavel
Случайно не такую вещь надо сделать как тут описано?
http://www.emu-land.net/forum/index.php/topic,69611.msg1035940.html#msg1035940

Не, всё попроще будет.

Цитата: Dyons
а когда у тебя образ то тут надо смотреть какой у тебя формат образа, если простой iso, то там хранится только 2048 байта  пользовательских данных

С ISO то всё понятно, но есть же и другие форматы, которые могут быть с разным размером сектора. Взять bin/cue к примеру, который может быть и с 2048 размером сектора для данных и с 2352.

Оффлайн Dyons

  • Пользователь
  • Сообщений: 7220
  • инфернальный колдун
    • Youtube
    • Просмотр профиля
Re: Структура данных на CD дисках
« Ответ #17 : 10 Декабрь 2015, 18:55:08 »
Взять bin/cue к примеру, который может быть и с 2048 размером сектора для данных и с 2352.
так в cue все и описывается https://en.wikipedia.org/wiki/Cue_sheet_(computing)

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8119
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Re: Структура данных на CD дисках
« Ответ #18 : 10 Декабрь 2015, 19:21:16 »
Цитата: Dyons
так в cue все и описывается https://en.wikipedia.org/wiki/Cue_sheet_(computing)

Естественно. А если его нет? Как определить какой размер сектора у bin'а?

Оффлайн Dyons

  • Пользователь
  • Сообщений: 7220
  • инфернальный колдун
    • Youtube
    • Просмотр профиля
Re: Структура данных на CD дисках
« Ответ #19 : 10 Декабрь 2015, 19:34:29 »
Естественно. А если его нет? Как определить какой размер сектора у bin'а?
2352

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9389
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Re: Структура данных на CD дисках
« Ответ #20 : 10 Декабрь 2015, 19:45:36 »
Цитата: paul_met
Ну есть же размер сектора 2352 и разные режимы (Mode 1/2). Вообще, я пытаюсь найти файл в образе (iso/bin), если известно его имя и папка, в которой он лежит.

еще раз повторюсь, размер данных в дата-треке всегда одинаковый - 2048.
но физически каждый сектор CD (или GD) всегда содержит 2448 байт информации. в случае дорожки с данными там 2048байт собсно данных и 400 всякой фигни служебной инфы. что именно из тех 400 байт решили сохранить "для аутентичности" в образе, а что выкинуть зависит от формата образа, и настроек программы которой он был создан.
в случае на пример CUE-образов он указывается в теге "TRACK xx" -  MODE1/2352 MODE1/2048 итп

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8119
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Re: Структура данных на CD дисках
« Ответ #21 : 10 Декабрь 2015, 19:55:12 »
Цитата: Dyons
2352

С чего вдруг так однозначно? Вот образ BIN/CUE в Mode1/2048:
158779-0
Я удалю CUE и в моём BIN'e резко станет 2352 байт на сектор? Это же ерунда.

Цитата: MetalliC
еще раз повторюсь, размер данных в дата-треке всегда одинаковый - 2048.
но физически каждый сектор CD (или GD) всегда содержит 2448 байт информации. в случае дорожки с данными там 2048 байт собсно данных и 400 всякой фигни служебной инфы. что именно из тех 400 байт решили сохранить "для аутентичности" в образе, а что выкинуть зависит от формата образа, и настроек программы которой он был создан.
Ладно. Тогда наглядный пример - как определить адрес начала данных файла, например, "BAM.SEQ" в образе (картинка выше)? На LBA не смотри, его программа посчитала. У тебя его типа нет.

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9389
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Re: Структура данных на CD дисках
« Ответ #22 : 10 Декабрь 2015, 20:02:09 »
Цитата: paul_met
Естественно. А если его нет? Как определить какой размер сектора у bin'а?

если на руках имеется только бинарник неизвестного происхождения, то да, только так и делать - искать сигнатуру CD001 и по офсету где она нашлась попытаться рассчитать размер и тип сектора. что может быть не просто в случае образов mixed mode CD в binary, или CD-XA, у которых в бинарнике перед собсно данными может быть кучка треков аудио.

Добавлено позже:
Цитата: paul_met
Ладно. Тогда наглядный пример - как определить адрес начала данных файла, например, "BAM.SEQ" в образе (картинка выше)? На LBA не смотри, его программа посчитала. У тебя его типа нет.

в сетиж должна быть кучка туториалов на эту тему, и исходников.
в общем случае - нужно сделать модуль парсера-фильтра различных типов образов, с функциями "открыть образ", "считать сектор по LBA/MSF" и "получить TOC" (чтоб из него узнать LBA начала трека(ов) с данными). и дальше уже модуль парсера файловой системы.

Добавлено позже:
Цитата: paul_met
А если его нет? Как определить какой размер сектора у bin'а?

размер сектора не "у bin'а", а у дорожек в этом бине, и у разных он может быть разный.
« Последнее редактирование: 10 Декабрь 2015, 21:15:19 от MetalliC »

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8119
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Re: Структура данных на CD дисках
« Ответ #23 : 10 Декабрь 2015, 21:31:26 »
Цитата: MetalliC
если на руках имеется только бинарник неизвестного происхождения, то да, только так и делать - искать сигнатуру CD001 и по офсету где она нашлась попытаться рассчитать размер и тип сектора. что может быть не просто в случае образов mixed mode CD в binary, или CD-XA, у которых в бинарнике перед собсно данными может быть кучка треков аудио.

Да вот так и делаю пока что. Пока единственная проблемка, если вдруг в образе попадутся одинаковые файлы в одинаковых подпапках. Пока не придумал как при таком раскладе поступать.

Цитата: MetalliC
в сетиж должна быть кучка туториалов на эту тему, и исходников.

Вот и создал тему, ибо мало чего толкового попалось на глаза.

Цитата: MetalliC
размер сектора не "у bin'а", а у дорожек в этом бине, и у разных он может быть разный.

Я имел в виду конечно data трек. Аудио дорожки не интересуют.

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9389
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Re: Структура данных на CD дисках
« Ответ #24 : 10 Декабрь 2015, 21:48:38 »
Цитата: paul_met
ибо мало чего толкового попалось на глаза

можешь это глянуть
http://sourceforge.net/p/cdemu/code/ci/master/tree/
в libmirage/images/

Оффлайн Yoti

  • Пользователь
  • Сообщений: 4477
  • Пол: Мужской
  • Не тро-гай ме-ня
    • Steam
    • Просмотр профиля
Re: Структура данных на CD дисках
« Ответ #25 : 10 Декабрь 2015, 22:23:18 »
Пока единственная проблемка, если вдруг в образе попадутся одинаковые файлы в одинаковых подпапках.
Это как? =)

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9389
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Re: Структура данных на CD дисках
« Ответ #26 : 11 Декабрь 2015, 00:32:47 »
возможно имелся в виду поиск через Path Table (общую таблицу всех файлов имеющихся на диске), а не через чтение каждого каталога и поиск в них нужного файла

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8119
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Re: Структура данных на CD дисках
« Ответ #27 : 11 Декабрь 2015, 07:05:43 »
Цитата: Yoti
Это как?

Допустим на диске есть два каталога - "Х001" и "Х002". В каждом из них вполне может быть подкаталог "Х003" с файлом "FILE.DAT".

Оффлайн Yoti

  • Пользователь
  • Сообщений: 4477
  • Пол: Мужской
  • Не тро-гай ме-ня
    • Steam
    • Просмотр профиля
Re: Структура данных на CD дисках
« Ответ #28 : 12 Декабрь 2015, 19:21:22 »
paul_met,
итоговый путь до файла будет отличаться всё равно =) В любом случае, мой вопрос снят.

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8119
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Re: Структура данных на CD дисках
« Ответ #29 : 14 Декабрь 2015, 16:05:32 »
В общем, с размером секторов 2048 разобрался. А вот с 2352 есть проблема. Пересчёт EDC/ECC необходим? И если не пересчитывать, то как это повлияет на работоспособность образа? Что-то мне подсказывает, что никак. Наверное, разве что при записи на болванку. Или я не прав?