Skip to content

Releases

Starling v0.8.0

Choose a tag to compare

@JuanLuci JuanLuci released this 10 Nov 19:36
ac87442

Starling 0.8.0: the first release of Starling and Horizon Android together.

Horizon Android and Starling are now one app, in starling-client/starling. Starling, formerly Horizon Android, is co-founded by JuanLuci, founder of Starling, and Vasysik, founder of Horizon Android. Thanks to Vasysik for the support for older phones, Diagnostics, account profiles with Ely.by, the terrain work on Adreno and the game folder in the Files app in this release.

Install

  • Already have Starling: tap Update inside the game.
  • New here, or coming from Horizon Android: download the APK for your phone below and open it. Almost every phone takes starling-0.8.0-arm64-v8a.apk. Older 32-bit phones take armeabi-v7a, and x86 tablets and emulators take x86_64 or x86.

What's new in 0.8.0

New

  • Horizon Android's controls: the touch controls, their MCPE and GoyControl layouts and the layout editor now come from Horizon Android: open H > Controls > Customize Controls, or Options > Controls > Customize Layout, for presets, undo and button sizes. Options > Controls picks Auto, Touch, Keyboard & Mouse or Controller. Starling's chat shortcuts and inventory gestures stay.
  • Accounts: the account button on the title screen keeps Microsoft, Ely.by and offline profiles, and switches between them. The one you pick is the one you play worlds and servers with, and it stays picked after a restart. Ely.by takes your password and, if you use it, a 2FA code. The setup on the first start offers Ely.by and named offline profiles too.
  • Skins for each profile: Skin Customization keeps a skin for each profile. A Microsoft account can send its skin to its Minecraft profile, so others see it on servers, and an Ely.by account wears its Ely.by skin, with a button to change it on ely.by.
  • A catalog inside the game: the Catalog button on the Mods, Resource Packs and Shader Packs pages finds, installs and removes them. Java shader packs like Complementary, BSL and Photon install with a tap and run as they are.
  • Your game folder in the Files app: Starling shows up in Android's Files app and file pickers, to browse, copy, rename and delete.
  • More phones: 32-bit ARM phones and x86 devices get their own APK, and older GPUs get a game built to run on them.
  • Faster terrain on Adreno, and a lighter upscale on Mali and PowerVR when the resolution is below 100%.
  • Diagnostics: Options > Diagnostics shows what happened when something goes wrong, and Starling offers a way back if it can't start.
  • Credits: Options > Credits & Attribution names Starling's founders and the game it is built on.

Mods and shader packs

  • More shader packs work: packs written for the core profile, like Pixel Perfect, no longer leave a black screen, and packs with only world programs, like Round World, load.
  • Many more native mods compile, like Treefall, Eating Animation, Carry Block, Biome Compass and Dynamic FPS.
  • Use GitHub (slower) on the Compile card compiles your native mods on GitHub's machines, for when the build server has reached its limit for the day.
  • More builds a day: 32 instead of 16.
  • Clearer build errors: when a native mod can't compile, the message says which one, right away, and it no longer uses up your builds for the day. Try again on a failed compile compiles again.
  • Build server... on the Compile screen lets you use your own build server.
  • A clearer Mods page: the top says which game is running, the APK's own or a build with your native mods, and what the next start runs. Tick the native mods you want and press Compile once; a mod ticked and not in the game yet says so beside it. A build made for an earlier install no longer loads by mistake.
  • The Mods page finds native mods you copy in while the game is open, when you open the page. A .hnmod Starling can't read gets a row that says why.
  • Compiled native mods: compile them again after this update.

Fixed

  • The on-screen keyboard opens and types in more places: a server's dialogs, the recipe book's search, the searches in Options, the skin name, a custom button's text, the game rules in World Options and Create New World, and the LAN port.
  • Chests and shulker boxes close again after you close them.
  • The title screen no longer shows the last world's mobs over the panorama.
  • Scrolling the options with a finger no longer changes the setting under it.
  • Open Folder opens the game's folders in the Files app. If nothing can open them, a message says how to find them there.
  • The setup tries again when a server refuses a download because of its limit, instead of stopping.
  • Opening a game in OpenGL no longer crashes on Adreno phones.

New in 0.2.3

  • Coming from Horizon Android? Starling offers to bring its worlds and resource packs over: in the setup on the first start, or over the title screen if Starling is already set up. Close Horizon Android, tap Bring them over, then Use this folder and Allow. They are copied: Horizon Android keeps its own.
  • A new note for what you import: a banner drops in across the top of the screen, with a sound, and says what each file you open with Starling added, or what went wrong.
  • Native mods that record sound ask for the microphone: when the game starts with one, Starling says which mod wants it and Android asks you. Not now stops asking for that build.
  • The first start goes on to the title screen once the game is prepared. It used to stay on Starting Starling until Starling was opened again.
  • Starling also looks for updates in the new starling-client/starling repository.
  • Compiled native mods: compile them again after this update.

