Skip to content

Developer Information

Raul Tambre edited this page Aug 19, 2015 · 14 revisions

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 your 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!

IRC channel: on #rpcs3 at Freenode

Best wishes and happy coding!


Links

Cell

RSX

HLE

Information

####OE bit Some instructions contain an optional OE(overflow excpetion) flag. We currently do not implement those versions of the instructions. For example we emulate add, addze, subfme but not addo, addzeo, subfmo which are just the prior operations with the OE flag set.

This flag writes to the OV and SO (overflow and summary overflow) bits of the XER (Fixed-Point Exception Register) register. The reason why it's not implemented is that the GCC code emitter does not use these instructions and so we haven't found any PS3 software that uses it.

If we find some software that has some handwritten assembly that use those instructions we'll need to implement it (or just for completeness). A good reference for XER bits can be found in PowerPC Microprocessor Family: The Programmer's Reference Guide chapter 1.3 and other linked references.

Probably something from the answers to this SO question is what we could consider.

####Misc (Some of this information can be deleted, or at least it should be properly organized).

  • sizeof(char) = 1 (= 8 bits)
  • sizeof(short) = 2
  • sizeof(int) = 4
  • sizeof(long) = 4
  • sizeof(long long) = 8
  • sizeof(size_t) = 4
  • sizeof(sys_memory_container_t) = 4
  • sizeof(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.

Clone this wiki locally