mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-10 13:33:24 -05:00
683 lines
36 KiB
YAML
683 lines
36 KiB
YAML
emulator: EmuCoreX
|
|
type: standalone
|
|
core_classification: community_fork
|
|
source: "https://github.com/sashkinbro/EmuCoreX"
|
|
upstream: "https://github.com/PCSX2/pcsx2"
|
|
author: "Oleksandr (sashkinbro)"
|
|
profiled_date: "2026-10-04"
|
|
source_commit: "9884c9f9a0c5d5df2f0c0c064ec41029a4528d72"
|
|
upstream_commit: "c10a5c9ad951c517dc48b722b5b84eb9bf7fdb42"
|
|
core_version: "0.4.7"
|
|
display_name: "Sony - PlayStation 2 (EmuCoreX)"
|
|
cores:
|
|
- emucorex
|
|
systems:
|
|
- sony-playstation-2
|
|
mode: standalone
|
|
|
|
bios_directory: "bios/"
|
|
resources_directory: "resources/"
|
|
|
|
notes: |
|
|
PlayStation 2 emulator for Android, package com.sbro.emucorex, arm64-v8a only,
|
|
minSdk 29. A Kotlin and Compose front end drives a PCSX2 tree vendored under
|
|
app/src/main/cpp/pcsx2 and pinned to v2.8.0, reached through the ARM_ANDROID
|
|
adapter that owns the JNI entry points. Frontends start the exported activity
|
|
com.sbro.emucorex.MainActivity; ES-DE passes the disc as the intent data URI.
|
|
ref: app/build.gradle.kts:66-70, app/build.gradle.kts:97,
|
|
app/src/main/AndroidManifest.xml:90-104,
|
|
app/src/main/cpp/ARM_ANDROID/CMakeLists.txt:78-82,
|
|
app/src/main/cpp/ARM_ANDROID/CMakeLists.txt:359-360
|
|
|
|
The whole upstream core is linked, with three files swapped out of the target:
|
|
Achievements.cpp, Host/SDLAudioStream.cpp and Input/SDLInputSource.cpp are
|
|
removed and replaced by the adapter's own achievements, AAudio and OpenSL, and
|
|
input sources. OpenGL and Vulkan are on, pcsx2-qt is never added, and the
|
|
DX11 and DX12 renderers sit in the Windows branch of the core CMakeLists.
|
|
ref: app/src/main/cpp/ARM_ANDROID/CMakeLists.txt:259-272,
|
|
app/src/main/cpp/ARM_ANDROID/CMakeLists.txt:59-60,
|
|
app/src/main/cpp/pcsx2/pcsx2/CMakeLists.txt:706,
|
|
app/src/main/cpp/pcsx2/pcsx2/CMakeLists.txt:723-734
|
|
|
|
Storage. The data root is the app files directory; the app creates cache,
|
|
resources, inis, sstates and memcards under it, then copies the whole resources
|
|
asset tree out of the package into resources. The core is handed AppRoot,
|
|
DataRoot, Resources, Settings and Cache from that root, and the launcher sets
|
|
Folders for Bios, Savestates, MemoryCards, Textures, Cheats, Patches and Logs
|
|
per run.
|
|
ref: app/src/main/java/com/sbro/emucorex/core/NativeApp.kt:30,
|
|
app/src/main/java/com/sbro/emucorex/core/NativeApp.kt:430-432,
|
|
app/src/main/java/com/sbro/emucorex/core/NativeApp.kt:563-570,
|
|
app/src/main/java/com/sbro/emucorex/core/NativeApp.kt:587-619,
|
|
app/src/main/cpp/ARM_ANDROID/src/runtime/upstream_vm_bridge.cpp:261-265,
|
|
app/src/main/java/com/sbro/emucorex/core/EmulatorBridge.kt:612-618
|
|
|
|
A BIOS image is required and boot stops without one: LoadBIOS returning false
|
|
makes VMManager report that a PlayStation 2 BIOS is needed. Only a GS dump
|
|
replay skips the load. Detection is by content: the folder scan keeps files
|
|
between 2 and 8 MB and accepts an image whose romdir carries a RESET entry
|
|
followed by a readable ROMVER, the fifth ROMVER character giving the zone among
|
|
Japan, USA, Europe, Asia, China, T10K, COH-H, Test and Free, with EXTINFO
|
|
supplying the serial. An image named in the configuration is opened at its own
|
|
path without the size filter. No hash is matched, and a console image is
|
|
matched under no name.
|
|
|
|
MIN_BIOS_SIZE was halved to 2 MB to admit the Namco System 246/256 chip dumps,
|
|
which are 2 MB where a console image is 4. Three other changes came with it:
|
|
a COH-H board is region 11 rather than 8, its description is built from the
|
|
EXTINFO serial because Sony left the version and date fields identical across
|
|
those BIOSes, and the ROM window is zero-filled before the read so the unused
|
|
upper half cannot retain the previous image.
|
|
ref: app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:16-17,
|
|
app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:80-217,
|
|
app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:150-151 (COH-H region),
|
|
app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:176-190 (serial description),
|
|
app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:278-314,
|
|
app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:337-391,
|
|
app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:365-367 (ROM window cleared),
|
|
app/src/main/cpp/pcsx2/pcsx2/VMManager.cpp:1898-1912
|
|
|
|
An arcade launch starts from a manifest carrying an NM game id and a board
|
|
generation. It selects the board BIOS by name from the BIOS folder,
|
|
r27v1602f.8g for System 256 and Super 256 and r27v1602f.7d for System 246, and
|
|
keeps the configured BIOS with a warning when that file is absent. The dongle,
|
|
memory card, boot ELF, SRAM and media the manifest names are per-title content
|
|
resolved beside it.
|
|
ref: app/src/main/cpp/pcsx2/pcsx2/VMManager.cpp:1530-1598,
|
|
app/src/main/cpp/pcsx2/pcsx2/VMManager.cpp:1608-1733
|
|
|
|
The app runs its own gate before launching. A candidate is a .bin, .rom, .7d
|
|
or .8g between 512 KB and 8 MB. It passes when the core's IsBIOS accepts it,
|
|
reached through isBiosPath on the path or isBiosFd on /proc/self/fd, or when
|
|
its name carries scph, ps2, bios, rom or r27v1602f. The two extra extensions
|
|
are the board positions the Namco dumps carry instead of a conventional one.
|
|
ref: app/src/main/java/com/sbro/emucorex/core/BiosValidator.kt:13-21,
|
|
app/src/main/java/com/sbro/emucorex/core/BiosValidator.kt:112-146,
|
|
app/src/main/java/com/sbro/emucorex/core/BiosValidator.kt:177-185,
|
|
app/src/main/cpp/ARM_ANDROID/src/jni/native_app_jni.cpp:493-515
|
|
|
|
A BIOS folder picked through the storage access framework is copied flat into
|
|
imported-bios under the external files directory, and Folders/Bios points there.
|
|
The import filter takes any .bin, .rom, .7d or .8g, plus .mec, .nvm and .elf
|
|
whose name carries one of the hints. Neither rom1 nor rom2 is an accepted
|
|
extension, and LoadExtraRom looks for exactly {bios}.rom1 or {biosbase}.rom1,
|
|
so the two ROM modules only reach the core when Folders/Bios is a plain
|
|
filesystem path used as-is. A re-import preserves the .nvm and .mec sitting
|
|
beside the image.
|
|
ref: app/src/main/java/com/sbro/emucorex/core/DocumentPathResolver.kt:26-28,
|
|
app/src/main/java/com/sbro/emucorex/core/DocumentPathResolver.kt:104-157,
|
|
app/src/main/java/com/sbro/emucorex/core/DocumentPathResolver.kt:430-452,
|
|
app/src/main/java/com/sbro/emucorex/core/DocumentPathResolver.kt:497-502,
|
|
app/src/main/java/com/sbro/emucorex/core/DocumentPathResolver.kt:556-563
|
|
|
|
Much of the bundled resource tree is compiled out on this platform and never
|
|
read. ImGuiManager::Initialize returns false before creating the ImGui context,
|
|
so LoadFontData and the three fonts it reads are unreachable, and SetFonts and
|
|
ReloadFonts both guard on that context. InitializeFullscreenUI returns false
|
|
unconditionally, so FullscreenUI::Initialize never runs and nothing under
|
|
fullscreenui or icons is loaded. The adapter reads two fonts of its own instead
|
|
and hands them over through SetFonts.
|
|
ref: app/src/main/cpp/pcsx2/pcsx2/ImGui/ImGuiManager.cpp:131-146,
|
|
app/src/main/cpp/pcsx2/pcsx2/ImGui/ImGuiManager.cpp:148-152,
|
|
app/src/main/cpp/pcsx2/pcsx2/ImGui/ImGuiManager.cpp:163,
|
|
app/src/main/cpp/pcsx2/pcsx2/ImGui/ImGuiManager.cpp:224-229,
|
|
app/src/main/cpp/pcsx2/pcsx2/ImGui/ImGuiManager.cpp:296-316,
|
|
app/src/main/cpp/pcsx2/pcsx2/ImGui/ImGuiManager.cpp:483-536,
|
|
app/src/main/cpp/ARM_ANDROID/src/runtime/upstream_vm_bridge.cpp:384-412,
|
|
app/src/main/cpp/ARM_ANDROID/src/runtime/upstream_vm_bridge.cpp:437
|
|
|
|
The three achievement sounds are the one resource the code reads that the tree
|
|
does not carry. Their directory holds only the README naming their origin,
|
|
while upstream v2.8.0 ships message.wav at 15696 bytes, lbsubmit.wav at 82096
|
|
and unlock.wav at 202702. All four sound settings default on, so a signed-in
|
|
session asks for them at every notification.
|
|
ref: app/src/main/cpp/pcsx2/bin/resources/sounds/achievements/README.txt:1-3,
|
|
app/src/main/cpp/ARM_ANDROID/src/integration/pcsx2_achievements_android.cpp:81-83,
|
|
app/src/main/cpp/pcsx2/pcsx2/Config.h:1371-1374,
|
|
app/src/main/cpp/pcsx2/pcsx2/Pcsx2Config.cpp:1963-1966
|
|
|
|
files:
|
|
- name: ps2-0230a-20080220.bin
|
|
path: bios/ps2-0230a-20080220.bin
|
|
system: sony-playstation-2
|
|
agnostic: true
|
|
required: true
|
|
min_size: 2097152
|
|
max_size: 8388608
|
|
validation: [size]
|
|
description: "PS2 BIOS image"
|
|
note: >-
|
|
Any image whose romdir holds RESET and ROMVER is accepted, whatever its
|
|
name. The 2 to 8 MB range gates the folder scan; an image named in the
|
|
configuration skips that range. Read into the 4 MB ROM region, which is
|
|
zero-filled first, and truncated to it. Shorter than 2465792 bytes disables
|
|
the OSDSys parameter HLE.
|
|
source_ref: "app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:16-17, app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:80-217, app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:278-314, app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:337-391"
|
|
|
|
- name: r27v1602f.7d
|
|
path: bios/r27v1602f.7d
|
|
system: sony-playstation-2
|
|
agnostic: true
|
|
required: false
|
|
size: 2097152
|
|
md5: 52cca0058626569c7a9699838baab2d8
|
|
sha1: f0a74bbcaf801f3fd0b7002ebd0118564aae3528
|
|
crc32: 2b2e41a2
|
|
description: "Namco System 246 COH-H BIOS chip dump"
|
|
note: >-
|
|
Admitted since MIN_BIOS_SIZE fell to 2 MB. The board position is the
|
|
extension, so the picker takes .7d alongside .bin and .rom, and the name
|
|
hint r27v1602f carries it past the name test. Read into the 4 MB ROM
|
|
window, whose upper half is cleared first. ROMVER marks it T with a fifth
|
|
character Z, which is what makes it COH-H and region 11; its description
|
|
comes from the EXTINFO serial. A System 246 arcade manifest selects this
|
|
name from the BIOS folder. Byte-identical to the r27v1602f.7d member of the
|
|
MAME sys246 set.
|
|
source_ref: "app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:16-17, app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:150-151, app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:176-190, app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:365-367, app/src/main/cpp/pcsx2/pcsx2/VMManager.cpp:1590-1598, app/src/main/java/com/sbro/emucorex/core/BiosValidator.kt:13-21"
|
|
|
|
- name: r27v1602f.8g
|
|
path: bios/r27v1602f.8g
|
|
system: sony-playstation-2
|
|
agnostic: true
|
|
required: false
|
|
size: 2097152
|
|
md5: a58676c6bd79229bda967d07b4ec2e16
|
|
sha1: bc4fb4e1e53adbd92385f1726bd69663ff870f1e
|
|
crc32: b2a8eeb6
|
|
description: "Namco System 256 COH-H BIOS chip dump"
|
|
note: >-
|
|
The System 256 counterpart, taken by the same path and the same widened
|
|
size gate. A System 256 or Super 256 arcade manifest selects this name
|
|
from the BIOS folder. Byte-identical to the r27v1602f.8g member of the
|
|
MAME sys256 set.
|
|
source_ref: "app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:16-17, app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:150-151, app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:176-190, app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:365-367, app/src/main/cpp/pcsx2/pcsx2/VMManager.cpp:1590-1598, app/src/main/java/com/sbro/emucorex/core/BiosValidator.kt:13-21"
|
|
|
|
- name: ps2-0230a-20080220.rom1
|
|
path: bios/ps2-0230a-20080220.rom1
|
|
system: sony-playstation-2
|
|
required: false
|
|
max_size: 4194304
|
|
description: "DVD player ROM"
|
|
note: >-
|
|
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. The storage access framework import does not carry
|
|
this extension, so it is reachable only from a plain BIOS folder path.
|
|
source_ref: "app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:234-261, app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:388, app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:393-403, app/src/main/java/com/sbro/emucorex/core/DocumentPathResolver.kt:26-28, app/src/main/java/com/sbro/emucorex/core/DocumentPathResolver.kt:497-502"
|
|
|
|
- name: ps2-0230a-20080220.rom2
|
|
aliases:
|
|
- "SCPH-90006_BIOS_VX_HK _230.ROM2"
|
|
path: bios/ps2-0230a-20080220.rom2
|
|
system: sony-playstation-2
|
|
required: false
|
|
max_size: 4194304
|
|
description: "Chinese ROM extension"
|
|
note: >-
|
|
Same two-step naming as rom1, copied to the ROM2 region. Present on Chinese
|
|
region consoles. Carried by the same import restriction as rom1.
|
|
source_ref: "app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:234-261, app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:389, app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:393-403"
|
|
|
|
- name: ps2-0230a-20080220.nvm
|
|
path: bios/ps2-0230a-20080220.nvm
|
|
system: sony-playstation-2
|
|
required: false
|
|
hle_fallback: true
|
|
size: 1024
|
|
description: "Console NVRAM"
|
|
note: >-
|
|
Read at the BIOS path with the extension replaced by nvm, case-insensitively.
|
|
Carries the console id, the iLink id, 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, filled with a fixed iLink id and the
|
|
language and region defaults of the detected BIOS region. Under a COH-H
|
|
BIOS the blank-block test is skipped and the built image is 0xFF-filled
|
|
with the iLink id alone.
|
|
source_ref: "app/src/main/cpp/pcsx2/pcsx2/CDVD/CDVD.cpp:47-48, app/src/main/cpp/pcsx2/pcsx2/CDVD/CDVD.cpp:139-162, app/src/main/cpp/pcsx2/pcsx2/CDVD/CDVD.cpp:164-167, app/src/main/cpp/pcsx2/pcsx2/CDVD/CDVD.cpp:169-193"
|
|
|
|
- name: ps2-0230a-20080220.mec
|
|
path: bios/ps2-0230a-20080220.mec
|
|
system: sony-playstation-2
|
|
required: false
|
|
hle_fallback: true
|
|
size: 4
|
|
description: "Mechacon version"
|
|
note: >-
|
|
Read at the BIOS path with the extension replaced by mec. Defaults to
|
|
0x00020603, or 0x0104020a under a COH-H BIOS, and is written back at that
|
|
path when it cannot be read.
|
|
source_ref: "app/src/main/cpp/pcsx2/pcsx2/CDVD/CDVD.cpp:50-51, app/src/main/cpp/pcsx2/pcsx2/CDVD/CDVD.cpp:195-208"
|
|
|
|
- name: eeprom.dat
|
|
system: sony-playstation-2
|
|
required: false
|
|
hle_fallback: true
|
|
size: 64
|
|
description: "DEV9 EEPROM"
|
|
note: >-
|
|
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.
|
|
source_ref: "app/src/main/cpp/pcsx2/pcsx2/DEV9/DEV9.cpp:104-167"
|
|
|
|
- name: flash.dat
|
|
system: sony-playstation-2
|
|
required: false
|
|
hle_fallback: true
|
|
max_size: 8650752
|
|
description: "DEV9 SmartMedia flash image"
|
|
note: >-
|
|
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.
|
|
source_ref: "app/src/main/cpp/pcsx2/pcsx2/DEV9/flash.cpp:9-16, app/src/main/cpp/pcsx2/pcsx2/DEV9/flash.cpp:62-86"
|
|
|
|
- name: "<module>.irx"
|
|
system: sony-playstation-2
|
|
required: false
|
|
config_key: "EmuCore/CurrentIRX"
|
|
unsourceable: "any IOP module the user points at, under no name and no version the code expects"
|
|
description: "IOP module injected at boot"
|
|
note: >-
|
|
Read into the ROM region at 0x3C0000 when the IOP program counter reaches
|
|
0x1630 and the setting is longer than three characters. The launcher fills
|
|
it from the boot parameters when the picked file is an IRX. Empty otherwise.
|
|
source_ref: "app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:263-276, app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:406-407, app/src/main/cpp/pcsx2/pcsx2/R3000AInterpreter.cpp:220, app/src/main/cpp/pcsx2/pcsx2/arm64/iop/iR3000A-arm64.cpp:1695, app/src/main/cpp/pcsx2/pcsx2/VMManager.cpp:1846, app/src/main/cpp/ARM_ANDROID/src/runtime/upstream_vm_bridge.cpp:462-467"
|
|
|
|
- name: GameIndex.yaml
|
|
path: resources/GameIndex.yaml
|
|
system: sony-playstation-2
|
|
required: false
|
|
bundled: true
|
|
sha1: 2d9878fdd70979ecf6dd0da7652efd3797c26039
|
|
size: 2697551
|
|
category: game_data
|
|
description: "per-title compatibility and fix database"
|
|
note: >-
|
|
Opened from the resources directory and parsed into the game database that
|
|
drives per-title rounding modes, clamp modes, GS hacks and memory card
|
|
filters. The Kotlin catalog reads the same file straight out of the package
|
|
for the compatibility badges it draws.
|
|
source_ref: "app/src/main/cpp/pcsx2/pcsx2/GameDatabase.cpp:39, app/src/main/cpp/pcsx2/pcsx2/GameDatabase.cpp:1036-1037, app/src/main/java/com/sbro/emucorex/ui/gamedb/GameDbCatalogRepository.kt:97, app/src/main/java/com/sbro/emucorex/ui/gamedb/GameDbCatalogRepository.kt:202"
|
|
|
|
- name: RedumpDatabase.yaml
|
|
path: resources/RedumpDatabase.yaml
|
|
system: sony-playstation-2
|
|
required: false
|
|
bundled: true
|
|
sha1: dceb4536fba7fb89452864fc512a4d071a19eae0
|
|
size: 1906463
|
|
category: game_data
|
|
description: "disc hash database"
|
|
note: >-
|
|
Opened from the resources directory and parsed into the hash database used
|
|
to name a disc from its dump.
|
|
source_ref: "app/src/main/cpp/pcsx2/pcsx2/GameDatabase.cpp:1141, app/src/main/cpp/pcsx2/pcsx2/GameDatabase.cpp:1198-1199"
|
|
|
|
- name: patches.zip
|
|
path: resources/patches.zip
|
|
system: sony-playstation-2
|
|
required: false
|
|
bundled: true
|
|
sha1: a3d939af27fe0929e61b8e20d49ef58316c0a66c
|
|
size: 2091144
|
|
category: game_data
|
|
description: "built-in game patch archive"
|
|
note: >-
|
|
Opened read only from the resources directory as a zip source and searched
|
|
for the pnach matching the running serial and CRC. A failure to open is
|
|
reported once and the built-in patches are dropped for the session. The
|
|
app logs an error at startup when the copied archive is missing or holds
|
|
no pnach.
|
|
source_ref: "app/src/main/cpp/pcsx2/pcsx2/Patch.cpp:118, app/src/main/cpp/pcsx2/pcsx2/Patch.cpp:290-317, app/src/main/java/com/sbro/emucorex/core/NativeApp.kt:432-433, app/src/main/java/com/sbro/emucorex/core/NativeApp.kt:621-635"
|
|
|
|
- name: Roboto-Regular.ttf
|
|
path: resources/fonts/Roboto-Regular.ttf
|
|
system: sony-playstation-2
|
|
required: false
|
|
bundled: true
|
|
description: "core text font"
|
|
note: >-
|
|
Read by the adapter's own font setup before the VM starts and handed to the
|
|
core as the standard font. An empty font list is logged as a setup failure.
|
|
source_ref: "app/src/main/cpp/ARM_ANDROID/src/runtime/upstream_vm_bridge.cpp:384-392, app/src/main/cpp/ARM_ANDROID/src/runtime/upstream_vm_bridge.cpp:402-411, app/src/main/cpp/ARM_ANDROID/src/runtime/upstream_vm_bridge.cpp:437"
|
|
|
|
- name: Twemoji.Mozilla.ttf
|
|
path: resources/fonts/Twemoji.Mozilla.ttf
|
|
system: sony-playstation-2
|
|
required: false
|
|
bundled: true
|
|
description: "core emoji font"
|
|
note: >-
|
|
Read by the same font setup and appended as the emoji face. Skipped when the
|
|
file cannot be read.
|
|
source_ref: "app/src/main/cpp/ARM_ANDROID/src/runtime/upstream_vm_bridge.cpp:393-400, app/src/main/cpp/ARM_ANDROID/src/runtime/upstream_vm_bridge.cpp:402-411"
|
|
|
|
- name: tfx.glsl
|
|
path: resources/shaders/vulkan/tfx.glsl
|
|
system: sony-playstation-2
|
|
required: true
|
|
bundled: true
|
|
description: "Vulkan texture and framebuffer shader"
|
|
note: >-
|
|
Read from the resources directory when the Vulkan device is created. A read
|
|
failure is reported and device creation fails.
|
|
source_ref: "app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/Common/GSDevice.cpp:404-407, app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp:2531-2535"
|
|
|
|
- name: convert.glsl
|
|
path: resources/shaders/vulkan/convert.glsl
|
|
system: sony-playstation-2
|
|
required: true
|
|
bundled: true
|
|
description: "Vulkan format conversion shader"
|
|
note: >-
|
|
Read when the conversion pipelines are compiled and again as the vertex
|
|
stage of the FXAA pipeline.
|
|
source_ref: "app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp:4901-4905, app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp:5247-5251"
|
|
|
|
- name: present.glsl
|
|
path: resources/shaders/vulkan/present.glsl
|
|
system: sony-playstation-2
|
|
required: true
|
|
bundled: true
|
|
description: "Vulkan presentation shader"
|
|
source_ref: "app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp:5076-5080"
|
|
|
|
- name: interlace.glsl
|
|
path: resources/shaders/vulkan/interlace.glsl
|
|
system: sony-playstation-2
|
|
required: true
|
|
bundled: true
|
|
description: "Vulkan deinterlacing shader"
|
|
source_ref: "app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp:5126-5130"
|
|
|
|
- name: merge.glsl
|
|
path: resources/shaders/vulkan/merge.glsl
|
|
system: sony-playstation-2
|
|
required: true
|
|
bundled: true
|
|
description: "Vulkan field merge shader"
|
|
source_ref: "app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp:5177-5181"
|
|
|
|
- name: shadeboost.glsl
|
|
path: resources/shaders/vulkan/shadeboost.glsl
|
|
system: sony-playstation-2
|
|
required: true
|
|
bundled: true
|
|
description: "Vulkan brightness and contrast shader"
|
|
source_ref: "app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp:5282-5286"
|
|
|
|
- name: cas.glsl
|
|
path: resources/shaders/vulkan/cas.glsl
|
|
system: sony-playstation-2
|
|
required: true
|
|
bundled: true
|
|
description: "Vulkan contrast adaptive sharpening shader"
|
|
note: >-
|
|
Read as a compute shader and its two include lines substituted with the
|
|
contents of the common headers. The Vulkan device compiles the CAS
|
|
pipelines unconditionally and returns on a failure, so a missing file stops
|
|
device creation rather than dropping the feature.
|
|
source_ref: "app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp:2569-2570, app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp:5333-5335, app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/Common/GSDevice.cpp:1194-1205"
|
|
|
|
- name: imgui.glsl
|
|
path: resources/shaders/vulkan/imgui.glsl
|
|
system: sony-playstation-2
|
|
required: true
|
|
bundled: true
|
|
description: "Vulkan overlay shader"
|
|
source_ref: "app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp:5359-5362"
|
|
|
|
- name: tfx_vgs.glsl
|
|
path: resources/shaders/opengl/tfx_vgs.glsl
|
|
system: sony-playstation-2
|
|
required: true
|
|
bundled: true
|
|
description: "OpenGL texture and framebuffer vertex shader"
|
|
note: >-
|
|
Read from the resources directory when the OpenGL device is created.
|
|
source_ref: "app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/Common/GSDevice.cpp:404-407, app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp:918-924"
|
|
|
|
- name: tfx_fs.glsl
|
|
path: resources/shaders/opengl/tfx_fs.glsl
|
|
system: sony-playstation-2
|
|
required: true
|
|
bundled: true
|
|
description: "OpenGL texture and framebuffer fragment shader"
|
|
source_ref: "app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp:919-924"
|
|
|
|
- name: convert.glsl
|
|
path: resources/shaders/opengl/convert.glsl
|
|
system: sony-playstation-2
|
|
required: true
|
|
bundled: true
|
|
description: "OpenGL format conversion shader"
|
|
source_ref: "app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp:602-606"
|
|
|
|
- name: present.glsl
|
|
path: resources/shaders/opengl/present.glsl
|
|
system: sony-playstation-2
|
|
required: true
|
|
bundled: true
|
|
description: "OpenGL presentation shader"
|
|
source_ref: "app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp:688-692"
|
|
|
|
- name: interlace.glsl
|
|
path: resources/shaders/opengl/interlace.glsl
|
|
system: sony-playstation-2
|
|
required: true
|
|
bundled: true
|
|
description: "OpenGL deinterlacing shader"
|
|
source_ref: "app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp:747-751"
|
|
|
|
- name: merge.glsl
|
|
path: resources/shaders/opengl/merge.glsl
|
|
system: sony-playstation-2
|
|
required: true
|
|
bundled: true
|
|
description: "OpenGL field merge shader"
|
|
source_ref: "app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp:724-728"
|
|
|
|
- name: shadeboost.glsl
|
|
path: resources/shaders/opengl/shadeboost.glsl
|
|
system: sony-playstation-2
|
|
required: true
|
|
bundled: true
|
|
description: "OpenGL brightness and contrast shader"
|
|
source_ref: "app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp:767-768, app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp:2868-2872"
|
|
|
|
- name: cas.glsl
|
|
path: resources/shaders/opengl/cas.glsl
|
|
system: sony-playstation-2
|
|
required: false
|
|
bundled: true
|
|
description: "OpenGL contrast adaptive sharpening shader"
|
|
note: >-
|
|
Read as a compute program with the two include lines substituted, and
|
|
tried only on an ES 3.2 context or on GL 4.2 with compute shaders. A
|
|
failure turns CAS sharpening off.
|
|
source_ref: "app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp:771, app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp:3068-3088, app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/Common/GSDevice.cpp:1194-1205"
|
|
|
|
- name: imgui.glsl
|
|
path: resources/shaders/opengl/imgui.glsl
|
|
system: sony-playstation-2
|
|
required: true
|
|
bundled: true
|
|
description: "OpenGL overlay shader"
|
|
source_ref: "app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp:3152-3156"
|
|
|
|
- name: fxaa.fx
|
|
path: resources/shaders/common/fxaa.fx
|
|
system: sony-playstation-2
|
|
required: true
|
|
bundled: true
|
|
description: "antialiasing shader shared by both renderers"
|
|
note: >-
|
|
Read as the fragment stage of the FXAA pipeline on Vulkan, inside the
|
|
post-processing pipelines the device creation chain requires, so a missing
|
|
file stops device creation there. On OpenGL the program is compiled beside
|
|
the shadeboost one in the device creation chain, which returns on a read
|
|
failure.
|
|
source_ref: "app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp:2556-2561, app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp:5254-5258, app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp:767-768, app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp:2611-2619"
|
|
|
|
- name: ffx_a.h
|
|
path: resources/shaders/common/ffx_a.h
|
|
system: sony-playstation-2
|
|
required: true
|
|
bundled: true
|
|
description: "CAS support header"
|
|
note: >-
|
|
Read from the resources directory and pasted over the matching include line
|
|
of the CAS shader, the compilers having no include support. It shares the
|
|
fate of the CAS shader it is pasted into: fatal to device creation on
|
|
Vulkan, and only the sharpening feature on OpenGL.
|
|
source_ref: "app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/Common/GSDevice.cpp:1194-1205, app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp:2569-2570, app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp:771"
|
|
|
|
- name: ffx_cas.h
|
|
path: resources/shaders/common/ffx_cas.h
|
|
system: sony-playstation-2
|
|
required: true
|
|
bundled: true
|
|
description: "CAS kernel header"
|
|
note: >-
|
|
Read and substituted the same way as the other CAS header, with the same
|
|
consequence per renderer when it is missing.
|
|
source_ref: "app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/Common/GSDevice.cpp:1194-1205, app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp:2569-2570, app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp:771"
|
|
|
|
- name: message.wav
|
|
path: resources/sounds/achievements/message.wav
|
|
system: sony-playstation-2
|
|
required: false
|
|
description: "achievement notification sound"
|
|
note: >-
|
|
Played from the resources directory whenever an achievement notification is
|
|
raised and no custom sound is configured. Sound effects and the notification
|
|
sound both default on. The vendored tree carries only the README for this
|
|
directory, so the file has to be supplied; the Android sound callback
|
|
returns without playing when the path is not a file. Upstream v2.8.0
|
|
ships it at 15696 bytes.
|
|
source_ref: "app/src/main/cpp/ARM_ANDROID/src/integration/pcsx2_achievements_android.cpp:81, app/src/main/cpp/ARM_ANDROID/src/integration/pcsx2_achievements_android.cpp:1245-1250, app/src/main/cpp/pcsx2/pcsx2/Pcsx2Config.cpp:1963-1966, app/src/main/java/com/sbro/emucorex/core/NativeApp.kt:461-467"
|
|
|
|
- name: unlock.wav
|
|
path: resources/sounds/achievements/unlock.wav
|
|
sha1: da328a0a3074ec86fee2d6741bfc2e5a1f68d063
|
|
size: 202702
|
|
system: sony-playstation-2
|
|
required: false
|
|
description: "achievement unlock sound"
|
|
note: >-
|
|
Played on an unlock under the same two settings, both on by default. Absent
|
|
from the vendored tree. Upstream v2.8.0 ships it at 202702 bytes.
|
|
source_ref: "app/src/main/cpp/ARM_ANDROID/src/integration/pcsx2_achievements_android.cpp:82, app/src/main/cpp/ARM_ANDROID/src/integration/pcsx2_achievements_android.cpp:1313-1318"
|
|
|
|
- name: lbsubmit.wav
|
|
path: resources/sounds/achievements/lbsubmit.wav
|
|
system: sony-playstation-2
|
|
required: false
|
|
description: "leaderboard submission sound"
|
|
note: >-
|
|
Played on a leaderboard submission under the same two settings, both on by
|
|
default. Absent from the vendored tree. Upstream v2.8.0 ships it at 82096
|
|
bytes.
|
|
source_ref: "app/src/main/cpp/ARM_ANDROID/src/integration/pcsx2_achievements_android.cpp:83, app/src/main/cpp/ARM_ANDROID/src/integration/pcsx2_achievements_android.cpp:1458-1463"
|
|
|
|
- name: games.db
|
|
path: "games.db"
|
|
system: sony-playstation-2
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
description: "bundled catalog of PS2 titles"
|
|
note: >-
|
|
SQLite catalog carried in the package assets and copied into internal
|
|
storage the first time the catalog is queried, then read from there. A copy
|
|
already present is kept.
|
|
source_ref: "app/src/main/java/com/sbro/emucorex/data/ps2/Ps2CatalogRepository.kt:17-18, app/src/main/java/com/sbro/emucorex/data/ps2/Ps2CatalogRepository.kt:27, app/src/main/java/com/sbro/emucorex/data/ps2/Ps2CatalogRepository.kt:39-56"
|
|
|
|
- name: "<SERIAL>_<CRC>.pnach"
|
|
path: "cheats/<SERIAL>_<CRC>.pnach"
|
|
system: sony-playstation-2
|
|
required: false
|
|
category: game_data
|
|
unsourceable: "cheat list authored per title, with no released artefact behind it"
|
|
description: "per-title cheat file"
|
|
note: >-
|
|
The cheats folder is searched for the running serial and CRC, then for files
|
|
carrying the CRC alone, both with a trailing wildcard so a suffix after the
|
|
CRC is kept. An arcade title, whose serial starts with NM and whose CRC is
|
|
zero, is matched on the serial alone. The patches folder is searched the
|
|
same way for patches rather than cheats. The app's cheat manager keeps a
|
|
picked pnach document in its own store and writes the enabled blocks into
|
|
the cheats folder as <SERIAL>_<CRC>.pnach, or <CRC>.pnach without a serial.
|
|
source_ref: "app/src/main/cpp/pcsx2/pcsx2/Patch.cpp:332-345, app/src/main/cpp/pcsx2/pcsx2/Patch.cpp:347-369, app/src/main/java/com/sbro/emucorex/ui/cheats/CheatManagerScreen.kt:291-309, app/src/main/java/com/sbro/emucorex/data/CheatRepository.kt:186-220, app/src/main/java/com/sbro/emucorex/data/CheatRepository.kt:304-311"
|
|
|
|
- name: "<hash>.png"
|
|
path: "textures/<SERIAL>/replacements/<hash>.png"
|
|
system: sony-playstation-2
|
|
required: false
|
|
category: game_data
|
|
unsourceable: "replacement artwork authored against the texture hashes of one title"
|
|
description: "replacement texture"
|
|
note: >-
|
|
Read when texture replacement is on. The replacements folder under the
|
|
running serial is walked recursively and a file counts only when its name
|
|
parses as the TEX0 hash, optional CLUT hash, optional region size and format
|
|
that the texture cache looks it up by. A directory whose case does not match
|
|
is reported.
|
|
source_ref: "app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/HW/GSTextureReplacements.cpp:36-42, app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/HW/GSTextureReplacements.cpp:328-331, app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/HW/GSTextureReplacements.cpp:442-500"
|
|
|
|
- name: "<driver>.zip"
|
|
system: sony-playstation-2
|
|
required: false
|
|
unsourceable: "Vulkan driver built for one GPU family, not an emulator artefact"
|
|
description: "replacement Vulkan driver package"
|
|
note: >-
|
|
Listed by a catalog fetched from the EmuCoreV-Drivers repository, or picked
|
|
from the device. A catalog download whose length differs from the size the
|
|
catalog states is discarded. The archive is unpacked into a directory named
|
|
after it under driver in internal storage, entries carrying a parent path
|
|
segment being refused, and the Vulkan library it holds is recorded in a
|
|
driver_name.txt written beside it. The install is removed when that library
|
|
does not start with the ELF magic or when its GPU vendor, taken from the
|
|
catalog or from markers in the library, does not match the device. The
|
|
renderer then resolves the driver through adrenotools from that pair. The
|
|
system loader is used when no driver is configured.
|
|
source_ref: "app/src/main/java/com/sbro/emucorex/core/GpuDriverCatalogRepository.kt:143-147, app/src/main/java/com/sbro/emucorex/core/GpuDriverCatalogRepository.kt:76-87, app/src/main/java/com/sbro/emucorex/core/GpuDriverManager.kt:98-170, app/src/main/java/com/sbro/emucorex/core/GpuDriverManager.kt:172-181, app/src/main/java/com/sbro/emucorex/core/GpuDriverManager.kt:214-228, app/src/main/cpp/ARM_ANDROID/src/runtime/android_runtime.cpp:138-152, app/src/main/cpp/ARM_ANDROID/src/runtime/android_runtime.cpp:401-402, app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/Vulkan/VKLoader.cpp:136, app/src/main/cpp/pcsx2/pcsx2/GS/Renderers/Vulkan/VKLoader.cpp:200-206"
|
|
|
|
exclusion_note: >
|
|
Left out are the parts of the bundled resource tree that this platform compiles
|
|
out. ImGuiManager::Initialize returns false before the ImGui context exists, so
|
|
LoadFontData never runs and fonts/RobotoMono-Medium.ttf, fonts/fa-solid-900.ttf
|
|
and fonts/promptfont.otf are never read; InitializeFullscreenUI returns false
|
|
unconditionally, so FullscreenUI::Initialize never runs and nothing under
|
|
fullscreenui or icons is loaded, cover-placeholder.png included. The DX11 and
|
|
DX12 renderers sit in the Windows branch of the core CMakeLists, so
|
|
shaders/dx11 is dead here. game_controller_db.txt has one consumer,
|
|
Input/SDLInputSource.cpp, which the adapter removes from the target and replaces
|
|
with a source that never opens it. The user resource override folder is only
|
|
ever consulted by those same font and controller database reads, so it is dead
|
|
with them. Left out with these are the app's other package assets, which are
|
|
read through the asset manager and never reach the filesystem:
|
|
catalog/rom_identity_index.json, catalog/rom_identity_overrides.json and
|
|
catalog/pcsx2_compat_index.json. Left out too is what the emulator writes and
|
|
reads back, which is state rather than system files: the inis, the per-game
|
|
settings and input profiles, the memory cards, the save states, the snapshots,
|
|
the shader and texture caches, the logs, the dumped textures, and the
|
|
system-ca-bundle.pem the app exports from the Android trust store, and the
|
|
per-title arcade content a manifest names. The covers folder is inert: its
|
|
only readers are the FullscreenUI game list and GameList::DownloadCovers,
|
|
which only FullscreenUI calls, and the app runs its own cover cache.
|
|
ref: app/src/main/cpp/pcsx2/pcsx2/ImGui/ImGuiManager.cpp:149-152,
|
|
app/src/main/cpp/pcsx2/pcsx2/ImGui/ImGuiManager.cpp:224-229,
|
|
app/src/main/cpp/pcsx2/pcsx2/ImGui/ImGuiManager.cpp:483-536,
|
|
app/src/main/cpp/pcsx2/pcsx2/ImGui/FullscreenUI.cpp:323,
|
|
app/src/main/cpp/pcsx2/pcsx2/CMakeLists.txt:706,
|
|
app/src/main/cpp/pcsx2/pcsx2/CMakeLists.txt:723-734,
|
|
app/src/main/cpp/pcsx2/pcsx2/Input/SDLInputSource.cpp:24,
|
|
app/src/main/cpp/ARM_ANDROID/CMakeLists.txt:259-263,
|
|
app/src/main/cpp/pcsx2/pcsx2/Pcsx2Config.cpp:2452-2466,
|
|
app/src/main/cpp/pcsx2/pcsx2/GameList.cpp:1376,
|
|
app/src/main/cpp/pcsx2/pcsx2/ImGui/FullscreenUI.cpp:3640,
|
|
app/src/main/java/com/sbro/emucorex/data/ps2/Ps2CatalogRepository.kt:235-248,
|
|
app/src/main/java/com/sbro/emucorex/core/NativeApp.kt:434-436
|