- is an online magazine where you can find news and updates on modern technologies


An enthusiast has ported "thousands of applications" to Windows 95 - he ported the .NET Framework from Windows 98 there

An enthusiast has ported "thousands of applications" to Windows 95 - he ported the .NET Framework from Windows 98 there
0 0 2 0

Video blogger MattKC, according to his own words, ported "thousands of programs" to Windows 95 by porting an important Windows 98 feature - .NET Framework. The main limitation of Windows 95 compared to Windows 98 lies precisely in the absence of .NET Framework - in most other aspects, Windows 98 is very close to its predecessor in design and features.

In a 51-minute video, MattKC explains how to make .NET Framework work correctly in Windows 95. There are many missing DLL files, but using a dump creation tool allows you to identify the names of the missing files so that they can be replaced or ignored. Even after transferring all the missing .NET files, it still doesn't work. In Windows 95, more registry keys were required than in this video - the total number of keys required was 5409.

Even after porting, .NET cannot properly debug JIT (Just In Time) in Windows 95. It seems that the reason is ndphlpr, a mysterious outdated Windows driver that is not used in Windows 98, but is necessary for correct operation, as .NET crashes without it. MattKC determines that fooling the PC about the presence of ndphlpr works, but after his investigation shows that no one knows what this file is.

This, in turn, causes a machine code exception error. The WinDebug tool does not initially support .NET (as it does not yet exist), so MattKC still has to deal with some compatibility issues while parallel testing Windows 95 and 98. Both systems were run on WinDebug for several days to find the problem.

In the end, MattKC found a closed block of code that WinDebug could not read. After decoding, the code turned out to be as follows:

F2 0F 10 10 44 24 24 08 F2 05 2C CO

This erroneous code related to the absence of Windows API for some functions. The exception was that it could not find "NotifyWinEvent in user32.dll", and SSE2 obscured the instruction in the code. .NET had to be patched to remove the dependency on SSE2, but it did not fix compatibility, only the .NET debugger itself.

After significant debugging of Lego Island, MattKC finally manually wrote method code for error handling/messages to print in a window where it didn't see it. This works and allows to fix the last part of DLL compatibility. After that, the Rebuilder for Lego Island and a special, more modernized screenshot creation program now worked perfectly on Windows 95.

Source: Tom`s Hardware

Thanks, your opinion accepted.

Comments (0)

There are no comments for now

Leave a Comment:

To be able to leave a comment - you have to authorize on our website

Related Posts