b72f6da853
* Porting of DH's user clip implementation in gl * Tweak clang-format * rsx: Move inline array to draw_clause structure. * rsx: Use variant based draw commands. * rsx: Dump DRAW_ARRAYS and DRAW_INDEX_ARRAYS. * GL: old recompiler clean up (#2142) * RSX texture refactor (#2144) * gl/vk: Enable vertex texture fetch (#2127) * gl: Enable vertex textures * rsx: use textureLod instead of generic texture sample * rsx: handle uploading of W32_X32_Y32_Z32 * gl: Re-enable proper shader logging remove old logging method that overwrites single file * gl: Declare texture_coord_scale for vertex samplers * gl: texture remap fixes; enable remap for vertex textures * gl: offset texture indices to base layer 16 * rsx: Fix W32_Z32_Y32_X32_FLOAT subresource layout * vk: Enable vertex textures * rsx: define special calls for vertex texture fetch * gl: improved vertex texture fetch setup * vk: Fix texture formats and component mapping * vk: Implement vertex texture fetch functions properly * vk/gl: proper fix for primitive restart index revert inadvertent decompiler update * gl: Disable filtering for vertex textures * Hopefully fix appveyor build (#2148) * GL/Vulkan: Bug fixes and improvements; alphakill for vulkan (#2146) * vk: Zero-initialize some more structs * gl: Clean up fragment program generation code * vk: Enable alpha kill * vk: Fix surface clear; redirect output for surface_type:b * vk: Tie renderpass to program object to avoid incompatible passes * vk: Properly compute descriptor pool size (#2150) * rsx: Set default attribute format to float. * rsx: vertex attribute size is 1 again for CMP, let backend handles this formats properties. * rsx: Move printing function in a separate header/cpp * Porting of DH's user clip implementation in gl |
||
---|---|---|
3rdparty | ||
Utilities | ||
Vulkan | ||
asmjit@b0dad1af25 | ||
asmjitsrc | ||
bin | ||
llvm@051e787f26 | ||
llvm_build | ||
ps3emu_api | ||
rpcs3 | ||
rpcs3-tests | ||
rsx-debugger@3b11b9652d | ||
rsx_program_decompiler@de3b2056ed | ||
wxWidgets@cbb799b1ae | ||
.clang-format | ||
.editorconfig | ||
.gitignore | ||
.gitmodules | ||
.mention-bot | ||
.travis.yml | ||
CMakeLists.txt | ||
LICENSE | ||
README.md | ||
appveyor.yml | ||
git-clang-format | ||
pre-commit.readme | ||
rpcs3.sln | ||
rpcs3_debug.props | ||
rpcs3_default.props | ||
rpcs3_llvm.props | ||
rpcs3_memleak.props | ||
rpcs3_release.props | ||
usertype.dat | ||
zlib.props |
README.md
RPCS3
An open-source PlayStation 3 emulator/debugger written in C++.
You can find some basic information in the FAQ. For discussion about this emulator and PS3 emulation please visit the official forums.
Development
If you want to contribute please take a look at the Coding Style, Roadmap and Developer Information pages. You should as well contact any of the developers in the forum in order to know about the current situation of the emulator.
Dependencies
Windows
- Visual Studio 2015
- Visual C++ Redistributable Packages for Visual Studio 2015
- Cmake 3.1.0+ (required; add to PATH)
- Python 3.3+ (required; add to PATH)
Linux
- GCC 5.1+ or Clang 3.5.0+ (not GCC 6.1)
- Debian & Ubuntu:
sudo apt-get install cmake build-essential libopenal-dev libwxgtk3.0-dev libglew-dev zlib1g-dev libedit-dev libvulkan-dev
- Arch:
sudo pacman -S glew openal wxgtk cmake llvm
Mac OSX
- Xcode 6+ (tested with Xcode 6.4)
- Install with Homebrew:
brew install glew wxwidgets
- Remove '-framework QuickTime' from '_ldflags' in /usr/local/bin/wx-config
Building
To initialize the repository don't forget to execute git submodule update --init
to pull the submodules.
- Windows:
- Open the .SLN file.
- Build the projects in __BUILD_BEFORE folder: right-click on every project > Build.
- Press BUILD > Build Solution or Rebuild Solution.
- Linux & Mac OSX:
If you want to build with LLVM, then LLVM 3.8 is required.
cd rpcs3 && cmake CMakeLists.txt && make && cd ../
then run withcd bin && ./rpcs3
. If you are on OSX and want to build with llvm don't forget to add-DLLVM_DIR=...
(or wherever llvm brew was installed) to cmake invocation. When using GDB, configure it to ignore SIGSEGV signal (handle SIGSEGV nostop noprint
).
CMake Build Options (Linux & Mac OSX)
-
-DUSE_SYSTEM_LIBPNG=ON/OFF
(default = OFF)
Build against the shared libpng instead of using the builtin one. libpng 1.6+ highly recommended. Try this option if you get version conflict errors or only see black game icons. -
-DUSE_SYSTEM_FFMPEG=ON/OFF
(default = OFF)
Build against the shared ffmpeg libraries instead of using the builtin patched version. Try this if the builtin version breaks the OpenGL renderer for you.