Commit Graph
64 Commits
Author SHA1 Message Date
sunnyGeezy 3dd88877cc Add files via upload
Renderer v2: fix direct mouse aiming and add native ultrawide, HUD, and Karma improvements
2026-10-23 10:46:33 -07:00
ufukzkn 551391547e fix(camera): recognize the verified CUSA00004 1.07 executable
Offer the existing camera mod for European merged dumps with APP_VER 01.00 only when the unwrapped ELF matches the already documented 1.07 hash. Preserve XML mod filtering and game metadata.

Accept the European title in both runtime hooks while retaining executable segment and instruction signature guards. Test title/version rejection, launcher hash gating and generated hooks against the matching European executable. Gameplay confirmation remains required.
2026-10-23 01:54:21 +03:00
sunnyGeezy 72bc8b1257 Add Linux update installation and successful validation results 2026-10-22 04:07:10 -07:00
sunnyGeezy 2b026a1fc8 Document combined camera update and pending Linux package 2026-10-22 03:50:33 -07:00
sunnyGeezy 50607e5036 Fix Renderer v2 overlay cursor and FPS selector; add optional 1.5x camera mod
Keep cursor changes in the overlay context and restore the missing 60 FPS label with a compile-time count check. Include guarded camera speed settings, tests, Windows ICU packaging fix and bilingual usage/validation notes.

Based on v2026.10.22-cde38af. Windows build and local checks passed; in-game confirmation and Linux validation of the combined branch remain pending.
2026-10-22 02:01:30 -07:00
936287af41 README: destaca o vídeo tutorial no topo (#477)
Claude-Session: https://claude.ai/code/session_01HjC6ySuaatw6ku7eopBZ8q

Co-authored-by: Guilherme Oliveira <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-10-21 19:15:30 -03:00
HayatoGandClaude Opus 5.5 3ad0b8bc08 Occlusion: real queries (mode 4) by default
The player saw the headlights and the light glare right with mode 4: the
glare shows where the light is in view and disappears behind walls and
characters. Mode 3 (zero counts) stays as the fallback in both launchers;
the Apolar presets follow the new default.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 11:05:22 -03:00
andretuta 21c3e0cae5 fix: harden issue malware detection against staged script execution 2026-10-19 06:18:33 -03:00
HayatoGandClaude Opus 5.5 9349b4b86b fix: restore host direction flag after ISA test fixtures
Reproduce SIGSEGV with REP string operations, then verify SSE4A native/model and 78,868,960 F16C comparisons after clearing DF. Show periodic build progress in Actions.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01JyWhQUvUQf2YSf8HJWnAtd
2026-10-19 03:40:13 -03:00
HayatoGandClaude Opus 5.5 c3684112d6 fix: unblock Linux release tests and put changes first
Audit 16 PRs and 97 commits since the last release. Validate C/C++ fixtures, 631 Python tests (45 skips), six note-parser regressions, YAML and Bash syntax.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01JyWhQUvUQf2YSf8HJWnAtd
2026-10-19 03:30:24 -03:00
andretutaandClaude Haiku 5.5 2f3fa2b239 docs: record what the Windows updater validation covers
The validation note listed the frozen helper, the packaging manifest and
locked files as not yet tested. They now have real checks: file locks, a second
process holding the install lock, process waits, the tlg-probe.exe name, a
manifest from the packaging command on a real package subset, and a
PyInstaller-frozen stand-in running handoff, apply, confirm and restore with
real processes. The remaining gaps are the full package.sh output, the frozen
Qt launcher and the game.

Co-Authored-By: Claude Haiku 5.5 <[email protected]>
2026-10-19 03:04:11 -03:00
andretutaandClaude Haiku 5.5 e96592f6fe Launcher: reconcile interrupted Windows updates whose journal is gone
An interrupted in-place update whose temporary folder was deleted blocked the
launcher with an English-only error and no remedy. The state file now records
the managed operations (path, before, after, size) before the first file is
replaced, so the expected hashes survive the journal.

When the journal is missing and the record has operations but no completion:
- every managed file all old, or all new: the install is consistent; the state
  is removed and the launcher starts;
- any mixture, or a file matching neither: the state is kept and startup shows
  a PT/EN message telling the player to reinstall the release package into the
  same folder, keeping user/ and saves. Lock-busy errors get a wait-and-retry
  text instead.

Legacy state without operations and completed records keep their behaviour.
Tests cover the state contents, crash before the first replacement, crash after
the last one, and a mixed state. AUTO_UPDATE.md is updated in PT and EN.

Co-Authored-By: Claude Haiku 5.5 <[email protected]>
2026-10-19 02:54:27 -03:00
HayatoGandCodex a478f79cae fix(updater): recover completed updates after staging cleanup
Verify completed installation hashes when staging disappears and restrict backup cleanup to completed transactions for the same installation. Add recovery regression tests and document remaining Windows validation.

Co-Authored-By: Codex <[email protected]>

Claude-Session: not applicable (Codex session)
2026-10-19 02:44:35 -03:00
HayatoGandClaude Opus 5.5 ffdbcbc67d Adapt main diagnostics to PR 227 cache loading and record local validation
Remove references to the deleted lazy_programs field from request diagnostics; retain actual ShaderLoad events. Full Linux build, C suite and focused GPU tests pass. Document the two inherited Python import errors and the limits of the ballot hypothesis.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01JyWhQUvUQf2YSf8HJWnAtd
2026-10-19 00:35:35 -03:00
HayatoGandClaude Opus 5.5 ae62156496 Integrate PR 227 with current main for local gameplay testing
Resolve GPU conflicts while preserving performance diagnostics, RX 580 controls, support links and manual-only release policy. Keep batch GC eviction single-pass with its original diagnostic reasons. Local validation and gameplay testing follow this integration.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01JyWhQUvUQf2YSf8HJWnAtd
2026-10-19 00:28:05 -03:00
HayatoGandClaude Opus 5.5 dd932b7546 Keep joint RX 580 integration current with main CI policy
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01JyWhQUvUQf2YSf8HJWnAtd
2026-10-18 23:51:45 -03:00
HayatoGandClaude Opus 5.5 3e53093b1e Integrate PR 232 with RX 580 launcher controls as one opt-in path
Preserve original contributor commits and main warning throttling. Remove duplicate/default-on coalescer, expose range/split diagnostics, and refresh bilingual compatibility guidance.
Validated 195 Python tests, real Qt and Tk windows, source --selftest, barrier-merge-test, and compilation of image.cpp/vk_runtime.cpp. RX 580 hardware testing remains pending.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01JyWhQUvUQf2YSf8HJWnAtd
2026-10-18 23:51:45 -03:00
HayatoGandClaude Opus 5.5 654c20e0be CI: build only for PRs and authorized manual releases
Validate YAML and 72 event/ref/authorization/job combinations; git diff --check passes. Platform builds run in PR CI.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01JyWhQUvUQf2YSf8HJWnAtd
2026-10-18 23:42:20 -03:00
Guilherme 28957c71b2 Merge pull request #231 from Andretuta/codex/perf-trace
diag(gpu): add opt-in CPU/GPU stall trace, CLI precompile prep, and offline report
2026-10-18 23:39:24 -03:00
HayatoGandCodex 52a00da2c4 CI: publish accumulated changes only on explicit manual request
Keep PR and main builds, require a manual main dispatch with publish_release enabled, and preserve CI history through artifact retention. Document publication in Portuguese and English.

Validation: YAML parsing, 18 event/ref/input combinations and Bash syntax passed. Linux/Windows Actions and current remote main validation remain pending because GitHub connectivity is unavailable.

Co-Authored-By: Codex <[email protected]>
Claude-Session: not-applicable (Codex)
2026-10-18 23:26:41 -03:00
andretutaandClaude Haiku 5.5 30847a8196 Launcher: RX 580 compatibility preset and option for barrier merging
Unifies the opt-in image-subresource barrier merging from #232 (credit:
@intemerated) with the launcher: an option in Graphics > Window and image
and in Advanced > Image workarounds, plus an experimental preset.

