This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

Thread Rating:
  • 4 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Guide] PS3 & emulation vocabulary
#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!
i7-4470K, GTX 660 Ti, 8 GB DDR3, Kingston 256 GB HyperX SSD, Windows 8.1 (64-bit)
Reply
#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).
Reply
#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
Reply
#4
Very useful thread! Thank you! Big Grin
Acer Aspire 5930G, Intel Core 2 Duo P8400 @ 2.26 GHz, NVIDIA GeForce 9600M GT
Reply
#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
i7-4470K, GTX 660 Ti, 8 GB DDR3, Kingston 256 GB HyperX SSD, Windows 8.1 (64-bit)
Reply
#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
Reply
#7
Added some PowerPC related words, "Waiting for explanation" header and FCX & Hdlr0 under it. Smile
i7-4470K, GTX 660 Ti, 8 GB DDR3, Kingston 256 GB HyperX SSD, Windows 8.1 (64-bit)
Reply
#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.
Reply
#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!
i7-4470K, GTX 660 Ti, 8 GB DDR3, Kingston 256 GB HyperX SSD, Windows 8.1 (64-bit)
Reply
#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 3600MHz, Manjaro Linux
Laptop: Intel i7 6700HQ, Intel HD 530, 2x8G 2133MHz, Manjaro Linux
Old Desktop: FX-8350, R9 280X, 2x4G 1600MHz, Manjaro Linux
Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)