Commit Graph
14 Commits
Author SHA1 Message Date
eslamiraandClaude Opus 5.5 c7db4ffeca feat(input): shake the graffiti can by wiggling the mouse
While the spray can is held (sensor mode, T or G) a quick back-and-forth
of the mouse now shakes it, like Y does, and spinning the wheel does too
unless the wheel is bound in the key map. The mouse already pointed the
can there; the can now holds still while it shakes, so the wiggle does
not move the cursor.

src/mouse_shake.h cuts the motion into strokes per axis: a stroke of at
least 40 counts that ends within 250 ms is a swing, three swings in
600 ms start the shake and it lasts 300 ms past the last one. Slow aiming
and small jitter never count. TLG_MOUSE_SHAKE=0 turns it off and
TLG_MOUSE_SHAKE_COUNTS changes the swing size.

tests/test_mouse_shake.c covers aiming, jitter, horizontal and vertical
wiggles, the wheel, the hold time and the threshold. The player README
and the README describe the mouse aim and shake in both languages.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 14:58:17 +03:00
HayatoGandOpenAI Codex 83253fcde8 feat(cheats): add optional boot intro skip
Bundle an opt-in, version-scoped logo movie skip patch and resolve unique masked byte patterns in executable segments. Include the patch in launcher discovery and packaged builds.

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

Claude-Session: Codex session
2026-10-19 01:35:28 -03:00
HayatoGandClaude Opus 5.5 63ff0bf227 Launcher: highlight Buy Me a Coffee support on the home screen
Use https://buymeacoffee.com/hayatog in launchers, GitHub funding, READMEs, player guides and future release notes. Preserve existing Sponsors links and CI triggers. Verified real launcher windows and button navigation in Portuguese and English.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01JyWhQUvUQf2YSf8HJWnAtd
2026-10-19 00:21:17 -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 968ac52585 Mouse: tests and README (camera, buttons, touchpad mode, variables)
- tests/test_mouse_touch.c: the finger (motion, bounds, tap, hold, drag to swipe, middle, ids,
  lift) with explicit timestamps.
- tests/test_mouse_pad.c: scePadReadState with a stubbed window mouse: motion to right stick,
  buttons to R2/L2/R3, touchpad mode (hover, touch, click lead, swipe, tail, middle, two
  fingers, leaving the mode).
- build.sh --test runs test_pad_map, test_mouse_stick, test_mouse_touch and test_mouse_pad too;
  the Windows CMake gets mouse-stick-test.
- README (pt-BR and en) and the player README: the Mouse section with the button table, the
  touchpad-mode gestures, where each is used in the game and the ISS_MOUSE* variables; the
  touchpad action table gets the mouse column entries.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BGrrT8Atu6mshYBUh1H1Mm
2026-10-15 13:18:20 -03:00
HayatoGandClaude Opus 5.5 5981b3fe01 Touchpad: two fingers on both ends (View/Select + R1, Tab + Backspace)
inFAMOUS asks to press both ends of the touchpad to lift the car off Reggie.
Pads without a touchpad now send two fingers at the left and right ends, then
the click CLICK_LEAD_US later, while View/Select + R1 is held (R1 hidden from the
game), or both click sources (keyboard Tab + Backspace, scripted touchpad_left +
touchpad_right). Pad tests cover both; docs and the launcher hint in pt-BR/en-US.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01KHxhRF717FsAPVntc7R6zU
2026-10-14 20:46:28 -03:00
HayatoGandClaude Opus 5.5 0879c8d8c7 Freeze report: every thread's wait, RIP and frames after 10 s without a frame
A monitor thread (runtime_freeze.c) watches the flips shown by VideoOut. After
TLG_FREEZE_REPORT_SECONDS (default 10, 0 = off; ISS_ alias) without a new one it
writes one "FREEZE: no frame for N s; threads:" block to stdout, then
"FREEZE: frames resumed after N s" if they come back. Never stops the game.

- Wait slots per thread (runtime_thread.c): guest threads in their record, host
  threads in a lock-free fixed table. Marked: contended guest mutexes (with
  holder), condition variables, semaphores, event flags, sleeps, file
  open/read/write/sync, the runtime memory-map rwlock (contended), and from the
  GPU library through hooks: sceKernelWaitEqueue (queue name), sceGnmSubmitDone,
  sceVideoOutWaitVblank, Liverpool SendCommand<true>, texture readbacks and the
  page-fault handler.
- Registers: Linux SIGURG to each thread (handler copies RIP and the rbp chain),
  Windows SuspendThread/GetThreadContext/ResumeThread over a Toolhelp thread list.
  Guest offsets as in the crash report; frame counters (submitted, shown,
  presented, vblanks, faults in progress) with deltas since the last frame.
- tests/test_freeze.c: monitor state machine, wait levels and descriptions,
  contended mutex/cond/semaphore end to end, full report on Linux.

