Welcome, Guest. Please login or register.

Author Topic: Working XBOX Emulator  (Read 6633 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline motorollinTopic starter

  • Hero Member
  • *****
  • Join Date: Nov 2005
  • Posts: 8669
    • Show all replies
Working XBOX Emulator
« on: April 01, 2006, 09:02:10 AM »
After long discussions with Team Xecuter (who produce mod chips for the Microsoft XBOX console) I have been able to unpack XBE files, which are binary executables for XBOX games and applications. I felt this presented an opportunity to learn more about the way the binaries are built and maybe write some custom XBOX software.

What I found, however, was much more exciting. Once unpacked, I was able to successfully recompile the binary in the XBOX development environment, and execute it on an XBOX, which proved that the binary could be unpacked and repacked successfully.

I then wrote an application for the Amiga which recompiles the unpacked XBE in to an Amiga PPC executable, which means an emulator is not required to execute it. This does still leave the problem that the software is unported - so it is still expecting the XBOX kernel and hardware to be there.

I realised that a potential solution would be to develop an emulation environment which loads a patched kernel image, and allows the recompiled XBE to run as a native PPC executable, while translating the requirements for XBOX hardware into Amiga equivalents.

I won't go in to technical details yet, but the upshot is that I have a working emulator. A utility patches the kernel image for use with the emulator. When run, the emulator executes the recompiled XBE and allows it to run as a native PPC executable. The modified kernel uses P96 instead of the XBOX GPU, and translates where necessary. Control of the game is achieved using a keyboard at present, but I am working on USB support. Since XBOX pads are only USB anyway, with the correct cable (or by wiring on a USB connector) you could in theory use an XBOX pad connected to a Subway/Spider USB controller to play the XBOX game. Sound doesn't work yet, but hopefully I can patch the kernel to use AHI instead of looking for the XBOX DSP chip.

Of course, it's not as simple as putting an XBOX game in a DVD drive on an Amiga and then running it. You need a modified XBOX so you can get FTP access to its DVD drive. Then you copy the files across a network connection from the XBOX DVD on to your Amiga. You also need to FTP across a kernel image. Then, once the files are on your Amiga, you patch the kernel image, run the utility which de-/re-compiles the XBE, and then it can run.

I have tested with a few games and it seems to work quite well, though obviously performance isn't as good as it is on a real XBOX. Nothing is released yet, but here is a screenshot to whet your appetite.

XBOXEmu Screenshot

--
moto
Code: [Select]
10  IT\'S THE FINAL COUNTDOWN
20  FOR C = 1 TO 2
30     DA-NA-NAAAA-NAAAA DA-NA-NA-NA-NAAAA
40     DA-NA-NAAAA-NAAAA DA-NA-NA-NA-NA-NA-NAAAAA
50  NEXT C
60  NA-NA-NAAAA
70  NA-NA NA-NA-NA-NA-NAAAA NAAA-NAAAAAAAAAAA
80  GOTO 10
 

Offline motorollinTopic starter

  • Hero Member
  • *****
  • Join Date: Nov 2005
  • Posts: 8669
    • Show all replies
Re: Working XBOX Emulator
« Reply #1 on: April 01, 2006, 01:42:35 PM »
And I thought it was so convincing  :lol:

Happy April 1st everybody  :-)

--
moto
Code: [Select]
10  IT\'S THE FINAL COUNTDOWN
20  FOR C = 1 TO 2
30     DA-NA-NAAAA-NAAAA DA-NA-NA-NA-NAAAA
40     DA-NA-NAAAA-NAAAA DA-NA-NA-NA-NA-NA-NAAAAA
50  NEXT C
60  NA-NA-NAAAA
70  NA-NA NA-NA-NA-NA-NAAAA NAAA-NAAAAAAAAAAA
80  GOTO 10
 

Offline motorollinTopic starter

  • Hero Member
  • *****
  • Join Date: Nov 2005
  • Posts: 8669
    • Show all replies
Re: Working XBOX Emulator
« Reply #2 on: April 01, 2006, 06:37:23 PM »
I should have removed that sentence, as I did actually give some technical details  :-P

I think most of what I wrote was technically feasible (given a fast enough CPU/GPU/DSP). Feel free to rip my technical description to pieces though :lol:

--
moto
Code: [Select]
10  IT\'S THE FINAL COUNTDOWN
20  FOR C = 1 TO 2
30     DA-NA-NAAAA-NAAAA DA-NA-NA-NA-NAAAA
40     DA-NA-NAAAA-NAAAA DA-NA-NA-NA-NA-NA-NAAAAA
50  NEXT C
60  NA-NA-NAAAA
70  NA-NA NA-NA-NA-NA-NAAAA NAAA-NAAAAAAAAAAA
80  GOTO 10