Apple M1 Support

言語: JP EN DE FR
2010-06-21
New Items
users online
フォーラム » Windower » Support » Apple M1 Support
Apple M1 Support
 Asura.Icilies
Guildwork Premium
Offline
サーバ: Asura
Game: FFXI
user: icilies
Posts: 227
By Asura.Icilies 2021-06-04 00:01:11  
Non programmer here clearly.

Parallels for Mac launched M1 support for Windows 10 ARM. I was just looking to run my crafting character for me to afk with and craft.

I was able to get Vanilla to work perfectly and the game runs surprisingly really well. At full 2800 x 1800 the game is staying locked right at 30.

I'm assuming Widower is x86 bound? Or is there a way around this?
I wish I knew a bit more without having to post but it is what it is. When I launch through Windower it just loops on PoL and then I also have to replace my registry keys.

- Thanks
 Cerberus.Darkvlade
Offline
サーバ: Cerberus
Game: FFXI
user: Darkvlade
Posts: 202
By Cerberus.Darkvlade 2021-06-04 11:14:06  
Not sure if this might help, what about running permissions on safe mode or take a look at this, Im not running windows on my M1 yet.

https://www.forbes.com/sites/dwightsilverman/2021/04/14/you-can-finally-run-windows-on-your-m1-based-mac-but-with-a-catch/?sh=422e20611ccb
 Asura.Icilies
Guildwork Premium
Offline
サーバ: Asura
Game: FFXI
user: icilies
Posts: 227
By Asura.Icilies 2021-06-04 11:29:47  
Yes, the game actually does work fine through Windows on the M1. Only in Vanilla launcher.

However, from what I'm reading windower would need to be x86(ARM). It seems that is likely why the game wont launch through windower. I'm not sure if this is fixable or not with my limited knowledge.
 Fenrir.Niflheim
VIP
Offline
サーバ: Fenrir
Game: FFXI
user: Tesahade
Posts: 663
By Fenrir.Niflheim 2021-06-04 13:33:22  
If you wouldn't mind, give the alpha version of windower v5 a try.
This is mostly for our sake so we can now if it works or not, I wouldn't suggest playing with it full time as it lacks many comforts you have in v4.


Idk that there is anything we can do in regard to getting v4 to work, I do not believe anyone on the team has one to fiddle with.

If you can get Microsoft's .Net 4.5 installed and working on the device windower v4 should work, web searches might be more fruitful if you attack it from that angle.
 Asura.Icilies
Guildwork Premium
Offline
サーバ: Asura
Game: FFXI
user: icilies
Posts: 227
By Asura.Icilies 2021-06-04 15:11:55  
4.5 is installed. So unfortunately this did not work. I will look for the v5 alpha now.
 Asura.Icilies
Guildwork Premium
Offline
サーバ: Asura
Game: FFXI
user: icilies
Posts: 227
By Asura.Icilies 2021-06-04 15:21:24  
So....

Windower v5 works.

Does this help narrow down anything?
 Asura.Saevel
Offline
サーバ: Asura
Game: FFXI
Posts: 9910
By Asura.Saevel 2021-06-05 03:03:03  
Your not going to get FFXI running on an ARM platform without some sort of hardware level emulation for the x86 ISA, which itself would be performance prohibitive. When we talk ISAs we're talking the language the executable binary and libraries are using, the actual CPU instructions that get run to determine if your character moves left, right or your open your inventory.

Using CFF Explorer and opening up pol.exe I can see it was created with Microsoft Visual C++ 8 and the language is Intel i386, so generic 32 bit x86 code. I run a quick disassembly on it and verify that it is indeed Intel x86 machine language in there.

