Jump to content

ironman14

Member
  • Posts

    227
  • Joined

  • Last visited

  • Donations

    0.00 USD 
  • Country

    Canada

Posts posted by ironman14

  1. It is a complicated process. I have experimented with NT 4.0 for about 3 months and have recently figured out how to do it. 

    In brief:

    1. Open up the application in Dependency Walker and view the DLL calls with missing functions.

    For example: user32.dll

    2. View the external functions that the DLL calls.

    For example: user32.dll calls extra functions in Kernel32.dll, user32.dll, Gdi32.dll and Msvcrt.dll.

    3. Get the Windows 2000/XP versions of both the DLL and the ones it calls. (whatever the program minimum requirement is, usually.)

    4. Rename the DLLs. Usually I change only one character of each DLL. An updated version of Msvcrt.dll is not needed.

    For example: user32.dll - user33.dll

    5. Hex edit the selected DLL and replace all of it's regular NT 4.0 external functions with the Windows 2000/XP versions.

    6. Place updated DLLs in system32 or application directory.

    7. Using a hex editor,tell the application/required external DLL to use the custom version, not the NT 4.0 regular version of the DLL

     

    Notes:

    1. If you have hex edited a certain Win2K/XP DLL before with its external functions. you don't need to do it again.

    2. Apps don't always run on startup. They may look like they are loading, and not start, or simply say they are not a valid Windows NT application.

    3. You must overwrite the DLL name and not use the backspace arrow. If that happens, the DLL file size will change and the DLL will become corrupt.

     

    It is not a simple task and if you are interested, I can do all of this editing myself. To be honest, I was thinking that once I got the "custom" NT 4.0 apps to work, I would upload them for anyone to download and use. I now know for sure that I will send a message to Blackwingcat sometime over the next few days to see if he can make a compatibility tool for NT.

     

    Hope this helps you.

  2. I also found out a way to integrate newer API's into Windows NT 4.0. I started by:

    1. Opening a particular EXE in Dependency Walker.

    2. Find the DLLS that are called by the particular app/sub DLL connected to app.

    I did this with Firefox 3.6 (no update). The DLLs with missing functions in Firefox.exe were actually only in the sub-dll xul.dll, which called for missing APIs in User32.dll,kernel32.dll and Gdi32.dll.

    So, I placed a copy of the Windows 2000 SP4 DLLs of each of those, and renamed them to user33.dll, kernel33.dll and gdi33.dll, in order to not meddle with hex editors. I put those in Windows NT 4.0, in the system32 directory. I also saw that the windows 2000 "kernel33.dll" needed nonexistent functions in Ntdll.dll, so I copied that from windows 2000, to my host pc, and renamed it 'otdll.dll" As we'll, user33.dll called for missing functions in kernel33.dll and gdi33.dll. And, gdi33.dll called for missing APIs in kernel33.dll and user33.dll. So, I went back to my host PC, and hex edited user33.dll to say kernel33 instead of kernel32 and to say gdi33 instead of gdi32. I did something similar with gdi33, only I said user33 instead of gdi33. And, in kernel33.dll I redirected Ntdll.dll to otdll.dll.

    Finally, after all the editing, Firefox stopped giving procedure entry point not found errors.

    But, the result wasn'tO much better. The exact error message was: The application failed to initialize properly. (0xc0000033). Click on ok to terminate the application.

    As well, I tried Flash 10.0.12.36, which was similar except had no issues with gdi32. I didn't have to hex edit the w2k DLLs again, but still had to hex edit npswf32.dll to tell it which dll to use. The flash checker says I have version 10.0.12, which is correct, but whenever I go on a flash site, like Youtube or Dailymotion, the video refuses to play, by simply showing a black screen with no sound. On youtube, Opera shows the "playing" icon on the top of the window, but it doesn't play any video. When I right-click on a video/black screen, it doesn't even show the "About Flash Player 10" option, or the "Settings", so disabling hardware acceleration is not an option.

    It wasn't even that hard to integrate Win2K APIs into NT 4.0. I was just clueless about it before. Now, the only challenge we have is getting apps to run.

    In response to this topic before, I tried OpenOffice 3.0, which claimed also to be "Not a valid Windows NT application." So, I opened up the EXE in Dependency Walker, and found out that MSVCR90.dll was missing. I then added it into the app folder , and found out that it had 2 missing functions in Kernel32.dll, so in HxD, I replaced it with Kernel33.dll. No API functions missing. But, the error "<folder path> is not a valid Windows NT application> persisted.

    Then, I tried Chrome 23 <not sure why I chose that version>, which clearly has missing API functions. I could not install it, I extracted it from the ZIP. So, I grabbed Blackwingcat's Chrometool for windows 2000, and renamed all the xp dlls ending in XP (blackwingcat's versions) into 30.

    Example- ws2_xp.dll - ws2_30.dll.

    I connected all the XP DLLs together, and there were a few other things to fix. First of all, Chrome calls for SHGetKnownFolderPath in Shell32.dll (a function only present in Vista+ Shell32.dll, yet chrome works on XP. To fix this, in HxD, I overwrote SHGetKnownFolderPath with SHGetFolderPathW since they have similar functions. I overwrote the additional characters with NULs, not deleted them, which was the whole reason behind my previous VLC failure. It worked well.

    The only other problem was that USERENV.dll needed another function, GetProfileType, which is only available in Windows 2000+. So, I looked in Dependency walker to see which DLLs linked to USERENV.dll, and replaced those functions with the "renamed" Windows 2000 functions in W2K Userenv.dll.

    Still, same issue. Blackwingcat has made a tool called Fcwin2k.exe for Windows 2000, which can resolve "not a valid win32 application" messages. But, I have tried all versions of it on Windows NT 4.0, yet they crash. So, it is simply a compatibility problem with some of these programs, like Chrome, Openoffice and Opera. However, other programs have their own problems, like Firefox and Flash. I would bet that Thunderbird would have the same problem as FF, since they are compiled very similarly. If anybody knows of any fixes for Flash or FF, please let me know. Also, I may ask Blackwingcat if he can create an Fcwin-style tool for NT 4.0 (compatibility only).

    Thanks everyone for your replies.

    PS: The reason why I care so much about newer Flash is that about 70% of Flash content today needs version 10+, including some that needs Flash 11+.

    UPDATE 1: I tried redownloading Firefox 3.6, and appropriately hex editing the functions, and the error message went away. But, Firefox did the same thing as VLC (displayed loading cursor, then nothing). FF 7 did the same. I tried Firefox 3.6.28 and 4, but they oddly wouldn't allow hex editing of all the needed functions.

  3. WOW!! This is pretty awesome indeed. I wonder if Windows 98SE as well. As for internet browsing, it seems just about any web browser is slow on the 9x kernel. Dencorso said that he uses his Windows XP machine for internet browsing needs. I've tried Firefox, Pale Moon, and Opera and all of them are slow on 9x. Either which way though, this is pretty darn good. And anyone who asks why you'd want to use Chrome on Windows Me when you should 'upgrade Windows!!!' can be quiet. lol

    Nicely said!

    I have to use Windows 8 for some purposes, mainly streaming/viewing videos. However, I'm not going to upgrade Windows NT 4.0 anytime soon! Infact a few days ago there was a new release of Opera 12.17, which would run perfectly under NT 4.0 if I could find something to get rid of the lying "not a valid windows nt application" message. So MS can't bother us to upgrade to windows 8.1 or whatever Surface touchscreen PC they're promoting!

    I may be able to get chrome to work on 98/ME if anyone is interested.

  4. I also found out a way to integrate newer API's into Windows NT 4.0. I started by:

    1. Opening a particular EXE in Dependency Walker.

    2. Find the DLLS that are called by the particular app/sub DLL connected to app.

    I did this with Firefox 3.6 (no update). The DLLs with missing functions in Firefox.exe were actually only in the sub-dll xul.dll, which called for missing APIs in User32.dll,kernel32.dll and Gdi32.dll.

    So, I placed a copy of the Windows 2000 SP4 DLLs of each of those, and renamed them to user33.dll, kernel33.dll and gdi33.dll, in order to not meddle with hex editors. I put those in Windows NT 4.0, in the system32 directory. I also saw that the windows 2000 "kernel33.dll" needed nonexistent functions in Ntdll.dll, so I copied that from windows 2000, to my host pc, and renamed it 'otdll.dll" As we'll, user33.dll called for missing functions in kernel33.dll and gdi33.dll. And, gdi33.dll called for missing APIs in kernel33.dll and user33.dll. So, I went back to my host PC, and hex edited user33.dll to say kernel33 instead of kernel32 and to say gdi33 instead of gdi32. I did something similar with gdi33, only I said user33 instead of gdi33. And, in kernel33.dll I redirected Ntdll.dll to otdll.dll.

    Finally, after all the editing, Firefox stopped giving procedure entry point not found errors.

    But, the result wasn't much better. The exact error message was: The application failed to initialize properly. (0xc0000033). Click on ok to terminate the application.

    As well, I tried Flash 10.0.12.36, which was similar except had no issues with gdi32. I didn't have to hex edit the w2k DLLs again, but still had to hex edit npswf32.dll to tell it which dll to use. The flash checker says I have version 10.0.12, which is correct, but whenever I go on a flash site, like Youtube or Dailymotion, the video refuses to play, by simply showing a black screen with no sound. On youtube, Opera shows the "playing" icon on the top of the window, but it doesn't play any video. When I right-click on a video/black screen, it doesn't even show the "About Flash Player 10" option, or the "Settings", so disabling hardware acceleration is not an option.

    It wasn't even that hard to integrate Win2K APIs into NT 4.0. I was just clueless about it before. Now, the only challenge we have is getting apps to run.

  5. I am also planning to try to get some slightly newer apps on NT 4.0. Hope it works!

    As for how this "modern apps" thing for NT 4.0 has been going, I have a few things to say:

    @ jumper

    -I recently read that if you hex edited anything major, the file size will change and the DLL will be unusable, so:

    -I downloaded your shell32.vlc patch and renamed your file to shell31.dll (Hope you don't mind).

    -I replaced references from shell32.dll to shell31.dll.

    -I opened vlc.exe in dependency walker, and all APIs were there!

    But,

    when I opened VLC,

    it just loaded for a few seconds (the mouse icon said it was busy), then did nothing.

    I thank you very much for this patch, Jumper, but do you know how to fix the launching error?

    I also tried recent versions of Opera. Since version 11, the installer has shown "the procedure entry point GetUserDefaultUILanguage could not be located in the dynamic link library KERNEL32.dll"

    So, I extracted the exe, and ran the opera executable , and it said it wasn't a valid windows NT app, despite it working perfectly on Win2000.

    This is for all opera versions since 11.00 (late 2010) to 12.17 (2 days ago). Opera 11.00-12.02 has basically NO API changes from Opera 10.63. 12.10+ need PSAPI.dll, which can be copied from the NT 4 CD. I found this out by scanning all the opera.exe files in Dependency Walker.

  6. Best you can have is Opera 12.02 with latest Flash.

    Requirements: KernelEx and Kstub822 with an entry for the GdiAlphaBlend function in addition for Flash.

    The only major change that Opera 12.1x has with 12.02 is that it needs psapi.dll. So copy that file to your system directory and I think Opera 12 (up to 12.16) should work fine.

  7. tried running windows nt 4 setup, but it asked for floppies. Since I dont have floppies anymore I did the /b command, but instead windows halted the setup to protect long file names. I tried using the file Lock ( lock / ) to allow direct disk access, but that failed. Anyway to override the file protection.

    As far as I know, NT 4 never came on floppies. It was the start of bootable CDs. When you made your custom CD, did you use extra software? If so, did you select the 'bootable' option?

    I'm afraid I can't help you too much there. My knowledge is more about software, and I don't know too much about hardware.

  8. Here is a link for creating your own NT 4 CD.

    :http://www.nu2.nu/bootcd/#nt4

    It allows you to integrate updates such as IE6, WMP 7.1 etc. Also, you can add SPs to it, including SP6a. SP4+ of NT 4.0 contains support for up to 128 GB hard disks with NTFS partitions.

    Thanks in the process now :thumbup.

    EDIT:struggling to run final process because of 64 bit incapabilities. (Not on me computer for I still need to setup PosReady drive in that PC)

    Why would you use 64-bit hardware on NT 4.0?

  9. I agree that newer GCC and Mozilla bookmark/history are some of the major priorities of KernelEx. However, just in my opinion, I also think that an important feature to add to this possible KernelEx is the capability to run C++ 2010 apps, like modern Firefox releases or later versions of LibreOffice (4.0+). blackwingcat, known for his work on Windows 2000, has also added C++ 2010 capability to Windows 95, so I'm sure if you asked, he may be able to figure it out for 98/ME. However, you can't run newer SeaMonkey/Firefox on 95, because it's kernel is missing many functions. If we got VC++ 2010 working on KernelEx, we could use the latest FF/SeaMonkey.

    Hi Ironman14, a few weeks ago Jumper wrote that SeaMonkey 2.6.1 is the latest version that would work with Kex 4.5.2.

    But maybe I misunderstood him.

    However, do you think it would be possible if you might get in touch with the developers of FF/Seamonkey and ask what

    was changed between Seamonkey 2.0.14. and 2.1 - same with FF. Maybe the bookmark/history problem is not soooo hard to fix ?

    I actually didn't need to check with the developers to get this info. Here is the Seamonkey 2.1 changelog:http://www.seamonkey-project.org/releases/seamonkey2.1/.

    It includes syncing your bookmarks and history to other devices, and reworks the bookmarks system to share the Places framework used with FF.

    Also, I did the same with FF. Here is the URL:

    http://website-archive.mozilla.org/www.mozilla.org/firefox_releasenotes/en-US/firefox/4.0/releasenotes/

    It does include an 'overhaul' of the bookmark and history code.

    I hope some of these changes help.

  10. It is not a "real" issue if your source has post SP3 integrated, though you will not be able to run CHKDSK "natively" from the NT, but will need to use the workaround (and the Win2K files) mentioned in the already given links.

    Consider however that a "normal" install of NT needs around 110 Mb of disk space, let's roughly double it to around 250 to stay on the safe side and to allow some space for programs, which is well within the range of FAT16 volumes, and there is no real reason, on a laptop/single user machine to have the complexity of NTFS.

    jaclaz

    My disk of NT 4 has service pack one. The only reason why I want ntfs is because of the 4 gig file size issue. (I bet there is a patch for that somewhere too -_- )

    Here is a link for creating your own NT 4 CD.

    :http://www.nu2.nu/bootcd/#nt4

    It allows you to integrate updates such as IE6, WMP 7.1 etc. Also, you can add SPs to it, including SP6a. SP4+ of NT 4.0 contains support for up to 128 GB hard disks with NTFS partitions.

  11. Sorry I didn't see this. Is there anything you'd still like me to find.

    As for FF/Seamonkey, Later versions (FF13+SM2.7+) don't work as they can't load MSVCR100.dll. I suggested blackwingcat since he has compiled VC++ for Win 95, so I figured he may be able to do it for 98/ME. But, jumper found out that Seamonkey changed the engine, so that may help fix the issue.

    Update: I will find out FF later. Right now I'm busy.

  12. Yep :), but what i find senseless is talking over and over about this, some starting months (or years) before this deadline, now on the day of the deadline and possibly for many weeks/months/years after today.

    I mean, I personally went through both Windows NT 4.0 and Windows 2000 EOL's/End of support, and I continue to use a few machines with them fine, like many other members do, and like as well many members running 9x/Me's systems do, but there was not all this chatting about "what if","what are will you do when" "what will happen" "do you plan to", etc., etc..

    And the world did not end on any of those occasions.

    People that wanted (or could) upgrade (now in the case of Vista or 8 one could use more properly the verb downgrade instead ;)) to the new version of the MS OS, did that.

    People that did not want (or could not) upgrade continued using the "previous" OS and learned to either solve or workaround the issues caused by new hardware and new software incompatibilities and/or learned to live with the few (or many) inconveniences that this caused.

    A third category entered (like myself) a "mixed mode" running whatever OS he/she sees fit, depending on machines, use and what not.

    But there wasn't all this talking, AFAICR.

    jaclaz

    I still prefer the older OS'es, like NT 4.0 and 2000. I have figured out a few tricks to try to make NT 4 run modern apps, yet I have to fully test them. XP is pretty good, but I find certain windows applications (like windows Explorer) have a tendency to freeze more often on XP than other Windows versions. But MS just started going downhill from there. Vista was good. 7 is okay. I can barely stand 8. I think you have a great idea, running multiple OS'es so you always have the one you need.

  13. Doubting that it will be two years before Unofficial Updates, if I understood this correctly.

    I bet you could safely, fully use it for about 2 more years, then we may get unofficial updates.

    As for me, I have multiple OS' depending on the purpose and hardware, so yes/no. Go ahead and try to break in, that is if you think I'm not home (PC on and connected at random times) and CAN break in (through NAT and two firewalls and a running antivirus). Wonder which OS you'll be trying to attack?

    Ooohhh I'm scared! :ph34r:

    Seriously, the Topic/Question is the same as the other Topics. Are you a News Reporter, attempting to get us to be distraught as possible of the impending disaster (yet to occur)? :w00t: I noticed the NEWS stations running short blurbs about this with recommendations to UPGRADE NOW TO WIN8! Got the idea of all of this nonsense? I do! :yes:

    "I ain't afraid of no ghost!"

    That was when Windows 2000 started getting unofficial updates, and most software developers kicked support for it. However, XP seems more popular, so it will probably getting unofficial updates sooner than that. I do, however, think that in 2 years, all the developers will cease support for XP.

    I wasn't sure that anyone else would write that topic. Why is MS even trying to push Windows 8? It has a difficult interface, slows down some programs that otherwise run perfectly under vista/xp/7, takes forever to check for wrong passwords, and the mouse freezes up all the time. I might get Windows 7 Pro, which comes with a FREE copy of XP. Even now discontinued, XP is still very secure, so long that you have an AV and a firewall.

×
×
  • Create New...