Skip to content

Releases

ProtoDroid v0.15

Choose a tag to compare

@github-actions github-actions released this 03 Nov 15:36
18ba66b
  • Restored the original pre-WebView native Android launcher and its javac/d8/aapt2 packaging, removing the rejected Compose/Web presentation stack without changing game settings, drivers, mods, saves, touch editing, updates, or the diagnostic-tour gesture. A native Diagnostics screen retains read-only logs and factual About/device information.
  • Matched SDL2 Java and native sources at 2.30.9 and added source, compiled-class, native-library provenance, and signed-APK byte checks for the reported startup version mismatch. The corrected artifact subsequently reached gameplay in user testing; controlled performance and broad-device outcomes remain separate questions.
  • Added default helicopter DESCEND (V), an independent numbered 123 touch pad, and ABC paged PC keyboard input through SDL. Existing custom-layout indices and Extra buttons behavior are preserved. Added optional fixed Landscape/Reverse recovery while keeping Auto orientation by default.
  • Added editable built-in/custom button text with default restore, editor binding subtitles, custom left/right/middle mouse bindings, center/hexagon-edge snapping, and explicit ADD STICK recovery. Existing keyboard/chord custom records remain compatible; mouse and keyboard chords are mutually exclusive.
  • Made High retain full 32-bit decoded DXT1 color; Low/Medium and the standalone default keep the lower-bandwidth 16-bit path. Added a persistent VERSIONS action for official older APKs while exact-release updates and verified download recovery remain separate.
  • Decoupled Anti-Alias Level from Low/Medium/High presets. Old preset-owned Medium/High MSAA or FXAA values return to Game default once; Low's existing Off value and Custom/explicit AA choices remain untouched.
  • Fixed nine OLEAUT32 ordinal imports so they reach the same native handlers as their named exports instead of the fatal unimplemented-import path. Existing COM behavior is unchanged; broader COM and online-service support is not claimed. Null output pointers passed to SHGetFolderPathA or WSAStartup now return API errors instead of causing native null writes.
  • Exposed RPCRT4 through the existing dynamic module loader and implemented the engine's dynamically resolved UuidCreateSequential. It now writes distinct RFC 4122 version-1 identifiers with a process-stable random multicast node instead of leaving the machine/cache identifier at zero; no Android MAC address is read.
  • Completed the shipped engine's remaining 16 Winsock ordinal routes with explicit offline failures and a bounded __WSAFDIsSet implementation. DSOUND!#2 now reports an empty DirectSound device enumeration instead of a missing-import fatal; XAudio2 playback and the lack of online/DirectSound support are unchanged. All 368 imported keys now have an ordinary or intentional special path.
  • Added checked allocation failures for native dispatch/jump state and a detailed fatal path for an unknown setjmp resume. Normal setjmp/longjmp register, floating-point state, and return-value behavior is covered by runtime tests.
  • Reduced DXT1 CPU decoding work without changing decoded pixels or either color-quality path. Repeated x86-64 host A/B runs measured about 36% less full-colour decode time and 15% less 16-bit decode time; these microbenchmark results are not device FPS claims. Added a reproducible benchmark and exact signed-APK size/SHA-256 metadata.
  • Reduced cold RCF index work for the first archived movie open by removing per-component/name copies and reserving path-map capacity. Twelve interleaved optimized host A/B runs measured 18.9% less indexing time at the observed 18,047-path scale; normalized lookups and Bink playback tests pass. This is not a device startup or FPS claim.
  • Packed independent software-mixer output samples into four-lane operations without changing per-lane arithmetic or alignment handling. Twelve interleaved host A/B runs measured 53.0% less time in a fully active three-channel/three-output workload; exact real-engine output/state checks cover every start offset. This is a mixer microbenchmark, not a device FPS result.
  • Corrected the Vulkan 1.1 compatibility wrapper’s DXVK-facing effective API advertisement without lowering DXVK’s requirements or bypassing its isolated feature/extension probe. Physical Mali, PowerVR, long-session, and visual outcomes remain unverified.
  • Corrected BC texture capability queries when a driver reports BC format properties without the required textureCompressionBC feature, as seen in the Xclipse 940 logs. DXT1–5 now select ProtoDroid’s existing CPU decode path instead of being passed to the GPU; ATI1/2 remain unavailable without real BC support. Physical #34 visual and performance retesting is still required.
  • Simplified the in-game gear to live FPS/battery/menu pacing, touch controls, FPS overlay, and Layout. Restart-only graphics and engine/mod experiments remain in the launcher, where concise explanations appear on touch or focus. Menu-FPS changes now use atomic live state consumed when Bink movies open.
  • Reworked Mods as a library-only screen with author-defined per-mod toggles, stepped sliders, choices, and text. Added atomic option saves, dirty-back/reset handling, large bounded texture-project imports, shallow library scans, and lazy per-mip DDS reads. Original format/dimension limits remain; arbitrary texture resizing is not claimed.
  • Added native plugin ABI v2 with per-mod boolean/number/string getters while retaining the exact ABI-v1 host contract. Updated the source-built example to use real saved options. Windows x86 ASI/DLL compatibility is still not claimed.
  • Kept launcher artwork visible from the first intro frame, added transient immersive system-bar behavior to launcher/mod screens, and retained reduced-motion support. Isolated the Android 11+ insets controller from older launcher startup and added a non-fatal legacy fallback. Available-update OPEN RELEASE opens the fetched GitHub release directly; existing in-app downloads retain verified recovery.
  • Expanded the diagnostic tour to 41 phases and 10,440 action frames with tour-only 4× guest clocks, charged jumps, glide/dash chains, building/wall-climb attempts, sustained combat/streaming, and exact phase timing. Guest/import profiling is automatic for the tour; normal Play, host timeouts, and save isolation are unchanged. Bink/physical-touch skips and non-visual evidence boundaries remain explicit.
  • Removed ordinary-play file-I/O timing bookkeeping when detailed diagnostics are off and avoided per-Present ADPF locking when no session exists. Auto now tries the established direct/wrapper policy after a failed Turnip attempt on a direct <1.2 path. DXVK retains the previous device-creation path and names requested features only after an actual VK_ERROR_FEATURE_NOT_PRESENT; a source regression test covers the reported Mali-G720 preflight failure, with physical retesting still required.
  • Shortened GitHub issue forms and removed decorative emoji. Fixed release signing parity across dispatch types and separated persistent-certificate-change approval from disposable-release approval. The 0.14 disposable private key is unrecoverable, so a differently signed 0.15 requires one uninstall; protected-secret configuration remains an administrator step.
  • Host/source validation covers the new policies and native paths. Physical-device visuals, large-pack performance, mod behavior, tour outcomes, and update installation remain unverified until tested on hardware.

