hello khronokernel@Syncretic Fantastic work, both Big Sur and Monterey working!
Here's TeraScale 2 working in Big Sur nicely:
View attachment 1789657
got it but I have flash graphics where the colors are unstable!hello khronokernel
is the patch for the Ati 5000 and 6000 series already in the OpenCore Legacy Patcher?
I have a Radeon HD5730 and I'm in the High Sierra with it
I would like to test it too
it is completed with an i5-M460
Thanks for the team work
google translate
I’m curious why you think you need the SSE 4.2 emulation kext when you have a core i5 processor. Even the first generation i5 (which was based on the Nehalem Xeon used in a 2009 Mac Pro) had SSE4.2.got it but I have flash graphics where the colors are unstable!
in any case brave the community for the work done.View attachment 1795844
good morning,I’m curious why you think you need the SSE 4.2 emulation kext when you have a core i5 processor. Even the first generation i5 (which was based on the Nehalem Xeon used in a 2009 Mac Pro) had SSE4.2.
List of Intel Core processors - Wikipedia
en.wikipedia.org
You are posting on the wrong thread....just use this one, please!good morning,
I don't need to emulate the processor SSE4.2 anywhere I indicated this process!
I do need to use Correctives for Radeon HD5730 in Big Sur to enable QE/CI
sorry if somewhere the comprehension is complicated but i use google translator !!!
Ok, ThanksYou are posting on the wrong thread....just use this one, please!
I'm not trying to be clever and let's be real here, if it was possible to devise any workaround over the SSE4.1 requirement, people would running MacPro1,1/2,1 with Sierra long ago, no?Maybe a dumb question, but is there any way this could be leveraged to convince a Mac Pro 1,1/2,1 to run something later than El Capitan? My understanding was that the constraint is an SSE4.x requirement in Sierra, while SSE4.x is not available in the MP1,1/2,1's 51xx/53xx CPUs, but that the Sierra kernel did not seem to contain SSE4.x instructions. If the kernel will boot far enough to load this kext, could that be enough to get the rest of the system off the ground? Or am I misunderstanding the approach here?
Two additions to the observations: Its true that the workarounds/modifications have not yet been found to use SSE4.x capable XEONs on the 1,1 and 2,1 boards. There is still hope as the project is not completely buried.I'm not trying to be clever and let's be real here, if it was possible to devise any workaround over the SSE4.1 requirement, people would running MacPro1,1/2,1 with Sierra long ago, no?
It's not possible to install a later Harpertown/Wolfdale Xeon, board needs modifications to the hardware and firmware or workaround was ever found for the Sierra SSE4.1 requirement.
if ((x >= 'a' && x <= 'z') || (x >= 'A' && x <= 'Z') || (x >= '0' && x <= '9') || (x >= 141 && x <= 157) || ...
, or it can search for one operand as a substring of the other (like strstr(), or "find the needle in the haystack"). And, of course, it can do a simple "a == b" comparison as well. Then each of these is followed by whatever conversions or manipulations are indicated in the Imm8 argument, all in the same single instruction.rep
string instructions. I have encountered few instances of these instructions "in the wild," regardless of the operating environment (MacOS/Windows/Linux).CPUID
, and now I see that @Dayo is looking at it as well. Here's some quick background, and my thoughts on the matter.CPUID
, which allows software to query the CPU about its capabilities. CPUID
was introduced with the first Pentium in 1993, and since then, a great many features have been added, so the CPUID
instruction has had to evolve over time. Thus, a single call to CPUID
on a modern Intel CPU does not return all relevant information; one must call CPUID
repeatedly (it takes dozens of CPUID
calls to fully enumerate the CPU's functionality), using different arguments, to fill out the complete picture. To simplify things, MacOS fetches all of the CPUID
data at boot time and stores it such that a simple API call can return any desired information without having to jump through the hoops of using CPUID
directly.CPUID
information by altering the MacOS data structures and preventing MacOS from overwriting the altered data. This is effective for programs that utilize the MacOS API for retrieving CPUID
information. Unfortunately, there is no reasonable way to intercept the CPUID
instruction itself on a Harpertown/Nehalem/Westmere/Gulftown CPU; therefore, if a program directly executes the CPUID
instruction (forgoing the MacOS API), the true (unaltered) CPUID
data will be returned, and the program will behave accordingly. Spoofing such a program requires either a tweakable VM or patches to the program itself.CPUID
data to make a non-existent feature appear to be present (such as SSE4.2/POPCNT on a Mac Pro 3,1 or AVX/XSAVE on any pre-6,1 Mac Pro) is generally a bad idea. Advertising a feature that does not exist is an invitation for other software to use that feature; any kernel-level software that tries to use SSE4.2 or AVX on a MP3,1 will immediately panic, and there are known instances of both SSE4.2 and AVX code in MacOS. Worse, that panic could corrupt the disk - APFS in particular is known to contain both SSE4.2 and AVX code that will be used if those features are advertised as available; depending on timing, the resulting panic could cause data loss. Enabling the XSAVE/OSXSAVE feature flags on any pre-AVX system will cause a panic because the kernel will attempt to use the non-existent XSAVE*/XRSTOR*/XGETBV/XSETBV instructions during context switches. In short, enabling the CPUID
flags for any non-existent (and un-emulated) features sets up a disaster waiting to happen.CPUID
bits for general usage is inadvisable, but it might work. However, it's possible that the following set of conditions might exist (which is what I was asked about in PM):CPUID
instruction). This installer either uses no SSE4.2 itself, or it only uses SSE4.2 instructions emulated by MouSSE.CPUID
checks itself - it assumes that SSE4.2 is available by virtue of the fact that its installer succeeded.CPUID
features if possible. There's little or no advantage, and a whole lot of potential drawbacks.Have you looked at Intel SDE?OpenCore can spoofCPUID
information by altering the MacOS data structures and preventing MacOS from overwriting the altered data. This is effective for programs that utilize the MacOS API for retrievingCPUID
information. Unfortunately, there is no reasonable way to intercept theCPUID
instruction itself on a Harpertown/Nehalem/Westmere/Gulftown CPU; therefore, if a program directly executes theCPUID
instruction (forgoing the MacOS API), the true (unaltered)CPUID
data will be returned, and the program will behave accordingly. Spoofing such a program requires either a tweakable VM or patches to the program itself.
Have you looked at Intel SDE?
https://www.intel.com/content/www/us/en/developer/articles/tool/software-development-emulator.html
It says it can change the function of CPUID in a process. I have not check compatibility. Maybe it can't do that for Harpertown/Nehalem/Westmere/Gulftown CPU like you say.
The last supported macOS version they mention is Big Sur. @freqrider says it doesn't work with Monterey #1,113
He was able to use it to play Doom Eternal on a MacPro3,1 but that was in Windows 10
There's some videos:
https://forums.guru3d.com/threads/how-to-get-intel-sde-sse-emulator-to-work-with-cod-warzone.434306/
CPUID
; of course, those are subjective terms, and there may be use cases where my view of "unreasonable" or "impractical" doesn't apply. The Intel SDE appears to be a useful development/debugging tool, but impractical for most real-world use. It effectively single-steps through a given program, throwing an exception after every instruction is executed, analyzing the instruction to see if other action (such as emulation) should occur, performing any such actions, then repeating the process. The overhead is enormous, and for most purposes, the slowdown is intolerable (again, a subjective measure). If you just use it for a number-crunching application where you're concerned with the final output more than the runtime, it's fine - but if you want real-time interaction with some other device or a human, frustration is all but guaranteed. (I noticed that the Doom Eternal video conveniently ended before the game actually ran, and the Final Fantasy video showed in-game frame rates mostly between 0 and 5 - again, it's subjective, but a game running at 0-5 FPS is effectively unplayable, or at least certainly not enjoyable.) Of course, if you have a monster PC that's overclocked, you might get satisfactory (or at least acceptable) results - but that's not the case with our old Mac Pros. And, of course, the SDE is only useful for applications; if the kernel or a kext requires emulation, the SDE is not a solution. (To directly answer your question, I looked at SDE years ago and found it lacking, and I haven't followed up with it since then.)CPUID
instruction. Of course, that doesn't help the Harpertown/Westmere families, and it's currently irrelevant for any legacy emulation (such as MouSSE) because Ivy Bridge+ natively supports SSE4.2, AVX, F16C, and RDRAND. It sure would be handy to have that feature on our older CPUs, though.Interesting! I installed AAAMouSSE4.2.kext io loading with openCore. Perhaps it is not loading in time, creating the panic with the “J” cpuid flag. I will try loading the kect with OC and see if it makes a difference. (At my own risk!(Posting here because it's somewhat relevant, and to keep from polluting other threads)
I was recently asked in PM about spoofing the SSE4.2/POPCNT feature flags inCPUID
, and now I see that @Dayo is looking at it as well. Here's some quick background, and my thoughts on the matter.
Intel CPUs have an instruction calledCPUID
, which allows software to query the CPU about its capabilities.CPUID
was introduced with the first Pentium in 1993, and since then, a great many features have been added, so theCPUID
instruction has had to evolve over time. Thus, a single call toCPUID
on a modern Intel CPU does not return all relevant information; one must callCPUID
repeatedly (it takes dozens ofCPUID
calls to fully enumerate the CPU's functionality), using different arguments, to fill out the complete picture. To simplify things, MacOS fetches all of theCPUID
data at boot time and stores it such that a simple API call can return any desired information without having to jump through the hoops of usingCPUID
directly.
OpenCore can spoofCPUID
information by altering the MacOS data structures and preventing MacOS from overwriting the altered data. This is effective for programs that utilize the MacOS API for retrievingCPUID
information. Unfortunately, there is no reasonable way to intercept theCPUID
instruction itself on a Harpertown/Nehalem/Westmere/Gulftown CPU; therefore, if a program directly executes theCPUID
instruction (forgoing the MacOS API), the true (unaltered)CPUID
data will be returned, and the program will behave accordingly. Spoofing such a program requires either a tweakable VM or patches to the program itself.
Altering theCPUID
data to make a non-existent feature appear to be present (such as SSE4.2/POPCNT on a Mac Pro 3,1 or AVX/XSAVE on any pre-6,1 Mac Pro) is generally a bad idea. Advertising a feature that does not exist is an invitation for other software to use that feature; any kernel-level software that tries to use SSE4.2 or AVX on a MP3,1 will immediately panic, and there are known instances of both SSE4.2 and AVX code in MacOS. Worse, that panic could corrupt the disk - APFS in particular is known to contain both SSE4.2 and AVX code that will be used if those features are advertised as available; depending on timing, the resulting panic could cause data loss. Enabling the XSAVE/OSXSAVE feature flags on any pre-AVX system will cause a panic because the kernel will attempt to use the non-existent XSAVE*/XRSTOR*/XGETBV/XSETBV instructions during context switches. In short, enabling theCPUID
flags for any non-existent (and un-emulated) features sets up a disaster waiting to happen.
I can only think of one narrow instance (on a Mac Pro 3,1) where feature spoofing might be worthwhile. I have not tested this, and it may not work at all, so I advise against trying it on an essential or production system. As I've explained above, MouSSE emulates all of SSE4.2 except the PCMP?STR? instructions. I am not aware of any PCMP?STR? instructions in MacOS (although that doesn't mean they don't exist), so it's entirely possible that MacOS wouldn't panic if SSE4.2 was advertised as available on an MP3,1 with MouSSE installed. (I should note a race condition here - if SSE4.2/POPCNT is advertised, and the kernel or another kext (such as APFS) attempts to use SSE4.2 before MouSSE is initialized, a panic will result.) If some application requires only the instructions that MouSSE emulates (and none that it does not), MouSSE should be adequate to allow that software to run. Due to the unknowns and timing/race risks, setting the SSE4.2/POPCNTCPUID
bits for general usage is inadvisable, but it might work. However, it's possible that the following set of conditions might exist (which is what I was asked about in PM):
(In other words, the installer itself is the only roadblock to usage.) In this very narrow case, it might be helpful to spoof the SSE4.2/POPCNT flags just while running the installer. The installer will see the desired feature(s) as being supported, perform the installation, the feature spoofing can be removed, and the application should work correctly without the risk of panics from un-emulated SSE4.2 instructions hiding in the kernel or kexts.
- An application's installer performs a capability check for SSE4.2/POPCNT using the MacOS API (and does not directly execute the
CPUID
instruction). This installer either uses no SSE4.2 itself, or it only uses SSE4.2 instructions emulated by MouSSE.- The application being installed either uses no SSE4.2, or only uses SSE4.2 instructions emulated by MouSSE, and it does not perform any
CPUID
checks itself - it assumes that SSE4.2 is available by virtue of the fact that its installer succeeded.
That's a lot of "ifs", but while it seems unlikely, it's a plausible scenario.
In any case, I'd avoid spoofing nonexistentCPUID
features if possible. There's little or no advantage, and a whole lot of potential drawbacks.
Idea is to spoof it when the feature does exist as when being emulated but not being advertised on inquiries.I'd avoid spoofing nonexistentCPUID
features if possible.
This seems to be the case with VMWare and possibly Photoshop. This would limit usefulness of the spoofing even if the other chalenges can be overcome ... but baby steps though.If a program directly executes theCPUID
instruction (forgoing the MacOS API), the true (unaltered)CPUID
data will be returned, and the program will behave accordingly.
You seem to try to add the MouSSE kext manually? Several more steps would be needed to get that going, depending on the macOS you´re running... (correcting permissions, rebuilding kernel caches, disable SIP, allow unsigned kexts, etc.).Someone please help. I am not familiar with the terminal, but I seemed to have successfully followed the steps. The terminal lit up with text and all looked promising until I tried my card after rebooting it just sat at a white screen. What I did...put file folder titled "MouSSE_Release" in my desktop
Typed: cd ~/Desktop/MouSSE_RELEASE [PRESSED ENTER]
and then pasted the rest. I waited for a bit until text stopped and reboot my Mac. Tried it with the card and no go. I then used the MouSSEstats to check on it. It says it does not appear to be loaded. What do I do?
Thanks for the advice. I have High Sierra running on my 3,1 with the Dosdude patcher. I'm going to check that open core patcher out as well. Right now I'm looking at just going with the DosDude Catalina patcher with SSE4.2 emulation. I guess the drivers are better for RX 580 anyways...You seem to try to add the MouSSE kext manually? Several more steps would be needed to get that going, depending on the macOS you´re running... (correcting permissions, rebuilding kernel caches, disable SIP, allow unsigned kexts, etc.).
If you´re on some older OS, you might better try a kext utility (as i.e. kext wizard) to include new kext(s) to your system. On newer macOS, just use the Open Core Legacy Patcher, it will do all tasks for you and also includes the SSE emulator.
The mentioned kext tools work for High Sierra.Thanks for the advice. I have High Sierra running on my 3,1 with the Dosdude patcher. I'm going to check that open core patcher out as well. Right now I'm looking at just going with the DosDude Catalina patcher with SSE4.2 emulation. I guess the drivers are better for RX 580 anyways...