22591 Commits
Author SHA1 Message Date
jpolo1224 f0c025b783 Android refresh: per-game renderer/res, icon toolbar, custom covers, setup recovery, SPU2 NEON toggle 2.4.1 2026-06-28 00:03:48 -04:00
jpolo1224 754df2f0bc EE perf: eliminate SYNC/CACHE single-stepping; trap crash fix; controls/touch/UI
EE recompiler (arm64/mac):
- SYNC -> emit nothing (empty interp body); CACHE -> inline-interpret in-block
  instead of block-terminating + single-stepping. Removes the dominant EE
  interpreter-fallback cost (The Getaway: ~98% of single-stepped ops were these).
- recCancelInstruction: trap ops now unwind via a longjmp landing pad in
  recExecute instead of aborting. Fixes The Getaway boot crash and any met-trap
  crash across games.
- Native codegen for trap opcodes (TGE/TGEU/TLT/TLTU/TEQ/TNE + immediate forms).
- Add gated EE opcode-histogram diagnostic (AndroidEEOpHist.h, default off).

Controls:
- Custom stick mode: bind each direction to any PS2 button via the press-a-button
  capture flow. Add "D-pad acts as Left Stick" toggle. Remove the redundant D-Pad
  preset; fix the stick->button dispatch release clobber.

Touch layouts:
- Fix per-game layouts bleeding across games: resolve the serial from the core,
  CRC fallback, never overwrite the shared Default profile from an in-game edit.

Library/UI:
- Titles under covers: fix clipping, add a version/edition tag, make the toggle
  controller-reachable. Switch the title font to Bebas Neue (SIL OFL).

RetroAchievements / Hardcore:
- Disable cheats in hardcore (core + UI); non-cheat patches stay active;
  save-states allowed with loading still blocked.

Also: quit / exit-to-launcher hotkey, setup data-location button, per-game input
profile auto-load.
2026-06-27 13:16:26 -04:00
jpolo1224 ccfb7d9f52 Android refresh: all-files custom data folder, input mappings, audio/UI fixes
Storage / setup
- GitHub flavor: opt-in All-Files "Custom Folder" for app data (memory cards,
  save states, configs) that survives uninstalls. When all-files is granted,
  ROMs are read via raw paths, so the SAF grant being dropped under all-files
  no longer breaks serial scanning or game loading. The Play build stays
  scoped-storage only (no all-files permission), unchanged.
- Setup data-folder chooser: clearer wording; the grant-access button updates
  to "Custom Folder" immediately on return from granting.

Input
- Map analog sticks to D-pad or face buttons, per stick
- Analog (mode) button mapping for the DualShock2 analog toggle

Library / overlay
- Show game CRC in the info tab
- Time Played / Last Played tracking
- Keep the settings gear visible when on-screen controls are set to Never
- Backgrounding a running game opens the pause overlay instead of silently pausing

Audio / performance
- Rename "Time Stretch" to "Audio Synchronization" (PCSX2 2.7 naming)
- Fix rumble small-motor being routed to the large motor
- Custom Speed % and Display FPS cap sliders
- Mali Vulkan: enable framebuffer fetch when the device exposes ROAA
  (no-op on devices without it) to avoid the per-primitive barrier blend path
2.3.9
2026-06-26 15:47:16 -04:00
jpolo1224 bdea35938e Android refresh: hide texture packs from gallery, fix setup storage selection
- Write a .nomedia marker in the textures folder so PNG/DDS texture packs on
  shared storage stop being indexed into the device gallery/camera roll.
  Screenshots, cover art and videos are intentionally left visible.
- Setup wizard: render the storage error on the dashboard so picking "SD Card"
  on a device with no removable card is no longer a silent no-op; fall back
  cleanly to Internal storage with a visible message.
- Setup wizard: changing the data location (Internal/SD) after first setup now
  prompts a restart so the new root actually takes effect, since the native
  data root is pinned once per process and can't be hot-swapped.
- Setup wizard: trim the overlapping Internal/SD tap targets so taps land on
  the intended choice.
2.3.8
2026-06-25 23:05:08 -04:00
jpolo1224 7029a4a5e9 Android refresh: touch profiles, rumble, game properties, DDS/freeze/settings/audio fixes
New:
- Per-game touch control layouts, saved to a portable inputprofiles folder
- Controller rumble for Bluetooth and USB gamepads
- Open the app data folder from the menu
- Game Properties on long-press: copyable Title, Serial, CRC, region, path
- Rename Max FPS Cap to Frame Rate Control

Fixes:
- DDS texture packs no longer crash: clamp the DDS mip-level count to what the
  texture size allows (dwMipMapCount includes the base image, so the old
  level <= mip_count loop loaded one level too many and tripped the
  CreateTexture mip assert)
- Game no longer stays paused after closing the menu or leaving touch-layout
  edit mode; resume whenever the pause overlay is dismissed
- Global and per-game settings no longer bleed: re-hydrate settings when the
  Global/Game scope toggle switches tiers
- Gamepad face buttons respond immediately at game load by re-grabbing the
  surface focus on the running transition
- Audio no longer mutes on heavy game fixes: keep the output stream alive
  across the settings-apply VM pause
