(04-01-2014, 11:24 AM)hlide Wrote: just my two cents...The functions imported by Xbox 360 titles are kernel functions, which means you don't have access to most of their Win32 equivalent from user-land (not to mention you'll have a hard time getting it to work with Linux, OS X and mobiles OSes this way). And that's only for basic system functions: I/O, concurrency, etc.
dashboard is probably an xbe, so it doesn't imply Cxbx is a low level emulator. As far as I know, xbox 1rst generation is more or like a Windows having DirectX, so it shouldn't be too complicated to run an xbe if you can map the system calls through the host Windows and DirectX. In fact, it is more easier than Wine. And as far as I know this is the strategy used in Xenia minus the fact you need to interpret/dynarec PPC code (but win32 functions are so similar that you almost need only to reroute XBOX360 win32 functions to Windows 8 win32 functions).
The DirectX code cannot be mapped either as DirectX is statically linked. All you get are the system calls (and there are only a handful of them) that the DirectX library makes to the kernel. Basically you have one function that receives all the draw data at once. Of course you could have some heuristics to detect which DirectX functions it was in the first place, but as the SDK has evolved quite a bit over time, that means an awful lot of signature matching. And in the end, forcing you to go through one single place makes it possible to get better performance out of it anyway.
edit: also, if I remember correctly, isn't the emulator that does what is mentioned in the previous posts called Xeon or Xenosomething?