WOW Classic

Hello,
So here is my issue, I have a Mac Pro 3.1! Yes I know its old and won’t play new content, However I do know it plays Vanilla ( Tested through A private server download) I tested it because I want to play classic. It does just fine so I downloaded classic and hit play. I had an instant crash. The launcher comes up just fine and when it trys to load I get this. (9CCCC8F1-031F-400A-B2CE-8850BD0796CB)


Crashed Thread

Exception.Assertion:
Thread 0x00000307 [Stack Base: 0x000000005fc00000 Used Space: 2224/67104768 bytes]
0 0x0000000100386CD8 “com.blizzard.worldofwarcraft”
1 0x0000000100476C31 “com.blizzard.worldofwarcraft”
2 0x000000010047AFB4 “com.blizzard.worldofwarcraft”
3 0x0000000100C41493 “com.blizzard.worldofwarcraft”
4 0x0000000100C1F7C8 “com.blizzard.worldofwarcraft”
5 0x000000010000AA9E “com.blizzard.worldofwarcraft”
6 0x000000010029FACF “com.blizzard.worldofwarcraft”
7 0x00000001002A0573 “com.blizzard.worldofwarcraft”
8 0x000000010002C81F “com.blizzard.worldofwarcraft”
9 0x00007FFFB9EE6235 “libdyld.dylib” start + 1
<:Exception.Assertion>


Assertion

Exception Raised!
App: /Applications/World of Warcraft/classic/World of Warcraft.app
Error Code: 0x85100086
Exception: EXC_BAD_INSTRUCTION
Description: EXC_I386_INVOP


Registers

   rax : 0x0000000000000000       rbx : 0x00000000023e0d80       rcx : 0x0000000000000000       rdx : 0x0000000000000015       rdi : 0x00000000028e7c10
   rbp : 0x000000005fbff770       rsp : 0x000000005fbff750        r8 : 0x0000000000000000        r9 : 0x0000000002362ce0       r10 : 0x00000000fff00000
   r11 : 0x000000000000000b       r12 : 0x0000000000000000       r13 : 0x0000000000000000       r14 : 0x00000000028e7c10       r15 : 0x000000005fbff830
   rip : 0x0000000000386cd8    rflags : 0x0000000000010246        cs : 0x000000000000002b        fs : 0x0000000000000000        gs : 0x0000000000000000

 mxcsr : 0x0000000000001fa5 mxcsrmask : 0x000000000000ffff

  xmm0 : 0x0000ffff 0x00000000 0x0000ffff 0x00000000      xmm1 : 0x00000015 0x00000000 0x00000015 0x00000000
  xmm2 : 0x00000015 0x00000000 0x00000015 0x00000000      xmm3 : 0x0000ffff 0x00000000 0x0000ffff 0x00000000
  xmm4 : 0x00000000 0x00000000 0x00000000 0x00000000      xmm5 : 0x7a697246 0x61755120 0x74617264 0x54542061
  xmm6 : 0x00000000 0x00000000 0x00000000 0x00000000      xmm7 : 0x80000000 0x80000000 0x80000000 0x80000000
  xmm8 : 0x00000000 0x00000000 0x00000000 0x00000000      xmm9 : 0xffffffe0 0xffffffe0 0xffffffe0 0xffffffe0
 xmm10 : 0xffff0cff 0xffff0dff 0xffff0eff 0xffff0fff     xmm11 : 0x3f3f3f3f 0x3f3f3f3f 0x3f3f3f3f 0x3f3f3f3f
 xmm12 : 0x06040200 0x0e0c0a08 0x00000000 0x00000000     xmm13 : 0x07050301 0x0f0d0b09 0x00000000 0x00000000
 xmm14 : 0x00000000 0x0c080400 0x00000000 0x00000000     xmm15 : 0x0c080400 0x00000000 0x00000000 0x00000000

================================================================================

