Log in

View Full Version : getting PPC programs to work on HPC .ARM


nosmohtac
07-25-2004, 06:24 PM
I have a Jornada 720, and I've tried to install many of my PPC programs on it with no success. I've read that minor modifications can be made to the program to get it to work, and was wondering if anyone here could direct me to information on this.

Kowalski
07-25-2004, 06:36 PM
i dont have a jornado 720 but AFAIK there is no general rule to make ppc programs run on HPCs. all the programs has different modifications to work.

dazz
07-26-2004, 01:15 AM
Actually, I think there is a way to do it. There are some dummy dll's around that should do the trick. Basically, it tricks the software into thinking that the device is a PPC.

I haven't tried it myself but have read a few threads where users have done this.

As I understand it, if a program relies on MFC extesively it will not work but otherwise has a good chance.

If I can ever find time I am going to give this another try. If you want to try it do a google search that includes "dummy dll's".

dazz
07-26-2004, 01:17 AM
Oops! Just noticed that felixdd posted about this in another thread...

http://www.pocketpcthoughts.com/forums/viewtopic.php?t=29734

8)

felixdd
07-26-2004, 12:05 PM
I'll try to find the DLLs for you guys (not sure if I have the ARM ones...I think I do). When I find them I'll post here, but PM me for them as my webspace will probably go way over bandwidth limit if I post a link here :lol:

Those with J720's should also ask Henri Spagnolo over at http://www.yetanotherhomepage.com/j7xx/j7xx.html...or post at http://www.voy.com/24979/.

The hardest part to the whole modification process is finding the damn DLLs. Once that's done then the rest is cake.

felixdd
07-27-2004, 01:26 PM
I've found a source where you can get fake DLLs for the ARM device running HPC 2000 (aka CE 3.0)

