ARMSX2 - RetroBIOS¶
Technical notes
PlayStation 2 emulator, a GPL-3.0 fork of PCSX2 that replaces the x86-64 only EE, IOP, VU and vtlb fast memory recompilers with native AArch64 ones. One tree builds the Android application com.armsx2, an iOS package, macOS, Windows and Linux on arm64, an SDL handheld frontend, and a libretro core. ref: README.md:1-24, platforms/android/app/build.gradle.kts:17-74, .github/workflows/build-all.yml:79-85
A BIOS image is required and boot stops without one: LoadBIOS returning false makes VMManager report that a PlayStation 2 BIOS is needed and return a startup failure. Only a GS dump replay skips the load. The folder is Bios under the data directory, bios by default, and on Android the setup wizard keeps it in app-private storage because the native file APIs cannot reliably open a dump off a SAF volume. ref: pcsx2/ps2/BiosTools.cpp:332-348, pcsx2/VMManager.cpp:1592-1607, pcsx2/Pcsx2Config.cpp:2498, platforms/android/app/src/main/java/kr/co/iefriends/pcsx2/NativeApp.java:82-93
Detection is by content. The scan lists the BIOS folder, keeps files between 4 and 8 MB, and accepts an image whose romdir carries a RESET entry followed by a readable ROMVER; the fifth ROMVER character gives the zone among Japan, USA, Europe, Asia, China, T10K, COH-H, Test and Free, and an EXTINFO entry supplies the serial. An image named in the configuration is opened at its own path, without the size filter. No name and no hash is matched anywhere. The image is read into the 4 MB ROM region and truncated to it, and one shorter than 2465792 bytes turns off the OSDSys parameter HLE. IsBIOSFromFd runs the same romdir test on a file descriptor, which is how the Android picker identifies a dump handed over by the storage framework. ref: pcsx2/ps2/BiosTools.cpp:16-17, pcsx2/ps2/BiosTools.cpp:80-197, pcsx2/ps2/BiosTools.cpp:258-309, pcsx2/ps2/BiosTools.cpp:350-373
Companions derive from the selected image. rom1 and rom2 are appended to the full name first, then substituted for the existing extension, so an image at ps2-0230a-20080220.bin is followed by ps2-0230a-20080220.bin.rom1 then ps2-0230a-20080220.rom1, and the open retries case-insensitively. Both regions are 4 MB here. The nvm and the mec are read at the substituted extension only; the nvm is rebuilt in memory with region and language defaults when it is missing or its config block is blank, and the mec is written back to disk as 0x00020603 when it cannot be read. ref: pcsx2/ps2/BiosTools.cpp:214-241, pcsx2/ps2/BiosTools.cpp:381-397, pcsx2/MemoryTypes.h:12-14, pcsx2/CDVD/CDVD.cpp:46-60, pcsx2/CDVD/CDVD.cpp:147-214
The network adapter opens eeprom.dat and flash.dat from the working directory, standing in a compiled-in image for the first and a card filled with 0xFF for the second. DEV9hdd.raw is the default name of the empty disk image the settings page writes, and memory cards, save states and screenshots are likewise produced by the emulator rather than read from a distribution. ref: pcsx2/DEV9/DEV9.cpp:109-160, pcsx2/DEV9/flash.cpp:8-16, pcsx2/DEV9/flash.cpp:62-86, pcsx2/DEV9/DEV9.h:31-33
An IRX named in the configuration is read into the ROM region at 0x3C0000 once the IOP reaches 0x1630. The field is empty by default and names no file of its own. ref: pcsx2/ps2/BiosTools.cpp:243-256, pcsx2/ps2/BiosTools.cpp:399-400, pcsx2/R3000AInterpreter.cpp:220
Everything under the resources folder is read at its own name from
EmuFolders::Resources, and GetOverridableResourcePath lets a copy in
UserResources take precedence. The standalone builds carry the folder with them,
the Android application unpacks it from its assets and force-refreshes the
shaders and the two game databases on update because a stale copy no longer
matches the binary. The libretro core ships as a bare shared object and reads
the same tree from
Missing resources are not uniformly survivable. A font that cannot be read fails LoadFontData, which fails ImGuiManager::Initialize and tears the GS device down, whichever renderer is running. A shader source that cannot be read fails the pipeline compile and the device with it, but only for the backend that reads it, and the renderer setting picks among OpenGL, Vulkan and, on Windows, Direct3D 11 and 12. Vulkan is the only backend the Android, iOS and libretro builds have, so its sources are the ones no session can do without. The single caught failure is the Vulkan sharpening pipeline, which turns itself off. The databases, the patch archive, the controller mappings, the sounds and the interface artwork degrade instead. ref: pcsx2/ImGui/ImGuiManager.cpp:155-160, pcsx2/ImGui/ImGuiManager.cpp:501-575, pcsx2/GS/GS.cpp:88-110, pcsx2/GS/GS.cpp:160-179, pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp:2593-2612
The Qt builds resolve a per-script interface font by filename, first under UserResources then under the resources folder, and download the first entry of the script table into UserResources/fonts when neither holds it. Only the Latin and emoji entries are shipped. ref: pcsx2-qt/Translations.cpp:312-370, pcsx2-qt/Translations.cpp:407-424, pcsx2-qt/Translations.cpp:541-549
75 files | 13 required, 62 optional | 72 in repo, 3 missing | 4 with HLE fallback
ps2-0230a-20080220.bin required in repo
PS2 BIOS image
- Path:
pcsx2/bios/ps2-0230a-20080220.bin - Size: min 4.0 MB, max 8.0 MB
- Validation: size
- Source:
pcsx2/ps2/BiosTools.cpp:16-17,pcsx2/ps2/BiosTools.cpp:80-197,pcsx2/ps2/BiosTools.cpp:258-294,pcsx2/ps2/BiosTools.cpp:332-373 - Platforms: batocera, lakka, recalbox, retroarch, retrobat, retrodeck, retropie, rocknix, romm
- Any image whose romdir holds RESET and ROMVER is accepted, whatever its name. The 4 to 8 MB range gates the folder scan; an image named in the configuration skips that range. Read into the 4 MB ROM region and truncated to it. Shorter than 2465792 bytes disables the OSDSys parameter HLE.
ps2-0230a-20080220.rom1 optional in repo
DVD player ROM
- Path:
pcsx2/bios/ps2-0230a-20080220.rom1 - Size: max 4.0 MB
- Source:
pcsx2/ps2/BiosTools.cpp:214-241,pcsx2/ps2/BiosTools.cpp:381,pcsx2/ps2/BiosTools.cpp:386-397,pcsx2/MemoryTypes.h:13 - Tried as {bios}.rom1 then {biosbase}.rom1, with a case-insensitive retry on the open. Copied to the ROM1 region and truncated to 4 MB. Logged and skipped when absent.
ps2-0230a-20080220.rom2 optional missing
Chinese ROM extension
- Path:
pcsx2/bios/ps2-0230a-20080220.rom2 - Size: max 4.0 MB
- Aliases:
SCPH-90006_BIOS_VX_HK _230.ROM2 - Source:
pcsx2/ps2/BiosTools.cpp:214-241,pcsx2/ps2/BiosTools.cpp:382,pcsx2/ps2/BiosTools.cpp:386-397,pcsx2/MemoryTypes.h:14 - Same two-step naming as rom1. Copied to the ROM2 region, which is 4 MB in this tree. Only present on Chinese region consoles.
ps2-0230a-20080220.nvm optional in repo HLE fallback
Console NVRAM
- Path:
pcsx2/bios/ps2-0230a-20080220.nvm - Size: 1.0 KB
- Source:
pcsx2/CDVD/CDVD.cpp:46-47,pcsx2/CDVD/CDVD.cpp:147-200 - Read at the BIOS path with the extension replaced by nvm. Carries the console id, the iLink id, the MAC, the model number and the OSD configuration. A 1024 byte image is built in memory when the file is absent, short, or carries a blank config block, zeroed except for a fixed iLink id and the language and region defaults of the BIOS region.
ps2-0230a-20080220.mec optional in repo HLE fallback
Mechacon version
- Path:
pcsx2/bios/ps2-0230a-20080220.mec - Size: 4 B
- Source:
pcsx2/CDVD/CDVD.cpp:60,pcsx2/CDVD/CDVD.cpp:201-214 - Read at the BIOS path with the extension replaced by mec. Defaults to 0x00020603 and is written back at that path when it cannot be read.
eeprom.dat optional in repo HLE fallback
DEV9 EEPROM
- Size: 64 B
- Source:
pcsx2/DEV9/DEV9.cpp:60,pcsx2/DEV9/DEV9.cpp:109-160 - Opened from the working directory when the network adapter starts and mapped over 64 bytes. A compiled-in image stands in when the file is missing or cannot be mapped.
flash.dat optional missing HLE fallback
DEV9 SmartMedia flash image
- Size: max 8.2 MB
- Source:
pcsx2/DEV9/flash.cpp:8-16,pcsx2/DEV9/flash.cpp:62-86 - Opened from the working directory at network adapter init and read as 1024 blocks of 16 pages of 512 bytes plus 16 ECC bytes. The card is filled with 0xFF when the file is absent, and a short read is logged.
<module>.irx optional missing
IOP module injected at boot
- Source:
pcsx2/ps2/BiosTools.cpp:243-256,pcsx2/ps2/BiosTools.cpp:399-400,pcsx2/R3000AInterpreter.cpp:220,pcsx2/Config.h:1601 - Config key:
EmuCore/CurrentIRX - Read into the ROM region at 0x3C0000 when the IOP program counter reaches 0x1630 and the setting is longer than three characters. Empty by default.
GameIndex.yaml optional in repo bundled
Game database
- Path:
pcsx2/resources/GameIndex.yaml - Source:
pcsx2/GameDatabase.cpp:43,pcsx2/GameDatabase.cpp:1205-1210 - Platforms: lakka, retroarch, retropie
- Read from the resources folder, keyed by serial, carrying the per-game fixes, patches and settings overrides. Parsed once on first lookup.
armsx2_overrides.yaml optional in repo bundled
Mobile GPU game database overlay
- Path:
pcsx2/resources/armsx2_overrides.yaml - Source:
pcsx2/GameDatabase.cpp:50,pcsx2/GameDatabase.cpp:1211-1214,cmake/BuildParameters.cmake:186-200,pcsx2/CMakeLists.txt:1441-1451,platforms/android/app/build.gradle.kts:40-48 - Second pass over the game database, merged onto the entries GameIndex.yaml declares. Carries GS and JIT tuning correct on tiler GPUs. Kept outside the shipped resources folder and copied in only for arm64 Linux, Android and iOS; the loader no-ops where it is absent.
RedumpDatabase.yaml optional in repo bundled
Disc track hash database
- Path:
pcsx2/resources/RedumpDatabase.yaml - Source:
pcsx2/GameDatabase.cpp:1278,pcsx2/GameDatabase.cpp:1328-1345,pcsx2-qt/Settings/GameSummaryWidget.cpp:322 - Loaded on the first hash lookup and used to tell the user whether a dump matches a known good one. Read by the Qt game summary page.
patches.zip optional in repo bundled
Game patch archive
- Path:
pcsx2/resources/patches.zip - Source:
pcsx2/Patch.cpp:118,pcsx2/Patch.cpp:290-318,pcsx2/Patch.cpp:425-435,.github/workflows/linux_build_qt.yml:33 - Per-game pnach entries matched on serial and disc CRC. The patches and cheats folders take precedence over the archive. Fetched from the pcsx2_patches releases at build time for the desktop builds and committed for Android and iOS.
game_controller_db.txt optional in repo bundled
SDL controller mapping database
- Path:
pcsx2/resources/game_controller_db.txt - Source:
pcsx2/Input/SDLInputSource.cpp:24,pcsx2/Input/SDLInputSource.cpp:614-627 - A copy in the data root wins, then the resources folder, and the path is handed to SDL as a hint. SDL falls back to its built-in mappings when neither exists.
Roboto-Regular.ttf required in repo bundled
Interface font
- Path:
pcsx2/resources/fonts/Roboto-Regular.ttf - Source:
pcsx2/ImGui/ImGuiManager.cpp:501-523,pcsx2/ImGui/ImGuiManager.cpp:155-160,pcsx2/GS/GS.cpp:160-179 - Seeded as the standard font when no language layer supplied one, which is always the case on Android. LoadFontData fails without it and the GS device is torn down.
RobotoMono-Medium.ttf required in repo bundled
Fixed-width interface font
- Path:
pcsx2/resources/fonts/RobotoMono-Medium.ttf - Source:
pcsx2/ImGui/ImGuiManager.cpp:544-552,pcsx2/ImGui/FullscreenUI_Settings.cpp:3417 - Read for the fixed-width font. LoadFontData fails without it. Also the initial path the fullscreen interface offers when picking a custom OSD font.
fa-solid-900.ttf required in repo bundled
Font Awesome icon font
- Path:
pcsx2/resources/fonts/fa-solid-900.ttf - Source:
pcsx2/ImGui/ImGuiManager.cpp:554-562 - Read for the interface icon glyphs. LoadFontData fails without it.
promptfont.otf required in repo bundled
Controller prompt font
- Path:
pcsx2/resources/fonts/promptfont.otf - Source:
pcsx2/ImGui/ImGuiManager.cpp:564-572 - Read for the controller button glyphs. LoadFontData fails without it.
Twemoji.Mozilla.ttf optional in repo bundled
Emoji font
- Path:
pcsx2/resources/fonts/Twemoji.Mozilla.ttf - Source:
pcsx2-qt/Translations.cpp:340-347,pcsx2-qt/Translations.cpp:407-424,pcsx2-qt/Translations.cpp:541-549 - First entry of the emoji script table, resolved under UserResources then the resources folder and downloaded into UserResources/fonts when neither holds it.
NotoColorEmoji-Regular.ttf optional in repo bundled
Android emoji font
- Path:
pcsx2/resources/fonts/NotoColorEmoji-Regular.ttf - Source:
platforms/android/app/src/main/assets/resources/fonts/NotoColorEmoji-Regular.ttf,platforms/android/app/src/main/java/com/armsx2/ui/emulation/EmulationMenuScreen.kt:507 - Committed under the Android asset tree and unpacked with the rest of the resources folder. Rendered by the Compose interface.
NotoSansJP-Regular.ttf optional in repo
Japanese interface font
- Path:
pcsx2/resources/fonts/NotoSansJP-Regular.ttf - Source:
pcsx2-qt/Translations.cpp:354-360,pcsx2-qt/Translations.cpp:407-424,pcsx2-qt/Translations.cpp:541-549 - First entry of the Japanese script table. Resolved under UserResources then the resources folder, and downloaded into UserResources/fonts when the interface language needs it and neither holds it. Not shipped.
NotoSansKR-Regular.ttf optional in repo
Korean interface font
- Path:
pcsx2/resources/fonts/NotoSansKR-Regular.ttf - Source:
pcsx2-qt/Translations.cpp:361-367,pcsx2-qt/Translations.cpp:407-424,pcsx2-qt/Translations.cpp:541-549 - Same resolution and download path as the Japanese font. Not shipped.
NotoSansSC-Regular.ttf optional in repo
Simplified Chinese interface font
- Path:
pcsx2/resources/fonts/NotoSansSC-Regular.ttf - Source:
pcsx2-qt/Translations.cpp:320-326,pcsx2-qt/Translations.cpp:407-424,pcsx2-qt/Translations.cpp:541-549 - Same resolution and download path as the Japanese font. Not shipped.
NotoSansTC-Regular.ttf optional in repo
Traditional Chinese interface font
- Path:
pcsx2/resources/fonts/NotoSansTC-Regular.ttf - Source:
pcsx2-qt/Translations.cpp:327-333,pcsx2-qt/Translations.cpp:407-424,pcsx2-qt/Translations.cpp:541-549 - Same resolution and download path as the Japanese font. Not shipped.
NotoSansArabic-Regular.ttf optional in repo
Arabic interface font
- Path:
pcsx2/resources/fonts/NotoSansArabic-Regular.ttf - Source:
pcsx2-qt/Translations.cpp:314-319,pcsx2-qt/Translations.cpp:407-424,pcsx2-qt/Translations.cpp:541-549 - Same resolution and download path as the Japanese font. Not shipped.
NotoSansHebrew-Regular.ttf optional in repo
Hebrew interface font
- Path:
pcsx2/resources/fonts/NotoSansHebrew-Regular.ttf - Source:
pcsx2-qt/Translations.cpp:348-353,pcsx2-qt/Translations.cpp:407-424,pcsx2-qt/Translations.cpp:541-549 - Same resolution and download path as the Japanese font. Not shipped.
NotoSansDevanagari-Regular.ttf optional in repo
Devanagari interface font
- Path:
pcsx2/resources/fonts/NotoSansDevanagari-Regular.ttf - Source:
pcsx2-qt/Translations.cpp:334-339,pcsx2-qt/Translations.cpp:407-424,pcsx2-qt/Translations.cpp:541-549 - Same resolution and download path as the Japanese font. Not shipped.
tfx.glsl required in repo bundled
Vulkan texture function shader
- Path:
pcsx2/resources/shaders/vulkan/tfx.glsl - Source:
pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp:2568,pcsx2/GS/Renderers/Common/GSDevice.cpp:422-425 - Compiled at device creation. The Vulkan backend is the only one the Android, iOS and libretro builds use, and a source that cannot be read fails the pipeline compile and the device with it.
convert.glsl required in repo bundled
Vulkan conversion shader
- Path:
pcsx2/resources/shaders/vulkan/convert.glsl - Source:
pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp:5521-5527,pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp:5877
present.glsl required in repo bundled
Vulkan presentation shader
- Path:
pcsx2/resources/shaders/vulkan/present.glsl - Source:
pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp:5706
merge.glsl required in repo bundled
Vulkan merge shader
- Path:
pcsx2/resources/shaders/vulkan/merge.glsl - Source:
pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp:5807
interlace.glsl required in repo bundled
Vulkan interlace shader
- Path:
pcsx2/resources/shaders/vulkan/interlace.glsl - Source:
pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp:5756
shadeboost.glsl required in repo bundled
Vulkan shade boost shader
- Path:
pcsx2/resources/shaders/vulkan/shadeboost.glsl - Source:
pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp:5857,pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp:5911-5917,pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp:2593-2598 - Compiled by the post-processing pass, which runs unconditionally in the device creation chain, so a source that cannot be read fails the device.
cas.glsl optional in repo bundled
Vulkan contrast adaptive sharpening shader
- Path:
pcsx2/resources/shaders/vulkan/cas.glsl - Source:
pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp:5963,pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp:2606-2612 - Includes ffx_a.h and ffx_cas.h. The only shader whose compile failure is caught: sharpening is turned off and device creation carries on, because older Adreno compilers reject the compute pipeline.
imgui.glsl required in repo bundled
Vulkan interface shader
- Path:
pcsx2/resources/shaders/vulkan/imgui.glsl - Source:
pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp:5989
fxaa.fx required in repo bundled
FXAA shader, shared by every backend
- Path:
pcsx2/resources/shaders/common/fxaa.fx - Source:
pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp:5884,pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp:607,pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp:2805-2813,pcsx2/GS/Renderers/DX11/GSDevice11.cpp:1933-1940 - Compiled by the Vulkan and OpenGL post-processing passes as part of device creation, so the device fails without it. The Direct3D backends compile it lazily on first use and only lose the effect.
ffx_a.h optional in repo bundled
FidelityFX helper header
- Path:
pcsx2/resources/shaders/common/ffx_a.h - Source:
pcsx2/GS/Renderers/Common/GSDevice.cpp:1481-1488 - Read as a source file and substituted for the include line of the sharpening shader before compilation.
ffx_cas.h optional in repo bundled
FidelityFX CAS header
- Path:
pcsx2/resources/shaders/common/ffx_cas.h - Source:
pcsx2/GS/Renderers/Common/GSDevice.cpp:1481-1488 - Substituted the same way as ffx_a.h.
tfx_vgs.glsl optional in repo bundled
OpenGL texture function vertex and geometry shader
- Path:
pcsx2/resources/shaders/opengl/tfx_vgs.glsl - Source:
pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp:749-753,pcsx2/GS/GS.cpp:88-110 - The OpenGL backend is one of three the renderer setting selects, and it is what an Android device falls back to when Vulkan is not chosen. Its device creation fails without this source; a Vulkan session is unaffected.
tfx_fs.glsl optional in repo bundled
OpenGL texture function fragment shader
- Path:
pcsx2/resources/shaders/opengl/tfx_fs.glsl - Source:
pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp:749-753 - Read with tfx_vgs.glsl; the OpenGL device fails without it.
convert.glsl optional in repo bundled
OpenGL conversion shader
- Path:
pcsx2/resources/shaders/opengl/convert.glsl - Source:
pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp:441-447 - The OpenGL device fails without it.
present.glsl optional in repo bundled
OpenGL presentation shader
- Path:
pcsx2/resources/shaders/opengl/present.glsl - Source:
pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp:527-532 - The OpenGL device fails without it.
merge.glsl optional in repo bundled
OpenGL merge shader
- Path:
pcsx2/resources/shaders/opengl/merge.glsl - Source:
pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp:563-568 - The OpenGL device fails without it.
interlace.glsl optional in repo bundled
OpenGL interlace shader
- Path:
pcsx2/resources/shaders/opengl/interlace.glsl - Source:
pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp:586-591 - The OpenGL device fails without it.
shadeboost.glsl optional in repo bundled
OpenGL shade boost shader
- Path:
pcsx2/resources/shaders/opengl/shadeboost.glsl - Source:
pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp:607-608,pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp:3060-3066 - Compiled with the FXAA program in the OpenGL device creation chain, so that device fails without it.
cas.glsl optional in repo bundled
OpenGL contrast adaptive sharpening shader
- Path:
pcsx2/resources/shaders/opengl/cas.glsl - Source:
pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp:3251,pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp:610-615 - A desktop GL compute shader, gated away from GL ES contexts because feeding it to an ES compiler crashes some drivers.
imgui.glsl optional in repo bundled
OpenGL interface shader
- Path:
pcsx2/resources/shaders/opengl/imgui.glsl - Source:
pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp:709-710,pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp:3309-3316 - The OpenGL device fails without it.
tfx.fx optional in repo bundled
Direct3D texture function shader
- Path:
pcsx2/resources/shaders/dx11/tfx.fx - Source:
pcsx2/GS/Renderers/DX11/GSDevice11.cpp:215-218,pcsx2/GS/Renderers/DX12/GSDevice12.cpp:967,platforms/android/app/build.gradle.kts:40-47 - Read by the Direct3D 11 and Direct3D 12 backends of the Windows on arm64 build, whose devices fail without it. The Android asset step drops the dx11 folder because the mobile backends never compile it.
convert.fx optional in repo bundled
Direct3D conversion shader
- Path:
pcsx2/resources/shaders/dx11/convert.fx - Source:
pcsx2/GS/Renderers/DX11/GSDevice11.cpp:229-231,pcsx2/GS/Renderers/DX12/GSDevice12.cpp:2827 - The Direct3D devices fail without it.
present.fx optional in repo bundled
Direct3D presentation shader
- Path:
pcsx2/resources/shaders/dx11/present.fx - Source:
pcsx2/GS/Renderers/DX11/GSDevice11.cpp:265,pcsx2/GS/Renderers/DX12/GSDevice12.cpp:2971 - The Direct3D devices fail without it.
merge.fx optional in repo bundled
Direct3D merge shader
- Path:
pcsx2/resources/shaders/dx11/merge.fx - Source:
pcsx2/GS/Renderers/DX11/GSDevice11.cpp:317,pcsx2/GS/Renderers/DX12/GSDevice12.cpp:3050 - The Direct3D devices fail without it.
interlace.fx optional in repo bundled
Direct3D interlace shader
- Path:
pcsx2/resources/shaders/dx11/interlace.fx - Source:
pcsx2/GS/Renderers/DX11/GSDevice11.cpp:352,pcsx2/GS/Renderers/DX12/GSDevice12.cpp:3014 - The Direct3D devices fail without it.
shadeboost.fx optional in repo bundled
Direct3D shade boost shader
- Path:
pcsx2/resources/shaders/dx11/shadeboost.fx - Source:
pcsx2/GS/Renderers/DX11/GSDevice11.cpp:372,pcsx2/GS/Renderers/DX12/GSDevice12.cpp:3120
cas.hlsl optional in repo bundled
Direct3D contrast adaptive sharpening shader
- Path:
pcsx2/resources/shaders/dx11/cas.hlsl - Source:
pcsx2/GS/Renderers/DX11/GSDevice11.cpp:2259,pcsx2/GS/Renderers/DX12/GSDevice12.cpp:2299 - Includes ffx_a.h and ffx_cas.h.
imgui.fx optional in repo bundled
Direct3D interface shader
- Path:
pcsx2/resources/shaders/dx11/imgui.fx - Source:
pcsx2/GS/Renderers/DX11/GSDevice11.cpp:2309-2313,pcsx2/GS/Renderers/DX12/GSDevice12.cpp:2327 - The Direct3D devices fail without it.
message.wav optional in repo bundled
Achievement notification sound
- Path:
pcsx2/resources/sounds/achievements/message.wav - Source:
pcsx2/Achievements.cpp:68,pcsx2/Achievements.cpp:1275-1281,pcsx2/Achievements.cpp:1525 - Played from the resources folder when the achievement information sound is enabled and no custom sound is set.
unlock.wav optional in repo bundled
Achievement unlock sound
- Path:
pcsx2/resources/sounds/achievements/unlock.wav - Source:
pcsx2/Achievements.cpp:69,pcsx2/Achievements.cpp:1275-1281,pcsx2/Achievements.cpp:1578
lbsubmit.wav optional in repo bundled
Leaderboard submission sound
- Path:
pcsx2/resources/sounds/achievements/lbsubmit.wav - Source:
pcsx2/Achievements.cpp:70,pcsx2/Achievements.cpp:1275-1281,pcsx2/Achievements.cpp:1672
placeholder.png optional in repo bundled
Fullscreen interface placeholder texture
- Path:
pcsx2/resources/fullscreenui/placeholder.png - Source:
pcsx2/ImGui/FullscreenUI.cpp:335 - Named as the placeholder texture when the fullscreen interface initialises.
no-save.png optional in repo bundled
Empty save slot texture
- Path:
pcsx2/resources/fullscreenui/no-save.png - Source:
pcsx2/ImGui/ImGuiOverlays.cpp:1664
media-cdrom.svg optional in repo bundled
Game list menu icon
- Path:
pcsx2/resources/fullscreenui/media-cdrom.svg - Source:
pcsx2/ImGui/FullscreenUI.cpp:1367,pcsx2/ImGui/FullscreenUI.cpp:3483
start-game.svg optional in repo bundled
Start game menu icon
- Path:
pcsx2/resources/fullscreenui/start-game.svg - Source:
pcsx2/ImGui/FullscreenUI.cpp:1373
applications-system.svg optional in repo bundled
Settings menu icon
- Path:
pcsx2/resources/fullscreenui/applications-system.svg - Source:
pcsx2/ImGui/FullscreenUI.cpp:1380,pcsx2/ImGui/FullscreenUI.cpp:3478
exit.svg optional in repo bundled
Exit menu icon
- Path:
pcsx2/resources/fullscreenui/exit.svg - Source:
pcsx2/ImGui/FullscreenUI.cpp:1386,pcsx2/ImGui/FullscreenUI.cpp:1519
start-file.svg optional in repo bundled
Start file menu icon
- Path:
pcsx2/resources/fullscreenui/start-file.svg - Source:
pcsx2/ImGui/FullscreenUI.cpp:1443
drive-cdrom.svg optional in repo bundled
Start disc menu icon
- Path:
pcsx2/resources/fullscreenui/drive-cdrom.svg - Source:
pcsx2/ImGui/FullscreenUI.cpp:1449
start-bios.svg optional in repo bundled
Start BIOS menu icon
- Path:
pcsx2/resources/fullscreenui/start-bios.svg - Source:
pcsx2/ImGui/FullscreenUI.cpp:1455
back-icon.svg optional in repo bundled
Back menu icon
- Path:
pcsx2/resources/fullscreenui/back-icon.svg - Source:
pcsx2/ImGui/FullscreenUI.cpp:1461,pcsx2/ImGui/FullscreenUI.cpp:1511
desktop-mode.svg optional in repo bundled
Desktop mode menu icon
- Path:
pcsx2/resources/fullscreenui/desktop-mode.svg - Source:
pcsx2/ImGui/FullscreenUI.cpp:1527
AppBanner.svg optional in repo bundled
Application banner
- Path:
pcsx2/resources/icons/AppBanner.svg - Source:
pcsx2/ImGui/FullscreenUI.cpp:762
AppIconLarge.png optional in repo bundled
Application icon
- Path:
pcsx2/resources/icons/AppIconLarge.png - Source:
pcsx2/ImGui/FullscreenUI.cpp:1291,pcsx2-qt/SetupWizardDialog.cpp:165,pcsx2-qt/QtUtils.cpp:843 - Drawn by the fullscreen interface, shown by the Qt setup wizard, and copied out when a desktop entry is written.
AppIconLarge.ico optional in repo bundled
Windows application icon
- Path:
pcsx2/resources/icons/AppIconLarge.ico - Source:
pcsx2-qt/QtUtils.cpp:755 - Read next to the program when a shortcut is written.
ra-icon.svg optional in repo bundled
RetroAchievements icon
- Path:
pcsx2/resources/icons/ra-icon.svg - Source:
pcsx2/ImGui/FullscreenUI_Settings.cpp:4388,pcsx2-qt/SetupWizardDialog.cpp:428,pcsx2-qt/Settings/AchievementLoginDialog.cpp:21
star-<rating>.svg optional in repo bundled
Compatibility rating icons
- Path:
pcsx2/resources/icons/ - Source:
pcsx2/ImGui/FullscreenUI.cpp:767,pcsx2-qt/GameList/GameListModel.cpp:529 - Six files, star-0.svg through star-5.svg, named from the compatibility rating of the entry.
<region>.svg optional in repo bundled
Region flag icons
- Path:
pcsx2/resources/icons/flags/ - Source:
pcsx2/ImGui/FullscreenUI.cpp:2842 - Forty-eight files, named from the region of the entry through RegionToFlagFilename.
cover-placeholder.png optional in repo bundled
Game list cover placeholder
- Path:
pcsx2/resources/cover-placeholder.png - Source:
pcsx2-qt/GameList/GameListModel.cpp:531
Generated on 2026-08-23T16:12:06Z