Editing Cxbx-Reloaded

Jump to navigation Jump to search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
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, Luke Usher
+
|developer = PatrickvL, LukeUsher
 
|target = [[Xbox_emulators|Xbox]], Sega Chihiro <small>(Arcade, WIP)</small>
 
|target = [[Xbox_emulators|Xbox]], Sega Chihiro <small>(Arcade, WIP)</small>
|version = {{Version|Cxbx-Reloaded}}
+
|version = 0.1
|compatibility = 16% playable <small>(02/2024)</small>
+
|compatibility = 15+ % playable
 +
|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 13: Line 14:
 
|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 16% of the Xbox's library is listed as playable as of February 2024.<ref>https://www.patreon.com/posts/progress-report-53482583</ref>
 
  
 
==Download==
 
==Download==
Line 21: Line 20:
 
|-
 
|-
 
|align=center|{{Icon|Win-big}}
 
|align=center|{{Icon|Win-big}}
|'''[https://cxbx-reloaded.co.uk/download Latest Dev build]'''
+
|'''[https://cxbx-reloaded.co.uk/download Latest Dev build]'''<br/><small>Compiled by appveyor</small>
 
|}
 
|}
  
 
==Overview==
 
==Overview==
<blockquote>
+
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>
''"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>
+
 
</blockquote>
+
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.
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]
+
* [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://github.com/Cxbx-Reloaded/game-compatibility/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc game-compatibility GitHub repository] for tracking game bugs
+
* [https://github.com/Cxbx-Reloaded/game-compatibility/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc GitHub's game issues repository]
* [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.
+
*[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>
  
===History===
+
<!-- Page below was down as of late 2019
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>
+
*[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> -->
  
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>
+
'''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].
 +
 
 +
===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 43: Line 52:
  
 
==External links==
 
==External links==
*[https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/wiki GitHub Wiki]
+
*[https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/wiki Wiki for developers]
*[https://discordapp.com/invite/26Xjx23 Official Discord server]
+
*[https://github.com/Cxbx-Reloaded/game-compatibility/wiki Wiki for miscellaneous compatibility information]
*[https://www.youtube.com/playlist?list=PL5JgcabuM9iN8zuKp8Y1o21N6Qn8yjnkR&pbjreload=10 YouTube playlist] maintained by Luke Usher
+
*[https://github.com/donwayo/xbox-db An Xbox Classic game database] ([https://xbox-db.herokuapp.com/ Link])
<!--
+
*[https://gitter.im/Cxbx-Reloaded/Lobby Official Gitter chat channel]
*[https://github.com/Cxbx-Reloaded/game-compatibility/projects/3 Xbox Dashboards] GitHub project
+
*[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://xbox-db.herokuapp.com/ An Xbox Classic game database] ([https://github.com/donwayo/xbox-db Source])
+
*[https://www.youtube.com/playlist?list=PL5JgcabuM9iN8zuKp8Y1o21N6Qn8yjnkR&pbjreload=10 YouTube channel] (From lead programmer Luke U.)
-->
+
 
 
[[Category:Emulators]]
 
[[Category:Emulators]]
 
[[Category:Console emulators]]
 
[[Category:Console emulators]]
Line 56: Line 65:
 
[[Category:Xbox emulators]]
 
[[Category:Xbox emulators]]
 
[[Category:Windows emulation software]]
 
[[Category:Windows emulation software]]
[[Category:Forks]]
 

Please note that all contributions to Emulation General Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Emulation General Wiki:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)