This site (http://www.rootdirectory.de/solar/jornada.html) contains a link to the file (http://simpad.silentservices.de/fakedlls-all.zip) on another website. If you have trouble I also have the file hosted somewhere, but PM me and I'll give you the link (lest my server gets majorly swamped)

The files included are:
mfcce301.dll: works for all ARM devices; patches mfcce300.dll.
aygshell.dll: works for all ARM devices; patches ceshell.dll.
doclist.dll: works for all ARM devices.
gx.dll: works only for the Jornada 720.

In a very rare instance, you also have to replace cellcore.dll with serial.dll -- all of these "replacings" are done in the hex editor editing the executable of the PPC program you wish to run on the PPC.

You might want to visit that site (http://www.rootdirectory.de/solar/jornada.html) to read up on how to patch the executable. Another good resource is Goodhyun (http://goodhyun.com/archives/000052.html).

If you run into trouble, post here or in the handheld addicts forum. I check here more often...the latter forum is kinda dead.... :roll:


And if you have an Intermec, you can find the above 4 files from my hosted webspace (http://members.rogers.com/felixdd/HPC/DLLs.zip) -- these are slightly different than the above 4 files as aygshell and mfcce301 are slightly revised so as to allow you to run an even broader range of programs without having problems rendering the PPC-intended menues. With it you can run Netfront, among other things.

If you want to use both versions of the DLLs, you should not patch. Instead, for every program that requires one of these DLLs, choose the version (old or cemenu) you want to use it with and place it in the directory where the executable is located. This way you can run both versions of the dlls at the same time (though the benefits are negligible).

And for intermec users: you might want to get ScreenOff (http://members.rogers.com/felixdd/HPC/ScreenOff.exe). It's an executable that I tweaked and is already found in your Intermecs. The original program turns off your backlight and starts Windows Media Player. My version turns off the backlight only -- so it's good to use with GSPlayer or any other program where you want the device on and the backlight off.

nosmohtac
07-27-2004, 10:31 PM
Thanx alot felixdd,

Awesome information.

Just want to check with you though; When I get these dll's, I install them in my HPC in the "Windows" folder, then I have to edit the program's .exe file with a hex editor?

I was also wondering if you knew of a half decent hex editor that was available for free? I've seen one before, but haven't been able to find it recently.

felixdd
07-28-2004, 12:36 AM
Thanx alot felixdd,

Awesome information.

Just want to check with you though; When I get these dll's, I install them in my HPC in the "Windows" folder, then I have to edit the program's .exe file with a hex editor?

That's one approach. And since your HPC already has mfcce300.dll installed (though a different version than in the files you are downloading), in order to have the downloaded versions in your device without conflict, you must first rename them. I think in the zip files they are already mfcce301.dll. Then when you hex-edit the executable, search for all instances (for example) of mfcce300.dll, and change it to mfcce301.dll.

The reason is that these programs are meant to be run on the PPC, which have their own mfcce300.dll. If the programs are loaded onto an HPC, they will not play well with the HPC version of said file. So someone tried to use the mfcce300.dll from a PPC and lo and behold, it worked. To improve on the process, that's where the renaming comes in.

The other approach is to store the dlls in the same directory as the executable. No renaming is necessary -- as long as the dll-call within the executable contains the same name as the dll that is in its local directory, you are good. The advantage of this method is that you may have to do less hex editing (which isn't hard anyways), but at the cost of memory. For Intermec users, this has an added benefit of being able to use both versions of the DLLs simultaneously. Not an issue to me though, as I don't use netfront.


I was also wondering if you knew of a half decent hex editor that was available for free? I've seen one before, but haven't been able to find it recently.

I've heard good things about UltraEdit (http://www.ultraedit.com). Personally I use XVI32 (http://www.chmaas.handshake.de/delphi/freeware/xvi32/xvi32.htm) (because it's free, and that's always a good thing :mrgreen: )

nosmohtac
07-28-2004, 03:57 AM
Thanks, that's what I thought.

I've tried to open several ppc cab files with xviHED, and have done a search for mfcce300.dll, with no luck, and when I try to install them with AS, the error pops up saying that the program is not for that type of device.

felixdd
07-28-2004, 12:06 PM
Thanks, that's what I thought.

I've tried to open several ppc cab files with xviHED, and have done a search for mfcce300.dll, with no luck, and when I try to install them with AS, the error pops up saying that the program is not for that type of device.

Run the setup program on your desktop, then go to c:\program files:\microsoft activesync\

There you will find (hopefully) a new directory for the program you want to install. Go to the directory. In it you will find the cab file that AS was suppose to transfer to the device. AS won't do it, as it isn't the device it expected to be. But you will ;)

Drag the cab file into the Jornada using AS file transfer. Then execute it from the Jornada (at this point if you want to back up the cab file, remember to set it to read-only first -- otherwise it gets wiped upon unpackaging). After choosing where you want to install it (HA! You can't do this on a PPC), go to the directory, grab the deposited executable, and drag it back to your desktop for hex editing using AS.

You aren't suppose to hex edit the cab file, but rather the exe that the cab file unpacks within your device.

Best of luck.

Jonathon Watkins
08-08-2004, 01:08 AM
Thanks felixdd. LOTs of usefull info there. :D

TFGBD
10-13-2004, 08:49 PM
Using a hex editor to edit Pocket PC executables is very annoying. You can skip this tedious step and edit the library right on your device using Mr. Hou Ming's wonderful "ExecutabilityCheck" utility. Not only does it check to see if the required libraries exist, but it also lets you edit their names and change the required CE OS version. Changing the required version may allow CE 4.x apps to run on a CE 3.0 or even 2.11 device! Pocket PC apps on HPC Pro/PsPC? Maybe ;) I did this with Dic's ARM CE .net 4.x CEmenu Aygshell, and it runs flawlessly on my Jornada 720. I cant say I'm surprised though After all CEMenu was originally written for the BE-300, a MIPS CE 3.0 device.

You can download this great app here:

http://www.geocities.co.jp/SiliconValley-Cupertino/2039/ExecutabilityCheck.zip

For more great CE apps, visit the author's site here:
http://www.geocities.co.jp/SiliconValley-Cupertino/2039/

He is the same guy that brought us one of the many dummy aygshells.

felixdd
12-18-2004, 11:12 PM
Using a hex editor to edit Pocket PC executables is very annoying. You can skip this tedious step and edit the library right on your device using Mr. Hou Ming's wonderful "ExecutabilityCheck" utility. Not only does it check to see if the required libraries exist, but it also lets you edit their names and change the required CE OS version. Changing the required version may allow CE 4.x apps to run on a CE 3.0 or even 2.11 device! Pocket PC apps on HPC Pro/PsPC? Maybe ;) I did this with Dic's ARM CE .net 4.x CEmenu Aygshell, and it runs flawlessly on my Jornada 720. I cant say I'm surprised though After all CEMenu was originally written for the BE-300, a MIPS CE 3.0 device.

You can download this great app here:

http://www.geocities.co.jp/SiliconValley-Cupertino/2039/ExecutabilityCheck.zip

For more great CE apps, visit the author's site here:
http://www.geocities.co.jp/SiliconValley-Cupertino/2039/

He is the same guy that brought us one of the many dummy aygshells.

One word:
SW33T! :mrgreen:

cmonex
12-15-2005, 11:01 PM
The hardest part to the whole modification process is finding the damn DLLs. Once that's done then the rest is cake.

nope. since then, the "damn dll's" are readily available on my site (thanks to you for the largest part of the mips dlls).

so now your real problem is "just" hacking itself hehehe

http://izemize.fw.hu/hpc.php

cmonex
12-15-2005, 11:05 PM
If you want to use both versions of the DLLs, you should not patch. Instead, for every program that requires one of these DLLs, choose the version (old or cemenu) you want to use it with and place it in the directory where the executable is located. This way you can run both versions of the dlls at the same time (though the benefits are negligible).


false. :?
you still need hexediting, placing dll in the executable's local dir wont help.
if a certain version of a dll is already loaded in ram you cannot use the other version of the same dll at the same time.
if you're using a wlan or bluetooth or other driver that explicitly needs mfcce, you must hexedit. in other cases, it will just be incomfortable not being able to run two programs (one hpc, one ppc) at the same time that call this dll...

ah and about cellcore.dll, you no longer have to do the serial.dll renaming, maybe. we found cellcore dummies :mrgreen: