Эмуляция > Эмуляторы консолей 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: ).
Навигация
Главная страница сообщений
Следующая страница
Предыдущая страница

Перейти к полной версии