Monday, April 11, 2022

Mypal 68 (Firefox 68.12.1) on Windows 2000 + Extended Kernel (Old Guide)

(verified working as of 2022-7-18)

2023 Update: Starting with Mypal 68.13b, if you have more than one logical processor, you will need to use PsExec to assign the affinity to only a single CPU for stability reasons. See my 360EE guide for instructions on how to do that.

Also as of 2022-7-18 BlackWingCat updated the extended kernel (version 3.1b) to adds stubs for the missing functions, making this guide irrelevant (other than the PsExec note above) unless you are using an extended kernel version older than 3.1b. You can get it here.

Introduction:

Recently developer Feodor2 released an experimental version of his Mypal web browser, based on Firefox 68.12.1. Out of the box, this browser does not run on Windows 2000 with the extended kernel installed, but with some modifications it is possible to run it under said OS.

Requisites:

You are going to need a few programs in order to perform the modification.

Windows 2000 with Extended Kernel (prior to 3.1b) installed

Mypal 68

PE Tools

Instructions:

1. Download PE Tools and run it. Once it is open click on the "Tools" menu and click on "PE Editor".

2. There will be two files you need to edit, mozglue.dll and xul.dll. Let's start with mozglue.dll

3. Once you have mozglue.dll open in PE Tools, click on the "Directories" button as highlighted.

4. Click on the "..." button next to the "Import Directory" section.

5. In the imports of mozglue.dll, there are some imports you will need to change in ntdll.dll, so select that from the list of DLLs. There are two imports that need to be changed, NtReleaseKeyedEvent and NtWaitForKeyedEvent.

6. Double click on NtReleaseKeyedEvent. Change the value in API Name to NtReleaseSemaphore and click OK. Repeat this step but with NtWaitForKeyedEvent and change it to NtWaitHighEventPair.

7. Once you have edited the values of both imports, click Close on the Import Directory window, and click Save then Close in the Directory Editor window.


8. Click OK in the PE Editor window.


9. Now we are going to modify xul.dll, the second and last DLL that needs modification. Repeat steps 2 to 4 with xul.dll instead of mozglue.dll. Once you have done that the Import Directory window for xul.dll should be open.

10. In xul.dll, we have to modify the same ntdll.dll imports that we did with mozglue.dll, so repeat steps 5 and 6 on the Import Directory window of xul.dll. Once you have done that, select ADVAPI32.dll from the list of Dll Names. There are 2 imports we need to modify here, CredReadA and CredWriteA. 

11. Double click on CredReadA and change the API Name value to CredFree. Repeat this same step but with CredWriteA.


12. Once you have edited the values of all imports that need modification, repeat steps 7 to 8 and close PE Tools. You can now launch Mypal. If you performed all the steps correctly, it should launch normally. It may crash on first launch, if so just relaunch it, it should work fine.

 

Important Notes:

By default Mypal uses a multiprocess configuration. This is known to cause system stability issues when running under Windows 2000, XP, or 2003, often resulting in BSODs. To disable multiprocess mode and revert to single process mode, go to about:config and set the value "browser.tabs.remote.autostart" to "false". Note that this does decrease the amount of memory the browser can use in total.

To fix title bar margin issues when using non-native title bar use this.

Another important thing to keep note of is that Mypal 68 is very early in its development phase, so don't expect it to be the most stable thing in the world, or all of its features to work properly. The information on this guide may or may not change in the future, so just keep that in mind.
 
YOUNG SQUASH INTL - 2022

No comments:

Post a Comment