2013年12月31日 星期二

PS3模擬器 Short Waves 0.0.1

另一款PS3模擬器 Short Waves 也發布了第一版,可執行部分DEMO,效果不差,原文如下:

Short Waves 0.0.1: эмулятор PS3 от разработчика InoriRus

Вчера с администраторами EmuPlace связался разработчик InoriRus - автор эмулятора PS3 под названием Short Waves и предложил ознакомиться с его проектом. Ниже вы можете ознакомиться с информацией об эмуляторе (взято из readme):

Эмулятор 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

沒有留言:

張貼留言