From 0935f5183ca5fa264f44c529b5bed2226303f244 Mon Sep 17 00:00:00 2001 From: Jack Rayner Date: Sat, 24 Oct 2026 20:04:54 +0100 Subject: [PATCH] docs: record release 0.0.3 in the tracker and compatibility notes Move the cutscene port, the SGD2FreeRes update and the release to Done, drop the finished item from Planned, add the resolution-mod-on-1.10/1.12 follow-up, and note that only a cutscene from the menus has been tried, not an in-game one. Compatibility: 1.14d under Wine now covers 0.0.1 to 0.0.3, and the old edge-tile patches are noted as fixed in 0.0.3. Co-Authored-By: Claude Opus 5.5 --- DEVELOPMENT.md | 13 ++++++++----- docs/compatibility.md | 4 ++-- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index 3aeeabe..4803917 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -17,13 +17,16 @@ Research basis: a survey of upstream's forks, open PRs and issues on 2026-10-24. | First release `0.0.1` (`d2dx.zip`; played on 1.14d under Wine/Proton, no problems) | fork#15 | 2026-10-24 | | Port: FPS slowdown in long sessions (64-bit frame timing, 32-bit unit IDs) and an uninitialised frame-time fix; upstream PR 188 by Jarcho | fork#23 | 2026-10-24 | | Port: smaller GPU vertex buffer (64 to 16 MiB); upstream PR 187 by Jarcho | fork#24 | 2026-10-24 | -| Release `0.0.2` with both ports (not yet played in-game); the release-PR CI skip is confirmed working | fork#25 | 2026-10-24 | +| Release `0.0.2` with both ports (played on 1.14d under Wine/Proton; it showed the edge-tile patches fixed in `0.0.3`); the release-PR CI skip is confirmed working | fork#25 | 2026-10-24 | | Dependabot for GitHub Actions | fork#3 | 2026-10-24 | | This tracker, plus attribution guidance | fork#8 | 2026-10-24 | | README made the fork's own; upstream changelog moved to `docs/upstream-changelog.md`; status badges; release no longer forced to prerelease | fork#18 | 2026-10-24 | | Repo housekeeping: Issues enabled, merged and scratch branches deleted, dead links removed (the imgur video is gone); licence header on `version.h`; neutral copyright wording ("The D2DX contributors") recorded in `AGENTS.md` | fork#19 | 2026-10-24 | | `docs/configuration.md`, `docs/compatibility.md` (per-version table with what has been tested), `CONTRIBUTING.md`; README credits cut back to plain credits | fork#20 | 2026-10-24 | | Repo settings: fork description, topics, squash merges use PR title + body | settings | 2026-10-24 | +| Port: full-width cutscenes and the `nokeepaspectratio` option; upstream PR 186 by Jarcho (a cutscene from the menus fills the screen width on 1.14d under Wine/Proton) | fork#28 | 2026-10-24 | +| Embedded SGD2FreeRes updated to the official 3.0.3.1 plus a one-string patch so it reads D2DX's config (the unpatched official DLL ignored it and crashed in the menus). The black tile patches at the screen edge at 1128x752 are completely gone in play. See `thirdparty/sgd2freeres/MODIFICATIONS.md` | fork#29 | 2026-10-24 | +| Release `0.0.3` (the two items above) | fork#30 | 2026-10-24 | ## In progress (this fork) Nothing. @@ -33,14 +36,14 @@ Source is mostly Jarcho's split-out upstream PRs. Port them one at a time, each | # | Item | Upstream | Fixes / relates to | Risk and notes | |---|---|---|---|---| -| 1 | Extend support to all game versions (per-version cell/unit structs, 1.10f/1.12 resolution mod, SGD2FreeRes update) | PR #185 | #172, #167, #165, #155, #95, #38 | Large. **Do not ship a binary `SGD2FreeRes.dll` unless its source and licence are confirmed** (see Licensing in `AGENTS.md`). | -| 2 | Full-screen-width cutscenes + `nokeepaspectratio` | PR #186 | #99; related #78, #182, #173, #212 | **Conflicts with our `GetRenderRect` fix** (signature change in `Metrics.cpp`); resolve against the fix and keep the tests passing. | -| 3 | xxHash for texture/palette hashing | PR #190 | #140 (maybe #166, #146) | Risky: once broke Median XL (author says fixed); hardcoded hash constants must be updated consistently. Needs `thirdparty/xxhash` with its licence and a README credit. | -| 4 | Cursor clipping / activation fixes | PR #192 | #159; related #50, #85 | Overlaps `RenderContext.cpp` with #186 and #190; rebase last. | +| 1 | Extend support to all game versions (per-version cell/unit structs, resolution mod on 1.10f/1.12) | PR #185 | #172, #167, #165, #155, #38 | Large. The SGD2FreeRes update it contained is done (see Done). That version supports 1.10 and 1.12A, but `BuiltinResMod::IsCompatible` still only enables the resolution mod on 1.09d, 1.13c, 1.13d and 1.14d. Needs testing on each version. | +| 2 | xxHash for texture/palette hashing | PR #190 | #140 (maybe #166, #146) | Risky: once broke Median XL (author says fixed); hardcoded hash constants must be updated consistently. Needs `thirdparty/xxhash` with its licence and a README credit. | +| 3 | Cursor clipping / activation fixes | PR #192 | #159; related #50, #85 | Overlaps `RenderContext.cpp` with #186 and #190; rebase last. | ## Backlog (unscheduled) | Item | Source | Notes | |---|---|---| +| Play an in-game Act transition cutscene and check the game size is restored afterwards | this fork | `0.0.3` was only tried with a cutscene from the menus. A cutscene sets a 640x292 game size and the next Glide window open should restore it; read from the code, not played. | | Test the released DLL on the other supported game versions (1.09d, 1.10f, 1.12, 1.13c, 1.13d) and on native Windows, and record the results | this fork | `0.0.1` was only played on 1.14d under Wine. Windows 7/8.1 are also untested with the v143 build. | | Nearest-neighbour / pixel-exact upscaling | Jarcho fork (not in a PR) | #181. Would be lifted from the fork. | | Float window scale (`scale=1.25`) | PR #133 | In our tree nothing outside `Options.cpp/.h` reads `GetWindowScale()`, so the parsed value may be unused. Find the consumer first. Unverified: whether `toml_double_in` rejects integer literals like `scale=2`. | diff --git a/docs/compatibility.md b/docs/compatibility.md index f8cd77d..31c1780 100644 --- a/docs/compatibility.md +++ b/docs/compatibility.md @@ -11,7 +11,7 @@ Derived from the source: which versions get the built-in resolution mod is decid | 1.12 | no | units, weather | no | | 1.13c | yes | units, weather, text | no | | 1.13d | yes | units, weather, text | no | -| 1.14d | yes | units, weather, text | yes, under Wine/Proton (0.0.1) | +| 1.14d | yes | units, weather, text | yes, under Wine/Proton (0.0.1 to 0.0.3) | Other versions are not supported. The rest of D2DX (scaling, anti-aliasing, windowed/fullscreen handling) is not limited by version in the same way, but only 1.14d has been tried. @@ -20,7 +20,7 @@ Please report results for the untested versions through the [issue tracker](http ## Windows and Wine - **Windows 10** is recommended. Upstream supported Windows 7 SP1 and later; this fork's DLL is built with the newer v143 toolset and has not been tried on Windows 7 or 8.1. -- **Linux (Wine/Proton):** 0.0.1 was played on 1.14d through Lutris with Proton on Fedora and ran fine, using `nocompatmodefix=true` in `d2dx.cfg` (see [configuration](https://github.com/jackrayner/d2dx/blob/main/docs/configuration.md)). That is one report on one setup. +- **Linux (Wine/Proton):** 0.0.1 to 0.0.3 were played on 1.14d through Lutris with Proton on Fedora and ran fine, using `nocompatmodefix=true` in `d2dx.cfg` (see [configuration](https://github.com/jackrayner/d2dx/blob/main/docs/configuration.md)). That is one report on one setup (a 2256x1504 screen at a 1128x752 game size). With 0.0.2 and earlier, black tile-shaped patches appeared at the top-right screen edge at that size; 0.0.3 fixes them by updating SGD2FreeRes. A cutscene played from the menus fills the screen width; an Act transition cutscene during a game has not been tried. - The DLL is statically linked and uses only Windows system DLLs, so no Visual C++ runtime install should be needed. ## Mods