New in 0.2.2

  • Many more .hnmod native mods from playhorizon.dev/mods now compile, like AppleSkin, Mod Menu, SmartF3, Freecam, Waymap and Distant Horizons. Open the mod's .hnmod with Starling, go to Mods and tap Compile.
  • Fixed the crash on opening on GPUs limited to 4096x4096 textures, like the PowerVR GE8320. The largest textures load at half size when they don't fit.
  • More builds a day: 16 instead of 8, and a build that fails gives its place back.

New in 0.2.1

  • Shader packs run on Mali phones again. On phones with a Mali GPU every pack stayed vanilla since 0.2.0.
  • A pack that can't run on your phone now says so in the chat and turns off.

New in 0.2.0, the biggest update yet

Mods: .hmod and .hnmod

Open either kind of file with Starling, from your file manager or your downloads, and it shows up in Mods.

  • .hnmod, native mods: tap Compile. Starling tells you the risks, builds the game with your mods while you fish or mine, and restarts with them. It takes a few minutes and needs a connection.
  • .hmod, content mods: data-only mods, with nothing to compile. A dropped download of a mod's assets goes on from where it stopped.

The old Starling mods (Far View, FPS Overlay, Keystrokes, Minimap, Recipes, Zoom) and the wasm mod format are gone: mods now use Horizon's formats.

Controls

  • Bedrock Inventory: the creative inventory shows the items and your inventory side by side, with six rows of items and a 2x2 crafting grid, and a tap takes a full stack. It is on by default; turn it off in Options > Controls for the Java layout.
  • Custom buttons: tap Add in Touch Controls, or go to Options > Controls > Custom Buttons. Each one holds or toggles a key, a native mod's key included, or sends a command or a message. Give them an icon or your own image, drawn on Bedrock's plate or imported as a PNG, and another image for while they are pressed. Select one in Touch Controls to move it or delete it.
  • On-screen keyboard: a tap on a text field brings it up and a tap beside it puts it away, on every screen, number boxes included. It no longer opens by itself on the world list or in the creative inventory.
  • A double tap on a stack moves it straight to the other side, as Shift-click does.
  • The held F3 button also has the other F keys, and the F3 text is bigger: it follows the GUI scale.
  • The three-finger Stats tap is off unless you turn it on (3-tap in the touch editor).

Shader packs

  • Auto profile: fits a pack to the phone by what its profiles ask of it, and draws terrain's depth first.
  • Shader Options for a finger, and Resolution and FPS Limit on the Shader Packs page.
  • Water and terrain came back in Photon, Sildur's and Bliss, and superDuperVanilla lost its overlay.
  • Packs' own textures load, a block's cracks show, faces are no longer shaded twice, and the sky reaches the horizon.
  • A pack that loses the graphics device is turned off instead of closing the game.

Newest Horizon

Starling now sits on the newest Horizon, about 4,800 commits ahead of the previous base:

  • Many more vanilla behaviours for mobs: piglins, dolphins, wolves, foxes, zombies with spears, mobs boarding minecarts and picking up gear.
  • Remote players' hands and shoulder parrots, the jeb_ sheep's colours, and the portal loading screen on a server's dimension change.
  • Optimize World inside Edit World, and operator commands (/op, /deop, /ban, /pardon, /whitelist) on a dedicated server.
  • Your own skin shows with offline accounts, and on LAN the host's skin shows.

Report a bug

Open an issue: the form asks for your phone, your Android version and Starling/logs/latest.log (with previous.log beside it once Starling has been opened again).

Not sure which APK to install?

...

Read more

Horizon Android 0.7.8

Choose a tag to compare

@Vasysik Vasysik released this 07 Nov 00:24

Important

HORIZON ANDROID IS MERGING WITH STARLING!

