Nokiamies Posted Tuesday at 02:37 PM Posted Tuesday at 02:37 PM I have been trying to get Pidgin 2.6.6, last version of Pidgin for Windows 98/ME to run on Windows 95 OSR 2.0. However during startup I get error about missing call kernel32.dll:virtualallocex As far as I am aware that call is exclusive for the Windows NT family of operating systems and does not exist on Windows 9x. On 98 it starts without error and I got some sort of theory why: Windows 95 is identified as 4.00 by version number which is same as NT. Windows 98 is 4.10. I think for some reason program thinks it is on NT4 which 2.6.6 can also be run on and fails on that that call. Is there way to spoof version for single program under Windows 95 to show it as 4.10 instead of 4.00 or other way work around that issue? Any help will be useful
jumper Posted Wednesday at 03:29 AM Posted Wednesday at 03:29 AM Only if the check looks into the registry can the version be spoofed. This is rarely the case. Is this the installer or the app itself? And what is the full, exact text of the message (including title)?
Nokiamies Posted Wednesday at 08:03 AM Author Posted Wednesday at 08:03 AM 4 hours ago, jumper said: Only if the check looks into the registry can the version be spoofed. This is rarely the case. Is this the installer or the app itself? And what is the full, exact text of the message (including title)? Installer works just fine. That is error it is creating. In English that says "file PIDGIN.EXE is linked to missing export function KERNEL32.DLL:VirtualAllocEx". What really baffles me here is that call does not exist on Windows 9x to begin with only on Windows NT and when I run it on vanilla Windows 98 or ME without kernel ex or anything else it starts up just fine. If program would rely on that call it would not start to begin with on 98. Pidgin 2.6.6 is last officially supporting 9x platform when using standalone legacy GTK runtime (https://web.archive.org/web/20110106073509/http://developer.pidgin.im/wiki/Installing Pidgin#CanIrunPidginonWindows98ME). I just though it may have something to do with fact 95 identifies itself as 4.00.1111 whereas 98 is 4.10.2222. 4.00 is also kernel number on NT 4.0 which made me assume for reason unknown executable is thinking to be under Windows NT platform. While I can use PSI 0.10 under Windows 95 to connect my Jabber server I prefer Pidgin since it support text mode file transfers if transfer proxy fails. here is files I used http://nokiamies.net/files/sw/pidgin-2.6.6-no-gtk.exe http://nokiamies.net/files/sw/gtk-runtime-2.6.10-rev-a.exe
jumper Posted yesterday at 08:42 AM Posted yesterday at 08:42 AM 98, SE, and ME do have VirtualAllocEx, only 95 doesn't. Use ImportPatcher or Dependency Walker to find all missing functions. If there are only a few, I can write a wrapper. 1
Nokiamies Posted yesterday at 09:20 AM Author Posted yesterday at 09:20 AM (edited) 40 minutes ago, jumper said: 98, SE, and ME do have VirtualAllocEx, only 95 doesn't. Use ImportPatcher or Dependency Walker to find all missing functions. If there are only a few, I can write a wrapper. Interesting, I always though only NT had it. Well anyway it seems to be only be depend on VirtualAllocEx and VirtualFreeEx calls. Here is also dwi log from dependency walker I did under Windows 95 if you need it pidgin.dwi Edited yesterday at 09:22 AM by Nokiamies
jumper Posted 5 hours ago Posted 5 hours ago I patched 6 bytes to convert the VirtualAllocEx call into a working VirtualAlloc call, 5 bytes for VirtualFreeEx to VirtualFree, and 3 bytes to update the checksum to ward off malware false-positives. Check your messages for an attachment. Pidgin 2.6.6 (unpatched) does launch on my 98 system, but isn't stable unless I enable KernelEx and set it to Win2K mode. So more patches will probably be needed.
Nokiamies Posted 2 hours ago Author Posted 2 hours ago 2 hours ago, jumper said: I patched 6 bytes to convert the VirtualAllocEx call into a working VirtualAlloc call, 5 bytes for VirtualFreeEx to VirtualFree, and 3 bytes to update the checksum to ward off malware false-positives. Check your messages for an attachment. pidgin.dll gave error about device not functioning. I decided to do full DLL check comparing 95 and 98SE and here is calls missing from important dll IsDebuggerPresent: program files/common files/gtk folder (gtk legacy runtime) pango-querymodules.exe libpangowin32-1.0-0.dll libpango-1.0-0.dll libgtk-win32-2.0-0.dll libgthread-2.0-0.dll libgobject-2.0-0.dll libgmodule-2.0-0.dll libglib-2.0-0.dll libgdk-win32-2.0-0.dll libgdk_pixbuf-2.0-0.dll slibatk-1.0-0.dll gspawn-win32-helper.exe c:\program files\pidgin folder (install) InterlockedCompareExchange: pidgin.dll libymsg.dll libxml2.dll libpurple.dll liboscar.dll libxml2.dll 2 hours ago, jumper said: Pidgin 2.6.6 (unpatched) does launch on my 98 system, but isn't stable unless I enable KernelEx and set it to Win2K mode. So more patches will probably be needed. Interesting. I have ran 2.6.6 on Vanilla Windows 98SE and ME for years without problems. Maybe it is cpu or ram related? I mostly tested it on Pentium 2/3 and K6 based systems. How did stability issue show up? Random bsoding or resource leak? Also I never tried it with less than 256mb ram.
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