[Guide] PS3 & emulation vocabulary
Started by DaHandy




15 posts in this topic
DaHandy
Unregistered


 
12-17-2014, 11:39 PM -
#1
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!
Bigpet
Unregistered


 
12-18-2014, 01:54 AM -
#2
LLVM no longer stands for "Low Level Virtual Machine", it's just "LLVM" now, that's its name

Also, PPC just means PowerPC which is what the processor architecture family that Cell is from is colloquially called (used in names in rpcs3 just to to distinguish it from the host-system).
nickblame
Unregistered


 
12-18-2014, 09:30 AM -
#3
(12-17-2014, 11:39 PM)DaHandy Wrote: HLE = High-level emulation, attempts to simulate the response of the system rather than accurately recreating its internal design
Attempts to emulate rather than simulate. Simulation means you don't have the underlying system but rather you have a model that evaluates the outcome based on certain parameters in order to make predictions and adjustments. Maybe an example can be given that high level emulation is emulating firmware functions or the API that a game uses.

(12-17-2014, 11:39 PM)DaHandy Wrote: LLE = Low-level emulation, used to develop new computer hardware and execute legacy binary code
This could also be written better. Emulate the hardware that consists the system in order to execute legacy binary code on modern/different architecture hardware.


Btw, nice post!! Big Grin
nevermind1711
Unregistered


 
12-18-2014, 11:36 AM -
#4
Very useful thread! Thank you! Big Grin
DaHandy
Unregistered


 
12-18-2014, 12:28 PM -
#5
Thanks for your comments and corrections!

I have corrected LLVM, PPC, PPE and LLE, also added PPSS.

(12-18-2014, 09:30 AM)nickblame Wrote:
(12-17-2014, 11:39 PM)DaHandy Wrote: HLE = High-level emulation, attempts to simulate the response of the system rather than accurately recreating its internal design
Attempts to emulate rather than simulate. Simulation means you don't have the underlying system but rather you have a model that evaluates the outcome based on certain parameters in order to make predictions and adjustments. Maybe an example can be given that high level emulation is emulating firmware functions or the API that a game uses.

I am sorry to argue but I think that simulation actually is the correct word in this case. Simulation means that you want to make something to behave the same way (as a legacy system did for example) without making the inner functionality exactly the same. Here is a good discussion about the topic with some examples also: http://stackoverflow.com/questions/21746...simulation

Anyway, I think you all get my point in the HLE explanation, and maybe there isn't just one correct answer! Smile
nickblame
Unregistered


 
12-18-2014, 12:43 PM -
#6
(12-18-2014, 12:28 PM)DaHandy Wrote: Thanks for your comments and corrections!

I have corrected LLVM, PPC, PPE and LLE, also added PPSS.

(12-18-2014, 09:30 AM)nickblame Wrote:
(12-17-2014, 11:39 PM)DaHandy Wrote: HLE = High-level emulation, attempts to simulate the response of the system rather than accurately recreating its internal design
Attempts to emulate rather than simulate. Simulation means you don't have the underlying system but rather you have a model that evaluates the outcome based on certain parameters in order to make predictions and adjustments. Maybe an example can be given that high level emulation is emulating firmware functions or the API that a game uses.

I am sorry to argue but I think that simulation actually is the correct word in this case. Simulation means that you want to make something to behave the same way (as a legacy system did for example) without making the inner functionality exactly the same. Here is a good discussion about the topic with some examples also: http://stackoverflow.com/questions/21746...simulation

Anyway, I think you all get my point in the HLE explanation, and maybe there isn't just one correct answer! Smile

No worries DaHandy, suit yourself! However take a look into that thread in stackoverflow, I think the guy Stan Graves only has it correctly (*Vaskez too). Wikipedia and popular stackoverflow answears aren't always the correct ones.

I'll be more specific. I took a class in the university once, that was called "Simulation techniques". I took it because I thought it was somewhat related to emulators. I talked to the professor about it and told him about console systems being "simulated" in programs for the PC. He quickly corrected me and explained that in the simulation we don't have the system itself. We only consider the things that matter for the outcome (consider, not implement!) and then according to parameters we investigate scenarios, deduct conclusions etc. Anyway it might be a technicality and also the definition might be lax anyhow, so.. whatever Big Grin
DaHandy
Unregistered


 
12-19-2014, 12:58 AM -
#7
Added some PowerPC related words, "Waiting for explanation" header and FCX & Hdlr0 under it. Smile
tambre
Unregistered


 
12-19-2014, 05:39 AM -
#8
(12-19-2014, 12:58 AM)DaHandy Wrote: Added some PowerPC related words, "Waiting for explanation" header and FCX & Hdlr0 under it. Smile

I would guess that Hdlr=Handler and the 0 after it would be the number of the spurs handler thread.
DaHandy
Unregistered


 
12-19-2014, 04:03 PM -
#9
(12-19-2014, 07:46 AM)AlexAltea Wrote:
(12-19-2014, 12:58 AM)DaHandy Wrote: Added some PowerPC related words, "Waiting for explanation" header and FCX & Hdlr0 under it. Smile

Huh? It could actually mean anything, thread names are free to be chosen by the game developers.
Not sure if it's worth putting it in this glossary.

Oh, so those words are actually game specific? If thats the case, they of course shouldn't be listed here!
Ani
Administrator
*******


16
4,386 posts 106 threads Joined: Aug 2017
02-14-2016, 11:26 PM -
#10
Developer Information link outdated.
Should replace with: https://github.com/RPCS3/rpcs3/wiki/Deve...nformation
    Desktop: Ryzen 7 5800X,   Radeon RX 6800 XT, 2x8G DDR4 3600MHz, Manjaro Linux
     Laptop: Ryzen 9 5900HX,  Radeon RX 6700M,   2x8G DDR4 3200MHz, Manjaro Linux
Old Desktop: AMD FX-8350,     Radeon R9 280X,    2x4G DDR3 1600MHz, Manjaro Linux


Forum Jump:


Users browsing this thread: 4 Guest(s)