This Year in Cxbx-Reloaded
Added 2017-12-31 21:42:23 +0000 UTC2017 has been a busy year for Cxbx-Reloaded. Since January 2017, we've had a total of 1980 commits, contributed by a total of 11 developers.
1980 commits may not sound like a great deal when compared to other projects, but the total number of commits since 2003 is only 3,216. A little more than 60% of all contributions have been within this year, and we have no plans to slow down!
So what happened in all these contributions?
1. We gained support for more audio codecs,allowing sound playback in many titles that were previously silent. This allowed audio to play in the Dashboard and fixed missing sound effects in JSRF, as well as many other titles.
2. The HLE Kernel has been improved dramatically, allowing for a large number of XDK patches to be removed. This greatly increases stability and allows more Xbox code to run unmodified: The result is more titles booting than ever before.
3. Partial LLE: The mere basics of the NV2A was implemented, allowing Direct3D_CreateDevice to be unpatched, which allows the Direct3D HLE to be significantly improved, as well as a stub NVNet (network) implementation: This allows many titles using Xbox Live to boot rather than crash instantly.
4. Input handling (Device API HLE) was improved significantly: Previous versions of Cxbx (and Reloaded) implemented controllers by assuming the first input device queried by a title would always be a GamePad. Cxbx-Reloaded fixed this assumption by parsing the Device Table contained within each Xbe, mapping the GamePad correctly. This fixed input in many titles as well as fixing a long-standing bug in the Dashboard that caused it to erroneously detect corrupted memory units, which we don't emulate at this point in time.
5. Our contributors spend countless hours trawling through the HLE symbol database, verifying entries for correctness and also changing the way symbols are defined, making it much easier to maintain in the future while making countless titles progress more than they did before.
2017 also saw the introduction of an online compatibility list, which currently is severely lacking in submissions. Please help us by testing any games you have and submit your results, including debug information such as Debug Logs from the emulator: We don't get as many submissions as we like, and I am confident that a high number of titles only need minor tweaks and fixes to start working: 'Big' milestones such as JSRF reaching in-game actually only took a day of work: Some minor tweaks to the Input API.
Many more tweaks/fixes have happened over the year, but most of these are small and don't have any immediate impact in the short term, but are working towards improving compatibility in the long term. Trust us when we say next year should be exciting, there's a lot on the horizon, and some rather interesting titles are very close to showing progress.
On another note: The Wine team introduced a fix to allow Cxbx-Reloaded to properly reserve the Xbe base address: Initial testing shows that results on Linux are (almost) identical to running on Windows. It might not be a native port, but now Linux users can join in the fun!
A big thank you to all our contributors and Patrons, and a happy new year to all!