Matthew Stanley
fe3dd3f373
runtime: add sparse guarded mod fields
2026-07-23 17:08:52 -07:00
Matthew Stanley
c60a5c6509
feat: add ordered mod values and MIPS pair patches
2026-07-23 16:23:55 -07:00
Matthew Stanley
603cdbb4b2
fix: guard complete dynamic patch records
2026-07-23 15:10:03 -07:00
Matthew Stanley
47eeadef6f
feat: add bounded integer mod patches
2026-07-23 15:06:13 -07:00
Matthew Stanley
7a7dc5e276
fix: compose compatible partial mod overlaps
2026-07-23 09:38:33 -07:00
Matthew Stanley
ff4827163e
feat: add feature-oriented mod resolution
2026-07-23 09:27:25 -07:00
Matthew Stanley
7e27a01bc4
fix: preserve independent mod toggles
2026-07-23 08:39:32 -07:00
Matthew Stanley
e1e4f2b367
feat: support multi-option mod conditions
2026-07-23 00:36:18 -07:00
Matthew Stanley
9ecf00f782
feat: derive modded discs from verified stock images
2026-07-22 23:26:06 -07:00
Matthew Stanley
9324d27c6b
feat: add versioned runtime mod packages
2026-07-22 22:42:33 -07:00
Alex Vanderveen
7cf9958135
FMV optimizations
2026-07-21 21:38:04 -07:00
Alex Vanderveen
0b890cdc13
lobby game version control
2026-07-21 21:38:04 -07:00
Alex Vanderveen
31015ceab1
feat: launcher polish and recomp-net lobby netplay
...
Wire MotK-style lobby (recomp-net submodule, WS client, match_caps),
netplay delay-sync, and launcher UX so host sim settings stay aligned
across peers.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-21 21:37:57 -07:00
Matthew Stanley
e03c743e87
tools: add Linux macOS dev setup helper
...
Add a conservative source-checkout setup helper based on the Linux quick-start intent from PR #54 .
The script builds the CLI/recompiler tools, refreshes BIOS C when a BIOS is present, and builds the BIOS-only runtime only when BIOS/generated sources are available. It deliberately leaves game project creation to the existing CLI generator.
Co-authored-by: Keeganator <keegan.pan@gmail.com >
2026-07-21 17:02:05 -07:00
Matthew Stanley
c4517c3b7c
docs: credit PR16 Vulkan source developer
...
Record that PR #61 reconstructed the reusable Vulkan work from Martin Penkava's PR #16 branch.
Co-authored-by: Martin Penkava <mpenkava1337@gmail.com >
2026-07-21 16:42:54 -07:00
Matthew Stanley
9228f32c00
runtime: keep Vulkan opt-in and remove old launcher
...
Remove the in-tree launcher implementation and its submodules now that game projects use recomp-ui for launcher support.
Keep Vulkan hidden from the launcher unless a game explicitly sets [video] offer_vulkan = true, and clamp stale Vulkan settings back to OpenGL when it is not offered.
Co-authored-by: Martin Penkava <mpenkava1337@gmail.com >
2026-07-21 16:31:36 -07:00
Matthew Stanley
da64f44e82
launcher: expose the Vulkan renderer
...
Cycle the renderer selector through Software, OpenGL, and Vulkan while retaining OpenGL-only option gating.
Co-authored-by: Martin Penkava <mpenkava1337@gmail.com >
2026-07-21 15:55:16 -07:00
Matthew Stanley
f1fd8ec848
vulkan: expose present blocking telemetry
...
Record queue-wait, acquire, and present durations plus presentation timestamps in the existing vk_perf ring.
Co-authored-by: Martin Penkava <mpenkava1337@gmail.com >
2026-07-21 15:55:11 -07:00
Matthew Stanley
f5498f796c
vulkan: prefer MAILBOX for tear-free presentation
...
Let the frontend remain the sole frame pacer by requesting MAILBOX for tear-free delivery, with FIFO retained as the required fallback.
Co-authored-by: Martin Penkava <mpenkava1337@gmail.com >
2026-07-21 15:55:06 -07:00
Matthew Stanley
af9de64951
vulkan: reuse persistently mapped staging buffers
...
Cache best-fit host-visible staging allocations across queue-idle reclamation points and safely detach long-lived CPU-present buffers during teardown.
Co-authored-by: Martin Penkava <mpenkava1337@gmail.com >
2026-07-21 15:54:42 -07:00
Matthew Stanley
b5e9f763fe
vulkan: batch work into one command buffer
...
Keep a shared work command buffer open across logical GPU operations and submit it at the existing synchronization boundary.
Co-authored-by: Martin Penkava <mpenkava1337@gmail.com >
2026-07-21 15:54:29 -07:00
Matthew Stanley
92cbb1a327
vulkan: order back-to-back color passes
...
Add same-layout color attachment barriers before geometry and wide-surface render passes so prior writes are visible to LOAD and blend operations.
Co-authored-by: Martin Penkava <mpenkava1337@gmail.com >
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-07-21 15:54:17 -07:00
Matthew Stanley
7f9f59a2bb
vulkan: wait for acquire before transfer writes
...
Include the transfer stage in the swapchain acquire wait mask because the present command buffer clears and blits the acquired image with transfer operations.
Co-authored-by: Martin Penkava <mpenkava1337@gmail.com >
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-07-21 15:54:12 -07:00
Matthew Stanley
c25931e3b7
vulkan: align packed upload offsets
...
Pad each packed R16 upload region to an even texel count so subsequent VkBufferImageCopy offsets retain the required four-byte alignment.
Co-authored-by: Martin Penkava <mpenkava1337@gmail.com >
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-07-21 15:54:07 -07:00
Matthew Stanley
8f78ddbd89
integrate interpreter hotpath and AOT sharding
2026-07-20 15:58:43 -07:00
Matthew Stanley
ae3acc7db6
aot: deduplicate complete shard pairs safely
2026-07-20 14:13:46 -07:00
Matthew Stanley
c2f4c8bf4b
aot: close cross-variant coverage deterministically
2026-07-20 14:06:26 -07:00
Matthew Stanley
fd0795cd65
aot: batch supplemental exact-root shards
2026-07-20 14:06:25 -07:00
Matthew Stanley
09d5818efd
aot: recover play-free continuation fragments
2026-07-20 14:06:25 -07:00
Matthew Stanley
5ded80e61e
Merge master (AOT overlay generation) into perf/interpreter-hotpath
...
Integration branch: the interpreter-perf series (interpreter fallback +
additive shard autocompile + always-on production observability + the
fail-closed alias-body emitter fix) rebased-by-merge onto master's AOT
overlay generation (play-free extraction, bounded indirect discovery,
AOT recall, shadow-diff redesign).
Semantic-union highlights:
- gte.cpp: HEAD's direct-field marshaling fast paths kept; master's
s_gte_replay_sandbox guards grafted onto every affected site.
- psx_icache.c: HEAD's global tag array + fetch_miss split kept;
master's transactional shadow record/replay retargeted onto it.
- overlay_capture.c: HEAD's commit/retry/wait-pending pipeline kept;
master's durable history + autocapture APIs wired into it
(persist_history_snapshot fed from the immutable .d contribution).
- overlay_loader.c: master's interp-record/native-replay shadow-diff
redesign kept as base with HEAD's scheduler-bail hardening grafted
(new SHDIFF_SCHED divergence kind); strict manifest v2 parsing keeps
master's P pair-id lines; always-on native-call ring preserved.
- main.cpp shutdown calls BOTH overlay_autocapture_shutdown() and
overlay_capture_wait_pending() (the latter drains the preserve-write
FIFO the former does not).
- recompiler: master's generate_alias_group refactor retains the
fail-closed alias-body re-entry defaults from c85f1d1 .
Validated on this tree: recompiler + runtime + tests build; all six
runtime unit tests PASS; interpreter perf guards PASS; recompiler
patch/structural tests PASS (l1 decoder oracle noise = 376 pre-existing
on both parents).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-20 00:43:41 -07:00
Matthew Stanley
ca1888a2f8
docs: FAITHFUL_TIMING_PLAN log entry for the alias re-entry root cause
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-20 00:07:34 -07:00
Matthew Stanley
5a4b74f5d3
fix: report AOT recall with exact semantics
2026-07-19 17:39:55 -07:00
Matthew Stanley
205438eb98
tools: clean TinyCC staging sidecars
2026-07-18 11:15:13 -07:00
Matthew Stanley
4af125cf07
tools: align TinyCC overlay build contract
2026-07-18 11:08:16 -07:00
Matthew Stanley
dbe14dfadb
aot: recover safe frameless and interior overlay coverage
2026-07-18 10:13:18 -07:00
Matthew Stanley
6af5437058
tools: publish overlay shards atomically
2026-07-18 09:05:41 -07:00
Matthew Stanley
ae1f1e7f19
tools: report true AOT coverage gaps
2026-07-18 08:59:26 -07:00
Matthew Stanley
32cc2e81f4
aot: bound header dispatch fallback discovery
2026-07-18 08:27:09 -07:00
Matthew Stanley
5e8cc5b8e5
aot: enrich archive discovery with safe fallback
2026-07-18 07:49:29 -07:00
Matthew Stanley
41f498fd09
aot: recover linked archives and static aliases
2026-07-18 07:25:49 -07:00
Matthew Stanley
8f90df9b43
aot: preload exact-hash BIOS resident shards
2026-07-18 05:31:03 -07:00
Matthew Stanley
baf8b5928c
aot: recover cross-boundary branch roots
2026-07-18 04:40:07 -07:00
Matthew Stanley
4fb144a4fd
aot: preserve additive static discovery
2026-07-18 04:16:51 -07:00
Matthew Stanley
65d89a06d7
runtime: compact persisted capture addenda
2026-07-18 02:56:53 -07:00
Matthew Stanley
f53569dfea
aot: account for native BIOS coverage
2026-07-18 01:32:49 -07:00
Matthew Stanley
6c67f81a33
docs: record Tomba 2 static attract recovery
2026-07-18 01:21:05 -07:00
Matthew Stanley
88e471274f
aot: separate code-range recall from entry parity
2026-07-18 01:18:48 -07:00
Matthew Stanley
bc24934048
aot: recover raw and adjacent overlay producers
2026-07-18 00:38:26 -07:00
Matthew Stanley
a544809edf
aot: persist overlay capture history atomically
2026-07-17 23:56:58 -07:00
Matthew Stanley
2834f0468d
aot: recover call-sparse overlay bases
2026-07-17 23:29:38 -07:00