<Exception.IssueType> Exception
Crash
<Exception.PrimaryAssignment> .Mac Team
Exception.Summary:
ERROR #134 (0x85100086) EXC_I386_INVOP
EXC_BAD_INSTRUCTION
<:Exception.Summary>
1.13.2.30862
Retail
<Jira.JiraProjectId> 11103
<Jira.JiraProjectKey> CLASS
<Exception.ProjectId> 10
<Exception.BuildNumber> 30862
<Exception.Branch> 1.13.2
Classic
World of Warcraft
Client
Type: WoW
World of Warcraft.app
Executable UUID: 26E832F7-A628-300C-896D-FAFEC666FF69
<Wow.Platform> X64
<Exception.Platform> All Mac
User: danielstevens
Computer: Dan’s Mac Pro
Virtual Memory: 0.00 MB
Free Disk Space: 104282.84 GB
Exe Built: Jun 18 2019 11:57:51
Init: 000003FF 00000000
App Up Time: 0 days, 0 hours, 0 minutes, 7 seconds
System Up Time: 3 days, 23 hours, 40 minutes, 0 seconds
mach_absolute_time
Current Frame: 0
Current Time: 0
Current Tick: 0
0
0
Addon resource usage (not including lua memory): 0
Number of thread pool threads (Total/HighPriority): 7/6
bash
<Locale.Text> enUS
<Locale.Audio> enUS
Session Time(hh:mm:ss): 00:00:00
<SessionTime.Grouping> 00:00:00 - 00:14:59
Time in World(hh:mm:ss): 00:00:00
<TimeInWorld.Grouping> 00:00:00 - 00:00:00
Total Time in World(hh:mm:ss): 00:00:00
<TotalTimeInWorld.Grouping> 00:00:00 - 00:00:00
<Addons.HasAny.Loading> No
<Addons.HasAny.Loaded> No
0
0
Yes
<SoundSystem.Restarts> 0
<LoadingScreen.Enabled> No
<CombatLogEntry.Current> CombatLogEntry::PushEvent(casterGuidType, targetGuidType): 0, 0
Number of successful WoWConnections: 0
Battle Tag: n/a
Last Known Player: 0000000000000000, (0, 0, 0, 0)
Selected Player: 0000000000000000

CVar Settings:
<CVar.portal> US
<CVar.textLocale> enUS
<CVar.audioLocale> enUS
<CVar.hwDetect> 0
<CVar.videoOptionsVersion> 19
<CVar.gxApi> MTL
<CVar.gxMaximize> 1


Installation settings:

UID:
Expansion Level: 0
PTR: 0
Beta: 0
ProductCode: ‘WoW’


           GxInfo

