Skip to content

v1.4.0 - Deck accessories, PvP fixes, duel timer, keyboard surrender

Choose a tag to compare

@zersiax zersiax released this 18 Jul 21:49
· 5 commits to main since this release
1d6b198

First public release since v1.2.0. Deck accessories, a large batch of PvP duel fixes, an audible duel clock, keyboard surrender, richer Home and deck-editor labelling, plus a public-readiness pass that adds a portable test suite, CI, and a reproducible release process.

Tested against Duel Links 10.10.0 with MelonLoader 0.7.3 and NVDA.

New

  • Deck accessories (card sleeve / game mat / ace card). Press A in the deck editor to open the accessories hub, browse sleeves and mats with names, and change them. The change-scope confirmation (this deck / all decks for the character / world / everything) and the save flow are fully labelled.
  • Keyboard surrender. Ctrl+Q during a duel opens the game's own "give up?" confirmation, which the dialog reader announces — the visual surrender button was previously unreachable for screen-reader users.
  • Audible duel clock (PvP / Ranked). Announces 60 / 30 / 10 seconds remaining while your clock is draining, and — crucially — speaks the inactivity warning that the game only ever showed on screen before auto-forfeiting an idle player. Press Space while that warning is up to answer "still here."
  • Fast-forward duel animations. Space during summon / effect / battle playback taps the screen the way sighted players do to skip through it. The PvP turn clock keeps draining during animations, so this matters for keeping time.
  • Automatic draw phase. Draws now happen on their own; press Space during the Draw Phase to retry if a draw is delayed.
  • Deck-slot character ownership. Deck slots belong to a character in Duel Links, and building a deck in another character's slot makes the game offer to switch characters on save. The deck-select list now reads a header per character and prefixes each slot with its owner, blank slots included, and the deck editor announces whose deck you're editing on entry — so decks aren't unknowingly built under the wrong character.
  • Home event objects are named. The event billboards on the world map now read as "Ranked Duels", "Bingo event", "Character Deck Duel", "Scramble event", and so on, resolved from their assets, instead of a generic "Event object".
  • View-only card-list prompts. Effects that show you cards without a selection (e.g. Dark Magical Circle's "look at the top 3 cards") are now browsable and confirmable instead of dead-ending.

Fixes

  • PvP graveyard now reads every card. In server-run duels the graveyard rendered as a single pile and read as the top card followed by empty slots; it now reads all of its contents.
  • Face-down monsters offer Flip Summon. Pressing Enter on your own set monster in PvP opened a bogus direct attack instead of the Flip Summon action. Fixed — set monsters now open their real action menu.
  • Scenario / cutscene dialogue speaks once. Unlock scenes and pre-duel banter no longer repeat lines; each line reads once as "Speaker. Line".
  • Post-merge duel regressions: empty extra deck count, doubled draw animation, mislabelled Home billboards, and LP announcements being cut off by NPC speech.
  • Opponent extra-deck identities stay hidden (privacy gate on face-down / unowned cards).
  • Card-detail screens are classified before other screens, so they read correctly.
  • Deck filters and zone counts are honoured, structure-deck shop category is exposed, and actions are enabled for extra-monster-zone monsters you own.
  • Consecutive same-player turns are announced, duel-log browse position is preserved, and numpad Enter works across handlers.
  • Disabled dialog and ticket-exchange buttons no longer fire silently, and unsafe Card Trader exchanges are aborted before they drift.
  • Late-loading screens recover instead of staying silent.

Internal / release readiness

  • Portable test suite (134 tests) and a GitHub Actions CI workflow.
  • Reproducible, hash-manifested release packaging and honest contributor / building / releasing docs.
  • Security hardening: removed the mutating debug hotkeys and the inert settings menu.
  • Policy-class refactors and removal of dead code (access-state manager, unused config), pinned line endings.

Known issues (non-blocking)

  • Card Trader trade execution can drift for middle-of-list items; the confirmation dialog always opens so you can read it and back out. Items at the end of the list are stable.
  • Some structure decks opened before they're built still read as "0 in main deck" (editor opens in a MODE not yet handled).
  • A few multi-effect spell selectors (e.g. Dragon's Gunfire) aren't detected yet and need a mouse click.

Install

Tolk and the NVDA controller client are bundled in this archive, so speech works on a clean install — no separate download needed.

  1. Install MelonLoader 0.7.3+ for dlpc.exe (Duel Links on Steam) and launch the game once so MelonLoader generates its assemblies, then close it.
  2. Extract the archive into your Duel Links install folder: Mods\DuelLinksAccess.dll lands in Mods\, and Tolk.dll + nvdaControllerClient64.dll land in the game root beside dlpc.exe. Replaces any earlier DLL.
  3. Start NVDA, then start Duel Links. You should hear "Duel Links Access loaded. F1 for help."

If your screen reader isn't NVDA, swap nvdaControllerClient64.dll for the controller client matching your reader (the others ship in the Tolk archive linked in THIRD_PARTY_NOTICES.md). Tolk and the NVDA client are LGPL; their license texts are included in the archive. Press F1 in game for the current controls.

Verification

  • DuelLinksAccess-v1.4.0.zip SHA-256: 9a2b7d19164005f0438396c1abaa9b744d176ae92107b45e933e1e62ac603dfc
  • Mods/DuelLinksAccess.dll SHA-256: 7c52d97ad584f58322f941695107e52c0fe47500c8e347074c6d6cff499f40c1
  • Tolk.dll SHA-256: e09c215ac957b7693d6a57508a4bd5a701f12df6e846674774c87d672f04fff4 (x64, from the Tolk archive 76879fe7…)
  • nvdaControllerClient64.dll SHA-256: 41c1f5df5997e798fcfbf7c8f2589de811e768b069a60710600cf57cb23a0b09

SHA256SUMS.txt inside the archive lists the hash of every bundled file, and BUILD-INFO.txt records the exact commit, game version, and Tolk archive provenance.