Skip to content

Releases: BaraaZ95/uncharted_pc

Test build on 0.3.6: file I/O into game memory

Choose a tag to compare

@BaraaZ95 BaraaZ95 released this 18 Oct 10:43

Unofficial test build, not a release from SuperMedo. It replaces two files of 0.3.6; everything else stays.

It is 0.3.6 plus one commit, fix/guest-io (1274d36):

  • File I/O into game memory without faults or short reads. Reads and writes go through a second view of game memory that page protection can't block. The GPU side is involved only for pages it actually tracks, exactly where the game's own access would have faulted; other file buffers cost nothing extra. 0.3.6 retries short reads (Supermedo#101); this removes the cause, and also covers writes from pages the GPU made inaccessible.
  • Split flexible memory no longer frees pages still in use. Unmapping part of a flexible mapping freed and zeroed the left part's physical pages, which could leave two allocations sharing memory.

The GPU merge is not changed: 0.3.6 already fixes the London pub crash without a performance cost. (The earlier test build removed the merge, and that is what cost frame rate.)

Install

  1. Back up bin\bb-probe.exe and bin\libc++.dll in your uncharted-windows 0.3.6 folder.
  2. Extract the zip into uncharted-windows, overwriting both. (libc++.dll is a newer build of the C++ runtime that the new exe needs; checked against every other DLL of 0.3.6.)

To undo, restore the two files.

Please report

  • FPS in the same spot with 0.3.6 and with this build, ideally with BB_FRAME_STATS=1 in the launcher's "Environment" field.
  • Any crash, with user\last_run.log.

Checked here: builds from 1274d36, guest-io-test passes, the imported DLLs are the same as 0.3.6's, and bb-probe.exe --vulkan-only passes inside the 0.3.6 package. Not yet played.

SHA-256 of the zip: 6def41270eed4b68eff3ea5b004393c213703f51f8b9bcb6e768a57c12d77a42

[Withdrawn] Test build: streaming and GPU coherence fixes (on 0.3.3)

Choose a tag to compare

@BaraaZ95 BaraaZ95 released this 16 Oct 21:21

Warning

Withdrawn: do not use. This build removed the GPU merge, which fixed the London pub crash but cost a lot of frame rate (44 → 27 FPS reported in Supermedo#115). 0.3.6 fixes that crash without the cost, and short reads are handled there too.

Use 0.3.6, or to test the file I/O change on top of it: guestio-1274d36.


Unofficial test build, not a release from SuperMedo. It replaces two files of 0.3.3; everything else stays.

Built from fix/gpu-merge-coherence (commit f8cfb3b), which contains:

  • Complete file reads into game memory (fix/guest-writes): a read could stop short without an error while GPU page tracking protected the destination (Supermedo#101), which fits the Uncharted 2 streaming crash (iSubMesh < m_numSubMeshInstances, white textures). Also fixes split flexible memory freeing pages still in use.
  • GPU data reaches game memory before the game can read it: the "merge" shortcut let the game read stale data; BB_GPU_MERGE=0 was the workaround for the Uncharted 3 London bar crash (Supermedo#124). The shortcut is removed and the correct path waits only for the GPU work that wrote the page.

Install

  1. Back up bin\bb-probe.exe and bin\libc++.dll in your uncharted-windows folder.
  2. Extract the zip into uncharted-windows, overwriting both. (libc++.dll is a newer C++ runtime the new exe needs; checked against every other DLL of 0.3.3.)
  3. Remove BB_GPU_MERGE=0 if you set it.

To undo, restore the two files.

Please report in the issues

  • U2: train wreck, a few loads from a fresh start.
  • U3: London bar fight on 1.02 without BB_GPU_MERGE=0.
  • U3 Cartagena square with BB_FRAME_STATS=1 (launcher "Environment" field), to compare performance with 0.3.3.
  • Attach user\last_run.log either way.

Checked here: builds, guest-io-test passes, and bb-probe.exe --vulkan-only runs with the 0.3.3 DLLs. Not yet tested in the game itself.

SHA-256 of the zip: ca1cdab526f77a852571f5a04c5176d859e50e7b0ebc313df462e67c7cb78c3f