Rpcs3 driver wake up delay недоступно
RPCS3 - это свободное и открытое программное обеспечение, разрабатываемый эмулятор игровой приставки и отладчик для Sony PlayStation 3. Он был разработан на языке программирования C++ и использует OpenGL и Vulkan в качестве бэкенд-рендеров. Эмулятор работает на операционных системах Windows, Linux и FreeBSD, позволяя воспроизводить и отлаживать игры и программное обеспечение PlayStation 3 на ПК.
Список совместимости указывает 1541 игр (50,99 %) как проходимые («Playable») и 1213 (41,14 %) — как запускаемые («Ingame»), из общей базы в 3022 релизов.
Ниже будет описана работа версии эмулятора для Windows.
- ОС Windows 7+ x64
- Процессор с поддержкой SSSE3 и выше.
- Видеокарта с поддержкой OpenGL 4.3 и выше.
Язык:
Английский.
Запуск и использование:
1. Распаковываем скачанный архив в папку и запускаем файл rpcs3.exe:
2. Первым делом я советую установить содержимое прошивки PS3 в "Tools -> Install Firmware". Это существенно улучшит совместимость (модули и шрифты).
3. Далее заходим в "Config -> Settings" для первоначальной настройки эмулятора.
- Interpreter (precise) - наиболее точный, но медленный интерпретатор. В последнее время им пользуются редко.
- Interpreter (fast) - быстрая версия интепретатора. Используется по умолчанию.
- Recompiler (LLVM) - AoT LLVM рекомпилятор. Используется для достижения максимальной производительности, но совместимость местами хромает.
- Interpreter (precise) - наиболее точный, но медленный интерпретатор. В последнее время им пользуются редко.
- Interpreter (fast) - быстрая версия интепретатора.
- Recompiler (ASMJIT) - ASMJIT рекомпилятор. Используется по умолчанию, но иногда может работать нестабильно.
5. Graphics - настройки графики
- OpenGL - наиболее совместимый, но по сравнению с остальными более медленный рендерер.
- Vulkan - мультиплатформенный аналог DX12. Быстрее OpenGL, но по совместимости иногда уступает.
- DirectX 12 - аналог Vulkan, но только для Windows 10. По совместимости иногда может быть лучше OpenGL.
6. Audio - настройка звука
- XAudio2 - API для OC Windows. Используется по умолчанию.
- OpenAL - мультиплатформенный API.
7. Input / Output - периферия
- Keyboard - эмуляция с пом. клавиатуры.
- Xinput - эмуляция с пом. геймпада с поддержкой XInput.
- MMJoystick - аналог DInput, для геймпадов без поддержки XInput, либо для тех, кто не желает использовать врапперы XInput.
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.
После копирования/установки игры будут отображены в окне эмулятора. Запускаем двойным кликом.
Последний раз редактировалось Z0rdan; 09.02.2020 в 13:08 .
(весьма и весьма положительная личность)
Для упрощения ручной дешифровки игр, в которых очень много зашифрованных файлов .edat/.sdat я написал небольшую утилитку.
Persona 5 на западе вышла в апреле, тогда же игру впервые запустили на эмуляторе PS3 — на тот момент JRPG работала слабо. Теперь, спустя два месяца упорной работы, команда эмулятора RCPS3 вполне играбельна на PC. Частота кадров адекватная, исправлена большая часть основных графических проблем и вылетов. Подтверждено, что игра успешно проходится.
Persona 5 легально и официально не вышла на PC, так что если вы собираетесь играть, то делать это стоит на PS4 или PS3. В крайнем случае, купить игру для коллекции и играть на PC.
К сожалению, Sega пока не планирует выпускать серию Persona на PC.
Пользователь 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.
– 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].
– 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.
– 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.
– 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.
– 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.
– Fix SPRX/SELF check in npDrm;
– EDAT fixes;
– C00 SPRX Loading fixed.
– Implemented Native DualShock 4 Support;
– XInput/MMJoystick: Fix connection status;
– XInput: Vibration support;
– DualShock 4: Use controller calibration values for accel/gyro.
– Added Downmix to Stereo option.
– 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.
– Improved portability for BSDs.
– 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.
RPCS3 – интересный проект, который эмулирует консоль PS3. Он активно развивается: недавно была новость о том, что он научился запускать все игры из своего каталога. Это хороший повод для проверки – посмотрим, какие ошибки остались после исправлений.
Введение
Проект довольно увесистый. Он насчитывает около 300 тысяч строк кода на C++ и к тому же тянет за собой большое количество внешних зависимостей, в числе которых есть:
Для GUI части также понадобится Qt, однако он берётся из системы. Полный список зависимостей можно посмотреть на скриншоте:
Что примечательно, используемый стандарт языка C++ – свежий C++20. PVS-Studio хорошо справился с проверкой такого современного кода, ведь мы активно работаем над поддержкой нововведений. Да, есть некоторые недоработки, но мы их постепенно исправим. В целом проверка проекта послужила хорошим тестом поддержки новых языковых конструкций.
Проект использует сборочную систему CMake. К сожалению, во время сборки у меня возникли проблемы – GCC 11.2 отказывался компилировать какую-то constexpr-конструкцию, однако Clang 12 справился со сборкой отлично. Сборку я производил под devel-версией Ubuntu, так что, возможно, это проблема дистрибутива.
Полная процедура сборки и проверки под Linux в режиме межмодульного анализа выглядит так:
Что же, проект проверен – время перейти к ошибкам!
Не пиши в std, брат
V1061 Extending the 'std' namespace may result in undefined behavior. shared_ptr.hpp 1131
Стандарт C++ явно запрещает определение пользовательских шаблонов функций в пространстве имён std, а C++20 также запрещает определение специализаций шаблонов функций. Определение пользовательской функции swap – частый случай такой ошибки. В этой ситуации следует поступать таким образом:
- определить функцию swap в том же пространстве имён, где определён класс (stx);
- в блоке, где понадобится вызов swap, нужно написать директиву using std::swap;
- вызов swap должен быть без указания пространства имён std, т.е. неквалифицированным: swap(obj1, obj2);
При таком подходе работает механизм Argument-Dependent Lookup (ADL), в результате чего находится функция swap, которую мы определили рядом с классом. А пространство имён std не изменено.
Удалённый memset
V597 The compiler could delete the 'memset' function call, which is used to flush 'cty' object. The memset_s() function should be used to erase the private data. aes.cpp 596
Частая ошибка – вызов memset будет удалён компилятором во время оптимизаций, а приватные данные останутся лежать в памяти. Да, в случае кода эмулятора вряд ли это представляет какую-либо угрозу утечки данных, но тем не менее ошибка присутствует.
Также были найдены ещё случаи такой ошибки:
-
The compiler could delete the 'memset' function call, which is used to flush 'tmpbuf' buffer. The memset_s() function should be used to erase the private data. sha1.cpp 371 The compiler could delete the 'memset' function call, which is used to flush 'ctx' object. The memset_s() function should be used to erase the private data. sha1.cpp 396
Избыточная проверка
V547 Expression 'rawcode == CELL_KEYC_KPAD_NUMLOCK' is always false. cellKb.cpp 126
Здесь ошибка кроется в первом условии: оно перекрывает условие ниже, которое проверяет значение переменной rawcode на равенство константе CELL_KEYC_KPAD_NUMLOCK. Значение CELL_KEYC_KPAD_NUMLOCK соответствует числу 0x53 – это число попадает под первое условие, которое в результате выполнения выходит из функции, так что нижний if никогда не выполнится.
Ошибка может быть в двух местах – либо в первом условии не учтено значение константы, либо сама константа определена неверно.
Выход за границу массива
V557 Array underrun is possible. The value of 'month + — 1' index could reach -1. cellRtc.cpp 1470
В этом случае в операторе return обращение к массиву DAYS_IN_MONTH может произойти по индексу -1, т.к. значение аргумента month может быть равно 0.
Скорее всего, ошибка находится в первом условии – судя по коду, отсчет месяцев ведётся с единицы, а условие проверяет на то, что month меньше 0, когда надо month < 1.
Эта ошибка напомнила мне интересный случай из проекта protobuf: 31 февраля.
Ошибка копипасты
V519 The 'evnt->color.white_x' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 51, 52. sys_uart.cpp 52
Классическая ошибка: при написании функции скопировали строку и забыли в ней поменять нужную переменную. Глазами заметить ошибку здесь сложно, но статический анализатор отлично справляется в таких случаях.
Повторяющаяся проверка
V581 The conditional expressions of the 'if' statements situated alongside each other are identical. Check lines: 4225, 4226. PPUTranslator.cpp 4226
Похоже на ещё одну ошибку копипасты – видимо, скопировали условие и забыли его поменять, однако then-часть теперь другая.
Что интересно, это не единственный случай такой ошибки. В коде было ещё одно срабатывание:
-
The conditional expressions of the 'if' statements situated alongside each other are identical. Check lines: 758, 759. RSXThread.cpp 759
Ошибка в цикле
V560 A part of conditional expression is always true: i != 1. PPUTranslator.cpp 4252
Проверка переменной i на равенство 1 и 2 никогда не выполнится – цикл работает с числами от 16 до 20. Возможно, этот код переписывался и индексы забыли поменять на корректные.
Разыменование указателя перед проверкой
V595 The 'cached_dest' pointer was utilized before it was verified against nullptr. Check lines: 3059, 3064. texture_cache.h 3059
Ещё один частый паттерн – сначала используется указатель, а затем проверяется. Опять же, возможно, что ошибка появилась в процессе изменений этого фрагмента кода.
Проверка на null результата new
V668 There is no sense in testing the 'movie' pointer against null, as the memory was allocated using the 'new' operator. The exception will be generated in the case of memory allocation error. movie_item.h 56
Проверка на nullptr здесь бессмысленна: при вызове new в случае ошибки будет брошено исключение std::bad_alloc. Если бросать исключение не требуется, то следует использовать конструкцию std::nothrow – тогда как раз вернётся нулевой указатель.
Ещё места с подобной ошибкой:
-
There is no sense in testing the 'm_render_creator' pointer against null, as the memory was allocated using the 'new' operator. The exception will be generated in the case of memory allocation error. emu_settings.cpp 75 There is no sense in testing the 'trophy_slider_label' pointer against null, as the memory was allocated using the 'new' operator. The exception will be generated in the case of memory allocation error. trophy_manager_dialog.cpp 216
Утечка памяти
V773 The function was exited without releasing the 'buffer' pointer. A memory leak is possible. rsx_debugger.cpp 380
В начале функции видим выделение памяти через malloc, и если вернулся nullptr, то выходим. Пока всё хорошо. Но дальше идут проверки параметров width и height – они происходят уже после выделения памяти, и в случае успеха из функции также возвращается nullptr. Да, при равенстве этих переменных нулю malloc будет выделять 0 байт, однако стандарт говорит, что в этом случае может вернуться как nullptr, так и валидный указатель, который нельзя разыменовывать. Но освободить его все равно нужно, к тому же, free способна принимать и нулевой указатель. Так что исправление может выглядеть таким образом:
Либо проверки на 0 можно вообще убрать – цикл в этом случае не выполнится:
Некорректная проверка размера
V557 Array overrun is possible. The 'pad' index is pointing beyond array bound. pad_thread.cpp 191
При проверке входных данных использован оператор > вместо >=, в результате чего значение pad может быть равно размеру контейнера m_pads, поэтому при дальнейшем обращении к контейнеру есть вероятность выхода за границу.
Сдвиг не в ту сторону
V547 Expression 'current_version < threshold_version' is always false. Unsigned type value is never < 0. device.cpp 91
Константа threshold_version всегда будет равна 0, т.к. вместо сдвига влево используется сдвиг вправо. Сдвиг вправо эквивалентен делению на степень двойки – в нашем случае на 2^22 и 2^14 соответственно. Очевидно, что числа из выражений меньше этих степеней, поэтому результат будет равен 0.
Похоже, что это место было скопировано из кода декодирования значения версии, но при копировании поменять операторы просто забыли.
Заключение
Если хотите поделиться этой статьей с англоязычной аудиторией, то прошу использовать ссылку на перевод: Sergey Larin. PVS-Studio to check the RPCS3 emulator.
Привет мой друг живущий в цифровую эпоху 21 века, еще в далеком 2010 году вспомнил один комментарий на Ютубе, что мол эмулировать консоль будет невозможным и тому подобное, однако на дворе уже 2020 и уже более менее стабильная версия RPCS3 давшая жизнь в 2012 году вышла в свет с неплохим запасом игр.
Что такое RPCS3?
RPCS3 Это свободное и открытое программное обеспечение, разрабатываемый эмулятор игровой приставки SONY PLAYSTATION 3 и отладчик для Sony PlayStation 3. Он был разработан на языке программирования C++ и использует OpenGL и Vulkan в качестве бэкенд-рендеров.
Эмулятор RPCS3 работает на операционных системах Windows, Linux и FreeBSD, (64 bit) позволяя воспроизводить и отлаживать игры и программное обеспечение PlayStation 3 на компьютере.
Cкачивание эмулятора PS3 и его установка
- Запуск RPCS3 обязательно нужно выполнять от имени администратора! (правый клик мыши запуск от администратора) иначе не запустится.
Если сделали все по инструкции: То вы должны увидеть такое окно как на скриншоте вверху
Установка игр на эмулятор PS3
DISC GAME: установка
Для запуска надо:
- В консоли RPCS3Нажать на вкладку Open(открыть)
- Перейти в папку с распакованной игрой PS3 и выбрать еще одну папку, с именем PS3_GAME(см. скрин) Щёлкаем на Выбор этой папки и у нас пойдёт процесс компиляции/установки игры, а затем и её загрузки.
HDD GAME: Установка игры с жесткого диска игровой консоли PS3 это файла с расширением: pkg.
Установка игры через: PKG файл:
PKG это сжатый файл инсталляции программы для установки программного обеспечения/игр Sony Playstation3
- Скорость установки/компиляции игры на эмуляторе RPCS3 : Полностью зависит от мощности вашего компьютера,чтобы адекватно работать с эмулятором PS3 ваш пк никак не должен технически уступать настоящей игровой консоли (Должен быть лучше)
Рекомендую: Отключить все ненужные приложения для системы в диспетчере задач, чтобы разгрузить систему для эмулятора
Если не получилось: Напишите комментарий внизу
Начало работы с эмулятором на вашем ПК
Рекомендуемые системные требования
CPU: Intel Quad-core или выше
GPU: Vulkan совместимая графическая карта AMD или NVIDIA
RAM: 8 GB или больше
OC: Windows 7/8/10 64-bit / Linux 64-bit / BSD 64-bit
Файл обновления PS3
Минимальные системные требования
CPU: Любой x64 совместимый процессор.
GPU: Карта с поддержкой OpenGL 4.3 или выше.
RAM: 2 GB или больше
OC: Windows 7/8/10 64-bit / Linux 64-bit / BSD 64-bit
Файл обновления PS3
Дополнительное ПО для пользователей Windows
Microsoft Visual C++ 2015 Redistributable Update 3
DirectX End-User Runtime
Для пользователей Windows
Извлеките файлы и папки из архива в удобное место.
Для запуска используйте файл rpcs3.exe
Поместите ранее скачанный файл обновления PS3 (filename.PUP) в папку с эмулятором.
Запустите эмулятор и перейдите в File > Install Firmware после чего выберите файл обновления PS3.
Дождитесь окончания установки обновления и перезапустите эмулятор.
Извлеките файлы и папки из архива (кроме dev_flash, dev_hdd0, dev_hdd1, dev_usb000) с заменой файлов.
Запустите эмулятор и перейдите в File > Install Firmware после чего выберите файл обновления PS3.
Дождитесь окончания установки обновления и перезапустите эмулятор.
Для пользователей Linux
Поместите файл rpcs3-*_linux64.AppImage в желаемую директорию.
Откройте терминал и сделайте файл исполняемым с помощью команды chmod a+x ./rpcs3-*_linux64.AppImage где * - название файла.
Поместите файл обновления PS3 (filename.PUP) в папку с эмулятором.
Запустите эмулятор и перейдите в File > Install Firmware после чего выберите файл обновления PS3.
Дождитесь окончания установки обновления и перезапустите эмулятор.
Замените файл rpcs3-*_linux64.AppImage новым, и сделайте его исполняемым.
Запустите эмулятор и перейдите в File > Install Firmware после чего выберите файл обновления PS3.
Дождитесь окончания установки обновления и перезапустите эмулятор.
.pkg файлы устанавливаются с помощью встроенного установщика, его можно найти в File > Install .pkg
.pkg файлы устанавливаются в \dev_hdd0\game\
Копию данных Blu-Ray диска необходимо разместить в \dev_hdd0\disc\
Blu-Ray копия игры может быть запущена через File > Boot Game
Копии PSN игры необходимо разместить в \dev_hdd0\game\
.rap файлы должны находится в \dev_hdd0\home\00000001\exdata\
Примечание: Если Вы используете Linux, папка RPCS3 находится в
Для пользователей Windows
Файлы сохранений расположены в \dev_hdd0\home\00000001\savedata\
Для пользователей Linux
Файлы сохранений расположены в
About Us
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Читайте также: