flowrent said:
What about that Xbox emu inside Xbox 360 ?
As i understand there's an app that can read/write the contents of the hdd.
Would it be easier to reverse engineer that one or make it from scratch ?
But first ,is that possible now or the 360 has to be hacked some more ?
If you ask me, it sounds nearly imposssible. But hey, what do i know?
The simple answer would be:
-Why don't you start one?
Good question, synch
... and since you asked, let me share with you a little story, and you might want to get some popcorn, this is gonna be long and boring. One day (not too long ago), I was REALLY boerd and willing to do almost anything to pass the time sitting infront of my pc. And I got this crazy idea, it was "be the first to write an xbox emulator using low-level emulation (LLE) instead of HLE". Like I said, crazy.

arty: Infact, I actually started writing it not really knowing what I was doing. I even gave it a name, Xenoborg. As time went by, I actually decided to keep working on it. So I started by blowing the dust off of my xbox-asm software package, going back to
www.xbdev.net for non-xdk tutorials, searching for xbox-documentation, and Pentuim III docs. I even got into studying the xbox bioses, dashboard, and the xbe (Xbox executable) file format. The concept of writing an xbox emulator sounds easy because its so much like a PC, but really, it's MUCH harder than you all think (and frankly, some ways much easier). For instance, documentation on the audio codec (AC 97?), the NV2A chip, and the nForce 2 is scarce, but documentation on usb, the xbe fileformat and xfat file system is abundant. Also, there is little known about GPU boot process. This is kind of essential to xbox emulation, whether we are booting from BIOS or not. The fact that the bios is "mirrored" like 16 times is wiered enough. Also, there are many different bios versions. So far, I've worked with versions (each version represents a different XDK) like 3944, 4034, 4132 and 4627, The documented memory map appears to apply to all four of those BIOSes, but I havent messed with any others. It is possible to make a sort of "HLE bios" like the authors of pcsx2 did, but that will require some work. Not to mention the MCPX is a mystery in it self, same with the nVIDIA nForce 2 it uses. Alot of reverse engineering has been done, but there is still alot on the xbox hardware that remains undocumented. One positive thing about the Xbox is that it's kernel is very similar to a PC's Win2K kernel. The Nt* functions can be easily emulated on a high level with the existing Nt* functions contained in NtDll.dll. So the kernel should not be the problem. So far, the biggest mystery is the framebuffer. Its mapped to 0xf0000000 and goes by BGR pixel data instead of RGB, but that's about all I know atm. So far, I've been able to find only 1 doc that even breifly explains even a fraction of how the xbox's NV2A works. But I'm sure that a document on a PC's NV2A would help too, but I cant seem to find that either. Finding documentation on the right Pentium III is hard enough, and that's why I havent even begun to write a CPU core for it. I've been at it for days. At least it's a big-endian processor. But the problem remains, are there any added/removed CPU instructions? Afaik, it's all the same. The only big difference is that the Xbox's version of the PentiumIII is that it's L2 cache is 128KB and not 256KB, also it doesnt support SSE2 instructions, but SSE and MMX. But overall, emulating a standard PentiumIII 733MHz shouldn't be a big deal. I can't remember the exact name of the APU (SPU, whatever) the xbox uses. The OpenXDK documentation provides a link to that documentation. Speaking of OpenXDK, studying it's source code also helps explains some of it's mysteries. But as far as documentation goes, the best source for that is the xbox-linux homepage (
http://www.xbox-linux.org), and Caustik's xbe documentation is rock solid. There is some good stuff on xbox-scene.com too. But so far, adequate documentation on the xbox's PC-like hardware is far from complete, but its all good.
Anyway, about the emulator I started working on, it only does some xbe and bios preperations, so none of the good stuff like the CPU core, interrupts, USB/Gamepad is done yet. It uses OpenGL for graphics. Atm I don't think it really has a hope in heaven, but if you guys want I'll continue it and see where it all goes from here. And if you want, I can post the source code so you all can see what I was doing all that time (or you can just look at it just in case you don't beleive a word I just said). Let me know, and I'll decide from here, ok?