Starting with this release, Horizon Android and Starling (https://github.com/JuanLuci/starling) are beginning the process of becoming a single Android port of Horizon under the Starling name.

The unified project will be developed in the starling-client GitHub organization (https://github.com/starling-client), using Starling as its technical foundation while gradually integrating the best features of Horizon Android.

0.7.8 is planned to be the final stable release of Horizon Android as a separate project. Existing development work may still receive pre-release builds during the transition.

Horizon Android's Git history, contributors, issues, and community will be preserved. This is not the end of development — it's the beginning of a shared project.

Important

CONTRIBUTORS WANTED — HELP US BRING THE BEST OF HORIZON ANDROID TO STARLING!

We need contributors to help port features, improve compatibility, and test the unified client.

Experience with Rust, Android, Vulkan, OpenGL ES, graphics optimization, touch controls, SlopCoding, testing, and issue triage is very welcome.

Particularly valuable areas include 32-bit and low-end device support, touch controls, launcher features, account management, rendering optimizations, and Android-specific fixes.

Small, focused, tested Pull Requests are preferred. During the transition, only PRs already open when the repository is transferred will continue targeting android. New development will target starling.

Please consider becoming a contributor!

A major update featuring a redesigned Android launcher, expanded touch controls, skin and account management, experimental shader-pack improvements, rendering and startup fixes, and new performance testing infrastructure.

What's new

Launcher and customization

  • Launcher overhaul — redesigned navigation, denser layouts, reorganized settings, and improved account, content, and customization pages.
  • Custom launcher themes — theme presets, custom colors, multi-stop gradients, and live previews.
  • Account management — improved saved-account selection, provider-specific account handling, and more consistent account switching.
  • Ely.by integration — added Ely.by sign-in support, including two-factor authentication handling and provider-specific sessions.
  • Skins and capes — a new wardrobe for importing and managing local PNG skins and capes, with Classic/Slim models and a rotatable, zoomable 3D preview.
  • Cloud appearance management — Microsoft account skin synchronization, skin upload and owned-cape selection functionality. Cloud operations require a correctly configured account and remain subject to live-service compatibility.
  • Player previews — launcher avatars now use the selected player's skin, with an improved Steve fallback when resources are unavailable.
  • Content browser — improved installed-content navigation, sorting, and Modrinth search. Java mods remain browsing-only and are not installable as Horizon mods.
  • Launcher options — improved settings separation, animation preferences, and diagnostics presentation.

Touch controls

  • Major controls overhaul — redesigned controls architecture, customization interface, layout editor, and floating Control Hub.
  • MCPE and GoyControl — both control styles are available, with the classic Bedrock-style layout restored as the default for new profiles.
  • Control presets — improved handling of predefined layouts, including GoyControl, PvP Claw, Builder, and Speedrun configurations.
  • Custom buttons — expanded customization and input mapping, with better integration into the control editor.
  • Control Studio — a more detailed button-property inspector, additional editing options, and improved gesture handling.
  • Virtual mouse — a desktop-style pointer with adjustable size, improved menu interaction, and consistent visibility behavior.
  • Floating menus — improved toggle controls, sliders, quick actions, and separate utility menus for MCPE and GoyControl.
  • Joystick customization — improved handedness and active-area settings.
  • Visual improvements — simplified 2D control rendering, cleaner button appearance, and reduced unnecessary visual effects.
  • Feedback settings — independent UI and gameplay feedback controls, including supported sound and vibration behavior.

Input and gameplay fixes

  • Control editor stability — fixed cases where touch cancellation, focus changes, or the pause screen could unexpectedly close the editor.
  • Touch gesture handling — improved tracking of continuous gestures and prevented touches from passing incorrectly between menu layers.
  • Inventory interaction — improved modifier handling, quick-move actions, and Sneak behavior while inventory screens are open.
  • Attack button camera movement — camera dragging can continue correctly from the Attack button.
  • Crouching and shields — corrected several crouch, shield, and block-interaction transitions.
  • Mouse input — preserved batched relative movement events and improved mouse button and modifier state handling.
  • Hardware input — improved handling of disconnected input devices and Android input state resets.
  • Android keyboard — corrected chat placement when the system keyboard occupies the lower part of the screen.
  • Offline names — limited player names to Minecraft's 16-character requirement to avoid connection failures.

Graphics and performance

  • Shader-pack compatibility — expanded experimental support for native shader materials, vertex stages, post-processing inputs, and translation of selected Iris/OptiFine shader constructs.
  • Mobile shader limits — improved handling of fragment outputs, texture bindings, and pipeline requirements on constrained Mali and Adreno GPUs.
  • Shader loading — corrected shader-source composition and terrain texture bindings, with improved pipeline validation.
  • Resolution scaling — additional controls for adjusting rendering resolution, including shader-related scaling behavior.
  • Renderer startup — moved more expensive initialization work away from the Android event thread to reduce startup stalls.
  • Vulkan presentation — adjusted presentation and resource-update paths to avoid certain GPU queue stalls and Android application-not-responding conditions.
  • Graphics fallback — improved Vulkan initialization and OpenGL ES fallback handling.
  • GPU compatibility — launcher texture-atlas allocation now accounts for device texture-size limits, helping avoid failures on older GPUs.
  • Nether rendering — terrain completely hidden by opaque Nether fog can be culled to reduce unnecessary rendering work.
  • Foliage rendering — restored Fancy leaf geometry and made foliage simplification optional instead of changing the default appearance.
  • LOD processing — reduced redundant detail updates and unnecessary neighboring mesh invalidation.
  • Meshing improvements — additional mesh handling and reuse fixes, with expanded regression tests.
  • Menu rendering — improved backdrop caching and reduced redundant rendering work in supported cases.

Stability and installation

  • Session lifecycle — improved resource ownership, cleanup, and repeated game-session behavior.
  • Background handling — more immediate pause state updates when Android backgrounds the application.
  • Installation verification — cached Minecraft inputs are checked before extraction and copying, with recovery for corrupted or incomplete files.
  • Built-in mod catalog — improved catalog indexing and detection of local mod files.
  • Compatibility fixes — corrected several Android-specific build, input, UI, and native initialization errors.

Development and diagnostics

  • Performance benchmark tools — added automated Android benchmark utilities for comparing builds across devices, graphics backends, render distances, and representative scenes.
  • Benchmark console — interactive controls, resumable sessions, structured results, screenshots, and thermal-state reporting.
  • Performance regression testing — improved infrastructure for comparing FPS, frame times, GPU/CPU timings, and rendering workloads between releases.
  • Regression tests — expanded coverage of touch controls, rendering, shaders, launcher behavior, cached resources, and Android lifecycle handling.
  • Development builds — improved CI validation and development APK build workflows.
  • Contributor integration — incorporated work from multiple community Pull Requests while preserving original contributor history.

The future of Horizon Android

Horizon Android started as an independent Android port of the Horizon Rust engine. What began as a personal project grew into something much bigger, thanks to everyone who tested it, reported bugs, opened issues, and contributed code.

Maintaining two separate Android ports of the same engine is not the best long-term use of our limited development time.

That's why Horizon Android and Starling are joining forces.

JuanLuci, the founder of Starling, will lead the technical direction of the unified client. Vasysik, the founder of Horizon Android, will help integrate Horizon Android's features and continue contributing to the community and device compatibility.

Both will be co-founders of the unified Android port.

Our goal is to combine the strengths of both projects into one better Android experience, while preserving the work and contributions that brought us here.

We especially need help with transferring Horizon Android's features to Starling. If you have experience in any of the rele...

Read more

Horizon Android 0.7.7

Choose a tag to compare

@Vasysik Vasysik released this 02 Nov 22:54

Important

CONTRIBUTORS WANTED! Help with SlopCoding, Rust, Android, graphics, testing, and issue triage is very welcome.

An update improving Android graphics performance and compatibility, installation recovery, touch controls, file access, and built-in mods, alongside another major upstream synchronization.

What's new

  • Vulkan rendering — separate opaque and cutout terrain paths, reduced unnecessary sky rendering, and specialized shaders that skip unused fade and filtering calculations without reducing texture resolution or render distance.
  • Vulkan Batching fixes — corrected indirect draw offsets that could cause terrain surfaces and chunks to disappear.
  • Graphics compatibility — improved OpenGL ES shader compatibility, including fixes for transparent terrain and shader-link failures on older Adreno GPUs.
  • OpenGL startup — deferred heavy world-renderer initialization and fixed getting stuck on “Preparing for world creation” before entering a world.
  • GPU stability — failed timestamp readbacks are retired instead of reusing invalid buffers.
  • Menu rendering — reused blur resources and skipped unnecessary blur passes when the blur radius is zero.
  • Built-in mods — optional Zoom, Minimap, Recipes, and SmartF3 are available directly in Mods with Enable/Disable controls. They are disabled by default.
  • Dynamic joystick — an optional joystick mode with a configurable activation area, preserving the existing fixed joystick and D-pad controls.
  • Touch fixes — improved sprint handling, corrected crouch-toggle transitions in water, flight, and mounts, and fixed focused settings interfering with touch scrolling.
  • Shield controls — dedicated shield controls are enabled by default for applicable touch layouts; layouts with a regular Use button hide the redundant shield button.
  • Server transitions — cleared stale offhand equipment when connecting to another server, preventing items such as shields from carrying over visually from the previous session.
  • Keyboard input — improved Android keyboard support in command block, structure block, jigsaw, and test-block editors.
  • D-pad navigation — menu navigation becomes available earlier, before full world-renderer initialization.
  • Installation recovery — missing installation inputs evicted from Android’s cache are downloaded again with bounded retries and the original size/hash verification.
  • Cache compatibility — corrected invalidation of derived block-behaviour data after engine updates.
  • Game files — Worlds are accessible through Android Files, with launcher shortcuts for opening game and world folders. World access is blocked while playing.
  • Configuration folder — access existing game, graphics, touch, and keypad settings through Android Files without relocating them or exposing account files.
  • Resource controls — optional chunk-worker limits and reusable mesh/audio cache budgets. Default settings preserve the engine’s existing behaviour.
  • Launcher improvements — a clearer launch boundary between the launcher and game, plus a Cancel/Exit confirmation when pressing Back.
  • Connection diagnostics — additional connection-failure and departure information without enabling verbose per-frame network logging.
  • Visual fixes — restored golden horse armor rendering.
  • Development builds — GitHub Actions can now produce optimized, separately installed dev APKs with source-commit information and checksums.
  • Community — updated Discord links and added an optional development-support link.
  • Upstream synchronization — 1,846 upstream commits, including merge history, through published nightly 8c02c0b85, covering gameplay, multiplayer, rendering, resources, world generation, input, and mod APIs.
  • Architecture support — ARM64, ARMv7, x86, and x86_64. ARM64 and x86_64 require Android 9+; ARMv7 and x86 require Android 8.1+.

Known limitations

This is an unfinished experimental project. Device compatibility and performance may vary.

RGSS texture filtering can significantly reduce performance on some mobile GPUs. If FPS is low, try Anisotropic or None in Video Settings. Android’s adaptive display refresh rate and Minecraft’s inactivity frame limit can also reduce FPS while idle.

Rendering improvements do not guarantee higher FPS in every scene. Complex vegetation, transparent surfaces, and blurred menus may still be expensive. Some devices may continue to experience graphics-driver failures or startup issues.

Performance recording and GPU profiling add overhead. GPU timing availability depends on the device and driver. Review diagnostic reports before sharing; they may contain paths, server addresses, and exception text. Nothing is uploaded automatically.

Return to the launcher before editing Configuration or transferring worlds. Configuration edits apply on the next game launch. World transfer uses complete folders; a dedicated ZIP-world import/export interface is not included.

Minecraft Java 26.3 is supported. Java Fabric, Forge, and NeoForge mods are not supported. Sandboxed code .hmod mods require a compatible 64-bit build. Arbitrary native .hnmod compilation and loading remain unsupported on Android.

Account integration remains a development configuration pending project-owned Microsoft/Mojang registration.

Unofficial project, not affiliated with Mojang or Microsoft. Developed with assistance from OpenAI Codex.

Horizon Android 0.7.6

Choose a tag to compare

@Vasysik Vasysik released this 31 Oct 23:30

Important

I NEED CONTRIBUTORS. I CAN'T KEEP UP ANYMORE. THIS PROJECT STARTED AS SOMETHING I WAS JUST DOING FOR FUN, BUT IT GOT COMPLETELY OUT OF CONTROL. I'M DEVELOPING AND MAINTAINING IT ALMOST ENTIRELY ALONE, AND I'M ON THE VERGE OF BURNOUT. I JUST WANT TO GET SOME SLEEP. IF YOU HAVE EXPERIENCE WITH RUST, ANDROID DEVELOPMENT, OR SLOPCODING, PLEASE CONSIDER BECOMING A CONTRIBUTOR TO THIS PROJECT!!!

An update improving touch controls, installation reliability, player saving, GPU memory allocation, and crash diagnostics, alongside another upstream synchronization.

What's new

  • Swap hands — an optional touch button, disabled by default, positioned beside Inventory. Existing custom placements are preserved.
  • Shield controls — choose between raising a shield with Sneak or a dedicated button, without accidentally using the item in the other hand.
  • Touch aiming — automatic crosshairs for bows, crossbows, tridents, and throwable items. Fireworks no longer trigger the automatic crosshair.
  • Item interactions — corrected tap behavior for flint and steel, fire charges, bone meal, buckets, and other surface actions, while preserving ordinary block placement and hold-to-use gestures.
  • Camera calibration — independent horizontal and vertical touch sensitivity, with corrected default axis scaling in landscape and portrait.
  • Control feedback — consistent frames and visible held states for Shield, Swap hands, and custom text buttons.
  • D-pad and tutorials — improved initial menu focus and navigation; touch, gyroscope, and controller camera movement now count toward the look-around tutorial.
  • Installation fixes — corrected installer finalization deadlocks and cache-cleanup races, improved metadata retries, and preserved reusable completed downloads.
  • Player saving — fixed singleplayer inventory, position, and experience persistence when leaving and reopening worlds.
  • Audio responsiveness — moved periodic audio-device discovery off the frame thread to reduce recurring stalls in the launcher and game.
  • GPU memory allocation — smaller Android terrain-buffer growth and a memory-focused allocation policy reduce large reservations. Texture resolution, geometry, and shader quality are unchanged.
  • Graphics compatibility — texture arrays adapt to hardware limits, improved opaque Android surface presentation, and fixed a legacy Adreno shader-link crash. Graphics API selection is controlled by the launcher.
  • Startup recovery — improved recovery after interrupted Vulkan startup and corrected startup-marker handling when reusing a GPU device.
  • Diagnostics — combined performance and GPU recording, bounded background logging, Android exit history, and exportable diagnostic ZIPs with available crash information.
  • Mod compatibility — retained sandboxed .hmod execution and added shared validation for content-only .hmod packages.
  • Upstream synchronization — 1,288 additional upstream commits, including merge history, through c0b65f1d2, covering gameplay, multiplayer, saving, resources, rendering, and mod APIs.
  • Architecture builds — ARM64, ARMv7, x86, and x86_64. ARM64 and x86_64 require Android 9+; ARMv7 and x86 require Android 8.1+.

Known limitations

This is an unfinished experimental project. Device compatibility and performance may vary.

Older OpenGL ES GPUs may display transparent or fragmented terrain. Some devices may also experience startup hangs or graphics-driver failures. Architecture support does not guarantee compatibility with every GPU.

GPU memory changes do not guarantee higher FPS or eliminate all loading stalls. Performance recording and GPU profiling add overhead; GPU timing availability depends on the device and driver.

Diagnostic exports use best-effort redaction. Review reports before sharing: they may contain paths, server addresses, and exception text. Nothing is uploaded automatically.

Minecraft Java 26.3 is supported. Java Fabric, Forge, and NeoForge mods are not supported. Sandboxed code .hmod mods require a compatible 64-bit build; native .hnmod compilation remains unsupported on Android.

Account integration remains a development configuration pending project-owned Microsoft/Mojang registration.

Unofficial project, not affiliated with Mojang or Microsoft. Developed with assistance from OpenAI Codex.

Horizon Android 0.7.6 RC1

Pre-release

Choose a tag to compare

@Vasysik Vasysik released this 31 Oct 13:02

An ARM64-only release candidate improving touch controls, audio responsiveness, installation reliability, player saving, graphics compatibility, and diagnostics, alongside another upstream synchronization.

What's new

  • Swap Hands button — optional, disabled by default, and customizable in the touch layout editor. Its default position is separated from Sprint.
  • Shield controls — choose between Sneak and a dedicated Shield button, without accidentally using the main-hand item.
  • Projectile aiming — automatic crosshair aiming for bows, crossbows, tridents, and throwable items in touch schemes. Fireworks do not enable the automatic crosshair.
  • Camera calibration — independent horizontal and vertical touch sensitivity, with consistent physical drag scaling in landscape and portrait.
  • Touch interaction fixes — short-tap support for flint and steel, fire charges, bone meal, buckets, and other surface actions. Ordinary blocks retain tap placement and hold mining.
  • Tutorial and D-pad improvements — touch, gyroscope, and controller camera movement count toward the tutorial. Improved initial D-pad focus acquisition before full resource loading.
  • Audio responsiveness — periodic audio-device discovery moved to a background worker and limited to once per second, addressing a source of recurring main-thread freezes.
  • Player saving fix — corrected integrated-server handling that could prevent inventory, position, and experience from persisting after reopening a singleplayer world.
  • Installation fixes — resolved the installation-finalization deadlock from PR #39, improved cache-cleanup coordination, and added metadata retries and clearer DNS error messages.
  • GPU compatibility — texture arrays respect lower hardware layer limits without reducing texture resolution. Added opaque Android output handling to address dark sun and emissive-object rendering.
  • Graphics recovery — OpenGL ES selection also applies to the launcher. An interrupted first Vulkan startup selects OpenGL ES recovery on the next launch.
  • Combined performance recording — CPU recording and GPU profiling share one report session.
  • Crash diagnostics — bounded local logs, previous-session context, Android exit history, and readable summaries of available native crash traces, exportable as one ZIP.
  • Reduced diagnostic blocking — log redaction, memory collection, and disk writes run on a worker; routine diagnostic updates skip busy locks instead of waiting.
  • Upstream synchronization — 717 reviewed upstream commits, including merge history, through c3905131b.

Known issues and limitations

This is a release candidate, not a stable release. Only the ARM64 APK is included.

Possible performance regressions remain under investigation. CPU-related stalls and lower frame rates have been reported; the audio polling fix does not establish that every source of stuttering has been resolved. Performance recording and GPU profiling also add overhead.

A startup crash is confirmed on an ARMv7 device with Adreno 304 while creating the GLES terrain pipeline. ARMv7 builds are withheld pending investigation.

The graphics fixes still require confirmation on the originally affected Mali and Unisoc devices. OpenGL ES recovery cannot repair every vendor-driver crash.

Back up valued worlds before testing. The player-saving fix does not automatically restore previously lost inventory or player state.

Diagnostic trace availability depends on Android and firmware. Reports use best-effort redaction; review them before sharing. Nothing is uploaded automatically.

Minecraft Java 26.3 is supported. Java Fabric, Forge, and NeoForge mods are not supported. Sandboxed .hmod execution requires a compatible 64-bit build; native .hnmod compilation remains unsupported.

Account integration remains a development configuration pending project-owned Microsoft/Mojang registration.

Unofficial project, not affiliated with Mojang or Microsoft. Developed with assistance from OpenAI Codex.

Horizon Android 0.7.5

Choose a tag to compare

@Vasysik Vasysik released this 31 Oct 00:04

A major update improving Android touch and gyroscope controls, screen presentation, performance options, diagnostics, and multiplayer connectivity, alongside another major upstream synchronization.

What's new

  • Virtual menu mouse — an always-available Mouse button for relative touchpad cursor movement, hover tooltips, adjustable sensitivity, tap for LMB, and hold for RMB. Dedicated LMB/RMB buttons work in menus without enabling gameplay controls.
  • Touch interactions — short taps attack entities without holding the attack into the next tick. Ordinary blocks retain tap placement and hold mining, while usable items wait for a long press.
  • Crosshair gestures — an independent option allows touch taps and holds to target the crosshair. All four existing touch schemes remain available.
  • Gyroscope aiming — opt-in sensor control with adjustable sensitivity, orientation-aware axes, and shutdown when the game loses focus. Applies only to active touch gameplay.
  • Screen presentation — optional immersive navigation, camera-cutout avoidance, and Native, 16:9, 4:3, and 1:1 display fitting. Rendering and absolute touch input share the physical content bounds.
  • Display and performance options — preferred display refresh rates on Android 11+, optional ADPF performance hints on Android 12+, and expanded GPU profiling with rolling p50/p95/p99 stage timings. Sensor and performance controls default to off; refresh rate defaults to System.
  • Exit reports — Android 11+ process history, available Java/native/ANR traces, a previous-log tail, and Rust panic exports retained locally under Horizon Android > Reports.
  • Launcher recovery — pending text and corner-atlas uploads are regenerated after skipped frames, preventing missing launcher labels after unlocking.
  • Sign-in recovery — Microsoft device-code polling retains the active code through temporary network outages with bounded retries and backoff.
  • Multiplayer connectivity — SRV-only server addresses use Android's system DNS resolver, following the active network, VPN, and Private DNS configuration.
  • Mod compatibility — sandboxed .hmod execution remains available alongside upstream native hooks. Custom physical-key touch buttons now send key-down/key-up events to sandbox mods; source-only .hnmod entries remain visible with an unsupported status.
  • Upstream synchronization — 2,072 reviewed upstream commits, including merge history, through f4a81d27e, with vanilla parity, gameplay, mob AI, multiplayer, saving, data-pack world generation, far-terrain, rendering, and performance improvements.
  • Architecture builds — ARM64, ARMv7, x86, and x86_64 APKs are available. ARM64 and x86_64 require Android 9 or newer; ARMv7 and x86 require Android 8.1 or newer.

Known limitations

This is an unfinished experimental release. Device compatibility and performance may vary.

Gyroscope support, display-rate requests, ADPF hints, and GPU timestamps depend on the device, Android version, and driver. These settings do not guarantee a particular refresh rate or higher FPS. GPU profiling adds overhead.

Exit traces depend on the OS and firmware. Normal low-memory process termination is not necessarily a game crash. Review reports before sharing; they may contain paths, server addresses, and exception text.

Skin/cape management and native .hnmod engine experiments are not included. Running .hmod mods requires a compatible 64-bit build.

Minecraft Java 26.3 is supported. Java Fabric, Forge, and NeoForge mods are not supported. Modrinth Java mods remain browse-only.

Account integration remains a development configuration pending project-owned Microsoft/Mojang registration.

Unofficial project, not affiliated with Mojang or Microsoft. Developed with assistance from OpenAI Codex.

Horizon Android 0.7.5 RC1

Pre-release

Choose a tag to compare

@Vasysik Vasysik released this 29 Oct 23:43

This pre-release addresses the server connection issue reported in #17.

Fixes

  • Potential fix for #17 — fixed Android DNS/SRV resolution that could prevent joining Minecraft servers.
  • Server addresses now resolve through Android's system DNS resolver, including support for VPN and Private DNS.

Notes

  • ARM64 only.
  • This is a testing release focused on server connectivity.
  • Other issues, including #14, are still under investigation.

Please test server connections and report whether the issue is resolved.

For other architectures, use Horizon Android 0.7.4.

Horizon Android 0.7.4

Choose a tag to compare

@Vasysik Vasysik released this 29 Oct 21:15

A focused update improving Android rendering, controller support, touch controls, and shader management, alongside another major upstream synchronization.

What's new

  • Rendering optimizations — reduced sunrise and sunset GPU workload without changing sky quality, improved Vulkan terrain batching, and corrected GPU visibility tracking.
  • Smoother startup — Vulkan renderer preparation now runs in the background, reducing the blocking pause when the full game renderer becomes ready.
  • Gamepad support — native USB and Bluetooth controller input, configurable buttons, sticks, triggers, deadzones, and camera sensitivity. Controller vibration is supported when exposed by the Android driver.
  • Input selection — choose Auto, Touch, Keyboard & mouse, or Controller. Auto follows active input; the selected mode is saved between launches.
  • Inventory touch controls — optionally keep existing on-screen buttons visible in inventories, including attack, interact, and sneak for left-click, right-click, and Shift actions.
  • Sprint toggle — an optional tap-to-toggle mode for the touch Sprint button.
  • Keyboard fixes — improved system keyboard support for recipe-book searches, controller text entry, and other input fields.
  • Catalog improvements — Horizon and Modrinth sources for shader searches, fixed classic shader ZIP downloads, and Modrinth browsing in Mods. Java mods remain unsupported.
  • File-picker stability — fixed a native callback crash when returning from Android’s file picker after activity restoration.
  • Performance diagnostics — more detailed GPU preparation, upload, rendering, and post-processing timings.
  • Upstream synchronization — 533 reviewed upstream commits, including merge history, with gameplay, multiplayer, world-loading, saving, rendering, and compatibility improvements.
  • Architecture builds — ARM64, ARMv7, x86, and x86_64 APKs are available.

Known limitations

This is an unfinished experimental release. Device compatibility and performance may vary.

Some intermittent frame-rate drops remain under investigation. Rendering improvements do not eliminate terrain-generation costs or guarantee higher FPS on every device.

Controller vibration depends on Android driver support. Classic shader ZIP compatibility remains experimental. Modrinth Java mods are browse-only.

Minecraft Java 26.3 is supported. Java Fabric, Forge, and NeoForge mods are not supported. Running .hmod mods requires a compatible 64-bit build.

Unofficial project, not affiliated with Mojang or Microsoft. Developed with assistance from OpenAI Codex.

Horizon Android 0.7.3

Choose a tag to compare

@Vasysik Vasysik released this 28 Oct 23:34

A focused update improving Android file access, touch input, resource-pack loading, and launcher responsiveness, alongside another upstream synchronization.

What's new

  • Shaders catalog — browse Horizon's shader catalog and import native .hshader packs or experimental classic shader ZIPs.
  • System file access — access Mods, Resource Packs, Shader Packs, and Reports through Horizon Android in the system Files app. Open Folder now opens the corresponding directory.
  • File imports — import .hmod, resource packs, and shader packs using Android's file picker, with archive validation, cancellation, and replacement confirmation. HTTPS .hmod link imports remain available.
  • Installed management — three collapsible sections for mods, resource packs, and shaders. Successful imports and downloads open the matching section automatically.
  • Touch and keyboard fixes — improved sign editing and Done button handling, corrected touch-menu cursors, and expanded Android keyboard support for inventory searches, books, anvils, and server dialogs.
  • Resource-pack loading — fixed unsupported Android file locking and moved local resource preparation to a background worker with a loading screen.
  • Structure generation fix — restored a missing generated table required for structures. Existing installations repair it automatically; previously generated chunks remain unchanged.
  • Launcher responsiveness — asynchronous catalog searches, cached results, faster long-text layout, and fewer repeated file reads when switching tabs.
  • Performance diagnostics — additional GPU-buffer allocation timings, resource-reload timings, and build information in reports. Reports are now accessible through Files instead of automatically copied to Downloads.
  • Upstream synchronization — 268 reviewed upstream commits, including merge history, with gameplay fixes, chunk-processing improvements, reused buffers, and rendering optimizations.

Known limitations

This is an unfinished experimental release. Device compatibility and performance may vary.

Some devices may experience temporary low FPS after entering or creating a world. GPU allocation stalls and other performance issues remain under investigation; no general FPS improvement is guaranteed.

Minecraft Java 26.3 is supported. Java Fabric, Forge, and NeoForge mods are not supported. Running .hmod mods requires a compatible 64-bit build.

Unofficial project, not affiliated with Mojang or Microsoft. Developed with assistance from OpenAI Codex.

Horizon Android 0.7.2

Choose a tag to compare

@Vasysik Vasysik released this 28 Oct 14:03

A focused update improving launcher usability, mod management, performance diagnostics, and gameplay stability, alongside another upstream synchronization.

What's new

  • Performance recording — detailed CPU, GPU, frame-time, chunk processing, memory, and thermal diagnostics, with reports exportable to Downloads.
  • Launcher improvements — improved D-pad navigation and automatic scrolling to off-screen settings, visible button press feedback, text cursors, and refined layouts.
  • Mod catalog — browse and download mods from the official Horizon Mods catalog, including .hmod support on compatible 64-bit devices.
  • Download management — individual download progress, installed status, and retry options for mods and resource packs.
  • Gameplay fixes — improved riding-state handling when switching servers, earlier audio initialization, and faster availability of FPS diagnostics during startup.
  • Storage improvements — temporary installation downloads are cleaned up after successful preparation, reducing unnecessary storage usage.
  • Visual improvements — official Horizon application icon, clearer launcher sections, and improved touch button editor layout.
  • Upstream synchronization — 69 reviewed upstream commits with gameplay and compatibility improvements.
  • Architecture builds — ARM64, ARMv7, x86, and x86_64 APKs are available.

Known limitations

This is an unfinished experimental release. Device compatibility and performance may vary.

Initial world-loading slowdowns and frame-rate drops in complex environments are still under investigation. Some devices may also experience interface layout or navigation issues.

Performance recording is intended for diagnostics and does not itself improve FPS.

Minecraft Java 26.3 is supported. Java Fabric, Forge, and NeoForge mods are not supported.

Unofficial project, not affiliated with Mojang or Microsoft. Developed with assistance from OpenAI Codex.