Glossary

The vendor formats' vocabulary. Standard ELF terms, and words that mean different things in different repositories, are in the collection's glossary. The tables in data/ are the source of truth; each entry names where its format lives.

The generation split

Generation - which machine a file is for: Orbis-generation or Prospero-generation. The two share one container format and differ in its four-byte magic. It is a type with no default (D002). selfish-abi, data/self-format.tsv.

The container magic - 4F 15 3D 1D or 54 14 F5 EE. A current-generation app eboot carries the first and a title's bundled modules the second (obscene#D298); what makes a title native is param.json and native registration, not the magic.

Executables

NID - the import hash. A vendor module names an imported symbol by a hash of its name, encoded as eleven characters: the first 8 bytes of SHA-1(name || suffix), read little-endian. selfish-nid; the mined name corpus is obSCEne's.

SELF - the signed-executable container an ELF is wrapped in. A retail one is signed with keys only the vendor holds.

fSELF - a fake SELF: it declares itself fake in the field the format provides, with every digest and the signature area zero. selfish-container.

eboot, eboot.bin - a title's main program, in container form; what the system loader starts.

Vendor segment - PT_SCE_DYNLIBDATA, which carries the dynamic tables in the platform's layout. DT_SCE_* tags point into it. selfish-elf::dynamic, selfish-elf::dynlib.

PT_SCE_PROCPARAM, PT_SCE_MODULE_PARAM - a block a program or module carries that the loader reads before running any of its code, including the SDK version it was built against.

module_start, module_stop - a module's load and unload entry points, exported by NID.

Titles

PARAM.SFO - a binary key-value table describing a title; every package carries one.

param.json - the current generation's title description, written into a title directory. Both in selfish-title.

applicationCategoryType - the param.json field (CATEGORY in PARAM.SFO) that decides a title's memory budget and whether it owns the display. Independent of the container's paid privilege tier. The values are in the collection's four-axes table and selfish_title::category.

Title directory - a title as files: an eboot beside sce_sys/, which the install call or an auto-mounter registers.

CONTENT_ID, TITLE_ID - a title's identity. The title id is the field of the content id between the first - and the _.

Packages

Package (.pkg) - four nested formats:

.pkg  ->  header and entry table
      ->  filesystem image at 0x80000, encrypted
      ->  a PFSC image inside it
      ->  the inner filesystem: the title's files

PFS - the filesystem inside a package, read through three layers:

raw bytes
  -> XTS    sector-by-sector decryption, 4 KiB sectors
  -> PFSC   blocks addressed through a map, zlib-compressed or stored
  -> PFS    a superblock, inodes and directories

selfish-pfs.

Keystone - sce_sys/keystone, 96 bytes derived from the passcode. selfish-pkg::keystone.

playgo - the chunk and scenario descriptors a package carries, saying how a title may run while it installs.

Licence, RIF - the entry that says a package may be installed. The ones built here are signed with the published debug keyset and declare themselves debug licences (D047).

Fake keysets - the published package keysets in data/pkg-keys.toml. Nothing here works on retail material; real files confirm or refute a structure and are never committed.