Short Waves 0.0.1: эмулятор PS3 от разработчика InoriRus
Эмулятор Short Waves
Версия 0.0.1 (30.12.2013)
Системные требования: рекомендуется 4-ядерный процессор и DirectX 9.0 совместимая видеокарта, Windows XP или Vista 32-bit. Версия для семерки 64 бит давно не тестировалась (ноутбук сгорел), поэтому может и не запуститься.
До запуска коммерческих игр еще далеко (года два-три). Чудес не ожидайте. Пока можно запускать только небольшие homebrew приложения.
Проект начался в октябре 2012 г. Изначально я хотел вскрыть ресурсы одной игры, но весь контент оказался зашифрован (или запакован) и, чтобы вскрыть алгоритм шифровки, мне понадобился отладчик процессора Cell. Я скачал исходники RPCS3, отстроил код и запустил, программа вылетела с ошибкой, не успев ничего сделать. Меня это жутко расстроило, и я решил построить свой лунапарк.
К проекту RPCS3 этот эмулятор не имеет никакого отношения, не позаимствовано ни строчки кода. Все написано полностью с нуля на основе моих собственных исследований.
На данный момент реализована эмуляция PPU, SPU и RSX. Поддерживаются почти все инструкции. Вершинные и пиксельные шейдеры транслируются напрямую - из бинарного кода RSX в бинарный код DirectX, без промежуточного представления в виде исходного кода. Есть кэш текстур, поверхностей и шейдеров. Все вызовы в ОС перехватываются и исполняются нативно, то есть официальная прошивка для работы не нужна.
Динамической рекомпиляции PPU и SPU не будет. Сейчас уже реализована статическая рекомпиляция PPU: генерируется файл на c++, который в оффлайне компилируется и полученная dll подгружается и исполняется, заменяя работу интерпретатора. Рекомпиляции подвергаются не только простые блоки, но и ветвление, и вызовы функций. Инструкция по использованию рекомпиляции будет позже.
Эмулятор не имеет графического интерфейса. Путь к эмулируемому эльфу и все настройки задаются в конфигурационном файле sw_emu.ini, который должен находится в папке с эмулятором.
Соответствие кнопок на клавиатуре и геймпаде жестко зашито в коде, и через конфигурационный файл пока менять нельзя.
VK_LEFT = LEFT
VK_DOWN = DOWN
VK_RIGHT = RIGHT
VK_UP = UP
VK_END = START
'3' = R3
'8' = L3
VK_DELETE = SELECT
'A' = SQUARE
'S' = CROSS
'D' = CIRCLE
'W' = TRIANGLE
'0' = R1
'1' = L1
'9' = R2
'2' = L2
'F' = ANALOG_LEFT
'H' = RIGHT
'T' = ANALOG_UP
'G' = ANALOG_DOWN
'J' = ANALOG_LEFT
'L' = ANALOG_RIGHT
'I' = ANALOG_UP
'K' = ANALOG_DOWN
Нажатием на кнопку ESC эмулируемой программе посылается сигнал REQUEST_EXITGAME – принудительное завершение игры или выключение питания на реальной приставке.
Исходный код эмулятора пока закрыт.
Если есть вопросы, пишите:
[см. почтовый адрес автора в readme]
Автор просит всех желающих принять участие в тестировании и сообщить ему при возникновении проблем:
Хотелось бы обратную связь получить по возможным ошибкам в работе. Например, сегодня выяснил, что psgl тесты не на всех видеокартах работают.
http://www.youtube.com/watch?v=Y0crhBqyU1Q&feature=player_embedded
http://emuplace.com/news/short_waves_0_0_1_ehmuljator_ps3_ot_razrabotchika_inorirus/2013-12-31-263
沒有留言:
張貼留言