Cxbx-Reloaded Progress Report (April 2021)
Added 2021-05-11 20:52:15 +0000 UTCMany people probably saw ImGui being used as the main GUI in emulation projects, and this month it’s part of our own graphical interface bringing some interesting new features, including some nice debug information in real time. Some old options (heritage from the old CxBx original project behavior) were removed, visual issues were fixed in many games and some game breaking issues were fixed bringing us another 3 playable games.
General Improvements
Convert STENCILFAIL [PR #2181]
This change improved shadows in many games (eg. Dead or Alive series) and some cel shaded ones as well. Known games that improved:
● Dead or Alive 3
● Dead or Alive 2
● Dead or Alive Xtreme Beach Volleyball
● Indiana Jones and the Emperor's Tomb
● Cel Damage
Add Basic ImGui Support [PR #2174]
Basic ImGui introduction support into Cxbx-Reloaded as emulation overlay GUI.
Following features has been implemented:
● Overlay:
○ Main menu bar
○ FPS
○ HLE/LLE stats
○ Vertex Buffer (was from console prints)
○ Audio Buffer Cache (was from console prints)
● Ability to remember windows last position in memory and file (currently disabled) on start and restart of emulation.
● F1 permanent hotkey to toggle overlay view, any opened windows will remain open
○ Also will be remembered to keep ImGui focus as well
With F1 hotkey toggle to show our ImGui overlay, all inputs into the title are ignored.
Removed patch menu and SaveXbe(As) options from GUI [PR #2188]
This removes the Allow >64MB option in the patch menu. This, because it's misleading, as it suggests that, when you turn it on, cxbxr will use 128 MiB of ram, which is not true. All it does is toggling the bLimit64MBflag in the xbe, and VMManager only checks for that if the xbe type is debug, and ignores it if it's retail or chihiro. In addition, the patch is only done to the xbe loaded in memory, and won't have any effect if the patched xbe is not saved back to disk before launching the emulation.
Obs: this also removes the patch menu completely and also the SaveXbe(As) options as well.
Fix RtlUnicodeStringToAnsiString bug [PR #2200]
When one attempt was made to create a profile from DoA 1 Ultimate's online section, it caused a fatal crash due to incorrect unicode to string size which led to buffer overflow exception. After adding a test for the xbox kernel test suite, we have fixed any possible result for success and failure in the process of fixing Cxbx-Reloaded's RtlUnicodeStringToAnsiString bug.
With this fix, DoA 1 Ultimate's profile creation no longer crashes.
kernel: implement title mount path [PR #2193]
Finally, it is here! Ability to remember first load title (from CdRom0/Mbfs devices).
In theory, this is enough to make sure titles using xbox live have the ability to go into the xbox live dashboard and back properly.
check for null device [PR #2206]
Check to make sure device is null before creating it, avoids losing device due to unneeded recreation (eg. Indiana Jones and Buffy menus).
Add a new LTCG variation of D3DDevice_SetStreamSource [PR #2209]
Found in Juiced. It does not make the game usable (still not rendering anything), but looking at the data the newly patched function receives I can tell it's correct. PR'ing it because maybe it'll get some other game in-game.
Notable Game Improvements
Red Faction 2 [PLAYABLE]
Night vision regression fixed! The game is now fully playable. 2 months ago we had 1 major gamebreaking issue: not being able to create a character profile to save your progress. Then last month we had it fixed, should be playable now… but nope, a regression made night vision break the entire rendering (black screen of “try again later, bye bye progress”). With this fixed, the entire game can be played properly.
Total Overdose [PLAYABLE]
No longer crash happy, it’s finally fully playable. Performance is enough to get me to the end of the game while still having fun with my potato hardware (i3 2100 @ 3.1 GHz), so anything closer to “modern hardware” will be able to run it nicely (the game itself has an interesting frameskip feature that will make gameplay work properly even at very low framerates)
Batman: Rise of Sin Tzu [PLAYABLE]
With some of the latest rendering improvements, all the HUD details are fully visible and also the health bars are updated when the value changes (previously you couldn’t tell when a special enemy or a boss HP bar went down, as the bar was always at the same size). Another side-effect of the upscaling fixes from last month is that the fear gas post processing effect no longer makes the entire screen lower resolution, working exactly as it should.
Final Words
For those following the project, this isn’t really a surprise, but some major improvement is being worked on for some time now into a specific branch. The tldr on this is: pixel shader emulation being rewritten using HLSL, with the result being better and more accurate rendering behavior for most games. This work is dangerously close to being merged and will bring many games to the playable state, but we need some help finding regressions (to be sure nothing is broken once the code is added to the master branch, aka “main builds”). Here’s a direct download of the latest pixel shader HLSL branch build: [Download]
And here’s where you can download the latest master builds:[Download]
Once you have both downloaded (each on their own folder, running as portable), test your games and take notes about anything different you see, and please report the information here: https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/pull/2136.
Any help would be greatly appreciated, see you all next month!
As always, don’t forget to check the updated compatibility information in our site ;) https://cxbx-reloaded.co.uk/compatibility
Comments
You need to log into Github to be able to download that build
Literalmente Game
2021-05-12 06:42:55 +0000 UTCThe link for the pixel shader hlsl branch build goes to a 404 GitHub page. Can you please double check that it’s the correct link. The master build link works fine, it’s just the pixel shader link that isn’t working. Thanks.
Cooks
2021-05-12 03:00:10 +0000 UTC