Progress Report (June 2019)

This month there have been a few, significant improvements made to Cxbx-Reloaded.
The most notable of which are detailed below.

Vertex Buffer Cache

 [PR 1639: https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/pull/1639

This increases performance dramatically in some titles, and all-around reduces stutter. So far, this has been found to be most notable in the Dashboard, Jet Set Radio Future and Outrun 2.

Almost all games experience at least some kind of performance improvement. 

Smashing Drive: Now working on Intel/AMD hardware

[PR 1367: https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/pull/1637]
[PR 1644: https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/pull/1644]

We fixed the long-standing issue causing Smashing Drive to be broken on all hardware except NVIDIA.

This issue has existed since the beginning of Cxbx-R and turned out to be caused by a difference in FOG handling between NVIDIA/Other hardware.

Specifically, Smashing Drive was using negative values for the fog start/end range. 

Non NVIDIA hardware was found to be clamping these values to 0 causing the fog formula to invoke 'undefined behavior'. 

Before:

After:

Fix inlined D3DDevice_WaitForVerticalBlank

[PR 1646: https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/pull/1646]

The Xbox XDK provides a useful function for game developers, D3DDevice_WaitForVerticalBlank. This function does what it says on the tin, it blocks execution until the next VBlank event.

We handle this in our HLE by hooking the function, and waiting on an event that we fire manually at the correct interval, which works for the majority of games, however, we came across some games that inlined this function, meaning that we were unable to implement it via HLE patching.

The solution was to fire the VBlank interrupt, rather than relying on our WaitForVerticalBlank hook.

This was quite a late fix this month so we don't have a full list of affected games just yet, but this is expected to fix hangs in a significant amount of games.

DSOUND: 3D sound no longer crashes the emulator

[PR 1647: https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/pull/1647]

Due to a missing piece in our DirectSound HLE, any title attempting to use 3D sound functionality would crash the entire emulator.

This has now been solved allowing many high-profile titles to boot including the Kingdom Under Fire Series. 

Summary

Just like the previous month, our friend Strelok (Literalmente{Game}) has kindly provided some stats and his test results (see attached)


I wish we had more to say, but the majority of this month has been spent testing and tweaking the Vertex Buffer Cache for optimal performance and to prevent any unexpected regressions. Hopefully we'll have even more exciting news next time
 




Tier Benefits
Recent Posts