Skip to content

Releases: ddanila/aml2

v0.6.1

Choose a tag to compare

@github-actions github-actions released this 13 May 14:15

Polish release on top of v0.6.0.

  • header clock now reads system time via INT 21h AH=2Ch. The previous code truncated the 32-bit BIOS tick counter to 16 bits, which wrapped roughly once per hour and frequently appeared stuck at 00:00.
  • bigtext = off setting renamed to bigtext = wide — the font swap still happens in that mode (entries are still rendered big), only the 8-dot character-cell switch is skipped. "off" was misleading. off is still accepted as an alias for files written by v0.6.0.
  • starting with the next tag, release zips use 8.3-compliant naming (aml2-062.zip, aml2-063.zip, …) so they fit on FAT12/FAT16 floppies. This release keeps aml2-v0.6.1.zip.

aml2 screenshot

Full Changelog: v0.6.0...v0.6.1

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 13 May 13:54

Make the bigtext clock-switch behaviour configurable per machine, after hardware A/B testing in v0.5.8 and v0.5.9 showed no single path works on every VGA chip.

New: bigtext setting in LAUNCHER.CFG

bigtext = on      # default — v0.5.7 behaviour (MOR + SR1, 31.47 kHz target)
bigtext = svga    # SR1 8-dot only — leave the dot clock alone; needed on
                  # chips that reset SR1 when the MOR clock-select bits are
                  # written (symptom: monitor stuck at "out of range, 28 kHz"
                  # after v0.5.7)
bigtext = off     # disable big-font rendering

The setting is read at startup and applied before ui_init. F2 (editor mode) writes the current choice back to LAUNCHER.CFG. Unknown keys/values are silently ignored.

Hotkeys (now shifted, to avoid accidental triggers)

  • Shift+1 (!) — bigtext = on
  • Shift+2 (@) — bigtext = svga
  • Shift+4 ($) — bigtext = off
  • Shift+0 ()) — panic INT 10h mode 3 reset (recover a monitor that lost sync)

Shift+3/5/6 remain as diagnostic-only approaches (MOR-only, reversed order, CRTC compensation) and do not persist.

Other

  • README documents the setting and the hotkeys.
  • ui_hide_cursor now re-parks the cursor off-screen on every approach switch, since some chips honour the CRTC cursor-disable bit inconsistently in 8-dot mode.

aml2 screenshot

Full Changelog: v0.5.9...v0.6.0

v0.5.9

Choose a tag to compare

@github-actions github-actions released this 13 May 13:25

Continuation of the v0.5.8 hardware-debug effort.

  • new hotkey 6 — CRTC compensation (keep MOR at 28.322 MHz, set SR1 8-dot, extend CRTC H-total to 112 char clocks). Intended to give ~31.6 kHz for monitors that reject both v0.5.7's 28 kHz and the older v0.5.0 35 kHz states.
  • ui_hide_cursor now uses the Volkov-Commander trick (park the cursor on row 25, off-screen) instead of the CRTC "cursor disable" bit, which is ignored by some VGA chips in 8-dot mode.

aml2 screenshot

Full Changelog: v0.5.8...v0.5.9

v0.5.8

Choose a tag to compare

@github-actions github-actions released this 13 May 13:10

Debug build for diagnosing the "horizontal frequency out of range — 28 kHz" symptom that v0.5.7's sync-reset fix did not cure on at least one VGA card.

Adds blind A/B-testable hotkeys in the main launcher view:

  • 0 — panic INT 10h mode 3 reset (recovers a monitor that lost sync; forces approach 4 on the next redraw)
  • 1 — current MOR + SR1 + sync-reset path (v0.5.7 default)
  • 2 — SR1 8-dot only (diagnose: did the 8-dot bit take effect?)
  • 3 — MOR clock select only (diagnose: did the clock change take effect?)
  • 4 — font swap only, no clock change (safe fallback)
  • 5 — reversed write order (SR1 before MOR), otherwise same as 1

Release zip is now named after the tag (aml2-v0.5.8.zip) instead of the commit hash.

aml2 screenshot

Full Changelog: v0.5.7...v0.5.8

v0.5.7

Choose a tag to compare

@github-actions github-actions released this 13 May 12:42

Avoid "horizontal frequency out of range — 28 kHz" complaint on some monitors when AMLUI enters/exits 8-dot bigtext mode.

  • hold the VGA sequencer in synchronous reset while flipping MOR (dot clock) and SR1 (char width) during vertical blank, so the brief (9-dot, 25.175 MHz) ≈ 28 kHz transient between the two writes never reaches the monitor
  • steady-state timing unchanged at 31.47 kHz, so the original 8-dot fix from v0.5.x stays in place
  • release zip: README and LAUNCHER.CFG now ship with CRLF line endings, README transliterated to CP437 so DOS text editors render it cleanly

aml2 screenshot

Full Changelog: v0.5.6...v0.5.7

v0.5.6

Choose a tag to compare

@github-actions github-actions released this 12 Apr 16:32

Fix games with built-in launchers appearing to restart instead of returning to AML.

  • flush keyboard buffer on AMLUI startup so stale keystrokes from the game's own exit menu don't immediately re-launch the last selected entry
  • affected games: Alone in the Dark and others with their own menu systems

aml2 screenshot

Full Changelog: v0.5.5...v0.5.6

v0.5.5

Choose a tag to compare

@github-actions github-actions released this 11 Apr 14:06

Persist selection across game launches.

  • save selected entry index to AML2.SEL before launching a game
  • restore selection on restart so the user returns to the same position
  • deleted on clean exit (F10) so fresh boot starts at first entry
  • out-of-bounds index falls back to first entry

aml2 screenshot

v0.5.4

Choose a tag to compare

@github-actions github-actions released this 11 Apr 13:43

Remove hotkey direct-launch, expand list to 11 entries.

  • remove 0-9/a-z/A-Z direct-launch hotkeys and [X] bracket display
  • expand visible list from 10 to 11 bigtext entries
  • shift bigtext to col 5, increase max name length from 23 to 25 chars
  • 1 row top padding below header

aml2 screenshot

v0.5.3

Choose a tag to compare

@github-actions github-actions released this 11 Apr 12:10

Post-investigation codebase cleanup.

  • restore rep movsw assembly blit (was replaced with C for-loop during debugging)
  • remove unused ui_current_second() and _dos_gettime dependency
  • remove investigation scripts from tests/perf/ (kept repro_vnc_fb.py)

No functional changes from v0.5.2.

aml2 screenshot

v0.5.2

Choose a tag to compare

@github-actions github-actions released this 11 Apr 11:44

Fix keyboard input lag — Watcom toolchain update + CI packaging fix.

Root causes found and fixed:

  1. Open Watcom linker bug in the Apr 3 2026 snapshot produced binaries with ~660ms keyboard input delay when compiled from multiple object files. Updated to Apr 11 snapshot which fixes this.
  2. CI was packaging the test-hooks binary (-DAML_TEST_HOOKS=1, 36782 bytes) instead of the production binary (36142 bytes). The larger binary re-triggered the layout bug even with the new toolchain.

Results (VNC framebuffer measurement in QEMU):

  • v0.5.0: 2nd DOWN = 663ms (old Watcom + test binary)
  • v0.5.2: 2nd DOWN = 36ms (new Watcom + production binary)
  • v0.1.8: 2nd DOWN = 34ms (baseline)

Also includes: env_seg=0 (Turbo Pascal fix), pixel clock compensation (monitor sync), attribute-only selection swap, tick counter clock, macOS build support.

aml2 screenshot