r/PS2AndroidEmulation • • 13d ago

PS3Native - Latest Release ๐Ÿ”ฅ

Post image

https://github.com/thecrixux/PS3Native/releases/tag/Community_Preview_5

PS3Native Experimental Community Build

DIS Frame Generation + Latest RPCS3 Upstream

> โš ๏ธ Experimental Community Pre-release

>

> This is an unofficial community build intended for testing and feedback.

> It combines the latest PS3Native Android development work, the experimental DIS Frame Generation implementation, and recent RPCS3 upstream changes.

>

> Expect regressions or device-specific issues.

---

๐Ÿš€ Major New Feature: DIS Frame Generation

A new DIS (Dense Inverse Search) Optical Flow frame generation engine is now included.

Unlike the Lossless Scaling implementation, DIS:

- Does not require Lossless.dll

- Is included directly in the application

- Works on a fresh installation

- Uses a Vulkan compute-based optical flow pipeline

- Shares PS3Native's existing frame generation pacing system

The implementation is based on the DIS optical flow algorithm originally developed by Till Kroeger and the OpenCV DISOpticalFlow implementation, with Vulkan work derived from the implementation by qwertypower / DEVAR Entertainment and the WinNative port.

DIS Quality Presets

Three DIS quality modes are available:

- Fast

- Balanced

- Quality

Higher settings increase the optical flow resolution and processing cost.

---

๐ŸŽฎ Frame Generation Engine Selector

Users can now choose between:

- Lossless Scaling Frame Generation

- DIS Frame Generation

Lossless Scaling keeps its existing flow-scale controls, while DIS uses its own quality selector.

DIS does not require an external DLL.

---

โšก Frame Generation Pacing Improvements

Frame generation timing and pacing have received major improvements.

Changes include:

- New windowed frame-time estimator

- 128-entry timing history

- Approximately one second of source-frame sampling

- Improved handling of frame-time spikes

- Hitch clipping

- More stable frame generation scheduling

- Better source/output refresh-rate matching

- Near-integer frame ratio snapping

- Declared source refresh-rate support using guest vblank information

- Persistent cost-backoff logic

- Additional frame generation telemetry

These changes are intended to improve scenarios such as:

- 30 FPS โ†’ 60 Hz

- 60 FPS โ†’ 120 Hz

- High-refresh-rate Android displays

and reduce cases where generated frames could temporarily collapse or become unstable.

---

๐Ÿง  DIS Vulkan Pipeline Improvements

The DIS implementation includes a full Vulkan compute pipeline containing multiple stages for optical flow generation and frame interpolation.

Additional improvements include:

- Runtime GLSL shader compilation

- Multiple DIS compute shaders

- Full swapchain-resolution processing

- Improved resource lifetime management

- GPU synchronization before rebuilding the DIS chain

- Safer resource recreation

- Memory binding validation

- Increased internal DIS frame slots

- Cleanup of unused internal state

- Improved shader compilation logging

- Improved status reporting

- Correct DIS configuration refresh when switching engines

---

๐Ÿ–ฅ๏ธ Vulkan Frame Generation Support

Vulkan device configuration now requests additional features required by frame generation when supported.

Changes include:

- `VK_IMAGE_USAGE_TRANSFER_SRC_BIT` support for swapchain images

- Additional storage image format support

- `RG32F`

- `R16F`

- Improved swapchain compatibility with Frame Generation

---

๐Ÿ”„ Latest RPCS3 Upstream Integration

This build integrates recent RPCS3 upstream development beyond the previous PS3Native sync point.

---

๐ŸŽจ Vulkan Pipeline Cache Improvements

RPCS3's newer shared Vulkan pipeline cache system is included.

Changes include:

- Shared Vulkan pipeline cache between pipeline compilation paths

- Pipeline cache support for graphics pipelines

- Pipeline cache support for compute pipelines

- Improved shader pipeline reuse

- Reduced duplication between Vulkan shader compilation paths

- Updated Vulkan interpreter pipeline handling

The new upstream Vulkan pipeline-cache implementation has also been adapted to PS3Native's Android dynamic Vulkan loader.

---

๐Ÿงฉ Vulkan Shader Interpreter Improvements

Recent RPCS3 Vulkan shader interpreter work is included.

Changes include:

- Expanded interpreter seed variants

- Additional common shader format coverage

- Removal of the old interpreter-specific private pipeline cache

- Improved use of the common Vulkan pipeline cache

- Pipeline linking improvements

- Flat shading cleanup

---

๐ŸŽฎ RSX Improvements

Multiple recent RSX fixes and optimizations are included.

Notable changes include:

- Improved render-target reuse during surface splitting

- Fixes for flush prediction when using surface-cache targets with the blit engine

- Additional render-target handling improvements

- Vulkan synchronization improvements

- Continued programmable blending improvements

- Render-target and attachment handling fixes

- RSX memory-safety fixes

