Skip to content

Installer package, AHI drivers, host-download, and Windows host support#11

Merged
midwan merged 11 commits into
masterfrom
amiberry-host-tools-installer
Jun 9, 2026
Merged

Installer package, AHI drivers, host-download, and Windows host support#11
midwan merged 11 commits into
masterfrom
amiberry-host-tools-installer

Conversation

@midwan

@midwan midwan commented Jun 9, 2026

Copy link
Copy Markdown
Collaborator

This brings Host-Tools to version 2.4 with a structured release package and a substantially expanded tool set. Ten commits in four areas:

Installer package

make package produces Host-Tools-<version>.lha containing a structured Host-Tools drawer: a classic Installer script with a component checklist (command tools, AmigaGuide documentation, UAE AHI driver, UAESND AHI driver — all selected by default), Workbench icons, README, and an AmigaGuide. The installer is version-aware (getversion compare with replace/skip prompts at Expert level, automatic at lower levels) and never touches startup files, prefs, or system configuration. Guarded by tests/test_package_layout.sh.

AHI drivers, built from source

  • UAE AHI v1 (uae.audio + UAE AudioMode): Toni Wilen's original WinUAE driver sources, assembled with vasm in CI.
  • UAESND AHI v2 (uaesnd.audio + UAESND AudioModes): adapted for the UAESND sound board with fixes for the emulated hardware's behavior (deferred grouped starts, stream enable restoration, zeroed panning, repeat-start SoundFunc callbacks, AHI-mixer-matched loudness). Requires the uaesnd emulation fixes merged in Amiberry (Fix UAESND stream volume handling amiberry#2092).

Tool polish (2.4)

  • Path probing no longer raises "please insert volume" requesters.
  • Usage errors return RETURN_ERROR; ? help returns 0.
  • host-shell sizes the host pty to the Amiga console window.
  • host-clip copy reads stdin verbatim (pipes, multi-line text), with ISO-8859-1/UTF-8 conversion via host iconv.
  • host-reveal selects the file via the FileManager1 D-Bus interface on Linux.

host-download + Windows hosts

  • New host-download tool: fetches a URL with host curl/wget and writes it to any Amiga path (RAM:, hardfiles, directory mounts), with live progress and safe cleanup of failed transfers. Uses the pipe-based HostShell sessions added in Add pipe-based HostShell sessions and host platform trap amiberry#2093, with a base64-over-pty fallback for older Amiberry builds.
  • Windows hosts are now supported for host-download, host-clip, host-reveal, and host-info (PowerShell encoded commands, Explorer, curl.exe); captured output is binary-clean through pipe sessions on all hosts. Requires current Amiberry master for the full experience.

Verified end to end in Amiberry on a Windows host (download, clipboard both directions, reveal, info) and via the full docker test suite (make test).

midwan added 10 commits May 20, 2026 15:40
Adapt Toni Wilen's uaesnd_ahi.s driver for the WinUAE/Amiberry UAESND
sound board as a new "ahi-v2" build target, with fixes for the
behavior of the emulated hardware:

- Defer immediate stream starts issued while AHI has the driver
  disabled (AHI_Play groups SetFreq/SetVol/SetSound), and restore the
  hardware stream enable bits before every start, since the hardware
  clears them whenever it stops a stream.
- Keep sample set panning fields zeroed; the hardware rejects any
  non-zero panning and kills the stream.
- Enable sample-start and repeat-start interrupts so the AHI SoundFunc
  fires on every sound (re)start and buffer chaining cannot stall.
- Route mono streams to both output channels and halve hardware
  volumes to match the AHI mixer's center-panned loudness.
- Limit hardware streams to the allocated AHI channels, report
  per-mode bit depths, and support AHIC_OutputVolume control.
Now that the UAESND driver is verified working, stage uaesnd.audio and
the UAESND AudioModes file into the Host-Tools package and offer them
as a fourth default-selected installer component. Document the uaesnd
modes in the AmigaGuide and README, and replace the test guardrails
that kept UAESND out of the package with positive packaging checks.
- Suppress "please insert volume" requesters while resolving path
  arguments by clearing pr_WindowPtr around the probing Lock().
- Return RETURN_ERROR after printing usage for missing or unexpected
  arguments; the explicit ? help request still returns 0.
- Size the host pty to the Amiga console window in host-shell by
  parsing the console window bounds report and prefixing the session
  with stty; drop the redundant manual DOSBase open/close.
- Let "host-clip copy" read standard input verbatim so multi-line
  text and command output can be piped to the host clipboard.
- Convert clipboard and notification text between ISO-8859-1 and
  UTF-8 with iconv when the host provides it.
- Select revealed files in the Linux file manager through the
  FileManager1 D-Bus interface, falling back to opening the
  containing directory.
- Bump the tools to 2.4 so the installer's version checks replace
  existing installations, and refresh the README and AmigaGuide.
host-download fetches a URL with the host curl or wget and saves it
to any Amiga path, giving classic AmigaOS working HTTPS through the
host. On Amiberry builds with the new pipe-based HostShell session
(trap 95) the body streams raw to the Amiga as it downloads, with
live progress from a content-length probe. Older builds fall back to
a pty session that downloads to a host temp file first and streams
it base64 encoded, with the byte count standing in for the status
trap on builds without it.

The file is written guest-side through AmigaDOS, so RAM:, hardfiles
and directory mounts all work. Failed or aborted transfers delete
the partial file; existing destinations are only replaced with the
FORCE argument. The destination defaults to the URL filename, and a
directory destination keeps the URL filename.
Query the new GetHostPlatform trap and, on Windows hosts, run the
download through the command interpreter with curl.exe (shipped with
Windows 10 and later) using the same size-then-body protocol over a
pipe session. The POSIX base64 fallback does not apply on Windows,
since builds without pipe sessions have no Windows host support at
all. Document Windows host support for host-download.
Captured host command output now prefers the binary-safe pipe session
(falling back to the pty on older Amiberry builds), so pasted
clipboard text and command output no longer pick up carriage returns
from terminal output processing.

On Windows hosts, host-clip, host-reveal, and host-info now work:
clipboard access and host details go through PowerShell encoded
commands (base64 UTF-16LE, which also converts ISO-8859-1 text
without iconv), and host-reveal selects the file in Explorer.
host-notify reports that it is not supported on Windows hosts yet,
and host-shell remains POSIX-only pending a ConPTY implementation.
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

State explicitly which tools work on Windows hosts (host-path,
host-download, host-clip, host-reveal, host-info) and which still
require a Linux or macOS host, in both the README and the AmigaGuide.
@midwan midwan merged commit e6a1793 into master Jun 9, 2026
2 checks passed
@midwan midwan deleted the amiberry-host-tools-installer branch June 9, 2026 22:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant