mirror of
https://github.com/RetroPortingToolKit/psxrecomp
synced 2026-10-26 02:11:36 -04:00
Merge remote-tracking branch 'origin/master' into landtmp/504
This commit is contained in:
@@ -129,7 +129,11 @@ The backend tier is resolved in `overlay_backend.c` (see `main.cpp` around the
|
||||
|
||||
Compiled overlays are stored in a content-addressed cache namespaced by
|
||||
compiler and target ABI (`<game>/gcc/<arch-abi>/…` vs `<game>/tcc/…`); a `gcc`
|
||||
shard wins over a `tcc` shard for the same region. See
|
||||
shard wins over a `tcc` shard for the same region. The `<arch-abi>` is the
|
||||
runtime's own (`PSX_OVERLAY_ARCH_ABI` in `overlay_loader.h`, the running slice
|
||||
of a universal macOS binary): the runtime exports it to every compile it spawns
|
||||
and macOS compiles pass the matching `-arch`, so an x86_64 runtime under Rosetta
|
||||
gets x86_64 shards even though Xcode's clang defaults to arm64. See
|
||||
[`docs/FEATURES.md`](FEATURES.md), [`docs/OVERLAY_CACHE_V2.md`](OVERLAY_CACHE_V2.md),
|
||||
and [`docs/ASYNC_OVERLAY_COMPILE.md`](ASYNC_OVERLAY_COMPILE.md).
|
||||
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
# Optional projection-distance scaling
|
||||
|
||||
`[video] fov_scale` accepts finite values greater than zero and at most 8;
|
||||
1.0 is faithful. A valid `PSX_GTE_FOV_SCALE` overrides the config value;
|
||||
invalid environment values are ignored. The whole string must be numeric
|
||||
apart from surrounding whitespace. Scaling is quantized to 0.001, with a
|
||||
minimum quantized denominator of 1. Values above one reduce effective H.
|
||||
This scales projection distance, not the field-of-view angle. Guest H storage
|
||||
is unchanged; RTPS/RTPT and their optional precision shadows use effective H.
|
||||
|
||||
The setting is loaded by a runtime-only parser extension. It does not change
|
||||
the shared recompiler parser, emitted BIOS/game C or emitter fingerprints.
|
||||
Consuming it requires updating the framework pin and rebuilding the runtime;
|
||||
neither game nor BIOS regeneration is required. Bundled OpenBIOS is supported.
|
||||
@@ -288,6 +288,14 @@ internal resolutions; a size change frees the old set.
|
||||
- `render_pass_stats` (TCP): passes, shedding, faults, dropped device
|
||||
stores, timing split (backup / guest code / capture / restore), presents
|
||||
made from pass images, and `status`.
|
||||
`refused` counts empty plans with wanted phases; pass-call refusals are
|
||||
separate: `pass_attempts`, `argument_refused`, `status_refused`,
|
||||
`begin_refused`, `checkpoint_refused`. `last_failure` is null until a refusal,
|
||||
then retains the failure-site reason, attempt/plan, guest cycle, rect/alpha,
|
||||
and GL begin inputs (actual requested/capture dimensions, scales, generation,
|
||||
source path and resource stage). FBO status and GL errors are numeric enums;
|
||||
`gl_error_before` is distinct from errors produced during that allocation.
|
||||
Success does not erase the record; a new mod session clears it.
|
||||
- `render_pass_refuse on=1` (TCP) or `PSX_RENDER_PASS_REFUSE=1`: the backend
|
||||
declines passes (`BACKEND`), to test a plugin's fallback.
|
||||
- `render_pass_dump path=<dir> count=<n>`: PNGs of the next n frames' images
|
||||
@@ -330,3 +338,22 @@ Tests (runtime ctest unless noted):
|
||||
The GPU half of the VRAM transaction (hr colour, stencil, raw mirror blits)
|
||||
needs an OpenGL context and is checked at runtime by
|
||||
`PSX_RENDER_PASS_VERIFY=1`.
|
||||
|
||||
### Nested mod callbacks and watchdog rollback
|
||||
|
||||
The host checkpoint includes the mod function-entry depth and current plugin
|
||||
owner. A pass can interrupt an outer callback; restoring to zero would lose
|
||||
that caller's context. Watchdog longjmp restores the saved depth/owner instead,
|
||||
and normal-return verification checks their balance. This context stays local
|
||||
to the committed session and is never part of a guest savestate.
|
||||
`render_pass_stats.last_abort_detail` names skipped host exits and remains
|
||||
latched across successful passes until session reset.
|
||||
|
||||
### Nested mod callback rollback
|
||||
|
||||
The host checkpoint includes function-entry depth and current plugin owner.
|
||||
A pass can interrupt an outer callback; watchdog rollback restores its exact
|
||||
saved context rather than resetting depth to zero. Normal-return verification
|
||||
also checks balance. This host context is never serialized in guest savestates.
|
||||
TCP render_pass_stats.last_abort_detail names skipped exits and remains latched
|
||||
across successes until session reset.
|
||||
|
||||
@@ -0,0 +1,81 @@
|
||||
# Simultaneous stereo rendering
|
||||
|
||||
The paired API is an opt-in enhancement alongside temporal render passes. It
|
||||
uses the same frozen-time checkpoint, store policy, watchdog, VRAM journal and
|
||||
restore. It does not require interpolation, a FLIP source, a temporal plan or
|
||||
Q16 phase labels. Each eye callback receives LEFT=0 or RIGHT=1 explicitly.
|
||||
|
||||
Call `psx_mod_render_stereo(cpu, frame, callback, user)` from a game's measured
|
||||
draw boundary outside interrupts or active GPU DMA. The callback must rebuild
|
||||
and submit geometry, without waiting for VBlank or advancing game logic. The
|
||||
rect declares the capture region. Restore completes after each eye before the
|
||||
next one starts. Successful eye textures remain private until both transactions
|
||||
and capture/restore verification succeed. Failure retains the preceding complete
|
||||
pair. Host callback state is the plugin's responsibility, including selectors
|
||||
that must be cleared after watchdog rollback.
|
||||
|
||||
`period_vblanks` describes the game's draw cadence (1..8). An EMA of complete-pair
|
||||
host cost is compared with 80% of that cadence, using the runtime's live NTSC/PAL
|
||||
period. Expensive work is shed as a complete pair; every thirtieth request retries
|
||||
to recover a stale estimate. This is a conservative cadence budget, not a measured
|
||||
headset idle budget. Allocating or slow initial pairs may exceed it; completed
|
||||
guest work cannot be preempted by a host-time budget. Guest-cycle watchdogs remain
|
||||
the runaway bound.
|
||||
|
||||
OpenGL GPU-authoritative 15-bit rendering is required. CPU-authoritative dual
|
||||
raster, windowed high-resolution tiles, depth24 and native-wide rendering are
|
||||
initially unsupported. Session/resimulation/rewind/fast-forward and nesting gates
|
||||
remain. Faithful defaults do not call this API or enable stereo presentation.
|
||||
|
||||
`psx_mod_set_stereo_presentation(1)` opts into side-by-side output: one atomic pair
|
||||
per swap, LEFT on the left, RIGHT on the right, with each eye using the configured
|
||||
display aspect. Zero disables it. The first implementation uses ordinary game
|
||||
VBlank presentation cadence; it does not submit to OpenXR or create headset poses.
|
||||
Stereo and temporal interpolation should be configured separately; SBS takes
|
||||
precedence when a compatible complete pair is available. A pair is shown only while
|
||||
the plugin keeps submitting: it expires 24 VBlanks of guest time after its capture
|
||||
cycle (3x the slowest 8-VBlank cadence) and the presenter falls back to the normal
|
||||
flat image (menus, same-size FMV, a plugin that stopped submitting). Savestate/rollback loads and
|
||||
session resets drop the pair immediately.
|
||||
|
||||
Inside an eye callback, `psx_mod_render_view_offset(x,y,z)` replaces a scoped
|
||||
camera-space translation. RTPS and RTPT add it alongside TR before projection;
|
||||
the guest translation registers remain unchanged. Repeated transformations do
|
||||
not accumulate the offset. Normal returns and watchdog rollback restore the
|
||||
previous host value. Calls outside a render transaction are refused. The GTE
|
||||
test compares this seam against explicit pre-divide translation and measures
|
||||
12 pixels at Z=800 versus 3 pixels at Z=3200 for X=24 and H=400.
|
||||
|
||||
`psx_mod_render_view` (full pose) is an explicit per-eye projection. With
|
||||
`projection=1` it REPLACES the guest X/Y projection entirely: guest `H`, the
|
||||
widescreen/dome squash and the `[video] fov_scale` scaled-H do not feed it, and the
|
||||
guest-formula PGXP shadows are skipped for those vertices. The only coupling is
|
||||
`projection_h_ref`: when non-zero the focal lengths are multiplied by (fov-scaled
|
||||
guest `H`) / `projection_h_ref`, so a plugin can follow per-draw H changes. SZ, the
|
||||
depth cue and divide flags still come from the guest division. The pose exists only
|
||||
inside a render transaction and is restored with it, so nothing outside the sandbox
|
||||
sees it. `test_render_pose` covers the override together with `fov_scale`.
|
||||
|
||||
TCP inspection:
|
||||
|
||||
- `stereo_stats`: pair outcomes, eye entry cycles/state hashes under VERIFY,
|
||||
sampled view offsets, latched failed attempt/eye/retained pair, and published
|
||||
pair metadata. `render_pass_stats` continues to
|
||||
expose shared transaction checks, aborts, leaks and dropped stores; its eye
|
||||
transactions also increment pass counters.
|
||||
- `stereo_dump path=<absolute-directory> count=N`: arm dumps of the next N
|
||||
complete published pairs, with left/right PNGs, a side-by-side composite
|
||||
sharing one pair ID. Pair/cycle/view metadata is inspected through TCP
|
||||
`stereo_stats.captures`, retained for the current capture request (maximum
|
||||
100 records); the runtime writes no diagnostic JSON files. A capture client
|
||||
can use `tools/stereo_capture.py::write_capture_manifests` to write manifests
|
||||
after confirming all three PNGs for each returned ID.
|
||||
Arming another capture or resetting the session clears the metadata. It captures
|
||||
no scene on its own. Failed staging eyes never appear as published pairs.
|
||||
|
||||
Validation, source revisions and live limitations are recorded in
|
||||
[the feature provenance record](internal/upstream/atomic-stereo-render-views.md).
|
||||
The game's [VR execution plan](https://github.com/FractalEngineer/Medal-Of-Honor-PSX-Recomp/blob/master/docs/reverse/VR_EXECUTION_PLAN.md)
|
||||
records historical alpha evidence. Projection scale and eye separation remain
|
||||
game-specific and must be calibrated independently. This API also works without
|
||||
a headset backend; it does not enable a headset mode by default.
|
||||
@@ -431,9 +431,9 @@ The TCP server is the canonical instrumentation surface. Rule 3 in `CLAUDE.md` i
|
||||
|
||||
## Complete command index (generated)
|
||||
|
||||
**333 commands registered** — 320 on the native server (`runtime/src/debug_server.c`), 61 on the Beetle server (`runtime/src/beetle_debug_server.c`).
|
||||
**337 commands registered** — 324 on the native server (`runtime/src/debug_server.c`), 61 on the Beetle server (`runtime/src/beetle_debug_server.c`).
|
||||
|
||||
63 of 333 have prose above; **270 are index-only**. An index-only command still works — it just has no description here yet. Send it `{"cmd":"<name>"}` and read the reply, or find its `handle_*` function in the server source.
|
||||
63 of 337 have prose above; **274 are index-only**. An index-only command still works — it just has no description here yet. Send it `{"cmd":"<name>"}` and read the reply, or find its `handle_*` function in the server source.
|
||||
|
||||
Regenerate with `python tools/gen_tcp_commands.py`; `--check` fails if this block has drifted from the code.
|
||||
|
||||
@@ -506,6 +506,7 @@ Regenerate with `python tools/gen_tcp_commands.py`; `--check` fails if this bloc
|
||||
| `dirty_insn_log` | ✓ | | |
|
||||
| `dirty_ram_stats` | ✓ | | ✓ |
|
||||
| `dirty_ram_unsupported` | ✓ | | |
|
||||
| `disasm` | ✓ | | |
|
||||
| `disc_select` | ✓ | | |
|
||||
| `disp_ring` | ✓ | | |
|
||||
| `dispatch_check` | ✓ | | |
|
||||
@@ -660,6 +661,7 @@ Regenerate with `python tools/gen_tcp_commands.py`; `--check` fails if this bloc
|
||||
| `render_pass_dump` | ✓ | | ✓ |
|
||||
| `render_pass_refuse` | ✓ | | ✓ |
|
||||
| `render_pass_stats` | ✓ | | ✓ |
|
||||
| `resident_status` | ✓ | | |
|
||||
| `restore_trace` | ✓ | | |
|
||||
| `restore_trace_clear` | ✓ | | |
|
||||
| `restore_trace_window` | ✓ | | |
|
||||
@@ -710,6 +712,8 @@ Regenerate with `python tools/gen_tcp_commands.py`; `--check` fails if this bloc
|
||||
| `stack_profile` | ✓ | | |
|
||||
| `starv_ring` | ✓ | | |
|
||||
| `step` | ✓ | | ✓ |
|
||||
| `stereo_dump` | ✓ | | |
|
||||
| `stereo_stats` | ✓ | | |
|
||||
| `synth_recurse` | ✓ | | |
|
||||
| `thread_ctx_ring` | ✓ | | |
|
||||
| `thread_trace` | ✓ | | |
|
||||
@@ -774,3 +778,6 @@ Regenerate with `python tools/gen_tcp_commands.py`; `--check` fails if this bloc
|
||||
| `xprobe_watch` | ✓ | | |
|
||||
|
||||
<!-- END AUTOGENERATED COMMAND INDEX -->
|
||||
|
||||
`wtrace_dump pc_lo=<hex> pc_hi=<hex>` filters the recorded producer PC, masked to the physical address (KSEG0/KSEG1/KUSEG alias, like `addr_lo`/`addr_hi`), with inclusive lower and exclusive upper bounds, before limiting results. Omitted bounds match every entry; DMA entries use their recorded initiator, and a DMA whose initiator is unknown (0) never matches an explicit PC bound. Address/frame/order filters still apply.
|
||||
`disasm addr=<hex> count=<1..256>` inspects aligned guest instructions; default count is 16. Resolved targets use the guest PC. Unknown words are shown verbatim.
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
# Atomic stereo pairs and scoped views: source and validation
|
||||
|
||||
Reconstructed from [FractalEngineer/psxrecomp](https://github.com/FractalEngineer/psxrecomp), developed on
|
||||
`vr-dev` at `9976567eb8e95510ca7eeeeccd9af3a260885de5`.
|
||||
Exact source commits:
|
||||
|
||||
- [0a955971](https://github.com/FractalEngineer/psxrecomp/commit/0a95597129cc2ee6d70397a8da9511831575eae4)
|
||||
- [0a4cf21f](https://github.com/FractalEngineer/psxrecomp/commit/0a4cf21fac88ef425ba0edd25871d7dd20ee0903)
|
||||
- [22bdc9e9](https://github.com/FractalEngineer/psxrecomp/commit/22bdc9e90d14f7a04b79c83b77611c4eb980fef4)
|
||||
- [734977c9](https://github.com/FractalEngineer/psxrecomp/commit/734977c93e80789e9210a262daa35a88f41c40d4)
|
||||
|
||||
Original author: Yves <calibratedbeats@gmail.com>. The feature commit retains
|
||||
that exact human author identity. The focused port consolidates the selected
|
||||
source hunks and corrections. Its commit also cites these sources and carries
|
||||
the original human contributor's `Co-authored-by: Yves <calibratedbeats@gmail.com>` trailer.
|
||||
|
||||
Adapted: Frozen-checkpoint paired rendering, private staging/atomic publication, scoped GTE rigid/asymmetric views, full-pose rollback and generic inverse pose math. TCP diagnostics and bounded capture tooling accompany the feature.
|
||||
|
||||
Deliberately excluded: OpenXR SDK/session/device code, producer-PC filtering, game replay callbacks/addresses and the reverted vertex-capture experiment.
|
||||
|
||||
The feature was reconstructed on upstream master
|
||||
`db62eec15f81c88aef3d6dab51d4e566a7167d23`, retaining current upstream APIs,
|
||||
renderer/input policy and build integration. Validation after reconstruction:
|
||||
Paired abort/sandbox, GL refusal/source guards, pose/inverse-pose and GTE identity/parallax/rigid/asymmetric regressions.
|
||||
|
||||
The motivating consumer is [Medal of Honor, SLUS-00974 (NTSC-U)](https://github.com/FractalEngineer/Medal-Of-Honor-PSX-Recomp/tree/e323885958c2ae0b0df847bed6175f9e76524442).
|
||||
Game-specific integration remains in that repository. Consuming this change
|
||||
requires a deliberate framework pin update in the game repo and a rebuild.
|
||||
This is a host/runtime/tool change; it requires no BIOS or game C regeneration.
|
||||
|
||||
Historical alpha acceptance used the older framework checkpoint above. It is
|
||||
separate from current-master branch verification. Fresh game, renderer and
|
||||
headset checks, where applicable, are recorded in the PR validation notes;
|
||||
uncertain hardware/runtime behavior must not be inferred from a clean link.
|
||||
|
||||
## Current-master integration validation
|
||||
|
||||
Windows, GCC 13.2, Ninja, Release. Runtime test checks remain active with NDEBUG enabled.
|
||||
|
||||
Release pair abort/sandbox, pose/inverse-pose and GTE identity/parallax/rigid/asymmetric tests pass. The actual OpenGL fixture passes all 197 checks at both 1x and 4x on an RTX 4070 Ti (NVIDIA OpenGL 4.6, driver 616.92), including eye texture pixels, private staging, atomic publication, VRAM restoration, refusal gates, retention of the preceding pair on failure, PNG capture and TCP metadata. Diagnostic manifests are written by host tooling from bounded TCP metadata. Fresh in-headset stereo acceptance remains pending.
|
||||
|
||||
Integration: [Medal of Honor, SLUS-00974 NTSC-U](https://github.com/FractalEngineer/Medal-Of-Honor-PSX-Recomp/tree/e323885958c2ae0b0df847bed6175f9e76524442), built against the corrected framework stack with `PSXRECOMP_ROOT`. Bundled OpenBIOS LLE cold boot, menu navigation, mission gameplay, fresh savestate creation/loading and post-load input/frame advancement were checked with screenshots. An older alpha slot-5 savestate was refused; compatibility with historical states is not established. Memory-card round trips, attract-demo completion, other games and fresh headset visuals were not tested.
|
||||
|
||||
The registered recompiler suite reports 132 passes, four failures and three disabled tests. The four failures reproduce on unchanged upstream master in this Windows toolchain: `portable_settings_paths_test`, `optional_netplay_auth`, `compile_overlays_static_tail` and `aot_overlay_discovery`. The introduced BIOS-fingerprint and GL-guard failures are fixed.
|
||||
@@ -0,0 +1,44 @@
|
||||
# Runtime projection-distance scaling: source and validation
|
||||
|
||||
Reconstructed from [FractalEngineer/psxrecomp](https://github.com/FractalEngineer/psxrecomp), developed on
|
||||
`vr-dev` at `9976567eb8e95510ca7eeeeccd9af3a260885de5`.
|
||||
Exact source commits:
|
||||
|
||||
- [82695b75](https://github.com/FractalEngineer/psxrecomp/commit/82695b75d79610ca7a99783adf9dd5195edfcdd0)
|
||||
- [5633e868](https://github.com/FractalEngineer/psxrecomp/commit/5633e86878611a14d3a78e8f9708452a07bc7238)
|
||||
- [bbd01ccf](https://github.com/FractalEngineer/psxrecomp/commit/bbd01ccfc91c1d9ebe199dad071df64e5b13d06d)
|
||||
- [39d478db](https://github.com/FractalEngineer/psxrecomp/commit/39d478db83132815c2c8c593fc719c4bf67301b0)
|
||||
|
||||
Original author: Yves <calibratedbeats@gmail.com>. The feature commit retains
|
||||
that exact human author identity. The focused port consolidates the selected
|
||||
source hunks and corrections. Its commit also cites these sources and carries
|
||||
the original human contributor's `Co-authored-by: Yves <calibratedbeats@gmail.com>` trailer.
|
||||
|
||||
Adapted: Optional effective-H scaling and environment/config precedence. Unlike the source fork, [video] fov_scale is read by a runtime-only parser extension, leaving all emitter inputs unchanged. Environment/range/quantization validation and PGXP shadows were corrected.
|
||||
|
||||
Deliberately excluded: Shared recompiler-parser fields, BIOS stamp refreshes, stereo views, XR code and game camera/culling policy.
|
||||
|
||||
The feature was reconstructed on upstream master
|
||||
`db62eec15f81c88aef3d6dab51d4e566a7167d23`, retaining current upstream APIs,
|
||||
renderer/input policy and build integration. Validation after reconstruction:
|
||||
GTE identity/numerical/environment/quantization regressions and both committed BIOS fingerprint checks. Runtime config-parser regression is registered with CTest.
|
||||
|
||||
The motivating consumer is [Medal of Honor, SLUS-00974 (NTSC-U)](https://github.com/FractalEngineer/Medal-Of-Honor-PSX-Recomp/tree/e323885958c2ae0b0df847bed6175f9e76524442).
|
||||
Game-specific integration remains in that repository. Consuming this change
|
||||
requires a deliberate framework pin update in the game repo and a rebuild.
|
||||
This is a host/runtime/tool change; it requires no BIOS or game C regeneration.
|
||||
|
||||
Historical alpha acceptance used the older framework checkpoint above. It is
|
||||
separate from current-master branch verification. Fresh game, renderer and
|
||||
headset checks, where applicable, are recorded in the PR validation notes;
|
||||
uncertain hardware/runtime behavior must not be inferred from a clean link.
|
||||
|
||||
## Current-master integration validation
|
||||
|
||||
Windows, GCC 13.2, Ninja, Release. Runtime test checks remain active with NDEBUG enabled.
|
||||
|
||||
Release GTE tests pass for identity, numerical projection, invalid ratios, finite/range/full-string environment parsing and quantization. A registered runtime-only TOML regression covers defaults, valid values and rejected values. PGXP shadows use effective H while guest H stays canonical. Both committed BIOS fingerprint checks pass: the shared recompiler parser and generated BIOS files are unchanged from master.
|
||||
|
||||
Integration: [Medal of Honor, SLUS-00974 NTSC-U](https://github.com/FractalEngineer/Medal-Of-Honor-PSX-Recomp/tree/e323885958c2ae0b0df847bed6175f9e76524442), built against the corrected framework stack with `PSXRECOMP_ROOT`. Bundled OpenBIOS LLE cold boot, menu navigation, mission gameplay, fresh savestate creation/loading and post-load input/frame advancement were checked with screenshots. An older alpha slot-5 savestate was refused; compatibility with historical states is not established. Memory-card round trips, attract-demo completion, other games and fresh headset visuals were not tested.
|
||||
|
||||
The registered recompiler suite reports 132 passes, four failures and three disabled tests. The four failures reproduce on unchanged upstream master in this Windows toolchain: `portable_settings_paths_test`, `optional_netplay_auth`, `compile_overlays_static_tail` and `aot_overlay_discovery`. The introduced BIOS-fingerprint and GL-guard failures are fixed.
|
||||
@@ -0,0 +1,41 @@
|
||||
# Offline plugin controller sources: source and validation
|
||||
|
||||
Reconstructed from [FractalEngineer/psxrecomp](https://github.com/FractalEngineer/psxrecomp), developed on
|
||||
`vr-dev` at `9976567eb8e95510ca7eeeeccd9af3a260885de5`.
|
||||
Exact source commits:
|
||||
|
||||
- [5a1264b7](https://github.com/FractalEngineer/psxrecomp/commit/5a1264b79b69b5d75f7b8507e305b1e13a911a50)
|
||||
|
||||
Original author: Yves <calibratedbeats@gmail.com>. The feature commit retains
|
||||
that exact human author identity. The focused port consolidates the selected
|
||||
source hunks and corrections. Its commit also cites these sources and carries
|
||||
the original human contributor's `Co-authored-by: Yves <calibratedbeats@gmail.com>` trailer.
|
||||
|
||||
Adapted: Only offline controller-source registration (documented as mod-trusted), validation/neutralization and the existing offline host-input boundary.
|
||||
|
||||
Deliberately excluded: OpenXR Touch action implementation, game bindings/deadzones/aiming and guest SIO replacements.
|
||||
|
||||
The feature was reconstructed on upstream master
|
||||
`db62eec15f81c88aef3d6dab51d4e566a7167d23`, retaining current upstream APIs,
|
||||
renderer/input policy and build integration. Validation after reconstruction:
|
||||
Absent/invalid/declined/analog/digital source, detach and session-reset executable checks.
|
||||
|
||||
The motivating consumer is [Medal of Honor, SLUS-00974 (NTSC-U)](https://github.com/FractalEngineer/Medal-Of-Honor-PSX-Recomp/tree/e323885958c2ae0b0df847bed6175f9e76524442).
|
||||
Game-specific integration remains in that repository. Consuming this change
|
||||
requires a deliberate framework pin update in the game repo and a rebuild.
|
||||
This is a host/runtime/tool change; it requires no BIOS or game C regeneration.
|
||||
|
||||
Historical alpha acceptance used the older framework checkpoint above. It is
|
||||
separate from current-master branch verification. Fresh game, renderer and
|
||||
headset checks, where applicable, are recorded in the PR validation notes;
|
||||
uncertain hardware/runtime behavior must not be inferred from a clean link.
|
||||
|
||||
## Current-master integration validation
|
||||
|
||||
Windows, GCC 13.2, Ninja, Release. Runtime test checks remain active with NDEBUG enabled.
|
||||
|
||||
Release controller-source checks pass for absent, invalid, declined, analog/digital, detach and session-reset samples; they remain active with NDEBUG enabled. Integrated flat input reaches gameplay. Hardware controller mappings and live headset focus/reconnect behavior remain outside this test coverage.
|
||||
|
||||
Integration: [Medal of Honor, SLUS-00974 NTSC-U](https://github.com/FractalEngineer/Medal-Of-Honor-PSX-Recomp/tree/e323885958c2ae0b0df847bed6175f9e76524442), built against the corrected framework stack with `PSXRECOMP_ROOT`. Bundled OpenBIOS LLE cold boot, menu navigation, mission gameplay, fresh savestate creation/loading and post-load input/frame advancement were checked with screenshots. An older alpha slot-5 savestate was refused; compatibility with historical states is not established. Memory-card round trips, attract-demo completion, other games and fresh headset visuals were not tested.
|
||||
|
||||
The registered recompiler suite reports 132 passes, four failures and three disabled tests. The four failures reproduce on unchanged upstream master in this Windows toolchain: `portable_settings_paths_test`, `optional_netplay_auth`, `compile_overlays_static_tail` and `aot_overlay_discovery`. The introduced BIOS-fingerprint and GL-guard failures are fixed.
|
||||
@@ -0,0 +1,42 @@
|
||||
# Render-pass callback rollback: source and validation
|
||||
|
||||
Reconstructed from [FractalEngineer/psxrecomp](https://github.com/FractalEngineer/psxrecomp), developed on
|
||||
`vr-dev` at `9976567eb8e95510ca7eeeeccd9af3a260885de5`.
|
||||
Exact source commits:
|
||||
|
||||
- [6d44e21d](https://github.com/FractalEngineer/psxrecomp/commit/6d44e21df7ccedd1acbfa31844a53bf8bd8b316e)
|
||||
- [35b209d4](https://github.com/FractalEngineer/psxrecomp/commit/35b209d406c168e14f51bb8bbd549742473c7388)
|
||||
|
||||
Original author: Yves <calibratedbeats@gmail.com>. The feature commit retains
|
||||
that exact human author identity. The focused port consolidates the selected
|
||||
source hunks and corrections. Its commit also cites these sources and carries
|
||||
the original human contributor's `Co-authored-by: Yves <calibratedbeats@gmail.com>` trailer.
|
||||
|
||||
Adapted: Callback depth/owner snapshot and restore on the existing render transaction, normal-return imbalance detection and focused recovery documentation.
|
||||
|
||||
Deliberately excluded: Paired-eye extension tests (included with stereo), game save files and scene-specific replay setup.
|
||||
|
||||
The feature was reconstructed on upstream master
|
||||
`db62eec15f81c88aef3d6dab51d4e566a7167d23`, retaining current upstream APIs,
|
||||
renderer/input policy and build integration. Validation after reconstruction:
|
||||
Nested callback/owner rollback, nonzero outer callback, normal-return imbalance and watchdog recovery regressions.
|
||||
|
||||
The motivating consumer is [Medal of Honor, SLUS-00974 (NTSC-U)](https://github.com/FractalEngineer/Medal-Of-Honor-PSX-Recomp/tree/e323885958c2ae0b0df847bed6175f9e76524442).
|
||||
Game-specific integration remains in that repository. Consuming this change
|
||||
requires a deliberate framework pin update in the game repo and a rebuild.
|
||||
This is a host/runtime/tool change; it requires no BIOS or game C regeneration.
|
||||
|
||||
Historical alpha acceptance used the older framework checkpoint above. It is
|
||||
separate from current-master branch verification. Fresh game, renderer and
|
||||
headset checks, where applicable, are recorded in the PR validation notes;
|
||||
uncertain hardware/runtime behavior must not be inferred from a clean link.
|
||||
|
||||
## Current-master integration validation
|
||||
|
||||
Windows, GCC 13.2, Ninja, Release. Runtime test checks remain active with NDEBUG enabled.
|
||||
|
||||
Release abort/sandbox tests pass for nested callback depth/owner, nonzero outer context, mod-only normal-return imbalance and watchdog recovery. Fresh integrated flat gameplay is reachable after save/load. Historical slot-load recovery after an in-game watchdog is recorded separately.
|
||||
|
||||
Integration: [Medal of Honor, SLUS-00974 NTSC-U](https://github.com/FractalEngineer/Medal-Of-Honor-PSX-Recomp/tree/e323885958c2ae0b0df847bed6175f9e76524442), built against the corrected framework stack with `PSXRECOMP_ROOT`. Bundled OpenBIOS LLE cold boot, menu navigation, mission gameplay, fresh savestate creation/loading and post-load input/frame advancement were checked with screenshots. An older alpha slot-5 savestate was refused; compatibility with historical states is not established. Memory-card round trips, attract-demo completion, other games and fresh headset visuals were not tested.
|
||||
|
||||
The registered recompiler suite reports 132 passes, four failures and three disabled tests. The four failures reproduce on unchanged upstream master in this Windows toolchain: `portable_settings_paths_test`, `optional_netplay_auth`, `compile_overlays_static_tail` and `aot_overlay_discovery`. The introduced BIOS-fingerprint and GL-guard failures are fixed.
|
||||
@@ -0,0 +1,41 @@
|
||||
# Render-pass refusal diagnostics: source and validation
|
||||
|
||||
Reconstructed from [FractalEngineer/psxrecomp](https://github.com/FractalEngineer/psxrecomp), developed on
|
||||
`vr-dev` at `9976567eb8e95510ca7eeeeccd9af3a260885de5`.
|
||||
Exact source commits:
|
||||
|
||||
- [257a88b0](https://github.com/FractalEngineer/psxrecomp/commit/257a88b06d26bb99a9e6066b89f839af41090118)
|
||||
|
||||
Original author: Yves <calibratedbeats@gmail.com>. The feature commit retains
|
||||
that exact human author identity. The focused port consolidates the selected
|
||||
source hunks and corrections. Its commit also cites these sources and carries
|
||||
the original human contributor's `Co-authored-by: Yves <calibratedbeats@gmail.com>` trailer.
|
||||
|
||||
Adapted: Refusal counters, latched GL/resource errors, TCP reporting and synthetic abort/sandbox coverage. The readiness source guard was updated for the preserved refusal chain.
|
||||
|
||||
Deliberately excluded: Stereo gates, OpenXR submission, game replay hooks, GL allocation-success policy changes and bulk historical captures.
|
||||
|
||||
The feature was reconstructed on upstream master
|
||||
`db62eec15f81c88aef3d6dab51d4e566a7167d23`, retaining current upstream APIs,
|
||||
renderer/input policy and build integration. Validation after reconstruction:
|
||||
Abort/sandbox executables, render-pass source guards, GL internal-scale guards and regenerated TCP index.
|
||||
|
||||
The motivating consumer is [Medal of Honor, SLUS-00974 (NTSC-U)](https://github.com/FractalEngineer/Medal-Of-Honor-PSX-Recomp/tree/e323885958c2ae0b0df847bed6175f9e76524442).
|
||||
Game-specific integration remains in that repository. Consuming this change
|
||||
requires a deliberate framework pin update in the game repo and a rebuild.
|
||||
This is a host/runtime/tool change; it requires no BIOS or game C regeneration.
|
||||
|
||||
Historical alpha acceptance used the older framework checkpoint above. It is
|
||||
separate from current-master branch verification. Fresh game, renderer and
|
||||
headset checks, where applicable, are recorded in the PR validation notes;
|
||||
uncertain hardware/runtime behavior must not be inferred from a clean link.
|
||||
|
||||
## Current-master integration validation
|
||||
|
||||
Windows, GCC 13.2, Ninja, Release. Runtime test checks remain active with NDEBUG enabled.
|
||||
|
||||
Abort/sandbox regressions and the registered GL readiness guards pass. The updated guard follows the same refusal chain in ordinary and stereo builds. Integrated real-GL readback tests pass at 1x and 4x; injected driver out-of-memory behavior was not exercised.
|
||||
|
||||
Integration: [Medal of Honor, SLUS-00974 NTSC-U](https://github.com/FractalEngineer/Medal-Of-Honor-PSX-Recomp/tree/e323885958c2ae0b0df847bed6175f9e76524442), built against the corrected framework stack with `PSXRECOMP_ROOT`. Bundled OpenBIOS LLE cold boot, menu navigation, mission gameplay, fresh savestate creation/loading and post-load input/frame advancement were checked with screenshots. An older alpha slot-5 savestate was refused; compatibility with historical states is not established. Memory-card round trips, attract-demo completion, other games and fresh headset visuals were not tested.
|
||||
|
||||
The registered recompiler suite reports 132 passes, four failures and three disabled tests. The four failures reproduce on unchanged upstream master in this Windows toolchain: `portable_settings_paths_test`, `optional_netplay_auth`, `compile_overlays_static_tail` and `aot_overlay_discovery`. The introduced BIOS-fingerprint and GL-guard failures are fixed.
|
||||
@@ -0,0 +1,43 @@
|
||||
# TCP guest instruction disassembly: source and validation
|
||||
|
||||
Reconstructed from [FractalEngineer/psxrecomp](https://github.com/FractalEngineer/psxrecomp), developed on
|
||||
`vr-dev` at `9976567eb8e95510ca7eeeeccd9af3a260885de5`.
|
||||
Exact source commits:
|
||||
|
||||
- [85c47e10](https://github.com/FractalEngineer/psxrecomp/commit/85c47e10a2fa6e112205e0e953a89ba120c4b139)
|
||||
- [d58db909](https://github.com/FractalEngineer/psxrecomp/commit/d58db9092a57cc692d0c9d936f5003fb4b3e0977)
|
||||
- [c2ed6e55](https://github.com/FractalEngineer/psxrecomp/commit/c2ed6e558f37212c36aedfdfa2c90863883f0aff)
|
||||
|
||||
Original author: Yves <calibratedbeats@gmail.com>. The feature commit retains
|
||||
that exact human author identity. The focused port consolidates the selected
|
||||
source hunks and corrections. Its commit also cites these sources and carries
|
||||
the original human contributor's `Co-authored-by: Yves <calibratedbeats@gmail.com>` trailer.
|
||||
|
||||
Adapted: The C-compatible bridge to the existing MIPS decoder, bounded TCP handler, build linkage and command docs. Formatting was corrected and covered during reconstruction.
|
||||
|
||||
Deliberately excluded: Guest instruction execution/codegen changes, new decoders, game-specific addresses and runtime printf debugging.
|
||||
|
||||
The feature was reconstructed on upstream master
|
||||
`db62eec15f81c88aef3d6dab51d4e566a7167d23`, retaining current upstream APIs,
|
||||
renderer/input policy and build integration. Validation after reconstruction:
|
||||
Disassembly operand/target/coprocessor/buffer regressions, debug-tool ON/OFF server compilation and regenerated TCP index.
|
||||
|
||||
The motivating consumer is [Medal of Honor, SLUS-00974 (NTSC-U)](https://github.com/FractalEngineer/Medal-Of-Honor-PSX-Recomp/tree/e323885958c2ae0b0df847bed6175f9e76524442).
|
||||
Game-specific integration remains in that repository. Consuming this change
|
||||
requires a deliberate framework pin update in the game repo and a rebuild.
|
||||
This is a host/runtime/tool change; it requires no BIOS or game C regeneration.
|
||||
|
||||
Historical alpha acceptance used the older framework checkpoint above. It is
|
||||
separate from current-master branch verification. Fresh game, renderer and
|
||||
headset checks, where applicable, are recorded in the PR validation notes;
|
||||
uncertain hardware/runtime behavior must not be inferred from a clean link.
|
||||
|
||||
## Current-master integration validation
|
||||
|
||||
Windows, GCC 13.2, Ninja, Release. Runtime test checks remain active with NDEBUG enabled.
|
||||
|
||||
Release disassembly tests passed for arithmetic, multiply/divide, shifts, branch/jump targets, immediates, COP0/COP2, unknown words and bounded buffers. Checks execute with NDEBUG enabled. Full runtime builds passed with debug tools enabled and disabled; the generated command index passes.
|
||||
|
||||
Integration: [Medal of Honor, SLUS-00974 NTSC-U](https://github.com/FractalEngineer/Medal-Of-Honor-PSX-Recomp/tree/e323885958c2ae0b0df847bed6175f9e76524442), built against the corrected framework stack with `PSXRECOMP_ROOT`. Bundled OpenBIOS LLE cold boot, menu navigation, mission gameplay, fresh savestate creation/loading and post-load input/frame advancement were checked with screenshots. An older alpha slot-5 savestate was refused; compatibility with historical states is not established. Memory-card round trips, attract-demo completion, other games and fresh headset visuals were not tested.
|
||||
|
||||
The registered recompiler suite reports 132 passes, four failures and three disabled tests. The four failures reproduce on unchanged upstream master in this Windows toolchain: `portable_settings_paths_test`, `optional_netplay_auth`, `compile_overlays_static_tail` and `aot_overlay_discovery`. The introduced BIOS-fingerprint and GL-guard failures are fixed.
|
||||
@@ -0,0 +1,41 @@
|
||||
# Write-trace producer-PC filters: source and validation
|
||||
|
||||
Reconstructed from [FractalEngineer/psxrecomp](https://github.com/FractalEngineer/psxrecomp), developed on
|
||||
`vr-dev` at `9976567eb8e95510ca7eeeeccd9af3a260885de5`.
|
||||
Exact source commits:
|
||||
|
||||
- [734977c9](https://github.com/FractalEngineer/psxrecomp/commit/734977c93e80789e9210a262daa35a88f41c40d4)
|
||||
|
||||
Original author: Yves <calibratedbeats@gmail.com>. The feature commit retains
|
||||
that exact human author identity. The focused port consolidates the selected
|
||||
source hunks and corrections. Its commit also cites these sources and carries
|
||||
the original human contributor's `Co-authored-by: Yves <calibratedbeats@gmail.com>` trailer.
|
||||
|
||||
Adapted: Only full-PC low/high query filters and response bounds; recording is unchanged.
|
||||
|
||||
Deliberately excluded: The same source commit's OpenXR hand snapshots and pose math; no game memory-map constants.
|
||||
|
||||
The feature was reconstructed on upstream master
|
||||
`db62eec15f81c88aef3d6dab51d4e566a7167d23`, retaining current upstream APIs,
|
||||
renderer/input policy and build integration. Validation after reconstruction:
|
||||
Six production-handler wrapped-ring regressions, debug-tool ON/OFF compilation and regenerated TCP index.
|
||||
|
||||
The motivating consumer is [Medal of Honor, SLUS-00974 (NTSC-U)](https://github.com/FractalEngineer/Medal-Of-Honor-PSX-Recomp/tree/e323885958c2ae0b0df847bed6175f9e76524442).
|
||||
Game-specific integration remains in that repository. Consuming this change
|
||||
requires a deliberate framework pin update in the game repo and a rebuild.
|
||||
This is a host/runtime/tool change; it requires no BIOS or game C regeneration.
|
||||
|
||||
Historical alpha acceptance used the older framework checkpoint above. It is
|
||||
separate from current-master branch verification. Fresh game, renderer and
|
||||
headset checks, where applicable, are recorded in the PR validation notes;
|
||||
uncertain hardware/runtime behavior must not be inferred from a clean link.
|
||||
|
||||
## Current-master integration validation
|
||||
|
||||
Windows, GCC 13.2, Ninja, Release. Runtime test checks remain active with NDEBUG enabled.
|
||||
|
||||
Six production-handler regressions passed against a wrapped trace ring, covering full PC segments, inclusive/exclusive bounds, filtering before count, combined filters, DMA metadata and response bounds. Full debug-enabled/disabled runtime builds and the generated command index pass.
|
||||
|
||||
Integration: [Medal of Honor, SLUS-00974 NTSC-U](https://github.com/FractalEngineer/Medal-Of-Honor-PSX-Recomp/tree/e323885958c2ae0b0df847bed6175f9e76524442), built against the corrected framework stack with `PSXRECOMP_ROOT`. Bundled OpenBIOS LLE cold boot, menu navigation, mission gameplay, fresh savestate creation/loading and post-load input/frame advancement were checked with screenshots. An older alpha slot-5 savestate was refused; compatibility with historical states is not established. Memory-card round trips, attract-demo completion, other games and fresh headset visuals were not tested.
|
||||
|
||||
The registered recompiler suite reports 132 passes, four failures and three disabled tests. The four failures reproduce on unchanged upstream master in this Windows toolchain: `portable_settings_paths_test`, `optional_netplay_auth`, `compile_overlays_static_tail` and `aot_overlay_discovery`. The introduced BIOS-fingerprint and GL-guard failures are fixed.
|
||||
Reference in New Issue
Block a user