MTL
<Graphics.ShaderModel> mtl_1_1
<Graphics.VendorID> 0x10DE
Device ID: 0x0000
Device Name: NVIDIA GeForce GTX 960
<Graphics.VideoMemory> 2048 MB
(IOAccelerator) nvAccelerator:
orphanedReusableVidMemoryHitRate: 89
texturePageOutBytes: 0
swapCompleteVideoWaitTime: 0
orphanedReusableSysMemoryHitRate: 0
dataBufferCount: 0
oolTexturePageInBytes: 0
textureCount: 1138
iosurfaceTextureCreationCount: 14
surfaceReadLockIdleWaitTime: 0
freeDataBufferWaitTime: 0
orphanedReusableSysMemoryBytes: 9682944
ioSurfaceReadOutBytes: 1118208
agprefTextureCreationCount: 2
orphanedReusableSysMemoryCount: 11
finishAll2DWaitTime: 0
orphanedNonReusableSysMemoryCount: 0
surfaceTextureCreationCount: 79
ioSurfacePageOutBytes: 0
surfaceBufferReadOutBytes: 0
textureReadOutBytes: 8192
gartMapInBytesPerSample: 20164608
dataBytesPerSample: 0
swapBytesPerSample: 0
surfaceCount: 589
clientGLWaitTime: 0
surfaceCopyInWaitTime: 0
surfaceCopyOutWaitTime: 0
gartMapOutBytesPerSample: 28344320
ioSurfacePageInBytes: 8192
gartCacheBytes: 33554432
vramUsedBytes: 502272000
volatileSurfaceCount: 0
vramEvictionWaitTime: 0
oolTextureCreationBytes: 0
freeToAllocGPUAddressWaitTime: 0
oolTextureCreationCount: 0
orphanedReusableVidMemoryCount: 0
orphanedReusableVidMemoryBytes: 0
context2DCount: 6
inUseSysMemoryBytes: 427061248
bufferSwapCount: 35
orphanedNonReusableVidMemoryBytes: 0
vramFreeBytes: 1645015040
contextGLCount: 4
finish2DWaitTime: 0
gartSizeBytes: 4294967296
recoveryCount: 1
stdTexturePageInBytes: 630784
agprefTextureCreationBytes: 819200
gartUsedBytes: 35393536
surfaceWriteLockIdleWaitTime: 0
finishGLWaitTime: 0
surfaceBufferPageInBytes: 0
iosurfaceTextureCreationBytes: 1335296
GPU Core Utilization: 10000000
finishCLWaitTime: 0
finishVideoWaitTime: 0
contextCLCount: 4
freeSurfaceBackingWaitTime: 0
swapCompleteGLWaitTime: 0
orphanedNonReusableSysMemoryBytes: 0
inUseVidMemoryBytes: 436744192
vramLargestFreeBytes: 1435893760
sysmemUsedBytes: 0
agpTextureCreationBytes: 9883648
GPU Memory Utilization: 100000000
agpTextureCreationCount: 55
stdTextureCreationCount: 197
stdTextureCreationBytes: 67026944
surfaceSetShapeIdleWaitTime: 0
hardwareSubmitWaitTime: 0
bufferFlipCount: 3081303
textureVolunteerUnloadBytes: 0
swapComplete2DWaitTime: 0
surfaceBufferTextureCreationCount: 0
surfaceBufferPageOutBytes: 0
hardwareWaitTime: 2398542
Device Utilization %: 1
contextVideoCount: 0
freeSurfaceSwapBufferWaitTime: 0
gartFreeBytes: 4259573760
orphanedNonReusableVidMemoryCount: 0
(IOAccelerator) AMDJuniperGraphicsAccelerator:
orphanedReusableVidMemoryHi
0
No


Thanks for any help!

Just a heads up: the pirate server experience tells you nothing about how official Classic will run, because Classic uses the Retail engine. As it stands, even though you’re playing “old content”, it will take a reasonably modern computer to do it.

And in general, comparing anything Blizzard does to pirate servers is a bad idea.

I appreciate it,
As I said I was just testing it , I don’t like private servers and don’t play on them but I figured it might be a good test platform to see if I could play wow again. Thanks for the info.

What version of macOS is your Pro running? Classic requires a newer revision of Metal if I’m not mistaken. Looks like you’ve got a Geforce GTX 960, presumably running with web drivers? That should be good enough so long as you’re running a relatively recent macOS.

For reference I’m running a hackintosh tower with somewhat similar graphics (980Ti, Nvidia web drivers, macOS 10.13.6) and Classic is buttery smooth.

EDIT: Looked around a bit and I think I found the issue. The newest macOS supported by the MacPro 3,1 is 10.11.x, which includes only an early, buggy version of Metal that isn’t sufficient to run Classic. There are ways to hack newer versions of macOS to run on that machine but I don’t know how well they work or if I can link them here.

I’m running 10.12.6 I’m thinking it’s a processor issue as I’m running 2 intel xeons

I would be very surprised if dual CPUs were the issue. WoW has run on dual CPU machines since 2004, with the multi-CPU PowerMac G4 and G5 models of that era.

1 Like

The displayed exception is a “BAD_INSTRUCTION” fault, so I would suspect a CPU generational problem (e.g., old version of Xeon not supporting later generation SSE instructions). Otherwide, there must be some other hardware fault for the CPU to be generating a spurious instruction trap.

