PS2 BIOS/ROM Contents
Here is an overview of what is contained in a PS2 ROM (including TOOL, DESR/PSX, ps2emu/ps2gxemu/ps2softemu (PS3), System 246 and System 256).
An updated version is available here: https://playstationdev.wiki/ps2devwiki/index.php?title=Bios
ACDEV - Arcade ROM device service.
ADDDRV - Adds support for the DVD ROM (rom1:), via ROMDRV.
ADDROM2 - Adds support for rom2 (which contains a Chinese font file), only for Chinese consoles (SCPH-50009).
ATAD - The DEV9+ATAD(+Flash device) combo driver. First appearing in ROM v1.10. Has no support for the CXD9566R. Despite its similar name, it is very different from the full ATAD module.
BNNETCNF - not entirely sure what this is for, but it appears in the PS3's PS2 ROMs. Seems to be for network configuration, but why?
BOARDINF - reads in the DSW602 board's ID and sets up the values for Boot Modes 6 and 7. Only does something useful on TOOL units.
CDVDFSV - The RPC server for CDVDMAN.
CDVDMAN - The CD/DVD manager.
CLEARSPU - Seems to clear/reset the SPU, but is known to cause crashes under some conditions. Not sure if it's buggy or not. Only used by the OSDSYS of the SCPH-10000 and SCPH-15000, probably retained for backward-compatibility.
D2ELOADP - DECI2 ELOADP extension (ERX module support).
DECI1 - DECI1 manager. Purpose of its existence is not known.
DECI1DR1 - DECI1 H1500 driver. Purpose unknown.
DECI1DRP - DECI1 PIF/mini-RA driver. Purpose unknown.
DECI2 - DECI2 manager.
DECI2DRP - DECI2 PIF driver
DECI2DRS - DECI2 SIF2 driver.
DECI2FILE - DECI2 host (and TTY) driver.
DECI2HSYN - DECI2 Host SYNchronization driver. Notifies the DECI2 manager when the host interface (i.e. PIF) is up.
DECI2KPRT - DECI2 KTTY driver.
DECI2LOAD - DECI2 IOP module loader.
DECKARD - The SCPH-7500x has a newer PowerPC processor in place of the IOP, and requires code to emulate the IOP.
DMACMAN - DMA Controller Manager.
DVDCNF - Contains IOP boot configuration file for the DVD player.
DVDELF - DVD player executable for expansion-bay consoles.
DVDID - DVD player ID. SCPH-70000 (ROM v2.00) and later had universal DVD ROMs, hence the existence of DVDID* files for each region.
DVDPLA - DVD player executable for slimlines. SCPH-70000 (ROM v2.00) and later had universal DVD ROMs, hence the existence of DVDPL* files for each region.
DVDVER - DVD player version number. SCPH-70000 (ROM v2.00) and later had universal DVD ROMs, hence the existence of DVDVER* files for each region.
EECONF - Loads part of the system configuration from the MECHACON EEPROM. Also configures and resets some peripherals, depending on the model version. In slimlines, EECONF will also load the MAC address.
EELOAD - The EE ELF loader, which is loaded by LoadExecPS2() to 0x00082000 for loading ELFs.
EELOADCNF - Contains the IOP boot configuration file for EELOAD.
EENULL - The idle thread (id #0) module, loaded to 0x00081FC0.
EESYNC - For synchronizing with the EE, at the end of IOP resets. EESYNC from DNAS images are evil; they also perform a memory wipe of the region from 0x00084000 to .0x00100000.
EROMDRV - Encrypted ROM DRIver for the expansion-bay PlayStation 2 sets.
EROMDRVA - Encrypted ROM DRIver for the SCPH-70000 (ROM v2.00) and later PlayStation 2 sets.
EXCEPMAN - Exception manager.
EXTINFO - Contains the "EXTINFO" for all files in the ROM image.
FILEIO - RPC server for IOMAN. Sony has greatly changed the semantics and design of FILEIO after some point. Connecting an old FILEIO EE RPC client to a newer server will result in a severe IOP crash.
FNTIMAGE - Contains fonts for the OSDSYS of the SCPH-18000 and newer.
FONTM - The FONT Module, used by the OSDSYS.
HDDLOAD - Update loader for the HDD unit (and later includes the flash device).
HDDOSD - Not sure what this does, but it is present in the expansion-bay ROMs.
HEAPLIB - Memory HEAP LIBrary (i.e. thvpool, thfpool).
ICOIMAGE - Contains icons for the OSDSYS of the SCPH-18000 and newer.
IGREETING - Displays boot information (i.e. IOP boot type, EBOOTP, IBOOTP, switch positions for DSW602 and the type of DSW602 board installed).
ILINK - i.Link driver - present in only the arcade ROMs.
ILSOCK - i.Link socket driver - present in only the arcade ROMs.
INTRMANI - Interrupt Manager. According to wisi, it is for IOP mode.
INTRMANP - Interrupt Manager. According to wisi, it is for PS mode. Never used.
IOMAN - I/O Manager.
IOPBOOT - IOP bootup program.
IOPBTCON2 - Boot configuration file for the IOP, for the first phase of the IOP reset (before UDNL is loaded).
IOPBTCONF - Boot configuration file for the IOP, during the final phase of the IOP reset. If no UDNL module is specified, the IOP will only have a single IOP reset in the reboot process, with the modules listed in IOPBTCONF.
KERNEL - The EE kernel.
KROM - Kanji ROM? Not sure where this is used.
LIBFI - This is not present in the boot ROM of the SCPH-10000 and SCPH-15000.
LIBSD - Sound driver library.
LOADCORE - The core of IOP module loading. Provides the lowest level of IOP module loading functions. Also handles the startup of the IOP.
LOADFILE - The RPC server for MODLOAD.
LOGO - PS1 logo?
MBROWS - Only used by the old OSDSYS program from ROM v1.00 and v1.01.
MCLOCK - Only used by the old OSDSYS program from ROM v1.00 and v1.01.
MCMAN - Memory Card Manager.
MCMANO - MCMAN (Open?). Present in the System 246 ROM. Has support for the regular PlayStation 2 Memory Cards, while the System 246's MCMAN module only supports the arcade dongle.
MCSERV - RPC server for MCMAN.
MODLOAD - IOP module loader.
MOPEN - Only used by the old OSDSYS program from ROM v1.00 and v1.01.
NCDVDMAN - It is a strange abomination that was introduced and used with only the SCPH-70000 series, so it was probably provided for backward-compatibility. It seems to be a heavily stripped-down CDVDMAN module, with no support for some S-command functions like sceCdRI. I don't know why this was done, but it might be a deliberate move by Sony to prevent hackers from using these system functions. Didn't really do anything, however.
OLDROM - Contains a subset of ROM modules at version 1.3.4 that are required for the late TOOL ROM to provide DEX-like functionality (i.e. old ROM modules).
OSBROWS - Used by the old OSDSYS program from ROM v1.00/v1.01.
OSCLOCK - Used by the old OSDSYS program from ROM v1.00/v1.01.
OSDSND - OSD sound library. This is actually the tentative sound driver, which is called "librspu2" in the Sony SDK. The funny thing about OSDSND from the SCPH-18000 and newer is that it's newer than the one in the Sony SDK, even at release v3.02.
OSDSYS - The browser.
OSDVER - Seems to be a build number for the OSD.
OSFONTM - Used by the old OSDSYS program from ROM v1.00/v1.01.
OSFONTS - Used by the old OSDSYS program from ROM v1.00/v1.01.
OSOPEN - Used by the old OSDSYS program from ROM v1.00/v1.01.
PADMAN - Pad manager.
PIOPRP - Present in the PS3 ps2_(gx/soft/net)emu; contains version 3.1.0 of the IOP software (compared to version 1.3.4 on the root).
PS1DRV - The PlayStation driver. Sets up the EE for GPU emulation and resets the IOP into PS1 mode.
PS1ID - Only found in newer boot ROMs
PS2LOGO - Displays the PlayStation 2 logo from the inserted disc. For newer consoles, if the logo cannot be decrypted properly, it will fall back to the browser. Not actually required to boot games, but the Sony OSDSYS boots PS2 games through this program.
PXATAPI - ATAPI driver for the (the DVD writer of the) PSX. TXATAPI is used by TESTMODE of the PSX.
RDRAM - Provides a RDRAM test for the EE at power-on. This is run from RESET.
REBOOT - The reboot service. Receives IOP reset packets from the EE, from across the SIF.
RESET - Bootstrap code for the EE and IOP.
RMMAN - ReMote-con MANager for the external IR receiver.
RMMAN2 - ReMote-con MANager for the internal IR receiver (SCPH-50000 and later).
RMRESET - ReMote controller reset.
ROMDIR - The ROMDIR part of the ROM image, which provides information on the location and name of files contained in the image.
ROMDRV - ROM driver. Provides access to the boot ROM (rom0).
ROMGSCRT - The SCPH-10000 and SCPH-15000 do not have this.
ROMVER - ROM version.
SBIN - Seems to be the pad controller library for the PS1 monitor.
SECRMAN - Security Manager. Signing is NOT done with the one in ROM, but with a special version that comes with the utility discs. Debugstations and TOOL units have a different SECRMAN module from retail sets.
SIFCMD - SIF command module. Contains the SIF command and SIF RPC functions.
SIFINIT - Initializes the SIF.
SIFMAN - SIF manager.
SIO2MAN - SIO2 manager. Provides access to the SIO2 interface.
SNDIMAGE - Sound image. Contains sounds for the OSDSYS of the SCPH-18000 and newer.
SSBUSC - SSBUS Controller library. The SSBUS seems to be the bus that all peripherals get connected to. It seems to have the power to control the mapping of the device registers, as well as access timing.
STDIO - Standard I/O library.
SYSCLIB - System C Library.
SYSMEM - System Memory Manager.
TBIN - The PS1 monitor program. Seems to be the PS1 BIOS. This is started by RESET, when the IOP is in PS1 mode.
TDVRDRV - DVR Driver for the PSX.
TDVRMISC - Miscellaneous DVR functionality driver for the PSX.
TESTMODE - Test mode program. The EE will boot this module from EELOAD, if the console is put into service mode by the SONY service jig. For expansion bay sets, it is a device that goes into the expansion bay, but connects to the chassis from within it (it does not connect to the expansion connector).
TESTSPU - Used by the TESTMODE program for testing the SPU.
TEXIMAGE - Texture image. Contains textures for the OSDSYS of the SCPH-18000 and newer.
THMON - Simple THread MONitor. Exists only in the late TOOL's ROM.
THREADMAN - IOP thread manager.
TIMEMANI - Timer Manager (IOP mode)
TIMEMANP - Timer Manager (PS mode)
TXATAPI - ATAPI driver for the (the DVD writer of the) PSX. TXATAPI is used by TESTMODE of the PSX.
TZLIST - Timezone list, used by the OSD. Not present in the SCPH-10000 and SCPH-15000, which only saw a Japan-only release.
UDFIO - UDF driver used by the DVD Player.
UDNL - SilverBull calls this an UpDate DownLoader. Basically, it is responsible for selecting the modules and starting the IOP, during the final phase of the IOP reset where the desired modules are to be loaded into the IOP.
VBLANK - V-Blank management.
VERSTR - Version string. I think that the PS1 ROM will use this because I learned that this string is also present in PlayStation consoles.
XCDVDFSV - Updated module.
XCDVDMAN - Updated module.
XDEV9 - Updated module.
XDEV9SERV - A RPC service for accessing the DEV9 driver directly. Presumably to obtain things like the MAC address.
XFILEIO - Updated module.
XFLASH - Updated module.
XFROMMAN - Updated module.
XLOADFILE - Updated module.
XMCMAN - Updated module.
XMCSERV - Updated module.
XMTAPMAN - Multi-Tap Manager. XMTAPMAN is ised by the expansion bay OSDSYS program.
XPADMAN - Updated module.
XPARAM - Updated module.
XPARAM2 - Updated module.
XRMMAN2 - Updated module.
XSHA1 - this only present in PS3. It is used as additional antipiracy check. It seems that it calculate disc main elf checksum and compares it with some database.
XSIFCMD - Updated module.
XSIO2MAN - Updated module.
Those *CNF files usually contain one file: IOPBTCONF. That is the IOP BooT CONFiguration file. The modules exist within the ROM devices (i.e. rom0, rom1). X* modules are new versions of modules that are generally used by the OSDSYS program. To provide backward-compatibility, SCE didn't replace the old module versions but opted to provide new modules instead. P* modules are like X* modules, but are used within the PSX instead. T* modules are also like X* modules, but are used for the TESTMODE programs of consoles starting from the SCPH-18000.
Most of the other files are used by the browser. The files in the ROM do vary between browser versions.
The browsers seem to be compiled using a special SDK version. For example the old browser from the SCPH-10000 and SCPH-15000 were compiled using a SDK around v1.3. But later ROMs had browsers compiled with SDK v1.6, even though far newer versions were already out. Even though LIBSD has existed as the sound driver library for most PlayStation 2 software, the browser has always used OSDSND (which is librspu2 - the tentative sound driver).