IPB



>> MSFN Hosting Starting from $3.95/mo - $37.92/year <<

Google Frontpage Forums Unattended CD/DVD Guide
41 Pages V   1 2 3 > »   
Reply to this topicStart new topic
> KernelEx v0.3.3a released!, Run XP-only apps and games - Quake 4,Doom 3,Prey,NFS:MW
Xeno86
post Apr 2 2006, 03:53 PM
Post #1


Member
**

Group: Members
Posts: 142
Joined: 26-March 06
Member No.: 91916
OS: 98SE
Country Flag


KernelEx v0.3.3a



KernelEx is searching for developers if interested PM me. Good knowledge of win32 api and C required.


For those of you who are still hesistating but are willing to test:

KernelEx automatically creates backup of files it modifies and creates a special recovery script making potencial recovery as fast and painless as possible.
Please read README file carefully. Thanks.


Requirements:

* Windows 98 FE or Windows 98 SE or Windows ME
ANY LANGUAGE VERSION and kernel version
* Microsoft Layer for Unicode (MSLU) [Unicows.dll], version 1.1.3790.0


Description:

The aim of the project is to implement functions (not present
on Windows 98 / ME) to kernel32.dll and other system libraries
so that recent Windows XP programs and games work on
Windows 98 / ME.


Changes:

KernelEx v0.3.3 by Xeno86
03/27/2008
* added basic support for MS Visual C++ (you can compile KernelEx and KexULay but you still need GCC to generate new patches)
* removed Borland C++ support
* support for export forwarding
* support for adding new imports
* removed platform checks ("The xxxxx file expects a newer version of Windows. Upgrade your Windows version.")
* fixed issue with Explorer windows position and size
* reimplementation of FindResourceW / FindResourceExW
* GetAncestor fix [user32] (message only windows)
* EnableWindow fix [user32] (bEnable multiple of 64K)
* modified MapViewOfFileEx API
* added MoveFileEx [kernel32]
* added GetSystemWindowsDirectory [kernel32]
* added RegOpenCurrentUser [advapi32]
* readded dummy UXTHEME.DLL (see Notes.html)
* added _TONS_ of unicode APIs
* added loop-protect to KexULay
* redesign of patch architecture (patch.cpp)
* more information about patching process in log
* lots of small changes I don't remember


DOWNLOAD:

RELEASE CANDIDATE version 0.3.3a (binary)
Attached File  KernelEx033a.exe ( 161.92K ) Number of downloads: 34
MD5: 21a6bd2cce9863fd940585bc6841e8d2, size 165 806 bytes, scanned with Jotti's malware scan

KernelEx homepage:

http://x86.neostrada.pl/KernelEx/

This post has been edited by Xeno86: Yesterday, 04:57 PM
Go to the top of the page
 
+Quote Post
PROBLEMCHYLD
post Apr 2 2006, 04:18 PM
Post #2


Friend of MSFN
*****

Group: Members
Posts: 860
Joined: 7-October 05
From: Chicago
Member No.: 75997
OS: 98SE
Country Flag


I'm not 2 familiar wit your work, but what ever u doing keep doing it.
98se2me and KERNEL UPDATE PROJECT is all I need.
You guys r the best.
Go to the top of the page
 
+Quote Post
Tihiy
post Apr 2 2006, 05:11 PM
Post #3


Revolutions Pack Creator
******

Group: Members
Posts: 1365
Joined: 19-November 04
From: NeverSleep
Member No.: 36858
OS: none
Country Flag


I think there are some apis you may consider to implement:
- RestoreLastError (just link it to SetLastError)
- GetFilePointerEx (not so hard)

I don't remember more easy to implement apis which can improve application compatibility.
Maybe implement some as stubs?

Another large group of functions is Unicode (....W) functions.
They can be emulated using Unicows (MSLU).

But if you'll link Unicode funcitons to Unicows functions, you'll break some applications which are not expecting Windows 9x to support Unicode.

There was KernelXP project during RP lifetime; it was wrappers around standard libraries (kernel32,user32,etc) which were using Unicows to provide Unicode functions. To use them, applications import table had to be patched to use wrapper libraries instead of standard ones. Also it provided GetVersion(Ex) emulation.
Are you interested in this?
Go to the top of the page
 
+Quote Post
LLXX
post Apr 2 2006, 06:36 PM
Post #4


MSFN Junkie
*********

Group: Banned
Posts: 3482
Joined: 4-December 05
Member No.: 81511
OS: none
Country Flag