Ya I’m guessing if the use the current engine instead of the original engine it will not have the instructions for the older xeon processors.

That looks like the same error that stopped me from running WOW on my old Mac Pro 1,1 and it is due to missing instructions sets on the old Xeon CPU’s (SSE4 if I remember correctly.)

However, the very same machine can run WOW just fine under Windows 10, so it’s only a limitation on the OSX side. Probably something tied to Metal.

It is also not just WOW, I ran into the same issue on a couple of other games as well.

I have a Mac Pro (Early 2008), MacPro3,1, running macOS Mojave 10.14.6. I tried World of Warcraft 8.2.0 but of course it crashed immediately. It created an errors log file with:

Exception Raised!
App:         /Volumes/Games/World of Warcraft/_retail_/World of Warcraft.app
Error Code:  0x85100086
Exception:   EXC_BAD_INSTRUCTION
Description: EXC_I386_INVOP

I found a fix in the MacRumors forums, post 27672176 (Aug 30, 2019) of “macOS 10.14 Mojave on Unsupported Macs Thread”.

I sent a private message to Syncretic, and received a download for a kernel extension that handles a couple of the missing SSE4.2 instructions. I loaded the kernel extension, launched WoW and it worked!

The text rendering is broken and makes the game almost unplayable, but that might be a problem with Apple’s drivers for the EVGA GeForce GTX 680 Mac Edition? The kernel extension also works for me in High Sierra to allow the game to be played but I still saw text rendering problems with both the default and Nvidia web drivers. I should verify by using the GTX 680 in an eGPU with a newer Mac. I should also try a newer Nvidia card (A Maxwell Titan X works fine in a newer Hackintosh). Someone with an AMD card may get better results.

The problem is due to library validation, which those external kexts cannot provide. Only Apple signed kernel extensions provide library validation. You will have those text issues regardless, and you’ll probably see them in a few other apps as well.

You can play the game in 10.12.6 if need be for the time being as Metal is supported there, but 10.12.6 lacks many of the bugfixes for nVidia drivers that 10.13.6 has. Not sure about 10.12.6 having library validation requirements like 10.13 and later do, but it’s something you can give a try. 10.13 and higher will forever have that validation issue due to the kernel extensions you’re using to work around missing SSE 4.2 instructions.

I don’t understand what kexts have to do with library validation. Did you make that up or do you have a source (url) for that info? What’s invalid if everything in the game seems to be working (except the text looks a little bit weird)? I think something else is going on.

The game includes SSE4.2 instructions which are executed even when running on 10.12.6 so it will crash their too. The current kext works in High Sierra and Mojave. A new kext for El Capitan should be able to make the game get further.

I’ve done tests with a Maxwell Titan X. It is faster than the GTX 680 but still has the text drawing issue (High Sierra Nvidia web drivers only). Now I need an AMD test in my MacPro3,1 and a GTX 680 test on a newer Mac.

It isn’t a made up thing. Library validation is quite real. The kernel extensions themselves will run just fine, but when an app that requires library validation is opened, you get the exact symptoms you described, primarily, nonfunctional text. Hackintosh users that use kext injection would also see the same behaviour in WoW it would seem, as injected kexts, just like kexts that aren’t signed by Apple (or notarized in Mojave and later), are unable to be validated and thus cause some apps to be essentially unusable. Little Snitch is one of those apps. If even one of your kexts is from a non-identified developer (i.e. isn’t signed), you’ll fail library validation in any app that requires it. Later versions of Safari suffer from this as well AFAIK.

The 680 on a Mac with native SSE 4.2 will have no problems. This much I can assure you. But an AMD card in the MP3,1 will exhibit the same symptoms. Not all developers use library validation, but it seems Blizzard now does. Omegall is the one that found out Little Snitch had the garbled text problem until he rearranged his clover install for his hackintosh. I would have to do the same if I moved to 10.13 or later.

Your graphics drivers themselves are fine, as is your GPU. The situation is being caused by the kernel extensions you’re using. It’s one of the “gotchas” of using a hack to force Sierra or later onto a Mac Pro 3,1.