Verification

Version 0.15 (versionCode 15), built from exact main commit 18ba66b.
Real ARM64 compilation, APK signing, and packaged verification passed in https://github.com/Nazatric/ProtoDroid/actions/runs/41660305950.

APK SHA-256: ff0f3ec6b5f979ac5cc4ba47a8bd61150ca2b1aa300243b9d14a7257a197c8c2
Signing certificate SHA-256: fd3e28301660166d25b00045ed3d7159b8e59f437e5e328421905209273145f0

This release uses an explicitly approved disposable CI signing identity. Installing a later build with a different certificate will require a one-time uninstall.
A differently signed older installation needs a one-time uninstall; shared saves under /storage/emulated/0/Prototype remain separate.

Use protodroid.ini for configuration. CI does not replace physical-device testing.

ProtoDroid v0.14

Choose a tag to compare

@github-actions github-actions released this 01 Nov 10:55
fa8b6e5

Warning

Disposable signing identity: this APK's certificate differs from v0.13. Android requires a one-time uninstall before installing it over v0.13; back up important app-private settings/data first. Shared game files and saves under /storage/emulated/0/Prototype remain separate. A later build with another certificate will also require a one-time uninstall.

  • Added an optional local mod platform with staged ZIP/single-file imports, prioritized read-only file overlays, same-format DDS replacement/dumping, and a source-built AArch64 plugin ABI v1. The Prototype-style Mods library includes covers, descriptions, installed/active state, background imports and lifecycle operations, next-Play enable/disable, confirmed removal, and native-plugin trust confirmation. Unchanged Windows x86 ASI/DLL plugins are not compatible; physical mod behavior remains unverified.
  • Expanded the independent Prototype Fix equivalents: finite fractional FOV offsets, bounded 512–8192 shadow-map scaling, additional existing-limiter FPS choices, and launcher controls for tick/QTE policy, loose files, developer menu, VRAM reporting, and texture dumping. Legacy archives with one safe top-level wrapper now retain their texture/plugin/overlay layout. Defaults, dynamic-shadow policy, and the required proto_uv.dat validation are unchanged.
  • Reworked Setup, Mods, and Drivers into a shared Prototype artwork/font/cut-panel language with reduced-motion support, press/focus feedback, keyboard/D-pad navigation, and consistent transitions. Engine INI updates now use synchronized temporary-file replacement and show a visible error instead of silently leaving stale or truncated configuration.
  • Fixed Dobby's stale CPU-header integration and cross-ABI assembly preprocessing, and retained exact ARM64 plugin/native linkage checks. No universal rendering, black-screen, or FPS fix is claimed from host/CI evidence.
  • Added an Auto-only Vulkan 1.1 compatibility candidate built from pinned GameNative/Mesa source with Android WSI, isolated capability probes, and direct DXVK ICD handoff. Direct 1.2/1.3 and explicit Turnip/PanVK choices remain in place; physical Mali validation is still required.
  • Added the deliberate MERCER/seven-logo-tap diagnostic tour with ordered presented-frame gameplay phases, isolated saves/logs/cache, durable phase/crash markers, and detailed diagnostics. Scripted completion is not visual verification.
  • Fixed the tour's missed InGameState entry probe by recognizing the engine's recompiled vtable thunks, expanded the plan to 22 phases with targeting/grab/wheel/form inputs, and required gameplay-task activity during every executed phase. Isolated tours now close at the engine-loop boundary instead of repeating an observed EngineTerminate hang, with watchdog-backed failure exit after backtraces if the engine cannot reach that boundary; ordinary Play retains its normal shutdown and report-only watchdog paths. Physical tour results still require device validation.
  • Fixed diagnostic-tour timing when several Presents coalesce before one engine update: logical action frames no longer compress press/release pairs into that single boundary. Phases now record actual Present dwell separately from action frames, while the launcher and durable result clarify that closing the isolated tour process is expected. Two uploaded Mali-G720 tours completed without a recorded native crash; remaining long-frame causes and any separate impact/freeze are not claimed fixed.
  • Redesigned Drivers around a clear current choice, large plain-language mode cards, 48 dp minimum touch targets, and an optional Driver packages section with Installed/Downloads tabs, family-aware filtering, progressive details, and confirmed removal. Pinned downloads, validation, explicit Custom selection, recovery, and native driver policy are unchanged.
  • Applied DXVK's official Prototype workaround explicitly because the native Android host is named app_process64, not prototypef.exe, so DXVK's built-in game profile did not match. Disabling the broken DF-format exposure targets the original dynamic-shadow and bloom paths without reducing shadow detail, resolution, textures, AA, or render scale. Physical Adreno/Mali visual confirmation is still required.
  • Made launcher downloads resilient to transient empty DownloadManager queries and exceptions: recovery now uses timed rechecks, preserves uncertain downloads, and only replaces confirmed failed or persistently missing rows. Verification retains APK hash, package/version, and signing-certificate checks.
  • Added GO TO RELEASES beside updater recovery, with Retry preserved. Launcher resume checks now run after a 15-minute backoff without hiding an existing update card or interrupting active downloads. Kept FIFO presentation and known-pipeline cache warm-up intact; no universal 60 FPS or exhaustive future-shader precompilation claim is made.