This is what that looks like
Code
L_00425BA8:   push ebp
L_00425BA9:   mov ebp, esp
L_00425BAB:   push ebx
L_00425BAC:   push esi
L_00425BAD:   push edi
L_00425BAE:   push ebp
L_00425BAF:   push 0x0
L_00425BB1:   push 0x0
L_00425BB3:   push 0x425bc0
L_00425BB8:   push dword [ebp+0x8]
L_00425BBB:   call 0x43e6bc
L_00425BC0:   pop ebp
L_00425BC1:   pop edi
L_00425BC2:   pop esi
L_00425BC3:   pop ebx
L_00425BC4:   mov esp, ebp
L_00425BC6:   pop ebp
L_00425BC7:   ret 
L_00425BC8:   mov ecx, [esp+0x4]
L_00425BCC:   test dword [ecx+0x4], 0x6
L_00425BD3:   mov eax, 0x1
L_00425BD8:   jz 0x425c0c
L_00425BDA:   mov eax, [esp+0x14]
L_00425BDE:   mov ecx, [eax-0x4]
L_00425BE1:   xor ecx, eax
L_00425BE3:   call 0x422016
L_00425BE8:   push ebp
L_00425BE9:   mov ebp, [eax+0x10]
L_00425BEC:   mov edx, [eax+0x28]


See all those things that look like edp/edi/esi/ebx? Those are specific purpose CPU registers that are heavily used by the Intel x86 uArch. RISC uArch's like ARM prefer to use general purpose registers that look like r0, r1, r2 and so forth, the exact chip uArch will describe how many and what if any limitations they are.

Awhile back there was a technology created that allowed code to be compiled and then executed on any uArch, this was known as Java and it worked by having code in a half-compiled state called pseudo code. Then during execution time a special uArch native binary would finish the job during execution. Google kind of reversed engineered this Java technology and used it on Android, recent won a huge case with the Supreme Court over it. There are a few other technologies similar and I can see lots of future software being written this way. But this comes with a pretty hefty performance penalty though tuning on Linux can alleviate some of them.

TLDR;
Running FFXI on non x86 hardware isn't possible without recompiling or running on a full x86 hardware emulator like Bochs or PCEM, possibly DosBox-X.
[+]
 Asura.Wormfeeder
Offline
サーバ: Asura
Game: FFXI
Posts: 472
By Asura.Wormfeeder 2021-06-05 08:43:54  
Asura.Saevel said: »
Your not going to get FFXI running on an ARM platform without some sort of hardware level emulation for the x86 ISA, which itself would be performance prohibitive. When we talk ISAs we're talking the language the executable binary and libraries are using, the actual CPU instructions that get run to determine if your character moves left, right or your open your inventory.

Using CFF Explorer and opening up pol.exe I can see it was created with Microsoft Visual C++ 8 and the language is Intel i386, so generic 32 bit x86 code. I run a quick disassembly on it and verify that it is indeed Intel x86 machine language in there.

This is what that looks like
Code
L_00425BA8:   push ebp
L_00425BA9:   mov ebp, esp
L_00425BAB:   push ebx
L_00425BAC:   push esi
L_00425BAD:   push edi
L_00425BAE:   push ebp
L_00425BAF:   push 0x0
L_00425BB1:   push 0x0
L_00425BB3:   push 0x425bc0
L_00425BB8:   push dword [ebp+0x8]
L_00425BBB:   call 0x43e6bc
L_00425BC0:   pop ebp
L_00425BC1:   pop edi
L_00425BC2:   pop esi
L_00425BC3:   pop ebx
L_00425BC4:   mov esp, ebp
L_00425BC6:   pop ebp
L_00425BC7:   ret 
L_00425BC8:   mov ecx, [esp+0x4]
L_00425BCC:   test dword [ecx+0x4], 0x6
L_00425BD3:   mov eax, 0x1
L_00425BD8:   jz 0x425c0c
L_00425BDA:   mov eax, [esp+0x14]
L_00425BDE:   mov ecx, [eax-0x4]
L_00425BE1:   xor ecx, eax
L_00425BE3:   call 0x422016
L_00425BE8:   push ebp
L_00425BE9:   mov ebp, [eax+0x10]
L_00425BEC:   mov edx, [eax+0x28]


