Android · arm64 · v1.0

HEXTEROIDS

A neon Asteroids game whose entire native code is one 7,776-byte file, written by an AI straight into ARM64 machine code, in hex.

0000 7F 45 4C 46 02 01 01 00 00 00 00 00 00 00 00 00 0010 03 00 B7 00 01 00 00 00 00 00 00 00 00 00 00 00 ← ELF, AArch64
Download the APK HEXTEROIDS-1.0.apk · 29,176 bytes

Requires a 64-bit Android phone (arm64-v8a), Android 10 or newer.

No toolchain

No assembler. No compiler. No linker. No Java. No libc.

Every instruction in the game was typed as annotated hex: the ELF header, the relocation table, the frame loop, the touch handling, the physics and the font. A small script strips the comments and turns hex pairs into bytes. It has no mnemonics, labels or address maths, so it is not an assembler. The standard Android SDK tools only package and sign the APK.

7,776
bytes of game code
1,135
ARM64 instructions
29,176
bytes to download, icon included
90 fps
on a Pixel 7 at 1080 × 2400
To scale

"Hello Android!" is 2,320 times bigger

Android Studio's standard Empty Activity template shows one line of text. Built for release with the default settings, its APK is 18,042,972 bytes. Each square below is 7,776 bytes, the size of the whole game.

HEXTEROIDS game code · 7,776 B · 1 square HEXTEROIDS APK · 29,176 B · 3.75 Template, fully shrunk · 1,239,068 B · 159 Template, release · 18,042,972 B · 2,320

Even with R8 and resource shrinking the template is 42 times the HEXTEROIDS APK. One support library inside it, there to help draw paths, is 10,096 bytes: bigger than the entire game.

Screens, captured on the phone

Phosphor trails, rainbow rocks, warp stars

Title screen: HEXTEROIDS in a neon 16-segment font with the high score
Title screen in a 16-segment vector font
Gameplay: the ship fires a line of star shots at rocks trailing rainbow outlines
Every frame fades the last: the trails turn to rainbows
Gameplay: stars smeared into diagonal warp streaks behind the ship
A two-layer parallax starfield, 48 stars
An 8x zoom of a spark burst where a rock was hit
A spark burst at 8× zoom
From the source

Rocks bounce by mass, in 27 instructions

The real source for the collision bounce. Big rocks shove small ones aside, and two rocks of the same size swap velocities. Left: the bytes as typed. Right: what they mean.

# Mass = 4 >> (size - 1): large 4, medium 2, small 1. Each axis gets the 1D # elastic collision: a' = (a(mi - mj) + 2 mj b) / (mi + mj) 90 00 80 52 # MOVZ W16,#4 6F 05 00 51 # SUB W15,W11,#1 0F 26 CF 1A # LSR W15,W16,W15 mi D1 05 00 51 # SUB W17,W14,#1 11 26 D1 1A # LSR W17,W16,W17 mj E8 01 11 0B # ADD W8,W15,W17 mi + mj E4 01 11 4B # SUB W4,W15,W17 mi - mj E7 03 04 4B # NEG W7,W4 mj - mi F0 79 1F 53 # LSL W16,W15,#1 2 mi 31 7A 1F 53 # LSL W17,W17,#1 2 mj 40 7C 04 1B # MUL W0,W2,W4 vxi (mi - mj) 20 02 03 1B # MADD W0,W17,W3,W0 + 2 mj vxj 00 0C C8 1A # SDIV W0,W0,W8 … and the same again for y
Get it

Install and play

Install

  1. Download HEXTEROIDS-1.0.apk on your phone (the button at the top of this page).
  2. Open it. Android asks to allow installs from your browser or file app ("Install unknown apps"). Allow it for this install.
  3. It isn't on the Play Store, so Play Protect may warn about an unknown developer. Choose "Install anyway" if you're happy to.
  4. Launch HEXTEROIDS.

Play

  • Tap the title screen to start.
  • Hold and drag one finger: the ship turns toward it and thrusts.
  • Tap a second finger anywhere to fire.
  • Rocks split large → medium → small. Clear them for the next wave. Three lives. Your best score is saved.

Check the file

File
HEXTEROIDS-1.0.apk, 29,176 bytes
SHA-256
88d513f8f3220528c73499519d6c921ccbf53f370cd80148e9daf21b094ac64c
Package
uk.solvx.hexteroids, version 1.0
Signed by
Solvx. Certificate SHA-256 56daa702092837409161b98d3b3b2dcc54a7f1888bd34a7154fa85d80454cd27
Needs
64-bit ARM phone (arm64-v8a), Android 10 or newer
Tested
Pixel 7, 1080 × 2400, 90 fps
Questions

HEXTEROIDS FAQ

How big is HEXTEROIDS?

The download is 29,176 bytes (29 KB). The game's entire native code is a single 7,776-byte file — 1,135 ARM64 instructions.

What is it written in?

Its native code was written by an AI directly as ARM64 machine code, in hex — no assembler, compiler, linker, Java or libc. The standard Android SDK tools only packaged and signed the APK.

Who wrote it?

The feasibility test and the first stage were written by OpenAI Codex; everything after that, to the finished game, by Claude (Anthropic).

What phone do I need?

A 64-bit ARM Android phone (arm64-v8a), Android 10 or newer. Tested on a Pixel 7 at 1080 × 2400, 90 fps.

Is it safe to install?

It's a normal sideloaded APK, not on the Play Store, so Android asks you to allow installs from your browser or file app, and Play Protect may warn about an unknown developer. You can verify the download yourself — its SHA-256 is 88d513f8f3220528c73499519d6c921ccbf53f370cd80148e9daf21b094ac64c.

How much does it cost?

It's free.