Protel 99se Service Pack 6 For Vista
Quote (Copy of GuntherVB's post) Ok, I just spent a long day debugging Protel 99 SE (Service Pack 6) in OllyDbg to solve the problem of not being able to load the library files in Windows 7 ('File not recognized'). The library dialog tries to concatenate the filename and path of the selected library file to obtain a full path to the library file that you want to add. But, a call to the windows function SHGetPathFromIDListA corrupts the memory where the filename is stored (it puts a zero where the string starts, which, in the null-terminated string world, means that the string is now suddenly empty). The dialog gets confused and doesn't succeed in opening the file. The call to SHGetPathFromIDListA does not do anything noteworthy, so I replaced all instructions related to that call with NOP instructions. This solved the problem.
Windows Vista Service Pack 1 (SP1) is an update to Windows Vista that addresses feedback from our customers. In addition to previously released updates, SP1 will contain changes focused on addressing specific reliability, performance, and compatibility issues; supporting new types of hardware; and adding support for several emerging standards.
So: get yourself a hex editor (I use 'HxD', it's free) and edit the 'Client99SE.exe' file. Change all bytes from offset 2690E to 26917 (= a total of 10 bytes that need to be changed) to 90.
A NOP instruction is 90 in hexadecimal, hence the change. Save the changes, run Protel 99 SE, try loading a library, should work. I will do some more testing and - if necessary - tinkering if there are still more problems. Quote Thanks, that worked well, but only fixes the library dialog for the PCB editor.
So I followed your same approach and found where to patch for the schematic library dialog as well (I don't understand why the code is duplicated, as the dialogs are pretty much identical, but anyway.) Patch offset 0x25f78 to 0x25f81 inclusive with 0x90 (original bytes were: 50 8b 45 ec 50 e8 7e c1 fd ff ) in Client99SE.exe With both these patches applied, you can add libraries to both the pcb and schematic under windows 7. Is there a list of what else is broken in Protel 99SE under Windows 7? Thanks again, Tony. Reviving a long dead issue. Thanks BrianHG - Protel 99SE works fine on my W10 installation but I'm having issues getting it to work on my W7 workshop PC. Your patch saved the day with my W10 install.
I've applied the two edits and it runs fine but does not recognise the lib files on W7 (home prem) Any clues? EDIT - After more searching I found a post claiming that if it did not work after the hex editing then changing folder view options to un-hide known extensions would fix the issue. I tried it and it worked.
As far as I can tell its all working fine now with Brians edits done + the unhide known extension option changed as per the attached screen shot. Reviving a long dead issue. Thanks BrianHG - Protel 99SE works fine on my W10 installation but I'm having issues getting it to work on my W7 workshop PC. Your patch saved the day with my W10 install. I've applied the two edits and it runs fine but does not recognise the lib files on W7 (home prem) Any clues? EDIT - After more searching I found a post claiming that if it did not work after the hex editing then changing folder view options to un-hide known extensions would fix the issue.
I tried it and it worked. As far as I can tell its all working fine now with Brians edits done + the unhide known extension option changed as per the attached screen shot.
When doing a fresh install in Win7, you run the installer with 'Administrator' privileges. (Right click on the installer and choose 'Run As Administrator') When running the service pack 6, you also need to run it with 'Administrator' privileges as well. Then when running Client99se.exe, you also need to run it with 'Administrator' privileges as well.
Miss one Administrator here, and Protel's installer or Client99se.exe wont have access to the system folder 'C: Windows ' where Protel places a bunch of old style 'client99****.ini' files it must use to function. Note that to simplify things after an install, you may right click on 'Client99se.exe', select compatibility and check the privilege level to select 'Run this program as an Administrator'. This will allow Protel99se to work fine in any Win7 variant.