Summary of missing APIs which I've evaluated:

Kernel32.dll
VerifyVersionInfoW (required by MSO.DLL) possible - but then what would 98SE identify itself as?
VerSetConditionMask (required by MSO.DLL) possible - see above
SetFilePointerEx (required by OSE.DLL) possible
GetFileSizeEx (required by OSE.DLL) possible
CreateHardLinkW (required by OSE.DLL) NTFS only, no chance

User32.dll
GetLastInputInfo probably unlikely
AllowSetForegroundWindow no functionality to be implemented
SetLayeredWindowAttributes too much work required to implement transparent windows

Shell32.dll
SHGetFolderLocation available in Windows ME shell32.dll (5.0 or later version)

AdvApi32.dll - All the functions below will require extensive work and thus won't be implemented - would a replacement ADVAPI32.DLL from a newer Windows version work?
LsaClose
LsaStorePrivateData
LsaRetrievePrivateData
LsaNtStatusToWinError
LsaOpenPolicy
ConvertSidToStringSidW
DecryptFileW
EncryptFileW
ConvertStringSecurityDescriptorToSecurityDescriptorW
ConvertSidToStringSidA
CheckTokenMembership

...and once I get more free time I'll resume working on the Large Disk Driver (>137Gb). I'm currently quite busy with something else (not 98 related).

This post has been edited by LLXX: Apr 2 2006, 06:37 PM
Go to the top of the page
 
+Quote Post
krick
post Apr 2 2006, 07:47 PM
Post #5


Member
**

Group: Members
Posts: 106
Joined: 25-October 04
Member No.: 34722



Does unicode support need to be hacked in? I thought that was what Micosoft Layer for Unicode was for...

http://www.microsoft.com/globaldev/handson...u_announce.mspx
Go to the top of the page
 
+Quote Post
Marius '95
post Apr 2 2006, 08:13 PM
Post #6


Junior
*

Group: Members
Posts: 69
Joined: 12-January 06
Member No.: 85098
Country Flag


I don't know programming, only PHP, but I can give you some ideas.
Use some tricks for CreateHardLinkW. Create a copy of that file instead of a hard link, and use a resident utility to keep the copies sincronized. What do you say? Is it possible? woot.gif Let's hope that no program will create a hard link for a DVD image. whistling.gif
Go to the top of the page
 
+Quote Post
Xeno86
post Apr 3 2006, 06:05 AM
Post #7


Member
**

Group: Members
Posts: 142
Joined: 26-March 06
Member No.: 91916
OS: 98SE
Country Flag


