Difference between pages "Game Boy Advance emulators" and "Xbox emulators"

From Emulation General Wiki
(Difference between pages)
Jump to navigation Jump to search
(Emulators)
 
(Emulators)
(Tags: Mobile edit, Mobile web edit)
 
Line 1: Line 1:
[[File:Gameboy-glacier.jpg|thumb|The Game Boy Advance handheld console]]The '''[[wikipedia:Game_Boy_Advance|Game Boy Advance]]''' (often shortened to GBA) is a 32-bit handheld video game console developed by Nintendo. It is the successor to the Game Boy Color. It was released in Japan on March 21, 2001; in North America on June 11, 2001; in Australia and Europe on June 22, 2001.
+
{{Infobox console
 +
|title = Xbox
 +
|logo = Xbox-and-Controller-S.png
 +
|developer = [[:Microsoft]]
 +
|type = [[:Category:Home consoles|Home video game console]]
 +
|generation = [[:Category:Sixth-generation video game consoles|Sixth generation]]
 +
|release = 2001
 +
|discontinued = 2009
 +
|successor = [[Xbox 360 emulators|Xbox 360]]
 +
|emulated = {{✓}}
 +
}}
 +
 
 +
The '''[[wikipedia:Xbox (console)|Xbox]]''' is a sixth-generation console released by Microsoft on November 15, 2001. Known as the DirectXbox during development, it is notable for the specs having similarities to a PC, namely as a result of using familiar components around the [[wikipedia:x86|x86]] architecture. It had a custom Pentium III CPU at 733 MHz with 64 MB of RAM, and a custom Nvidia GPU codenamed NV2A at 233 MHz. The Xbox was often said to be the most powerful console from the sixth generation, and Sega later designed the '''[https://segaretro.org/Sega_Chihiro Chihiro arcade system]''' with the same components. It retailed at {{inflation|USD|299.99|2001}}.
 +
 
 +
The Xbox was a modest seller, and helped create a brand for Microsoft that would give [[Xbox 360 emulators|its successor]] a stronger market share in the west; despite Microsoft's best efforts the original Xbox and succeeding consoles from the company have never gained a foothold in Japan for various reasons.<ref name="Censored_Gaming">{{cite web|url=https://youtu.be/DmCHJmi_st4|title=Why The Xbox Failed In Japan|publisher=Youtube|accessdate=2018-07-25|date=2018-07-16}}</ref> It had a number of advantages over other sixth-gen consoles at the time; it was the only console to include a hard disk,<ref group=N>The [[PlayStation 2 emulators|PlayStation 2]] also had a hard disk accessory, but the Xbox had it built-in on all models. Consoles in the seventh generation and onward began to include internal storage in varying forms.</ref> meaning it was the first to be able to rip CDs, and it was the first and only console of the lineup to include a unified online service called Xbox Live,<ref group=N>The [[Sega Dreamcast emulators|Dreamcast]] had Sega Net in North America and Dreamarena in Europe, but Xbox Live was the same for all regions.</ref> prompting Sony to create the [[Wikipedia:PlayStation Network|PlayStation Network]] the next generation.
 +
 
 +
