Skip to content

Releases: voidfnc/mw4-texture-streaming-research

v0.4.0-beta

v0.4.0-beta Pre-release
Pre-release

Choose a tag to compare

@voidfnc voidfnc released this 23 Oct 20:25

Twelve languages, and "See the full report" now shows the report.

  • Languages. English, Russian, Chinese (Simplified), Spanish, French, German, Portuguese (Brazil), Turkish, Polish, Japanese, Korean and Italian. Settings has a Language row (Automatic follows the language chosen in
    the installer, else the Windows display language); changing it restarts the window and leaves a running session alone. Logs, saved reports, file names and tool names stay English on purpose. Missing text falls
    back to English, so an untranslated line never breaks the window. The translations are machine drafts and have not been proofread: corrections welcome.
  • Installer. The setup wizard shows a language list first (preselected from Windows), translates its own pages, task names, prompts and the "what this setup does" text (the licence stays English), and saves the choice as
    the program's default language (language.txt next to the program, removed on uninstall). Simplified Chinese uses a wizard file written for this project (packaging/lang/ChineseSimplified.isl).
  • Under the hood. tools/ccslib/i18n.py (the English text is the key; templates for text built from parts; one hook translates every widget, canvas and dialog text=), tools/ccslib/lang/<code>.json, and
    tools/i18n_extract.py (lists the strings, --check finds missing keys and broken placeholders). A test fails when window text changes without the list being updated. CCS_LANG=de forces a language.
  • Fix: See the full report opened an empty page. The Report tab was only filled when a report was written during that run of the window; after a restart, or when the stop-time report was skipped because a saved
    one already covered the run, it stayed blank. It now shows the newest saved report (selected in the Saved list), writes one from the proxy log if there is traffic but no report yet, and otherwise says there is no report yet.

v0.3.0-beta

v0.3.0-beta Pre-release
Pre-release

Choose a tag to compare

@voidfnc voidfnc released this 21 Oct 05:24
b79be34

A new main window. Everyday use is one screen with one button; every old tab is still there in Advanced mode.

  • Home screen. Turn on HD textures, start the game, Turn off. A ring shows the state (off, turning on, on, playing, done, needs attention), a step strip says where you are, and three cards show the game folder, how textures load and the free
    space. While you play it shows the textures delivered, the speed, failed requests, where they come from and a three-minute graph. Problems appear as a card that says what happened and has the button that fixes it. Every part has a hover tip.
  • First start in three questions. The research notice (a full screen now, not a dialog), where the game is, how textures should load, and, only if needed, the one-time game setup. The old yes/no offer of the checklist now appears only when Advanced mode is opened first.
  • Settings panel. Slides in from the right: how textures load, the offline copy, game folder, game setup state, Check my PC, the word list, reports, the before/after test, reduced motion, Advanced mode.
  • Offline copy page. A progress ring and bar, pieces and gigabytes, speed and time left, Pause and Resume, How much and Detail level, and Use only this copy when the download is complete. It drives the same downloader as the Texture pack tab, with the same notices.
  • Advanced mode. Every tab kept, now behind a side navigation grouped as Live, Textures, Game and PC, Setup. Each page has a title and one line saying what it is for, long texts wrap to the window, a page taller than the window scrolls, and the check boxes, radio buttons, lists and buttons use the
    same dark look. The Dashboard's profile and action rows no longer run off the side.
  • Look and feel. Anti-aliased rounded shapes, line icons and a progress ring drawn by the program itself (still no extra libraries). The program tells Windows it scales itself, so it is sharp at 125 and 150 percent (CCS_NO_DPI=1 turns that off). Reduce motion
    in Settings stops the animations, and the Windows animation switch is honoured.
  • Under the hood. New tools/ccslib/ui.py (the drawing kit), home.py (what each screen says, as plain data, fully tested) and homeui.py (the screens). The window cancels its timers when it closes. About 50 new tests (323 in total).
  • Docs. README, USAGE, GETTING-STARTED, ARCHITECTURE and TEXTURE-PACK describe the new window, and so do the installer's start page and its "what setup does" text. The program screenshots and the four installer pages are new, and the walkthrough video now shows the new window.

v0.2.6-beta

v0.2.6-beta Pre-release
Pre-release

Choose a tag to compare

@voidfnc voidfnc released this 21 Oct 00:08
20f456b