Verified: gcc and clang -fsyntax-only (-Wall -Wextra -Werror) of every changed C
file on Linux, clang --target=x86_64-w64-mingw32 syntax check with mingw-w64 13
headers. Pending: full build, build.sh --test, C++ GPU-library changes not yet
compiled (lock held for the user's play session).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01KHxhRF717FsAPVntc7R6zU
2026-10-14 14:34:44 -03:00
HayatoGandClaude Opus 5.5 ad6dc91c3b Sensor mode is the graffiti's spray can: sideways at once, one stick aims with a fine curve
Turning the controller sideways with a square tap felt odd: on the console the
can is held on its side through the whole graffiti, and that is the only scene
that asks for motion. Sensor mode now holds it on its side by itself, so the
player only shakes (cross), sprays (R2) and aims (left stick, or the right);
square goes back to the game. Aiming grows with the square of the push past
the dead zone, up to ~70 degrees/s, so small pushes trace the stencil. On the
keyboard the arrow keys aim while T or G hold the can sideways (and leave the
camera alone meanwhile). Notice, launcher hint, READMEs and release notes.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01KHxhRF717FsAPVntc7R6zU
2026-10-14 13:28:47 -03:00
HayatoGandClaude Opus 5.5 1c8c06f636 Sensor mode: one stick aims; square turns the controller sideways
Aiming the graffiti took both sticks (left held sideways, right aiming). Now
the left stick (or the right) turns the controller left/right and up/down, and
a tap on square toggles it on its side and back upright, with a notice. Square
is hidden from the game in sensor mode; leaving the mode puts it upright.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01KHxhRF717FsAPVntc7R6zU
2026-10-14 13:18:42 -03:00
HayatoGandClaude Opus 5.5 4b3ed3444c Sensor mode: the right stick turns the controller to aim (graffiti cursor)
Sensor mode only simulated tilting sideways and forward/back, so the graffiti
cursor moved up and down but never sideways: aiming left/right is a turn about
the vertical axis, which the simulation lacked. In sensor mode the right stick
now turns the controller (left/right) and tips it (up/down) at a rate, so the
aim stays where it is left; it is hidden from the game like the left stick.
The gyro rate is now the turn between samples in the controller's frame, right
for any mix of roll, pitch and turn. Notice, launcher hint and READMEs updated.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01KHxhRF717FsAPVntc7R6zU
2026-10-14 13:04:54 -03:00
HayatoGandClaude Opus 5.5 e07e914bb9 docs: how to toggle sensor mode and use the touchpad (README, player guide, release notes)
Bilingual section with the sensor-mode toggle (L3+R3, or misc1: Share on
Xbox Series, Capture on Switch Pro, mic on DualSense), the touchpad click
and swipe on View/Select and Tab/Backspace, the keyboard T/G/Y keys and a
table mapping the game's graffiti, drain and swipe actions to each input.
Share/Create on DualShock 4/DualSense is the touchpad click, not the
sensor toggle, so the old "tap Share" wording is corrected.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01JyWhQUvUQf2YSf8HJWnAtd
2026-10-14 00:50:55 -03:00
HayatoGandClaude Opus 5.5 b5d1f7ca6f Docs: inFAMOUS Second Son README, required files, roadmap stub, player README
README in pt_BR (English below) with the gr2_pc structure and an honest status:
in development, does not boot yet, no screenshots or download yet.
docs/ARQUIVOS_NECESSARIOS.md lists CUSA00223 base 1.00 + update 1.07 (the
update's libc/Fios2 and eboot, the update param.sfo from appmeta) and no
firmware files. docs/ROADMAP.md points to ~/decomp/PORT_INFAMOUS.md.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01JyWhQUvUQf2YSf8HJWnAtd
2026-10-13 14:01:31 -03:00
HayatoGandClaude Opus 5.5 18cc735121 Packages and CI for Gravity Rush 2 (Linux tar.gz, Windows zip, nightly)
- packaging/port.env: per-port profile (name, package slug, launcher, icon)
  read by the Linux and Windows package scripts; same keys for every port
- package names gr2-linux-x86_64.tar.gz / gr2-windows-x86_64.zip, frozen
  launcher 'Gravity Rush 2', the GR2 player README (pt + en, required files),
  install_desktop.sh from the profile
- Play <Game>.exe derives the game executable from its own name
- original placeholder icon (packaging/icon/gr2-icon-1024.png, launcher
  gr2.png/.ico); TLG's icon and launcher left this repo
- sceFiber on Windows with Win32 fibers (CreateFiber/SwitchToFiber)
- CI: the current TLG workflow (PR builds without publishing, safe nightly
  swap, old-build cleanup, required files in the release notes), FreeType on
  Ubuntu and MSYS2, xbyak submodule fallback

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01JyWhQUvUQf2YSf8HJWnAtd
2026-10-13 11:48:40 -03:00
HayatoGandClaude Opus 5.5 505c850bff packaging: Linux and Windows packages built by GitHub Actions, nightly release
- .github/workflows/build.yml: Ubuntu 24.04 and MSYS2 CLANG64 builds, the nightly
  pre-release replaced on every push to main, versioned releases on v* tags
- packaging/linux: dependency build (SDL3, Zydis 5, fmt 11, minimal FFmpeg),
  tarball with the frozen launcher and the bundled libraries
- packaging/windows/package.sh adapted to TLG; play.c renamed
- packaging/README-player.md (pt_BR/en_US), check_package.sh
- launcher: frozen mode (--script, --play), port icon (a feather, drawn by
  make_icon.py) when the dump has no icon0.png

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