Skip to content

Releases: therezor/hazke

Hazke v1.4 · Cardputer Edition

Choose a tag to compare

@therezor therezor released this 16 Oct 10:07

Hazke v1.4 · Cardputer Edition

v1.4 adds gyro aiming. On a Cardputer ADV, turn GYRO on in the title or
pause menu, and the ship turns when you turn the Cardputer.

A hand holding a Cardputer ADV next to a capture of its screen, under the title GYRO AIMING

Watch the 23-second video
of gyro aiming on a Cardputer ADV. It's also attached below as
hazke-v1.4-promo.mp4.

What's new

Gyro aiming

Hold the Cardputer still and the ship holds its heading. Turn it and the
ship follows.

Turn the Cardputer The ship
Left or right Yaws left or right
Top edge toward you or away Pitches up or down
Like a steering wheel Rolls

You can hold the Cardputer at any angle. The game finds the real vertical
with the accelerometer and measures each turn against it. While the
Cardputer is still, the game measures the gyro's drift and subtracts it,
so the ship doesn't creep off its heading.

The keys still work, and their turns add to the gyro's. Hold Alt to stop
gyro aiming while you shift your grip. Turning the Cardputer takes over
from autolock, the same way holding a pitch or yaw key does.

GYRO has five settings: OFF, 0.5X, 1X, 2X and 3X. A higher setting turns
the ship further. On the GYRO row, ← and → step
through the settings and Enter moves to the next one. GYRO starts OFF.

The original Cardputer has no gyro, so its menu shows GYRO: N/A.

Settings stay set after a reboot

The game now keeps the SOUND and GYRO settings in the ESP32's
non-volatile storage, apart from the save slots. They apply to every
commander. The save format is the same as in v1.3.

Also

  • The controls screen lists gyro aiming.
  • The USB serial console has an imu command. It prints the
    accelerometer and gyro readings, the drift the game has measured, and
    the turn rates gyro aiming adds. The boot log says whether the game
    found an IMU.

Controls

Key Action
↑ / ↓ Pitch
← / → Roll
L / ' Yaw
Turn the Cardputer ADV Aim, with GYRO on
Hold Alt Stop gyro aiming
E / S Speed up / slow down
W Fire laser
R / A Lock / fire missile
Q ECM
F Autolock, or zoom on the system map
Tab Next target, ships and places
H Hail or loot a nearby ship
M System map
Ctrl+Space Screenshot to SD
` Back / pause

Saves

  • v1.4 uses the same save format as v1.3. A slot saved in either version
    loads in the other.
  • Saves from v1.2 load in v1.4.

Install

Upgrading? The full image clears the save slots in internal
flash and resets SOUND and GYRO. Flash the app-only file instead to keep
them. Neither file touches saves on the SD card.

New install, over USB-C:

esptool.py --chip esp32s3 write_flash 0x0 hazke-v1.4.0-cardputer.bin

Upgrade a Cardputer that already runs Hazke and keep internal saves:

esptool.py --chip esp32s3 write_flash 0x10000 hazke-v1.4.0-app.bin

You can also copy save slots to the SD card first with COPY in the save
menu, load hazke-v1.4.0-cardputer.bin in M5Burner, or build hazke.ino
from source in the Arduino IDE with the board set to M5Cardputer.

Hazke v1.3 · Cardputer Edition

Choose a tag to compare

@therezor therezor released this 06 Oct 13:51

Hazke v1.3 · Cardputer Edition

v1.3 rebuilds the cockpit and every sound effect, adds an autolock
module, and removes the walls at the edge of each star system. Every clip
below is a capture of a Cardputer's screen.

Gameplay: landing on a planet, autolock, a pirate kill and a hyperspace jump

What's new

Autolock

Autolock turning the ship onto a pirate

Autolock is a 300 CR module in the equipment shop. Press F and the ship
turns onto the marked ship, planet or gate and keeps pointing at it.
AUTO blinks while the ship turns and goes steady green once it's on
target. Holding a pitch or yaw key overrides it, and roll and throttle
stay manual. If the shortest path would cross the sun's heat zone,
autolock steers around it.

3D scanner and hit arcs

3D scanner while the ship pitches
Red hit arc on the scanner rim

The scanner is now a tilted disk. A line from each contact to the disk
shows whether the contact is above or below you. The range scale is
logarithmic, with rings at 2.5K and 10K and the rim at 30K, so ships in a
dogfight spread out instead of crowding the center. When something hits
you, a red arc on the rim points at it and follows it as you turn.

New cockpit and rockets

Missile hit and a pirate kill

The cockpit has segmented gauges for shield, hull, heat and speed, plus
rows for missiles and the ECM. Missiles look like rockets, both in the
rack and in flight, where they leave an exhaust trail.

Bigger system map

System map with zoom

A side panel shows the selected object. F zooms in x2 around the
cursor. Ships are red when hostile and green when friendly, on the map,
the scanner and the target bracket.

Open space

Flying back into a system from deep space

A system no longer has walls. Past 30K from the sun you are in deep
space. Target markers hide, the HUD shows the distance to the sun, and
the scanner points home.

Sound

This release replaces every sound effect. The new set covers lasers,
shield and hull hits, explosions, missiles, landing, launch, hyperspace,
an engine hum that follows the throttle, and cockpit warnings for missile
lock, incoming missiles, a downed shield, critical hull and sun heat. Effects play on separate
channels, so one no longer cuts off another. The title and pause menus
have a volume setting: off, low, medium or high.

Also

  • The display is double-buffered, so the game draws the next frame while
    the screen shows the last one.
  • Ships far off-screen no longer slow the frame down.
  • Distant stars stay fixed in the sky, and space dust only streams past
    while you're moving.
  • The system data screen's labels no longer run into their values.
  • The USB serial console can record gameplay: cap, keys, step,
    rec and shot drive the game frame by frame and send each frame to
    the computer. See the README.

Controls

Key Action
↑ / ↓ Pitch
← / → Roll
L / ' Yaw
E / S Speed up / slow down
W Fire laser
R / A Lock / fire missile
Q ECM
F Autolock, or zoom on the system map
Tab Next target (ships and places)
H Hail or loot a nearby ship
M System map
Ctrl+Space Screenshot to SD
` Back / pause