2026-06-25 21:52:33 -04:00
jpolo1224 0959eb0f83 Android refresh: per-game INI export, OSD toggles, manual FPS cap, compact UI, upstream 2.7 GS port
Settings / library
- Export per-game settings to a portable, sparse gamesettings/<serial>_<crc>.ini (upstream FullscreenUI style)
- Compact performance settings boxes and in-game Play-tab bubbles for small screens
- Auto-scan library on boot; shelves wrap instead of scrolling sideways; gear moved to top-center; resume button next to close

OSD / frame pacing
- Add hardware-info and version OSD toggles
- Max FPS cap independent of emulation speed (present-rate cap, vsync-aligned for steady pacing) with an OSD readout

GS (ported from upstream PCSX2 2.7)
- Line-AA1 upscaling fix (GSRendererHW/GSDevice + tfx shaders) and shader cache version bump
- GS/TC OverlapsValid exact-target match; memory-map dump label fix; controller DB update (8BitDo Ultimate 2)
2.3.7
2026-06-25 17:45:24 -04:00
jpolo1224 9cc2b5e5f4 Android refresh: Mali Vulkan blend fix, pressure modifier, multi-touch, SD app folder
- GS/Vulkan: select the Mali runtime GPU profile so destination-reading alpha
  blends run in-shader (alpha_mali_custom_set) instead of Mali's broken hardware
  dual-source path - fixes Mali blend corruption on Vulkan without forcing
  Maximum blending
- Input: add DualShock 2 pressure-sensitivity modifier (on-screen button plus a
  bindable "Pressure Modifier" hotkey)
- Touch: extend the multi-touch hit-test layer to cover face and shoulder buttons
- Setup: replace the custom app-data-folder picker with an Internal/SD-card
  app-specific choice (scoped-storage safe) and drop MANAGE_EXTERNAL_STORAGE
- Pad: capture D-pad bindings on devices that report it as a HAT axis
- SPU2: preserve the output stream's paused state across recreate (fixes audio
  dropping out after using the in-game menu)
- Library: resolve cover art off the main thread for smoother scrolling
- OSD: cap the ImGui/overlay scale at 2x on high-resolution screens
- Build: release signing config and applicationId/version gradle properties
- Fix adaptive launcher-icon insets
2.3.6
2026-06-24 19:15:29 -04:00
jpolo1224 09109bb935 Make Vulkan push descriptors optional on Mali 2.3.5.1 2.3.5.0 2026-06-23 08:49:56 -04:00
jpolo1224 413e4840a2 Add RetroAchievements hardcore and Mali Vulkan support 2026-06-22 14:39:16 -04:00
jpolo1224 694b8df272 Large QOL updates 2.3.4 2026-06-21 02:02:48 -04:00
jpolo1224 860ea5c09c Android refresh: add compatibility settings and GLES fixes 2.3.3 2026-06-20 12:58:51 -04:00
jpolo1224 30f339f915 Android refresh: standardize universal page APKs
- Add the universal 4K/16K page-size APK build path and runtime native-core selection.

- Restore strict runtime page-size checks inside each matching core variant.

- Split in-game disc controls into Swap Disc and Boot Disc flows.

- Add live CDVD hot-swap support through the CPU thread.

- Improve save-state management with auto-save-on-exit, backup, restore, and delete controls.

- Add EE/FPU and VU clamping controls, sub-native upscale options, and patch dialog styling.

- Fix ARM64 recompiler zero-register shift handling and keep runtime tests manual.
2.3.2
2026-06-20 01:32:15 -04:00
jpolo1224 59676a5992 Improve Android per-game settings controls 2.3.1 2026-06-19 22:54:17 -04:00
jpolo1224 1182a8fbcc Fix Android pause and in-game controls 2026-06-19 18:33:48 -04:00
jpolo1224 731ff6f75c Stabilize refresh release 2026-06-19 12:33:13 -04:00
jpolo1224 a53c3655ed Enable Mac ARM64 inline fastmem 2.2.8 2.2.7 2026-06-18 01:20:21 -04:00
jpolo1224 8f4ffe3684 Android refresh: update PNACH, setup, and library fixes 2026-06-18 00:56:15 -04:00
jpolo1224 1efed5cb12 Android setup: prevent BIOS self-copy truncation
Copy selected BIOS files through temporary files and detect source/destination self-copies so setup cannot truncate a selected BIOS to 0 bytes.
2026-06-17 20:08:08 -04:00
jpolo1224 d7d511b078 Android refresh: finalize perf diagnostics and settings
Add gated Android perf bucket instrumentation, EE fallback fast paths, runtime settings tabs, DEV9/ELF support, and Android-specific scheduler/rendering tweaks.
v6 2.2.3 2.2.6 2.2.4 2.2.5
2026-06-17 18:11:57 -04:00
jpolo1224 c094877de3 Improve Android refresh runtime settings v5 2026-06-16 22:06:31 -04:00
jpolo1224 7dbaae649e Android refresh: fix emulator lifecycle and settings v4 2026-06-16 20:19:05 -04:00
jpolo1224 19a66c3d52 Android refresh: update experimental UI and backend v3 2026-06-16 11:45:07 -04:00
jpolo1224 c607235388 Android refresh: add safe global settings entry v2.2.2re1 2026-06-15 18:50:53 -04:00
jpolo1224 431154e09c Android refresh experimental performance updates v2.2.2re 2026-06-15 18:08:22 -04:00
jpolo1224 9ca8105520 Android mac backend: port EE branch and memory optimizations 2026-06-14 00:29:13 -04:00