Welcome back blueshogun..
Thanks.
The instruction timing accuracy doesn't really matter for these platforms, just so long as you don't give it too few CPU cycles - games will probably use OS functions to wait for events anyway.
What would you say is "too few cycles"?
But, don't most games use DirectX? Assuming you can isolate the DirectX calls within the executable then you can HLE this to other native calls. Of course you might not be able to handle everything, I don't really know if it has a modified DirectX or not..
This would apply to some other hardware components as well.
Pure LLE emulation might be a decent goal, but it doesn't sound very feasible.
Yeah, even though most [commercial] games use DirectX, I'd still say HLE'ing them would be a waste of time for multiple reasons. Depending on how you try to locate each DirectX call, you're going to have a nearly impossible task to complete. In order to HLE the DirectX calls, you need every XDK version ever released by microsoft, and there are lots of them and most of them are hard to get, others impossible unless you are M$. Then comes the daunting task of generating digital signatures for them all or looking in every XBE to locate them all. It's a great idea, but not worth it IMO. On top of that, it IS a superset of DirectX so not all of the APIs are the same, some are Xbox exclusive. There are also Xbox exclusive texture formats (dx9 can handle them just fine), and exclusive COM objects (i.e. IDirect3DPalette8) which are not found in PC DirectX. This is why I see that LLE is the way to go for ultimate compatibility.
I also want to emulate low level coded apps too (i.e. OpenXDK, XboxASM, non-xdk, custom xbes, Xbox-Linux, etc.). I want my emulator to be complete so that everything can be emulated. Another reason why I want to LLE the GPU is to help the open source linux NVIDIA drivers such as Nouveau. This way I can to those driver devs in return with possibly full support for GeForce 3 cards and contribute to the xbox homebrew app scene.
So either way you look at it, at this time whether you're using HLE or LLE, we're at a loss-loss situation, and I have chosen LLE (and I also wanted to be the first to do it).
Can probably be HLE'd at the file system level.
That's the plan.
But does the kernel itself need to be emulated, so to speak? Again, via HLE; only the system call functionality is interesting (and perhaps, only a subset that games actually use, at least to start out with)
If emulating with pure LLE then this won't come into play at all (neither will the BIOS), you'll just need the proper images.
Yes, the kernel needs to be emulated. There's alot of kernel functions and games use a million and one different combinations of them all. None of them can be ignored for comatibility's sake. And if you ask me, not all of them can be HLE'd properly.
HLE should also make these details irrelevant.
Yeah, but I want them LLE'd for certain reasons.
Should only be relevant for emulating homebrew, probably.
And BIOS emulation.
I don't think that this will matter no matter how you emulate it.
It does because every BIOS revision is specific to a certain Video Encoder.
Again probably not relevant for pure LLE.
VERY relevant for both HLE and LLE.