See all those things that look like edp/edi/esi/ebx? Those are specific purpose CPU registers that are heavily used by the Intel x86 uArch. RISC uArch's like ARM prefer to use general purpose registers that look like r0, r1, r2 and so forth, the exact chip uArch will describe how many and what if any limitations they are.

Awhile back there was a technology created that allowed code to be compiled and then executed on any uArch, this was known as Java and it worked by having code in a half-compiled state called pseudo code. Then during execution time a special uArch native binary would finish the job during execution. Google kind of reversed engineered this Java technology and used it on Android, recent won a huge case with the Supreme Court over it. There are a few other technologies similar and I can see lots of future software being written this way. But this comes with a pretty hefty performance penalty though tuning on Linux can alleviate some of them.

TLDR;
Running FFXI on non x86 hardware isn't possible without recompiling or running on a full x86 hardware emulator like Bochs or PCEM, possibly DosBox-X.


Thank god for smart people.
[+]
Online
Posts: 14420
By Pantafernando 2021-06-05 09:15:48  
There is a couple of new options available since i looked for some remote playing years ago.

Microsoft has some options for cloud Virtual Machines that you can access entirely from browser.

I just read the description of this product, but I dont see any restriction aside money, as there should be some monthly cost to renting a VM and keeping it in cloud, but thats one option that can be interesting to some.
 Asura.Icilies
Guildwork Premium
Offline
サーバ: Asura
Game: FFXI
user: icilies
Posts: 227
By Asura.Icilies 2021-06-05 10:23:29  
Asura.Saevel said: »
Your not going to get FFXI running on an ARM platform without some sort of hardware level emulation for the x86 ISA, which itself would be performance prohibitive. When we talk ISAs we're talking the language the executable binary and libraries are using, the actual CPU instructions that get run to determine if your character moves left, right or your open your inventory.

Using CFF Explorer and opening up pol.exe I can see it was created with Microsoft Visual C++ 8 and the language is Intel i386, so generic 32 bit x86 code. I run a quick disassembly on it and verify that it is indeed Intel x86 machine language in there.

This is what that looks like
Code
L_00425BA8:   push ebp
L_00425BA9:   mov ebp, esp
L_00425BAB:   push ebx
L_00425BAC:   push esi
L_00425BAD:   push edi
L_00425BAE:   push ebp
L_00425BAF:   push 0x0
L_00425BB1:   push 0x0
L_00425BB3:   push 0x425bc0
L_00425BB8:   push dword [ebp+0x8]
L_00425BBB:   call 0x43e6bc
L_00425BC0:   pop ebp
L_00425BC1:   pop edi
L_00425BC2:   pop esi
L_00425BC3:   pop ebx
L_00425BC4:   mov esp, ebp
L_00425BC6:   pop ebp
L_00425BC7:   ret 
L_00425BC8:   mov ecx, [esp+0x4]
L_00425BCC:   test dword [ecx+0x4], 0x6
L_00425BD3:   mov eax, 0x1
L_00425BD8:   jz 0x425c0c
L_00425BDA:   mov eax, [esp+0x14]
L_00425BDE:   mov ecx, [eax-0x4]
L_00425BE1:   xor ecx, eax
L_00425BE3:   call 0x422016
L_00425BE8:   push ebp
L_00425BE9:   mov ebp, [eax+0x10]
L_00425BEC:   mov edx, [eax+0x28]


See all those things that look like edp/edi/esi/ebx? Those are specific purpose CPU registers that are heavily used by the Intel x86 uArch. RISC uArch's like ARM prefer to use general purpose registers that look like r0, r1, r2 and so forth, the exact chip uArch will describe how many and what if any limitations they are.

Awhile back there was a technology created that allowed code to be compiled and then executed on any uArch, this was known as Java and it worked by having code in a half-compiled state called pseudo code. Then during execution time a special uArch native binary would finish the job during execution. Google kind of reversed engineered this Java technology and used it on Android, recent won a huge case with the Supreme Court over it. There are a few other technologies similar and I can see lots of future software being written this way. But this comes with a pretty hefty performance penalty though tuning on Linux can alleviate some of them.

