Table of Contents
If you are wondering about websites and documents in order to gather information about certain parts of the PlayStation 3 here is a nice list to start with. Probably more things should be added here, but for now it is a good compilation of useful sources. If what you are looking for isn't below, remember that Google is your friend. If it's not, remember that other RPCS3 developers are your friends too. Ask them!
Developement channel: #development at RPCS3's Discord
Old IRC channel: #rpcs3 at freenode.net
Best wishes and happy coding!
Documentation
You can find a compendium of public documentation released by IBM and Sony regarding Cell and the SPU at our website under Download which contains:
- Cell Broadband Engine Architecture v1.01 (Direct link @ ncsu.edu)
- Cell Broadband Engine Architecture v1.02 (Direct link @ uidaho.edu)
- Cell Broadband Engine Architecture C/C++ Language Extensions v2.1 (Direct link @ ncsu.edu)
- Cell Broadband Engine Architecture C/C++ Language Extensions v2.2.1 (Direct link @ ncsu.edu)
- Cell Broadband Engine Architecture C/C++ Language Extensions v2.3
- Cell Broadband Engine Architecture C/C++ Language Extensions v2.5 (Direct link @ sbg.ac.at)
- Cell Broadband Engine Architecture C/C++ Language Extensions v2.6 (Direct link @ iman1.jo)
- Cell Broadband Engine Programming Handbook v1.1 (Direct link @ ncsu.edu)
- Cell Broadband Engine Programming Handbook v2.0 (Direct link @ ncsu.edu)
- Cell Broadband Engine Registers v1.0 (Direct link @ archive.org)
- Cell Broadband Engine Registers v1.5
- Cell Broadband Engine Registers v1.5.1
- Cell Broadband Engine Architecture SIMD Math Library Specification v1.0 (Direct link @ uv.es)
- Cell Broadband Engine Architecture SIMD Math Library Specification v1.1 (Direct link @ uv.es)
- Cell Broadband Engine Architecture SIMD Math Library Specification v1.2
- Cell Broadband Engine SDK Libraries v1.1 (Direct link @ ncsu.edu)
- SPU Application Binary Interface Specification v1.3 (Direct link @ lri.fr)
- SPU Application Binary Interface Specification v1.4 (Direct link @ archive.org)
- SPU Application Binary Interface Specification v1.6
- SPU Application Binary Interface Specification v1.7 (Direct link @ usc.edu)
- SPU Application Binary Interface Specification v1.9 (Direct link @ utoronto.ca)
- SPU Assembly Language Specification v1.3 (Direct link @ archive.org)
- SPU Assembly Language Specification v1.4
- SPU Assembly Language Specification v1.5 (Direct link @ usc.edu)
- SPU Assembly Language Specification v1.6 (Direct link @ ncsu.edu)
- SPU Assembly Language Specification v1.7 (Direct link @ utoronto.ca)
- SPU Instruction Set Architecture v1.2 (IBM) (Direct link @ uidaho.edu)
- SPU Instruction Set Architecture v1.2 (Sony)
- SPE Runtime Management Library v1.1 (Direct link @ ncsu.edu)
- SPE Runtime Management Library v2.0 (Direct link @ ncsu.edu)
- SPE Runtime Management Library v2.2 (Direct link @ ncsu.edu)
- PPC Vector/SIMD Extension Technology Programming Environments v2.07c (Direct link @ ncsu.edu)
- Preventing SPE Indefinite Stalls Resulting from Instruction Depletion in Cell Broadband Engine Processor v1.0 (Direct link @ ibm.com)
RSX
- RSX Commands: http://www.psdevwiki.com/ps3/RSXFIFOCommands (Partially incomplete)
- Ask other developers.
HLE
- http://www.psdevwiki.com/ps3/
- LV2 SysCalls: Ask other developers. http://www.psdevwiki.com/ps3/LV2_Functions_and_Syscalls (A bit incomplete)
- Modules: Ask other developers. Basically optional HLE implementaions of prx modules found in
/dev_flash/sys/external/
.
Information
(Some of this information can be deleted, or at least it should be properly organized)
sizeof(char)
= 1 (= 8 bits)sizeof(short)
= 2sizeof(int)
= 4sizeof(long)
= 4sizeof(long long)
= 8sizeof(size_t)
= 4sizeof(sys_memory_container_t)
= 4sizeof(void*)
= 4
Reading from invalid addresses / Trying to execute code from invalid addresses (e.g. stack) / Trying to write to invalid addresses (e.g. functions) makes the application exit on real PS3s.