reboot12 Posted September 5, 2024 Posted September 5, 2024 (edited) On 4/22/2024 at 11:11 AM, George King said: When I decide to publish, then Yes. Now they are private only. I do not know how in the v45 version but in DP_Ported_DriversCollection_v44.7z many x64 drivers do not install because .inf files are incorrect - I tested only NVMe: Generic_NVMe_1.3.1014.00, Generic_NVMe_1.5.1200.00, Generic_NVMe_10.4.49.0 - have universal HW ID: PCI\CC_010802 but errors in .inf files Samsung_NVMe_3.3.0.2003, IaNVMe_4.4.0.1003 - no compatible HW ID: PCI\CC_010802 The only one that can be installed and works on real hardware (but not in VMware) is Generic_NVMe_6.1.7601.23403 because it has a universal HW ID in the .inf file: %PCI\CC_010802.DeviceDesc%=Stornvme_Inst, PCI\CC_010802 Edited September 5, 2024 by reboot12
George King Posted September 6, 2024 Posted September 6, 2024 @reboot12 Thats possible in v44. Samsung and Intel NVMe drivers are only for their devices. No need to handle them as Generic. I will test v45 soon too on real HW, but I think in past I have already polished them with @Andalu
pappyN4v2 Posted December 6, 2024 Posted December 6, 2024 Bought an Intel for the first time in over a decade. Patched in the TSC frequency fix that should be used after the PmTimer is patched With CPUz started and WinTimerTester running a test I see the known clock drift problem. Ryzen does not have the issue so I wasnt able to test it until now. I'm assuming still no fix with windows patch or BIOS? For now, I use classic XP era Dimension4 time to keep sync. Like with XP, add shr to shift right, value is 0A hex or 10 decimal, so 2^10=1024 https://msfn.org/board/topic/183489-windows-xp2003-x32-on-modern-hardware-faq/page/4/#findComment-1235566 x64 hal.dll 5.2.3790.6912 https://ufile.io/j28adslm PmTimer @38881 73 -> EB @40186 73 -> EB TSC frequency @F890 74 0C 65 48 8B 04 25 C0 00 00 00 48 89 01 0F 31 48 C1 E2 20 48 0B C2 C3 CC CC CC CC CC CC CC CC -> 74 10 65 48 8B 04 25 C0 00 00 00 48 C1 E8 0A 48 89 01 0F 31 48 C1 E2 20 48 0B C2 48 C1 E8 0A C3 in KeQueryPerformanceCounter ========================================= 74 0C jz short loc_XXX 65 48 8B 04 25 C0 00 00 00 mov rax, gs:0C0h 48 89 01 mov [rcx], rax 0F 31 rdtsc ;loc_XXX 48 C1 E2 20 shl rdx, 20h 48 0B C2 or rax, rdx C3 retn change to ========================================= 74 10 jz short loc_XXX 65 48 8B 04 25 C0 00 00 00 mov rax, gs:0C0h 48 C1 E8 0A shr rax, 0Ah <--------- 48 89 01 mov [rcx], rax 0F 31 rdtsc ;loc_XXX 48 C1 E2 20 shl rdx, 20h 48 0B C2 or rax, rdx 48 C1 E8 0A shr rax, 0Ah <--------- C3 retn
reboot12 Posted December 8, 2024 Posted December 8, 2024 (edited) @pappyN4v2 I test your patched hal.dll - this is OK? Edited December 8, 2024 by reboot12 1
pappyN4v2 Posted 1 hour ago Posted 1 hour ago Earlier I mentioned that modern Intel was a lot faster in a specific software compared to modern AMD. After investigating, turns out that the issue is not with XP/XP64 on modern hardware, but with the company compiler the program was created with. Back in the XP era, a compiler from a certain lawsuit happy company compiled in such a way so that CPUID was checked, and if the cpu was not from that company, lets say AMD, then it used basic instruction set only instead of SIMD (MMX/SSE/SSE2/etc...) https://www.felixcloutier.com/x86/cpuid snippet here is just after cpuid was run and loaded ebx,edx,ecx into memory, you can see the vendor identification string being compared to the memory locations cmp [ebp+...], 75 6E .. .. h if it matches then flag is set to "1" mov eax, 1 if cpu was does not pass vendor identification string, then it sets flag to zero xor eax,eax code continues on to test if flag was set to 1, and if it was continues on to the rest of the code where the SIMD occurs test eax,eax if not then goes to the end of the subroutine to the same place as if it was a "good" vendor identification string but one that reported no SIMD capabilities. cmp [ebp+..], 0 jz loc_5431EC To fix problem, you can search in IDA for the 3x 4 character grouping starting with 756E.... and replacing the first conditional jump JNZ "75 xx" with an JMP "EB yy." so that it skips the checks and goes straight to setting the flag "mov eax,1". Fortunately the certain company compiler was not really popular for games, but more for computational/scientific software. By making the change the AMD processor got a 3x speed boost thanks to now being allowed to use SIMD instructions. 1
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now