Skip to content

Neo Angband 0.27.0

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 22 Aug 05:20
· 2796 commits to master since this release

What you can download

Platform File
Windows (installer) Neo Angband Setup 0.27.0.exe
Windows (portable, one file) Neo Angband-0.27.0-portable.exe
macOS .dmg, or the .zip if you prefer to unpack it yourself
Linux .AppImage (no install), .deb, or .tar.gz
Self-hosting neo-angband-web-0.27.0.zip - static files, any web server

The portable Windows build and the AppImage need no installer:
download, run, and the game keeps its saves in a folder beside itself.

These builds are not code-signed

There is no Apple Developer identity or Windows certificate behind this
project yet, so your OS blocks the first launch.

Windows is one click: SmartScreen says "Windows protected your PC",
choose More info then Run anyway.

macOS is not one click, and the dialog it shows you does not contain the
way through
- it offers only Done and Move to Trash. Do this:

  1. Drag the app out of the .dmg, then double-click it and press Done
    on the refusal. This step is required: it is what makes the permission
    below appear, and it expires about an hour later.
  2. Open System Settings -> Privacy & Security and scroll to
    Security, near the bottom.
  3. Press Open Anyway on the line naming Neo Angband, authenticate, and
    launch it again.

Or, the same decision in one command:
xattr -d com.apple.quarantine "/Applications/Neo Angband.app"

The old right-click -> Open trick does NOT work: Apple removed that
bypass in macOS 15 Sequoia.

On Apple Silicon take the arm64 build. The x64 one is for Intel Macs,
not a fallback - Apple is withdrawing Rosetta 2, so on a current Mac it is
likelier to refuse to launch than to run slowly.

If that trade is not one you want to make, build it yourself -
docs/INSTALL.md - or play in the browser, which needs no trust decision.

Your save

Saves survive an update. Every save-format change ships the conversion that
reads the version before it, and a save this build cannot open is left
untouched rather than replaced.


A trading and rest release: an agent's shop-buy, shop-sell and shop-exit
commands now reach a real handler instead of a silent no-op, and the rest
command carries its own multi-turn continuation matching upstream instead of
spending exactly one turn per call, so resting reaches the doubled
regeneration rate upstream gives it. Alongside these, "Report a problem" opens
the right issue tracker for the game or an installed mod directly from the
report screen, repeated messages page correctly during a run or a rest, and
the recall screen's run-length format matches upstream's own.

Added

  • "Report a problem" now opens the right issue tracker, for the game or for a
    mod.
    Once the report file is written the screen lists a destination per
    project and opens the chosen one in the real browser: G for Neo Angband, C
    for the RPGM Tools Discord, and a digit for each enabled mod that has a
    recorded origin. Nothing is uploaded; the file is still attached by hand.

    A mod's address is read from its install record, which is the repository the
    mod was pinned to on first install rather than whatever the copy on disk now
    claims. Neo Angband's own row goes to the template chooser, because its two
    templates are known to exist; a mod's row goes to the tracker root instead,
    because whether somebody else's repository has templates, or has issues open at
    all, cannot be known from inside the game. A mod whose origin is not a
    repository the game can address - one imported from a file that declared none,
    for instance - says so and offers no key, rather than guessing at a URL that
    might open a stranger's project. Every address is printed under its row, so no
    page is opened that the player has not read first.

    The same screen now gives the advice that decides whether a report is
    actionable: one problem per report, search the tracker first, say what you did
    and expected and got, and which of the two forms a difference from Angband
    belongs in.

Fixed

  • The rest command spent exactly one game turn per invocation no matter what
    duration was requested, because it was wired to the same handler as standing
    still in place. Upstream's own rest command takes one turn too, but re-queues
    itself on the internal command queue so a single keypress runs to the full
    requested duration - a turn count, "until HP and SP are full", "until nothing
    is needed", or "until either is full" - without asking for input again, and
    stops early on a disturbance exactly as any other rest would. The port's
    desktop keyboard worked around the gap with its own turn-by-turn loop outside
    the engine, so it looked correct at the keyboard; every other caller of the
    command queue got only the single turn, and never reached the five-turn
    threshold for resting's doubled regeneration rate. The command now carries
    its own multi-turn continuation, matching upstream, and reaches every caller
    the same way.
  • Repeated identical messages showed as one top line with a ticking <Nx>
    counter instead of being reprinted. Upstream keeps the run-length count for
    the recall screen only: the top line is redrawn for every occurrence, several
    share the line, and a -more- prompt stops for each screenful. The recall
    screen (Ctrl-P) still collapses the run, unchanged. Two related cases came
    with it: the top line no longer carries a <Nx> suffix that belongs only to
    the recall screen, and the partial line left by a step of a run or a rest now
    carries into the next step instead of being wiped, so its -more- arrives
    when the line fills rather than never. A dig, an open or a disarm keeps
    starting each attempt on a fresh line, which is what upstream does for a
    command repeating on its own count. Reported by nck_m.
  • Leaving a level with several screenfuls of pending messages read only the
    earlier ones: the last screenful got no -more- and was wiped by the new
    level. The flush before a level change now stops for every screenful.
  • A run of identical messages on the recall screen (Ctrl-P) read text (xN);
    upstream's own format (ui-knowledge.c, ui-display.c) is text <Nx>. Three
    comments describing the old, wrong format as upstream's are corrected too.
    Reported by nck_m.
  • "Report a problem" told a player to send the written file "wherever you got
    the game from," naming no actual destination. It now names the GitHub issue
    tracker and the RPGM Tools Discord, and the two issue form templates note
    that the report file already answers several of their required fields.
    Reported by nck_m.
  • An agent's shopBuy / shopSell / shopExit commands reached no handler at
    all: the engine's command registry had nobody registered for shop-buy,
    shop-sell or shop-exit, so a controller's shopping decisions were a
    silent no-op and an autoplayer that stepped into a shop could not spend or
    raise a copper. The three now resolve a stock index or a gear handle into a
    real object, re-check standing in the right store, and commit through the
    same buy/sell path the interactive shop screen uses.

Found something that does not match Angband 4.2.6? Open an issue or come and say so in the Discord.