Skip to content

Releases: mattias800/prosper

prosper v0.2.2

Choose a tag to compare

@github-actions github-actions released this 01 Sep 22:57
bbf4c10

What's Changed

  • vblank pump: recover the dropped-tick signal the grid snap hides (#3075) by @mattias800 in #3170
  • recompiler: keep [mimg-unresolved] visible under PROSPER_MIMG_SOFT (#3143) by @mattias800 in #3171
  • tools/snapshot: pin all three min_structural_similarity threshold routes by @mattias800 in #3172
  • docs: correct the stale readback-only present-path claim (#1270 falsified it) by @mattias800 in #3173
  • docs: fix both sides of check_merge_result's checker-invocation locale decode by @mattias800 in #3169
  • recompiler: give flat-shaded fragment varyings SPIR-V Flat (#3051) by @mattias800 in #3175
  • tools/perf: fix audio_delivery_report's +1/(N-1) drift bias and burst-clustering wording by @mattias800 in #3177
  • PROSPER_TEXCOMMIT: scan the source extent, not the decoded byte count by @mattias800 in #3176
  • host: give Win32SleepFallback the same deadline post-condition as its sibling (#3074) by @mattias800 in #3182
  • test(#3057): bind dmem caller-chain attribution to the alloc_dmem call site by @mattias800 in #3178
  • hle: scePthreadSemInit forwards sem_init's real error instead of discarding it by @mattias800 in #3179
  • tests(gpu/compute): mutation-verified regression arm for the compare-flag readback stride by @mattias800 in #3183
  • tools/shader_conformance: make scan.py's MIMG walk length-aware (#3040) by @mattias800 in #3185
  • render_runner: check vkCreateImage's result before using the image handle by @mattias800 in #3181
  • perf(compute): cut CPU cost in the compute writeback path (+2.7% on Astro Bot) by @mattias800 in #3162
  • docs: instrument trap 240 — gh pr view --comments fails here and prints nothing by @mattias800 in #3190
  • Extract sem_timedwait's deadline/slice arithmetic to clock-free helpers (#3069) by @mattias800 in #3188
  • perf(render): take getenv off 44 per-draw guards, screened against runtime arming by @mattias800 in #3192
  • ci: fail the Linux job when the spirv-tools-gated control check is not registered (#2960) by @mattias800 in #3186
  • hle(systemservice): log a guest reporting its OWN abnormal termination (#3119) by @mattias800 in #3120
  • fix(perf): warn about harness readback whenever it is a material share, not only when it wins classification by @mattias800 in #3187
  • feat(gpu): PROSPER_SKIP_DRAW_PROGRAM — decline graphics draws by shader program identity by @mattias800 in #3194
  • fix(gpu): distinguish an announced index size from a never-announced one (#3009) by @mattias800 in #3189
  • perf(compute): measure seed/writeback aliasing between dispatches (#3157) by @mattias800 in #3160
  • docs: instrument traps 242 and 243 — conflicting PRs get no CI; shared build dirs corrupt silently by @mattias800 in #3200
  • recompiler: name the failing provenance step on a vertex-fetch reject (#3137) by @mattias800 in #3191
  • recompiler: name the vertex-stage cross-lane MBCNT reject (and record vertex rejects at all) by @mattias800 in #3199
  • Derive the advertised display mode from the host instead of hardcoding 1080p59.94 (#3017) by @mattias800 in #3198
  • gpu: compute images carry the T#-declared mip chain, so image_load_mip is implemented (#3048) by @mattias800 in #3197
  • feat(gpu): name dumped shaders by guest address, and filter the dump to one (#3196) by @mattias800 in #3201
  • recompiler: a shader that reads M0 before writing it no longer fails the stage (#3133) by @mattias800 in #3136
  • fix(gpu): mip-chain provenance is image identity only when a chain exists (#3205) by @mattias800 in #3206

Full Changelog: v0.2.1...v0.2.2

prosper v0.2.1

Choose a tag to compare

@github-actions github-actions released this 01 Sep 06:05
d5c183f

What's Changed

  • fix(hle): select/pselect must honour their timeout — a no-op sleep was burning a core at 9M calls/s by @mattias800 in #1663
  • fix(diag): label guest addresses from the mapped base, not a relocated literal (#1659) by @mattias800 in #1661
  • diag(agc): make a substituted stream address, a short fold, and submit ordering fail-visible by @mattias800 in #1665
  • fix(hle): name the Videodec2 AVC entry point, and make its rejections self-identifying (#1658) by @mattias800 in #1668
  • diag(agc): PROSPER_AGC_SPLIT_FINAL_STATE — a falsified A/B for #305, retained off by @mattias800 in #1671
  • fix(loader): report duplicate exports instead of aliasing them silently (#1635) by @mattias800 in #1670
  • fix(hle): deliver the APR completion event for a zero-tag binding (#1666) by @mattias800 in #1667
  • docs(orchestration): two cross-title colour-state results, a number for "sustained all-clear", and a boot_trace Astro route by @mattias800 in #1679
  • docs: record two merge-time traps (worktree --delete-branch, SHA-pinned asset URLs) by @mattias800 in #1680
  • docs: record the before/after peer-count blind spot, and scope the GPU discipline to timing claims by @mattias800 in #1682
  • ci: run the GPU suite, and make a skipped test say so (#1675) by @mattias800 in #1678
  • docs: a guard keyed on a threshold expires silently by @mattias800 in #1683
  • test(snapshot): committed routes and gameplay guards for Joe & Mac, Asterix and Summer Sports by @mattias800 in #1676
  • docs(astro): the zero colour write mask is CB_COLOR_CONTROL.MODE=DISABLE — Lane A's question answered, frontier moves upstream by @mattias800 in #1685
  • docs(astro): close the fold bound — Astro never uses the variant submit path and every submit folds completely by @mattias800 in #1686
  • test(gpu): resolve the four lavapipe exclusions — both were assertion defects (#1681) by @mattias800 in #1689
  • fix(videodec2): the sizing query must not require a compute queue the guest cannot yet have by @mattias800 in #1687
  • docs(dq7): localize the flashing white screen and UI noise block to CB_COLOR_CONTROL.MODE=2 (#1588) by @mattias800 in #1695
  • test(snapshot): guard GRIS, Cobra and Worms at rung 6 — and one route that cannot carry a guard by @mattias800 in #1696
  • fix(app): bind every F9 capture artifact to one stamped, exclusively claimed name by @mattias800 in #1694
  • test(gpu): the 3D storage-volume fixture never encoded DIM=3D — restore game_compute_exec to CI by @mattias800 in #1698
  • feat(audio): PROSPER_AUDIO_FLOW — separate "no PCM" from "silent PCM" from "we dropped it" (#1692) by @mattias800 in #1699
  • ci(docs): fail when a numbered doc table is broken, and repair a live break by @mattias800 in #1701
  • feat(gpu): make the unmodeled CB_COLOR_CONTROL.MODE report countable by @mattias800 in #1708
  • docs: record two silent-failure idioms as instrument-traps 40 and 41 by @mattias800 in #1723
  • ci(gpu): run the Vulkan validation layer, and gate on it (#1704) by @mattias800 in #1719
  • fix(audio): fold AudioOut2 MAIN beds wider than 7.1 instead of discarding them (#1700) by @mattias800 in #1722
  • fix(gpu): CB_COLOR_CONTROL.MODE must not override the guest's explicit colour write mask by @mattias800 in #1728
  • perf(render): scope the texture decode identity map to the submit (#1691) by @mattias800 in #1703
  • fix(gpu): stop emitting invalid SPIR-V, and make the gate that missed it able to see the path (#1711) by @mattias800 in #1726
  • docs(astro): Astro Bot enters COMPATIBILITY.md at rung 2 — the title screen renders by @mattias800 in #1736
  • docs(compat): boot sweep of fourteen titles — corrected rungs, four new rows, and a frame-rate census by @mattias800 in #1740
  • feat(loader): real runtime PRX loading for sceKernelLoadStartModule (#639) by @mattias800 in #1745
  • feat(diag): PROSPER_DMEM_CALLER — attribute a direct-memory allocation to the guest code that asked for it by @mattias800 in #1749
  • perf(compute): roll up the compute decomposition, and find Astro Bot's unbounded dispatch (#1732) by @mattias800 in #1747
  • perf(render): size the backend host-buffer pool from host RAM and evict LRU (#1284) by @mattias800 in #1734
  • diag(gpu): PROSPER_PROVENANCE_ADDR, and a dispatch cap that proves Astro Bot's device loss is caused by dispatch size by @mattias800 in #1752
  • feat(talesgraces): routes to the title screen and the new-game Options screen (PPSA19991 rung 2) by @mattias800 in #1759
  • diag(gpu): PROSPER_SHARPLOG — separate "the shader never declared it" from "we dropped it" by @mattias800 in #1758
  • diag(gpu): close the #1226 fence-forge chain and stop the tripwire quoting its own cap by @mattias800 in #1754
  • fix(agc): size the end-of-pipe packet to hardware so a guest reservation is not overrun (#1748) by @mattias800 in #1760
  • feat(videoout): implement sceVideoOutWaitVblank instead of returning immediately by @mattias800 in #1757
  • docs(orchestration): instrument trap 52 — a counter-arm that makes tests SKIP rather than fail by @mattias800 in #1766
  • review: PROSPER_SHARPLOG follow-up — identity on every line, reason-keyed dedupe, correct EUD predicate by @mattias800 in #1762
  • feat(input): name the touch-pad button so a route can press it by @mattias800 in #1764
  • diag(gpu): the #1226 init is NOT the first half — measure block ownership at both writes by @mattias800 in #1767
  • test(videoout): make the WaitVblank PHASE check measurable, not a coin flip by @mattias800 in #1771
  • diag(gpu): name the mapping behind residue in a rejected descriptor, and correct the #1590 diagnosis by @mattias800 in #1772
  • feat(earthion): route past the intro — rung 2, and the "missing picture" was a black text page by @mattias800 in #1775
  • feat(agc): audit every builder's packet size, answer 22 more GetSize, and land the probe that finds the rest (#1756) by @mattias800 in #1769
  • fix(gpu): DMA_DATA with a GDS destination selector was silently discarded (#1750) by @mattias800 in #1751
  • fix(docs-check): a fence between a table and more rows is not a split (#1709) by @mattias800 in #1777
  • fix(hle): bound PROSPER_DMEM_CALLER's stack walk to mapped memory by @mattias800 in #1778
  • chore: ignore the local per-game launch scripts by @mattias800 in #1779
  • test(hle): fix flaky dmem_caller_walk and make its stack-query check discriminate by @mattias800 in #1780
  • fix(gpu): give every capped fence diagnostic an ordinal and a sparse tail by @mattias800 in #1781
  • ci: publish Linux desktop release artifacts (AppImage + tarball) by @mattias800 in #1783
  • fix(packaging): repair the dead glibc-ABI gate and harden the Linux release checks by @mattias800 in #1786
  • fix(compute): stop submitting after Vulkan device loss by @mattias800 in #1787
  • test(videoout): make vblank phase check deterministic by @mattias800 in #1795
  • test(gpu): pin submit provenance identity contract by @mattias800 in #1794
  • fix(tools): make periodic frame dumps opt-in by @mattias800 in #1789
  • test(ampr): replace timing sleeps with causal event fences by @mattias800 in #1796
  • fix(gpu-replay): register seed writers before raw replay by @mattias800 in #1797
  • fix(recompiler): restore Syberia profile scene by @mattias800 in #1791
  • test(snapshot): stabilize phase-variable content guards by @mattias800 in https://github.com/mattias800/p...
Read more

prosper v0.2.0

Choose a tag to compare

@github-actions github-actions released this 02 Aug 07:34
0a6eb2b

What's Changed

Read more

prosper v0.1.0

Choose a tag to compare

@github-actions github-actions released this 14 Jul 20:19
93d4dae

What's Changed

  • agc: break the graphics boot blocker — real sceAgcCreateShader + shader-derived pipeline state by @mattias800 in #1
  • agc: first real command buffer executes — SubmitDcb → CommandProcessor by @mattias800 in #2
  • diag: PROSPER_PEEK fault-time field dump + pin the next frontier by @mattias800 in #3
  • test: lock in the AGC submit milestone (Dcb → SubmitDcb → GpuState) by @mattias800 in #4
  • Fix AGC/SPIR-V review findings by @mattias800 in #5
  • diag(RE): 0xba6e08 is a Unity pipeline object — resource-creation premise needs revisiting by @mattias800 in #6
  • Improve MinGW Windows portability by @mattias800 in #7
  • diag(RE): bounded trace answer — 0xba6e08 pipeline object is Unity-internal (no HLE hook) by @mattias800 in #8
  • gpu: resolve_pipeline_state — RenderState (RDNA2) -> Vulkan-ready pipeline state by @mattias800 in #10
  • fix: reject graphics cmpx without export predication by @mattias800 in #12
  • Add Linux and Windows CI by @mattias800 in #9
  • videoout: real 1080p60 display + swapchain scaffolding (+ hypothesis: not the [+0x140] gate) by @mattias800 in #11
  • RE: [+0x140] companion writer chain → pipeline-reflection predicate (root cause narrowed) by @mattias800 in #13
  • RE probe: shader semantics surfaced correctly — mis-relocation bet rejected (raw blob evidence) by @mattias800 in #14
  • diag: trace shader user-data bindings by @mattias800 in #15
  • diag: skip-null-companion probe — systemic (residency pass never ran), stop per-object writer hunt by @mattias800 in #16
  • recompiler: reject unsafe forward scalar branches by @mattias800 in #17
  • diag: null-chain probe — GfxDevice subsystem systematically dead (option b), not a narrow gap by @mattias800 in #18
  • videoout: preserve submitted flip and buffer state by @mattias800 in #19
  • diag: preserve companion watchpoint result by @mattias800 in #21
  • videoout: flip→present path over the display-buffer registry (headless scanout) by @mattias800 in #22
  • hle: reduce startup stubs — UserService getters + libkernel no-ops (audit) by @mattias800 in #23
  • videoout: present receiving side — present_write_frame closes render→present→readback by @mattias800 in #24
  • gpu: build_shader_resources — V# decode + constant-buffer table (resource-binding stage 1) by @mattias800 in #25
  • gpu: build_shader_resources stage 2 — vertex buffers (DIRECT sgpr_base provenance) by @mattias800 in #26
  • Audio support: headless sceAudioOut HLE + optional SDL3 frontend by @mattias800 in #28
  • feat(pad): real game-controller input (libScePad) via Linux evdev by @mattias800 in #27
  • feat(gpu): real game frames — The Messenger's title renders with the game's own shaders by @mattias800 in #33
  • Unblock cutscene-scene loading: ParamGetString + %fs stack-smash fixes (+ map the remaining GC-race wall) by @mattias800 in #35
  • fix(gpu): loading screen rendered upside down — honor the guest viewport (PA_CL_VPORT) by @mattias800 in #38
  • fix(hle): full pread/read (asset-stream corruption) + deepened cutscene-wall findings by @mattias800 in #39
  • Fix %fs stack-smash in fault_handler + pin the cutscene wall to incremental-GC live-object collection by @mattias800 in #36
  • diag: cutscene blocker pinned to IL2CPP GC "Unexpected state" abort (findings + tooling) by @mattias800 in #37
  • feat(gpu): multi-draw executor + backend (opt-in), on the per-draw snapshot foundation by @mattias800 in #34
  • Fix the level1 (cutscene) load crash — GC allocation lock never locked by @mattias800 in #42
  • diag: PROSPER_GUEST_ENV (guest GC env knobs) + GC-collection-is-not-the-sole-blocker finding by @mattias800 in #40
  • diag(cutscene): pinned to a null System.Diagnostics.Stopwatch in Unity's async-load WorkerThread by @mattias800 in #43
  • fix(gc-suspend): guest-%fs cancellation-point landmine + post-#43 cutscene findings by @mattias800 in #44
  • docs(cutscene): tested-and-eliminated hypotheses for the WorkerThread.+0x40 Stopwatch crash by @mattias800 in #45
  • diag(cutscene): crash → streams 80% of the cutscene; final blocker = block-966 deser deadlock by @mattias800 in #46
  • feat(ue4): PPSA17942 boots deep into UE4 engine init — SELF variant, real direct-memory model, sceKernelBatchMap, boot API surface by @mattias800 in #47
  • diag(cutscene): block-966 deadlock = type-tree-less il2cpp MonoBehaviour deser (InventoryItemDefinition) by @mattias800 in #48
  • feat(ue4): allocator pool-view aliasing SOLVED + fault-handler raw-write fix + libSceAmpr trio — UE error handling now runs by @mattias800 in #49
  • diag(cutscene): refine the block-966 wall to a deterministic 3-object deser loop by @mattias800 in #50
  • diag(cutscene): map both remaining blockers — uncaptured color render-state + variable deser/threading by @mattias800 in #51
  • fix(diag): bound PREADLOG/DEEPTRACE stack walk to the thread stack (was faulting worker threads) by @mattias800 in #52
  • fix(gpu): render the color state — absent CB_TARGET_MASK defaults to write-all (fixes the blue screen) by @mattias800 in #53
  • Load PSN.prx so the async worker pool runs — cutscene load/threading wall solved by @mattias800 in #54
  • fix(gpu/recompiler): handle forward s_cbranch_scc0 early-out — unblocks in-game scene shaders by @mattias800 in #55
  • feat(ue4): APR/IoStore read pipeline — engine reads and parses its asset TOC by @mattias800 in #57
  • diag(cutscene): SCENE REACHED (level0-5 boot-through); final blocker = scene-content render-target by @mattias800 in #56
  • fix(gpu/recompiler): recompile the in-game scene shaders (alpha-test discard PS + NGG vccnz VS + v_dot2c) by @mattias800 in #58
  • fix(render): bound texture/buffer copies to committed backing — render no longer crashes reaching the scene by @mattias800 in #59
  • fix(gpu/exec): render the mesh's real vertex count (draws were a degenerate sliver) by @mattias800 in #60
  • Full-history bug hunt: 18 verified fixes from a 405-commit review by @mattias800 in #61
  • docs(claude): GitHub-issues workflow — file found-but-unfixed bugs immediately by @mattias800 in #74
  • docs: cutscene render frontier — status, traced root cause, next step by @mattias800 in #73
  • fix(gpu): RELEASE_MEM stops guess-writing on unknown data_sel; WaitRegMem carries and verifies its real wait parameters by @mattias800 in #75
  • fix(hle/apr): safe size-keyed APR reads — refuse ambiguous/chunk reads loudly by @mattias800 in #76
  • fix(hle/kernel): purge __tls_get_addr DTV on thread exit (stale TLS on recycled ids + leak) by @mattias800 in #77
  • fix(gpu): decode R_DRAW_INDEX so sceAgcDcbDrawIndex draws reach the draw list by @mattias800 in #80
  • fix(hle/equeue): shared-ptr lifetime, real timeout semantics, kqueue coalescing, cancellable timers by @mattias800 in #81
  • fix(hle/videoout): flip-status race, time-based vblank counter, loud GetOutputStatus gap by @mattias800 in #84
  • feat(ue4): IoStore bring-up — pak containers mount, GEngineLoop.PreInit passes, engine reaches RHI init by @mattias800 in #78
  • docs(claude): issue-claim protocol for concurrent agents; Kyty reference calibration by @mattias800 in #85
  • fix(hle/kernel): scePthreadOnce serializes per control (global lock could cross-deadlock) by @mattias800 in #86
  • fix(gpu): decode the T#'s real Gen5 IMG_FMT — texture format/size no longer hardcoded RGBA8 by @mattias800 in #87
  • Real indexed draws in the executor; retire the quad-fan heuristic (Fixes #64) by @...
Read more