Saves

  • The save format is now v2. Saves from v1.2 load in v1.3.
  • Once you save a slot in v1.3, v1.2 shows it as NEWER VERSION and
    can't load it.

Install

Upgrading from v1.2? The full image clears the save slots in internal
flash. Flash the app-only file instead to keep them. Saves on the SD card
are not affected.

New install, over USB-C:

esptool.py --chip esp32s3 write_flash 0x0 hazke-v1.3.0-cardputer.bin

Upgrade a Cardputer that already runs Hazke and keep internal saves:

esptool.py --chip esp32s3 write_flash 0x10000 hazke-v1.3.0-app.bin

You can also copy save slots to the SD card first (save menu, COPY),
load hazke-v1.3.0-cardputer.bin in M5Burner, or build hazke.ino from
source in the Arduino IDE with the board set to M5Cardputer.

Hazke v1.2 — Cardputer Edition

Choose a tag to compare

@therezor therezor released this 01 Jul 22:06

Hazke v1.2 — Cardputer Edition

The persistence release. Your commander finally survives a reboot — and gets
a name of their own, a third flight axis, and a faster save menu.

What's new

  • Save system — five save slots on internal flash and five more on the
    microSD card, with one-press copy between the two for backups. Save from any
    planet's landing menu; LOAD GAME on the title screen puts you back on the
    same pad. Save files carry a format version and a checksum, and older saves
    upgrade automatically in future releases — a commander from v1.2 will keep
    flying on whatever comes next.
  • Name your commander — NEW GAME now asks for a name before you fly.
    Leave it blank to answer to JAMESON like everyone before you.
  • Yaw control — L and ', the keys flanking the up-arrow, turn the nose
    flat left and right: a slow third axis for fine aim on top of pitch and roll.
  • Interface polish — save-menu layout fixes, and menus stay snappy when no
    SD card is inserted (no more SPI probe stalls).

Controls