Verification

Version 0.14 (versionCode 14), built from exact main commit fa8b6e5.
Real ARM64 compilation, APK signing, and packaged verification passed in https://github.com/Nazatric/ProtoDroid/actions/runs/41297420012.

APK SHA-256: 2e6368e96c50764064b2e11cc968158c7645aefced9b64e27d69c72e52ba7162
Signing certificate SHA-256: afc8b0d37cdb128c8e37ef8de74fed50568d6b012442a9698953cc8491b1ed89

This release uses an explicitly approved disposable CI signing identity. Installing a later build with a different certificate will require a one-time uninstall.
A differently signed older installation needs a one-time uninstall; shared saves under /storage/emulated/0/Prototype remain separate.

Use protodroid.ini for configuration. CI does not replace physical-device testing.

ProtoDroid v0.8

Choose a tag to compare

@github-actions github-actions released this 31 Oct 04:53
7d4f230
  • Grouped launcher Settings into Graphics, Game Video, Controls, and Interface while preserving every existing option.
  • Added functional launcher access to the game's own Anti-Alias Level, Shadow Detail, and Graphic Quality settings through GameDB and its original render application path.
  • Added Game default choices to preserve device-dependent engine defaults until an explicit level is selected. All settings continue to share the same preferences and protodroid.ini persistence.
  • Expanded Low, Medium, and High presets to cover the game's AA, shadow, and quality levels as well as the existing port graphics options. FPS and control choices remain independent.
  • Moved active shared saves into /storage/emulated/0/Prototype/Saves/, with one-time no-overwrite migration from the previous shared root and app-specific layouts. External save management and deletion behavior are preserved.
  • Preserved explicit FPS-cap pacing and moved recurring shared cache/log copies off the engine thread while retaining synchronous shutdown flushing. Presets and individual graphics edits now leave unrelated engine settings unchanged; diagnostics separate Present() wall time from frame pacing.
  • Added timestamped five-second diagnostics for frame stalls, engine work, pipeline calls, file I/O, CPU threads, memory, ADPF, and supported thermal/headroom APIs, with a whole-run summary and no shader-dump overhead.
  • Stopped camera-only touch movement from redrawing the entire control overlay. Mouse motion, stick/wheel feedback, editing, and all existing controls are unchanged.
  • Allowed the engine's worker sizing to use the logical CPUs actually visible to Android instead of a fixed four-core mask, without pinning threads or changing graphics.
  • Made restricted or zeroed device CPU counters report unavailable rather than a misleading 0% reading.
  • Added protected persistent-release signing configuration, certificate-digest reporting, and native-build provenance checks. Releases reject ephemeral keys by default and always reject dummy/prebuilt native inputs; differently signed installations require a one-time uninstall.

