Jump to content

All Activity

This stream auto-updates

  1. Past hour
  2. @user57 Give me the assembler code of the emulator and I test. After 1 day of work on this few lines, I think, now I understand how this function works. But to emulate it, is another hard job Dietmar
  3. you making the same mistake that command sets flags, and react if the compare was correct or not there 2 problems i can certainly tell in the first step cmpxchg can have 2 results (if equal it makes the mov if not it makes the mov to a register) (and it should not do that because it has to compare 64 bits) if you have 32 bits with the compare it reacts already to the 32 bits (the other 64 bit are ignored) then the following happens : the flags are lost and the reaction - for equal 32 bit already reacted or not then you do the code again but here sits the same problems now the flags get changed a second time (and it should not) the compare depending if equal reacts to the next 32 bit (while igoring the first 32 bit) if that compare was equal it sets the values and if not it sets no values (but you need the 64 bit) the flag registes (ZF) is that readed as if the first 32 bits are not there with other words the results are gambled up the solution looks not that hard to me you need 2 compares to see if the wanted to compare 64 bits are equal before you set the 64 bits reactions if those 2 compare where equal you set the values, in the other case you need an extra reaction to set the other case the reaction stores them into EDX and EAX (the flag should still be activ, unless you start to use a command that affect flags) cmp edx and eax (destination operand) if equal store ECX EBX to destination operand (The destination operand is an 8-byte memory location) // CMPXCHG8B - 32 bit emulator cmp dword ptr [ebp],eax // eax suppose to be the low part jne skip_and_load_edx_eax cmp dword ptr [ebp+4], edx // edx suppose to be the high part jne skip_and_load_edx_eax // 64 bits where equal, change with ECX and EBX mov dword ptr [ebp], ebx // suppose to have the low part mov dword ptr [ebp+4], ecx // suppose to have the high part jmp end_of_CMPXCHG8B // they where not equal do as the command is described and load those to EDX and EAX skip_and_load_edx_eax: mov eax, dword ptr [ebp] // suppose to be the low part mov edx, dword ptr [ebp+4] // suppose to be the high part end_of_CMPXCHG8B: // CMPXCHG8B - 32 bit emulator end this code should replace the code after : loc_40B0BE: // emulator code here loc_40B0CD: <--- at this place mark " end_of_CMPXCHG8B:" // notice i could not test that command yet if the order is right (like upper and higher parts) it might said something about the upper and lower part but as i remember right you never can be exactly certain about this (in memory if you have 11223344 - the 44 are the bits that control the high values (very old architecture stores that differently too - but that we dont have even in a 486) if that dont work i certainly can fix this , i need a test to make certain the command reaction the command description however says EDX and ECX contain the high part https://www.felixcloutier.com/x86/cmpxchg8b:cmpxchg16b if different: // CMPXCHG8B - 32 bit emulator cmp dword ptr [ebp],edx // if different edx suppose to be the low part jne skip_and_load_edx_eax cmp dword ptr [ebp+4], eax // if different eax suppose to be the high part jne skip_and_load_edx_eax // 64 bits where equal, change with ECX and EBX mov dword ptr [ebp], ecx // if different ecx has the low part mov dword ptr [ebp+4], ebx // if different ebx has the high part jmp end_of_CMPXCHG8B // they where not equal do as the command is described and load those to EDX and EAX skip_and_load_edx_eax: mov edx, dword ptr [ebp] // suppose to be the low part mov eax, dword ptr [ebp+4] // suppose to be the high part // your 55667788 example say so end_of_CMPXCHG8B: // CMPXCHG8B - 32 bit emulator end
  4. Hi mackid1993, Thank you for your donation of 5.00 USD. We look forward to improving the forums with your donation. Thanks MSFN
  5. Yesterday
  6. So I found a nasty Dark Magic edge case when taking ownership of a file. This doesn't happen when Dark Magic is disabled. I've tested this in Directory Opus. When the error is dismissed Directory Opus is left in a completely frozen state and needs to be killed. This also happens with Explorer which also causes a freeze which requires an Explorer restart.
  7. Looks like mica acrylic to me, do you have Dark Magic on? There have been some changes recently with that. Edit:
  8. Install the extension SQLite Manager 0.8.3.1 from the Classic Add-ons Archive! This extension can manage sqlite files such as your webappsstore.sqlite inside New Moon. BTW, my file is only about 12 MB. With SQLite Manager 0.8.3.1, you can view all entries, add new ones, edit or delete old ones. My webappsstore.sqlite files in different profiles are of different sizes from 96 KB up to 12 MB.
  9. Never heard of it. Though they have clearly been around for a while. Had to look it up, I've visited California but still have never heard of it.
  10. Hello Since version 3.7.7 (or before) the tooltips of the icons in the systray are "bigger", I would like to return to the same as with previous versions SAB 3.7.2 : SAB 3.7.7 : There was a registry key to change this, I believe If yes, which one is it ? Thanks
  11. My NM27, NM28, Mypal27, and St52 are all the same exact size as far as my "webappsstore.sqlite" --
  12. Sorry, it was already commented above...
  13. Ok I installed back v368.81 with 45 edited inf files, 3dmark2001se finalized benchmark without freeze issue but need to test more. it doesnt always freeze at first tests. Score: 40818 (better than v344.75) my results: EDIT: Just installed NFS Most Wanted, while launching game nv4 display driver stopped responding, freezed, had to hard reset the pc. EDIT2: This time I turned off MSI Afterburner and Riva Tuner (latest version) and launched NFS Most wanted and played fine but while benchmarking 2nd time with 3dmark2001 freezed again. seems modified v368.81 is not good either.
  14. Wow, maybe they aren't removing the code? I'm wondering if it's still there because they just can't remove it due to some sort of old Vista spaghetti code keeping it hidden there. Hence the feature flag to break it and not just stripping it out like they did with the system tray. There must be something that will break if they remove it otherwise it would have been gone already OR they realize that their most dedicated users still like it and it's not harming anything so they are throwing us a bone. One of the two. It probably doesn't help that there's yet another new person in charge of Windows and Surface. If they'd just add small taskbar buttons and provide some API to allow for overlays on the taskbar so apps like Traffic Monitor and NetWorx work correctly and don't have icons overlap them I'd use the Win 11 taskbar. If it is removed maybe it's a possibility to mod the new taskbar and make it better instead of a full rewrite if a full rewrite is even possible given the complexity.
  15. @Mark-XP or eax, eax ; If eax was zero, the zero flag will be set. If eax was non-zero, the zero flag will be cleared Dietmar
  16. Install the extension SQLite Manager 0.8.3.1 from the Classic Add-ons Archive! This extension can manage sqlite files such as your webappsstore.sqlite inside New Moon. BTW, my file is only about 12 MB.
  17. good. fixed wrong second screen workspace 🫠 one problem but i don t know if it comes from windows or from startallback but when connect and disconnect devices the navigation pane does not refresh /update. (this happen in Canary)
  18. You mean it's in the hands of Shakey's Pizza? Shakey's Pizza bought Microsoft?
  19. or eax, eax - what does that do? Is this ment to initialize the Flags OF, CF or modify the SF, ZF, PF Flag!
  20. My "webappsstore.sqlite" in New Moon is 150 MB. When I view it with a text editor, I see it full of JavaScript and keywords apparently related to advertising from Shopify and similar domains. This is a ridiculous amount of data. Can I see in the browser to whom this data belongs to, and clear it without deleting this file in its entirety?
  21. Update notification! As already reported , the Root Certificates have been updated and are now from 26-03-2024. Here are screenshots of both updaters: Therefore, my self-created, offline Root Certificate Updaters in the section 11.2.4. Downloads related to Root Certificate Updates (in the first post of this thread) will also be updated if I can somehow trick this crappy forum post editor. Cheers, AstroSkipper
  22. 26090 is out with no watermark. Anyone running it with SAB... how is the taskbar looking?
  23. @jumper I do not think, that always the register is set to ECX = Null. Only, when the first 2 highest bytes are also 00 00. Because in this case, my fake function from above would always work. Can you please explain me in detail, what you think about the work of ExInterlockedFlushSList. "If an SList node is present, it must be processed (Next and Depth zeroed). A pointer to the next node in the list must be returned." This sounds for me, that something of the original list hast to be given back to the calling function via the register ECX, means ECX not Null, if a real list exist. But from the code I see, that the last 16 bits of ECX for sure are set to zero, mov ebp, ecx means, that now the original pointer in ecx to the list is rescued is ebp. mov edx, [ebp+4] means, that this original content in ram, to what the pointer shiftet by 4 bytes = 32 bit point and now those bytes are stored in edx. In EBP is the original pointer stored from ECX. It points to the lowest byte of the 64 real bits in Ram. So, now EDX contains the whole higher 32 bits (not a pointer) from the original 64 Bit in Ram. In EAX is with mov eax, [ebp+0] the original content of the 32 lower bits, from original 64 bits in Ram. With mov ecx, edx are now in ECX also the 32 higher bits from Ram (no pointer any more, Adress to 64 bit is lost). With mov cx, bx now for the lowest 16 bit in ECX are set to 00 00, because EBX is empty at all. What is now in ECX? The 2 Highest Bytes from the original 64 bits in Ram, with 00 00 at its end. in [EBP+0] is still the Pointer to the lowest byte in ram, but with [ ] it becomes the real 64 original bit in Ram. Now, the lower 32 bit from the original 64 bit in Ram are compared with the content of EAX. In EAX are also the 32 lower bits, so the same bits as at the adress of [EBP+0]. The lower half of the 64 but list in memory is filled with 00 00 00 00, because EBX= 00 00 00 00. The upper half of the 64 bit list in memory stays untouched. So, no loop at all, the Zero flag is set. But ECX = 2highest bytes from the original 64 bits in ram, followed by 00 00. Even no value is direct returned from this function, ECX contains the 2 highest Bytes from original 64 bits in ram. EBP and EBX are set from the stack back to there original value before the function is used. In EAX are still the 32 lower bits from the original 64 bits in Ram. in EDX are still the 32 higher bits from Ram. So, the Adress (Pointer) to the 64 bit in Ram is lost. Also the real 64 bit list keeps only her upper 32 bits. The lower 32 bits of this list becomes 00 00 00 00. So, where is flush? The pointer to the 64 bit in ram is complete destroyed. A simulation of cmpxchg8b has to show exact those values in all the registers as here. This can be testet by hand.
  24. Fantastic! So it just works? At such high resolution? Did you patch it in any form?
  25. Now for someone who can try to make an iceberg for lost Windows software made in the 1990s til the early-2010s. One has to find more to fill in the iceberg to begin with.
  26. According to Device Manager, device id is "PCI\VEN_10DE&DEV_128B&SUBSYS_85E71043&REV_A1\4&2E5EAC9&0&0008" According to GPU-Z, device id is "10DE 128B - 1043 85E7" What i used in nvaci.inf in v344.75 : %NVIDIA_DEV.128B% = Section001, PCI\VEN_10DE&DEV_128B&SUBSYS_85E71043&REV_A1 and NVIDIA_DEV.128B = "NVIDIA GeForce GT 710 what could be correct line(s) for my exact device id? NOTE: attached nvaci.inf is based on 368.81 as an example. there only GT710 i see is > NVIDIA_DEV.1140.0841.1025 = "NVIDIA GeForce 710M" nvaci.inf
  1. Load more activity
×
×
  • Create New...