d97cdb9fbf
rsx_decode.h implements a "rsx_decoders" template class that is specialized for most GCM command found in rsx command buffer. 3 static members are defined : a "decode" function that turns command value into a more meaninfull type if applicable (for instance bool for _enabled* command, surface formats for set_surface_format command...), a "commit_rsx_state" that modifies a given rsx_state structure when the command is parsed, and a "dump" function used in rsx_debugger for pretty printing. Hopefully having the 3 functions in a single place for every command will act as a self documenting list of rsx command buffer opcode. rsx_state is also expanded into several explicit variables instead of being stored into a u32 array. This should makes debugging easier (Visual Studio will display the exact value of these member for instance) as well as preparing rsx_state for serialisation/deserialisation. The vertex array and textures opcode are not concerned atm for bisecting purpose. |
||
---|---|---|
3rdparty | ||
Utilities | ||
Vulkan | ||
asmjit@b0dad1af25 | ||
asmjitsrc | ||
bin | ||
llvm@051e787f26 | ||
llvm_build | ||
ps3emu_api | ||
rpcs3 | ||
rpcs3-tests | ||
rsx_program_decompiler@05d1fc4389 | ||
wxWidgets@cbb799b1ae | ||
.gitignore | ||
.gitmodules | ||
.mention-bot | ||
.travis.yml | ||
CMakeLists.txt | ||
LICENSE | ||
README.md | ||
appveyor.yml | ||
rpcs3.sln | ||
rpcs3_debug.props | ||
rpcs3_default.props | ||
rpcs3_llvm.props | ||
rpcs3_memleak.props | ||
rpcs3_release.props | ||
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+
- 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.