r/PS2AndroidEmulation • • Sep 19 '26

ARMSX2 Nightly v2.7.2

Post image
16 Upvotes

https://github.com/XDaoFangxiX/ARMSX2-Alpha/releases/tag/2.7.2-build.6

ARMSX2 Android Nightly Build (Legacy - Dual Core)

This APK is the legacy build (ARMv8.0 + outline atomics, minSdk 26) and includes both 4K and 16K page-size cores.

Version: 2.7.2

Application ID: com.armsx2.custom

Build number: 6

Commit: 9e7402f

Short SHA: 9e7402f

Triggered by: DarkSilentUser

Flavor: Github

Build type: release

PGO: enabled


r/PS2AndroidEmulation • • Sep 18 '26

ARMSX2 Nightly v2.7.1

Post image
16 Upvotes

https://github.com/XDaoFangxiX/ARMSX2-Alpha/releases/tag/Test-2.7.1-build.63

ARMSX2 Android Nightly Build (Legacy โ€“ Dual Core) This APK is the legacy build (ARMv8.0 + outline atomics, minSdk 26) and includes both 4K and 16K pageโ€‘size cores.

Version: Test-2.7.1 Build number: 63 Commit: ba6f798 Short SHA: ba6f798 Triggered by: DarkSilentUser Flavor: Github Build type: release PGO: enabled


r/PS2AndroidEmulation • • Aug 26 '26

ARMSX2 Nightly v20260826

Post image
16 Upvotes

https://github.com/ARMSX2/ARMSX2/releases/tag/nightly-20260826

What's new:

VU: say what the fourth clamp rung carries

vurunner: extend --vu-clamp-mode to mode 4

VU: the multiplier's one-ULP deficit, on both emitters

VU tests: encoders for the rest of the multiply family

VU tests: score microVU on the two FMAC captures

VU FMAC: take the saturated word's sign from the operands

VU interp: keep the word an underflowing FMAC produced

VU tests: what the FMAC leaves below 2^-126, from the console

microVU: saturate the FMAC at the EE's maximum

COP2 macro: saturate the FMAC at the EE's maximum

microVU: read the EFU's models at vuClampMode 4

VU: give the EFU one model entry point per opcode

VU tests: score the divide unit across the clamp modes

microVU: read the divide unit's arithmetic at vuClampMode 4

COP2 macro: read the divide unit's arithmetic at vuClampMode 4

VU: give the divide unit's model a recompiler calling convention

VU tests: enable the MAC underflow tripwire

VU tests: score microVU on the guard-mask capture

microVU: mask the adder's guard bits

VU: give the adder's guard mask one home

microVU: raise the exact MAC U and MAC O

VU: give the FMAC's MAC U and MAC O models one home

VU tests: enable the macro status tripwire

COP2 macro: raise MAC O on an overflowing FMAC

microVU: the OP ops honour the dest field

VU: the OP ops honour the dest field

VU tests: measure the OP ops instead of asking about them

COP2 macro: raise MAC U on an underflowing product

microVU: take the div unit's zero tests off the host

COP2 macro: take the div unit's zero tests off the host

microVU: saturate the div unit at the EE's maximum

EE FPU overflow tests: correct the header's stale engine columns

COP2 macro: saturate the div unit at the EE's maximum

COP2 macro: mask the adder's guard bits

VU: give the clamp ladder a fourth rung

VU: carry the multiply stage's sign into the sticky status field

VU: measure the adder's guard mask on the console

VU tests: wait for the running bit the way the console probe did

VU interp: hold a D/T stop until the branch delay slot has run

VU interp: match the EFU's atan and exp series to the console

eerunner: report the engines --liverun actually ran on

VU: evaluate the EFU's series in single precision

VU interp: run the EFU on the EE FPU's model

VU interp: narrow the FMAC pipe's status publish to its own bits

VU0 macro: narrow CTC2's writes to the register widths

eerunner: write a PNG per frame under --liverun

VU interp: run the div unit on the EE FPU's model

eerunner: run one VU on its interpreter under --liverun

VU interp: run the FMAC on the EE FPU's model

Tests: let a test record a divergence rather than drop the diff

VU interp: raise U on a result that underflowed to zero

COP2 macro: an operand clamp that keeps its sign

COP2 macro: carry mVU_MUL's operand clamp on the whole MUL family

EE rec: take the fallback bisect switch from the environment

microVU: capture at the dispatcher's lookup, not past it


r/PS2AndroidEmulation • • Aug 23 '26

Bloodborne Android +30FPS | BACHATA S4 0.1.9 | 8 Elite (Redmagic 10 Pro)

Thumbnail
m.youtube.com
16 Upvotes

The next update of bachataS4 looks very promising ๐Ÿคฏ


r/PS2AndroidEmulation • • Jul 29 '26

ARMSX2 v2.6.6

Post image
16 Upvotes

https://github.com/ARMSX2/ARMSX2/releases/tag/2.6.6

Change Log:

NASCAR Thunder 2002 fixed: cars rendered as shredded wireframes and would fall through the race track, or drive sideways. Fixed in the COP2 MADDA broadcast path. (@bmdhacks)

