12-17-2014, 11:39 PM -
Hey!
I am a newcomer on these forums and in the whole emulation scene but I have been developing indie games & software for years.
A week ago all the vocabulary considering emulation and PS3 were just a mess in my head. I was stumbling into dozens of new words here on the forums that I had never heard before. I was Googling for hours to find the information I was looking for, and still didn't get enough data to be satisfied. I thought that it might be a good idea to share the meanings of some of the most commonly used (PS3 & emulation related) words here at the forums since I didn't find a good listing anywhere.
This listing assumes that you already know some of the basic programming & computer vocabulary like threading, virtual memory, assembly language, OpenGL and vertices. The main reason I made this listing is to make it easier for newcomers like me to get into the scene and begin to develop the emulator further by themselves.
Please leave a comment below if you notice that something important is missing, or if I have understood something wrong!
Hardware & PS3 related:
RSX = Reality Synthesizer, a proprietary graphics processing unit (GPU) co-developed by Nvidia and Sony for the PlayStation 3 video game console
Cell = the CPU of PS3, a multi-core microprocessor microarchitecture, consists of PPE, 8 SPEs, EIB, Memory and I/O controllers
PPC = PowerPC which is what the processor architecture family that Cell is from is colloquially called (used in names in rpcs3 just to distinguish it from the host-system)
PPE = Power Processing Element, PPU + PPSS
PPSS = Power Processor Storage Subsystem, more info: http://moss.csc.ncsu.edu/~mueller/cluste..._elem.html
PPU = Power Processing Unit, two-way multithreaded core acting as the controller for the eight SPEs
SPE = SPU + MFC
SPU = Synergistic Processing Unit, handles most of the workload, forms virtual memory addresses etc.
MFC = Memory Flow Controller, sets up DMA operations
DMA = Direct Memory Access
EIB = Element Interconnect Bus, connects the Cell components together (PPE, SPEs etc.)
NV47 = Codename G70, is a Nvidia GPU that RSX is based on
PSGL = Basicly OpenGL ES 1.1 + Nvidia Cg
S3TC = S3 Texture Compression, used by PS3, also called DXTn or DXTC
TF = Texture Filtering, method used to determine the texture color for a texture mapped pixel, using the colors of nearby texels
TA = Texture Addressing
Emulation & software related:
HLE = High-level emulation, attempts to simulate the response of the system rather than accurately recreating its internal design
LLE = Low-level emulation, means emulating the inner hardware that is part of a system in order to execute its binary code on different architecture hardware
LLVM = A compiler infrastructure project (formerly Low Level Virtual Machine) written in C++
SPURS = SPU (Synergistic Processing Unit) Runtime System
FS = File System
VFS = Virtual File System
LDR = Loader, for example bootldr
GCM = Graphics Command Management library (a rendering library), has no abstraction layer and allows
to generate graphical commands directly, more info: http://games.soc.napier.ac.uk/resources/...al_004.pdf
File types:
ELF = Executable and Linkable Format, file format for executables, object code, shared libraries and core dumps
PRX = Playstation Plug-in file
PKG = Installable PS3 package file which usually contains multiple files
TRP = Trophy package file
PUP = Playstation Update Package, contains a patch or a full update
SFO = System File Object, also referred as PSF, used in folders which content needs to be displayed in the XMB
PFD = Protected Files Database, responsible to prevent tampering of other files of the same folder, the only purpose is the security of the folder contents
PowerPC (PPC) related:
SRR0 = Machine status save/restore register 0
SRR1 = Machine status save/restore register 1
DSISR = Register used for determining the source of a DSI exception
DSI = Data storage interrupt, the name used for a segmentation fault on PowerPC-based processors
DAR = Data address register
TB = Time base register
FPR = Floating-point register
GPR = General-purpose register
Other information:
FCX and Hdlr0, for example in
HLE: W {PPU[219] Thread (FCXSpursHdlr0)[0x00000000]} sys_spu warning: sys_spu_thread_group_join(id=209) aborted
are just parts of a game specific thread name. Hdlr probably is referring to some handler.
For more useful information, please look at the following pages:
https://github.com/RPCS3/rpcs3/wiki/Deve...nformation
http://www.psdevwiki.com/ps3/Main_Page
http://www.cebix.net/downloads/bebox/PRG.pdf
http://cell.scei.co.jp/e_download.html
PS: I hope someone who knows the rpcs3 code well would make a class diagram of some sort, or would describe the meanings & connections between the components of the project. That would also encourage more people to participate on the project!
I am a newcomer on these forums and in the whole emulation scene but I have been developing indie games & software for years.
A week ago all the vocabulary considering emulation and PS3 were just a mess in my head. I was stumbling into dozens of new words here on the forums that I had never heard before. I was Googling for hours to find the information I was looking for, and still didn't get enough data to be satisfied. I thought that it might be a good idea to share the meanings of some of the most commonly used (PS3 & emulation related) words here at the forums since I didn't find a good listing anywhere.
This listing assumes that you already know some of the basic programming & computer vocabulary like threading, virtual memory, assembly language, OpenGL and vertices. The main reason I made this listing is to make it easier for newcomers like me to get into the scene and begin to develop the emulator further by themselves.
Please leave a comment below if you notice that something important is missing, or if I have understood something wrong!
Hardware & PS3 related:
RSX = Reality Synthesizer, a proprietary graphics processing unit (GPU) co-developed by Nvidia and Sony for the PlayStation 3 video game console
Cell = the CPU of PS3, a multi-core microprocessor microarchitecture, consists of PPE, 8 SPEs, EIB, Memory and I/O controllers
PPC = PowerPC which is what the processor architecture family that Cell is from is colloquially called (used in names in rpcs3 just to distinguish it from the host-system)
PPE = Power Processing Element, PPU + PPSS
PPSS = Power Processor Storage Subsystem, more info: http://moss.csc.ncsu.edu/~mueller/cluste..._elem.html
PPU = Power Processing Unit, two-way multithreaded core acting as the controller for the eight SPEs
SPE = SPU + MFC
SPU = Synergistic Processing Unit, handles most of the workload, forms virtual memory addresses etc.
MFC = Memory Flow Controller, sets up DMA operations
DMA = Direct Memory Access
EIB = Element Interconnect Bus, connects the Cell components together (PPE, SPEs etc.)
NV47 = Codename G70, is a Nvidia GPU that RSX is based on
PSGL = Basicly OpenGL ES 1.1 + Nvidia Cg
S3TC = S3 Texture Compression, used by PS3, also called DXTn or DXTC
TF = Texture Filtering, method used to determine the texture color for a texture mapped pixel, using the colors of nearby texels
TA = Texture Addressing
Emulation & software related:
HLE = High-level emulation, attempts to simulate the response of the system rather than accurately recreating its internal design
LLE = Low-level emulation, means emulating the inner hardware that is part of a system in order to execute its binary code on different architecture hardware
LLVM = A compiler infrastructure project (formerly Low Level Virtual Machine) written in C++
SPURS = SPU (Synergistic Processing Unit) Runtime System
FS = File System
VFS = Virtual File System
LDR = Loader, for example bootldr
GCM = Graphics Command Management library (a rendering library), has no abstraction layer and allows
to generate graphical commands directly, more info: http://games.soc.napier.ac.uk/resources/...al_004.pdf
File types:
ELF = Executable and Linkable Format, file format for executables, object code, shared libraries and core dumps
PRX = Playstation Plug-in file
PKG = Installable PS3 package file which usually contains multiple files
TRP = Trophy package file
PUP = Playstation Update Package, contains a patch or a full update
SFO = System File Object, also referred as PSF, used in folders which content needs to be displayed in the XMB
PFD = Protected Files Database, responsible to prevent tampering of other files of the same folder, the only purpose is the security of the folder contents
PowerPC (PPC) related:
SRR0 = Machine status save/restore register 0
SRR1 = Machine status save/restore register 1
DSISR = Register used for determining the source of a DSI exception
DSI = Data storage interrupt, the name used for a segmentation fault on PowerPC-based processors
DAR = Data address register
TB = Time base register
FPR = Floating-point register
GPR = General-purpose register
Other information:
FCX and Hdlr0, for example in
HLE: W {PPU[219] Thread (FCXSpursHdlr0)[0x00000000]} sys_spu warning: sys_spu_thread_group_join(id=209) aborted
are just parts of a game specific thread name. Hdlr probably is referring to some handler.
For more useful information, please look at the following pages:
https://github.com/RPCS3/rpcs3/wiki/Deve...nformation
http://www.psdevwiki.com/ps3/Main_Page
http://www.cebix.net/downloads/bebox/PRG.pdf
http://cell.scei.co.jp/e_download.html
PS: I hope someone who knows the rpcs3 code well would make a class diagram of some sort, or would describe the meanings & connections between the components of the project. That would also encourage more people to participate on the project!