You can switch between the quick fix and the offline copy, and the offline copy's text now says the program still has to run.

  • Step 1 of the guided setup can be changed. The choice between Quick fix and Offline copy could not be undone before: Start over keeps it on purpose, and a finished step 1 showed no
    buttons. It now has one button that switches to the other path (Use offline copy or Use quick fix), and the checklist follows (the Texture pack step appears or goes away). The choice
    only shapes the checklist: with the Default profile the helper serves an offline copy you already have first, whichever path is chosen.
  • The offline copy needs a session too. The helper has to run every time you play (Start session, then the game), because the game still asks for its textures through it; the copy
    replaces the download, not the helper. The path texts, the glossary, the Texture pack tab and the docs say so. The Texture pack tab also names the folder the copy is kept in (it was only
    in the Game tab, which Simple view hides), and the hover text of the Mirror light explains that "off" while a session runs means no copy was found there.
  • Docs: USAGE has a section on using an offline copy you have already downloaded; the README has two new troubleshooting entries (the offline copy and the program, and counters that stay at
    zero until a mission has loaded) and a link to a narrated walkthrough video (attached to the release). The README shows two in-game frames (docs/ingame/, with the game folder path covered in
    the first and no metadata in either), and docs/FINDINGS.md has a section 9 on the game folder settings (online mode and the cache link): what was observed in one session, what was not
    tested separately, and what is still unchecked.
  • Wording: the program's own messages about the game's Steam settings use the same neutral wording as the docs (the 0.2.5-beta files still use the older wording in a few messages). One older
    changelog line no longer refers to where a fix came from.
  • The screenshots in the README are unchanged (program windows from 0.2.3-beta, installer pages from 0.2.5-beta): this version changes one button and some text.

v0.2.5-beta

v0.2.5-beta Pre-release
Pre-release

Choose a tag to compare

@voidfnc voidfnc released this 20 Oct 21:44

The installer installs for all users by default. "For me only" stays an option on its first screen.

  • Program Files by default. The program runs as administrator, so its files should be somewhere only an administrator can change: setup now asks for one Windows permission prompt and
    installs into Program Files for all users (uninstall entry and shortcuts for everyone). "For me only" installs into your own profile without administrator rights, as before; the
    README's Administrator rights section says what that choice means. Silent installs: all users is the default, /CURRENTUSER for the current user only. If you switch from one to the
    other, uninstall the old copy first.
  • The installer test covers both. packaging\build.bat installs, upgrades (with the hosts block on) and uninstalls once for the current user and once for all users (when the build
    window is elevated), and refuses to run if shortcuts of a real installed copy are in the way.
  • The installer's four README screenshots are retaken for this version; the program's screenshots are still from 0.2.3-beta.

v0.2.4-beta

v0.2.4-beta Pre-release
Pre-release

Choose a tag to compare

@voidfnc voidfnc released this 20 Oct 21:32