Key Action
↑ / ↓ Pitch up / down
← / → Roll
L / ' Yaw left / right
E / S Accelerate / brake
W Fire laser
R / A Lock / fire missile
Q ECM blast
Tab Cycle target (ships + POIs)
H Dock with nearby ship
M System map
Ctrl+Space Screenshot to SD
` / ESC Back / pause / title

Fly into a planet to land; fly into a jump gate to open the galaxy chart.

Saves & compatibility

  • Saves live at /hazke/saves/slotN.sav (internal LittleFS or SD card, ~100 bytes each).
  • The internal-flash filesystem is formatted automatically on first use.
  • Save format: v1. Future firmware upgrades old saves in place on load.

Hazke v1.1 — Cardputer Edition

Choose a tag to compare

@therezor therezor released this 25 Jun 16:25

Hazke v1.1 — Cardputer Edition

A maintenance release focused on controls and in-flight UX. Same galaxy, same
gameplay as v1.0 — now with clearer targeting and docking, and tidied-up
control bindings.

What's new

  • Tab cycles everything — the target marker now steps through both points of
    interest and nearby ships in one list, instead of POIs only.
  • Dock prompt fixed — the on-screen H=DOCK / H=LOOT hint now reliably
    appears whenever a ship is in range (it was being suppressed when no POI was
    selected). Docking range bumped up so the prompt triggers from a little
    farther out.
  • Cleaner back control — the back/pause action is now a single key: the
    top-left backtick (` / ESC). The old Backspace/Del binding and all
    the stale DEL=BACK on-screen labels have been removed.
  • In-game controls list — the CONTROLS screen now lists the Tab (cycle
    target) and H (dock with ship) keys.

Controls

Key Action
↑ / ↓ Pitch up / down
← / → Roll
E / S Accelerate / brake
W Fire laser
R / A Lock / fire missile
Q ECM blast
Tab Cycle target (ships + POIs)
H Dock with nearby ship
M System map
Ctrl+Space Screenshot to SD
` / ESC Back / pause / title

Fly into a planet to land; fly into a jump gate to open the galaxy chart.

Install

Flash the attached firmware to a Cardputer over USB-C:

esptool.py --chip esp32s3 write_flash 0x0 hazke-v1.1.0-cardputer.bin

Or load hazke-v1.1.0-cardputer.bin in M5Burner, or build hazke.ino from
source in the Arduino IDE with the board set to M5Cardputer.

Hazke v1.0 — Cardputer Edition

Choose a tag to compare

@therezor therezor released this 25 Jun 10:51

Hazke v1.0 — Cardputer Edition

The first full release of Hazke: a complete open-universe space-sim that runs
entirely on the M5Stack Cardputer — no phone, no cloud, no second device. Trade,
hunt and survive across sixteen procedurally-generated star systems on a 240×135
ESP32 handheld. All code and the entire universe are original, written in C++.

Features

  • A living galaxy — 16 star systems linked by jump gates, each with its own
    economy, government, tech level and population, all grown from a single seed.
  • Free-flight cockpit — real 3D space with coordinated banking turns, shaded
    polygon planets, ringed worlds, asteroid belts, and a sun hot enough to cook
    your hull.
  • A living economy — 17 commodities priced by supply, local law and your
    reputation. Buy low under one government, run contraband past another.
  • Combat — pulse, beam and military lasers, up to four homing missiles with
    target lock, regenerating shields, and an ECM blast.
  • Contracts & progression — patrol, delivery, courier, recon and scavenge
    missions; 4 factions that track every kill and trade; 7 combat ranks from
    Harmless to Deadly.
  • Screenshots to SD — press Ctrl+Space in-game to save the current frame
    to the microSD card as a 24-bit BMP (/hazke/shotNNNN.bmp).

Controls

Key Action
↑ / ↓ Pitch up / down
← / → Roll
E / S Accelerate / brake
W Fire laser
R / A Lock / fire missile
Q ECM blast
M System map
Ctrl+Space Screenshot to SD
` / ESC Back / pause / title

Fly into a planet to land; fly into a jump gate to open the galaxy chart.

Install

Flash the attached firmware to a Cardputer over USB-C:

esptool.py --chip esp32s3 write_flash 0x0 hazke-v1.0.0-cardputer.bin

Or load hazke-v1.0.0-cardputer.bin in M5Burner, or build hazke.ino from
source in the Arduino IDE with the board set to M5Cardputer.