Files

593 lines
24 KiB
YAML

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: "f5f89b3b76e89a8f684da91cf5ad6e542825c0cb"
upstream_commit: "1d1f795dfc70e38da67724c7298779260f513889"
core_version: "2.1-4248"
display_name: "Sony - PlayStation 2 (NetherSX2)"
mode: standalone
cores:
- "nethersx2"
- "NetherSX2"
- "NETHERSX2"
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: "<module>.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: "<region>.png"
path: assets/icons/flags/NTSC-U.png
required: false
bundled: true
description: "Game list region flag"
note: >-
Loaded as icons/flags/<region>.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-<rating>.png"
path: assets/icons/star-0.png
required: false
bundled: true
description: "Game list compatibility rating icon"
note: "Loaded as icons/star-<rating>.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<nnn>.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