Commit Graph

  • 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