Exophase
Nothing good will ever come of Exophase.
Linux to Linux usermode CPU emulation (x86 Linux executable to ARM Linux executable) then Windows emulation via WINE is the easiest migration path if it can work at all.
Moving to ARM WINE + user mode emulation combined together is a logical improvement but it's not a small amount of engineering. It probably wouldn't win you much if your binary translation is any good because you'd only be improving the performance of the wrapper code from Windows to Linux.
Emulating a Windows PC directly via QEMU is an inferior solution for a number of reasons.
1) It requires system mode emulation which removes a lot of assumptions you can make about the platform. Worst is that you can't use the host's address space abstraction to allocate memory since you must be in control of the whole 4GB. It also means having to emulate things like implicit segments (CS/DS/ES/SS) for all memory accesses. System mode emulation also requires emulating a lot more instructions that aren't normally used in user applications so it's a lot more work.
2) You have to emulate the whole PC at a low level, which puts a lot more processing burden on providing things like video cards, sound cards, harddrives, etc instead of providing high level interfaces to these resources.
3) You have to emulate the OS's functionality at a low level instead of at a high level which has a greater processing burden as well.
4) QEMU isn't at the pinnacle of binary translation performance. If you only have to worry about writing a user mode binary translator and don't have to emulate any system mode functionality, hardware, or even memory, then writing a new x86 to ARM dynamic recompiler is not that much work and more effort can be spent on optimizing it. The requirements shouldn't be much different from M-HT's static recompiler, which attains 40-50% native speed on at least one test and contains almost no analytical optimization save for flags. This should give an indication of what you can achieve relative to QEMU's current performance.
Translating from x86 Linux to ARM Linux should be relatively straightforward, at least for getting enough software going. Translating from OGL to OGL ES may be another story, but we do have people working on wrappers right now.
Moving to ARM WINE + user mode emulation combined together is a logical improvement but it's not a small amount of engineering. It probably wouldn't win you much if your binary translation is any good because you'd only be improving the performance of the wrapper code from Windows to Linux.
Emulating a Windows PC directly via QEMU is an inferior solution for a number of reasons.
1) It requires system mode emulation which removes a lot of assumptions you can make about the platform. Worst is that you can't use the host's address space abstraction to allocate memory since you must be in control of the whole 4GB. It also means having to emulate things like implicit segments (CS/DS/ES/SS) for all memory accesses. System mode emulation also requires emulating a lot more instructions that aren't normally used in user applications so it's a lot more work.
2) You have to emulate the whole PC at a low level, which puts a lot more processing burden on providing things like video cards, sound cards, harddrives, etc instead of providing high level interfaces to these resources.
3) You have to emulate the OS's functionality at a low level instead of at a high level which has a greater processing burden as well.
4) QEMU isn't at the pinnacle of binary translation performance. If you only have to worry about writing a user mode binary translator and don't have to emulate any system mode functionality, hardware, or even memory, then writing a new x86 to ARM dynamic recompiler is not that much work and more effort can be spent on optimizing it. The requirements shouldn't be much different from M-HT's static recompiler, which attains 40-50% native speed on at least one test and contains almost no analytical optimization save for flags. This should give an indication of what you can achieve relative to QEMU's current performance.
Translating from x86 Linux to ARM Linux should be relatively straightforward, at least for getting enough software going. Translating from OGL to OGL ES may be another story, but we do have people working on wrappers right now.