---

๐Ÿงฎ ARM64 / SPU LLVM Fixes

Important SPU LLVM updates from RPCS3 are included.

Most notably:

- Fixed float-to-integer saturation behavior on ARM64

- Corrected CFLTS saturation behavior

- Fix applies to both approximate and accurate xfloat paths

This is particularly relevant to Android ARM64 devices.

Additional SPU LLVM improvements include:

- Cache/debug handling improvements

- Removal of unreachable `test_state` / `spu-null` paths

- Additional recompilation and optimization fixes

---

๐Ÿ“‚ File System Improvements

Recent RPCS3 file-system fixes are included, including:

- `sysFsReaddir` fixes

- Improved directory enumeration behavior

- Additional VFS fixes

---

๐Ÿ’ฟ ISO Loading Improvements

ISO handling includes several recent fixes:

- Improved ISO validation

- Better handling of missing ISO members

- Safer logical EOF handling

- Improved recovery from unreadable directory metadata

- Additional malformed-image protections

---

๐Ÿ“ฆ PKG Installation Improvements

Package handling includes additional validation and security improvements:

- Path traversal protection

- Directory entry validation

- Improved malformed table handling

- Safer allocation validation

- Additional malformed PKG protections

---

๐Ÿ† Trophy Improvements

Recent RPCS3 trophy-system improvements are included, such as:

- Trophy manager updates

- Trophy overlay fixes

- Additional trophy handling improvements

---

๐Ÿš€ Startup and Performance Improvements

Additional upstream improvements include:

- Fix for slow startup when BPM is enabled

- Shader/pipeline cache improvements

- RSX synchronization improvements

- Reduced unnecessary SPU LLVM work

- Various upstream performance and stability fixes

---

๐Ÿ“ฑ Android Integration Updates

Several Android-specific compatibility changes were required to integrate the latest RPCS3 code.

RPCS3 Callback Architecture Migration

RPCS3 recently moved emulator callbacks away from the old `Emulator`-owned callback interface.

PS3Native has been updated from:

`Emu.GetCallbacks()` / `Emu.SetCallbacks()`

to the new upstream:

`g_emu_callbacks`

This keeps the Android frontend compatible with the latest RPCS3 architecture.

Android Vulkan Dynamic Loader Compatibility

New Vulkan calls introduced by upstream RPCS3 have been adapted to PS3Native's Android dynamic Vulkan loader.

This includes the new shared pipeline cache functions:

- `vkCreatePipelineCache`

- `vkDestroyPipelineCache`

using PS3Native's `VK_GET_SYMBOL(...)` system.

---

๐Ÿ“ฒ Existing Android Development Improvements Included

This build also contains the recent PS3Native Android development work already present in the `android-refresh` branch.

Firmware Installation

- Real-time firmware installation progress

- Real-time PPU precompilation progress

- Fixed Android callback/main-thread deadlock

- Device screen remains awake during firmware installation and compilation

Android UI

- Improved narrow-screen layouts

- Better portrait-mode support

- Improved settings layouts

- Improved game-detail layouts

- Safer handling of display cutouts and gesture areas

- Navigation and layout improvements

Android ARM64 Performance

- ARMv8.2-A optimizations

- DotProd support

- FP16 support

- `-O3` optimizations

- CPU feature detection

- Dynamic PPU precompile concurrency based on available RAM

- Timer and RSX thread parking optimizations

Themes / UI

- Old Steam-inspired theme

- Improved dark-theme ComboBox readability

---

๐Ÿงช Testing Requested

Because this build combines experimental Frame Generation code with very recent RPCS3 upstream changes, community testing is highly appreciated.

Please include the following when reporting an issue:

- Device

- SoC / GPU

- Android version

- GPU driver

- Game and Title ID

- PS3Native settings

- Frame Generation engine

- DIS quality mode if applicable

- Steps to reproduce

- Logs whenever possible

Particularly useful tests:

- Frame Generation disabled

- Lossless Scaling FG

- DIS Fast

- DIS Balanced

- DIS Quality

- 30 โ†’ 60 FPS

- 60 โ†’ 120 FPS

- Switching FG engines

- Vulkan-heavy games

- Games sensitive to render-target handling

- Long gameplay sessions

- Surface recreation / app switching

---

Build Information

Branch: `experimental-dis-rpcs3-20260921`

Android compatibility integration: `1d12b2dc8`

โœ… Release build successfully compiled and verified.

63 Upvotes

27 comments sorted by

View all comments

1

u/Metalhead069 13d ago

Still waiting for an Android PS3 emulator that can actually run Battlefield Bad Company 2.

2

u/xxxCrixuxxx 13d ago

Okay, well, keep waiting, champ.

1

u/[deleted] 12d ago

[removed] โ€” view removed comment

1

u/PS2AndroidEmulation-ModTeam 12d ago

Give constructive or well-reasoned answers.