The program runs as administrator by default. It asks for permission once, when it starts, instead of per action.

  • Elevated from the start. MW4 Texture Streaming.exe now carries an administrator manifest, so Windows shows the permission prompt (UAC) when it opens and the program then
    writes to the hosts file, the game folder and a mirror inside Program Files without asking again. That also removes a whole class of "cannot write" problems for a game in
    Program Files. If the prompt is declined the program still starts and asks per hosts-file change, as before. From source, ccsgui.py relaunches itself elevated once;
    CCS_NO_ELEVATE=1 or --no-elevate keeps it unelevated. ccs-cli.exe (helpers, command line, setup's hooks) is unchanged and does not ask.
  • Setup and uninstall still work. Setup starts the program with shellexec so the prompt can appear, and uninstall-prep stop-helpers asks Windows for permission when the helpers
    were started by the elevated window (an unelevated process cannot end them); procs.stop no longer forgets a helper it could not end.
  • Docs: a new Administrator rights section in the README says what the rights are used for and notes that an elevated program in a folder other programs of yours can write to
    (the per-user install folder) could be replaced; install for all users if that matters to you. The README screenshots are from 0.2.3-beta (the windows did not change).

v0.2.3-beta

v0.2.3-beta Pre-release
Pre-release

Choose a tag to compare

@voidfnc voidfnc released this 20 Oct 21:23

One fix: the mirror index can be read from a folder you cannot write to. Nothing else changes.

  • A mirror in a folder you cannot write to is read correctly. The mirror index could not be opened by a normal (non-administrator) user when the mirror sat in a folder only an
    administrator can write to, such as inside Program Files: the Doctor showed Mirror: unable to open database file, the proxy started with no stored chunk keys, and the
    session was reported as not ready. The proxy, the Doctor, the texture pack check and the reports now read the index without writing next to it (ccslib/mirrordb.py).
    The Doctor's Mirror folder row says when a folder is read-only for you, and Download in the Texture pack tab explains it instead of failing later.

v0.2.2-beta

v0.2.2-beta Pre-release
Pre-release

Choose a tag to compare

@voidfnc voidfnc released this 20 Oct 21:07

Game setup: a better undo and a few smaller gaps closed. No other change.

  • Game setup: a better undo. It puts only the two settings back (to their earlier values, or removes them if they were not there; a settings file that did not exist is removed),
    so other edits to configs.main.ini since then stay. It asks Windows for permission when the game folder needs it, and the Doctor's Game setup row has an Undo the game setup
    button after a setup made by this tool.
  • The game-running check also knows the default game process names when the setting was edited, and the setup is not offered when the engine cache folder setting points at
    sp26\xpak_cache itself.

v0.2.1-beta

v0.2.1-beta Pre-release
Pre-release

Choose a tag to compare

@voidfnc voidfnc released this 20 Oct 20:55

Game setup: helps the game use the textures it is sent. One new check and one-click fix, nothing else changes.

  • Game setup check and fix. In some game folders the Steam settings put the game in offline mode and the game looks for its cache in sp26\xpak_cache while the engine fills
    xpak_cache in the game folder, so streamed textures can arrive without ever showing. The Doctor has a new Game setup row and the guide's Check this PC step asks for it
    when it is needed; Set up the game (one click, after a confirmation) sets offline=0 and disable_lan_only=1 in sp26\steam_settings\configs.main.ini (a copy of the
    original is kept next to it, other lines are left alone) and makes sp26\xpak_cache a folder link (junction) to xpak_cache. A real folder in the way is renamed aside, never
    deleted. Nothing is changed while the game runs, applying twice changes nothing, and Windows is asked for permission only when the game folder needs it. A link of your own at sp26\xpak_cache, a read-only settings file or a failed link step are
    reported in plain words and left as they were (a moved-aside folder is put back).
    Command line: ccs-cli.exe --ccs-run gamefix status | apply | undo.

v0.2.0-beta

v0.2.0-beta Pre-release
Pre-release

Choose a tag to compare

@voidfnc voidfnc released this 20 Oct 20:13

An installer, a portable zip, and no Python needed. From this version each release offers a Windows setup program, a portable zip, and the source as before.

  • MW4-Texture-Streaming-<version>-Setup.exe: a setup wizard (Inno Setup). It installs for the current user by default, with no administrator rights; "for all users" is an
    option on its first screen. It shows the notice and licence, says what it will and will not do, adds Start menu entries and an optional desktop shortcut, and registers an
    uninstall entry. It never touches the hosts file. Settings, logs and reports stay in %LOCALAPPDATA%\MW4TextureStreaming, separate from the program.
  • Hosts-safe update and uninstall. If a session is running or the hosts override is on, setup and the uninstaller stop the helpers and take the override out first (Windows asks
    once), and ask before deleting your settings. A texture mirror and the game folder are never deleted. Silent switches: /VERYSILENT /DIR= /MERGETASKS=.
  • Portable zip: unzip anywhere, nothing is installed, settings stay in a data folder next to the program.
  • Same program inside: MW4 Texture Streaming.exe (the window) and ccs-cli.exe (the helpers and every command-line tool: ccs-cli.exe --ccs-run ccsproxy ...). The helpers
    are started through one function (ccslib/launch.py), so running from source behaves exactly as before.
  • Releases are one command: packaging\build.bat builds the program, the zip and the installer, smoke-tests the result and installs, upgrades (with the hosts block on) and
    uninstalls the Setup.exe on the build PC; python packaging/release.py then makes a draft GitHub release (files, checksums, notes from this changelog). There is no CI pipeline.
    The version is read from tools/ccslib/version.py only, and the release script refuses files from another version.
  • New: ccs-cli.exe --ccs-run selfcheck (starts and stops the proxy and disk guard and makes a shortcut, without touching the hosts file) and uninstall-prep (what the installer calls).
  • The window has an icon, and holds a named mutex so the installer knows it is open.
  • Fixed: a Python warning in netwatch.py.
  • 28 new tests (196 in total): launcher and dispatcher, uninstall hooks, selfcheck, version and packaging consistency (the installer script, build script, spec, release script and requirements must agree with the code and the version).