-
0e57863d1f
Share the Vulkan swapchain tracking between the hook and the layer
main
BlackMark
2026-07-12 12:17:30 +02:00
-
b2b8abdc51
Silence the last two C4996 warnings in our code
BlackMark
2026-07-12 12:04:28 +02:00
-
ce996763d5
Render the same pattern in the Vulkan mock backend as the others
BlackMark
2026-07-12 12:01:11 +02:00
-
30eccf749d
Apply clang-format across the whole tree
BlackMark
2026-07-12 11:52:53 +02:00
-
c684a15fb9
Add a unit test for the shared text helpers
BlackMark
2026-07-12 10:02:53 +02:00
-
ed6312b657
Unwrap an over-wrapped line in utf8.hpp to match the codebase style
BlackMark
2026-07-12 09:47:54 +02:00
-
e0edb80016
Drop the last game-name anecdote from a hook comment
BlackMark
2026-07-12 09:37:10 +02:00
-
9a736cf477
Give the mock-game backends one source of truth for the test pattern
BlackMark
2026-07-12 09:35:45 +02:00
-
1eee482165
Consolidate the host's UTF-8/wide conversions into util/utf8.hpp
BlackMark
2026-07-12 09:23:40 +02:00
-
246289e386
Scrub 'OLD code' comment framing and a getenv warning from tooling
BlackMark
2026-07-12 09:17:52 +02:00
-
4636f4bb64
Deduplicate the host audio/UI code and scrub history from comments
BlackMark
2026-07-12 09:07:53 +02:00
-
635ef51283
Deduplicate the hook DLL and scrub history from its comments
BlackMark
2026-07-12 08:53:58 +02:00
-
05039ab104
Clean up common/ comments and the log-ring strncpy warning
BlackMark
2026-07-12 08:31:48 +02:00
-
d73b43ad0d
Make the host per-monitor DPI aware and scale the ImGui overlay
BlackMark
2026-07-01 23:23:41 +02:00
-
e4aafa08db
Consolidate the duplicated VtableHook into one shared copy
BlackMark
2026-06-24 02:28:05 +02:00
-
5b2334f6e6
Fix stale comments
BlackMark
2026-06-24 02:25:42 +02:00
-
47be3fa53f
Injection panel UX: reachable auto re-attach + explain disabled controls
BlackMark
2026-06-24 02:23:11 +02:00
-
e5668d9c48
Log filter: match case-insensitively
BlackMark
2026-06-24 02:22:39 +02:00
-
b96a559500
Clean up a stale Vulkan-layer registration at host startup
BlackMark
2026-06-24 02:22:06 +02:00
-
d318ae62a1
Statically link the VC runtime (/MT) so the DLL needs no VC++ redist
BlackMark
2026-06-24 02:17:19 +02:00
-
e096a9f2e2
Add focus_spoof_test (and close the dedicated-hook-tests item)
BlackMark
2026-06-24 02:12:42 +02:00
-
c9d071b203
Add d3d9_hook_test (capture path + D3D9 present-overhead guard)
BlackMark
2026-06-24 02:08:41 +02:00
-
2802fbddf6
Add misc unit tests + harden the WAV chunk walk
BlackMark
2026-06-24 02:05:35 +02:00
-
9cc69d1dcd
Test the input seqlock and the IPC magic/version handshake
BlackMark
2026-06-24 01:59:40 +02:00
-
8fd209c73f
log_ring: seqlock the records to prevent torn cross-process reads
BlackMark
2026-06-24 01:57:37 +02:00
-
6840d9df88
Audio overrides: lossless UTF-8 name round-trip (no high-bit collision)
BlackMark
2026-06-24 01:52:01 +02:00
-
5e9b1cde4c
Pin the whole SharedBlock layout with static_asserts (ABI tripwire)
BlackMark
2026-06-24 01:47:19 +02:00
-
1a93fcf196
Check previously-ignored injection / capture / rumble return values
BlackMark
2026-06-24 01:43:55 +02:00
-
12c4fb8a07
Audio verify: distinguish a failed process-loopback from no-correlation
BlackMark
2026-06-24 01:43:30 +02:00
-
6bdee40219
Release held keys/buttons when MKB forwarding stops (no sticky inputs)
BlackMark
2026-06-24 01:38:52 +02:00
-
abbc16aa4d
Performance: measure the D3D9/OpenGL readback; it is not a present stall
BlackMark
2026-06-24 01:35:42 +02:00
-
66dd003c4c
Read/write the cross-process diagnostic counters atomically
BlackMark
2026-06-24 01:27:18 +02:00
-
af129f8cfa
Enlarge the synthetic raw-input ring to avoid stale WM_INPUT reads
BlackMark
2026-06-24 01:22:55 +02:00
-
47462287fc
Synchronize and bound the Vulkan swapchain tracking (g_swaps)
BlackMark
2026-06-24 01:22:09 +02:00
-
bdb700ec56
Recover the video mirror from a WAIT_ABANDONED keyed mutex
BlackMark
2026-06-24 01:12:29 +02:00
-
8182389091
Detect and surface host device loss instead of spinning silently
BlackMark
2026-06-24 01:08:47 +02:00
-
43d093405e
Fix shutdown use-after-free of UiState via the ImGui settings handler
BlackMark
2026-06-24 01:05:47 +02:00
-
3f1ce0c78a
Roadmap: add the review findings as Current work
BlackMark
2026-06-24 01:04:12 +02:00
-
0eb275daca
Reconnect to an already-injected DLL (reuse it, survive a tool restart)
BlackMark
2026-06-23 14:05:54 +02:00
-
6d96531ac7
Graceful disconnect: tell the DLL to unhook everything
BlackMark
2026-06-23 13:46:51 +02:00
-
39558171e9
Add reconnect + graceful-disconnect tasks to the roadmap
BlackMark
2026-06-23 13:31:08 +02:00
-
0b017428b5
Trim completed work from the roadmap
BlackMark
2026-06-23 13:30:50 +02:00
-
51e2c4f4cd
Preserve SafetyHook concurrency finding as a committed upstream repro
BlackMark
2026-06-23 12:23:06 +02:00
-
f843c56f5b
Fix stale removal comments (persistent, not destroy) + add deterministic install test
BlackMark
2026-06-23 11:51:48 +02:00
-
8a183902ad
README: roadmap note reflects the final persistent-hook fix (not destroy)
BlackMark
2026-06-23 11:24:19 +02:00
-
0e58902438
Mock game: drive input/focus/MKB hooks + window title; add DetourGate test
BlackMark
2026-06-23 11:17:34 +02:00
-
79582f9fa6
Make inline-hook install AND remove safe to spam
BlackMark
2026-06-23 11:17:13 +02:00
-
8a43d2f568
Mock game: render every backend UNCAPPED + assert a healthy present rate
BlackMark
2026-06-23 09:45:00 +02:00
-
958c355126
Harden hook removal: disable -> drain -> destroy, and drain settles first
BlackMark
2026-06-23 09:44:42 +02:00
-
c480dfe152
DX12 capture: document why it's pricier than DX11/GL (measured breakdown)
BlackMark
2026-06-23 08:55:00 +02:00
-
9fee13789d
Vulkan capture: preserve the game's sync mode, drop the capture throttle
BlackMark
2026-06-23 08:48:44 +02:00
-
d4412ff610
Roadmap: add vsync-preservation, DX12 perf, and mock-game-all-backends tasks
BlackMark
2026-06-23 08:38:46 +02:00
-
15d6da92bc
Make the inline-hook (suspended-inject) Vulkan path work on Sphere Spectacle
BlackMark
2026-06-23 08:31:11 +02:00
-
304857dcf0
Fix Vulkan capture perf collapse: read back off the present thread
BlackMark
2026-06-23 08:19:47 +02:00
-
60957775b7
Roadmap: add the two Vulkan tasks (perf collapse + suspended-inject)
BlackMark
2026-06-23 07:40:49 +02:00
-
82a6328b1b
Validate the Vulkan backend against a real game (Sphere Spectacle)
BlackMark
2026-06-23 03:34:22 +02:00
-
911b543d98
Forward mouse + keyboard to DirectInput and Raw Input games
BlackMark
2026-06-23 03:14:59 +02:00
-
7ada550930
Recover a guessed stream's channels + bit depth by correlation too (step b)
BlackMark
2026-06-23 02:50:59 +02:00
-
00244bcfd7
Recover a guessed audio stream's rate by correlating hook vs loopback (step a)
BlackMark
2026-06-23 02:26:06 +02:00
-
21c15b162b
Harden every hook against the install/remove use-after-free
BlackMark
2026-06-23 01:56:36 +02:00
-
79399e88f1
Add roadmap task: validate Vulkan backend against a real game
BlackMark
2026-06-23 01:16:12 +02:00
-
7d29abf60e
Add Current Tasks roadmap: injection hardening + audio-format correlation
BlackMark
2026-06-23 00:55:23 +02:00
-
62c65c7438
Fix Brotato hooked-audio double-play: mute guessed streams via SILENT flag
BlackMark
2026-06-23 00:41:54 +02:00
-
21f62d8288
Add audio-fidelity validator + fix mirror render under-run
BlackMark
2026-06-23 00:36:20 +02:00
-
04dcd0f41e
Docs/memory: Vulkan opt-in layer done; remove the completed Current-work roadmap
BlackMark
2026-06-22 13:34:22 +02:00
-
23a6408e52
M2(Vulkan layer): registry register/unregister + opt-in Injection-panel checkbox
BlackMark
2026-06-22 13:29:14 +02:00
-
2532ffed56
M2(Vulkan): implicit capture layer (coop_vk_layer) + chain dispatch + env test
BlackMark
2026-06-22 13:24:37 +02:00
-
945d7fbf78
Docs: note the Vulkan layer needs vk_layer.h (not in Vulkan-Headers)
BlackMark
2026-06-22 13:01:25 +02:00
-
36ccdcc3ad
Docs: Vulkan hooked capture in architecture + lessons; scope the opt-in layer
BlackMark
2026-06-22 12:56:26 +02:00
-
894285459c
M2(Vulkan): too-late detection + red relaunch banner on the mirror window
BlackMark
2026-06-22 12:51:34 +02:00
-
dd976979a1
M2(Vulkan): capture hook via GPA interception + vkCmdCopyImageToBuffer read-back
BlackMark
2026-06-22 12:39:07 +02:00
-
d4a83e75bb
Roadmap: Vulkan mock done; capture remaining (read-back approach + test caveat)
BlackMark
2026-06-22 12:19:16 +02:00
-
502eb83f46
Docs: require a real-screenshot visual inspection to close out M1
BlackMark
2026-06-22 12:16:34 +02:00
-
49daa1d81f
M2(Vulkan): Vulkan mock-game backend + volk/Vulkan-Headers submodules
BlackMark
2026-06-22 12:12:55 +02:00
-
e996188aec
M2(OpenGL): GL mock backend (no loader) + mock-backed capture coverage
BlackMark
2026-06-22 12:03:43 +02:00
-
67c1940d52
M2(DX9): D3D9 capture via Present read-back (covers plain D3D9 + D3D9Ex)
BlackMark
2026-06-22 11:55:06 +02:00
-
5bccfd8b86
M2(DX9): dual-mode DX9 mock-game render backend
BlackMark
2026-06-22 11:46:13 +02:00
-
68b9aabc8c
M2: DX10 capture via D3D10 read-back; mock_game_test covers DX10
BlackMark
2026-06-22 11:43:25 +02:00
-
a8de75b2f6
M2: DX10 mock-game render backend
BlackMark
2026-06-22 11:19:38 +02:00
-
cf7e0c783a
M1: UI-fit instrumentation + headless ui_fit_test + first overflow fixes
BlackMark
2026-06-22 11:14:31 +02:00
-
fc43355db2
Roadmap: sequence backend work per-API (mock + capture together) + UI-fit pass
BlackMark
2026-06-22 10:47:53 +02:00
-
2d65961bf2
Test: cover audio format variants in the mock-game stress suite
BlackMark
2026-06-22 05:34:50 +02:00
-
5796d5af39
Audio: show echo state honestly for guessed hooked streams
BlackMark
2026-06-22 05:34:40 +02:00
-
e608c6fb38
Add mock-game capture/audio/hook stress test
BlackMark
2026-06-22 05:22:20 +02:00
-
e2562ac63c
Audio: fix five hook/unhook concurrency + over-write bugs
BlackMark
2026-06-22 05:21:17 +02:00
-
549b91a9ce
Add coop_mock_game: animated, frame-numbered A/V test game (DX11 + DX12)
BlackMark
2026-06-22 02:09:41 +02:00
-
b00b516cdb
Injection: session-only auto re-attach on relaunch
BlackMark
2026-06-22 02:03:13 +02:00
-
32028cb286
Audio: per-game persisted format overrides + auto-learn
BlackMark
2026-06-22 01:59:11 +02:00
-
fe6f8462ab
docs: lessons learned for rate-measurement hardening + the test harness
BlackMark
2026-06-22 01:48:40 +02:00
-
90f40ae479
Audio: operator re-measure + format override (host<->hook op channel)
BlackMark
2026-06-22 01:46:59 +02:00
-
c24bfdd64f
Audio: keep rings live, auto-promote loopback->hooked, show the reason
BlackMark
2026-06-22 01:16:46 +02:00
-
cb6749b511
Audio: robust rate estimation + color-coded log levels
BlackMark
2026-06-22 01:11:06 +02:00
-
f72da74f78
Add F10 back-buffer screenshot (PNG, focus-independent)
BlackMark
2026-06-22 00:58:38 +02:00
-
31db2d82c6
Roadmap: plan audio format reliability work
BlackMark
2026-06-22 00:41:43 +02:00
-
f673eb660c
Drop stale Controllers-panel hint ("Esc: quit")
BlackMark
2026-06-22 00:09:47 +02:00
-
a813465fd7
Quit via File -> Exit / Alt+F4 instead of Escape
BlackMark
2026-06-22 00:07:28 +02:00
-
699ca31d31
Persist the "Debug details" toggle in the layout .ini
BlackMark
2026-06-21 23:59:03 +02:00
-
7264cb2ef4
Audio: detect a pre-existing render stream's true sample rate (fix pitch)
BlackMark
2026-06-21 23:41:57 +02:00
-
f15f5cdb36
Deactivate frame-sync when the hooked target isn't alive
BlackMark
2026-06-21 20:18:29 +02:00
-
ffaad6c4ae
DX12 capture: fence the copy off the game's queue + add drop detection
BlackMark
2026-06-21 19:55:27 +02:00