Editing XQEMU

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 1: Line 1:
 
{{Infobox emulator
 
{{Infobox emulator
|active = No
+
|active = Yes
|platform = [[Emulators on Windows|Windows]]<br/>[[Emulators on Linux|Linux]]<br/>[[Emulators on macOS|macOS]]
+
|platform = Windows<br/>Linux<br/>macOS
 
|target = [[Xbox emulators|Xbox]]
 
|target = [[Xbox emulators|Xbox]]
|developer = espes, mborgerson, JayFoxRox and XQEMU Community
+
|developer = espes <small>(Project maintainer)</small>, mborgerson, JayFoxRox, lufix, wayo
 
|website = [http://xqemu.com/ XQEMU.com]
 
|website = [http://xqemu.com/ XQEMU.com]
|source = [https://github.com/xqemu/xqemu GitHub]
+
|source = [https://github.com/espes/xqemu GitHub]}}
|bios = [[Emulator_Files#Xbox|Required]]
 
}}
 
'''XQEMU''' is an open-source, [[High/Low level emulation|low-level]], multi-platform [[Xbox emulators|Xbox]] emulator based off of [[QEMU]], a general-purpose computer emulator and hypervisor. What makes this emulator different from other attempts at Xbox emulation is the use of low-level emulation, while previous attempts at Xbox emulation used high-level emulation. This comes with its own benefits and downsides in comparison, but has quickly led to higher [[Emulation Accuracy|accuracy]] and greater compatibility.
 
  
XQEMU has been superseded by [[xemu]], which is an actively updated fork from a previous XQEMU developer.
+
'''XQEMU''' is a [[High/Low level emulation|low-level]] [[Xbox]] and Sega Chihiro emulator based off of [http://wiki.qemu.org/Main_Page QEMU], a general-purpose computer emulator and hypervisor. What makes this emulator different from the other attempts at Xbox emulation is the use of low-level emulation (since QEMU itself is a low-level emulator), while previous attempts at Xbox emulation used high-level emulation. This comes with its own benefits and downsides in comparison, but it does allow for greater [[emulation accuracy|accuracy]] and greater compatibility down the road.
  
==Download==
+
==Downloads==
{| cellpadding="4"
+
'''2018 QEMU rebase's official builds:'''
|-
+
*[https://ci.appveyor.com/project/mborgerson/xqemu-c5j6o Windows builds]
|align=center|{{Icon|Win-big}}
+
*[https://travis-ci.org/xqemu/xqemu Linux and MacOS builds]
|'''[https://ci.appveyor.com/project/xqemu-bot/xqemu/branch/master Official Dev builds]'''
 
|-
 
|colspan="3"|<hr/>
 
|-
 
|align=center|{{Icon|Win-big}}
 
|[http://www.emucr.com/search/label/XQEMU Unofficial Dev builds]<br/><small>Compiled by emucr</small>
 
|-
 
|align=center|{{Icon|Win-big}}
 
|[http://www.emu-france.com/emulateurs/6-arcades/61-multi-games/7071-xqemu/ Emu-France builds]<br/><small>French language</small>
 
|}
 
  
===Frontends===
 
XQEMU does not come with an Xbox specific GUI and needs a separate frontend for GUI features.
 
  
*[https://github.com/xqemu/xqemu-manager '''XQEMU-Manager'''] (Official frontend by XQEMU developers. Python script; GUI only)
+
Other Sources:
 +
*[http://www.emucr.com/search/label/XQEMU Unofficial Dev Builds]
  
Unofficial frontends are also available:
 
*[https://github.com/Voxel9/XQEMU-Frontend XQEMU-Frontend] by Voxel9 (Builds available; GUI only)
 
*[https://github.com/BigBrainAFK/xqemu-gui xqemu-gui] by BigBrainAFK (Builds available; GUI only)
 
*[https://github.com/illwieckz/xqemurun XQEMURun] by illwieckz (Python script; Command-Line interface only)
 
  
==Overview==
+
===Wrappers (Frontends)===
 +
Using XQEMU with a wrapper that looks and acts like a frontend may be easier for users.
  
XQEMU is currently the most accurate open-source Xbox emulator. Many games work correctly in XQEMU, but there are performance issues in many games. Due to the small number of contributors, the focus of development has always been on accuracy, but sometimes there are occasional performance improvements. As more developers contribute to the project and emulation matures, the focus will shift to performance. The developers are always looking for more contributors to help the Xbox get emulated.
+
*[https://github.com/Voxel9/XQEMU-Frontend XQEMU-Frontend] by Voxel9 (Binary releases available)
 +
*[https://github.com/illwieckz/xqemurun XQEMURun] by illwieckz (No official releases available. This wrapper is more advanced than XQEMU-Frontend.)
  
XQEMU supports CPU virtualization to improve emulation performance, at a minor loss of compatibility. The only implementation that's working right now seems to be KVM, at no fault of the emudevs.
 
* Windows: WHPX (broken, awaiting fixes by Microsoft), HAXM (broken, awaiting fixes by Intel)
 
* macOS: HVF (broken, awaiting fixes by Apple), HAXM (broken, awaiting fixes by Intel)
 
* Linux: KVM (working)
 
  
KVM has been supported in XQEMU since 2013 and is the only stable CPU virtualization at the moment. With the rebase to QEMU 2.x and 3.x in 2018, support for other virtualization technologies has become possible. HVF changes were contributed by espes. Active development of HAXM, WHPX and HVF has made them more compatible with XQEMU, but problems remain. Issues have been filed in the respective projects and testing continues. Throughout September 2018 and later, mborgerson has been showcasing [https://www.youtube.com/watch?v=Si_RAtA7eAQ KVM] for Linux-based systems and [https://www.youtube.com/watch?v=y617eSRogdI HAXM] for Windows and macOS systems in XQEMU. They provide decent performance boosts to games such as Halo: Combat Evolved but still weren't enough to run them at full speed.
+
Old wrappers:
 +
*[https://github.com/JayFoxRox/xqemu-jfr xqemu-jfr] by JayFoxRox (XQEMU wrapped with a frontend-like GUI. Last updated in 2014. Binary releases available. Newer wrappers above are recommended.)
  
*[https://docs.google.com/spreadsheets/d/1sVtQ9SNPathKAMCqfYtvJQP0bs0UeLzP9otPHvZDMwE/htmlview#gid=709879345 New compatibility chart] (1000+ games)
+
==Overview==
*[http://xboxdevwiki.net/XQEMU Old compatibility chart] (Taken from John GodGames' 2015 list)
+
XQEMU is at a very early stage right now. Quite a lot of games can run on it, but it's low-level, accuracy-focused, and there hasn't been much (if any) focus on speed, so games are very slow on it currently. There is some work being done to make it use KVM, which could significantly increase speed, but it's currently not recommended and Linux only.
  
===History===
+
A contributor named 'mborgerson', who put in a few commits to espes' branch of XQEMU and in early 2018 kicked off the new Xbox emulator ÓpenXBOX, has, since [https://github.com/xqemu/xqemu/commit/49f1a7ccfaf105536cd30587254fb555e4ac1e3c March 24, 2018], begun work on bringing the XQEMU emulator up-to-date by re-basing it on the latest QEMU tag. He's had this to say below:<br/>
 +
"This will bring many years of performance enhancements to xqemu including support for native virtualization APIs."
  
mborgerson has, since March 24, 2018,<ref>mborgerson. [https://github.com/xqemu/xqemu/commit/49f1a7ccfaf105536cd30587254fb555e4ac1e3c Add hw/xbox from xqemu]. GitHub.</ref> begun work on rebasing XQEMU on the latest QEMU tag, "[bringing] many years of performance enhancements to xqemu including support for native virtualization APIs."<ref>[https://github.com/xqemu/xqemu/blob/xbox-2.x-rebase/README.md README.md]. GitHub.</ref> The rebase branch, which was merged into the master branch on June 2018, incorporated over 30,000 commits from QEMU that were never merged over the years. Shortly after, the project was rebased again to QEMU 3.0.0.
+
That re-base branch should have some 30,000 commits from QEMU that have been accumulated over the years (during the relative inactivity of the older XQEMU branch) till then! Work continues apace to bring 3D graphics rendering for Xbox games back up and working.
  
In June 2018, mborgerson created a new website for XQEMU at xqemu.com; an alternative domain, xqemu.org, was contributed by xbox7887. That same month JayFoxRox released nv2a-trace to debug and compare GPU behavior between the Xbox and XQEMU. This has quickly lead to bug-fixes and allows other developers to gain a better understanding about the Xbox GPU.
+
==Running==
 
+
Note: The official website of this emulator now has straightforward guides such as setting up the emulator on a chosen operating system, input devices, networking and other tips.
In July 2018, JayFoxRox improved controller emulation in XQEMU. More than 20 games were affected by this change. The standard controllers are emulated with no known issues now.
 
 
 
In 2018, a trivial bug in the network emulation was identified by JayFoxRox and mborgerson. Since the patch, System-Link has been supported. It's been tested between different instances of XQEMU, and between XQEMU and Xbox consoles.
 
 
 
In late 2018, mborgerson introduced a new texture cache to improve the performance of XQEMU.
 
  
In December 2018, JayFoxRox started integrating audio emulation into XQEMU. This work is based on his 2017 research and prototypes. To attract more developers, many DSP-related tools were created to assist further development. That same month, mborgerson made a prototype for performance changes including the implementation of surface-caching, which greatly enhances visual quality and performance. That work has not been integrated into the official version yet.
+
You'll need a MCP-X boot rom, Xbox 1.0 compatible BIOS, and a HDD image with a dashboard, all in the main XQEMU directory. Then run:
 
+
<pre style="white-space:pre-wrap">qemu-system-xbox -cpu pentium3 -machine xbox,short_animation,bootrom=mcpx_1.0.bin -m 64 -drive file=xbox_harddisk.qcow2,index=0,media=disk,locked=on -drive index=1,media=cdrom,file=game.iso -bios complex_4627debug.bin -usb -device usb-hub,bus=usb-bus.0,port=3 -device usb-xbox-gamepad,bus=usb-bus.0,port=3.2</pre>
====Frontend====
+
Change <code>mcpx_1.0.bin</code>, <code>complex_4627debug.bin</code>, and <code>game.iso</code> to the filenames of the boot rom, BIOS, and game ISO that you're running.
 
 
In May 2018, mborgerson created XQEMU-Manager, the official frontend for XQEMU. This was done to make XQEMU easier to use, and to combat the rise of many competing unofficial user interfaces. Much like the main project, XQEMU-Manager is also accepting contributions by anyone.
 
 
 
In October 2018, Thrimbor added support for adding custom command-line options for running XQEMU. This was primarily done to work around the lack of input configuration options, based on earlier concepts by JayFoxRox and dracc. Thrimbor also added an option to enable CPU virtualization that same month. It only allows HAXM on Windows / macOS, and KVM on Linux. HVF and WHPX were not supported due to stability issues.
 
 
 
In November 2018, Thrimbor added support for basic input configuration.
 
 
 
In December 2018, Thrimbor added support for configuring emulated memory units.
 
 
 
====Related projects====
 
 
 
In June 2018, mborgerson created a [https://github.com/xqemu/xqemu-hdd-image copyright-free Xbox HDD image]. It's fully functional for most use-cases and can be considered a viable alternative to using images from hardware.
 
 
 
In October 2018, mborgerson made xqemu-kernel, an attempt at an open-source Xbox kernel as HLE alternative. It's currently considered a prototype and isn't functional, and it isn't currently part of the official XQEMU ecosystem.
 
 
 
espes and JayFoxRox formed XboxDev, an organization for researching and documenting the hardware for the original Xbox and Chihiro. Many XQEMU developers are also active members and contributors to XboxDev projects. As a result, most development tools developed for XQEMU are hosted by XboxDev.
 
 
 
==Running==
 
Follow the latest official instructions at [https://xqemu.com/getting-started/ xqemu.com/getting-started/].
 
  
 
==References==
 
==References==
Line 90: Line 48:
  
 
==External links==
 
==External links==
*[https://github.com/xqemu/xqemu/tree/xbox-2.x-rebase Upcoming official XQEMU branch re-based on latest QEMU tag]
+
*[https://github.com/xqemu/xqemu/tree/xbox-2.x-rebase Upcoming official XQEMU branch re-based on latest QEMU tag] (3D graphics not running yet)
*[https://github.com/JayFoxRox/xqemu-jfr/wiki Old Wiki for developers (JayFoxRox's branch)]
+
*[https://github.com/espes/xqemu/wiki Wiki for developers (Official branch)]
*[https://github.com/XboxDev/XboxDev XboxDev for Xbox documentation] (Contributors from many Xbox-related projects including XQEMU and Cxbx-Reloaded) <!-- Why is this here? It's not emulation specific; it was merely initiated by JayFoxRox and espes. A) useful resource for new programmers keen to learn more about & improve Xbox emulation. Main Xbox page here has 2 links to games compat & emulators lists at this wiki.-->
+
*[https://github.com/JayFoxRox/xqemu/wiki Wiki for developers (JayFoxRox's branch)]
*[http://webchat.freenode.net/?channels=%23xqemu Official XQEMU IRC chat channel on freenode]
+
*[http://xboxdevwiki.net/Main_Page Wiki for Xbox hardware documentation] (JayFoxRox and one admin from CXBX-R's game issues repo, CakeLancelot are among the contributors)
*[https://discordapp.com/invite/WxJPPyz XboxDev Discord chat channel] (For discussions on Xbox emulation development)
+
*[http://webchat.freenode.net/?channels=%23xqemu Official freenode IRC chat channel]
*[https://www.youtube.com/playlist?list=PLBRxCmSa5Ob1m8XsJMkRQrAQu0RUxa4PF YT Playlist] (Technical progress videos from XQEMU maintainer mborgerson)
+
*[https://discordapp.com/invite/WxJPPyz Official Discord chat channel] (For discussions on Xbox emulation development)
  
 
[[Category:Emulators]]
 
[[Category:Emulators]]
[[Category:Console emulators]]
 
[[Category:Home console emulators]]
 
[[Category:Xbox emulators]]
 
 
[[Category:Windows emulation software]]
 
[[Category:Windows emulation software]]
 
[[Category:Linux emulation software]]
 
[[Category:Linux emulation software]]
 
[[Category:macOS emulation software]]
 
[[Category:macOS emulation software]]
[[Category:Inactive emulation software]]
+
[[Category:Xbox emulators]]

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)