Cxbx-Reloaded (Xbox) April 2018 Official Progress Report: Massive Audio Improvements, Rendering Fixes, Multi-controller Support, More Compatible Games and Much More!
Note: Due to the heightened interest in Cxbx-Reloaded, I, Aurora, offered the team to write a progress report and post on Wololo. This means that this is an OFFICIAL progress report vetted and endorsed by the team itself!
In the past year, interest in Cxbx-Reloaded, an original Xbox emulator, has skyrocketed and as a result, there have been great strides in the development of this emulator.
The statistics to the right speak for themselves since there are already some playable games and games that got in-game!
Summary of the report
The month of April brought about some noteworthy improvements especially in the audio department but also in other areas such as memory management so that a more stable experience is provided. Among this month’s improvements to the emulator, we can find:
- Massive improvements to DirectSound emulation which results in greatly superior audio in games such as Ghost Recon: Island Thunder, The Simpsons: Road Rage and others.
- The graphics rendering portion of the emulator also got sizeable improvements with many texture rendering fixes and code clean-ups.
- Much improved memory management thanks to work from ergo720. This will ultimately make the emulator much more stable and prevent memory leaks.
- Multi-controller support and controller handling improvements when using XInput thanks to jackchen.
- Further work on the Cheat Engine thanks to x1nixmzeng.
- Other more technical additions and improvements, including a pushbuffer fix-up, by jackchen.
- Many bugs were squashed, especially in the Direct3D rendering area.
Sound improvements: Major DirectSound progress and Audio stream improvements.
When you look at the commits for last month, the thing that will surely catch your eye will be the large amount of audio-related code updates by RadWolfie. Among the DirectSound commits, we find the addition of multi-channel sound support, fixes related to properly representing a sound’s volume and various other fixes which allow sound to work in Mafia, JSRF and ‘Taz – Wanted’ among others!
On a more technical note, there were also many commits relating to the proper reading of audio streams so that the sound emulation is more complete and less prone to crashing. It is important to note that April’s progress is directly tied to RadWolfie’s work in March with the XBOX’s ADPCM audio codec which is extremely important for BGM and sound effects to work properly!
As a result of RadWolfie’s work on the audio, some legacy audio hacks were removed so audio accuracy and stability will doubtlessly be better from now on!
Rendering Improvements: Support for different framebuffer sizes, tweaks and groundwork for a Direct3D 9 port.
Without a doubt, one of the most substantial portions of an emulator is how it actually renders (displays) the game’s graphics. This month saw a lot of work, mostly by Luke Usher and PatrickvL, relating to various aspects of how games are rendered such as:
- Support for different framebuffers as not all XBOX games run at 640×480 but some, such as Amped 2, can also natively run at 720p or 1080p.
- The code for the NV2A (the XBOX’s GPU) has been optimized by making code routines shorter and sorting up some code so that it’s also easier to edit in the future.
- There were many fixes in how textures are rendered which will ultimately reduce odd-looking textures in games!
- Swizzle and UnSwizzle functions which have to do how textures are stored in memory have been polished up.
Apart from rendering improvements on the current backend, there has also been groundwork on a Direct3D9 port since current revisions of the emulator use a Direct3D8 backend inside Direct3D9 wrapper. Obviously, using function wrappers affects accuracy and could even hurt performance so a proper Direct3D9 backend for rendering some portions of games will help a lot!
Games that saw some improvement this month
Without a doubt, the part that the average gamer is most looking forward to is which games saw progress this month! These are:
- Mafia, Jet Set Radio Future and Taz – Wanted which now have their audio working!
- The original Burnout, Otogi and Project Zoo now get in-game!
- Ninja Gaiden is now starting to load to the menus
- Many other games that still have to be tested 😉
To find out more about what the Cxbx-Reloaded team was up to, you could always examine the commits (code updates) first hand!
Furthermore, you can go to the compatibility tracker and check if there are any new games that interest you which are now emulated better.
Cxbx-Reloaded GitHub Commits: https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/commits/master
Cxbx-Reloaded Compatibility List: https://github.com/Cxbx-Reloaded/game-compatibility/issues
Luke Usher’s Patreon (way to donate to the development of the Cxbx-Reloaded team if you appreciate their hard work): https://www.patreon.com/LukeUsher