Bios

From PS2 Developer wiki
Revision as of 09:46, 18 September 2023 by Kozarovv (talk | contribs)
Jump to navigation Jump to search

Content

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). This list isn't finished yet, so add your comments below!

File Description Remarks
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).
APPLOAD
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.
BTNB01
BUILD
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.
CMN01
CMN02
D2ELOADP DECI2 ELOADP extension (ERX module support).
DAEMON
DBCMAN
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.
DVDIDA
DVDIDC
DVDIDE
DVDIDJ
DVDIDM
DVDIDO
DVDIDR
DVDIDU
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.
DVDPLC
DVDPLE
DVDPLJ
DVDPLM
DVDPLO
DVDPLR
DVDPLU
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.
DVDVERA
DVDVERJ
DVDVERR
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.
EROMDRVC
EROMDRVE
EROMDRVJ
EROMDRVM
EROMDRVO
EROMDRVR
EROMDRVU
ESDATA
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.
FNTASCII
FNTEX000
FNTEX001
FNTEXOSD
FNTIMAGE Contains fonts for the OSDSYS of the SCPH-18000 and newer.
FONTM The FONT Module, used by the OSDSYS.
FONTS
GB18030 Chinese FONT module, replace FONTM. Loaded from rom2: on SCPH-50009 On PS2 that use it, this file is required to boot at all.
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).
HLPB01
HLPB02
HLPB03
HLPB04
HLPB05
HLPB06
HLPB07
HLPB08
HLPB09
HLPB10
HLPB11
HLPB12
HLPB13
HLPB14
ICOBCDDA
ICOBDISC
ICOBDVDD
ICOBFBRK
ICOBFNOR
ICOBFSCE
ICOBPKST
ICOBPS1D
ICOBPS1M
ICOBPS2D
ICOBPS2M
ICOBQUES
ICOBYSYS
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.
KROMG
LED
LGBB01
LGBB02
LGBB03
LGBB04
LGBB05
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.
MSGB01
MSGB02
MSGB03
MSGB04
MSGB05
MSGB06
MSGB07
MSGB08
MSGB09
MSGB10
MSGB11
MSGB12
MSGB13
MTAP
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.
NUMB01
NUMB02
NUMB03
NUMB04
NUMB05
OLDROM Contains a subset of ROM modules 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.
OSDCNF
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.
PADMAN2
PATAD
PCDVDFSV
PCDVDMAN
PDEV9
PEESYNC
PFILEIO
PFLASH
PFLSLOAD
PHDD
PHDDLOAD
PIOMAN
PIOPRP
PLIBSD
PLOADCORE
PLOADFILE
PMCMAN
PMCSERV
PMODHSYN
PMODLOAD
PMODMIDI
PMODSESQ
PMTAPMAN
POWEROFF
PPADMAN
PRMMAN2
PROMDRV
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
PS1VER
PS1VERA
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.
PSDRDRV
PSIFCMD
PSIFMAN
PSIO2MAN
PSTDIO
PSXVER
PSYSCLIB
PSYSMEM
PTHREADMAN
PTIMEMANI
PXATAPI ATAPI driver for the (the DVD writer of the) PSX. TXATAPI is used by TESTMODE of the PSX.
PXFROMMAN
RDRAM Provides a RDRAM test for the EE at power-on. This is run from RESET.
RDRAM1
RDRAM2
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.
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.
SDRDRV
SECRMAN Security Manager. Signing is NOT done with the one in ROM, but with a special version that comes with the utility discs. Debug stations , TOOL, and PS3 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.
SIO2D
SIO2MAN SIO2 manager. Provides access to the SIO2 interface.
SNDBOOTB
SNDBOOTH
SNDBOOTS
SNDCLOKS
SNDIMAGE Sound image. Contains sounds for the OSDSYS of the SCPH-18000 and newer.
SNDLOGOS
SNDOSDDB
SNDOSDDH
SNDRCLKS
SNDTM60S
SNDTNNLS
SNDWARNS
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.
SSDATA
SSND
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.
TDEV9
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.
TEXBARRW
TEXBBTTN
TEXBCDPB
TEXBCPAR
TEXBICHI
TEXBNAV1
TEXBNAV2
TEXBOVAL
TEXCBINV
TEXCBLUR
TEXCBUMP
TEXCFLOW
TEXCKABE
TEXCKLFN
TEXCKLFP
TEXCKLGN
TEXCKLGP
TEXCMARU
TEXCNAVI
TEXCREFA
TEXCSMOK
TEXCSTSL
TEXIMAGE Texture image. Contains textures for the OSDSYS of the SCPH-18000 and newer.
TEXOBLP
TEXOBLPR
TEXOCRBL
TEXOCRLE
TEXOFLAR
TEXOFOG0
TEXOFOG1
TEXOFOG2
TEXOFOG3
TEXOFOG4
TEXOPNGD
TEXOPNGE
TEXOPNGF
TEXOPNGG
TEXOPNGI
TEXOPNGP
TEXOPNGS
TEXOREF
TEXOSCE
TEXOWAL0
THMON Simple THread MONitor. Exists only in the late TOOL's ROM.
THPERF
THREADMAN IOP thread manager.
TIMEMANI Timer Manager (IOP mode)
TIMEMANP Timer Manager (PS mode)
TIOPIMG
TPADMAN
TSIO2MAN
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.
USBD
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. File store per title ID settings. OSDSYS call XPARAM to check ID list for currently executed game/app. If ID is found on list, settings/flags are applied.
XPARAM2 Updated module that seems to be used only in PS3. File store per title ID settings. OSDSYS call XPARAM2 to check ID list for currently executed game/app. If ID is found on list, settings/flags are applied.
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.

Description source: https://gist.github.com/uyjulian/25291080f083987d3f3c134f593483c5

Known Issues

  • PS1 mode FlushCache (A0:44) is altered comparing to one from PS1 bios. New version disables DMA by zero write to DCPR for the time when function run. This isn't issue per se, but to do that function use registers t5 and t6. While temp registers should be preserved by caller if needed, there is at least 1 game that rely on them to stay intact after returning from FlushCache. Mortal Kombat Trilogy (NTSC-U). This affect every PS2 model, also PS3 emulators since they use stripped PS2 bios to run PS1 games. Solution: On PS2 patch game image, on PS3 either patch game image or bios itself.