Early in its lifespan, the Xbox had [[wikipedia:Xbox modding|an unusually active modding scene]] compared to the other consoles (often vindicated by the incredibly short warranty). Upon the first jailbreak by [[wikipedia:Andrew Huang (hacker)|Andrew Huang]], the scene ultimately delivered no comprehensive emulation until the mid-2010s,<ref group=N>The Xbox would have been too difficult to emulate at the time anyway as its specs often rivaled that of consumer PCs, and it was alleged that many developers received legal threats from Microsoft to dissuade them from trying.</ref> where developers have continued to have issues owing to the fact that, alongside the poorly documented hardware, many of the Xbox's games either came from Windows or were then released for Windows afterward (though it does retain a few exclusives). However, the Xbox emulation scene has been resurging with two emulators at the forefront since mid-2017. Its developers continue to say there's no competition between them, as they're both open-source and have different goals and methods.<ref>[https://www.reddit.com/r/emulation/comments/8ymp6n/cxbxreloaded_just_hit_v01/e2ckmpl/ JayFoxRox's statement] (representing XQEMU). Reddit (2018-07-14).</ref><ref>[https://www.reddit.com/r/emulation/comments/6mwizs/cxbx_running_xbox_dashboard_4817_with_audio/dk7jnif/ SoullessSentinel's statement] (representing Cxbx-Reloaded). Reddit (2017-07-13).</ref>
  
 
==Emulators==
 
==Emulators==
 +
:'''Note:''' [http://xboxdevwiki.net/Emulators xboxdevwiki's own list of emulators] contain over 20 different emulator projects, most of which were abandoned not long after they started. Only about 2 or 4 emulators have been making progress.
 
{| class="wikitable" style="text-align:center;"
 
{| class="wikitable" style="text-align:center;"
|-
 
 
! scope="col"|Name
 
! scope="col"|Name
! scope="col"|Operating System(s)
+
! scope="col"|Platform(s)
 
! scope="col"|Latest Version
 
! scope="col"|Latest Version
! scope="col"|GB/GBC
+
! scope="col"|Chihiro
! scope="col"|GBA
+
! scope="col"|<abbr title="Free/Libre and Open-Source Software">FLOSS</abbr>
! scope="col"|NDS
+
! scope="col"|Active
! scope="col"|Game Link Support
+
! scope="col"|[[Recommended Emulators|Recommended]]
! scope="col"|[[libretro|Libretro Core]]
 
! scope="col"|[[Recommended emulators|Recommended]]
 
|-
 
!colspan="9"|PC
 
|-
 
|[[mGBA]]
 
|Multi-platform
 
|[https://mgba.io/downloads.html {{MGBAVer}}]
 
|✓ ||✓ ||✓<ref group=N name=medusa>Experimental separate build under the name of Medusa.</ref> ||✓ ||✓ ||✓
 
 
|-
 
|-
|[[VisualBoy Advance#VBA-M|VBA-M]]
+
! scope="col" colspan="7"|PC / x86
|Multi-platform
 
|[https://github.com/visualboyadvance-m/visualboyadvance-m/releases v2.0.1]/[http://www.emucr.com/search/label/VisualBoyAdvance-M/ SVN]
 
|✓ ||✓ ||✗ ||✓ ||✓ ||✓
 
 
|-
 
|-
|[[higan]]
+
|[[xemu]]
|Windows, macOS, Linux
+
|align=left|{{Icon|Windows|Linux|macOS}}
|[http://byuu.org/emulation/higan/ {{higanVer}}]
+
|[https://github.com/mborgerson/xemu/releases {{XemuVer}}]
|✓ ||✓ ||✗ ||✗ ||✗ ||✗
+
|{{~}} <small>(WIP)</small>
 +
|{{}}
 +
|{{✓}}
 +
|{{}}
 
|-
 
|-
|iDeaS
+
|[[Cxbx-Reloaded]]
|Windows, Linux
+
|align=left|{{Icon|Windows}}
|[http://ciacin.site90.com/ideas.php 1.0.4.0]
+
|[https://cxbx-reloaded.co.uk/download git]
|✗ ||✓ ||✓ ||✗ ||✗ ||✗
+
|{{~}} <small>(WIP)</small>
 +
|{{}}
 +
|{{}}
 +
|{{~}}
 
|-
 
|-
|[[GBE+]]
+
|[[XQEMU]]
|Multi-platform
+
|align=left|{{Icon|Windows|Linux|macOS}}
|[https://github.com/shonumi/gbe-plus GitHub]
+
|[https://github.com/xqemu/xqemu git]
|✓ ||✓ ||✓ ||✗ ||✗ ||
+
|{{~}} <small>(WIP)</small>
 +
|{{}}
 +
|{{}}
 +
|{{}}
 
|-
 
|-
|[[MAME]]
+
|[[StrikeBox]]
|Multi-platform
+
|align=left|{{Icon|Windows|Linux}}
|[http://www.mamedev.org/release.html {{MAMEVer}}]
+
|[https://github.com/StrikerX3/StrikeBox git]
|✓ ||✓ ||✗ ||? ||✓ ||
+
|{{}}
 +
|{{}}
 +
|{{}}
 +
|{{}}
 
|-
 
|-
|Meteor
+
|[[Cxbx]]
|Linux
+
|align=left|{{Icon|Windows}}
|[https://github.com/blastrock/meteor 1.4]
+
|[https://github.com/Echelon9/cxbx-shogun git]
|✗ ||✓ ||✗ ||✗ ||✓ ||
+
|{{}}
 +
|{{}}
 +
|{{}}
 +
|{{}}
 
|-
 
|-
|[[No$GBA]]
+
|[http://dxbx-emu.com/ Dxbx]
|Windows, MS-DOS
+
|align=left|{{Icon|Windows}}
|[http://problemkaputt.de/gba.htm 2.8e]
+
|[http://sourceforge.net/projects/dxbx/files/dxbx/ 0.5]
|✗ ||✓ ||✓ ||✓ ||✗ ||
+
|{{}}
 +
|{{}}
 +
|{{}}
 +
|{{}}
 
|-
 
|-
!colspan="9"|Mobile
+
|[http://xenoborg-emu.blogspot.com/ Xenoborg]
 +
|align=left|{{Icon|Windows}}
 +
|r19
 +
|{{✗}}
 +
|{{✓}}
 +
|{{✗}}
 +
|{{✗}}
 
|-
 
|-
|[[mGBA]]
+
|Xeon
|Multi-platform
+
|align=left|{{Icon|Windows}}
|[https://mgba.io/downloads.html {{MGBAVer}}]
+
|[http://www.emulator-zone.com/doc.php/xbox/xeon.html 1.0]
|||✓ ||✓<ref group=N name=medusa /> ||✓ ||✓ ||✓
+
|{{}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✗}}
 
|-
 
|-
|[[VisualBoy Advance#VBA-M|VBA-M]]
+
|[[MAME]]
|Multi-platform
+
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
|[https://github.com/visualboyadvance-m/visualboyadvance-m v2.0.1]/[http://www.emucr.com/search/label/VisualBoyAdvance-M/ SVN]
+
|[http://www.mamedev.org/release.html {{MAMEVer}}]
|✓ ||✓ ||✗ ||✓ ||✓ ||
+
|{{~}}
 +
|{{}}
 +
|{{}}
 +
|{{}}
 
|-
 
|-
|VBA8
+
! scope="col" colspan="7"|Consoles
|Windows Phone 8/8.1
 
|2.27
 
|✓ ||✓ ||✗ ||✓ ||? ||✓
 
 
|-
 
|-
|VBA10
+
|[[FU|Fusion]]
|Windows 10/Mobile
+
|align=left|{{Icon|360}}
|1.22
+
|1.7
|✓ ||✓ ||✗ ||✓ ||? ||
+
|{{✗}}
 +
|{{✗}}
 +
|{{}}
 +
|{{}}
 
|-
 
|-
!colspan="9"|Consoles
+
|[[Fission]]
|-
+
|align=left|{{Icon|XB1|SXS}}
|[[mGBA]]
+
|Patch based
|Wii
+
|{{✗}}
|[https://s3.amazonaws.com/mgba/mGBA-nightly-latest-wii.7z SVN]
+
|{{}}
|||✓ ||✗ ||✗ ||✓ ||✓
+
|{{}}
|-
+
|{{}}
|[[VisualBoy Advance#VBA-GX|VBA GX]]
 
|Wii, Gamecube
 
|[https://gbatemp.net/threads/new-vba-gx-fork-2-3-0.371284/ 2.3.2]
 
|✓ ||✓ ||✗ ||✓ ||✓<ref group=N>As VBA-Next.</ref> ||
 
|-
 
|TempGBA4PSP
 
|PlayStation Portable
 
|[http://www.mediafire.com/download/41ny5xrwxizalx4/TempGBA4PSP-26750221.zip 26750221]
 
|✗ ||||✗ ||✗ ||✓ ||✓
 
|-
 
|[[gpSP]]
 
|PlayStation Portable
 
|0.9
 
|✗ ||||✗ ||✗ ||✓ ||✗
 
 
|}
 
|}
<references group=N />
 
  
 
===Comparisons===
 
===Comparisons===
;[[mGBA]]:Aims for accuracy, speed, and features. For its accuracy, it's gradually becoming the best at that. It's actively developed and has features VBA-M lacks such as a Solar and Tilt Sensor, and more recently Game Boy Camera support.
+
Since May 2017, serious strides have been happening in the Xbox emulation scene with Cxbx-Reloaded and XQEMU making major progress. Cxbx-Reloaded went in-game for ''Jet Set Radio Future'' with a somewhat decent framerate.<ref name="Bahax Emulation">{{cite web|url=https://www.youtube.com/watch?v=K_5dIUPs0_I|title=Cxbx Reloaded - JSRF(Semi-Playable/35~60 FPS)|publisher=Youtube|accessdate=2018-05-11|date=2017-05-10}}</ref> Many more original Xbox games have been able to get in-game and, in some cases, at decent speeds on XQEMU.<ref name="Reddit">{{cite web|url=https://www.reddit.com/r/emulation/comments/6c93rg/xqemu_more_games_ingame/dhuakqc/|title=XQEMU - more games ingame|publisher=Reddit|accessdate=2017-06-11|date=2017-05-23}}</ref><ref name="JGG_3">{{cite web|url=https://m.youtube.com/watch?v=J20hlsOUFq0 |title=XQEMU Xbox Emulator - MechAssault Ingame! |publisher=Youtube|accessdate=2018-06-23|date=2018-06-22}}</ref>
;[[VisualBoy Advance|Visual Boy Advance]]:The original GBA emulator. Discovered to have an ACE vulnerability detailed below.
+
 
:;[[VisualBoy Advance#VBA-M|Visual Boy Advance-M (VBA-M)]]:A fork with additional improvements. It is not updated as often these days and is falling behind in terms of accuracy and performance compared to mGBA.
+
====PC====
::;VBA-Next:A RetroArch fork from an older revision of VBA-M with added speedhacks and tweaks, making it useful for lower-end devices. A bit less accurate in some respects, but fixes a few games such as Advance Wars 2.
+
;[[xemu]]: A low-level emulator by Matt Borgerson continuing much of the work done on [[XQEMU]]. Focuses on stability, performance, and ease of use. 600+ games are reported playable, See the [https://xemu.app official game compatibility list].
;[[gpSP]]:Its last official version was 0.9. There are, however, two forks of interest: [http://dl.qj.net/psp/emulators/gpsp-mod-20090720.html gpSPmod], and [http://filetrip.net/psp-downloads/homebrew/download-gpsp-j-12-06-16-f29570.htmlgpSP-J gpSP-J]. gpSP-J has superior compatibility, while gpSPmod has more options for customization (full screen, cheats, etc). Both are superior to Kai.
+
;[[Cxbx-Reloaded]]:A fork of [[Cxbx]] that's been having a good development momentum since mid-2016. It's built for x86_64 machines and includes a ton of improvements to its [[High/Low_level_emulation|HLE]] kernel, some from code originating in Dxbx and other related forks. While it has HLE support for the GPU and other parts (eg. audio) to make many games run fast, [https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/pull/1018 XQEMU's LLE implementation was introduced] in April 2018 and is expected to help even further. 150+ games are playable and 450+ games ingame. See [https://github.com/Cxbx-Reloaded/game-compatibility/issues this compatibility list] for more information.
;[[higan]]:Its GBA core is cycle-accurate as of v095.
+
;[[XQEMU]]: A low-level emulator based on [[QEMU]]. It can emulate the BIOS and many games at very slow speeds but is sometimes faster than Cxbx with acceptable graphics. Audio has not been tested but has been assumed to be emulated, just not forwarded to the audio hardware for some reason. See [http://xboxdevwiki.net/XQEMU this compatibility list] that was taken from John GodGames' 2015 list, and [https://docs.google.com/spreadsheets/d/1sVtQ9SNPathKAMCqfYtvJQP0bs0UeLzP9otPHvZDMwE/htmlview#gid=709879345 this Google spreadsheet].
;[[MAME]]:Has a <code>gba</code> driver markup as working but both graphics and sound are "imperfect".
+
;[[StrikeBox]]: Beginning low-level emulator that just initializes an x86 system and runs whatever is in the ROM. Not much works for this currently. It was uploaded to GitHub on [https://github.com/StrikerX3/OpenXBOX/commit/16013a6529eec37e997cd0ad1d5495cb83456014 Dec 5, 2017] by mborgerson, a well-known XQEMU contributor who in early 2018 is still focused on streamlining XQEMU's QEMU codebase. So expect more progress from XQEMU than StrikeBox in the meantime.
 +
;[[Cxbx]]: One of the first Xbox emulators, started as an ahead-of-time compiler for Xbox executables. Can boot around 56 games, with around a dozen in an already playable state. See [http://shogun3d-cxbx.blogspot.com/2009/11/cxbx-compatibility-list-updated.html this compatibility list].
 +
:;Dxbx: A port of Cxbx to Delphi, expanded with a redesigned symbol detection engine, and many rendering improvements, a new pixel shader converter, etc.
 +
;Xeon: Can emulate Halo CE to the point where the first stage is semi-playable. The walls and ground are pitch black, and the game crashes after you complete the first stage or right after you select the difficulty on modern versions of Windows.
 +
;[[MAME]]: Existing x86 emulation in MAME has given way to an <code>xbox</code> driver... that they've marked overall as <span style="color:darkred">not working</span> and sound as unimplemented (graphics are OK though).
  
'''NOTE:''' There's a ''huge'' <abbr title="Arbitrary Code Execution">ACE</abbr> vulnerability affecting VBA and most of its forks, except for VBA-M. The function for adding GameShark codes ("Import > Gameshark code file") doesn't check if the file's size is within 1024 kilobits, meaning cheat code files from dubious sources can be engineered with malware in mind. There is good news; VBA-M still doesn't do a sanity check for those files, but it just crashes instead of letting the code wreak havoc. So, depending on your use case, avoid using:
+
====Consoles====
# Cheat code files bigger than 1024Kb that you got online from untrustworthy sources.
+
;[[FU|Fusion]]:The internal name for backwards compatibility on the [[Xbox 360 emulators|Xbox 360]]. It supports [[wikipedia:List_of_Xbox_games_compatible_with_Xbox_360|a specific list of games]] that, while some work right off the bat, may need additional patches to play properly. It also requires your console to have system storage. Some games still have issues with graphical glitches and slowdowns to errors that can make standard gameplay basically impossible. There is more information and references/video(s) about this BC support [http://xboxdevwiki.net/Xbox_360_Backward_Compatibility#References_and_links here].
# The import code files feature.
+
;[[Fission]]:The internal name for backward compatibility on the [[Xbox One emulators|Xbox One]] and [[Xbox Series X and Series S|Xbox Series X/S]]. With [[wikipedia:List_of_backward_compatible_games_for_Xbox_One#List_of_compatible_titles_from_Xbox|a smaller amount of supported games]], likely due to issues surrounding licensing,<ref group=N>Which can be a number of reasons, including but not limited to developers and publishers going defunct, movie and toy tie-in licenses for branded content expiring, and music royalties.</ref> it allows the ones that do work to run at twice the Original Xbox's standard resolution (480p) on both Xbox One (S) and Xbox Series S consoles (up to 960p), and more than quadruple on Xbox One X and Xbox Series X consoles (up to 2160p).
# The old emulator altogether, and settle for other options like mGBA or VBA-M. All of them support the same SRAM save data the cartridge uses.
 
  
 
==Emulation issues==
 
==Emulation issues==
 +
[[File:Xbox_looking-good.png|thumb|250px|The pratfalls of Xbox emulation]]
 +
The Xbox is infamous in the emulation scene for being the worst case of false advertising. For the projects currently available and active there's a high barrier to entry for the effort involved, and it's the same reason why consoles using off-the-shelf hardware (or reused hardware) are easier to emulate. To users, being "basically a PC" and "x86-based" is a selling point despite that not being the case as the Xbox has a number of proprietary elements that are nothing like standard PC hardware (like the eighth-gen "x86-based" consoles). Many aspects of the Xbox's architecture aren't openly documented, making it a major pain to have to figure it all out.<ref name="ngemu">{{cite web|url=http://ngemu.com/threads/why-is-xbox-emulation-premature.132032/|title=Why is XBOX emulation premature?|publisher=ngemu|accessdate=2017-05-22|date=2010-02-15}}</ref><ref name="Microsoft1">{{cite web|url=https://msdn.microsoft.com/en-us/library/xbf3tbeh(v=vs.140).aspx|title=/LTCG (Link-time Code Generation)|publisher=Microsoft|accessdate=2017-05-22}}</ref><ref name="Microsoft2">{{cite web|url=https://msdn.microsoft.com/en-us/library/bb985904.aspx|title=Under The Hood: Link-time Code Generation|publisher=Microsoft|accessdate=2017-05-22}}</ref><ref name="FrameRater">{{cite web|url=https://www.youtube.com/watch?v=97mQcus7wFI|title=Xbox Emulation: The History & Roadblocks | A Documentary by FrameRater|publisher=Youtube|accessdate=2018-03-13|date=2018-03-08}}</ref><ref>{{cite web|url=https://www.reddit.com/r/emulation/comments/6dl94y/why_is_there_a_lack_of_original_xbox_emulation/|title=Why is there a lack of Original Xbox emulation?|publisher=Reddit|accessdate=2017-06-11|date=2017-05-29}}</ref> For example the APU, one of two sound processors on the [http://xboxdevwiki.net/MCPX MCPX southbridge chip] of the Xbox chipset, is [https://github.com/JayFoxRox/xqemu-espes/pull/24 incredibly powerful and uses complex processing steps] that are difficult to figure out using clean-room reverse engineering.
  
===Oversaturation===
+
The good news is the efforts currently underway are starting to see real effects. While it's true that Cxbx-Reloaded will have the upper hand with a primarily HLE-based approach on Windows, XQEMU will have the advantage of going by the book. XQEMU also has the potential to tap into hardware acceleration that Cxbx-Reloaded would have to write a kernel mode driver for, and SoullessSentinel wrote "''I don't think our users would like the idea of disabling security features such as driver signature enforcement and installing an untrusted kernel driver just for an emulator.''"<ref name=accel>[https://www.reddit.com/r/emulation/comments/6a958p/cxbx_reloaded_xbox_emulator_panzer_dragoon_orta/dhetzrd/ Cxbx-Reloaded (Xbox Emulator) - Panzer Dragoon Orta (In-Game)]. Reddit (2017-05-10).</ref>
[[File:1406913527173-1-.png|400px|thumb|right|'''Left:''' The default game.<br/>'''Right:''' The "Gameboy Colors" mode on [[VBA-M]].]]
+
<!-- The Nouveau project for Linux may be of help figuring out the GeForce hardware in the Xbox{{Cite}} -->
The screen on the original Game Boy Advance is not backlit and can be hard to see in some conditions. To compensate, game developers often used oversaturated colors by default so that the result would look normal on hardware. On standard computer screens, saturation is not an issue so this can look jarring and undesirable for gameplay. Some games made after 2003 may have also taken the Advance SP model into account since its screen is actually backlit. For everything else though, emudevs have given some solutions:
 
  
====No$GBA====
+
==Chihiro==
Under "Emulation Options", select "GBA Mode". There are four modes.
+
The Chihiro arcade system was produced by Sega in 2003. It consists of an Xbox motherboard (with double the RAM as with devkits) with additional boards for handling arcade I/O (Sega JVS standard). As the inner workings of the Xbox are better understood, Chihiro emulation support and accuracy will improve.
  
;GBA (no backlight):Strong desaturation
+
==Resources==
;GBA SP (backlight):Strong desaturation
+
*[http://xboxdevwiki.net/ XboxDevWiki], for Xbox hardware documentation
;Nintendo DS in GBA mode:Some desaturation
+
*[https://discordapp.com/invite/26Xjx23 Xbox Emulation Discord server] (For general and development discussions on OG Xbox emulation, especially for Cxbx-Reloaded, but also XQEMU, StrikeBox, and any legacy emulators.)
;VGA Mode (poppy bright):No desaturation
 
  
====VBA-M====
+
==Notes==
:''<small>Only applies to Windows.</small>''
+
<references group=N />
 
 
Under Options > Gameboy, you will find the options:
 
 
 
;"Real Colors":No desaturation
 
;"Gameboy Colors":Strong desaturation
 
 
 
====higan====
 
Under Settings > Video Filter, you will find the "Color Emulation" checkbox.
 
 
 
;Color Emulation off:No desaturation
 
;Color Emulation on:Gamma correction and adjusted color range.
 
 
 
====Shaders====
 
Cg [[shaders]] can be used in [[OpenEmu]] or [[RetroArch]] that adjust the colors to those of a real GBA screen, as well as other screen types. These are available in GLSL<ref name="GLSL">https://github.com/libretro/glsl-shaders/tree/master/handheld/shaders/color</ref> for OpenGL, and Slang<ref name="Slang">https://github.com/libretro/slang-shaders/tree/master/handheld/shaders/color</ref> for Vulkan.
 
 
 
For GBA, there is <code>gba-color.cg</code><ref>https://github.com/libretro/common-shaders/blob/master/handheld/shaders/color/gba-color.cg</ref>, which simulates the color profile of a GBA screen under an external light source more accurately than VBA-M or No$GBA color options. If you prefer the darker color options that those emulators have, then use <code>vba-color.cg</code><ref>https://github.com/libretro/common-shaders/blob/master/handheld/shaders/color/vba-color.cg</ref> instead.
 
 
 
There is also <code>nds-color.cg</code><ref>https://github.com/libretro/common-shaders/blob/master/handheld/shaders/color/nds-color.cg</ref> and <code>psp-color.cg</code><ref>https://github.com/libretro/common-shaders/blob/master/handheld/shaders/color/psp-color.cg</ref>, which simulates the color profiles of the original Nintendo DS frontlit screen and the PSP-1000/PSP-2000 backlit screen, respectively.
 
 
 
===Save formats===
 
Originally, when saves were implemented, nobody settled on a format, so the Visual Boy Advance devs made its own. Because other emulators often went with raw data, having to exchange different saves caused problems. The original Visual Boy Advance tries to figure out which format a given save is but often fails at it. By explicitly telling the emulator to read it as a specific type using a file called <code>vba-over.ini</code>, VBA complies. VBA-M includes this config file by default, but older revisions like VBA 1.7.2 and VBALink do not.
 
 
 
The VBA-Next and VBA-M cores in Libretro have the file baked into the binary so that it can load raw .sav files, but converts the format to its own derivative at exactly 136 KB every time, with save type info contained within the file. This completely avoids the previous issues at the cost of incompatibility with standalone VBA and most others.
 
 
 
To solve this incompatibility, Libretro devs created a
 
[https://github.com/libretro/vbam-libretro/blob/master/src/libretro/gbaconv/gbaconv.c command-line tool] to convert .srm save files made from these cores to raw .sav save data for other emulators. It takes standard input (i.e. just drag and drop the .srm onto the executable) and outputs accordingly. It can also be done in reverse. A 64-bit binary of this tool for Windows can be found
 
[https://www.mediafire.com/?6bg8ag0bjs1b7ng here].
 
 
 
==Connectivity==
 
===GBA Link Multiplayer (1~4GBA)===
 
;VBA-M: This doesn't work with old VBA versions.
 
:Just disable "Pause when Inactive", configure all four Joypads each with their own button layout, enable "Link, Enable GBA Link". Now open VBA-M again as much times needed for each player, and have them each use their separate Joypad configuration. Each player will have a separate SRAM save file.
 
;VBA Link + e-Reader:Useful if you want to use the Pokémon Battle-e Cards. Downloads and instructions reside [http://projectpokemon.org/forums/showthread.php?42433-RELEASE-VBA-LINK-E-READER here].
 
;mGBA:Select "New multiplayer window" from the menu. As you load your ROMs into each window, "Player [X] of [Y]" will appear across the title bar. This can be done for up to four players. However, multiple instances of the same ROM will share a save file.
 
;No$GBA:No information about how to get it working at this time, but the functionality also works with DS emulation, and that's how users can check out the incomplete multiplayer Wi-Fi implementation.
 
 
 
===GBA Wireless Multiplayer===
 
The [[Wikipedia:Game Boy Advance Wireless Adapter|wireless adapter]] has the ability to connect five players to each other, and includes its own software to download a subset of another player's game that runs when no cartridge is inserted. ''Pokémon Fire Red'' and ''Leaf Green'' came bundled with this accessory but it can also work with ''Pokémon Emerald'' and the ''Classic NES Series''.
 
 
 
No emulator has currently implemented this add-on. The only project whose developers put this on its roadmap is [[mGBA]].
 
 
 
===GameCube Connectivity===
 
The Game Boy Advance can also connect to the GameCube. e-Reader functionality with GC games isn't emulated as of yet, but [[Dolphin]] supports connectivity through rudimentary joybus emulation made in parallel with VBA-M. Because this emulator has fallen behind, the Dolphin team is currently rewriting the feature from scratch to better interface with more accurate emulators. They showcased early higan support in a video, but nothing has been released as of yet.
 
 
 
====Dolphin/VBA-M====
 
:''Requires VBA-M r947 or newer.''
 
 
 
# Reduce your volume. You won't want it to be high, especially with headphones.
 
# Open Dolphin and VBA-M. Make sure neither are blocked by your firmware.
 
# In Dolphin, launch the game and navigate to the area where you're asked to connect the GBA. Then, under the controller options, assign the GameCube controllers as "GBA" for whichever you need.
 
# In VBA-M, uncheck Pause When Inactive in Options > Emulator. Then, under Options > Link > Joybus Options, Make sure to "Enable Joybus Connection" is on and set "IP/Hostname" to use default settings, that is <code>127.0.0.1</code> or <code>localhost</code>.
 
# Dolphin will freeze.
 
# Open the GBA BIOS in VBA-M as if it were a regular GBA ROM. The regular splash screen will stutter a bit.
 
# Dolphin should recognize the Joybus Link by then and the GC game will detect that a GBA was connected.
 
# To connect other units, open another VBA-M instance and repeat its process.
 
 
 
Notable games that work:
 
*[https://wiki.dolphin-emu.org/index.php?title=The_Legend_of_Zelda:_Four_Swords_Adventures The Legend of Zelda Four Swords Adventures]: Both two modes available for the US/PAL version work. The third Japan-only Navi Trackers mode works as well, but the game crashes after the naming screen due to a bug in the GC/GBA connectivity.
 
*[https://wiki.dolphin-emu.org/index.php?title=Final_Fantasy_Crystal_Chronicles Final Fantasy Crystal Chronicles]
 
*[https://wiki.dolphin-emu.org/index.php?title=Billy_Hatcher_and_the_Giant_Egg Billy Hatcher and the Giant Egg]: You can download games to your GBA. Amusingly, a RAM dump from VBA-M can be opened as a functional GBA ROM.
 
*[https://wiki.dolphin-emu.org/index.php?title=Kururin_Squash! Kururin Squash!]
 
*[https://wiki.dolphin-emu.org/index.php?title=Sonic_Adventure_2:_Battle Sonic Adventure 2: Battle] (buggy)
 
 
 
Notable games that don't:
 
*[https://wiki.dolphin-emu.org/index.php?title=The_Legend_of_Zelda:_The_Wind_Waker The Legend of Zelda: The Wind Waker]: Tingle Trainer connection always fails, though some messages do display on VBA-M.
 
*[https://wiki.dolphin-emu.org/index.php?title=Mr_Driller:_Drill_Land Mr. Driller: Drill Land]
 
*Any Pokémon title
 
*lots more
 
 
 
===GBA/DS Connectivity===
 
:''Main section: [[Nintendo_DS_emulators#GBA.2FDS_Connectivity|Nintendo DS § GBA/DS Connectivity]]''
 
 
 
===e-Reader===
 
:''Main page: [[GBA e-Reader emulators]]''
 
This device can read content off e-Card paper stripes either as standalone content, or additional content to GBA/GC games. Can be thought of as DLC.
 
 
 
==Special Hardware==
 
Most of these have not been emulated as of yet. There used to be patches that could be applied to GBA ROMs with a utility like Lunar IPS (mostly from [http://bubbz.pocketheaven.com/?system=gba&section=patch No Frills]), but they're for the most part lost to time nowadays. Your best bet is to use Action Replay to emulate those.
 
 
 
===Solar Sensor===
 
====Emulation====
 
This feature has been emulated in mGBA, VBA-M and no$gba 2.6 onwards:
 
* mGBA: In the shortcuts editor, shortcuts can be configured to raise/lower the solar level incrementally or to set any particular brightness level.
 
* VBA-M: This emulator uses the keys of the lateral motion controls to change the Solar Sensor levels. You can find those keys and modify them in Options -> Input -> Configure... -> "Special" tab.
 
* no$GBA: Under '''Options/Emulation Setup''', you can find the Solar Sensor Level option. You are given the choice between only three brightness levels though: Darkness, 100 Watts, and Bright Sunlight.
 
 
 
====ROM Patches====
 
Fixes applied directly to the ROM by various scene release groups to make it compatible with any emulator/flashcard, making the in-game brightness level controllable with L+Left/Right. It's argued this makes for a better experience actually, but sadly not all releases are covered.
 
* '''Boktai 1:''' [http://www.advanscene.com/html/Releases/dbreleases.php?id=1567 JP], [http://www.advanscene.com/html/Releases/dbreleases.php?id=1145 US], <s>EU</s>.
 
* '''Boktai 2:''' [http://www.advanscene.com/html/Releases/dbreleases.php?id=1567 JP], <s>US</s>, [http://www.advanscene.com/html/Releases/dbreleases.php?id=1992 EU].
 
* '''Boktai 3:''' [http://www.advanscene.com/html/Releases/dbreleases.php?id=2048 JP Fix].
 
* Combinations of Boktai 4 JP with earlier solar sensors to get solar sensor bonuses aren't emulated yet in any DS emulator.
 
 
 
===Motion Control===
 
VBA-M has an option for Motion controls "Input, Set, Motion". It currently works with all versions of the GBC title Kirby Tilt'n Tumble, which also was a special cartridge with a motion sensor built-in to control movement in-game. But VBA-M does not support motion controls for GBA games yet.
 
====Emulation====
 
* VBA '''doesn't''' emulate this feature, and its "Motion Control" option (with keys mapped to each tilt direction) covers the GBC title Kirby Tilt'n Tumble.
 
* mGBA supposedly includes this feature but key remapping for tilt sensors is not present in the latest builds.
 
====ROM Patches====
 
Fixes applied directly to the ROM (with the Lunar IPS utility, or at runtime using mGBA or VBA-M and naming them the same as the ROM in the same directory) by various scene release groups to make it compatible with any emulator/flashcard. D-Pad controls substituting motion controls don't work as well here as they tilt it "too much" at times to be very playable.
 
* Yoshi Topsy Turvy/Universal Gravitation: [http://www.advanscene.com/html/Releases/dbreleases.php?id=1799 JP], [http://www.advanscene.com/html/Releases/dbreleases.php?id=1947 EU], [http://www.advanscene.com/html/Releases/dbreleases.php?id=2001 US]
 
* Warioware Twisted! (Patch: [http://www.advanscene.com/html/Releases/dbreleases.php?id=1682 JP], [http://www.advanscene.com/html/Releases/dbreleases.php?id=1979 US])
 
 
 
===Rumble Feature===
 
There are various rumble features found in GBA/GBC cards:
 
* '''GBC Rumble:''' GBC games which came on special cartridges with additional hardware for the rumble feature. It was actually used by dozens of releases, and some games like Tarzan 2 GBC were programmed to have rumble support but shipped on regular cartridges. Emulated by VBA-M GX (Wii-only), which also cover the dummied-out rumble games. Not emulated anywhere else.
 
* '''GBA Gyro Rumble:''' WarioWare Twisted was shipped on a cart with rumble support. It would rumble when you tilt to one "extreme". Emulated by VBA-M GX (Wii-only, functional), mGBA has this feature but it's not enabled in current builds.
 
* '''GBA Variable Rumble:''' Drill Dozer has rumble support, with variable force and speed depending on the rock type you drill through ingame. Partially emulated by VBA-M GX (Wii-only, functional), mGBA has this feature but it's not enabled in current builds.
 
* '''Game Boy Player Rumble:''' Many regular GBA games, shipped on regular cartridges, enable rumble during gameplay when played on GB Player hardware (which is essentially GBA hardware). These include Super Mario Advance 4, Summon Night Hajimari no Ishi, Mario & Luigi 1, Shikakui Atama wo Marukusuru Advance (both releases), Pokémon Pinball, as well as Drill Dozer which disables its original cartridge rumble scheme and enables this one instead. None of the emulators support this, though it's being under development for the mGBA emulator.
 
 
 
===Figurine Readers===
 
* '''Figurine Add-on:''' Legendz: Isle Of Trials, Legendz: Sign Of Necromu, Plaston Gate ([http://www.advanscene.com/html/Releases/dbreleases.php?id=1020 Fix]), Plaston Gate DX ([http://www.advanscene.com/html/Releases/dbreleases.php?id=2006 Fix]). The add-on is essentially Skylanders before it became popular.
 
 
 
===Other Add-ons===
 
Not emulated yet:
 
 
 
* Battle Chip Gate (and variations): compatible with Japanese versions of Megaman Zero 3, Megaman Battle Network 4, 4.5, 5 and 6.
 
  
 
==References==
 
==References==
{{reflist|2}}
+
{{reflist}}
  
 
[[Category:Consoles]]
 
[[Category:Consoles]]
[[Category:Nintendo consoles]]
+
[[Category:Home consoles]]
[[Category:Game Boy Advance emulators|*]]
+
[[Category:Microsoft consoles]]
 +
[[Category:Xbox emulators|*]]
 +
[[Category:Sixth-generation video game consoles]]

Revision as of 14:12, 7 August 2021

Xbox
Xbox-and-Controller-S.png
Developer Microsoft
Type Home video game console
Generation Sixth generation
Release date 2001
Discontinued 2009
Successor Xbox 360
Emulated

The Xbox is a sixth-generation console released by Microsoft on November 15, 2001. Known as the DirectXbox during development, it is notable for the specs having similarities to a PC, namely as a result of using familiar components around the x86 architecture. It had a custom Pentium III CPU at 733 MHz with 64 MB of RAM, and a custom Nvidia GPU codenamed NV2A at 233 MHz. The Xbox was often said to be the most powerful console from the sixth generation, and Sega later designed the Chihiro arcade system with the same components. It retailed at $299.99.

The Xbox was a modest seller, and helped create a brand for Microsoft that would give its successor a stronger market share in the west; despite Microsoft's best efforts the original Xbox and succeeding consoles from the company have never gained a foothold in Japan for various reasons.[1] It had a number of advantages over other sixth-gen consoles at the time; it was the only console to include a hard disk,[N 1] meaning it was the first to be able to rip CDs, and it was the first and only console of the lineup to include a unified online service called Xbox Live,[N 2] prompting Sony to create the PlayStation Network the next generation.

Early in its lifespan, the Xbox had an unusually active modding scene compared to the other consoles (often vindicated by the incredibly short warranty). Upon the first jailbreak by Andrew Huang, the scene ultimately delivered no comprehensive emulation until the mid-2010s,[N 3] where developers have continued to have issues owing to the fact that, alongside the poorly documented hardware, many of the Xbox's games either came from Windows or were then released for Windows afterward (though it does retain a few exclusives). However, the Xbox emulation scene has been resurging with two emulators at the forefront since mid-2017. Its developers continue to say there's no competition between them, as they're both open-source and have different goals and methods.[2][3]

Emulators

Note: xboxdevwiki's own list of emulators contain over 20 different emulator projects, most of which were abandoned not long after they started. Only about 2 or 4 emulators have been making progress.
Name Platform(s) Latest Version Chihiro FLOSS Active Recommended
PC / x86
xemu Windows Linux macOS 0.7.120 ~ (WIP)
Cxbx-Reloaded Windows git ~ (WIP) ~
XQEMU Windows Linux macOS git ~ (WIP)
StrikeBox Windows Linux git
Cxbx Windows git
Dxbx Windows 0.5
Xenoborg Windows r19
Xeon Windows 1.0
MAME Windows Linux macOS FreeBSD 0.264 ~
Consoles
Fusion Xbox 360 1.7
Fission Xbox One Xbox Series X/S Patch based

Comparisons

Since May 2017, serious strides have been happening in the Xbox emulation scene with Cxbx-Reloaded and XQEMU making major progress. Cxbx-Reloaded went in-game for Jet Set Radio Future with a somewhat decent framerate.[4] Many more original Xbox games have been able to get in-game and, in some cases, at decent speeds on XQEMU.[5][6]

PC

xemu
A low-level emulator by Matt Borgerson continuing much of the work done on XQEMU. Focuses on stability, performance, and ease of use. 600+ games are reported playable, See the official game compatibility list.
Cxbx-Reloaded
A fork of Cxbx that's been having a good development momentum since mid-2016. It's built for x86_64 machines and includes a ton of improvements to its HLE kernel, some from code originating in Dxbx and other related forks. While it has HLE support for the GPU and other parts (eg. audio) to make many games run fast, XQEMU's LLE implementation was introduced in April 2018 and is expected to help even further. 150+ games are playable and 450+ games ingame. See this compatibility list for more information.
XQEMU
A low-level emulator based on QEMU. It can emulate the BIOS and many games at very slow speeds but is sometimes faster than Cxbx with acceptable graphics. Audio has not been tested but has been assumed to be emulated, just not forwarded to the audio hardware for some reason. See this compatibility list that was taken from John GodGames' 2015 list, and this Google spreadsheet.
StrikeBox
Beginning low-level emulator that just initializes an x86 system and runs whatever is in the ROM. Not much works for this currently. It was uploaded to GitHub on Dec 5, 2017 by mborgerson, a well-known XQEMU contributor who in early 2018 is still focused on streamlining XQEMU's QEMU codebase. So expect more progress from XQEMU than StrikeBox in the meantime.
Cxbx
One of the first Xbox emulators, started as an ahead-of-time compiler for Xbox executables. Can boot around 56 games, with around a dozen in an already playable state. See this compatibility list.
Dxbx
A port of Cxbx to Delphi, expanded with a redesigned symbol detection engine, and many rendering improvements, a new pixel shader converter, etc.
Xeon
Can emulate Halo CE to the point where the first stage is semi-playable. The walls and ground are pitch black, and the game crashes after you complete the first stage or right after you select the difficulty on modern versions of Windows.
MAME
Existing x86 emulation in MAME has given way to an xbox driver... that they've marked overall as not working and sound as unimplemented (graphics are OK though).

Consoles

Fusion
The internal name for backwards compatibility on the Xbox 360. It supports a specific list of games that, while some work right off the bat, may need additional patches to play properly. It also requires your console to have system storage. Some games still have issues with graphical glitches and slowdowns to errors that can make standard gameplay basically impossible. There is more information and references/video(s) about this BC support here.
Fission
The internal name for backward compatibility on the Xbox One and Xbox Series X/S. With a smaller amount of supported games, likely due to issues surrounding licensing,[N 4] it allows the ones that do work to run at twice the Original Xbox's standard resolution (480p) on both Xbox One (S) and Xbox Series S consoles (up to 960p), and more than quadruple on Xbox One X and Xbox Series X consoles (up to 2160p).

Emulation issues

The pratfalls of Xbox emulation

The Xbox is infamous in the emulation scene for being the worst case of false advertising. For the projects currently available and active there's a high barrier to entry for the effort involved, and it's the same reason why consoles using off-the-shelf hardware (or reused hardware) are easier to emulate. To users, being "basically a PC" and "x86-based" is a selling point despite that not being the case as the Xbox has a number of proprietary elements that are nothing like standard PC hardware (like the eighth-gen "x86-based" consoles). Many aspects of the Xbox's architecture aren't openly documented, making it a major pain to have to figure it all out.[7][8][9][10][11] For example the APU, one of two sound processors on the MCPX southbridge chip of the Xbox chipset, is incredibly powerful and uses complex processing steps that are difficult to figure out using clean-room reverse engineering.

The good news is the efforts currently underway are starting to see real effects. While it's true that Cxbx-Reloaded will have the upper hand with a primarily HLE-based approach on Windows, XQEMU will have the advantage of going by the book. XQEMU also has the potential to tap into hardware acceleration that Cxbx-Reloaded would have to write a kernel mode driver for, and SoullessSentinel wrote "I don't think our users would like the idea of disabling security features such as driver signature enforcement and installing an untrusted kernel driver just for an emulator."[12]

Chihiro

The Chihiro arcade system was produced by Sega in 2003. It consists of an Xbox motherboard (with double the RAM as with devkits) with additional boards for handling arcade I/O (Sega JVS standard). As the inner workings of the Xbox are better understood, Chihiro emulation support and accuracy will improve.

Resources

  • XboxDevWiki, for Xbox hardware documentation
  • Xbox Emulation Discord server (For general and development discussions on OG Xbox emulation, especially for Cxbx-Reloaded, but also XQEMU, StrikeBox, and any legacy emulators.)

Notes

  1. The PlayStation 2 also had a hard disk accessory, but the Xbox had it built-in on all models. Consoles in the seventh generation and onward began to include internal storage in varying forms.
  2. The Dreamcast had Sega Net in North America and Dreamarena in Europe, but Xbox Live was the same for all regions.
  3. The Xbox would have been too difficult to emulate at the time anyway as its specs often rivaled that of consumer PCs, and it was alleged that many developers received legal threats from Microsoft to dissuade them from trying.
  4. Which can be a number of reasons, including but not limited to developers and publishers going defunct, movie and toy tie-in licenses for branded content expiring, and music royalties.

References