1 Like

I’ve tried Little Snitch on my MacPro3,1 and can’t see any problems while the SSE kext is installed in Mojave 10.14.6. Is there a site/post that describes the text drawing problem? Seems to me if there is a library validation problem then an error should appear somewhere and the app should not work at all.

I’ve ran WoW without problems with the Maxwell Titan X on a Hackintosh running 10.13.6.

I’ve copied the WoW folder from the Hackintosh to the MacPro3,1 just in case the Mac Pro’s WoW folder was corrupted. The text is still drawn incorrectly.

you only see draw problems with using a kext not approved for validation and playing nice with it, which is the whole point. a good way to trigger it on 10.13.6 though is to modify the driver. for example if you patch a nvidia driver to run on an unsupported version (such as after a security update). you’d see a ton of library validation errors on a normal machine.

Most hackintosh users however, never see library validation issues because whatevergreen, or some bootloaders automatically patches kexts to avoid them.

Realistically nothing stops nvidia or even a 3rd party from releasing a driver tomorrow that works. The issue is such a driver would hing on the user running some kind of tool or hack if you will, to make it work CORRECTLY.

All of this, is VERY off topic from “WoW classic” though :stuck_out_tongue:

I think we’re on topic. The post was about WoW classic not working on MacPro3,1. The SSE kext makes it work on MacPro3,1. I’ve tested both WoW and WoW classic. Both have the same text drawing issue (most of the text is drawn but there are occasional vertical stripes of undrawn areas of a text string). We are trying to determine why this problem occurs.

And we told you why. The kexts you’re using are not signed by Apple and are causing library validation to fail. To the system, even though the kexts themselves run, to any app that is built with the latest XCode, which WoW is now, those kexts are going to appear as if they were modified. No, you didn’t modify them, you merely installed them. But the system sees them as modified and as a result will not validate them. The result is what you see in the game.

Anything built with the latest XCode is also going to require the SSE 4.2 instructions to work, requiring those kexts you got from Syncretic, but then you’re stuck with some apps that won’t work because the system can’t validate that those kexts were signed by Apple (because they aren’t and never will be).

As I said before, your GPU and drivers are both fine. The issue is the workaround for the missing SSE 4.2 instructions. The irony here is that it isn’t the code in the kexts themselves that’s the problem, it’s simply that they can’t be validated and what you see is what you get.

That example Omegall gave you with the nvidia drivers and that they could release working drivers now, but that those drivers wouldn’t work for some apps? That’s what’s happening with your kexts. nVidia has working drivers. They’ve been sitting on them for months now. They can’t release them to the public though because doing so would result in precisely the same issues as you’re having now with WoW and the kexts. All because Apple refuses to sign their drivers.

It sucks, but the MP3,1 has sadly become a dead end street with regard to modern games on OS X. WoW will still run on the Windows side on that machine, but the same machine is kind of up a stinky creek without a paddle in OS X because Blizzard has to maintain use of the latest XCode to build its games so that they can incorporate bugfixes and feature improvements to Metal that older XCode SDKs can’t provide.

How do I prove it’s a library validation problem? Is there an error or message or warning I should look for in a file or log? Is there a command line to check for such problems?

This much I’m not sure about. The only way I can think of to maybe catch any specific indication of the issue is to launch Console before you open WoW and set to All Messages, and then launch WoW. Assuming the garbled text shows up at the login screen, you can then close WoW and check console’s log.

It is entirely possible that the failure occurs silently as well. Unfortunately I can’t check because I’m neither on an OS that has validation enabled (10.13 or later) nor am I doing anything on my system that would trigger such behaviour.

MouSSE 0.91 BETA appears to fix the problem I had with text drawing incorrectly. I can run WoW on Sierra, High Sierra, Mojave, and Catalina on my MacPro3,1 without issue using Nvidia GTX 680. I haven’t tried AMD RX 580 yet. I do experience a random computer restart during game play after a few minutes or several hours of play.