Репутация: 229 
(весьма и весьма положительная личность)
RPCS3 - мультиплатформенный эмулятор PS3
RPCS3
RPCS3 - это свободное и открытое программное обеспечение, разрабатываемый эмулятор игровой приставки и отладчик для Sony PlayStation 3. Он был разработан на языке программирования C++ и использует OpenGL и Vulkan в качестве бэкенд-рендеров. Эмулятор работает на операционных системах Windows, Linux и FreeBSD, позволяя воспроизводить и отлаживать игры и программное обеспечение PlayStation 3 на ПК.
Список совместимости указывает 1541 игр (50,99 %) как проходимые («Playable») и 1213 (41,14 %) — как запускаемые («Ingame»), из общей базы в 3022 релизов.
Установка: Распаковать папку в подходящее место и запускать файл rpcs3.exe безо всякой инсталляции.
Запуск и использование:
1. Распаковываем скачанный архив в папку и запускаем файл rpcs3.exe:
скриншот
2. Первым делом я советую установить содержимое прошивки PS3 в "Tools -> Install Firmware". Это существенно улучшит совместимость (модули и шрифты).
скриншот
3. Далее заходим в "Config -> Settings" для первоначальной настройки эмулятора.
скриншот
4. Core - основные настройки
скриншот
PPU Decoder: обработчик PPU приложений
Interpreter (precise) - наиболее точный, но медленный интерпретатор. В последнее время им пользуются редко.
Interpreter (fast) - быстрая версия интепретатора. Используется по умолчанию.
Recompiler (LLVM) - AoT LLVM рекомпилятор. Используется для достижения максимальной производительности, но совместимость местами хромает.
SPU Decoder: обработчик SPU приложений
Interpreter (precise) - наиболее точный, но медленный интерпретатор. В последнее время им пользуются редко.
Interpreter (fast) - быстрая версия интепретатора.
Recompiler (ASMJIT) - ASMJIT рекомпилятор. Используется по умолчанию, но иногда может работать нестабильно.
Load libraries: LLE эмуляция библиотек прошивки PS3. Позволяет заметно улучшить совместимость эмулятора с коммерческими играми, т.к. HLE реализация многих частей API ещё сырая. Минимально рекомендуемый набор библиотек - libresc, librtc, libspurs_jq и libsre. В зависимости от игры необходимо подключать другие системные модули и кодеки.
5. Graphics - настройки графики
скриншот
Render: обработчик графики
OpenGL - наиболее совместимый, но по сравнению с остальными более медленный рендерер.
Vulkan - мультиплатформенный аналог DX12. Быстрее OpenGL, но по совместимости иногда уступает.
DirectX 12 - аналог Vulkan, но только для Windows 10. По совместимости иногда может быть лучше OpenGL.
Resolution: разрешение. Рекомендуемое разрешение для большинства игр - 1280х720. В некоторых, при возникновений ошибок "RSX illegal/unknown method" может помочь установка минимального разрешения 720х480. Aspect ratio: настройка соотношения сторон. Frame limiter: ограничение частоты кадров. Read/Write Depth/Color buffer: в некоторых случаях может исправить вывод графики, но просаживает производительность. Use Legacy OpenGL Buffers: использование старого кода буферов для OpenGL. В последнее время опцией пользуются редко. Debug Output: вывод дебаг информации в отладчик Visual Studio. Debug Overlay: вывод дебаг информации в окне рендера. Vsync - вертикальная синхронизация.
6. Audio - настройка звука
скриншот
Audio Out: обработчик звука
XAudio2 - API для OC Windows. Используется по умолчанию.
OpenAL - мультиплатформенный API.
Dump to file: сохранять вывод звука в .wav файл. Convert to 16 bit: конвертация вывода звука в 16-битный формат. Может помочь при проблемах с воспроизведением звука.
7. Input / Output - периферия
скриншот
Pad Handler: обработчик геймпада
Keyboard - эмуляция с пом. клавиатуры.
Xinput - эмуляция с пом. геймпада с поддержкой XInput.
MMJoystick - аналог DInput, для геймпадов без поддержки XInput, либо для тех, кто не желает использовать врапперы XInput.
Keyboard Handler: обработчик клавиатуры. Практически не используется кроме единичных игр (Unreal Tournament 3, Counter-Strike: Global Offense). Mouse Handler: обработчик мыши. Практически не используется кроме единичных игр (Unreal Tournament 3, Counter-Strike: Global Offense). Camera/Camera Handler: обработчик камеры и PS Move. В настроящее время висит в качестве заглушки, игры застревают на экране с требованием подключить устройства.
8. Misc - прочее
скриншот
Exit RPCS3 when process finishes: автоматически закрывать эмулятор при завершении эмуляции. Always start after boot: автоматически запускать игру после её загрузки в эмулятор. Auto Pause at System Call: отладка (break point) для System Call. Auto Pause at Function Call: отладка (break point) для Function Call.
9. Networking - настройки сети
скриншот
Connection status - подключение к сети, по умолчанию отключено. Реализация ещё сырая, игры с поддержкой сетевой игры ещё не работают (по крайней мере, не работали раньше).
10. System - системные настройки
скриншот
Enable /host_root/: включить монтирование /host_root/ Language: настройка языка системы.
11. Копирование, установка, запуск игр.
В случае с дисковыми играми достаточно их скопировать в dev_hdd0/game/, желательно переименовать папку в discID+что-то ещё (например BLUS30205m) для исключения проблем при установке геймдаты. Некоторые игры могут содержать зашифрованные файлы в формате .sdat, их нужно вручную дешифровать.
В случае с установкой цифровых версий выбираем "Boot -> Install PKG".
скриншот
Игра установится в dev_hdd0/game. В случае установки платной версии необходимо скопировать ключ лицензии (.rap) в папку dev_hdd0/home/00000001/exdata. Возможно, потребуется ручная дешифровка файлов .edat/.sdat.
После копирования/установки игры будут отображены в окне эмулятора. Запускаем двойным кликом.
скриншоты
Последний раз редактировалось ErikPshat; 24.12.2023 в 17:45.
Репутация: 229 
(весьма и весьма положительная личность)
Для упрощения ручной дешифровки игр, в которых очень много зашифрованных файлов .edat/.sdat я написал небольшую утилитку.
Принцип работы:
1. Запускаем утилиту, выбираем папку с игрой. Она производит поиск .edat/.sdat и создаёт готовые батники для дешифровки.
2. Заходим в папку с игрой и делаем копию папки USRDIR, которую переименуем в USRDIR2.
3. Копируем утилиту npdtool (либо make_npdata) в папку с батником.
4. Для дешифровки .sdat запускаем батник "decrypt_sdat (npdtool).bat" либо "decrypt_sdat (make_npdata).bat", ждём окончания процесса.
5. Для дешифровки .edat игры, у которой есть ключ лицензии (файл .rap)
Копируем ключ в папку с npdtool и батником, переименовываем его в key.rap и запускаем "decrypt_edat_rap.bat", ждём окончания процесса.
6. Для дешифровки .edat игры, у которой нет ключа лицензии (демка, триалка, патч)
Для начала нам нужно узнать ключ, который зашит в дешифрованный исполняемый файл. С этой задачей нам поможет справиться утилита npdtool.
Копируем один .edat файл и eboot.elf в папку с утилитой и запускаем процесс перебора - "npdtool b file.edat eboot.elf klic.bin", ждём окончания процесса.
После получения klic запускаем "decrypt_edat_klic.bat", ждём окончания процесса.
7. Удаляем папку USRDIR2, она нам больше не нужна.
Persona 5 на западе вышла в апреле, тогда же игру впервые запустили на эмуляторе PS3 — на тот момент JRPG работала слабо. Теперь, спустя два месяца упорной работы, команда эмулятора RCPS3 вполне играбельна на PC. Частота кадров адекватная, исправлена большая часть основных графических проблем и вылетов. Подтверждено, что игра успешно проходится.
Persona 5 легально и официально не вышла на PC, так что если вы собираетесь играть, то делать это стоит на PS4 или PS3. В крайнем случае, купить игру для коллекции и играть на PC.
К сожалению, Sega пока не планирует выпускать серию Persona на PC.
Dante's Inferno, Resogun, Daytona USA и Skate 3 запустили на эмуляторе PS3
Пользователь YouTube под ником reznoire опубликовал несколько довольно интересных видеороликов, в которых представлен геймплей таких игр, как Dante's Inferno, Resogun, Daytona USA и Skate 3, и другие работающих через эмулятор PlayStation 3.
Игры были запущены на эмуляторе RPCS3, над которым сейчас активно работает команда талантливых энтузиастов. Судя по видео, эмулятор уже сейчас довольно неплохо справляется с многими играми, но требует еще некоторой доработки. В частности, из-за того, что в некоторых сценах можно увидеть падение частоты кадров, но большая часть игрового процесса идет достаточно гладко и без серьезных лагов.
PPU
– Fixed instructions FCTIW, FCTID, FCTIWZ, FCTIDZ, MULLW, DIVD, DIVDU, DIVW, DIVWU, MULHW;
– Removed HACK instruction;
– Updated VREFP, VRSQRTEFP instructions;
– Optimized MTOCRF instruction;
– Analyser: TOC detection logic improved;
– Analyser: Several bugfixes;
– Opcodes: Added RLDICR, STFD, STVX, LFD, LVX, CLRRDI;
– Debug Mode Implemented;
– Interpreter Precise: SAT bit implemented;
– Recompiler updated from LLVM 3.8 to LLVM 4.0;
– Recompiler: Implemented STSWI, LSWI;
– Recompiler: compiles only one block at time, uses tail calls to move between blocks and fully writes PPU context, except CIA;
– Recompiler: Implemented multi-threaded compilation;
– Recompiler: Optimized MFCR;
– Recompiler: Improved FlushRegisters;
– Recompiler: Disabled some LLVM passes;
– Recompiler: SSA reordering (Fetches indirect jump target, flushes registers earlier);
– Recompiler: Relocation support;
– Patch engine for PPU executables implemented.
SPU
– Speedboost: Lower SPU priority and Bind SPU threads to secondary cores added (prevents PPU threads from being starved, Windows-only for now);
– Interpreter: Fix isdenormal, Fix MFC_WrTagUpdate;
– Disable SPUJIT.log by default;
– Patch engine for SPU images implemented;
– SPU Recompiler: Updated ASMJIT submodule, adding 1 year worth of fixes from upstream;
– Checks exponent bits in FMA ops: Modifies the result of SPU FMA if exponents in a or b are at max and discards the value. This is by no means even close to accurate handling of corner cases in the SPU, but rather a fast workaround;
Discards the result of (a * b) if either a or b has extended exp bits (usually inf) without degrading performance too much.;
– Properly implement FCGT and FCMGT SPU opcodes;
– Minor tweaks to SPU wait loops and DMA transfers to improve stalling behavior;
– ASMJIT Recompiler: Avoid aggressively locking the asmjit db and make compilation step multi-threaded. It takes a much shorter time to compile a function than it does to wait on a lock especially with non-spurs-type kernels;
– ASMJIT Recompiler: Cache compiled functions and avoid calling database analyze function when not needed;
– Add loop condition detection by triggering an OS scheduler update on RdDec - this function can only be sensibly used as part of a loop. [Disabled by default for now];
– Add concurrent execution analysis. This only affects spurs-type kernels where multiple threads are executing the exact same code at the exact same time. Introduces a small delay to racing threads so that they are effectively desynchronized whenever they enter a sensitive function. [Disabled by default].
Core
– Fixes to SPRX Relocation;
– Removed throw cpu_flag;
– Auto load LLE improvements: added libdtslbrdec, libssl, libhttp, libfs, various encoders;
– Implemented sys_ppu_thread_register_atexit, strncasecmp, strrchr;
– Configuration code simplified;
– LV2 Load: Don't LLE savedata modules, preventsbroken saves;
– Enhancements to VirtualMemory;
– Implemented FREFS/Weak Imports;
– Implemented REF 4, REF 6 and REF 57;
– Fixed hex_to_bytes;
– Added ror8/16/32;
– Added moving disc games to outside of /dev_hdd0/game on boot if they're there;
– Fixes to dev_bdvd mounting;
– cellSaveData: Only return data for dir and bind where requested;
– Reduce watchdog memory footprint by using the segment address as a base + 256K;
– Check AVX for Intel processors;
– Use RTM instructions when available.
HLE
– HLE linkage rewritten;
– Fixes for module initialization;
– Improvements to cellSave, sceNpTrophy and cellVdec modules;
– Big improvements to sys_fs;
– Rewritten sys_spu_image loading and sys_ppu_thread_once;
– Implemented _sys_sprintf, cellHddGameGetSizeKB, cellGameDataGetSizeKB, cellGameGetSizeKB, cellPadGetDataExtra, cellPadPeriphGetData, cellHttpUtilParseUri, sys_fs_disk_free;
– Fixed cellGameContentErrorDialog, cellPadGetData, sceNpTrophyGetRequiredDiskSpace, sceNpBasicGetEvent;
– Fixed max_connect on cellKbInit and cellMouseInit;
– cellVideoOut: Add 59.94 Hz support required by some games;
– Registered many unknown new modules/functions such as sys_lv2coredump, sys_crashdump, cellDaisy.
RSX
– Workaround for src type 3 as we gather more information;
– Workaround for invalid/unknown methods;
– Fix TXP when performed on a cubemap texture;
– Do not always assume a tex variable exists when doing alphakill checks (Variable may have been optimized away).
– Adds in support for immediate mode rendering between begin/end command pairs;
– Fixes missing draw calls in most homebew games;
– Clamp mipmap count to always > 0;
– Throw if user attempts to use Vulkan/DX12 without driver support;
– Re-implements vertex shader output control; adding in options for more complex conditions;
– Added a workaround for intel drivers which don't report their capabilities via extensions for some reason;
– Include strict vertex shader output declaration for compatibility with mesa drivers which are very strict;
– Rewrites vertex upload, removing the slower methods used before. The old code is improved as well and kept around for debugging until its state is known to be mature enough (performance is up anywhere from 10-300% for geometry heavy scenes);
– Lifts some restrictions on vertex register formats and adds a fix for register type data uploads when using a vertex buffer stream;
– Fix BRK/RET fp instruction;
– Image clipping fixes. Fixes software mode clipping in nv3089::image_in. Fixes cropped graphics in some games.
– Fix stencil clear values;
– Fix some buffer misalignment crashes when using debuggers or faulty drivers;
– Fix OpenGL clip space conversion (Z symmetry);
– Add a workaround to fix shadow map generation;
– Add hardware PCF shadow support;
– Fix stencil buffer reset;
– Remove several hundred compilation warnings from RSX code;
– Improve SPIRV compilation speed by avoiding unnecessary SH context (re)creation;
– Register NV4097_SET_COLOR_KEY_COLOR method;
– Fix index buffer generation when using a non-zero base offset;
– Added a toggle to ensure strict rendering mode. Currently only affects framebuffer feedback loops. When disabled, we ignore the feedback loop in Vulkan and issue a texture barrier in ogl. When enabled, a duplicate texture is created to ensure this is not an issue but there is a tangible performance penalty (Defaults to OFF).;
– Fix a regression when emulating index buffers for generated primitives. Removes the 'first' parameter since rpcs3 does not support disjoint vertex ranges at the moment anyway;
– Added a 'speed hack' - not really a hack - for games that share memory regions between textures and other GPU resources such as shaders. Significantly boosts performance in games where the cache is invalidated often. Can be disabled by setting 'Strict Rendering Mode' to true;
– Small to moderate speedup on games with many draw calls due to some minor tweaks to c++ object management;
– Implement frame skipping (config file option only for now);
– WIP: Batch together draw calls using the same geometry with different translation matrices;
– Allow multi-threaded vertex processing;
– Fixed some fragment shader instructions;
– Implement RSX framebuffer memory persistence;
– Avoid aggressive resource create/delete cycles when using Vulkan. Moderate speedup in some games and fixes flickering in some cases;
– Fix an RSX crash when a null address is provided for the fragment shader location;
– Improved multithreaded vertex processing so that the penalty is much lower if there are no resources available. Its also tunable now allowing the threshold to be set.
OpenGL
– Actually bind a stencil attachment on FBO creation;
– Implement glArrayElement indexing scheme;
– Force align DXT compressed textures to block_edge size;
– Fix legacy clamp mode: The meaning of texture border has changed starting with GL 3+ due to the resulting confusion from broken and incomplete implementations on hardware of the GL 1.x era. As such, legacy clamp is closer to the modern edge clamp than border clamp as it once was. Border pixels in textures are not supported on newer hardware and never truly worked in the past either, especially on NV cards. Should hopefully fix any games showing visible grid lines in OpenGL;
– Implements texture blitting and scaling using the GPU to avoid texture readback whenever possible;
– Use sampler objects instead of binding sampler state to texture handles;
– Adds some simple driver capabilities checks to determine if the driver can run the emulator or if we need to disable some features. Also adds in other fallback paths;
– Fix for the mix-and-match nature of ps3 shaders causing issues with mesa's linker;
– Minor typo fix affecting intel GPUs with OGL;
– Fix a rare OpenGL crash when trying to capture traces with renderdoc;
– A minor behavior fix for OpenGL when strict mode is not enabled. Makes behaviour alot more reliable to debug now;
– Added Stretch to Display area as an optional setting.
Vulkan
– Silence useless error on vk::program destructor;
– Fix stencil clear value on Vulkan;
– Fixes gsl::span errors with Vulkan as well as not throwing an exception if an attribute/texture is enabled, but not active in the shader;
– Added a fix for LINE_LOOP rendering using Vulkan;
– Re-enable layout transitions in Vulkan: Image layout transitions were disabled at some point during code refactoring. The impact on Nvidia drivers is not too bad, but horrible moire artefacts appear on AMD, especially newer cards;
– Lay foundation for GPU scaling implementation;
– Implements synchronized framebuffer r/w for Vulkan. Still missing some important pieces such as hw accelerated image_in, but that will get merged in later;
– Minor fixes for broken contexts on unsupported devices;
– Fix a few Vulkan API spec violations. Fixes a free-during-use on a leaky handle when the debug overlay is enabled. Also clips clear rects to always fit within the current render target;
– Monitor buffer usage to prevent running out of working space on Vulkan. Also reorganizes some of the buffer init process on Vulkan;
– Fix a rare Vulkan shader compiler bug;
– Adds 'add_signed' in blend ops;
– Added Stretch to Display area as an optional setting;
– Fix Vulkan layout transitions;
– Fix a Vulkan crash about undeclared fog_c. Also fixes default parameter initialization that should fix some games that have broken graphics with Vulkan but work fine with OpenGL.
D3D12
– Lay foundation for GPU scaling implementation;
– Adds in a very old bugfix that makes D3D12 crash properly instead of throwing a cryptic range error. This DOES NOT fix D3D12 crashing, merely generates a more useful fatal error message.
– Mutexes fixed (cause of constant freezes);
– Added installation;
– Initial support for Linux AppImages;
– Reimplemented Vulkan Render on Linux;
– Implemented low-latency ALSA Audio Renderer for Linux;
– Added compatibility with mesa drivers;
– Fixed LLVM compatibility on Linux with gallium based drivers (mesa): llvm_map_components_to_libnames provides a list of static libraries to link our target to. Unfortunately, on linux, this causes llvm to be initialized once on program launch and then when any component loads shared llvm, e.g mesa resulting in the "inconsistent commandline options" error. This changed links against dynamic llvm library when compiling on linux;
– Added instructions and support for Fedora;
– Enable optimizations on TravisCI.
BSD
– Improved portability for BSDs.
GUI
– Icon updated;
– GUI rewrite: Replaced wxWidgets 3.1 with Qt 5.7;
– GUI Redesigned;
– Added Grid View;
– Added Tiny, Small and Huge Sizes;
– Added Welcome Screen;
– Debugger is now hidden by default;
– DPI Scaling issues fixed;
– Re-implemented VFS manager;
– Re-organized the graphics options tab a bit to separate main options from debugging options;
– Improved Debugger and Disassembly;
– Improved Categories in Gamelist;
– Added stacking option for same log messages to log contextmenu;
– Added sort indicator to Gamelist;
– Added background color to icons for better readability;
– Added default layout for better looks on first start;
– Added Resolution, Sound Format and Parental Level columns to Gamelist;
– Added Save Manager;
– Added tooltips and descriptions to Settings;
– Check system for SSSE3 presence and throw error message when opening the emulator;
– Added Toolbar Icon Color Picker;
– Added Game window resize on boot.
Команда, создавшая лучший эмулятор PlayStation 3, RPCS3, объявила, что на нём теперь можно поиграть в Tekken 6, причём даже с 60 кадров в секунду. Последняя версия эмулятора запускает игру с отличной графикой и рабочим звуком.
Так как Bandai Namco не собирается переносить файтинг на компьютеры, это отличный шанс для фанатов серии поиграть в тайтл. Пользователь YouTube под ником John GodGames Emus поделился роликом, в котором показал запущенный Tekken 6 на RPCS3.
RPCS3, эмулятор PlayStation 3 с открытым исходным кодом, теперь позволяет производить рендеринг с высоким разрешением вплоть до безумных 10K. Производительность, как сообщается, велика, пока ваша видеокарта поддерживает Vulkan.
Кроме того, разработчики добавили анизотропную фильтрацию, а в будущем собираются привнести надлежащее сглаживание, масштабирование текстур и, возможно, даже игровые патчи.
Вы можете взглянуть на результат обновления в ролике ниже, в котором результат показан на примере Demon's Souls, Yakuza 4, Ni No Kuni, Catherine и других игр.
» Resolution Scaling (up to 10K)!
» Anisotropic Filtering (up to 16x)!
» Linux AppImages!
» Trophies!
» Save Data Manager!
» Basic Networking Support (YouTube now works)!
» Evdev Controller Support!
» Improved Linux and BSD Support!
» Low-Level Emulation of cellGcm: Even more games now working!
» Huge Compatibility and Performance Improvements!
» Huge GUI Improvements!
» And TONS of Bugfixes as always!
Скопировал игру в папку эмулятора. Иконка появилась в списке - при запуске выдаёт
E PS3 firmware is not installed or the installed firmware is invalid.
You should install the PS3 Firmware (Menu: File -> Install Firmware).
Visit https://rpcs3.net/ for Quickstart Guide and more information.
F LDR: class std::runtime_error thrown: Failed to load /dev_flash/sys/external/liblv2.sprx: Invalid stream or file not found
S LDR: Boot from gamelist per doubleclick: done
Что делать . Нужна подробная помощь
Спасибо огромное. Последняя оф прошивка сделала своё дело. Всё запустилось
ExtrimALL добавил 12.12.2017 в 19:15
Мил Человек будь другом ещё раз =)
Очень сильные просадки ФПС. Дело не в ПК. Подскажи что подкрутить в настройках эмулятора. (Пробывал на ОпенГЛ и Вулкан ставить) разницы нет. С инглишем плоховато поэтому если не сложно то по пунктам .
Последний раз редактировалось ExtrimALL; 12.12.2017 в 19:15.
Причина: добавил, подумав
1. Тут зависит от игры. на форумах смотри оптимальные настройки под каждую игру. И учти, что проект все еще в стадии разработки. он же альфа все еще, хотя многое уже может Изменения в версии вносяться довольно часто, поэтому не забывай периодически обновлять rpcs3 (сейчас последнее изменение 6 часов назад )
2. Вулкан наиболее стабилен.
3. Убрать авто настройки, сделать все вручную. Фреймлимит -30, сглаживание 2х, количество ядер указывать надо.
Танцы, пляски и даже секас с бубном дали результат. В RDR например вопрос просадки FPS решился сменой звукового кодека. Поэтому уже ничему не удивляясь настраиваю каждую игру отдельно
F LDR: Disc directory not found. Try to run the game from the actual game disc directory.
E LDR: Failed to mount disc directory for the disc game BCES00569
S LDR: Boot Game: boot done.