BHTY / EmuWoW

RISC NT apps on x86 NT
54 stars 3 forks source link

PowerPC, IA64 #2

Closed Torinde closed 6 days ago

Torinde commented 5 months ago

Is it possible to add support for running PowerPC and IA64 binaries on x86?

Does EmuWoW currently support 64-bit Alpha binaries or only 32-bit ones?

It seems Windows also ran on i860, Clipper, SPARC, but wasn't publicly released on those platforms, so probably there aren't a lot of binaries for them.

BHTY commented 5 months ago

It is possible. I haven't looked much into it myself, but you're welcome to open a pull request. PowerPC has a wealth of emulators and documentation and probably wouldn't be too challenging to do. IA-64 on the other hand would be, since I don't currently support emulating Win64 binaries (Alpha support is 32-bit only), and the general quality of IA-64 emulators seems more dubious to me. To your reference to the i860, Clipper, and SPARC ports of NT, to my knowledge there are no publicly released binaries compiled for those platforms. The i860 port of NT was cancelled before the Win32 subsystem was even added to NT, and the Clipper port was cancelled before NT 3.1 was finished (so an early PE format, early APIs, etc.). The only 32-bit ports of NT of any consequence are the 386, MIPS, Alpha, PowerPC, and ARM32 versions. The only 64-bit versions are AXP64, IA-64, AMD64, and ARM64. Also, without SDKs for these scrapped ports, I can't exactly do much. The AXP64 port came within an inch of release and it was done when they cancelled it, so it's feasible to work with down the road. i860 and friends are not.

Torinde commented 2 weeks ago

Xbox 360 doesn't use exactly Windows, but for an API wrapper (similar to this for Xbox One) it may be useful to get also PowerPC 64-bit support.

BHTY commented 6 days ago

You're missing the point of EmuWOW... the Xbox 360's APIs are significantly different from those on standard desktop Win32 and would require considerable rearchitecting of EmuWOW, and moreover, it's not something I'm interested in. I may add PowerPC 32-bit support for NT/PPC apps, but I don't at this point have interest in PPC64.

Torinde commented 5 days ago

Sorry, maybe I wasn't clear - my thought was that if EmuWOW handles the CPU emulation part, then another project for Xbox API wrapper can use EmuWOW for that and handle the Xbox part themselves.

But maybe I misunderstand and you can't have PPC64 EmuWOW at all without the Xbox specifics? By looking here I'm not certain if regular Win32 program format supports 64-bit or only 32-bit:

The following relocation type indicators are defined for PowerPC processors. The 64-bit VA of the target.

BHTY commented 5 days ago

Quite frankly, I don't see the point of adding PowerPC 64-bit support just so some other unrelated project can use it. What you're suggesting has nothing to do with EmuWOW. What's the advantage for me or for EmuWOW? If another project wants CPU emulation for the Xbox, they can write that themselves.

Of course I can't have PPC64 EmuWOW without the Xbox specifics... are you aware of a 64-bit PowerPC version of Windows NT? Technically, the emulator could be made to work (and the Win32 format supports 64-bit EXEs), but there'd be no programs to run on it.

Torinde commented 3 days ago

Clear, you're right to focus on the architectures that actually have Windows executables that you listed earlier.

lastly, a pie-in-the-sky one - RISC-V