Verification

Version 0.8 (versionCode 8), built from exact main commit 7d4f230.
Real ARM64 compilation, APK signing, and packaged verification passed in https://github.com/Nazatric/ProtoDroid/actions/runs/41168534769.

APK SHA-256: 84de8bdac992080ea3665e0242e9a02152b51981bded5b30e2d101ed5700968f
Signing certificate SHA-256: a6d72392d4ffaf75558dc55b3a066ce4af866587eeab8bf9df36dec55d83e32b

This release uses an explicitly approved disposable CI signing identity. Installing a later build with a different certificate will require a one-time uninstall.
A differently signed older installation needs a one-time uninstall; shared saves under /storage/emulated/0/Prototype remain separate.

Use protodroid.ini for configuration. CI does not replace physical-device testing.

ProtoDroid v0.13

Choose a tag to compare

@github-actions github-actions released this 31 Oct 18:23
ea2ba6c
  • Fixed the Drivers screen's BACK crash: touch tracking is now released before closing the screen can detach its view, with null-safe cleanup shared by touch cancellation and detachment. Both the on-screen BACK action and Android system Back return to the existing launcher homepage instead of terminating it. Added entry/exit and cleanup-order regression coverage; gameplay and native driver behavior are unchanged.
  • Brings the validated 0.10–0.12 driver updates into this release: the dedicated driver center and verified custom packages, Adreno 825 Turnip selection, Qualcomm unified-memory correction, and automatic startup recovery. Device-specific compatibility still requires physical testing; see the sections below for full details.

Verification

Version 0.13 (versionCode 13), built from exact main commit ea2ba6c.
Real ARM64 compilation, APK signing, and packaged verification passed in https://github.com/Nazatric/ProtoDroid/actions/runs/41226895748.

APK SHA-256: 150c345f54c21d9c1b5422c54766d16031d651cd14c581cce353e6008ef8fdc6
Signing certificate SHA-256: 9dd0c4ac2bba6907f4f7953e775724c7cbbdbfdb6b7347762ed3c16aed3699ec

This release uses an explicitly approved disposable CI signing identity. Installing a later build with a different certificate will require a one-time uninstall.
A differently signed older installation needs a one-time uninstall; shared saves under /storage/emulated/0/Prototype remain separate.

Use protodroid.ini for configuration. CI does not replace physical-device testing.

ProtoDroid v0.7

Choose a tag to compare

@Nazatric Nazatric released this 30 Oct 15:32
3744696
  • Turned the setup screen into a launcher: Settings and Play replace the permission actions after access is granted. Game detection remains automatic, while Play starts the game deliberately and rechecks for newly copied files.
  • Added a matching settings page with scrolling, full touch feedback, and Low, Medium, High, and Custom graphics presets.
  • Included every existing graphics, performance, and touch-control option. Presets change only resolution, textures, and anisotropy, leaving FPS and controls untouched.
  • Unified the launcher and in-game settings through the same saved preferences and protodroid.ini values. Launcher changes save automatically and engine options apply on Play.

Verification

Version 0.7 (versionCode 7), built from exact main commit 3744696.

Real ARM64 compilation, APK signing, and packaged verification passed in https://github.com/Nazatric/ProtoDroid/actions/runs/41069249237.

Use protodroid.ini for configuration. CI does not replace physical-device testing.

APK SHA-256: 159d1d241c07ea05a78a62577af2e7fe834ed58de42c0879ab3005eb8a283038

The uploaded release asset was downloaded again and compared byte-for-byte with the verified CI artifact.

ProtoDroid v0.6

Choose a tag to compare

