<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://xboxdevwiki.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=XENON</id>
		<title>xboxdevwiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://xboxdevwiki.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=XENON"/>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/Special:Contributions/XENON"/>
		<updated>2026-04-26T11:43:45Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.28.0</generator>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=Xbox_360_Backward_Compatibility&amp;diff=7040</id>
		<title>Xbox 360 Backward Compatibility</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=Xbox_360_Backward_Compatibility&amp;diff=7040"/>
				<updated>2022-06-22T12:51:16Z</updated>
		
		<summary type="html">&lt;p&gt;XENON: Just added some clarity and fixed a typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Xbox 360 Backward Compatibility, also known as '''FU''' or '''Fusion''' is Microsoft's original Xbox emulator for the Xbox 360.&lt;br /&gt;
&lt;br /&gt;
The emulator binary is called xefu.xex. The first resource is xb1krnl which is a modified version of [[Kernel|xboxkrnl.exe]].&lt;br /&gt;
&lt;br /&gt;
=== Modifications to xboxkrnl.exe ===&lt;br /&gt;
&lt;br /&gt;
The IDEXPRDT section has been dropped, additionally the extra data from the MS-DOS header is gone.&lt;br /&gt;
&lt;br /&gt;
==== Guest to host communication ====&lt;br /&gt;
&lt;br /&gt;
The entrypoint of the kernel looks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
80030878:	56                   	push   %esi&lt;br /&gt;
80030879:	57                   	push   %edi&lt;br /&gt;
8003087a:	8d 05 4c ac 02 80    	lea    0x8002ac4c,%eax&lt;br /&gt;
80030880:	0f 3f                	(bad)  &lt;br /&gt;
80030882:	04 20&lt;br /&gt;
80030884:	8d 05 6c ac 02 80    	lea    0x8002ac6c,%eax&lt;br /&gt;
8003088a:	0f 3f                	(bad)  &lt;br /&gt;
8003088c:	04 20&lt;br /&gt;
8003088e:	8d 05 8c ac 02 80    	lea    0x8002ac8c,%eax&lt;br /&gt;
80030894:	0f 3f                	(bad)  &lt;br /&gt;
80030896:	04 21&lt;br /&gt;
80030898:	8d 05 70 94 01 80    	lea    0x80019470,%eax&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
According to [https://web.archive.org/web/20070216172548/https://www.symantec.com/avcenter/reference/Virtual_Machine_Threats.pdf this document by symantec] (Page 5, Left-hand-side) the patterns &amp;lt;code&amp;gt;0F 3F x1 x2&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;0F C7 C8 y1 y2&amp;lt;/code&amp;gt; are used for communication with the host.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! x1 !! x2 !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x20 || Seems to use eax (address) as parameter? eax points to a zero terminated list of pointers into the kernel memory [7 elements]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x21 || Seems to use eax (address) as parameter? &amp;quot; [4 elements]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x22 || Seems to use eax (address) as parameter? Seems to be some call to that address?!&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x23 || Seems to use eax (address) as parameter?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x24 || Seems to use eax (address) as parameter?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x35 || Seems to use eax (address) as parameter?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x50 || Seems to use eax (address) as parameter? &amp;quot; [3 elements]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | Cleaner list starts here {{FIXME}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x20 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x20 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x21 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x22 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x23 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x24 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x35 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x50 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || 0x00 || Seems to use eax (address) and ecx (size) as parameter? Memory is 0x00 filled before. location is 0x8002b420, size would be 0x3000&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || 0x02 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || 0x20 || Some call or callback registration to the address pointed to by eax&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || 0x21 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || 0x22 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || 0x23 || Some call or callback registration to the address pointed to by eax&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || 0x24 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || 0x25 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || 0x26 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || 0x27 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || 0x28 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || 0x29 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || 0x40 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References and links ==&lt;br /&gt;
* [http://support.xbox.com/en-US/legacy-devices/original-console/play-original-games Official compatibility list by Microsoft]&lt;br /&gt;
* [http://michaelbrundage.com/project/xbox-360-emulator/ Michael Brundages (Microsoft) page about the original Xbox emulator in the Xbox 360]&lt;br /&gt;
** [http://michaelbrundage.com/note/2005/05/15/xbox-360-emulator/ More information about the original Xbox emulator in the Xbox 360]&lt;br /&gt;
* [https://randomascii.wordpress.com/2019/03/20/exercises-in-emulation-xbox-360s-fma-instruction/ Blog post about FMA math emulation by Bruce Dawson (Microsoft)]&lt;br /&gt;
* [https://www.youtube.com/watch?v=Da_ont-2AG0 Modern Vintage Gamer: Revisiting Original Xbox Backward Compatibility on the Xbox 360]&lt;/div&gt;</summary>
		<author><name>XENON</name></author>	</entry>

	</feed>