Difference between revisions of "Cxbx-Reloaded"

From Emulation General Wiki
Jump to navigation Jump to search
(Added categories)
(rewrite)
Line 4: Line 4:
 
|platform = [[Emulators on Windows|Windows]] (7 and later)
 
|platform = [[Emulators on Windows|Windows]] (7 and later)
 
|architecture = x86_64
 
|architecture = x86_64
|developer = PatrickvL, LukeUsher
+
|developer = PatrickvL, Luke Usher
 
|target = [[Xbox_emulators|Xbox]], Sega Chihiro <small>(Arcade, WIP)</small>
 
|target = [[Xbox_emulators|Xbox]], Sega Chihiro <small>(Arcade, WIP)</small>
 
|version = 0.1
 
|version = 0.1
|compatibility = 15+ % playable
+
|compatibility = 15% playable <small>(06/2021)</small>
|accuracy = High-level; <br/>Direct-code execution <small>(System kernel)</small>
 
 
|website = [http://cxbx-reloaded.co.uk cxbx-reloaded.co.uk]
 
|website = [http://cxbx-reloaded.co.uk cxbx-reloaded.co.uk]
 
|support = [https://www.patreon.com/LukeUsher Patreon]
 
|support = [https://www.patreon.com/LukeUsher Patreon]
Line 14: Line 13:
 
|license = GNU GPLv2
 
|license = GNU GPLv2
 
}}
 
}}
'''Cxbx-Reloaded''' is an open-source [[Xbox emulators|Xbox]] and Sega Chihiro <small>(WIP)</small> emulator for Windows.  
+
'''Cxbx-Reloaded''' is an open-source [[Xbox emulators|Xbox]] and Sega Chihiro <small>(WIP)</small> emulator for Windows.
 +
 
 +
Only 15% of the Xbox's library is supported as of June 2021.<ref>https://www.patreon.com/posts/progress-report-53482583</ref>
  
 
==Download==
 
==Download==
Line 20: Line 21:
 
|-
 
|-
 
|align=center|{{Icon|Win-big}}
 
|align=center|{{Icon|Win-big}}
|'''[https://cxbx-reloaded.co.uk/download Latest Dev build]'''<br/><small>Compiled by appveyor</small>
+
|'''[https://cxbx-reloaded.co.uk/download Latest Dev build]'''
 
|}
 
|}
  
 
==Overview==
 