TLDR;
Running FFXI on non x86 hardware isn't possible without recompiling or running on a full x86 hardware emulator like Bochs or PCEM, possibly DosBox-X.


I don't mean this disrespectful but I don't know how to else to make it clear. The game runs perfectly fine on my ARM based chip. And capped frames with no dips @ 1080P max settings for what the config allows. Windower 4 is what does not work on the chip when launching ffxi through it.

So, I can play ffxi on my M1 Mac all day if I stick with Vanilla. Or now I found out Windower 5 will launch the game just fine. I was simply inquiring why the game works but not on Windower. I've think I've pieced the information together from post here and their discord
 Asura.Icilies
Guildwork Premium
Offline
サーバ: Asura
Game: FFXI
user: icilies
Posts: 227
By Asura.Icilies 2021-06-05 12:26:08  
Windower v5

Running on Mac M1 Custom ARM Chip
Windows 10 ARM
2560 x 1600
60 FPS Limit
Parallels Virtual Software

So, to clarify. I'm launching this straight within Windows and not using any Wine etc software to run the game.

YouTube Video Placeholder


So, as long as I don't adjust anything this loads everytime.

If I adjust Bump Mapping, Super Sampling, or Mip Mappting it will crash on launch.

I'm impressed this just works natively on ARM based Windows 10. I figure this is decent information for smart people
Offline
Posts: 42689
By Jetackuu 2021-06-05 12:32:14  
You're emulating x86 code in a virtual machine, there's nothing "natively" about that. Smart people would just get a decent computer.
 Asura.Icilies
Guildwork Premium
Offline
サーバ: Asura
Game: FFXI
user: icilies
Posts: 227
By Asura.Icilies 2021-06-05 12:45:22  
Jetackuu said: »
You're emulating x86 code in a virtual machine, there's nothing "natively" about that. Smart people would just get a decent computer.

Yes I do have a main computer. This was just for fun since it just launched. Thank you for valued input.

Jetackuu said: »
here's nothing "natively" about that.

This was to clarify I'm not using any software within MacOS to run FFXI. I'm launching it within the Windows 10 ARM software.
Offline
Posts: 42689
By Jetackuu 2021-06-05 13:09:19  
Asura.Icilies said: »
This was to clarify I'm not using any software within MacOS to run FFXI. I'm launching it within the Windows 10 ARM software.

But you are: Parallels desktop. Yes and Windows 10 arm has a built in x86 emulator, you'd literally be better off using wine.

edit: on another note, ashita may run, would probably be a better option than using wv5 (currently).

Asura.Icilies said: »
Yes I do have a main computer. This was just for fun since it just launched. Thank you for valued input.
Thank you for wasting everyone's time.
 Asura.Saevel
Offline
サーバ: Asura
Game: FFXI
Posts: 9910
By Asura.Saevel 2021-06-05 15:04:45  

You didn't understand what you were reading

Quote:
Your not going to get FFXI running on an ARM platform without some sort of hardware level emulation for the x86 ISA, which itself would be performance prohibitive.

Running FFXI on non x86 hardware isn't possible without recompiling or running on a full x86 hardware emulator like Bochs or PCEM, possibly DosBox-X.

This is why I can't stand apple zombies, always thinking they know more then they really do and wanting to show it to the world.

They only understand it when other apple zombies tell them things, so here.

https://nomadic-dmitry.medium.com/apple-silicon-m1-how-to-run-x86-and-arm-virtual-machines-on-it-cdd9d9054483
 Asura.Saevel
Offline
サーバ: Asura
Game: FFXI
Posts: 9910
By Asura.Saevel 2021-06-05 15:14:19  
Pantafernando said: »
There is a couple of new options available since i looked for some remote playing years ago.

Microsoft has some options for cloud Virtual Machines that you can access entirely from browser.

I just read the description of this product, but I dont see any restriction aside money, as there should be some monthly cost to renting a VM and keeping it in cloud, but thats one option that can be interesting to some.