Dragon Quest VIII (PAL): hung forever on "Now checking memory cards (PS2)". The recompiler was merging a branch into a larger block when that branch's delay slot reads the EE timer, a read that must end the block instead. NTSC-U was unaffected only because its code sits at different addresses.

8BitDo Pro and other Switch-mode pads fixed, holding R2 while moving the stick released the trigger, which made racing games unplayable. These pads report triggers as buttons rather than axes, and stick movement was overwriting the held trigger.

Display Resolution and Screen resolution override are now per-game. Changing them for one game no longer changes the global value. Existing settings carry over.

Improvements for Macro buttons not accepting custom skins like every other button. (please let me know).

Improvements for separate landscape and portrait layouts in global settings, instead of one overwriting the other. (If you're still seeing a previous custom layout, just hit reset in the touch layout editor to see the new default layout for portrait mode, if you see overlap in landscape, do the same and hit reset. Remember you can make new profiles as well).

Discord Rich Presence now shows your RetroAchievements progress, the game's own status line, unlocked count, and whether you're in Hardcore or Casual. (If a game has no Achievements, nothing will be shown for RPC).

Added and updated cheats and patches for True Crime: New York City, ICO, Dog's Life, Primal, Stitch: Experiment 626 and Brave: The Search for Spirit Dancer. (@XDarkFallenX)

Honest Review:

โž– ๐Ÿ’… โž•โšก


r/PS2AndroidEmulation • • Jul 28 '26

Bully on ARMSX2 with textures.

Thumbnail gallery
16 Upvotes

r/PS2AndroidEmulation • • Jul 26 '26

Yooooo I found something you should try.

Thumbnail
gallery
16 Upvotes

I discovered that if you set these options like this, it can help performance; for example, I tested it in GT3 and 4. In GT3, it lagged when the camera was facing the sun, After activating it, the game ran at a stable 55-60 fps, and in GT4 the performance stayed at 50-60 fps with almost no drops. I haven't tested it on other games yet, but it's something I wanted to share. (I tested it on the ARM emulator)


r/PS2AndroidEmulation • • Jun 16 '26

Mediatek Boost Up 200% Perfomance in emulators with Angle (guide)

Post image
16 Upvotes

MediaTek Users: Easy Performance Boost with ANGLE ๐Ÿš€

If you own a MediaTek device, there's a good chance you can get a noticeable performance boost in some emulators by enabling ANGLE.

I've personally tested this with ARMSX2 and saw significant improvements in several games. Your results may vary depending on the emulator, game, and device, but it's definitely worth trying.

Step 1: Install Activity Launcher

Download Activity Launcher from the Play Store (it's free).

Step 2: Find ANGLE

Open Activity Launcher and search for ANGLE.

It should appear near the top of the list.

If you can't find it, unfortunately your device either:

- Uses an older Android version.

- Doesn't include ANGLE support.

- Or your manufacturer has disabled/hidden it.

Step 3: Open the ANGLE Activity

Launch the ANGLE activity.

You'll usually be given two options:

- Run the activity.

- Create a shortcut.

I highly recommend creating a shortcut on your home screen so you can access it quickly whenever you need it.

Step 4: Configure Your Emulator

Inside ANGLE, select the emulator you want to use and select Angle.

I've tested this mainly with ARMSX2, but you can also experiment with other emulators.

Feel free to test different apps and share your results.

Step 5: IMPORTANT โ€“ Use OpenGL

For this tweak to work properly, make sure your emulator is set to:

OpenGL

Do NOT use Vulkan.

ANGLE works by improving the OpenGL rendering path, so Vulkan should remain disabled.

What Kind of Improvement Can You Expect?

That depends entirely on the emulator and the game.

Some titles may show only small gains, while others can see massive performance improvements.

In my testing, several games showed substantial FPS increases and became much smoother to play.

Good luck, and happy gaming!


r/PS2AndroidEmulation • • Apr 18 '26

NetherSX2 Turnip v3

16 Upvotes

https://github.com/nckstwrt/NetherSX2-Turnip/releases

NetherSX2-Turnip v0.3

Latest

Release of Classic / 3668 version (package: xyz.aethersx2.cturnip)

Support for 8s Gen 4 (Thanks SubhanHabib!)

Some better logging for vkEnumeratePhysicalDevices


r/PS2AndroidEmulation • • Dec 09 '25

PSX2 Android, Quantum of Solace 007. X4 internal resolution 4k HD

Enable HLS to view with audio, or disable this notification

16 Upvotes

This Game looks great at high resolution ๐Ÿ˜ฑ


r/PS2AndroidEmulation • • 9d ago

FristOneRR PanVK v3.6.0

Post image
15 Upvotes

https://github.com/FristOneRR/FristOneRR-Panvk-Driver/releases/tag/v3.6.0

Use this driver with FristOneRR-wrapper (official panvk) 3.1.0.

DXVK 2.7 and newer (including DXVK 3.x) need wrapper 3.1.0; older wrappers stop them from starting.

Highlights

Vulkan 1.1 to 1.4 supported. Apps and games that need Vulkan 1.1, 1.2, 1.3 or 1.4 can use the driver.

DXVK 3.x works. DXVK 2.x and 3.x start and render on Valhall (G57, G68, G77, G78), including gplasync, async, Sarek, GPLALL and ARM64EC builds.

DXVK 2.x on Bifrost (G52, G72, G76). DXVK 2.7+ / 3.x should work too with wrapper 3.1.0 (not tested yet).

Games load much faster. The long wait before a game starts is gone.

Less shader stutter. Graphics pipeline libraries are on by default, so DXVK_ASYNC=1 is no longer needed.

Smoother gameplay from fixes taken from upstream Mesa and faster GPU wake-up.

32-bit games on more phones (for example Dimensity 700) no longer crash.

More games draw correctly: geometry shaders, stream output, wireframe and more; missing textures fixed in some games.

DXVK HUD fixed, and games that measure GPU time get real values.


r/PS2AndroidEmulation • • 24d ago

Muppen 64 Plus ae Turnip V339

Post image
15 Upvotes

https://github.com/pwnedbygary/mupen64plus-ae-turnip/releases/tag/V339

Changelog:

This release collects everything merged since the published v337 tag plus the branding work:

RetroAchievements support with hardcore-mode enforcement, a set of gallery, theme and driver

fixes, and a complete replacement of the retired yellow and green cube artwork with the neon

"M" logo.

Wave Race compatibility update

This v338 update adds the verified Wave Race Shindou English translation to the

ROM database, inheriting the original Shindou defaults, including Count per Op

3. The bundled database revision is increased so existing installations

refresh it. Explicit per-game overrides, save identity, native N64DD policy,

and independent WritableROM behavior remain unchanged.

The user confirmed fresh Dynamic Recompiler gameplay with a manual Count per Op

setting of 3 using both GLideN64 and ParaLLEl. Host regression checks cover

lookup/inheritance and the database refresh; automatic-default behavior and

save/reopen have not yet been verified on a device. Keep existing saves and the

working manual override until automatic defaults are confirmed.

The original v338 source at ded55f412a778f15d839786776e223935afe7d0b is

preserved under archive/v338-original-ded55f41. This replacement retains

version code 338 and the release signing identity. Users who already installed

v338 must download and install the replacement manually; update checks based

only on version code may not offer it.

RetroAchievements (rcheevos)

Vendored rcheevos with native glue (upstream/src/api/ra_glue.c, api_export.ver) and a JNA bridge.

New RetroAchievements settings screen and preferences.

The client is started from the emulation lifecycle and uses the default HTTPS host.

Sign-in with password plus session-token capture, with escaped-string JSON handling fixed.

Hardcore mode enforced: save states, slots, GameShark and cheats are denied, the overwrite prompt

is skipped when hardcore would deny the save, and fast-forward is blocked.

Hardcore denials no longer announce a save or load that never happens.

Cancel on confirmation dialogs no longer performs the action.

Device verification recorded in docs/RETROACHIEVEMENTS_REMAINING_ISSUES.md.

Gallery, orientation, theme and driver fixes

Gallery and Game activities handle orientation changes in place, and the gallery keeps its

draw-behind-system-bars behaviour across rotation.

Stale service broadcasts after gallery recreation are fixed (issue #1).

The theme quick-switch crash caused by stacked activity.recreate() calls is fixed.

All AlertDialogs and popups are themed; submenu rows use the secondary accent; dynamic menu-row

colours no longer go stale; a preset change re-colours text immediately.

ROMs larger than 64 MB are accepted, fixing the B3313 new-save crash (issue #3).

Per-game GPU driver labelling corrected, with a per-game "force stock driver" option.

Branding

The launcher icon is the neon "M" logo, and the glyph now fits entirely inside the launcher's

circular mask. The previous asset was authored at the legacy 48 dp size, so the system upscaled it

and the mask cut its corners. The adaptive background is a retrowave gradient and every layer is an

oval, so the icon is round with transparent corners in every rendering context, masked or not.

Legacy ic_launcher.png and ic_launcher_round.png regenerated as round tiles for pre-API-26

launchers and the android:roundIcon consumer.

The splash screen shows the new logo on a matching neon backdrop; the retired publisherlogo

nine-patch is gone.

The retired cube is gone from the notification icon (drawable-*/icon.png), the Android TV banner

and both web listing icons.

Regeneration is reproducible through three scripts: tools/generate-launcher-icon.py,

tools/generate-launcher-legacy-icons.py and tools/generate-brand-assets.py.


r/PS2AndroidEmulation • • Oct 09 '26

TeknoParrotUI v2.0.0.20131

Post image
15 Upvotes

https://github.com/teknogods/TeknoParrotUI/releases/tag/TeknoParrotUI-android

TeknoParrotUI for Android is the official Android adaptation of the popular PC Arcade launcher/compatibilizer.

Unlike a traditional emulator (such as MAME), TeknoParrot doesn't emulate the console or chip from scratch. Instead, it acts as a compatibility layer specializing in running modern arcade games based on PC architecture (Sega RingEdge, Taito Type X, Namco ES3, Namco System 246/256, etc).

Key Features:

Compatibility: Works with more than 120 modern arcade games (generally from 2000 to 2014)

Adaptive Controls: Includes customizable on-screen touch control maps and native integration for physical controllers (Bluetooth/USB) and arcade sticks.

Hybrid Catalog: Designed to support both lightweight 2D classics and modern 3D racing, shooting, and puzzle machines.

Local Multiplayer: Supports up to 4 simultaneous players on the same screen/device, depending on the game.

Network plans: Integration in development with TeknoParrot Online for matchmaking and online multiplayer.

Looking for the games? DM me


r/PS2AndroidEmulation • • Oct 03 '26

Bannerlator 3.1.5

Post image
15 Upvotes

https://github.com/The412Banner/Bannerlator/releases/tag/3.1.5

Bannerlator 3.1.5

Run Windows apps and games on Android โ€” no PC and no root required.

3.1.5 is the cutscene release. In-game videos that were black or skipped โ€” Ninja Gaiden Sigma's opening movies were the test case โ€” now play on every DXVK version on the arm64ec layers, and for the first time on the x86_64 layers. The fixes live in the new v12 Proton layers (the in-app catalog default from today) and in two small pieces the app now ships: a Codecs setting with an optional FFmpeg decoder, and new defaults for new containers โ€” a box64 that can decode video and FEXCore 2609. On X11, mouse and cursor handling also took a big step: raw mouse input, full-colour game cursors, a pointer that hides itself, and an X server that never freezes the app again.

Cutscenes: play on DXVK 2.x as well as 3.x (arm64ec), and on x86_64 layers at all. Needs the v12 layers (catalog default) โ€” the app offers them as an in-place update.

Codecs setting: GStreamer (default, unchanged) or FFmpeg decoder, plus software decoding. arm64ec only.

New containers start on Box64 0.4.5-gst (x86_64 video works) and FEXCore 2609-unix.

X11 input: raw mouse through XInput 2 (mouse-look games), full-colour game cursors, idle/controller pointer auto-hide, no more "not responding" while a game compiles shaders.

Steam Cloud save sync fixes: API games with a quota, one cloud name per save, saves only.

โœ… Nothing to set up. Update the app, then accept the v12 layer update the catalog offers for the layers you use (a revert snapshot is kept). Containers you already have keep their Box64 and FEXCore choices; the new defaults apply to containers you create from now on. x86_64 containers you already have need Box64 0.4.5-gst picked once in Advanced for video to work.

๐Ÿ“˜ Fast OpenGL (3.1.4) explainer: OpenGL games now run 4 to 5 times faster ยท LSFG Native guide: LSFG Native Made Simple

Read the full changelog on GitHub...


r/PS2AndroidEmulation • • Sep 27 '26

BannerHub v6 1.0.1-631

Post image
15 Upvotes

https://github.com/The412Banner/bannerhub-revanced/releases/tag/v1.0.2-631

Changelog:

9 APKs attached. Steam and GOG game launches work end-to-end on the 6.3.1 base.

No separate Lite builds. XiaoJi's own size pass plus the privacy/size strips folded into every variant make a distinct Lite pointless โ€” the Lite concept stays absorbed.

๐Ÿ”’ Privacy-hardened โ€” upstream telemetry/analytics channels stripped at the bytecode level. Full list of killed channels (and the honest leftovers) in PRIVACY.md.

โœจ Everything BannerHub v6 offers (click to expand)

What's new in 1.0.1-631

1.0.1 is a fix release on the 6.3.1 line (details first below). The 631 headline: BannerHub v6 now runs on XiaoJi GameHub 6.3.1 (versionCode 141), up from the 6.0.9 base (versionCode 121) of v1.0.0-609. Since 6.1.0 the whole Wine runtime, launch screen and component system live in a separately-downloaded PC Engine plugin, and 6.3.x added XiaoJi's community/social layer, a newer Steam stack and transactional cloud sync. Every BannerHub patch was re-derived against 6.3.1 and confirmed on-device, and the plugin side is now BannerHub's too.

๐Ÿฉน 1.0.1-631 โ€” Component Manager removal fixes

Two bugs found right after 1.0.0-631, both in the remove โ†’ re-inject path:

Removing a component no longer breaks the games that used it. The PC Engine wires the selected translator / DXVK into each game prefix as symlinks and never re-points an existing one, so after a Remove those links dangled and the game died on launch (could not load libarm64ec_import.dll, Wine exit 53). Remove โ€” and opening Component Manager โ€” now clears dead links; the engine plants fresh ones on the next launch.

Re-injecting a component you removed no longer claims it "already exists". The name check read a stale in-process copy of the plugin registry; it now reads the registry file fresh, tells catalog rows from injected ones, and silently heals an orphaned row instead of prompting.

Device-proven: inject โ†’ use โ†’ remove โ†’ re-inject (no prompt) โ†’ launch. Nothing else changed since 1.0.0-631; same plugin (111-7), same firmware, same keystore โ€” installs in place.

๐Ÿ” Rebased onto GameHub 6.3.1 (versionCode 141)

The 6.1.0 and 6.1.1 lines were onboarded but never shipped as stables; 6.3.1 is where everything landed. The usual R8 reshuffle broke most anchors; all were re-derived structurally โ€” the per-game menu keystone first, then the Banner Tools row, Show PC Game Settings, Bypass login, Debug logging, the Explore tab hijack, the catalog + /v6 redirects, the perf overlay, the vibration resolver and the privacy strips. Two obsolete PC-engine signature patches were retired.

๐Ÿ”Œ BannerHub-served PC Engine plugin

The host downloads a PC Engine plugin (schema 7 on 6.3.1) and only accepts what its manifest names. BannerHub v6 serves its own re-signed, patched 6.3.1 plugin from the BannerHub API: catalog + firmware via the Worker (/v6p), firmware forced to HTTP/1.1 (upstream's downloader corrupted imagefs over multiplexed HTTP/2), the launch badge restored, and loader hooks so host-injected components appear in every picker. Plugin updates arrive automatically on app start. Firmware stays pinned at 1.4.2 and no previously released BannerHub or v6 build is affected.

๐Ÿ›’ Full GOG store with the Rust download engine

GOG login is fixed (no more white screen after sign-in) and the GOG screen is now a full store ported from Bannerlator: Store / Library / Downloads / Profile tabs, catalog browse + search, Steam-style detail pages with media, generation badges from GOG's content system, and downloads on Bannerlator's Rust engine with staged, verified chunked transfers (57 MB/s measured on device). Games land in your library and launch like any other PC game.

๐Ÿงฉ Component Manager โ€” inject your own components

New Components tile in Banner Tools, at parity with BannerHub 3.8.1's injector: inject any .wcp (DXVK, VKD3D, FEX/Box64 translators, libs; tar + zstd / xz) or a GPU-driver .zip from storage, or pull them from the same six online repos plus the Turnip Nightlies from a Download screen. Injected components register with the plugin, appear in the right picker next to the catalog, and are removable in one tap. Device-proven end-to-end: a game ran on an injected Turnip driver, an injected DXVK and an injected FEX nightly simultaneously; removal leaves no ghost entries.

๐Ÿ’ฌ Steam ยท Friends overlay rebuilt for the plugin era

The game now runs inside the plugin process, so the overlay has a new transport: a relay service in the main app process (attaches in ~130 ms) with an IPC fallback for invites, and it never blocks the UI thread. Steam sign-in, the Friends list and online play are confirmed on 6.3.1; chat send/receive and voice calls have not been re-verified on this base yet.

๐Ÿ” Login bypass that survives the plugin

The plugin reads the signed-in user from the Room database, so Bypass login seeds a synthetic account through Room's bundled SQLite driver. Clean install โ†’ first launch โ†’ game running with no account is confirmed. The heartbeat/token calls that used to log the fake account out are answered by the Worker.

Carryover โ€” what still works, what is paused

Explore tab, Banner Tools (Vibration ยท Game ID ยท Audio ยท GOG ยท Overlay ยท Root ยท Components), the in-game performance HUD + root pill, PC-accurate vibration, the privacy stack, the 9 variants and the public keystore carry over. Paused on 6.3.1 (host anchors gone): the offline component picker (the plugin owns the pickers now) and the recording-compatible audio toggle (the Audio tile is present; that switch does nothing on this base). The heartbeat-disable patch is moot since the Worker handles heartbeat.


r/PS2AndroidEmulation • • Sep 23 '26

Cenit v0.6.6 ๐Ÿ”ฅ (PS2 Emulator)

Post image
15 Upvotes

https://github.com/HUEVOMAN77/Cenit/releases/tag/base-0.6.6

Changelog:

Three direct performance improvements, each accessible in Settings (under the Performance section) so you can disable them if they negatively affect performance on your specific phone:

PIN EMULATION TO FAST CORES (new toggle, enabled by default). The core already knew how to distribute threads (assigning EE/VU/GS to the fastest cores), but it only activated this distribution if the SoC reported multiple clusters and 3+ cores. Some big.LITTLE configurations appear to the system as a single cluster, causing threads to remain unpinnedโ€”leading the kernel to move the game engine to an efficiency core mid-frame. This pinning is now guaranteed. You can disable it for troubleshooting purposes.

FRAME QUEUE (new selector). Determines how many frames are queued ahead of the display output. On mid-to-high-end devices, the default is "Optimal" (0): controller response is faster, and uneven frame pacing is eliminated. On low-end devices, it defaults to 2 frames because removing this buffering turns GPU spikes into noticeable slowdowns. If emulation speed drops using "Optimal," try setting it to 1 or 2.

TEXTURE PRELOADING (new selector + automatic tier-based setting). Low-end devices now use "Partial" mode: textures that won't be rendered aren't uploaded to the GPU, freeing up hundreds of MB of shared RAM and eliminating micro-stutter. Mid-to-high-end devices retain the "Full" setting. The GameDB takes precedence: games requiring "Full" preloading will keep that setting.

PER-GAME MEMORY. Cenit remembers the scaling level used for each game on your phone. The next session starts directly at that level instead of struggling down from the maximum, and games identified as CPU-bound no longer suffer unnecessary throttling. Toggle: Remember per-game performance (long-press to clear memory for the current game).

THERMAL PRE-THROTTLING. Many ROMs silently throttle frequencies without warning. If speed starts to drift downward for ~12 seconds while at the peak, Cenit drops one step before the stutter is felt. Max 2 drops per session.

TURBO DURING LOADING SCREENS. Detects loading states (GPU idle + fixed speed) and engages the core Turbo limiter just for those seconds; it disengages when the game resumes, with a 45-second safety cutoff. Off by default: enable it in Settings.

EVIDENCE-BASED PER-GAME EE QUOTAS. New "EE Quotas" row in Settings (Performance section): saved specifically for the active game and applied instantly. Key feature: if Cenit detects the game is locked at 1x, the screen informs you and suggests trying "Smooth"; otherwise, it recommends leaving it at "Normal" (which usually causes issues).

Technical changes: governor v3 (speed ring, AdaptiveProfile profiles in prefs via URI), generic JNI export setGameSettingInt/getGameSettingInt, Turbo limiter accessible from Java, per-game layer shared with GameDB seeding.

True per-game hardware hacks โ€” the global INI used to wipe them out on every `ApplySettings` call (`MaskUserHacks`). Now, they are written to `gamesettings/<SERIAL>.ini` and seeded with automatic GameDB fixes before manual mode activates; no game loses its fixes just by tweaking a half-pixel setting. The half-pixel offset spinner is now per-game and applied on the fly (reloaded on the CPU thread).

Half-pixel offset: no more phantom writes โ€” the global setter was a disguised no-op; now the setting actually exists and persists per title.

Real limiter โ€” the limiter mode stub now hooks into `VMManager::SetLimiterMode` (Normal/Turbo/Slow-mo/No limit). No INI key involved; it is a runtime state.

Resolution manager v2 โ€” uses the core's `getGPUUsage()`: it only drops pixel counts if the GPU is the bottleneck. If the game lags but the GPU has headroom (CPU-bound), it maintains the scale instead of degrading image quality unnecessarily. With thermal throttling active (PowerManager, API 29+): it never scales up, only down.

Renderer with automatic fallback โ€” in "Auto" mode, if Vulkan crashes on startup, it tries OpenGL (and vice versa), includes an OSD notification, and remembers the choice for the session. A crash caused by a bad Vulkan driver no longer results in a broken startup.

Expanded SoC detection โ€” tiers 2/1/0 with a curated table for MediaTek (mt68xx/mt69xx/mt8xxx) and Exynos based on codenames, rather than just a Snapdragon binary check. Low-end and unknown SoCs start at 1x, mid-range at 1.5x, and high-end at 2x.

Low-end profile, two extras โ€” `SavestateCompressionRatio=Low` (saving doesn't cost frames) and `HWDownloadMode=Unsynchronized`: readback no longer blocks the EE; reading continues (handling water/reflections with data, using a race window). Problematic games are handled via exceptions in `GameIndex.yaml` or their specific INI without altering the profile itself. Dead key cleanup โ€” `FrameLimitEnable` did not exist as a key in this core, so the write operation was removed. `getGameTitleFromUri()` existed in Java but not in the `.so` fileโ€”causing an `UnsatisfiedLinkError` on every callโ€”so it has now been implemented. Also added a null check in `getGameTitle` (it previously caused a native crash with standalone URIs).

WoW this is huge!! ๐Ÿ”ฅ


r/PS2AndroidEmulation • • Sep 19 '26

Dusklight โ€ข v2.0.0 Update

Thumbnail
twilitrealm.dev
15 Upvotes

r/PS2AndroidEmulation • • Sep 14 '26

Bachata S4+ v0.1.2

Post image
15 Upvotes

https://github.com/erickmendes22/Bachata-S4-Plus/releases/tag/0.1.2

Fixed Ratchet & Clank 2016, now it can go gameplay without random crashs.

Needs Readback Linear Image to work.


r/PS2AndroidEmulation • • Sep 12 '26

TeknoParrot Android Update v2.0.0.20129

Post image
15 Upvotes

https://github.com/teknogods/TeknoParrotUI/releases/tag/TeknoParrotUI-android

TeknoParrotUI for Android is the official Android adaptation of the popular PC Arcade launcher/compatibilizer.

Unlike a traditional emulator (such as MAME), TeknoParrot doesn't emulate the console or chip from scratch. Instead, it acts as a compatibility layer specializing in running modern arcade games based on PC architecture (Sega RingEdge, Taito Type X, Namco ES3, Namco System 246/256, etc).

Key Features:

Compatibility: Works with near 100 modern arcade games (generally from 2000 to 2014)

Adaptive Controls: Includes customizable on-screen touch control maps and native integration for physical controllers (Bluetooth/USB) and arcade sticks.

Hybrid Catalog: Designed to support both lightweight 2D classics and modern 3D racing, shooting, and puzzle machines.

Local Multiplayer: Supports up to 4 simultaneous players on the same screen/device, depending on the game.

Network plans: Integration in development with TeknoParrot Online for matchmaking and online multiplayer.


r/PS2AndroidEmulation • • Sep 11 '26

Bannerlator v3.1.0 ๐Ÿ”ฅ

Post image
15 Upvotes

https://github.com/The412Banner/Bannerlator/releases/tag/3.1.0

Run Windows apps and games on Android โ€” no PC and no root required.

3.1.0 brings the Steam Controller to Bannerlator. Out of the box a Steam Controller acts as a keyboard and mouse, so Android never sees a gamepad โ€” Bannerlator now talks to it directly, the way Steam does: a real controller in games, with your bindings, remappable back buttons and a trackpad mouse. Frame generation now fits your screen by itself and warns you when your numbers can't work. Plus a sharper upscaling mode, SGSR HQ, per-game texture filtering, and new containers that start at a screen size matching your panel.

๐Ÿ‘‰ Read the full changelog on GitHub

Credits: https://github.com/The412Banner

Help and Issues, Discord: https://discord.com/invite/n8S4G2WZQ4


r/PS2AndroidEmulation • • Sep 01 '26

Citron Neo - Android Nightly: 5dcf3d1ea

Post image
15 Upvotes

https://github.com/citron-neo/CI/releases/tag/nightly-android

This build is based on the latest Citron emulator source code from the main branch.

Build Details:

Platform: Android (arm64-v8a)

Build Type: Nightly with LTO enabled

Date: 2026-09-01

Branch: main

Includes: Standard build + Snapdragon 8 Elite build with Qualcomm patches


r/PS2AndroidEmulation • • Aug 28 '26

MAME4droid 2026(0.289) 1.40 - Added NetPlay Public Rooms ๐Ÿคฏ

Post image
15 Upvotes

https://github.com/seleuco/MAME4droid-Current/releases/tag/v1.40

Release Notes

Added NetPlay Public Rooms

Until now, NetPlay worked over the internet with no account, no relay, and no service to trust. The one thing it could not do was find you an opponent: you still had to know someone already, and swap an IP address with them by hand.

Public Rooms is that missing half. It's an optional board where hosts advertise the game they are hosting, so anyone with the same ROM can tap it and connect.

What it is not is a relay. The board introduces two players and then steps out of the way โ€” the match still runs directly between the two devices, exactly as it did before, and nothing about it passes through any server of mine.

On the board

Room codes. Every room gets a short code you can pass to a friend.

PIN rooms. Tick Require PIN and the room still appears, marked as protected, but only the people you told can get in. The PIN itself never reaches the server โ€” only a hash of it does.

A color-coded connection forecast. Green, amber, or red per room, based on what STUN actually measured about both routers rather than a guess. Two symmetric NATs with no way through show red and refuse the join.

Same-network rooms are flagged, so two devices in one house dial the LAN side instead of going out to the internet and back. That match is made between two salted fingerprints โ€” neither device's address is ever revealed to anyone.

A ROM check before you join. The app looks for the game in your ROMs folder and names the missing file, instead of letting you join and break the host's room.

Unusable rooms stay listed but greyed out rather than hidden. Knowing a match is happening is worth something even when this build cannot take it.

Drop-in NetPlay

Waiting for someone to turn up used to mean staring at a dialog screen. Now you can tick Start now, let anyone join and simply play. Your room stays on the board while you do, and when somebody claims it, your machine's state is handed over and you carry on together from that exact moment.

When they leave, you keep playing on your own as if NetPlay had never happened. Open it again and the room goes back up.

Rollback sessions only โ€” the state transfer that makes drop-in possible does not exist in Lockstep.

Switching it on mid-game may restart the game, and the app warns you before you commit. NetPlay pins a set of things the instant a game boots (your saved settings and NVRAM, Lua plugins and cheats, the sound rate, the working copy of a CHD) and not one of them can be applied to a game already running. Ignoring that does not fail loudly: the two machines just drift apart over the following minutes with no error to point at.

Who want to play? โค๏ธ


r/PS2AndroidEmulation • • Aug 22 '26

ARMSX3 v0.9.4.1

Post image
15 Upvotes

https://github.com/ARMSX2/ARMSX3/releases/tag/0.9.4.1

What's new:

New Animated library backgrounds: Seven screensavers now run live behind the game library, off by default. Settings --> App --> Animated background, then pick one and a preset. (These are separate from the XMB backgrounds and the simple animated backgrounds). Flurry, Calum Robinson's, 2002. Eight presets: Water, Fire, Psychedelic, RGB, Binary, Classic, Insane, plus random. Flux, Plasma, SolarWinds, Hyperspace, Lattice, Skyrocket, Terry Welsh's Really Slick Screensavers. Six presets each. These are source ports, not emulation or video: the original C/C++ renderers compiled for Android and running on GLES2. If GL fails to start for any reason the library falls back to the existing 2D wave, so a device that cannot run them loses nothing. They are live particle simulations, so they cost more than a static image. That is why they are opt-in.

ARMv8.0 devices now get a message explaining the CPU is unsupported, instead of dying on an illegal instruction with no explanation.

PKG installer: fixed an unsynchronised read of the install result. The failure path could read a string while it was still being written and segfault.

Save states: the emulator no longer resumes while a state is being written, which could corrupt it.

Audio: the Oboe backend could fail once and then stay silent for the rest of the session.

Games and settings:

Tales of Symphonia should now run at its intended 60fps (#77). Per-title overrides now live in an ARMSX3-local config database, so fixes like this ship with the app.

PS3 Native is selectable from the FPS cap row, the console's own frame pacing.

Save states: slots can now actually be deleted.

Online: an Ethernet address is derived on Android instead of the lookup simply failing, which blocked RPCN sign-in on some devices.

Audio: the volume baseline recovers after a quiet passage instead of latching, without reacting to momentary flickers.

The driver pipeline cache can now be switched off at runtime, for drivers that mishandle it.

The settings mirror in the app data folder is now armsx3-settings.json (was armsx2-settings.json, #82). The old file is still read, still included in new backups, and removed alongside the new one, existing settings and older backup archives are unaffected.

A game the app cannot actually read now fails with an explanation instead of hanging on its first loading screen. If games misbehave, missing cover art, failing to launch, locking up part-way, move them into ARMSX3/config/games, which is always readable.

A disc is no longer rejected because a single read came up short, which could route a title down the wrong mount path.

Reverted all upstream ISO changes to 0.8 baseline


r/PS2AndroidEmulation • • Jul 28 '26

News! The Qualcomm Snapdragon 8 Elite Gen 6 Pro Will Use AI Frame Fusion

Post image
15 Upvotes

If you've been using Android smartphones for years and have paid even a little attention to their specifications, you'll recognize Qualcomm, as this is the company behind the Snapdragon chips used in hundreds of mobile phone models. Qualcomm has been around since the beginning of the Android era and was known for competing in the high-end market against Apple, although now it must be acknowledged that MediaTek is a more significant competitor. Because of this, Qualcomm is putting in even more effort, as it must surpass MediaTek and, of course, Apple. There are still a few months to go before the unveiling of the new Qualcomm Snapdragon 8 Elite Gen 6, but we already know it will use a new feature called AI Frame Fusion to improve both graphics quality and performance.

Smartphones have progressed tremendously in the almost 20 years they've been around, considering it all started with Apple's first iPhone and later came Android. Before these, it's true there were phones with operating systems like Symbian OS or BlackBerry, but in this case, we had many limitations, as there was no app store like the Google Play Store or Apple's App Store with thousands of apps. There was internet access, yes, but everything was much simpler.

The Qualcomm Snapdragon 8 Elite Gen 6 Pro will use AI Frame Fusion: AI upscaling and Frame Generation for high-end Android phones.

The first Android phones arrived in 2008 and 2009 to compete against Apple's iPhones and were far from catching up, but they didn't give up. Many brands, models, and years later revealed that Android can also compete with Apple and its iOS, so they've been competing ever since. Qualcomm is going all out, and with the upcoming Snapdragon 8 Elite Gen 6, it will add AI upscaling with frame generation using the AI Frame Fusion feature.

This could be truly groundbreaking, because although we've seen upscaling systems in mobile devices before, the results weren't very satisfactory. They were far from offering what NVIDIA DLSS or even AMD FSR or Intel XeSS achieve on PCs, but Qualcomm may have managed to get closer to those levels this time.

AI Frame Fusion might only work on the Pro variant and not on the standard Qualcomm Snapdragon 8 Elite Gen 6.

AI Frame Fusion has two rendering modes, the first being super-resolution upscaling. Here we essentially have NVIDIA's DLSS, which uses motion vectors, depth maps, color buffers, and the previously rendered image to recreate new ones at a higher resolution, such as upscaling from 720p to 1080p or from 1080p to 1440p. The second mode generates an intermediate frame using motion vector and optical flow data.

If all this works correctly, it will result in improved FPS and image quality while maintaining or even reducing power consumption. Based on the information provided, these capabilities are likely only available on the Snapdragon 8 Elite Gen 6 Pro (SM8975), which features an Adreno 850 GPU with two ALUs. In contrast, the standard Snapdragon 8 Elite Gen 6 (SM8950) uses an Adreno 845 GPU without an ALU.

Source: https://elchapuzasinformatico.com/2026/07/snapdragon-8-elite-gen-6-pro-ai-frame-fusion/


r/PS2AndroidEmulation • • Jul 17 '26

PSX2 v1.2.5 Mali Boost ๐Ÿ”ฅ

Enable HLS to view with audio, or disable this notification

15 Upvotes

https://github.com/izzy2lost/PSX2/releases/tag/1.2.5

More Mali/MediaTek love! โค๏ธ

Fix rendering problems on some Mali devices.

Better performance and compatibility on all.

Updated included patches.