==Overview==
Cxbx-Reloaded began its life as a fork of [[Cxbx]], with added 64-bit support. Work was soon currently underway to back-port some of the improvements made from Dxbx. Cxbx-Reloaded in its current form was begun on April 1, 2016. It was actually lead developer Luke Usher's second attempt at reviving the original Cxbx emulator. He had an initial stab at it a few years prior, but didn't have the requisite skills to do so at the time. However, back when he was known as 'SoulSentinel', he was able to get ''Futurama'' and ''Turok: Evolution'' running at the time, on 64bit Windows Vista / Windows 7 back in late April 2013.<ref name="ngemu_1">{{cite web|url=https://www.ngemu.com/threads/fixing-0xc000007b-error-on-64-bit-windows.156180/post-2101410 |title=Thread: Fixing 0xC000007b error on 64-bit Windows (64-bit Cxbx-Reloaded fork) |publisher=ngemu.com |author=SoulSentinel |accessdate=2021-01-22 |date=Apr 28, 2013}}</ref>
+
<blockquote>
 
+
''"The Xbox kernel doesn't address many hardware devices. It interacts with a clock, listens to a few hardware interrupts, but otherwise mainly implements hundreds of API's that user code can call for various tasks. There's not much hardware involved with that, and thus [our] current kernel is for the most part just another, replacement implementation of those Xbox kernel API's. That's why the kernel is best not described as "HLE" or "LLE", but simply as "kernel", because it's not patching Xbox software, nor emulating Xbox hardware devices, it's merely an alternative implementation."''<br/>-PatrickvL<ref>{{cite web|url=https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/pull/2116#discussion_r554439083 |title=Pull Request: Add Pull Request Labeler Support |publisher=GitHub |author=PatrickvL |accessdate=2021-01-22 |date=Jan 10, 2021}}</ref>
The project reported roughly 150 games as playable since their [https://www.patreon.com/posts/progress-report-53482583 progress report from 06/2021], covering 15.06% of the entire Xbox library.
+
</blockquote>
 
+
Cxbx-Reloaded reimplements each of the Xbox's components so that the <abbr title="Xbox Executable">XBE</abbr> files can run directly on Windows. This process is akin to [[Wine]] or [[TeknoParrot]], only the complexity has expanded greatly since the developers have to account for the Xbox's memory map, a very purpose-built graphics card, and the other custom hardware components.
Historically, it patched Xbox executables (xbe's) to get them to run on the client (a [[High/Low_level_emulation|high-level]] approach); but, LLE-GPU support was introduced on April 1, 2018.<ref>https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/pull/1018</ref> However, the option was disabled from the GUI on October 27, 2019 <ref>https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/pull/1761</ref> because it was deemed to be too slow to run games at acceptable speeds. The team [https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/projects/2 ported] this emulator's render code from its old Direct3D 8 graphics over to Direct3D 9 and also ported the pixel and vertex shaders to the Shader Model 2.X language or later. This allows the use of more instruction slots and registers, allowing Xbox pixel and vertex shaders to be more accurately converted to the host. Finally, the team is currently [https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/tree/dx11 porting] the Direct3D 9 render code to Direct3D 11.
 
  
* [https://cxbx-reloaded.co.uk/compatibility Official compatibility page]<ref group=N name=version>The official website was once designed as a compatibility list with additional categories in digits, letters, and xdk-derived symbol class numbers. It opened sometime around mid-2016 but then closed in early 2017 when xbes from pirated games were anonymously classified as playable despite that not being the case even on legitimate copies. </ref>
+
* [https://cxbx-reloaded.co.uk/compatibility Official compatibility page]
* [https://github.com/Cxbx-Reloaded/game-compatibility/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc GitHub's game issues repository]
+
* [https://github.com/Cxbx-Reloaded/game-compatibility/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc game-compatibility GitHub repository] for tracking game bugs
*[https://guivanrv.github.io/cxbx-reloaded-compatibility-list/ Auto compilation] of game issues on GitHub repo <ref group=N>Please wait as it loads in all active issues. It covers games, demos, disc content, homebrew like emulators, XDK samples, and etc.</ref>
+
* [https://guivanrv.github.io/cxbx-reloaded-compatibility-list/ Web-based compatibility list] based on the game-compatibility repository. Covers games, demos, disc content, homebrew like emulators, XDK samples, etc. You'll want to allow some time to load all the entries.
  
<!-- Page below was down as of late 2019
+
===History===
*[https://obk.ee/cxbx/ Daily compatibility chart]<ref group=N>Chart is updated daily and easier to read. Percentage is out of 700+ games (Retail, demos, unlockables) and software (Dashboards, XDK samples, updates, emulators, etc) tested.</ref> -->
+
Development of Cxbx-Reloaded in its current form began on April 1, 2016 when Luke Usher tried to revive [[Cxbx]] for a second time. His first attempt stalled as he lacked the requisite skills at the time, but his efforts were promising. In late April 2013, he was able to get ''Futurama'' and ''Turok: Evolution'' running on 64-bit versions of Windows Vista and 7.<ref name="ngemu_1">{{cite web|url=https://www.ngemu.com/threads/fixing-0xc000007b-error-on-64-bit-windows.156180/post-2101410 |title=Thread: Fixing 0xC000007b error on 64-bit Windows (64-bit Cxbx-Reloaded fork) |publisher=ngemu.com |author=SoulSentinel |accessdate=2021-01-22 |date=Apr 28, 2013}}</ref>
  
'''Changelog:''' [https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/issues/1195#issuecomment-405622789 v0.1]. '''Milestone:''' [https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/issues/1318 v0.2 planning].
+
On the two year anniversary of the project, a lower-level implementation of the GPU called "LLE-GPU" was introduced.<ref>https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/pull/1018</ref> However, the option to enable it was removed from the GUI a year later because it was deemed "too slow to play games at acceptable speeds".<ref>https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/pull/1761</ref> Work then began to wrap the Direct3D 8 API around Direct3D 9,<ref>https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/projects/2</ref> and later Direct3D 11 in a separate branch.<ref>https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/tree/dx11</ref>
 
 
===Kernel===
 
Cxbx-Reloaded is able to run in high-level emulation without the need for a BIOS file as the machine's kernel software, which consists of perhaps around 330 [[Wikipedia:API|API]] (Application Programming Interface) calls, that get called by game or software running in the emulator, to the host kernel APIs on modern Windows host operating systems. A self-contained re-implementation of this without the host API calls on Windows is needed to broaden compatibility with non-Windows operating systems, though.
 
 
 
The Xbox kernel itself doesn't address many hardware devices. It interacts with a clock, listens to a few hardware interrupts, but otherwise mainly implements hundreds of API's that user code can call for various tasks. There's not much hardware involved with that, and thus the current kernel is for the biggest part just another, replacement implementation of those Xbox kernel API's.
 
That's why the kernel is best not described as "HLE" or "LLE", but simply as "kernel", because it's not patching Xbox software, nor emulating Xbox hardware devices, it's merely an alternative implementation.<ref name="Git_2">{{cite web|url=https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/pull/2116#discussion_r554439083 |title=Pull Request: Add Pull Request Labeler Support |publisher=GitHub |author=PatrickvL |accessdate=2021-01-22 |date=Jan 10, 2021}}</ref>
 
 
 
==Notes==
 
<references group=N />
 
  
 
==References==
 
==References==
Line 52: Line 43:
  
 
==External links==
 
==External links==
*[https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/wiki Wiki for developers]
+
*[https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/wiki GitHub Wiki]
*[https://github.com/Cxbx-Reloaded/game-compatibility/wiki Wiki for miscellaneous compatibility information]
+
*[https://discordapp.com/invite/26Xjx23 Official Discord server]
*[https://github.com/donwayo/xbox-db An Xbox Classic game database] ([https://xbox-db.herokuapp.com/ Link])
+
*[https://www.youtube.com/playlist?list=PL5JgcabuM9iN8zuKp8Y1o21N6Qn8yjnkR&pbjreload=10 YouTube playlist] maintained by Luke Usher
*[https://gitter.im/Cxbx-Reloaded/Lobby Official Gitter chat channel]
+
<!--
*[https://discordapp.com/invite/26Xjx23 Official Discord chat channel] (For general and development discussions on OG Xbox emulation, especially for Cxbx-R, but also XQEMU and OpenXBOX)
+
*[https://github.com/Cxbx-Reloaded/game-compatibility/projects/3 Xbox Dashboards] GitHub project
*[https://www.youtube.com/playlist?list=PL5JgcabuM9iN8zuKp8Y1o21N6Qn8yjnkR&pbjreload=10 YouTube channel] (From lead programmer Luke U.)
+
*[https://xbox-db.herokuapp.com/ An Xbox Classic game database] ([https://github.com/donwayo/xbox-db Source])
 
+
-->
 
[[Category:Emulators]]
 
[[Category:Emulators]]
 
[[Category:Console emulators]]
 
[[Category:Console emulators]]

Revision as of 10:41, 15 October 2021

Cxbx-Reloaded
Cxbx-Reloaded.png
Developer(s) PatrickvL, Luke Usher
Latest version 0.1
Active Yes
Platform(s) Windows (7 and later)
Architecture(s) x86_64
Emulates Xbox, Sega Chihiro (Arcade, WIP)
Compatibility 15% playable (06/2021)
Website cxbx-reloaded.co.uk
Support ($) Patreon
License GNU GPLv2
Source code GitHub

Cxbx-Reloaded is an open-source Xbox and Sega Chihiro (WIP) emulator for Windows.

Only 15% of the Xbox's library is supported as of June 2021.[1]

Download

Windows Latest Dev build

Overview

"The Xbox kernel doesn't address many hardware devices. It interacts with a clock, listens to a few hardware interrupts, but otherwise mainly implements hundreds of API's that user code can call for various tasks. There's not much hardware involved with that, and thus [our] current kernel is for the most part just another, replacement implementation of those Xbox kernel API's. That's why the kernel is best not described as "HLE" or "LLE", but simply as "kernel", because it's not patching Xbox software, nor emulating Xbox hardware devices, it's merely an alternative implementation."
-PatrickvL[2]

Cxbx-Reloaded reimplements each of the Xbox's components so that the XBE files can run directly on Windows. This process is akin to Wine or TeknoParrot, only the complexity has expanded greatly since the developers have to account for the Xbox's memory map, a very purpose-built graphics card, and the other custom hardware components.

History

Development of Cxbx-Reloaded in its current form began on April 1, 2016 when Luke Usher tried to revive Cxbx for a second time. His first attempt stalled as he lacked the requisite skills at the time, but his efforts were promising. In late April 2013, he was able to get Futurama and Turok: Evolution running on 64-bit versions of Windows Vista and 7.[3]

On the two year anniversary of the project, a lower-level implementation of the GPU called "LLE-GPU" was introduced.[4] However, the option to enable it was removed from the GUI a year later because it was deemed "too slow to play games at acceptable speeds".[5] Work then began to wrap the Direct3D 8 API around Direct3D 9,[6] and later Direct3D 11 in a separate branch.[7]

References

External links