QUOTE (Marius '95)
Use some tricks for CreateHardLinkW. Create a copy of that file instead of a hard link, and use a resident utility to keep the copies sincronized. What do you say? Is it possible?

Create copy - possible
for keeping copies syncronized additional tool would have to be created

btw. For testing purposes i would need an app which uses this function.
Go to the top of the page
 
+Quote Post
hougtimo
post Apr 3 2006, 06:14 AM
Post #8


Member
**

Group: Members
Posts: 296
Joined: 30-March 05
Member No.: 49834
Country Flag


How can this be released under the GPL????? It cant.
Go to the top of the page
 
+Quote Post
Xeno86
post Apr 3 2006, 07:05 AM
Post #9


Member
**

Group: Members
Posts: 142
Joined: 26-March 06
Member No.: 91916
OS: 98SE
Country Flag


@Tihiy
- RestoreLastError (just link it to SetLastError) added
- GetFilePointerEx (not so hard) - couldn't find that - did you mean SetFilePointerEx?
QUOTE
I don't remember more easy to implement apis which can improve application compatibility.
Maybe implement some as stubs?
Which ones? (a list?)
QUOTE
Another large group of functions is Unicode (....W) functions.
They can be emulated using Unicows (MSLU).

But if you'll link Unicode funcitons to Unicows functions, you'll break some applications which are not expecting Windows 9x to support Unicode.
Do you mean apps which already don't work on Win 9x?
QUOTE
There was KernelXP project during RP lifetime; it was wrappers around standard libraries (kernel32,user32,etc) which were using Unicows to provide Unicode functions. To use them, applications import table had to be patched to use wrapper libraries instead of standard ones. Also it provided GetVersion(Ex) emulation.
Are you interested in this?
Wouldn't it be better to patch kernel32.dll so that is loads unicows.dll and runs this functions instead?
Go to the top of the page
 
+Quote Post
Tihiy
post Apr 3 2006, 09:02 AM
Post #10


Revolutions Pack Creator
******

Group: Members
Posts: 1365
Joined: 19-November 04
From: NeverSleep
Member No.: 36858
OS: none
Country Flag


QUOTE
- GetFilePointerEx (not so hard) - couldn't find that - did you mean SetFilePointerEx?
Yea laugh.gif
QUOTE
Which ones? (a list?)

I'll make a list.
QUOTE
But if you'll link Unicode funcitons to Unicows functions, you'll break some applications which are not expecting Windows 9x to support Unicode.
Do you mean apps which already don't work on Win 9x?

No. RP4 included unicode support by default in user32.dll for example -> it raised a lot of problems (read RP4 thread) so i had to drop it realmad.gif
There can be problems on incorrect library load order; memory violation or deadloops if you'll directly link them to Unicows.
Better to: make a configuration file which contains something like:
[someapp.exe]
Unicode=1
Version=WinXP
and use such algorithm: open the file, check if Unicode enabled, then load unicows.dll and execute required otherwise pass to "donothing" wrapper; also version lying can be written (for apps checkit it) by rewriting GetVersion/Ex...

This post has been edited by Tihiy: Apr 3 2006, 09:03 AM
Go to the top of the page
 
+Quote Post
noguru
post Apr 3 2006, 11:16 AM
Post #11


Member
**

Group: Members
Posts: 215
Joined: 24-February 06
Member No.: 89034
Country Flag


Thanks again xeno86.
With a uninstaller and a readme it's becoming less beta too. Cool!

More important, no more problems with SisoftSandra like before (tested 0.10b)


QUOTE (hougtimo @ Apr 3 2006, 01:14 PM) *
How can this be released under the GPL????? It cant.


May I ask why?
The patch imports functions into the original kernel32.dll. There is no modified kernel32.dll inside and certainly no "copy past" original code from Microsoft.
Or do you mean that the functions themselves are property of Microsoft?
(being the end-user I would screw up my rights on product support after applying this patch, but that is not relevant I think)
Go to the top of the page
 
+Quote Post
LLXX
post Apr 3 2006, 06:49 PM
Post #12


MSFN Junkie
*********

Group: Banned
Posts: 3482
Joined: 4-December 05
Member No.: 81511
OS: none
Country Flag


QUOTE (noguru @ Apr 3 2006, 12:16 PM) *
Or do you mean that the functions themselves are property of Microsoft?
Microsoft isn't that dumb to trademark/copyright API names laugh.gif
Go to the top of the page
 
+Quote Post
Juan
post Apr 3 2006, 07:38 PM
Post #13





Group: Members
Posts: 4
Joined: 3-April 06
Member No.: 92664
Country Flag


Hi, I suggest you to take some code ideas from http://source.winehq.org/source/dlls/kernel/
yes.gif
Go to the top of the page
 
+Quote Post
Tihiy
post Apr 4 2006, 02:29 AM
Post #14


Revolutions Pack Creator
******

Group: Members
Posts: 1365
Joined: 19-November 04
From: NeverSleep
Member No.: 36858
OS: none
Country Flag


QUOTE
I'll make a list.

Not soon, i have no internet at home now and no 9x at work no.gif

I think you can use such common algorithm:
Find program you want very much to run on 9x.
- Open program in Dependancy Walker (from 2k/XP/2k3 support tools or google).
- Check what functions are missing.
- Read MSDN & Wine sources to find how important they are.
- Implement them as stubs which return nothing (xor eax,eax/retn..) or something, also SetLastError (E_NOTIMPL) if you think they are important.
- 99% of required Unicode functionality is built in Unicows.

Usually it's very hard to run complex MS program written for XP (i think Office 2003 = impossible), but it may be possible to run programs that have 9x roots (Movie Maker 2?). It is impossible to make newer libraries like MFC42U.DLL to run.

But third party programs have more chances - they don't utitize much XP-specific functionality. I had Acrobat Reader 7 loading (displayed splash screen and hung), Google Earth working, MSN Messenger 7.5 working and small XP/Vista tools working.
You can achieve more. I can help you with GetVersion/Ex emulation library and frontend.
Go to the top of the page
 
+Quote Post
wizardofwindows
post Apr 4 2006, 04:58 AM
Post #15


Wizard of Windows
****

Group: Banned
Posts: 532
Joined: 17-June 05
From: Ontario Canada
Member No.: 60904
Country Flag


welcome.gif good work on kernel32 update and is it possible to get a short list of what does run with update?things like msn 7.5 and other apps what the status on them etc.

This post has been edited by timeless: Apr 4 2006, 04:58 AM
Go to the top of the page
 
+Quote Post
Xeno86
post Apr 5 2006, 08:00 AM
Post #16


Member
**

Group: Members
Posts: 142
Joined: 26-March 06
Member No.: 91916
OS: 98SE
Country Flag


@timeless
Applications known to work after patching:
Doom 3
Quake 4
Need For Speed Most Wanted
and other which complained about missing GlobalMemoryStatusEx

As for regular applications:
MSN - I don't know - in Poland nobody uses it.
Other apps? status = unknown tongue.gif - please report about your successes and failures
Make a list of applications you'd like see running on Win 9x and which complain about missing exports and I'll see what can be done.

@Tihiy
Unfortunately I'm not familiar with your RP project because of this:
QUOTE
Do not forget this release is only for Windows 98 Second Edition,English!
GetVersion(Ex) - how many programs rely on this?


Now I will be trying to run FEAR on Win 9x:
GetFileSizeEx, SetFilePointerEx and shell32:SHGetFolderPath will have to be implemented.

Hopefully it will work smile.gif
Go to the top of the page
 
+Quote Post
PROBLEMCHYLD
post Apr 5 2006, 08:40 AM
Post #17


Friend of MSFN
*****

Group: Members
Posts: 860
Joined: 7-October 05
From: Chicago
Member No.: 75997
OS: 98SE
Country Flag


I have all updates installed.Tryin 2 play Nestopia.
I get error GetModuleFileName().Maybe this can help u,help me.
And no this is not cause by your patch.

List of apps I would like is
Napster and Windows Movie Maker

This post has been edited by PROBLEMCHYLD: Apr 5 2006, 09:47 AM
Go to the top of the page
 
+Quote Post
Xeno86
post Apr 5 2006, 09:52 AM
Post #18


Member
**

Group: Members
Posts: 142
Joined: 26-March 06
Member No.: 91916
OS: 98SE
Country Flag


QUOTE
I get error GetModuleFileName().Maybe this can help u,help me.
What does the error message say exactly?
It would be strange if it was GetModuleFileName because it exists in Windows 9x - are you sure that it wasn't GetModuleFileNameEx ?
Go to the top of the page
 
+Quote Post
PROBLEMCHYLD
post Apr 5 2006, 09:57 AM
Post #19


Friend of MSFN
*****

Group: Members
Posts: 860
Joined: 7-October 05
From: Chicago
Member No.: 75997
OS: 98SE
Country Flag


GetModuleFileName()failed!
This all it says

Another would be Windows Movie Maker 1
Shell32.dll:SHgetFolderPathW.

Napster- Shell32.dll:SHgetFolderPathA

This post has been edited by PROBLEMCHYLD: Apr 6 2006, 09:40 AM
Go to the top of the page
 
+Quote Post
LLXX
post Apr 5 2006, 09:41 PM
Post #20


MSFN Junkie
*********

Group: Banned
Posts: 3482
Joined: 4-December 05
Member No.: 81511
OS: none
Country Flag


QUOTE (PROBLEMCHYLD @ Apr 5 2006, 09:40 AM) *
And no this is not cause by your patch.
Then why you posted here?
Go to the top of the page
 
+Quote Post

Collapse

> Similar Topics

    Topic Title Replies Topic Starter Views Last Action
No New Posts  
9 xper 3214 3rd October 2001 - 07:52 AM
Last post by: LouCypher
No New Posts  
3 Kylin 806 18th October 2001 - 01:34 PM
Last post by: PriZm77
No New Posts
4 XPerties 555 27th October 2001 - 11:25 PM
Last post by: XPerties
No New Posts  
1 Reverend 784 21st January 2002 - 02:31 PM
Last post by: Big Booger
No New Posts  
6 Aaron 610 18th February 2002 - 06:15 PM
Last post by: suse lover

Google Frontpage Forums Unattended CD/DVD Guide

41 Pages V   1 2 3 > » 
Reply to this topicStart new topic
5 User(s) are reading this topic (4 Guests and 0 Anonymous Users)
1 Members: cozbo

 



Lo-Fi Version Time is now: 29th March 2008 - 10:22 PM
All trademarks mentioned on this page are the property of their respective owners
MSFN is not affiliated with Microsoft
Copyright © 2001-2008 msfn.org
Privacy Policy