Это старая версия документа!
Содержание
CD-ROM
PlayStation оснащена CD-приводом двойной скорости. Пропускная способность - 150 KB/s или 300 KB/s в зависимости от режима скорости. Буфер данных составляет 32 KiB.
Для дисков используется стандартная файловая система ISO 9660. Современные диски могут использовать расширенные файловые системы, поддерживающие длинные имена файлов и строчные буквы - PlayStation подобные возможности не поддерживает. Более того, контроллер CD-привода накладывает на стандарт дополнительные ограничения: имена файлов должны соответствовать формату 8.3 (как в MS-DOS), а количество файлов и каталогов на одном диске ограничено.
Данные размещаются в секторах формата CD-XA (Mode 2). В отличие от обычного CD, на одной дорожке диска CD-XA может располагаться самая разнообразная информация: данные, звук, видео. В Mode 1 (стандартный CD-ROM) нельзя смешивать данные разного типа на одной дорожке. Mode 2 позволяет контроллеру на лету определять, куда отправлять информацию из сектора: видеопоток - на графический чип, аудиопоток - в звуковой вывод, обеспечивая синхронизацию.
Каждый сектор имеет свой собственный формат: если это произвольные данные, то сектор записывается в формате Form 1 (2048 байт выделяется на пользовательские данные и 304 байта - под служебную информацию), если же это потоковые аудио- или видеоданные, то для сектора используется формат Form 2 (под пользовательские данные отводится уже 2324 байт, поскольку данные для коррекции ошибок отсутствуют, есть только контрольные байты для их обнаружения).
Сектор
Структура сектора Mode 2 Form 1:
- 12 байт - код синхронизации: [0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00]
- 4 байта - заголовок (header)
- 4 байта - подзаголовок (sunheader)
- 2048 байт - полезная нагрузка (данные)
- 4 байта - EDC (контрольная сумма для проверки целостности данных)
- 276 байт - ECC (код Рида-Соломона для коррекции ошибок)
Mode 2 Form 2, который используется для потоковых мультимедиа-данных, отличается отсутствием блока коррекции ошибок:
- 12 байт - код синхронизации
- 4 байта - заголовок
- 4 байта - подзаголовок
- 2324 байт - полезная нагрузка (аудио- или видеоданные)
- 4 байта - EDC.
Подзаголовок (subheader)
Подзаголовок состоит из 4 байт. Структура подзаголовка выглядит следующим образом:
- 1-й байт - для Form 2: номер файла (0x00..0xFF)
- 2-й байт - для Form 2: номер канала (0x00..0x0F), биты 5-7 всегда должны быть равны нулю
- 3-й байт - подрежим (Submode):
- бит 0 - конец записи (EOR). Устанавливается для всех дескрипторов тома, а также для всех секторов, являющихся концом файла - EOF
- биты 1, 2, 3 - видео, аудио, данные. Должен быть установлен только один из этих битов. Файлы формата STR помечаются как данные (а не как видео).
- бит 4 - триггер (для использования приложением)
- бит 5 - формат (Form): 0 = Form 1, 1 = Form 2
- бит 6 - реальное время (RT)
- бит 7 - конец файла (или конец каталога / таблицы путей / терминатора тома)
- 4-й байт - информация о кодировании (Coding Info). Для секторов данных этот байт равен нулю. Для секторов XA-ADPCM:
- биты 0-1 - моно/стерео (0 = моно, 1 = стерео, 2-3 = зарезервировано)
- бит 2 - частота дискретизации (0 = 37800 Гц, 1 = 18900 Гц, 2-3 = зарезервировано)
- биты 4–5 - битность (количество бит на отсчет): 0 = стандартно/4 бита, 1 = 8 бит, 2–3 = зарезервировано
- бит 6 - предыскажение (Emphasis): 0 = обычный режим/выключено, 1 = включено
- бит 7 - зарезервирован (0)
Подзаголовок для обычных секторов данных обычно имеет вид [0x00, 0x00, 0x08, 0x00].
