| Эмуляция > Эмуляторы консолей 6 поколения и выше |
| rpcs3 - Эмулятор PS3 |
| << < (102/355) > >> |
| Йобан Матич:
Вся необходимая информация находится под спойлером ниже: Единственный развивающийся на сегодня эмулятор - rpcs3: * Скачать последние ревизии: rpcs3 - AppVeyor * Git исходники: GitHub - RPCS3/rpcs3: PS3 emulator/debugger * Официальный FAQ (Англ): GitHub - RPCS3/rpcs3 Wiki * Распространяемый пакет vcredist 2015: ссылка (Для решения проблемы запуска, связанной с нехваткой библиотек) * Список совместимости * Прошивка PS3: https://www.playstation.com/en-us/support/hardware/ps3/system-software/Системные требования: ПК с процессором x86, поддерживающим инструкцию SSSE3; Операционная система x64: linux/osx/win; Продвинутая видеокарта с поддержкой OpenGL 4.3. |
| stalker4:
--- Цитата: Skay от 24 Сентябрь 2017, 10:26:01 ---stalker4, возьми да сделай, на гите код открыт. Делаешь форк, откати нужные места до момента где была старая реализация, и потом новые версии мерджи с этой. И радуйся своей риалтайм-компиляции.)) --- Конец цитаты --- Не, я не про то что бы вернуть старую функцию, ее ж переписали так как разработчиков она явно не устраивала. Я про то чтоб переписать ее еще раз, дабы исправить недостатки, на которые многие жалуются, в том числе долгий лод кэша при перезапуске игры, его повторная компиляция и прочее. Но это всего лишь бред нытика сталкера и наивные мечты..... Я все еще держусь и не качаю новые ревизии, скачаю как и планировал в начале октября, аж не терпится узнать чего они за месяц наворотили :D |
| nonamezerox:
--- Цитата: Psycho-A от 24 Сентябрь 2017, 00:52:28 ---Я может, открою многим здесь Америку, но я нашел причину медленной загрузки кэша при повторных запусках (когда может грузиться по полчаса). --- Конец цитаты --- Да, открыл. Причем именно об этом и именно тебе и писал еще месяц назад. --- Цитата: nonamezerox от 30 Август 2017, 14:05:19 ---Еще раз. В долфине решили проблему путем полной эмуляции FIXED FUNCTION PIPELINE видеопроцессора Flipper, и, до этого у ишируки, путем пропуска пиксельной части этого самого PIPELINE. В видеопроцессоре RSX - PROGRAMMABLE PIPELINE. Его нельзя заэмулировать целиком с помощью огромного шейдера, как это сделали в долфине. P.S. С кешем rpcs3 проблема в том что он сделан неправильно. Он вообще сохраняет непереведенные программы RSX (то бишь в родном формате PS3), в то время как нужно сохранять уже скомпилированные шейдеры под конкретный бэкенд. --- Конец цитаты --- По этому поводу BlackDaemon тогда ответил, что с текущей архитектурой эмулятора ждать исправления не скоро но стоит, потому что декомпилятор (часть кода, занимающаяся разбором декодированием микрокода кода RSX перед генерацией кода для ПК) у них все время правится и кеш в "родном формате" по этой причине будет постоянно "ломаться" при переходе на новый билд эмулятора и нужно ждать либо переписывания либо стабилизации кода этого самого рекомпилятора. И каких либо оптимизаций в этом плане тоже ждать только после того как эпопея с декомпилятором разрешится. |
| Psycho-A:
nonamezerox, я пока себе сделал проще - написал скрипт, который перед запуском эмуля импортирует предварительно-сохранённый GLCache в папку, видимую драйвером, и потом обратно после закрытия эмуля экспортирует все обновления кэша в это хранилище. О проблемах медленной загрузки теперь забыл. Чищу только при выходах мейджорных изменений. Ещё один плюс такой системы - можно вообще удалять весь pipeline-кэш из data/%игра%/%crc%-eboot.bin/shaders_cache/ по окончании игры - все скомпиленные с помощью него данные сохраняются в кэше драйвера, и из него же повторно и читаются. Старый пайплайн при такой системе "компилируется" моментально, по мере игры, и не грузит оперативу предзагрузкой всего шейдерного пака. Мне кажется, удачным развитием была бы именно такая система. Только вместо кэша видеокарты сделать некий свой универсальный формат. |
| Skay:
Psycho-A, а не проще линковать папку ? http://skesov.ru/sozdanie-simvolnoy-ssyilki-dlya-papki/ |
| Psycho-A:
Skay, нет, не проще. Нужно, чтобы в файлы кэша ничего не вмешивалось, пока не работает эмулятор, или работает другая его версия. Как уже писалось выше, драйвер иногда его очищает или переписывает. Поэтому спасает только физическая изоляция. К тому же, её можно легко расширять до индивидуальных файлов на каждую игру, версию эмулятора, рендера и т.д., что опять же значительно разгружает память. |
| Skay:
Psycho-A, ну ничто не мешает написать 2 скрипта который линкует а потом убирает линк. Так же можно линковать разные папки. Комментировать каждый раз кэш - сомнительно. Ну и ничто не мешает то же теневое копирование включить чтоб если файлы удалятся можно было оикатить. Или только чтение. Хз. Придумать можно. Копировать кэш который будет все больше и больше - немного не рационально на мой взгляд. |
| Psycho-A:
Skay, у меня этот процесс автоматизирован, поэтому я сейчас руками вообще ничего не делаю. Кэш архивится в 7z после работы эмуля в одно и то же место и занимает сущие копейки. |
| Vochatrak:
--- Цитата ---я пока себе сделал проще - написал скрипт, который перед запуском эмуля импортирует предварительно-сохранённый GLCache в папку, видимую драйвером, и потом обратно после закрытия эмуля экспортирует все обновления кэша в это хранилище. --- Конец цитаты --- Вообще мог бы и поделиться. А о какой "папке видимой драйвером" речь? |
| Ogr:
--- Цитата: Vochatrak от 25 Сентябрь 2017, 21:21:16 ---Вообще мог бы и поделиться. --- Конец цитаты --- открой для себя командную строку, и в частности команду COPY. :lol: |
| Vochatrak:
Ogr cp -a -r -u /что? /куда? |
| Ogr:
Vochatrak, у нвидиа в вин7 это C:\Users\юзер\AppData\Roaming\NVIDIA\GLCache |
| Vochatrak:
Ок. Нашел - ~/.nv/GLCache/ Что и в каком виде туда переносить? |
| Ogr:
--- Цитата: Vochatrak от 25 Сентябрь 2017, 22:04:29 ---Ок. Нашел - ~/.nv/GLCache/ Что и в каком виде туда переносить? --- Конец цитаты --- то, что создастся после её очистки, запуска rpcs3 в огл, нужной игры, и играния в неё = кеширования. :facepalm: |
| Vochatrak:
Я спрашиваю как кидать - просто перенести или в подпапку? А он мне фигвамы фейспалмы рисует. :neznayu: Для Вулкана есть похожие рецепты? |
| nonamezerox:
--- Цитата: Psycho-A от 25 Сентябрь 2017, 16:43:05 ---Мне кажется, удачным развитием была бы именно такая система. Только вместо кэша видеокарты сделать некий свой универсальный формат. --- Конец цитаты --- Будет такая система. Когда разработчики вопрос с декомпилятором порешают. |
| Psycho-A:
--- Цитата: Vochatrak от 25 Сентябрь 2017, 21:21:16 ---Вообще мог бы и поделиться. --- Конец цитаты --- Пожалста. Только не пугаться :) Это полный скрипт для запуска только одной игры со всякими украшательствами, многое можно убрать (самому сейчас лень). --- Код: ---@echo off title Advanced PS3 Games Launcher setlocal enableextensions if not exist Emulator\ exit :: Set target game values set GSN=XXXXNNNNN set EmuExe=rpcs3.exe set MsgTit=Game Title set ELF="%CD%\Game\dev_bdvd\PS3_GAME\USRDIR\EBOOT.BIN" set Zip="%CD%\Repository\CmdUtils\7za.exe" set Sfk="%CD%\Repository\CmdUtils\Sfk.exe" :: Check if advanced cache mode enabled or not if exist "Repository\Settings\UseExtCache=True" ( if exist "Emulator\rpcs3.exe" (goto ProcessCacheMode)) :NoCacheStart pushd "Emulator" if exist *.log* del /f /q /a *.log*> nul if exist old_logs rd /s /q old_logs> nul start /abovenormal %EmuExe% %ELF% exit :ProcessCacheMode echo Advanced cache control selected. echo Game S/N: %GSN% echo Detect renderer cache uses... if exist "Emulator\config.yml" ( for /f "usebackq tokens=1,2" %%a in ("Emulator\config.yml") do ( if /i "%%~a"=="Renderer:" if /i "%%~b"=="OpenGL" set "Render=OpenGL" if /i "%%~a"=="Renderer:" if /i "%%~b"=="Vulkan" set "Render=Vulkan" )) if not defined Render ( echo Unable to detect renderer. Running without cache control. goto NoCacheStart ) echo Renderer: %Render% echo Backup existing GLcache to keep it... for %%v in ("NVIDIA" "AMD" "Intel") do ( if exist "%AppData%\%%~v\GLCache.Old\" rd /s /q "%AppData%\%%~v\GLCache.Old" if exist "%AppData%\%%~v\GLCache\" rename "%AppData%\%%~v\GLCache" "GLCache.Old" ) echo Check if PPU modules already compiled... for /d %%m in ("Emulator\data\%GSN%\*-EBOOT.BIN") do ( if exist "%%~m\*.obj" set "ElfModulesCompiled=1") for /d %%m in ("Emulator\data\*-*.sprx") do ( if exist "%%~m\*.obj" set "SysModulesCompiled=1") if not "%ElfModulesCompiled%%SysModulesCompiled%"=="11" ( set "IterLimit=300" echo PPU modules not compiled. Need some time to do it! ) echo Start emulator to obtain GLcache paths... pushd "Emulator" start /min rpcs3.exe %ELF% popd echo Watch if the path obtained to be able to continue... set Iter=0 if not defined IterLimit set "IterLimit=30" :FindPathLoop set /a "Iter=%Iter%+1" ping>nul -n 2 "127.0.0.1" for %%v in ("NVIDIA" "AMD" "Intel") do ( if exist "%AppData%\%%~v\GLCache\" set "NewPathFound=1") if not "%NewPathFound%"=="1" ( if %Iter% LSS %IterLimit% goto FindPathLoop) taskkill /f /t /im "rpcs3.exe"> nul 2>&1 echo Find obtained GLcache files and replace with saved ones... if "%NewPathFound%"=="1" ( ping>nul -n 2 "127.0.0.1" for %%v in ("NVIDIA" "AMD" "Intel") do ( if exist "%AppData%\%%~v\GLCache\*" ( if exist "ShaderCache\%GSN%-%%~v-%Render%.7z" ( for /f "delims=" %%a in ('dir /b /s /a-d "%AppData%\%%~v\GLCache"') do ( for /f "delims=" %%s in ('call %Sfk% echo -lit "%%~a" +filter -rep "|%AppData%\%%~v\GLCache\||"') do ( %Zip% x -y -aoa -o"%AppData%\%%~v\GLCache\" "ShaderCache\%GSN%-%%~v-%Render%.7z" "%%~s" > nul )) )) )) else echo Getting GLcache path failed! Won't be imported. echo Import saved pipeline shaders_cache to use... for /d %%m in ("Emulator\data\%GSN%\*-EBOOT.BIN") do ( if exist "%%~m\shaders_cache\" rd /s /q "%%~m\shaders_cache" if exist "ShaderCache\%GSN%-RPCS3-%Render%.7z" ( if not exist "Repository\Settings\UsePipelines=False" ( if exist "%%~m\*" %Zip% x -y -aoa -o"%%~m\" "ShaderCache\%GSN%-RPCS3-%Render%.7z" > nul )) ) :CacheModeStart echo Start emulator with new caches to play... pushd "Emulator" start /w /abovenormal rpcs3.exe %ELF% if exist *.log* del /f /q /a *.log*> nul if exist shaderlog\* del /f /q shaderlog\*> nul if exist old_logs rd /s /q old_logs> nul popd echo Save updated GLcache to storage and clear folder... for %%v in ("NVIDIA" "AMD" "Intel") do ( if exist "%AppData%\%%~v\GLCache\*" ( %Zip% a -r -y -aoa -mx=3 -w"ShaderCache" "ShaderCache\%GSN%-%%~v-%Render%.7z" "%AppData%\%%~v\GLCache\*" > nul rd /s /q "%AppData%\%%~v\GLCache" )) echo Save updated pipeline shaders_cache to preserve... for /d %%m in ("Emulator\data\%GSN%\*-EBOOT.BIN") do ( if exist "%%~m\shaders_cache\" ( if not exist "Repository\Settings\UsePipelines=False" ( %Zip% a -r -y -aoa -mx=3 -w"ShaderCache" "ShaderCache\%GSN%-RPCS3-%Render%.7z" "%cd%\%%~m\shaders_cache" > nul ) else echo Saving pipelines disabled by setting. rd /s /q "%%~m\shaders_cache" )) echo Restore previously-saved old GLcache to drivers... for %%v in ("NVIDIA" "AMD" "Intel") do ( if exist "%AppData%\%%~v\GLCache\" rd /s /q "%AppData%\%%~v\GLCache" if exist "%AppData%\%%~v\GLCache.Old\" rename "%AppData%\%%~v\GLCache.Old" "GLCache" ) echo Exiting script... exit --- Конец кода --- Добавлено позже: --- Цитата: nonamezerox от 26 Сентябрь 2017, 07:51:02 ---Будет такая система. Когда разработчики вопрос с декомпилятором порешают. --- Конец цитаты --- Ещё бы решили вопрос с выгрузкой неиспользуемого кэша из оперативной памяти, ибо потребление в 12 Гб там, где без кэша всего 1,5 - это абсолютно неадекватно. |
| Softer:
--- Цитата: Psycho-A от 26 Сентябрь 2017, 16:31:55 ---Ещё бы решили вопрос с выгрузкой неиспользуемого кэша из оперативной памяти, ибо потребление в 12 Гб там, где без кэша всего 1,5 - это абсолютно неадекватно. --- Конец цитаты --- Это не эмулятора проблема. |
| Йобан Матич:
--- Цитата: Softer от 26 Сентябрь 2017, 19:57:17 ---Это не эмулятора проблема. --- Конец цитаты --- ВОТ эмулятора проблема. |
| CCCP1982:
--- Цитата: Йобан Матич от 26 Сентябрь 2017, 20:34:57 ---ВОТ эмулятора проблема. --- Конец цитаты --- разборки) :D |
| BlackDaemon:
Да, товарищей из Atlus жаба давит :) Самое забавное, что на сам эмулятор в целом им как-то побоку, но вот факт запуска и играбельности Persona 5 на "вражеской" платформе их очень огорчает, да так, что они аж телегу на патреон накатили (хотя можно на примере других издателей адекватно решить эту проблему, но бараны - они везде...бараны :lol: ). |
| Навигация |
| Главная страница сообщений |
| Следующая страница |
| Предыдущая страница |