Комментарии 96
Вопрос только зачем? В игры можно и на эмуляторах поиграть. Также интересует, не подадут ли Nintendo и Sony в суд? Как они это любят делать…
Бесспорно, в игры можно и на эмуляторах поиграть. Вопрос в том, какая у этих эмуляторов точность эмуляции?
Цель проекта — создание абсолютно точного эмулятора Playstation 1.
Сложнее всего сэмулировать аналоговую часть.
Даже если добиться полного соответствия цифрового потока до ЦАПов, звук будет всё равно другой.
А уж про эмуляцию аналоговых искажений видео (особенности цветокодирования PAL, цветовые и геометрические искажения ЭЛТ) и не заикаюсь.
Даже если добиться полного соответствия цифрового потока до ЦАПов, звук будет всё равно другой.
А уж про эмуляцию аналоговых искажений видео (особенности цветокодирования PAL, цветовые и геометрические искажения ЭЛТ) и не заикаюсь.
?! И на фига тут процессор восстанавливать?
Процессор необходимо, но не достаточно
Зачем? Берём программируемую логи и за месяц-другой не напрягаясь делает точную копию. Это цифровая техника. Её поведение детерминировано и описано — ничего не мешает сделать функциональный аналог по совершенно иной технологии.
Зачем?Картинка выглядит неестественно на FullHD LCD-мониторе. Авторы эмуляторов таки пытаются воссоздать ламповый ЭЛТ, применяя весьма сложные фильтры. Зачем-то это нужно?
Моя посылка была в том, что цифровая часть уже эмулируется достаточно хорошо, чтобы в 99% случаев не было разницы, а вот аналоговая мало развивается (задача больше творческая, неформальная)
Берём программируемую логи и за месяц-другой не напрягаясьА есть исходники? Не только процессорного ядра, но и видеокарты.
Кроме того, у PLM может просто не хватить ёмкости.
Не только процессорного ядра, но и видеокарты.
Похоже, на плате два крупных чипа: CPU 8606 и чипсет 8561. Я поням ваше недоумение: почему начали с CPU, о котором больше информации. Для точной эмуляции нужно реверсить оба чипа.
Эм, просветите человека далекого от тонкостей эмуляции, что дает абсолютно точный эмулятор? Как это скажется на запускаемых играх?
APE escape english не идет ни на одном эмуляторе. Первая игрушка для dual shock.
Зачем нужна точная эмуляция хорошо написал byuu. Есть перевод его статьи emulate-su.livejournal.com/663058.html
Вопрос только зачем?
Хороший вопрос, но грустный. Не стоит слишком на нём зацикливаться. Анекдот про «я и так жую бананы и ничего не делаю», надеюсь, напоминаит не надо.
Не думаю, что цель именно в самих играх. Тут скорее следующие факторы:
1) Им нравится это занятие.
2) Получить кучу знаний и новый опыт.
3) Получить определенную известность и популярность.
4) Доказать себе, что: «мы можем».
5) Отработать технологию, чтобы позже реализовать эмуляторы других устройств.
6) В случае успеха, с подобным опытом, перед ребятами вероятнее всего откроются дороги в крупные компании.
7) Иные причины.
1) Им нравится это занятие.
2) Получить кучу знаний и новый опыт.
3) Получить определенную известность и популярность.
4) Доказать себе, что: «мы можем».
5) Отработать технологию, чтобы позже реализовать эмуляторы других устройств.
6) В случае успеха, с подобным опытом, перед ребятами вероятнее всего откроются дороги в крупные компании.
7) Иные причины.
Очень. Удачи вам в этом нелегком деле. Насколько я понимаю это исключительно for fun, ибо эмуляторов PS1 хватает? Кстати, интересно, как будут обстоять дела с эмуляцией и взломом PS4/XBOX1, все-таки переход на x86 архитектуру должен упростить процесс работы в разы, и нас будет ждать GTA V на PC раньше официального релиза, хехе.
Насчет зачем — ответ выше.
Даже с Playstation 2 уже не реально: На Playstation 1 объем данных уже сейчас с трудом подъемен для современных компьютеров и софта, Playstation 2 еще на 1.5-2 порядка сложнее. А PS4/XBOX — вообще за гранью возможного без лишнего миллиарда долларов
Даже с Playstation 2 уже не реально: На Playstation 1 объем данных уже сейчас с трудом подъемен для современных компьютеров и софта, Playstation 2 еще на 1.5-2 порядка сложнее. А PS4/XBOX — вообще за гранью возможного без лишнего миллиарда долларов