Steam has come a very long with casting games from one system to another, I've "played" windows games on my handheld GPD XD Plus using that technology. nVidia and AMD are working on their own solutions so the issue might soon be moote.
 Asura.Icilies
Guildwork Premium
Offline
サーバ: Asura
Game: FFXI
user: icilies
Posts: 227
By Asura.Icilies 2021-06-05 15:18:52  
Lol you all need to really learn people skills.
Apple zombie lmao. Ok dude. You good?

I appreciate the link


I’m inquiring trying to learn. I lead with my stating my own ignorance.

Still looking to understand why windower 5 works and 4 does not.
[+]
 Asura.Saevel
Offline
サーバ: Asura
Game: FFXI
Posts: 9910
By Asura.Saevel 2021-06-05 15:37:55  
Asura.Icilies said: »
Lol you all need to really learn people skills.
Apple zombie lmao. Ok dude. You good?

I appreciate the link


I’m inquiring trying to learn. I lead with my stating my own ignorance.

Still looking to understand why windower 5 works and 4 does not.

You are an apple zombie because you refuse to believe anything other then the hype and sound bytes. All your questions were answered in detail and you just ignored them because you didn't like the answers.

Like your question about Windower 4 vs 5,

Quote:
Awhile back there was a technology created that allowed code to be compiled and then executed on any uArch, this was known as Java and it worked by having code in a half-compiled state called pseudo code. Then during execution time a special uArch native binary would finish the job during execution. Google kind of reversed engineered this Java technology and used it on Android, recent won a huge case with the Supreme Court over it. There are a few other technologies similar and I can see lots of future software being written this way. But this comes with a pretty hefty performance penalty though tuning on Linux can alleviate some of them.

Again using CFF Explorer, which lets me look at the details on any executable file. Both windower.exe and hook.dll were done on Portable Executable 32 .NET Assembly, Windower 4 seems to mostly be .NET, though they might have some plugins that are still C++. Newer versions of .NET let you build binaries that are cross-platform.

Regardless the primary issue is pol.exe and ffximain.dll being done using the old ways, which means compiled into x86 binary. It would need to be recompiled or emulated in order to execute on a non-x86 CPU.

Or to put another way, if Apple ARM M1 chips could execute x86 binary, Intel would sue the hell out of Apple as the x86 ISA is proprietary IP by Intel that would need a license and they haven't handed one of those out for a very long time.
 Asura.Saevel
Offline
サーバ: Asura
Game: FFXI
Posts: 9910
By Asura.Saevel 2021-06-05 15:48:37  
So dug around and got the Toms article about this.

https://www.tomshardware.com/news/Apple-M1-Chip-Everything-We-Know

Quote:
he core drawback to the M1 chip right now is that, because it uses a different architecture and instruction set from Intel or AMD parts, it won’t be able to run x86 apps without emulating them. Developers are already on the case, with Microsoft having released a version of Microsoft Office that runs natively on M1 machines and Adobe saying that it’s working on an M1-native creative suite. The company's even already released an M1-native Photoshop, which it says runs 1.5x faster than the old version does on "similarly configured previous-gen systems." But early adopters might have to wait a bit to get the most performance they can out of their new chips.

Quote:
Finally, we reach the biggest potential drawback for the M1: Since the Apple M1 uses a completely new architecture (at least new for Macs), it can’t natively run apps designed for x86 chips. Instead, it has to emulate them. Apple’s built a tool to let users easily do this, called Rosetta 2, but running apps through Rosetta 2 means they’re going to take a performance hit.
 Asura.Icilies
Guildwork Premium
Offline
サーバ: Asura
Game: FFXI
user: icilies
Posts: 227
By Asura.Icilies 2021-06-05 15:57:08  
Your tone is so disrespectful.

I didn’t understand initially how Windows was being setup. I now understand that even though Im running windows it’s the Parallels software doing the work. Initially I though that it was just a mechanism to move back and forth between both operating system

