diff --git a/bios/Sony/PlayStation 2/SCPH-90006_BIOS_VX_HK _230.EROM b/bios/Sony/PlayStation 2/SCPH-90006_BIOS_VX_HK _230.EROM new file mode 100644 index 00000000..a6b8d4a3 Binary files /dev/null and b/bios/Sony/PlayStation 2/SCPH-90006_BIOS_VX_HK _230.EROM differ diff --git a/bios/Sony/PlayStation 2/SCPH-90006_BIOS_VX_HK _230.NVM b/bios/Sony/PlayStation 2/SCPH-90006_BIOS_VX_HK _230.NVM new file mode 100644 index 00000000..6ed06a7e Binary files /dev/null and b/bios/Sony/PlayStation 2/SCPH-90006_BIOS_VX_HK _230.NVM differ diff --git a/bios/Sony/PlayStation 2/SCPH-90006_BIOS_VX_HK _230.ROM1 b/bios/Sony/PlayStation 2/SCPH-90006_BIOS_VX_HK _230.ROM1 new file mode 100644 index 00000000..32acc035 Binary files /dev/null and b/bios/Sony/PlayStation 2/SCPH-90006_BIOS_VX_HK _230.ROM1 differ diff --git a/bios/Sony/PlayStation 2/SCPH-90006_BIOS_VX_HK _230.ROM2 b/bios/Sony/PlayStation 2/SCPH-90006_BIOS_VX_HK _230.ROM2 new file mode 100644 index 00000000..32acc035 Binary files /dev/null and b/bios/Sony/PlayStation 2/SCPH-90006_BIOS_VX_HK _230.ROM2 differ diff --git a/database.json b/database.json index d2262574..61e7f2e4 100644 --- a/database.json +++ b/database.json @@ -1,8 +1,8 @@ { "schema_version": 1, - "generated_at": "2026-08-12T04:09:18Z", - "total_files": 8888, - "total_size": 12295693870, + "generated_at": "2026-08-12T04:13:01Z", + "total_files": 8891, + "total_size": 12299364910, "files": { "520d3d1b5897800af47f92efd2444a26b7a7dead": { "path": "bios/3DO Company/3DO/3do_arcade_saot.bin", @@ -90184,6 +90184,36 @@ "crc32": "7ba25709", "adler32": "d3384e56" }, + "6b357e8624095770952fc408cdc6647fa62e0d28": { + "path": "bios/Sony/PlayStation 2/SCPH-90006_BIOS_VX_HK _230.EROM", + "name": "SCPH-90006_BIOS_VX_HK _230.EROM", + "size": 3145728, + "sha1": "6b357e8624095770952fc408cdc6647fa62e0d28", + "md5": "4f84fc8c2f1080a3f5f5859b403c62f3", + "sha256": "8801922f614b365d9d37557d7a375d06d385e936804943cb2c52abff55a3d254", + "crc32": "a96ce863", + "adler32": "694d7661" + }, + "465c2738c280eb1864f679c80b55e468bf670057": { + "path": "bios/Sony/PlayStation 2/SCPH-90006_BIOS_VX_HK _230.NVM", + "name": "SCPH-90006_BIOS_VX_HK _230.NVM", + "size": 1024, + "sha1": "465c2738c280eb1864f679c80b55e468bf670057", + "md5": "0be3a2f91f780c0ee17de87065e4fbcc", + "sha256": "d218113ad67d0c178123b797d31baf7f4ae4a9466251d98b9db4192434d3a5e8", + "crc32": "588632a6", + "adler32": "6699bbc3" + }, + "b96cf94772f01b8434038285896467884a84b0c2": { + "path": "bios/Sony/PlayStation 2/SCPH-90006_BIOS_VX_HK _230.ROM1", + "name": "SCPH-90006_BIOS_VX_HK _230.ROM1", + "size": 524288, + "sha1": "b96cf94772f01b8434038285896467884a84b0c2", + "md5": "905ebe2358502f8aaeeeac96d023f4d9", + "sha256": "1b7c68be427e6f571596ef6b444e8b86d1b4e2a226d62f6bfc86717a798f2317", + "crc32": "0917d374", + "adler32": "2ce5cee5" + }, "62f5a0b54a174daf2bf66634b86c6f2a3cd297ce": { "path": "bios/Sony/PlayStation 2/SCPH30004R.nvm", "name": "SCPH30004R.nvm", @@ -102538,6 +102568,9 @@ "bd41c04a80e9cbef0bab382b1c43be4c": "6611151e8f599230cdf19a17318e7e5ddc781961", "295caaca6551ec811da55f9e6719f33e": "fff13c6e30c55df9d6241ee08e5d0026c6a5d618", "1ec6a33c35317c2ae3fbdf9d46b319d8": "84a9628af6fa8335247c002b1ce6c81a419ea9a5", + "4f84fc8c2f1080a3f5f5859b403c62f3": "6b357e8624095770952fc408cdc6647fa62e0d28", + "0be3a2f91f780c0ee17de87065e4fbcc": "465c2738c280eb1864f679c80b55e468bf670057", + "905ebe2358502f8aaeeeac96d023f4d9": "b96cf94772f01b8434038285896467884a84b0c2", "20581825a81dcaf1ea544b645af70a15": "62f5a0b54a174daf2bf66634b86c6f2a3cd297ce", "8a4bc67bed996f7e0e8ac6f691805cc2": "dec5e4f137890c338babe13cfb9d41ff869fa721", "acafbdf18eee5925f307c9efeb77fc1f": "773b4279d8c8e182dc57e444dbf448a1d115e7e0", @@ -126716,6 +126749,15 @@ "SCPH-77008_BIOS_V15_RUS_220.NVM": [ "84a9628af6fa8335247c002b1ce6c81a419ea9a5" ], + "SCPH-90006_BIOS_VX_HK _230.EROM": [ + "6b357e8624095770952fc408cdc6647fa62e0d28" + ], + "SCPH-90006_BIOS_VX_HK _230.NVM": [ + "465c2738c280eb1864f679c80b55e468bf670057" + ], + "SCPH-90006_BIOS_VX_HK _230.ROM1": [ + "b96cf94772f01b8434038285896467884a84b0c2" + ], "eeprom.dat": [ "ffc6261e487efa8c7442069f71acfc4aa826993d" ], @@ -129049,6 +129091,9 @@ "SCPH-70004_BIOS_V12_EUR_200.ROM2": [ "1bae895fbdd658cfb56c53cc2139282cc1e778de" ], + "SCPH-90006_BIOS_VX_HK _230.ROM2": [ + "b96cf94772f01b8434038285896467884a84b0c2" + ], "ps2-0160a-20020207.bin": [ "f9a5d629a036b99128f7cb530c6e3ca016e9c8b7" ], @@ -139949,6 +139994,9 @@ "c5dd92d4": "6611151e8f599230cdf19a17318e7e5ddc781961", "86547c14": "fff13c6e30c55df9d6241ee08e5d0026c6a5d618", "7ba25709": "84a9628af6fa8335247c002b1ce6c81a419ea9a5", + "a96ce863": "6b357e8624095770952fc408cdc6647fa62e0d28", + "588632a6": "465c2738c280eb1864f679c80b55e468bf670057", + "0917d374": "b96cf94772f01b8434038285896467884a84b0c2", "31791add": "62f5a0b54a174daf2bf66634b86c6f2a3cd297ce", "cd9be891": "dec5e4f137890c338babe13cfb9d41ff869fa721", "4460a2f0": "773b4279d8c8e182dc57e444dbf448a1d115e7e0", @@ -148839,6 +148887,9 @@ "b1704c7da37f03db017ad7576508c61b250d9ed4f3ceda8732ea91a3034f6cbf": "6611151e8f599230cdf19a17318e7e5ddc781961", "f57595d834bec00f62ece0fc59f4c0c52ebe26a46100429b065606a851dfa1a8": "fff13c6e30c55df9d6241ee08e5d0026c6a5d618", "08ea4442e8f16f0e68b7b07355f044c181cab7747076d135f33184bf32f156af": "84a9628af6fa8335247c002b1ce6c81a419ea9a5", + "8801922f614b365d9d37557d7a375d06d385e936804943cb2c52abff55a3d254": "6b357e8624095770952fc408cdc6647fa62e0d28", + "d218113ad67d0c178123b797d31baf7f4ae4a9466251d98b9db4192434d3a5e8": "465c2738c280eb1864f679c80b55e468bf670057", + "1b7c68be427e6f571596ef6b444e8b86d1b4e2a226d62f6bfc86717a798f2317": "b96cf94772f01b8434038285896467884a84b0c2", "0e13330dda0c0190a3ab732593416051df19bf8f3f3186862f84531a9d6915e2": "62f5a0b54a174daf2bf66634b86c6f2a3cd297ce", "91d5ae704ff8b6d90165a65f69e9e2be8a9ab9c588c525dc1c9c4ecbbdef1ffd": "dec5e4f137890c338babe13cfb9d41ff869fa721", "d07e3adde4da6a3220363b12d7b066168918225546122643ef7d19fece53b8b1": "773b4279d8c8e182dc57e444dbf448a1d115e7e0", diff --git a/emulators/aethersx2.yml b/emulators/aethersx2.yml index 0e458a91..2f575701 100644 --- a/emulators/aethersx2.yml +++ b/emulators/aethersx2.yml @@ -101,6 +101,8 @@ files: source_ref: "aethersx2/pcsx2/ps2/BiosTools.cpp:192-218, aethersx2 v1.5-3606 usr/share/aethersx2 0xa45b44, aethersx2 v1.5-3939 MacOS/AetherSX2 0x1006e7184" - name: ps2-0230a-20080220.rom2 + aliases: + - "SCPH-90006_BIOS_VX_HK _230.ROM2" path: bios/ps2-0230a-20080220.rom2 required: false max_size: 524288 diff --git a/emulators/armsx2.yml b/emulators/armsx2.yml index 4c92a12d..dbd4ab9c 100644 --- a/emulators/armsx2.yml +++ b/emulators/armsx2.yml @@ -139,6 +139,8 @@ files: source_ref: "pcsx2/ps2/BiosTools.cpp:214-241, pcsx2/ps2/BiosTools.cpp:381, pcsx2/ps2/BiosTools.cpp:386-397, pcsx2/MemoryTypes.h:13" - name: ps2-0230a-20080220.rom2 + aliases: + - "SCPH-90006_BIOS_VX_HK _230.ROM2" path: pcsx2/bios/ps2-0230a-20080220.rom2 standalone_path: bios/ps2-0230a-20080220.rom2 required: false diff --git a/emulators/emucorex.yml b/emulators/emucorex.yml index 6c722b59..40f4c793 100644 --- a/emulators/emucorex.yml +++ b/emulators/emucorex.yml @@ -144,6 +144,8 @@ files: source_ref: "app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:214-241, app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:366, app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:371-381, app/src/main/java/com/sbro/emucorex/core/DocumentPathResolver.kt:25-27, app/src/main/java/com/sbro/emucorex/core/DocumentPathResolver.kt:433-438" - 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 diff --git a/emulators/nethersx2.yml b/emulators/nethersx2.yml new file mode 100644 index 00000000..6775d353 --- /dev/null +++ b/emulators/nethersx2.yml @@ -0,0 +1,594 @@ +emulator: NetherSX2 +type: standalone +core_classification: community_fork +bios_mode: agnostic +source: "https://github.com/Trixarian/NetherSX2-patch" +upstream: "https://github.com/Trixarian/AetherSX2" +author: "Trixarian" +profiled_date: "2026-08-12" +source_commit: "75fc270d50b8c1ba81daf874635471b8d07be09e" +upstream_commit: "1d1f795dfc70e38da67724c7298779260f513889" +core_version: "2.1-4248" +display_name: "Sony - PlayStation 2 (NetherSX2)" +mode: standalone +cores: + - "nethersx2" + - "NetherSX2" + - "NETHERSX2" + - "NETHERSX2-TURNIP" + - "NETHERSX2-TURNIP-CLASSIC" +systems: + - sony-playstation-2 + +bios_directory: "bios/" + +notes: | + PlayStation 2 emulator for Android, package xyz.aethersx2.android, activity + xyz.aethersx2.android.EmulationActivity. The project is a patcher rather than + a source tree: it rewrites the AetherSX2 application package, replaces its + data assets and signs the result with its own key. Two lines are published, + one on the AetherSX2 v1.5-4248 package and one on v1.5-3668, and both name + themselves NetherSX2 and keep the same package id. Every statement below was + read from the shipped arm64 library lib/arm64-v8a/libemucore.so, which is + stripped, and confirmed against the unpatched AetherSX2 packages the project + distributes for its own build step. + ref: decomp/Extract.bat:1, old/scripts/patch-apk.sh:24-33, + nethersx2 v2.1-4248 AndroidManifest.xml + + The patch touches three instructions in the 4248 library. Two turn the + compare-and-branch that follows a certificate comparison into a plain branch, + which is what lets the package be resigned. The third replaces the test that + gates BIOS acceptance. Everything reached by the file loading paths is + byte for byte the AetherSX2 build, so the file set below is that build's, + read from the 4248 library rather than carried over from another release. + ref: decomp/Hackify.bat:24-28, + nethersx2 v2.1-4248 libemucore.so 0x838560, + nethersx2 v2.1-4248 libemucore.so 0x83b324 + + A BIOS image is required and boot stops without one, the application saying + it needs a PS2 BIOS in the bios folder of the data directory. The data + directory is getExternalFilesDir(null) with getDataDir() behind it, and the + folder names under it come from the Folders section, Bios defaulting to bios. + A script in the repository moves that root to /storage/emulated/0/NetherSX2 + once all-files access is granted, and patches out the library check that + requires the package name in the path; the published packages do not carry it. + ref: nethersx2 v2.1-4248 libemucore.so 0xf70a9, + nethersx2 v2.1-4248 libemucore.so 0x7ea914-0x7eaa8c, + xyz/aethersx2/android/NativeLibrary.smali initializeOnce, + patches/patch_root_storage.py:14-35, patches/patch_root_storage.py:261-351 + + Detection is by content. The scan lists the BIOS folder with a * mask, keeps + files between 4194304 and 8388608 bytes, and accepts an image whose romdir + carries a RESET entry followed by a readable ROMVER; the fifth ROMVER + character gives the zone, A for USA, C for China, E for Europe, H for Asia, + J for Japan, P for Free, T for T10K and X for Test, any other character + standing for itself, and an EXTINFO entry is read along the way. Stock 4248 + also required + the sixth character to differ from D, which turned away development images; + the patch forces that result to true, and the 3668 line never carried the + test. An image named in the configuration is combined with the BIOS folder and + opened at that path when it exists, without the size filter and without the + romdir test. 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. + ref: aethersx2/pcsx2/ps2/BiosTools.cpp:27-28, + aethersx2/pcsx2/ps2/BiosTools.cpp:62-175, + aethersx2/pcsx2/ps2/BiosTools.cpp:235-260, + aethersx2/pcsx2/ps2/BiosTools.cpp:272-332, + nethersx2 v2.1-4248 libemucore.so 0x828d80-0x828f10, + nethersx2 v2.1-4248 libemucore.so 0x829020-0x8292c0, + nethersx2 v2.1-4248 libemucore.so 0x829244-0x829248 + + 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. The nvm and the mec are read at the substituted + extension only, and both are written with defaults when they are absent or + too short. No erom is loaded on this code line. + ref: aethersx2/pcsx2/ps2/BiosTools.cpp:193-218, + aethersx2/pcsx2/CDVD/CDVD.cpp:120-144, + aethersx2/pcsx2/CDVD/CDVD.cpp:180-214, + nethersx2 v2.1-4248 libemucore.so 0x8288b0-0x828b90 + + The network adapter opens eeprom.dat and flash.dat by bare name, so they + resolve against the process working directory, which the application never + sets. A compiled-in image stands in for the first and a card filled with 0xFF + for the second. DEV9hdd.raw is the default name of the empty disk image its + settings page writes. An IRX named in the configuration is read into the ROM + region at 0x3C0000 at boot; the field is empty by default and names no file of + its own. + ref: aethersx2/pcsx2/DEV9/DEV9.cpp:146-161, + aethersx2/pcsx2/DEV9/flash.cpp:76-104, + aethersx2/pcsx2/ps2/BiosTools.cpp:220-233, + nethersx2 v2.1-4248 libemucore.so 0x7c5bec-0x7c5ca0, + nethersx2 v2.1-4248 libemucore.so 0x828bc0-0x828ca0 + + Resources are read out of the package itself. The library has no asset + manager of its own and calls back into readPackageFile, readPackageFileToString + and playSoundAsync, each taking an asset-relative name, so the game database, + the patch archives, the interface fonts, the shader sources every backend + compiles at startup and the achievement sounds are versioned with the build + and never looked for on disk. The game list draws its region flags and rating + stars from the same assets. The project ships its own game database, patch + archives and help pages, and adds two files the 4248 package does not carry, + placeholder.png, which the library names outright, and the Polish flag the + game list can ask for. + ref: nethersx2 v2.1-4248 libemucore.so 0x8348d0, + nethersx2 v2.1-4248 libemucore.so 0x834bb0, + xyz/aethersx2/android/NativeLibrary.smali readPackageFile, + xyz/aethersx2/android/NativeLibrary.smali playSoundAsync + +files: + - name: ps2-0230a-20080220.bin + path: bios/ps2-0230a-20080220.bin + required: true + min_size: 4194304 + max_size: 8388608 + validation: [size] + description: "PS2 BIOS image" + note: >- + Any image whose romdir holds RESET and a readable ROMVER is accepted, + whatever its name. The 4 to 8 MB range gates the folder scan; an image + named in the configuration skips both that range and the romdir test. The + sixth ROMVER character is not examined here, the patch having replaced the + test that rejected images carrying D. + source_ref: "aethersx2/pcsx2/ps2/BiosTools.cpp:27-28, aethersx2/pcsx2/ps2/BiosTools.cpp:235-260, nethersx2 v2.1-4248 libemucore.so 0x828d80-0x828f10, nethersx2 v2.1-4248 libemucore.so 0x829244-0x829248" + + - name: ps2-0230a-20080220.rom1 + path: bios/ps2-0230a-20080220.rom1 + required: false + max_size: 4194304 + description: "DVD player ROM" + note: >- + Tried as {bios}.rom1 then {biosbase}.rom1. Read at 0x2404000 of the EE + memory block and truncated to 4 MB. Logged and skipped when absent. + source_ref: "aethersx2/pcsx2/ps2/BiosTools.cpp:193-218, nethersx2 v2.1-4248 libemucore.so 0x8288b0-0x828a24" + + - name: ps2-0230a-20080220.rom2 + aliases: + - "SCPH-90006_BIOS_VX_HK _230.ROM2" + path: bios/ps2-0230a-20080220.rom2 + required: false + max_size: 524288 + description: "Chinese ROM extension" + note: >- + Same two-step naming as rom1. Read at 0x2804000 of the EE memory block and + truncated to 512 KB. Only present on Chinese region consoles. + source_ref: "aethersx2/pcsx2/ps2/BiosTools.cpp:193-218, nethersx2 v2.1-4248 libemucore.so 0x828a34-0x828b90" + + - name: ps2-0230a-20080220.nvm + path: bios/ps2-0230a-20080220.nvm + required: false + hle_fallback: true + min_size: 1024 + validation: [size] + description: "Console NVRAM" + note: >- + Read at the BIOS path with the extension replaced by nvm, opened r+b. + Carries the console id, the iLink id, the language and the OSD + configuration. A 1024 byte image is written when the file is missing or + shorter, zeroed except for a fixed iLink id and the language defaults of + the BIOS region, and it is rewritten when the language block reads back + blank. + source_ref: "aethersx2/pcsx2/CDVD/CDVD.cpp:158-214, nethersx2 v2.1-4248 libemucore.so 0x79b930-0x79bb90, nethersx2 v2.1-4248 libemucore.so 0x79bce0" + + - name: ps2-0230a-20080220.mec + path: bios/ps2-0230a-20080220.mec + required: false + hle_fallback: true + min_size: 4 + validation: [size] + description: "Mechacon version" + note: >- + Read at the BIOS path with the extension replaced by mec. Written as + 03 06 02 00 when the file is missing or shorter than 4 bytes. + source_ref: "aethersx2/pcsx2/CDVD/CDVD.cpp:120-144, nethersx2 v2.1-4248 libemucore.so 0x79cbc0-0x79cdc4" + + - name: eeprom.dat + required: false + hle_fallback: true + size: 64 + description: "DEV9 EEPROM" + note: >- + Opened O_RDWR by bare name 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: "aethersx2/pcsx2/DEV9/DEV9.cpp:146-161, nethersx2 v2.1-4248 libemucore.so 0x7c5c40-0x7c5ca0" + + - name: flash.dat + required: false + hle_fallback: true + max_size: 8650752 + description: "DEV9 SmartMedia flash image" + note: >- + Opened rb by bare name 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: "aethersx2/pcsx2/DEV9/flash.cpp:76-104, nethersx2 v2.1-4248 libemucore.so 0x7c5bec-0x7c5c40" + + - name: ".irx" + required: false + unsourceable: "any IOP module the user points at, under no name the code expects" + description: "IOP module injected at boot" + note: >- + Opened at the path the configuration holds once it is longer than three + characters, and read into the ROM region at 0x3C0000, capped at 0x40000 + bytes. The field is empty by default and names no file of its own. + source_ref: "aethersx2/pcsx2/ps2/BiosTools.cpp:220-233, aethersx2/pcsx2/ps2/BiosTools.cpp:327-328, nethersx2 v2.1-4248 libemucore.so 0x828bc0-0x828ca0" + + - name: GameIndex.yaml + path: assets/GameIndex.yaml + required: false + bundled: true + size: 1839281 + md5: a083d432bdcbc3282e51798f8e231a68 + sha1: 997fdfb1c1873c1a43972b2984ac0da61fd47b14 + description: "Game database" + note: >- + Read from the package by name, keyed by serial, and carrying the per-game + fixes, patches and settings overrides. Parsed into gamedb.cache in the + cache folder. The project maintains its own copy with entries specific to + this build. + source_ref: "aethersx2/pcsx2/GameDatabase.cpp:35, aethersx2/pcsx2/GameDatabase.cpp:226, nethersx2 v2.1-4248 libemucore.so 0x2e35ec" + + - name: cheats_ws.zip + path: assets/cheats_ws.zip + required: false + bundled: true + size: 1688377 + md5: d9460e9df9ac219b1eb946c76f80ee0f + sha1: f0d9c66e4793a014cf431ed20e87056e2a96b68e + description: "Widescreen patch archive" + note: >- + Per-game pnach entries matched on the disc CRC, read from the package when + widescreen patches are enabled. The cheats_ws folder under the data + directory takes precedence and the archive is skipped when it holds a + match. + source_ref: "nethersx2 v2.1-4248 libemucore.so 0x80f8bc-0x80f9a8" + + - name: cheats_ni.zip + path: assets/cheats_ni.zip + required: false + bundled: true + size: 221493 + md5: 70a2f8043f2c1be6c84ecac87157a57b + sha1: 0b219dc8b3b98c1705b14758bb7950064b928ebb + description: "No-interlacing patch archive" + note: >- + Same form as cheats_ws.zip, read when no-interlacing patches are enabled, + with the cheats_ni folder taking precedence. + source_ref: "nethersx2 v2.1-4248 libemucore.so 0x80fa54-0x80facc" + + - name: Roboto-Regular.ttf + path: assets/fonts/Roboto-Regular.ttf + required: true + bundled: true + size: 305608 + md5: 86da78cb59576328483a11c6ef74bc2b + sha1: 00d62fbdc8d5dec4c659005e116d0ba2ee63b547 + description: "Interface font" + note: "Read as the standard font when the interface comes up. The load fails without it." + source_ref: "nethersx2 v2.1-4248 libemucore.so 0x7dc87c-0x7dc88c" + + - name: RobotoMono-Medium.ttf + path: assets/fonts/RobotoMono-Medium.ttf + required: true + bundled: true + size: 86820 + md5: 8ad82b1dc550319993a7d6c932b2656d + sha1: 9056e59b69c6f1160fdfb92a0773f17f6307f3ad + description: "Fixed-width interface font" + note: "Read for the fixed-width font. The load fails without it." + source_ref: "nethersx2 v2.1-4248 libemucore.so 0x7dc8d0-0x7dc8e0" + + - name: fa-solid-900.ttf + path: assets/fonts/fa-solid-900.ttf + required: true + bundled: true + size: 204528 + md5: dffd9504fcb1894620fa41c700172994 + sha1: 694b8a2445ff39de415bf4791845442a7b1b81e5 + description: "Font Awesome icon font" + note: "Read for the interface icon glyphs. The load fails without it." + source_ref: "nethersx2 v2.1-4248 libemucore.so 0x7dc924-0x7dc934" + + - name: ffx_a.h + path: assets/shaders/common/ffx_a.h + required: false + bundled: true + size: 161481 + md5: 2c539b603dcb15dcdcfdc420eda56ced + sha1: 726370c10154ad092c15c251b98c79185e980c7c + description: "FidelityFX common header" + note: "Prepended to the sharpening shader of both backends." + source_ref: "nethersx2 v2.1-4248 libemucore.so 0x616ba0" + + - name: ffx_cas.h + path: assets/shaders/common/ffx_cas.h + required: false + bundled: true + size: 63512 + md5: f8a3d7f48ae19fc372cd0d5d375d5a8d + sha1: a1d1a687577f7a607fda35bc88950f57c2129ca5 + description: "FidelityFX CAS header" + note: "Prepended to the sharpening shader of both backends." + source_ref: "nethersx2 v2.1-4248 libemucore.so 0x616bb0" + + - name: fxaa.fx + path: assets/shaders/common/fxaa.fx + required: false + bundled: true + size: 19420 + md5: 5cdeb2963c1b68c3ffb04a789cc66d6e + sha1: 3ac5f68049ed00d8ff3d2811bd09ef0c036efd0a + description: "FXAA shader source" + note: "Read by both backends when FXAA is enabled." + source_ref: "nethersx2 v2.1-4248 libemucore.so 0x6556c8, nethersx2 v2.1-4248 libemucore.so 0x65f020" + + - name: common_header.glsl + path: assets/shaders/opengl/common_header.glsl + required: false + bundled: true + size: 1863 + md5: 1dcf4ca0cc95f2f8e11b66c2ffeeaffe + sha1: 3f47597187030144498af7a92531e8f205561211 + description: "OpenGL shader preamble" + note: "Prepended to every OpenGL program the renderer builds." + source_ref: "nethersx2 v2.1-4248 libemucore.so 0x64c5d0" + + - name: convert.glsl + path: assets/shaders/opengl/convert.glsl + required: false + bundled: true + size: 11276 + md5: c3db4fcdd142912c0d9a07f3fb40bbbc + sha1: b2a059787ee297654b27f633e37382e239693a36 + description: "OpenGL format conversion shader" + source_ref: "nethersx2 v2.1-4248 libemucore.so 0x64cf14" + + - name: present.glsl + path: assets/shaders/opengl/present.glsl + required: false + bundled: true + size: 9458 + md5: afbb9a89f17ead2d8ce7252c1b44186f + sha1: bf2688971a8ef2f2c262c3c2ec579d3dd39793e6 + description: "OpenGL presentation shader" + source_ref: "nethersx2 v2.1-4248 libemucore.so 0x64d458" + + - name: merge.glsl + path: assets/shaders/opengl/merge.glsl + required: false + bundled: true + size: 455 + md5: 2c4d70f62928eac933eec932d7bfa0b3 + sha1: d1a3c11a1273e1d6c740e4eacc3159842f206683 + description: "OpenGL frame merge shader" + source_ref: "nethersx2 v2.1-4248 libemucore.so 0x64d758" + + - name: interlace.glsl + path: assets/shaders/opengl/interlace.glsl + required: false + bundled: true + size: 6246 + md5: 0e537dd838a7ecd3b687f3f7cc60a7be + sha1: e74e58f530abb4af02c0875c2f04d507e854869e + description: "OpenGL deinterlacing shader" + source_ref: "nethersx2 v2.1-4248 libemucore.so 0x64da84" + + - name: shadeboost.glsl + path: assets/shaders/opengl/shadeboost.glsl + required: false + bundled: true + size: 1457 + md5: 3d1e2be521a66cbfc2c5ff32057e7bf4 + sha1: 8d8b8966afd2ad840151f7fcb494739041708c89 + description: "OpenGL brightness and contrast shader" + source_ref: "nethersx2 v2.1-4248 libemucore.so 0x64dc8c" + + - name: cas.glsl + path: assets/shaders/opengl/cas.glsl + required: false + bundled: true + size: 2448 + md5: f8a684763e24557c97e3f5d05935bb3b + sha1: 1a69a0fc522caff98fc3829ebf3f12a6a006a058 + description: "OpenGL sharpening shader" + source_ref: "nethersx2 v2.1-4248 libemucore.so 0x64ee98" + + - name: tfx_vgs.glsl + path: assets/shaders/opengl/tfx_vgs.glsl + required: false + bundled: true + size: 5756 + md5: a97e9616f298bb9041bf9e45ee2ec597 + sha1: 0e9e98f766c9250b465af776d0077f49f797fed2 + description: "OpenGL texture function vertex and geometry shader" + source_ref: "nethersx2 v2.1-4248 libemucore.so 0x64f1f0" + + - name: tfx_fs.glsl + path: assets/shaders/opengl/tfx_fs.glsl + required: false + bundled: true + size: 26680 + md5: 24e39ca8f97a1ee4cbd1e9bf8b8da2fd + sha1: 00eb0418e7a25c89aaf7c526922fe45d83243ec5 + description: "OpenGL texture function fragment shader" + source_ref: "nethersx2 v2.1-4248 libemucore.so 0x64f200" + + - name: tfx.glsl + path: assets/shaders/vulkan/tfx.glsl + required: false + bundled: true + size: 29540 + md5: f80e78f88892f0b82ad154eee613f537 + sha1: aa06cffa086126bb4972674562a5f5c8dc6082f3 + description: "Vulkan texture function shader" + source_ref: "nethersx2 v2.1-4248 libemucore.so 0x65b1b0" + + - name: convert.glsl + path: assets/shaders/vulkan/convert.glsl + required: false + bundled: true + size: 9354 + md5: 7146002ee907b5242cf184d3d504fcec + sha1: b18a236b62e11a85c7ffda6ae60bfb312d6524ef + description: "Vulkan format conversion shader" + source_ref: "nethersx2 v2.1-4248 libemucore.so 0x65ca34, nethersx2 v2.1-4248 libemucore.so 0x65f008" + + - name: present.glsl + path: assets/shaders/vulkan/present.glsl + required: false + bundled: true + size: 8177 + md5: 72626d625bb963c6cd7074d4dfd0adda + sha1: 4871ee00b249b41d16232769e2f661bedd1c83db + description: "Vulkan presentation shader" + source_ref: "nethersx2 v2.1-4248 libemucore.so 0x65d7f0" + + - name: merge.glsl + path: assets/shaders/vulkan/merge.glsl + required: false + bundled: true + size: 669 + md5: b776383d21609db24d5348c381c2c286 + sha1: b09de39d6459c70ffab28dcb3e3ef879b1648674 + description: "Vulkan frame merge shader" + source_ref: "nethersx2 v2.1-4248 libemucore.so 0x65e84c" + + - name: interlace.glsl + path: assets/shaders/vulkan/interlace.glsl + required: false + bundled: true + size: 6707 + md5: bf3caa2532873593218bc4a09e924d4e + sha1: f8d14d80036f11707c7e94db2a77531d582019dd + description: "Vulkan deinterlacing shader" + source_ref: "nethersx2 v2.1-4248 libemucore.so 0x65e01c" + + - name: shadeboost.glsl + path: assets/shaders/vulkan/shadeboost.glsl + required: false + bundled: true + size: 1741 + md5: 366b45b6c4e9ed8e6b7454eebcb5d010 + sha1: 26b29f57685d8108cf519c4f1d340d43aacbff6e + description: "Vulkan brightness and contrast shader" + source_ref: "nethersx2 v2.1-4248 libemucore.so 0x65f2d4" + + - name: cas.glsl + path: assets/shaders/vulkan/cas.glsl + required: false + bundled: true + size: 2624 + md5: 56f3cf4de895dd4d32d6c79d564d0c5b + sha1: 709fd5393188f7cff0fe4230d0e3e8b69a82f5b9 + description: "Vulkan sharpening shader" + source_ref: "nethersx2 v2.1-4248 libemucore.so 0x65fa0c" + + - name: unlock.wav + path: assets/sounds/achievements/unlock.wav + required: false + bundled: true + size: 87714 + md5: 4d035ee86f836bfed422a975cf65c9cc + sha1: eb488a76217629f620e40287567d7e2b30337680 + description: "Achievement unlock sound" + note: "Handed to playSoundAsync, which opens it from the package and plays it through MediaPlayer." + source_ref: "nethersx2 v2.1-4248 libemucore.so 0x81cd38" + + - name: lbsubmit.wav + path: assets/sounds/achievements/lbsubmit.wav + required: false + bundled: true + size: 82096 + md5: fa6a7030a9f259ee7300dd0bd49f24f3 + sha1: 5ad1e110dcf0ffd26405981398892a82e4f3bad1 + description: "Leaderboard submission sound" + source_ref: "nethersx2 v2.1-4248 libemucore.so 0x81d464" + + - name: message.wav + path: assets/sounds/achievements/message.wav + required: false + bundled: true + size: 15696 + md5: d66b0bccd743bd11eaca55bcaec925da + sha1: c54f04b63ac6f04e0a0944ef260b5497e4494dbd + description: "Achievement notification sound" + source_ref: "nethersx2 v2.1-4248 libemucore.so 0x81bd44" + + - name: placeholder.png + path: assets/placeholder.png + required: false + bundled: true + size: 2762 + md5: 8f846541ccbf088ee7f8c49c8dcb3a6a + sha1: c36292ab7e16bf5a6cbc4063f638e24872349c45 + description: "Fallback interface texture" + note: >- + Requested from the texture cache when a notification or a loading screen + has no image of its own. The 4248 package names it without carrying one, + and the project adds it. + source_ref: "nethersx2 v2.1-4248 libemucore.so 0x7dcbf0, nethersx2 v2.1-4248 libemucore.so 0x7dd560, nethersx2 v2.1-4248 libemucore.so 0x8238dc" + + - name: ".png" + path: assets/icons/flags/NTSC-U.png + required: false + bundled: true + description: "Game list region flag" + note: >- + Loaded as icons/flags/.png with the region string of the entry. + Thirty are carried, seven NTSC and twenty-two PAL plus Other, the Polish + flag being one the project adds. + source_ref: "nethersx2 v2.1-4248 classes.dex icons/flags/%s.png" + + - name: "star-.png" + path: assets/icons/star-0.png + required: false + bundled: true + description: "Game list compatibility rating icon" + note: "Loaded as icons/star-.png for ratings 0 to 5." + source_ref: "nethersx2 v2.1-4248 classes.dex icons/star-%d.png" + + - name: faq.html + path: assets/faq.html + required: false + bundled: true + size: 14048 + md5: c2a64e0bcc401da9b0a3c7adf3cff410 + sha1: 9163d4a3d19b87483f843e4bf3afe236a50a72d2 + description: "Help page" + note: "Opened under the android_asset scheme in the built-in browser view." + source_ref: "nethersx2 v2.1-4248 classes.dex android_asset faq.html" + + - name: 3rdparty.html + path: assets/3rdparty.html + required: false + bundled: true + size: 90296 + md5: fb4ff036f3e4769aa6daefdc4c5dba57 + sha1: 7743bf1d7e6e09a02f1b2972aa63bd8a9f26050d + description: "Third party notices page" + note: "Opened under the android_asset scheme in the built-in browser view." + source_ref: "nethersx2 v2.1-4248 classes.dex android_asset 3rdparty.html" + +exclusion_note: > + Left out are the assets the package carries that no code path on this platform + opens. game_controller_db.txt is the largest of them: the desktop AetherSX2 + hands it to SDL, the Android library links no SDL at all and takes pad input + through handleControllerButtonEvent and handleControllerAxisEvent, and the + name appears in neither the library nor the dex of the 3668 and 4248 packages, + stock or patched. The same holds for the seven Direct3D shader sources under + shaders/dx11, for icons/AppIconLarge.png and cover-placeholder.png, for + fonts/Roboto-Regular-copyright and sounds/achievements/README.txt, which are + licence and credit texts, and for dexopt/baseline.prof and baseline.profm, + which the Android runtime consumes rather than the application. Also left out + is everything the emulator produces for itself under the data directory: + memory cards as Mcd.ps2, DEV9hdd.raw for the internal disk, save states, + screenshots, covers, texture dumps, logs, per-game settings, input profiles + and the gamedb and pipeline caches. The two branches the patch turns into + plain branches sit behind certificate comparisons and touch no file. + ref: nethersx2 v2.1-4248 libemucore.so 0x7ea914-0x7eaa8c, + nethersx2 v2.1-4248 libemucore.so 0x838560, + nethersx2 v2.1-4248 libemucore.so 0x83b324, + decomp/Hackify.bat:25-26