DuckStation is Cross-Platform Sony PlayStation(TM) console emulator known for fast and stable. In android i think it best PSX emulator in the playstore, and its free. Duckstation is also Open Source but not for the Android version.

The feature I really like is the Post Processing shader feature for Scanline, but sadly compared to PC version (Linux/Windows), Duckstation for Android does not have Post-Processing Shaders. Android / Linux / Windows Version has the same core but why Android version does not have Post-Processing Shaders in them? maybe Stenzek the developer forgot about inserting this settings menu in Android Application (Duckstation for Android 0.1-4582-g47b012fd).

So, there a way to enable this Post Processing Shaders Chain in Android, since its use the same core, but its only work with Vulkan GPU renderer in my Poco X3 Pro, not in OpenGL, and sadly it need a Rooted Android since we edit the setting file in /data folder. I don't know why stenzek decided to save the settings file in a shared folder, even though it's easier to store it on SDCARD for example.

How to Enable Post Processing Shaders on DuckStation Android

*This Process Require a Rooted Android.
*In my Poco X3 Pro it only work with Vulkan GPU. If i used OpenGL backend, in the logcat its complain about AdrenoGLES-0: ERROR: Invalid #version and file bad_shader_*.txt is created in duckstation root folder, with #version 320 in the top of the file.

  • Copy com.github.stenzek.duckstation_preferences.xml in folder /data/data/com.github.stenzek.duckstation/shared_prefs to SDCARD, and copy one more time for backup purpose.
  • Open the copied file and insert the following line before </map>
            <boolean name="Display/PostProcessing" value="true"/>
            <string name="Display/PostProcessChain">dolphinfx/scanlines;A_SCANLINE_TYPE=0;B_SCANLINE_INTENSITY=0.18;B_SCANLINE_THICKNESS=0.5;B_SCANLINE_BRIGHTNESS=1.1;B_SCANLINE_SPACING=0.25</string>
    The result will look like this
            <boolean name="Display/PostProcessing" value="true"/>
            <string name="Display/PostProcessChain">dolphinfx/scanlines;A_SCANLINE_TYPE=0;B_SCANLINE_INTENSITY=0.18;B_SCANLINE_THICKNESS=0.5;B_SCANLINE_BRIGHTNESS=1.1;B_SCANLINE_SPACING=0.25</string>
        </map>
  • Save the file and copy back to overwrite in /data/data/com.github.stenzek.duckstation/shared_prefs
  • Open duckstation.apk file as Zip to and extract shaders folder to root of duckstation folder. as for me is in /storage/emulated/0/duckstation, if its hard to extract you can download the given link to download shaders folder in the bottom of this post.
  • Open DuckStation App and change General > App Settings > General > GPU Renderer to Vulkan.
The above process is only for adding single Shaders effect which is scanline, duckstation can be used with multiple shader, if you have multiple shaders chain enabled in the PC, grab and replace the "Display/PostProcessChain value.

As for the manual this is the value grabbed from PC version:
if you want to use multiple shaderd, just copy and delimit using delimiter.
Syntax delimiter is : (division sign)
	shaderA:shaderB

Cccalibrator
Cccalibrator;LUMINANCE=1.2;ORANGECYAN=1.2;MAGENTAGREEN=1.2;BLACK=10;WHITE=240;NOISE=10;SATURATION=50

dolphinfx/bloom
dolphinfx/bloom;A_BLOOM_TYPE=0;B_BLOOM_STRENGTH=0.22;C_BLEND_STRENGTH=1;D_B_DEFOCUS=2;D_BLOOM_WIDTH=3.2;E_BLOOM_REDS=0.02;F_BLOOM_GREENS=0.01;G_BLOOM_BLUES=0.01

dolphinfx/celshading
dolphinfx/celshading;A_EDGE_STRENGTH=1;B_EDGE_FILTER=0.6;C_EDGE_THICKNESS=1;D_PALETTE_TYPE=1;E_YUV_LUMA=0;G_COLOR_ROUNDING=1

dolphinfx/scanlines
dolphinfx/scanlines;A_SCANLINE_TYPE=0;B_SCANLINE_INTENSITY=0.18;B_SCANLINE_THICKNESS=0.5;B_SCANLINE_BRIGHTNESS=1.1;B_SCANLINE_SPACING=0.25

simple-brightness
simple-brightness;BRIGHTNESS_SCALE=1

simple-gamma
simple-gamma;GAMMA_IN=2.2;GAMMA_OUT=2.2

simple-sharpen
simple-sharpen

Without Scanline
With Scanline

Shaderd Download from Gdrive
Loading comments...
Misc