Векторизация ручная? Как дела обстоят с автоматической трассировкой подобных фото высокого разрешения? Про PS4/XBOX1 завел речь исключительно в силу смены архитектуры на родную игровым PC.
Насколько я понимаю ручная — но тут лучше подскажут виновники торжества, когда подойдут.
Для автомата как я понимаю нужно было бы намного более высокое разрешение и качество снимков.
Для автомата как я понимаю нужно было бы намного более высокое разрешение и качество снимков.
Были попытки автоматической трассировки у ребят с Visual6502, но одно небольшое пятнышко — и всё коту под хвост.
visual6502.org/docs/6502_in_action_14_web.pdf
Там в самом конце есть примеры.
Поэтому мы не стали заморачиваться с этим )
visual6502.org/docs/6502_in_action_14_web.pdf
Там в самом конце есть примеры.
Поэтому мы не стали заморачиваться с этим )
Ну тут исключительно тюнинг. На примерах из статьи можно четко сформулировать критерии для отсечения проблемных мест + принудительная ортогонализация. В любом случае режим полуавтоматический, но профит на объемных схемах должен быть хороший.
Сделать капчу по типу reCaptcha — разбить на кусочки и подсовывать юзерам, чтобы соединяли полоски :) Для валидации давать два куска — один решенный, другой — нет.
На Playstation 1 объем данных уже сейчас с трудом подъемен для современных компьютеров и софта, Playstation 2 еще на 1.5-2 порядка сложнее.
Замахнусь на лавры К.О.: распределённые вычисления, не?
Ну фиг знает. Даже для Xbox 1 (именно первый, который до 360) выпущено всего 2 почти неработоспособных эмулятора, а там обычный пентиум 3 и видео от нвидия.
Да, но для 360 не было ни одного (для Xbox на самом деле был один эмулятор cxbx и его дельфовый порт dxbx). Все-таки, согласитесь, что родная архитектура упрощает работу. И, да, там действительно запускается от силы пара-тройка игр, вы правы. Интересно на чем затык вышел. По-моему, особых проблем нынче не должно быть с этим.
Шикарное начало. Удачи вам, ребята! У меня тоже есть PS One, еще играю иногда. Игр хороших много осталось, а вот приставки выпускать перестали.
А есть ли смысл в создании эмулятора ps1 (кроме интереса), если 5 лет назад эмуляторы ps1 на том железе выдавали стабильный fps?
Когда ожидается работа с PS2? :)
Я вот год назад и раньше пытался запустить Gran Turismo на эмуляторе PS2 — все без толку :(
Я вот год назад и раньше пытался запустить Gran Turismo на эмуляторе PS2 — все без толку :(
К сожалению, не судьба :-)
Думаю, все же основная цель — получение удовольствия от процесса, слишком дорогой ценой достигается точная эмуляция :)
А потом ррраз — и все три приставки на процессорах разных ревизий…
PSOne… Много для неё эмулов уже разношерстных… Ребята, сделали бы вы подобное для Panasonic 3DO — вам бы памятник поставили нерукотворный.
3DO'шка — это, пожалуй, единственная консоль на которую не сыщешь нормальный адекватный эмулятор днём с огнём, а тот, что есть и вроде бы работает — безбожно бажный.
Так бы вы вернули к жизни целое поколение олдскульных геймеров. У самого приставка эта уже 15 лет лежит полу-живая с оставшейся парой дисков — иногда подключаю и пускаю скупую слезу, а если дело доходит до Wing Commander 3 (от которого не хватает одного из дисков), то и не одну скупую, а реву навзрыд…
3DO'шка — это, пожалуй, единственная консоль на которую не сыщешь нормальный адекватный эмулятор днём с огнём, а тот, что есть и вроде бы работает — безбожно бажный.
Так бы вы вернули к жизни целое поколение олдскульных геймеров. У самого приставка эта уже 15 лет лежит полу-живая с оставшейся парой дисков — иногда подключаю и пускаю скупую слезу, а если дело доходит до Wing Commander 3 (от которого не хватает одного из дисков), то и не одну скупую, а реву навзрыд…
Зачем?! Ну, взяли FPGA и сделали точную копию. А потом при желании ещё и чип по описанию заказать можно Но восстанавливать топологию-то зачем?! Сейчас по тому техпроцессу чипы делать будет сложно и дорого!
Почему невозможно — вполне возможно, скачать файл на компьютер и посмотреть в обычном просмотрщике картинок. Или рискнуть — и кликнуть.
Изначально — это был тестовый снимок в низком разрешении, прежде чем делать «боевой» снимок.
Изначально — это был тестовый снимок в низком разрешении, прежде чем делать «боевой» снимок.
Отлично все смотрится. Памяти надо больше просто.
Опера под Линуксом легко открыла лишь призадумавшись секунд на 5.
Хром, макось. Грузил долго, но смотреть можно абсолютно нормально.
>А PS4/XBOX — вообще за гранью возможного без лишнего миллиарда долларов
а почему? там же обычный х86 процессор, который всякими VmWAre эмулируется даже сейчас на ура.
а почему? там же обычный х86 процессор, который всякими VmWAre эмулируется даже сейчас на ура.
Эмулируется не само железо, а инструкции, которые оно исполняет. Уровни эмуляции разные. Так-то и для PS1 эмуляторов вагон и маленькая тележка.
VMware не эмулирует, а виртуализует, это разные вещи. Эмулируются в какой-то степени только инструкции, выполняемые в режиме ядра, а инструкции, выполняемые в режиме пользователя, исполняются как есть.
Но действительно, если там x86, то вполне можно и виртуализовать. Тайминги сейчас не должны быть проблемой (особенно если использовать идентичное по характеристикам аппаратное обеспечение), запустил операционку — скорее всего можно играть в игры. Вот если там DRM с железом связан, то это проблема, надо DRM эмулировать.
Но действительно, если там x86, то вполне можно и виртуализовать. Тайминги сейчас не должны быть проблемой (особенно если использовать идентичное по характеристикам аппаратное обеспечение), запустил операционку — скорее всего можно играть в игры. Вот если там DRM с железом связан, то это проблема, надо DRM эмулировать.
BarsMonster, у вас отменные посты. Как фанат именно первой PlayStation обеими руками поддерживаю затею.
Может, когда-нибудь её можно будет напечатать на 3D-принтере, а электронику — на специализированном, но тоже персональном устройстве.
И поиграть на своей собственной PS-ке в Tenchu. Было бы очень круто.
Может, когда-нибудь её можно будет напечатать на 3D-принтере, а электронику — на специализированном, но тоже персональном устройстве.
И поиграть на своей собственной PS-ке в Tenchu. Было бы очень круто.
А чем делаются такие снимки?
Пылинки и грязь на изображениях не мешают работе?
Мне вот не совсем понятно — восстановили топологию, из нее восстановили структуру на вентильном уровне. Что дальше? Моделировать работу процессора на таком уровне — FPS будет меньше нуля. Восстанавливать с нуля систему команд с учетом всех задержек?
Они за FPS и не говорят, я так понимаю, что это больше PoC, чем попытка выйти на играбельный эмуль.
Как вариант: по топологии восстановить принципиальную схему, которую уже заливать в FPGA, либо да, по модели восстановить функционал с точностью, недоступной нынешним эмуляторам.
В эмуляции первой плейстейшн есть немало пробелов:
Как минимум цель работы — закрыть эти пробелы, чтобы все эмуляторы смогли работать без хаков.
Неизвестно назначение регистров тайминга и прочих регистров конфигруации, которые инициализируются при загрузке BIOS (так называемые "delay"-регистры). Неизвестно назначение непонятного регистра 0xFFFE0130 (или как-то так), есть предположения что он управляет работой кеша.
Точные алгоритмы декодирования MDEC тоже неизвестны (таблица квантизации в частности). Есть вопросы по root counters (хотя edgbla провёл исследование, всё равно интересно как они на самом деле работают). Много пробелов в системном сопроцессоре (CP0). Ну и естественно GTE.
Как минимум цель работы — закрыть эти пробелы, чтобы все эмуляторы смогли работать без хаков.
Т.е. на этот процессор нет полного даташита? А как программисты тогда софт писали?
Или я чего-то не понимаю, или кто-то что-то путает. Вот я взял и скачал даташит на MIPS R3051. Последняя ревизия 1994 года. Вполне нормальное описание процессора. Временные диаграммы, регистры — всё есть. Никаких неясностей. CP0 нормально описан. Что и логично. Раз под него массово софт писали, значит есть доступные описания.
Все вопросы по инициализации и регистрам скорее относятся к чипсету, а не к процессору и процессору тут не поможет — нужно искать даташит на чипсет. И сдаётся мне, что намного проще, дешевле и правильнее будет.
Там стоял некий LSI LR333x0 чип. На первый взгляд Гугель говорит, что даташиты на это семейство доступны. Я категорически не понимаю в чём проблема!
Все вопросы по инициализации и регистрам скорее относятся к чипсету, а не к процессору и процессору тут не поможет — нужно искать даташит на чипсет. И сдаётся мне, что намного проще, дешевле и правильнее будет.
Там стоял некий LSI LR333x0 чип. На первый взгляд Гугель говорит, что даташиты на это семейство доступны. Я категорически не понимаю в чём проблема!
Подозреваю, что проблема в следующем: вероятно, для приставки использовались специальные заказные микросхемы, которые имели некоторые отличия, которые не описаны в документации, имеющейся в свободном доступе.
Михаил написал что там R3051, на самом деле этот процессор кастомный, который только основан на R3051 (некоторые источники утверждают что это был R3000A). Выводы процессора и внутренняя начинка заточены исключительно под нужды PSX. В состав процессора кроме непосредственно (измененного опять же) ядра входят:
— системный сопроцессор 2 (GTE)
— MDEC (декодер MPEG видео)
— контроллер DMA (8 каналов)
— контроллер прерываний
— контролер DRAM
— контроллер шины (интерфейс для ROM BIOS / GPU)
— контроллер SIO (последовательный интерфейс похожий на RS-232)
— контроллер PIO (порт расширений для дополнительных устройств)
— Root counters (4 аппаратных счетчика, один работает на частоте ядра)
— встроенные кеш инструкций и кеш данных (кеш данных с возможностью прямого доступа)
— системный сопроцессор 2 (GTE)
— MDEC (декодер MPEG видео)
— контроллер DMA (8 каналов)
— контроллер прерываний
— контролер DRAM
— контроллер шины (интерфейс для ROM BIOS / GPU)
— контроллер SIO (последовательный интерфейс похожий на RS-232)
— контроллер PIO (порт расширений для дополнительных устройств)
— Root counters (4 аппаратных счетчика, один работает на частоте ядра)
— встроенные кеш инструкций и кеш данных (кеш данных с возможностью прямого доступа)
Всем привет! Мой первый пост в этой секте :)
Ответа на вопрос «Зачем?» целых два:
1. Не всё же водку бухать.
2. Союзпечать поднял цены на сборники японских кроссвордов и мы решили найти альтернативные способы их получения.
На самом деле просто интересно узнать подробные детали работы внутренних узлов процессора )
Ответа на вопрос «Зачем?» целых два:
1. Не всё же водку бухать.
2. Союзпечать поднял цены на сборники японских кроссвордов и мы решили найти альтернативные способы их получения.
На самом деле просто интересно узнать подробные детали работы внутренних узлов процессора )
Скажите пожалуйста, а за чей счет банкет? Оборудование, я так понимаю, не дешевое нужно. А коммерческая выгода — сомнительна.
Оборудование для съемки и вскрытия чипа — у меня уже давно есть, т.к. самому интересно было.
А дальше только руки нужны и графический редактор.
Так что денежных затрат как таковых нет, но нужно огромное количество времени.
А дальше только руки нужны и графический редактор.
Так что денежных затрат как таковых нет, но нужно огромное количество времени.
А что за оборудование, можете описать? Крайне интересно.
Обычный китайский металлографический микроскоп, с 5mp USB камерой.
Чипы — травятся в серной кислоте.
Чипы — травятся в серной кислоте.
Однако. Даже не представлял, что все так доступно. А можете более подробно описать процесс стравливания слоев?
Бросаем кристалл в раствор плавиковой кислоты в воде, или в буферный травитель (плавиковая + фторид аммония) — каждую минуту достаем и смотрим под микроскопом — готово или нужно дальше травить.
Так можно только небольшое количество слоев металлизации травить, неравномерность травления будет накапливаться. Когда много слоев металлизации — остается только шлифовать (это я пока не умею).
Так можно только небольшое количество слоев металлизации травить, неравномерность травления будет накапливаться. Когда много слоев металлизации — остается только шлифовать (это я пока не умею).
Шлифовка очевидно делается аналогично шлифовке зеркал для микроскопа (специальными суспензиями). Там насколько мне известно (используя нож Фуко) можно шлифовать с точностью до нанометров.
Имея в наличии электрогравир (дремель) процесс можно значительно ускорить.
Я бы попробовал, если бы у меня был надлежащий микроскоп, чтобы проверять качество шлифовки.
Имея в наличии электрогравир (дремель) процесс можно значительно ускорить.
Я бы попробовал, если бы у меня был надлежащий микроскоп, чтобы проверять качество шлифовки.
Оборудование предоставил habrahabr.ru/users/BarsMonster/, а коммерческой выгоды не ищем. Мы и так ужо работаем)
Векторизацию можно автоматизировать утилитой degate www.degate.org/ и github.com/nitram2342/degate
Молодцы, интересный проект! Только труд это титанический. Будет обидно если через пару лет Sony сама выпустит подобный эмулятор. Вообще, в подобных проектах самое обидное то, что ищешь ответы на загадки, придуманные другими людьми, ответы, которые, по сути, уже существуют.
Думаю, это будет очень интересно. В молодости когда кодил под Z80 (инета тогда не было!), в руки попал журнал, где рассказывалось, что с расширенным набором регистров Z80 можно работать используя не только команды загрузки 16-разрядных регистров, но и любые иные команды, если использовать соответствующие префиксы. Фича эта не была нигде документирована, в ассемблере для неё мнемоники не были предусмотрены! :) И выглядело это примерно так: DEFB #DD; LD L,#13. В реальности константа 13 загружалась в младший бит регистра IX.
В игрушках подобный код тоже использовался, поэтому все эмуляторы ZX Spectrum знают об этих командах. В случае же PS1, всё, конечно, намного сложнее и элементарным подбором кода ничего не найдёшь.
Так что могу только пожелать удачи в вашем нелёгком труде! Ещё раз, молодцы!
Думаю, это будет очень интересно. В молодости когда кодил под Z80 (инета тогда не было!), в руки попал журнал, где рассказывалось, что с расширенным набором регистров Z80 можно работать используя не только команды загрузки 16-разрядных регистров, но и любые иные команды, если использовать соответствующие префиксы. Фича эта не была нигде документирована, в ассемблере для неё мнемоники не были предусмотрены! :) И выглядело это примерно так: DEFB #DD; LD L,#13. В реальности константа 13 загружалась в младший бит регистра IX.
В игрушках подобный код тоже использовался, поэтому все эмуляторы ZX Spectrum знают об этих командах. В случае же PS1, всё, конечно, намного сложнее и элементарным подбором кода ничего не найдёшь.
Так что могу только пожелать удачи в вашем нелёгком труде! Ещё раз, молодцы!
Что там мелочиться, надо на уровне атомов эмулировать! Глядишь и выйдет побочным продуктом Матрица.
идея достойна уважения — но другой вопрос — ЗАЧЕМ? Ведь сейчас проще на Arduino или RaspPi сделать софт эмулятор.
Для тех кто подписался на мой канал Youtube, сейчас я стримлю на платформе Twitch.tv
twitch.tv/ogamespec
twitch.tv/ogamespec
Неплохо было бы еще и amiga 1200 разобрать на куски. Включая чипсеты.
Начался реверс схем процессора:


Сколько же это работы…
Схем подобного размера в процессоре порядка 400 (на глазок). Но у нас распределенный реверс идёт, активно работают два человека и подключился третий. Если делать командой из 10 человек, то нужно разобрать по 30-40 схем каждому, а это примерно месяц (если не напрягаться)
По времени одна схема занимает один вечер после работы :) (при наличии стандартных ячеек, мы ещё не все ячейки идентифицировали).
wiki.psxdev.ru/index.php/CPU_CELLS
По времени одна схема занимает один вечер после работы :) (при наличии стандартных ячеек, мы ещё не все ячейки идентифицировали).
wiki.psxdev.ru/index.php/CPU_CELLS
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Начался реверс-инжиниринг процессора PlayStation 1: безумству храбрых поём мы песню!