3 ms·
These (incredibly HLE emulators for Microsoft consoles trying to live off the idea "hey, it can't be that different than Windows, right?") emulators like CXBX f
by monocasa 3y ago
These (incredibly HLE emulators for Microsoft consoles trying to live off the idea "hey, it can't be that different than Windows, right?") emulators like CXBX for the original Xbox don't tend to work super well. There's such a huge impedance mismatch between the environments expected by this code versus what actual Xbox hardware can provide (remember that games run in kernel mode and quite a few drivers are statically compiled and optimized into the games) that it's just way less surface area to go the full system emulator approach in the first place.
So what you see is some tech demo samples perfectly and maybe a couple of bespoke games working OKish, but then the complexity burden overwhelms the project and it kind of stagnates.
- Shekelphile 3y agoThis emulator isn't taking the 'CXBX approach'. CXBX does not recompile the binary and relies on common system/graphics api calls not being inlined and easily replaceable with windows equivalents, which absolutely doesn't exist in any 360 game binary for all the important things.
- monocasa 3y agoThe point is that it's still HLEing all of the imports (like CXBX). Just going the extra mile and full system emulating pays massive dividends. No, it's not close enough to Windows in super subtle ways, so don't take the bait of the import names being the same.
- Shekelphile 3y ago> The point is that it's still HLEing all of the imports (like CXBX). You have a fundamental misunderstanding here. HLE in the style that CXBX does it is not possible for 360 games as every userland library is static linked and LTCG is enabled by default (maybe required for MS cert?) for release builds. Nearly everything is inlined and impossible to replace with calls to matching windows APIs as a result. Xenia and rexdex both emulate the kernel at the syscall level and don't touch userland at all. > Just going the extra mile and full system emulating pays massive dividends. Maybe for security research and correctness purposes, it has little practical value for ps3/360 gen emulation and beyond.
- monocasa 3y agoOn original Xbox even more libraries are statically linked than 360 (they had nothing like xam.xex) and heavily inlined even without LTO because the code style at the time heavily used C macros.