BizHawk icon indicating copy to clipboard operation
BizHawk copied to clipboard

[Feature Request] WoA ARM64 Support (transition to .NET 5.0 and UWP).

Open jonshipman opened this issue 3 years ago • 4 comments

Looking over the project, a successful transition from .Net Standard 2.0 and Framework 4.8 into .Net Core 5.0 and dropping WinForms in favor of UWP would allow successful porting into WoA.

jonshipman avatar May 06 '21 12:05 jonshipman

~~We won't be replacing WinForms when moving to .NET 5. If we do ever switch to another UI framework, it will probably be MAUI, which I assume will have ARM support.~~

edit 2021-07-16: WinForms in .NET 5 can now run natively in Windows on ARM.

see also #1415

YoshiRulz avatar May 06 '21 12:05 YoshiRulz

Waterbox core support for Arm is theoretically possible, but a big ask of its own. Are we tracking that here too?

nattthebear avatar May 07 '21 19:05 nattthebear

Looking through BizHawk source, it should be theoretically possible as well. First I'm reading about MAUI though, that sounds like a more plausible refactor path, as UWP would require a compete rewrite (as far as the WinForms components) in terms of needing to start a new VS project and copy code over.

jonshipman avatar May 10 '21 12:05 jonshipman

bump for a more simple approach, you can try box64. It essentially emulates x86_64 architecture on arm. I don't think anyone tested bizhawk yet with it.

InfamousKnight avatar May 19 '22 20:05 InfamousKnight

I tested this in box64. What hasher function is being used here?

InfamousKnight avatar Feb 04 '23 21:02 InfamousKnight

What are you referring to? I don't see any mention of a hash function in box64's docs.

YoshiRulz avatar Feb 04 '23 21:02 YoshiRulz

I'm referring to this. https://github.com/ptitSeb/box64/issues/506 It's on the bottom of the page.

InfamousKnight avatar Feb 04 '23 22:02 InfamousKnight

Oh, the libbizhash error you posted in https://github.com/TASEmulators/BizHawk/issues/1430#issuecomment-1416395915. CPP already told you:

[...] even managed cores may use unmanaged x86-64 code (mostly blip_buf for audio resampling), and loading a rom means going through hashers which means loading in a x86-64 library, which will not work.

It's meant to fall back to an managed implementation if the CPU it's running on doesn't support accelerated instructions, but of course the detection code is also x86 so it can't run. You could build it for ARM, properly or with stubs, or have EmuHawk catch the lib load error and treat it as though the unmanaged call returned false.

YoshiRulz avatar Feb 05 '23 09:02 YoshiRulz

Does anyone know how we can use mkbundle to run bizhawk? With this, we can run bizhawk without mono installed.

InfamousKnight avatar Mar 17 '23 02:03 InfamousKnight

RTFM.

Please only use this thread to discuss Windows AArch64 support, which with .NET Framework 4.8.1 may end up being quite simple. (future humans: go to https://github.com/dotnet/core/issues/7709 for docs.) For Linux, I won't be supporting anything other than Mono for the time being, but if anyone is having trouble with Mono on AArch64 then I'll help where I can.

YoshiRulz avatar Mar 17 '23 02:03 YoshiRulz