Releases: mininxd/NetherSX2-patch
Releases · mininxd/NetherSX2-patch
Release list
NetherSX2 v2.3 - ARM Mali GPU Optimized
This release brings major GPU rendering and memory allocation optimizations, tailored especially for Vulkan and ARM Mali GPUs globally, alongside clean vector touch controls and fully functional sub-native resolution scaling options.
🚀 Setup Wizard: Fast(Mali)/Unsafe Defaults
- Preset Button Updated: The Setup Wizard preset button label is changed from
Fast/Unsafe DefaultstoFast(Mali)/Unsafe Defaults, clearly indicating the Mali configuration while leaving the original description text and settings reset actions intact. - Pre-Selected by Default: On fresh installs, the Setup Wizard defaults to
Fast(Mali)/Unsafe Defaultsvia patchedclasses.dex. - Default Renderer to Vulkan: Completing the Setup Wizard writes Vulkan (
14) as the default backend instead of falling back to OpenGL (12). - Unsafe Preset Cycle Skip Fix: Patched
NativeLibrary.setDefaultSettingsinlibemucore.soso the Fast/Unsafe preset keepsEECycleSkip = 0(Normal) instead of2. This eliminates animation jitter, desync, and black screens across all games while retaining the 25% CPU boost from mild underclocking (EECycleRate = -1).
⚡ GPU & Vulkan Rendering Optimizations
1. Light Lag & Bloom Elimination (Minimum Blending Accuracy)
- Problem: When looking at light sources (sun glare, lens flares, streetlamps, bloom, coronas), games stack 30+ layered transparent blend passes in TBDR tile memory, causing frame rates to collapse from 60 to 15 FPS on Mali GPUs.
- Fix: Configured default Minimum Blending Accuracy (
accurate_blending_unit = "0"). Transparency math is computed in a single fast pass with zero tile thrashing.
2. In-Memory Texture Render Cache (Full Hash Cache)
- Feature: Enabled Full Texture Preloading (
texture_preloading = "2"). Decoded host textures (VkImage) remain resident in device RAM across frames, avoiding redundant re-rendering and texture-swap stutter.
3. Hardware Download Mode (HWDownloadMode = "1" - Disable Readbacks)
- Eliminates synchronous
vkCmdCopyImageToBufferGPU pipeline freezes during light occlusion checks.
4. Game-Specific Glitch & Stability Fixes
Black (All Regional Versions):
- SPS (Spiky Polygons Syndrome) Fix: Enforced
vuClampMode: 3(Extra) across all regional releases of Black (SLUS-21376,SLES-53886,SLES-54030,SLPM-66354,SLAJ-25078,SLKA-25372), completely eliminating vertex explosion and polygon tearing. - Light Strips & Sky Texture Fix: Preserved
autoFlush: 1,roundSprite: 1, andmipmap: 2to fix vertical light strips and lighting misalignment. - Lighting Preservation: Added
minimumBlendingLevel: 2so building and wall lighting render properly under global Minimum Blending.
Downhill Domination (SCUS-97177, SLES-52202):
- Sun & Lens Flare Removal: Embedded the community post-processing patch (
patch=1,EE,0029DBA5,byte,0) inGameIndex.yamlfor both default and CRC5AE01D98, completely disabling blinding sun glare and lens flares. Also disabledautoFlush(autoFlush: 0) for smooth 60 FPS gameplay.
Tales of the Abyss (SCAJ-20163, SLUS-21386):
- Disabled forced
autoFlush: 1stalls to eliminate TBDR tile flush overhead.
5. Unclamped Resolution Scalers (0.05x, 0.1x, 0.25x, 0.5x) in C++ Engine
- Patched the assembly in
libemucore.so(fmov s0, s1) to eliminate the hardcoded 0.5f clamp, activating true sub-0.5x rendering:0.05x Native (~24p): 1/20 native resolution0.1x Native (~48p): 1/10 native resolution0.25x Native (~120p): 1/4 native resolution0.5x Native (~240p): 1/2 native resolution
6. Vulkan-First Backend & Threaded Presentation
- Bypasses Mali's high-overhead OpenGL ES compiler and utilizes direct Vulkan command buffers.
- Decouples
vkQueuePresentKHRswapchain presentation calls into a dedicated presentation thread, eliminating frame-pacing micro-stutter. - Bypasses Mali dual-source blending bottlenecks via
DisableDualSourceBlend. - Conserves tile memory bandwidth via
SkipDuplicateFrames.
🧠 Core & CPU Allocation Enhancements (Mali / MediaTek / Exynos)
- Multi-Threaded VU1 (
EmuCore/Speedhacks/vuThread="true"):- Offloads Vector Unit 1 calculations to a separate CPU thread, unlocking 20%–50% throughput improvements on 8-core mobile processors.
- Performance Cores Affinity (
EmuCore/AffinityControlMode="7"):- Automatically pins emulation worker threads (EE, GS, VU1) to the high-performance Big cores (Cortex-A7x / Cortex-X) instead of letting the Android scheduler throttle threads onto power-saving Cortex-A55 Little cores.
- Fast CDVD (
EmuCore/Speedhacks/fastCDVD="true"):- Bypasses virtual disc seek delay.
🎨 Asset & Stability Fixes
- Purged Custom Controller PNGs: Completely stripped all custom PNG controller button overlays.
- Restored 34 Clean Vector XML Buttons: Injected the original AetherSX2 vector XML drawables (
ic_controller_*.xml). - Crash Prevention: Rebuilt using resource-ID preserving methods with no scrambled
resources.arsctable, guaranteeing clean launch without force-closing.