Installer package, AHI drivers, host-download, and Windows host support#11
Merged
Conversation
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.
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 packageproducesHost-Tools-<version>.lhacontaining a structuredHost-Toolsdrawer: 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 (getversioncompare with replace/skip prompts at Expert level, automatic at lower levels) and never touches startup files, prefs, or system configuration. Guarded bytests/test_package_layout.sh.AHI drivers, built from source
uae.audio+UAEAudioMode): Toni Wilen's original WinUAE driver sources, assembled with vasm in CI.uaesnd.audio+UAESNDAudioModes): 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)
RETURN_ERROR;?help returns 0.host-shellsizes the host pty to the Amiga console window.host-clip copyreads stdin verbatim (pipes, multi-line text), with ISO-8859-1/UTF-8 conversion via hosticonv.host-revealselects the file via theFileManager1D-Bus interface on Linux.host-download + Windows hosts
host-downloadtool: fetches a URL with hostcurl/wgetand 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.host-download,host-clip,host-reveal, andhost-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).