From what I’m gathering the code for V5 is just more compatible with emulation platforms because it’s more modern.

While your tone is intolerable you did provide a bit better explanation of the platform. So I appreciate that
[+]
 Asura.Saevel
Offline
サーバ: Asura
Game: FFXI
Posts: 9910
By Asura.Saevel 2021-06-05 16:06:52  
Finally, the only reason I could see someone trying to do this is if they wanted to play FFXI on the go and all they had was their shiny new Apple Notebook, then it's Parallels and Rosetta and just deal with it. Otherwise the M1 is a typical low power ARM SOC designed for portable use. It's big seller is that Apple was willing to shell out the big bucks to TSMC's for their 5nm process before anyone else did. AMD's Ryzen 5K's are using TSMC's 7nm technology while Intel's Ice Lake release is at the "new" 10nm technology.

The size of the process node is what fundamentally determines the processors performance limit. Smaller nodes require less energy to execute the same instruction and can achieve higher transistor density's. TSMC's 5nm node is 300~400% more dense then Intel's 10nm, that is a ridiculous level of processing advantage. Of course all the demand for TSMC's technology combined with them having weather issues in Taiwan has resulted in a world wide shortage of semiconductors. Interesting note is that the other semiconductor giant is Samsung who just released their own 5nm technology node. Intel needs to get it's act together or it's going to get it's teeth kicked in, they aren't slated to release 7nm until 2022.
 Asura.Saevel
Offline
サーバ: Asura
Game: FFXI
Posts: 9910
By Asura.Saevel 2021-06-05 16:13:45  
Asura.Icilies said: »
Your tone is so disrespectful.

I didn’t understand initially how Windows was being setup. I now understand that even though Im running windows it’s the Parallels software doing the work. Initially I though that it was just a mechanism to move back and forth between both operating system

From what I’m gathering the code for V5 is just more compatible with emulation platforms because it’s more modern.

While your tone is intolerable you did provide a bit better explanation of the platform. So I appreciate that

My original post explained what was going on, you didn't listen so I went with the blunt method. All your questions were answered in the first response by people who demonstrate far greater knowledge on this topic then yourself.

Nobody cares about your feelings, if you want false approval and validation then you can get them with your buddies drinking lattes while patting each other on the back.
 Asura.Icilies
Guildwork Premium
Offline
サーバ: Asura
Game: FFXI
user: icilies
Posts: 227
By Asura.Icilies 2021-06-05 16:16:02  
Lol. Thanks for the opinion that no one asked for

I won’t get into where I disagree with you. Factually

I simple seen I could now put windows on my daily driver. It would be helpful to run my crafting character on it away from my main PC.

Or a bazaar account.

I was looking to get windower specifically for a couple crafting addons. Not your opinion of how dumb of an idea you think it is.
 Asura.Icilies
Guildwork Premium
Offline
サーバ: Asura
Game: FFXI
user: icilies
Posts: 227
By Asura.Icilies 2021-06-05 21:16:43  
Just an update.

I was able to get this working. Although I'm not sure exactly which download I was missing. I followed instructions for Ashita and the requirements and this actually fixed Windower

Potentially 4.5.2? I had 4.5 installed

https://docs.ashitaxi.com/requirements/


Microsoft .NET Framework 4.5.2

Visual C++ 2010 x86 Runtime

Visual C++ 2012 x86 Runtime

Visual C++ 2013 x86 Runtime

Visual C++ 2015 x86 Runtime

Visual C++ 2017 x86 Runtime
[+]
 Carbuncle.Kukiki
Offline
サーバ: Carbuncle
Game: FFXI
Posts: 12
By Carbuncle.Kukiki 2021-06-26 15:01:13  
May I ask how you get that performance?

I'm trying to make the game run on my M1 Macbook with Parallels but unless I disable shadows, the game is nearly unplayable in areas like Dynamis (D).

I'm using Ashita instead of Windower to launch the game, tho I don't think that should make a big difference.
Log in to post.