Комментарии 26
Интересно, но читается с трудом :) Реквестирую редактуру!
скорей всего он имеет адекватные значения только для аудио-сд
На PS1 очень много игр хранят музыку именно как аудио-сд.
А вообще для PS1 есть PSIO, не вы автор? ))
А вообще для PS1 есть PSIO, не вы автор? ))
Нет там автор не я и там другой принцип работы.
Автор PSIO - Sybdyn. Это и на сайте указано
Автор PSIO — Sybdyn. Это и на сайте указано
И, человек не может быть на хабре под другим ником?
Строго говоря, и так ясно было, что скорее всего псио не от автора статьи, спросил больше в шутку. Ну и как своеобразное признание, ибо масштаб задачи тот же.
Странно, я всегда ожидал, что эмулятор привода на PS1 работал бы на уровне подмены дисковых процедур BIOS, а не на физическом уровне самого привода. Но так даже круче.
Кстати а есть ссылка на демонстрацию?
Нашёл: https://mobile.twitter.com/_ramapcsx2/status/1508835394489655297
Одной из основных трудностей автор называет моделирование поведения привода для «угадывания» запрашиваемой позиции. Примерно представляю трудности - управление ориентируется на обратную связь, при промахе выдаёт воздействия пропорционально величине промаха, если модель откликается не так как родная механика - всё это запросто уйдёт в осцилляции.
управление ориентируется на обратную связь, при промахе выдаёт воздействия пропорционально величине промаха
Вообще насколько я понял принципы позиционирования. То там всё немного не так. Учитывая что в механике грубого позиционирования стоит обычный коллекторный двигатель. То о точности речи не идёт, пылинка попала, смазка загустела итд. В целом это заслуживает отдельной статьи но надо таки изготовить плату с CXD2545 и обвязкой чтобы наглядно это показать.
Насколько я понял всё это. Если кратко, то на диске трек идёт по спирали, между дугами спирали, лежат куски равномерного отражающие(без разметки). Луч когда движется просто поперек диска, неминуемо натыкается на эти промежутки. И чип считает сколько их прошло, в зависимости от этого понимает нужно ехать дальше или нет. Там конечно есть обработка инерции головки(об этом наверно в 3 части) но она достаточно примитивна сделана.
Ну и по сути обратная связь это субканальные данные. Когда приводу надо сдвинуть головку далеко от текущей позиции, он двигает её на примерно нужное количество треков, потом пробует читать сектор, смотрит как точно попал, и потом уже к нужному сектору идет короткими шажками.
А вот то что по идее этому чипу нужно достаточно точная частота сигнала, и он как раз таки через PWM точно пытается подстроить скорость диска, может стать куда большей проблемой ИМХО. Чтобы сказать точней надо ставить много экспериментов.
Нет, не так. Мотор двигает голову грубо, линза вычитывает трек точно. Т.е., мелкие шаги делает линза, а не мотор. По идее, каждый "шаг" мотора это доступ к некоторой ширины кольца, спиральки которой выбирает уже линза. И это всё видно при наблюдении за работой привода.
Собственно, способность линзы выбирать несколько рядом лежащих колец спирали и позволяет применить достаточно дешёвую механику. Другое дело я видел музыкальный центр, где линза ходила строго вертикально, т.е. только для фокуса. А вот каретка приводилась в движение соленоидом, как в жёстких дисках. И этот привод позиционировал на новую песню меньше секунды, даже если она была через весь диск от текущей. Но такой привод в массы не выпустить, балалайка где он стоял была достаточно дорогой.
PS Я сам задумывался об ODE уровня механики, т.к. не хотел вторгаться в схему материнки приставки.
Нет, не так. Мотор двигает голову грубо, линза вычитывает трек точно. Т.е., мелкие шаги делает линза, а не мотор. По идее, каждый «шаг» мотора это доступ к некоторой ширины кольца, спиральки которой выбирает уже линза. И это всё видно при наблюдении за работой привода.
Вообще я примерно это и хотел сказать. Но CXD2545 в любом случае использует ещё и TZC сигнал который генерируется при пересечении лазером двух треков. И при длинных перемещениях когда используется чисто траверс мотор, прошивка SUB-CPU мониторит сигнал COUT чтобы понимать сколько треков примерно уже пролетели.
А не просто полает что за такое то время мы пролетаем столько то треков.
Ну это уже вообще крутизна несусветная.
Плюс в том, что останется теплое знакомое из детства жужжание привода и звук раскрутки шпинделя.
Да, прикольная тема
Читал и удивлялся твоему энтузиазму
Да там всё тупо - так называемый вобблинг. Это когда радиальное смещение дорожки модулируется сигналом, в данном случае ASСII последовательность одного из вариантов букв SCEE/SCEA/SCEU (что означает Sony Computer Entertainment Europe/Asia/USA) в модуляции манчестера. И вот по причине того, что линза отслеживает положение дороги то на соленоиде её поперечного смещения появляется сей сигнал, а модифицированный контроллер привода этот сигнал обнаруживает и выдаёт на особую ножку, которую считывает уже процессор. На эту ножку и цепляют этот самый модчип, который долбит туда все комбинации, пока процессор не примет свою.
PS Модулируется не весь диск, а только область рядом с TOC. И т.к. манчестер там около 1к бод, то этот код слышно, если придвинуть ухо к приводу в самом начале загрузки лицензионного диска. Слышно как гудок тональности сквозь остальные механические шумы привода.
Хабр - торт! Спасибо!
И, кстати, именно потому, что сначала проверяется защита, после проверки которой выводится соответствующая PS надпись (SCEE/SCEA/SCEU) а только затем вычитывается и запускается сам диск и появилась самая примитивная возможность "взлома": диск сваппинг. Это когда открываем крышку, фиксируем кнопку закрытия зубочисткой, вставляем оригинальный диск, (оригинальные демодиски были практически с каждой приставкой в комплекте), включаем, ждём надпись PS и быстренько меняем диск на ходу. Да это стресс для механики привода (останавливать мотор на ходу - стресс для него и для драйвера) и иногда для диска (привод на подушечках и особо азартные игроки при вставлении диска сильно нажимают на него, прижимая к корпусу приставки, и ещё толкают, помогая раскручиваться, что в итоге выливается в концентрические потёртости и царапины на рабочей стороне диска). Тем не менее, этот метод был в ходу до чиповки.
А про anti-modchip и lubcrypt, хотя бы в общих чертах, можете рассказать?
Любили устраивать такие подлянки на поздних годах жизни консоли, и особенно в PAL регионе. Притом самые интересные случаи были, не когда игра сразу показывала ошибку защиты от копирования и отказывалась запускаться, а когда сперва всё шло нормально, а где-то на середине защита срабатывала и ломала прохождение неявным образом: например, препятствуя получению ключевого предмета. Можно было часами мучаться, не зная в чём подвох.
Эмулятор CD-Rom для SonyPlaystation который я писал больше десяти лет. Часть 1