Off by default. Only the exact value TLG_BARRIER_MERGE=1 changes the
barrier stream; every other value keeps the original path.

Co-Authored-By: Claude Haiku 5.5 <[email protected]>
2026-10-18 19:01:14 -03:00
andretuta fad39416d4 diag(gpu): add opt-in CPU/GPU stall trace, CLI precompile prep, and offline report 2026-10-17 20:23:51 -03:00
batuhankiskacandClaude Opus 5.5 cba0486c40 Docs: BP06 and BP08 on, async shaders off since 2026-10-16; roadmap items 2, 4 and 7
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 23:39:15 +03:00
batuhankiskacandClaude Opus 5.5 d0ae061bb5 Docs: the full game language list, builds without PGO; roadmap item 14
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 22:50:33 +03:00
batuhankiskacandClaude Opus 5.5 c39b04032b Docs: frame time and stutter pass, new toggles; roadmap items 1 and 2
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 22:19:32 +03:00
batuhankiskacandClaude Opus 5.5 2f5cf16f65 Docs: updater, game languages from playgo-chunk.dat, the 1.07 param.sfo; roadmap items 10, 13 and 14
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 21:00:40 +03:00
batuhankiskacandClaude Opus 5.5 2eabfa3cc0 Roadmap: the wave64 subgroup-size fix as a flicker candidate, to be confirmed in game
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 20:31:26 +03:00
batuhankiskacandClaude Opus 5.5 b71e75abe1 Docs: wait, readback-queue, draw-ring and foreign-thread toggles; Frame waits line; rwlock waits and slot hand-over in the freeze report
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 20:31:26 +03:00
HayatoGandClaude Opus 5.5 5f4c8bca5b Export and import configuration presets from the launcher
preset_share.py (no Qt) writes and reads a shareable .iss-preset.json with
validation and a diff; import applies it as a full preset through gfxlogic.
Buttons on the Qt Graphics screen and the Tk fixes window; tests added.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Usr5H3NSPjFmG1SRvJmJUA
2026-10-16 17:10:24 -03:00
HayatoGandClaude Opus 5.5 cf6731b2a3 Launcher presets keep draw distance and LOD at the game's native values
The currently recommended and AMD presets no longer lower lod_scale, region_lod,
region_fade, far_clip or raise mip_lod_bias. They list those items (and near_clip)
at the native defaults, so applying a preset also sends any earlier custom value
back to native (nothing is stored in tlg.ini). Descriptions and tests updated.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Usr5H3NSPjFmG1SRvJmJUA
2026-10-16 15:27:33 -03:00
9c24de1bc3 Launcher: "AMD cards" preset (the recommended setup with the safest choices for AMD) (#114)
A full preset based on "Currently recommended": BP06 (maximal reconvergence, suspected on an RX 7600 with
driver 26.8.1) and BP08 (the driver's pipeline cache file, unverified on AMD) off, and the 1D-image
workarounds (BLOCK1D, BC_TINY, NO_MSAA) forced on instead of Automatic. BP09 is left out on purpose: it
does not fix the RX 580 crash. The current preset now lists BP06 (its default) so that switching back
turns it on again. Each full preset owns only the keys it lists.


Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm

Co-authored-by: HayatoG <[email protected]>
Co-authored-by: Claude Sonnet 5.5 <[email protected]>
2026-10-16 01:28:52 -03:00
671db8803e Defaults from the tuned session, i3-pc ports, indirect-draw check and draw distance (#110)
* GPU: ports from i3-pc (GPL-2.0): variant reuse, heap warm-up, indirect-draw check; copy-wait report

Ported from SotC-project/i3-pc, rewritten for this tree:
- TLG_VARIANT_REUSE=1|check (0120115): GetProgram takes the previous draw's variant without building
  its specialization when the flattened user data, runtime info, first bindings and vertex sharps
  are unchanged. "check" also builds it and logs a mismatch. Off by default.
- TLG_HEAP_WARM=1 (25f247c): buffers of 256 MB or more bound whole and read-only are remembered per
  game (heap_binds.txt) and uploaded 16 MB per submission from the next session's start. Off.
- TLG_INDIRECT_CHECK (7036810): every slot of an indirect draw whose arguments are in plain guest
  memory is checked and an absurd draw is dropped; slots the GPU wrote are left alone. On.
- With TLG_PERF_DIAG=1 the host-copy wait is reported per calling line (WaitDiagnostics), to decide
  whether the targeted write waits of 0120115 are safe here before porting them: a label write the
  guest sees must still follow the copies (UI flicker), which the i3 rule does not cover.
Not ported: variants named by content (7a56fff; no preload conflicts in our logs), copies on worker
threads and non-blocking copy-back (corruption reverted upstream).

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm

* Draw distance: LOD scale, LOD bands, regions' LOD_ADJUST and FADE_DISTANCE, near/far clip, texture LOD bias

inFAMOUS 1.07 (signature-checked): the camera LOD factor table, the LOD band distances and the
cameras' default clip planes are kept equal to the menu's values by a shim thread (live); the
regions' LOD_ADJUST (weight 0..1) and FADE_DISTANCE (multiplier) go through four code stubs.
Texture LOD bias (MipLodBias) is added to every draw's samplers, any game.
Menu: Image > Draw distance and detail; tlg.ini keys and ISS_/TLG_ variables
(LOD_SCALE, LOD_BANDS, REGION_LOD, REGION_FADE, NEAR_CLIP, FAR_CLIP, MIP_LOD_BIAS).

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* Launchers: draw distance options (LOD distance, regions' LOD_ADJUST and FADE_DISTANCE, near/far clip, texture LOD bias)

New 'float' option type in the shared table; Qt Graphics screen section "Draw distance and detail"
(sliders), Tk classic launcher spinboxes. Same tlg.ini keys as the in-game menu.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* Defaults from the tuned session: exact reads, BP06 on, BP12 off, sharpening 60, heap warm-up on

Chosen by the maintainer after a good play session (fewer long hitches, no dropped file reads):
- stale_readback off (exact reads; the Performance preset keeps it on, Quality and PS4-faithful
  no longer need to turn it off);
- BP06 (maximal reconvergence) on, BP12 (early fragment tests) off;
- sharpening strength 60 instead of 75;
- TLG_HEAP_WARM on (TLG_HEAP_WARM=0 turns it off).
Also fixes the TLG_VARIANT_REUSE=check comparison (stored == fresh, like the lookup) and makes it
log which field differs. TLG_VARIANT_REUSE stays off: the check found differences that still
need explaining.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm

---------

Co-authored-by: HayatoG <[email protected]>
Co-authored-by: Claude Sonnet 5.5 <[email protected]>
2026-10-16 00:25:39 -03:00
2961aefeee Launcher defaults, Linux file reads, recoverable shader failure, gow3_pc texture-cache switches (#107)
* Launcher: compile shaders in the background in every preset, read-ahead off by default

Background shader compilation is no longer turned off by the Quality and PS4-faithful presets.
GPU read-ahead (eager readback) is off by default and old settings.json files are migrated once
(settings_rev 2): in precise mode it made smoke and glow flicker.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm

* Runtime: read game files through a host buffer on Linux too

With precise readbacks the GPU tracker can protect a guest page again between touch_for_write and
the kernel copy, which then fails with EFAULT; after 64 tries the read gave up and left data
missing (10-29 reads per session). Linux now uses the bounce read Windows already had.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm

* GPU: refuse a shader with an unknown ReadConst pattern instead of ending the game

FlattenExtendedUserdataPass asserted "ReadConst base low not from constant memory" and closed the
game in a new area. It now logs the shader hash and throws UnsupportedShaderError; the pipeline
cache marks the shader (or permutation) failed and skips its draws, in the asynchronous and the
synchronous compile paths. The fault-recovery pointer no longer outlives a throwing capture.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm

* GPU: experimental texture-cache switches ported from gow3_pc (off by default) and an image report

- TLG_PARTIAL_HEIGHT_VIEWS (gow3_pc #348): an integer read of the top rows of a cached image reuses
  that image instead of creating a new one.
- TLG_BACKING_INVALIDATE (gow3_pc #331): textures over memory a readback just wrote are reloaded.
- Exact readback waits (gow3_pc #386, only with stale readbacks): uploads and frees wait only for
  copies that share bytes with the image.
- TLG_PERF_DIAG=1 prints every 5 s the images created most often and the partial views used.
The first two are listed in the Advanced screen, off by default; gow3_pc is GPL-2.0.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm

---------

Co-authored-by: HayatoG <[email protected]>
Co-authored-by: Claude Sonnet 5.5 <[email protected]>
2026-10-15 23:44:20 -03:00
e7b467e992 Advanced launcher screen, bounded wait for compiling shaders, region trace and shader index (#100)
* Test: BC 1D on NVIDIA (TLG_BC_TINY=auto, promoted BC 1D answers dimension queries as 1D)

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm

* Test script: occlusion and BP09 variants

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm

* Launcher: Advanced screen with the GPU/runtime tuning parameters (switches, numbers, lists)

31 environment-only parameters (synchronisation, threads, readbacks, pipelines, image
workarounds, diagnostics) with bilingual descriptions, Automatic/default handling, search,
restore defaults and a copyable combination. Choices live in tlg.ini (adv_<name>) and reach the
game as ISS_<name> only when changed; the Config: log block shows them.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm

* Test tools: one-round runner, monitor and analyzer for the parameter study

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm

* GPU: bounded wait for a compiling pipeline (TLG_ASYNC_WAIT_MS) and a faster driver cache save

A draw whose pipeline is still compiling in the background used to be skipped at once (missing
ground or effects while the shader cache is cold). With TLG_ASYNC_WAIT_MS=N (default 0 = off)
it first waits up to N ms for the compile, and the waits of one GPU frame add up to at most
TLG_ASYNC_WAIT_FRAME_MS (default 8). The log gets an 'Async wait (total)' line every 5 s.
The driver cache is saved every 60 s (TLG_DRIVER_CACHE_SAVE_S, was 180).

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm

* GPU: bounded wait for a compiling pipeline (TLG_ASYNC_WAIT_MS) and a faster driver cache save

A draw whose pipeline is still compiling in the background used to be skipped at once (missing
ground or effects while the shader cache is cold). With TLG_ASYNC_WAIT_MS=N (default 0 = off)
it first waits up to N ms for the compile, and the waits of one GPU frame add up to at most
TLG_ASYNC_WAIT_FRAME_MS (default 8). The log gets an 'Async wait (total)' line every 5 s.
The driver cache is saved every 60 s (TLG_DRIVER_CACHE_SAVE_S, was 180).

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm

* Launcher Advanced: async wait and driver cache save parameters

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm

* Tools: shader_index.py, an index of the OrbShdr shaders in the player's own dump

Streaming scan of art/cache (.xpps, KCAP + OrbShdr), SQLite index hash -> file/offset/size/stage,
lookup, verify against existing shader caches, stats. Reads the dump only; nothing of the game
is copied or committed.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm

* GPU: region trace (TLG_REGION_TRACE=1), step A of the per-region pre-warm

Writes region_trace.tsv in the GPU user folder: every .xpps package the game opens (O) and
the first request of each graphics/compute pipeline (P), on one monotonic clock, so an offline
pass can tell which pipelines each region needs before anything is built on top of it.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm

* GPU: the bounded wait also covers a shader still being translated

A new shader is the usual reason for a skipped draw (its pipeline is only queued once the shader
is translated), so GetProgram waits too, within the same per-draw and per-frame budget.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm

* GPU: region trace records whether a pipeline was ready; the async wait tally is a warning

The log keeps warnings and above, so the 'Async wait (total)' line never showed. The region trace's
P lines get a fifth column: r = the pipeline existed at its first request, m = it was missing.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm

* Docs and polish: Advanced screen, pre-warm notes, region trace parameter, test variant 8

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm

* Restore the third_party submodule entries (a worktree's symlinks had been committed)

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm

---------

Co-authored-by: HayatoG <[email protected]>
Co-authored-by: Claude Sonnet 5.5 <[email protected]>
2026-10-15 21:19:49 -03:00
4d92696a31 Docs: README, player guide and docs updated for the new launcher, saves, fixes and acknowledgements (#86)
* Docs: README for the next release (Qt launcher, saves, BP fixes, occlusion, logs, known problems)

Both halves (pt-BR and en): new What's new items, status table, requirements, launcher section, BP01-BP12 table, occlusion modes, keyboard map, controller guides, saves recipe, logs and reports, known problems by GPU, credits and acknowledgements.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm

* Docs: experimental fixes (occlusion mode, log lines, sources) and VENDOR credits for BP01-BP12

EXPERIMENTAL_FIXES.md mentions the Qt Fixes screen, the occlusion_mode switch, the Config/Backports log lines and the origin of each fix; VENDOR.txt lists the backport origins.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm

* Docs: player guide in the package is no longer 'does not boot yet'

README-player.md (pt-BR and en): playable status, Qt launcher screens and classic fallback, game language, saves and updating, lights, experimental fixes, updates screen, logs/report, known problems by GPU, repo link fixed.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm

* Docs: Qt launcher is the default (LAUNCHER_QT, QT_PACKAGING)

Drop the 'phase 1 / Tk is the default / coming soon' wording, list the eight screens, add the occlusion selector, mouse status and the VERSION file.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm

* Docs: roadmap updated (done and open items)

ROADMAP.md: what shipped (Qt launcher, saves, BP01-BP12, occlusion, mouse, guides, F16C) and what is open (real occlusion, on-disk pipeline cache, RX 580, 4 GB VRAM, auto updater, mouse and Windows validation).

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm

* Docs: required files (game versions, languages, PC requirements)

ARQUIVOS_NECESSARIOS.md: tested versions, Turkish/Russian caveat, PC requirements, launcher art note (pt-BR and en).

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm

* Docs: Windows packaging README is about inFAMOUS, not God of War III

Names, paths and commands now match this port (Qt and classic launchers, CUSA00223, --selftest); drops the unused TLG launcher texts; notes that the DLSS/FSR4 code is not used; adds a Windows status section.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm

* Launcher script: comment says Qt is the default

Only the header comment of infamous_launcher_qt.sh changes.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm

* Docs: README lights section without unverified scene details

Drops 'night scenes / car' wording that was not backed by the sources.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm

* CI release notes: drop "Windows not yet tested in game"

Players have been running the Windows package for days (logs, issues and the occlusion fix were
confirmed on Windows), so the line in every release body was wrong.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm

* Fix: the classic (Tk) launcher did not open ('Launcher' has no attribute 'play_button')

show_game_language() runs while the window is still being built and called refresh_status(), which
uses the play button created at the end of build(). Behind it, the note text used str.format on
a string that self.t() had already formatted (KeyError: 'name'). Both fixed, and a test now builds
the real window when a display is available. Introduced by the game language "Automatic" option.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm

* Fix: the Qt launcher did not detect Xbox/XInput controllers on Windows

detect_pad only read /proc/bus/input/devices (Linux). It now asks tlg-probe --gamepad
(SDL3, cross-platform) first and keeps /proc as the fallback; XInput, Microsoft, Switch
and DualShock names are recognised and the guide follows the detected pad.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm

---------

Co-authored-by: HayatoG <[email protected]>
Co-authored-by: Claude Sonnet 5.5 <[email protected]>
2026-10-15 17:34:11 -03:00
HayatoGandClaude Sonnet 5.5 fd65f7f1b9 Docs: automatic game language
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm
2026-10-15 16:08:14 -03:00
HayatoGandClaude Sonnet 5.5 11578cbf96 Docs: game language selector in the Qt launcher
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm
2026-10-15 16:02:00 -03:00
HayatoG 5cf5cebb8d Merge feat/qt-launcher: controller guides screen 2026-10-15 15:47:17 -03:00
HayatoG 2d158cec72 Merge feat/qt-screens-b: Support and Updates screens of the Qt launcher 2026-10-15 15:46:43 -03:00
HayatoGandClaude Sonnet 5.5 32a2c409cc Docs: Graphics and Controls screens of the Qt launcher
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm
2026-10-15 15:45:12 -03:00
HayatoGandClaude Sonnet 5.5 019e09b74c Docs: Qt launcher Support and Updates screens
What is collected, how paths are redacted, what the issue link carries, the one request of the release check and the VERSION file.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm
2026-10-15 15:39:08 -03:00
HayatoGandClaude Sonnet 5.5 16f48eba74 Docs: Qt launcher as the default in the packages, classic fallback, selftest, size
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm
2026-10-15 13:24:38 -03:00
HayatoGandClaude Sonnet 5.5 5c26af6ca9 Qt launcher: Controller guides screen (Xbox / Switch Pro / 8BitDo, pt-BR and en-US)
Chips pick the controller (the detected one is preselected), the guide image follows the launcher
language and fits the window with scroll and zoom; Save image (PNG), Copy image (clipboard) and Open
images folder. The six generated guides live in launcher/qt/assets/controller_guides/ and are read at
run time; a missing file shows "images not included" instead of failing. The generator is
tools/controller_guides/make_guides.py (the base photos are not in the repository).

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm
2026-10-15 13:16:59 -03:00
HayatoGandClaude Sonnet 5.5 f0166d50df Docs: Saves and data section and README note on the data folder / updating
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm
2026-10-15 13:15:27 -03:00
HayatoGandClaude Sonnet 5.5 b76ed2a3a6 Qt launcher: tests and docs
Unit tests for translations (same keys and placeholders in pt/en), chips with
stubs, vulkaninfo/controller/news/save parsing, fix groups and the Backend (skips
without PySide6). docs/LAUNCHER_QT.md: how to run, what Home reads, structure.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm
2026-10-15 12:55:34 -03:00
HayatoGandClaude Sonnet 5.5 60d0e0fa68 Launcher: Recommended profile badge, profile line and one-time update notice
The table defaults are the Recommended profile: rows that are on by default carry a
'recommended' badge, the reset button is now 'Back to recommended', and the window shows
'Profile: Recommended' or 'Profile: custom (N changes)' (BPnn and A/B only). First start
after the update shows a one-time bilingual notice (backports_notice_seen) with
'Open fixes' and 'OK'. No default of the table changes.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm
2026-10-15 12:03:48 -03:00
HayatoGandClaude Sonnet 5.5 7fc43c3914 Docs: experimental fixes window of the launcher (BPnn, A/B switches, game menu)
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm
2026-10-15 11:44:50 -03:00
HayatoGandClaude Opus 5.5 7da056077d GPU: decode tiny BC textures on the CPU on AMD's Windows driver (#16, #31, #49)
RX 580 players on amdvlk64.dll crash with a null write at amdvlk64.dll+0xebbbb
right after the game's first BC1 1D texture (512x1 sRGB, 32 layers, Thin1DThin).
It happens with the image created 1D (#16, #31) and also with the PR #36
2D-of-height-1 promotion (#49, v2026.10.15-6b668a0), so the driver mishandles
block-compressed images smaller than a block, not just the 1D type. Upstream
shadPS4 has nothing for this: it still creates BC 1D images, which is why the
player sees the same crash there.

TLG_BC_TINY (ISS_BC_TINY through the probe's alias) decodes BC1-BC5 images that
are 1D or narrower or shorter than 4 texels into plain images: RGBA8 (BC1-3),
R8 (BC4), RG8 (BC5), with the sRGB and snorm variants kept. The driver never
sees a BC image of that shape; 1D ones stay 1D (RGBA8 1D works everywhere), so
these skip the TLG_BLOCK1D promotion. BC6/BC7 and macro-tiled images keep the
old path.

- tlg_bc_decode.h: header-only BC1-BC5 block decoder and the micro-tile
  addressing of host_shaders/tiling.comp (one sample, 64/128-bit elements).
- ImageInfo: is_bc_decoded + bc_format; the guest layout (sizes, mips) stays
  block-compressed. The image has transfer + sampled usage only, no
  block-texel-view flag; views map the T#'s BC format to the decoded one.
- RefreshImage: reads guest memory (CopySparseMemory), detiles and decodes on
  the CPU into staging, then uploads with tight copies.
- Decoded images never alias, merge or copy with non-decoded ones, are never
  downloaded to guest memory, and are skipped by the texel-buffer and compute
  copy/clear shortcuts.
- Default: on for VK_DRIVER_ID_AMD_PROPRIETARY only; TLG_BC_TINY=0/1 decides
  otherwise. One log line says which mode is on, and each new shape logs once.
- Shader Profile carries bc_tiny_decode, because it changes which 1D textures
  the shaders sample as 2D. A change rebuilds the pipeline cache.
- tests/test_bc_decode.cpp (bc-decode-test): known BC1/2/3/4/5 blocks (4- and
  3-colour BC1, BC2/3 always 4-colour, 6/8-value BC4 unorm and snorm) and
  micro-tile offsets.

Verified on Linux, RTX 2060 (NVIDIA 595), with TLG_LTO=OFF build.sh and
bc-decode-test passing. Forced on, the game reached gameplay in four 150 s runs,
decoding 512x1x32, 1024x1, 512x1, 256x1, 128x1 and 1x1 BC1/BC4/BC5 textures,
with no new errors. With it off the same runs log 350-440 "BC 1D not
supported" errors. Frame stats are comparable with it on and off: about
24-28 FPS at 1500-4700 draws per frame. The scene varies between runs, and one
early run that was slower overlapped another session's game. A temporary dump
showed the 1024x1 ramp decoding as a smooth gradient, so the detile is right,
and the 512x1x32 array reads all-zero guest memory on both paths. Not tested on
AMD hardware: whether amdvlk64.dll stops crashing still needs an RX 580 player.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01KHxhRF717FsAPVntc7R6zU
2026-10-14 23:39:07 -03:00
HayatoGandClaude Opus 5.5 f4c0049a79 GPU: BC 1D textures as 2D on drivers that refuse them (AMD Windows crash, #16, #31)
Two RX 580 players on AMD's Windows driver crash with a null write at
amdvlk64.dll+0xebbbb right after the log reports "image format
Bc1RgbaSrgbBlock type 1D is not supported": the image was created anyway
(undefined behaviour). NVIDIA logs the same errors but samples BC 1D
correctly, and the promotion breaks HUD elements there, so the default
was off everywhere.

- tlg_block1d.h: AmdGpu::block1d_as_2d, set once in
  Instance::CollectDeviceParameters before any image or shader exists.
- Default: on when the driver refuses a sampled BC1 1D image, except
  NVIDIA's proprietary driver; TLG_BLOCK1D/ISS_BLOCK1D=0/1 decides
  otherwise. One log line says what was chosen.
- IsBlock1D reads the flag instead of a static getenv; the shader
  Profile carries it, so a change rebuilds the pipeline cache.

Verified: build.sh (LTO off) builds; on the local RTX 2060 (and llvmpipe)
the BC 1D query fails (-11) and NVIDIA keeps 1D, so nothing changes
here. Not tested on AMD/Intel hardware; the game was not run.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01KHxhRF717FsAPVntc7R6zU
2026-10-14 18:15:25 -03:00
HayatoGandClaude Opus 5.5 d62c94276b ISS_ environment prefix for inFAMOUS; TSC back to the host rdtsc by default
- probe.c: each ISS_X in the environment is copied to TLG_X at start (unless TLG_X is set),
  so the player, launcher and scripts use ISS_* while the shared core still reads TLG_* (one
  common prefix later, once every port uses ps4_core). Launcher, scripts, README and docs
  renamed to ISS_.
- TSC: upstream's process clock at 1 GHz made inFAMOUS run 3-4x too fast (the game executes
  rdtsc itself in 391 places). Default is again the host rdtsc with its measured frequency;
  TLG_TSC=process (ISS_TSC) opts in.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01JyWhQUvUQf2YSf8HJWnAtd
2026-10-13 23:01:47 -03:00