@Nazatric Nazatric released this 30 Oct 07:24
27e29cf
  • Rebuilt the first-launch setup screen with the supplied Prototype artwork, icon, Barlow Condensed fonts, status displays, and animations.
  • Kept automatic game detection and launch, all three supported game directories, permission refreshes, and custom-driver installation intact.
  • Made the full Allow file access label fit instead of cutting it off on narrower screens.
  • Clarified the app-specific storage instructions: Android 11 or above uses PC/USB, while Android 10 or below can use a file manager with storage access.
  • Removed obsolete device logs, superseded design archives, and the uploaded cache seed from the repository. No cache seed is shipped with the APK.

Verification

Version 0.6 (versionCode 6), built from exact commit 27e29cf.
Real ARM64 compilation, APK signing, and packaged verification passed in https://github.com/Nazatric/ProtoDroid/actions/runs/41016250100.

APK SHA-256: cd2528e94b18eadb01194a176c00e9b8947451525be72b944c6fb2d5a0521f66

Use protodroid.ini for configuration. CI does not replace physical-device testing.

ProtoDroid v0.5

Choose a tag to compare

@Nazatric Nazatric released this 30 Oct 07:24
  • Moved shared profiles and saves to /storage/emulated/0/Prototype/ when all-files access is available.
  • Made external save creation, replacement, and deletion work through the same case-insensitive path mapping used by the game.
  • Added a one-time, no-overwrite migration from both legacy app-specific save layouts. Legacy files remain as backups and deleted shared saves do not return.
  • Kept the original app-specific save directory as a fallback when shared storage is unavailable.

Verification

Version 0.5 (versionCode 5), built from exact commit 904a7ff.
Real ARM64 compilation, APK signing, and packaged verification passed in https://github.com/Nazatric/ProtoDroid/actions/runs/40932709940.

APK SHA-256: ffb7f133b00d999c2ccbfae6391da7e3f4fe219f6034c93acb8e0c9c585883c5

Use protodroid.ini for configuration. CI does not replace physical-device testing.

ProtoDroid v0.4

Choose a tag to compare

@Nazatric Nazatric released this 30 Oct 07:24
  • Packed native skinning matrix and bounding-box arithmetic into four-lane operations without changing the original arithmetic association.
  • Added direct DXT1-to-16-bit row writes and exact RGB565 expansion tables while preserving decoding and transparency behavior.
  • Expanded native ARM64 differential testing to 2,000 randomized skinning batches and exhaustive DXT1 endpoint pairs.

Verification

Version 0.4 (versionCode 4), built from exact commit aebf690.
Real ARM64 compilation, APK signing, and packaged verification passed in https://github.com/Nazatric/ProtoDroid/actions/runs/40920153377.

APK SHA-256: e0feffbca304e44a3015799b25e1d7d00b5d4eba19de5e5b3a65a5ba56f42396

Use protodroid.ini for configuration. CI does not replace physical-device testing.

ProtoDroid v0.3

Choose a tag to compare

@Nazatric Nazatric released this 30 Oct 07:24
  • Added a direct DXT1-to-A1R5G5B5 decode path for Mali uploads, avoiding an intermediate per-pixel narrowing pass.
  • Made shared shader-cache backups atomic so an interrupted backup preserves the previous usable copy.
  • Added texture decode, creation, and upload timing counters to help correlate device stalls with the work that causes them.

Verification

Version 0.3 (versionCode 3), built from exact commit ebb8b00.
Real ARM64 compilation, APK signing, and packaged verification passed in https://github.com/Nazatric/ProtoDroid/actions/runs/40894239685.

APK SHA-256: 8f1a942d4ce306d33e4fd54b2bcb9b089acc28af9835c7d9541b1bd605188395

Use protodroid.ini for configuration. CI does not replace physical-device testing.

ProtoDroid v0.2

Choose a tag to compare

@Nazatric Nazatric released this 30 Oct 07:24
  • Restored the proven -O2 engine compilation and DXVK swapchain image-count behavior after unproven optimization experiments.
  • Preserved the confirmed fullscreen path, graphics quality, cache recovery, FIFO/Reset behavior, Bink playback, audio, and mouse controls.
  • Added the optional DSG PWR, WEB, DISGUISE, and ALEX touch buttons. Extra buttons remain Off by default.
  • Kept existing control-layout indices and the centered Settings header unchanged.

Verification

Version 0.2 (versionCode 2), built from exact commit eec15e7.
Real ARM64 compilation, APK signing, and packaged verification passed in https://github.com/Nazatric/ProtoDroid/actions/runs/40880853367.

APK SHA-256: 2d8e7ec8d2e9bb912beeedd46544b00755d7576475a1acf0145d746154b1df9e

Use protodroid.ini for configuration. CI does not replace physical-device testing.