x
This website is using cookies. We use cookies to ensure that we give you the best experience on our website. More info. That's Fine
HPC:Factor Logo 
 
Latest Forum Activity

Windows CE Compatibility Layer Thread

1 2 3
Dz3n Page Icon Posted 2019-06-27 11:59 AM
#
Avatar image of Dz3n
H/PC Newbie

Posts:
16
Location:
Ukraine
Status:
Hi! Using Windows CE Compatibility Layer (WCECL) you can run Windows CE programs in usual Win32 environment. Let me explain.

All Windows CE programs are Portable Executables, which is the same format as in Windows. Hence Windows is able to run Windows CE executables, but we only need a little bit of hAcKiNg. PE file has NT header, where located Subsystem number. Windows can run any number, but in user mode it's limited to only Win32GUI and Win32CUI (console window). If you try to run another subsystem, Windows will display error message. With help of WCECL SubsystemTool you can change subsystem number of any executable and its related libraries (DLLs) to Win32GUI (or to any desired number). After these easy manipulations you can natively run Windows CE executables on your Windows machine. More about file types and tools to convert you can find in WCECL Wiki.

But subsystem is not the only problem. Programs are using COREDLL.DLL library, which is the part of Windows CE system and can't run on Windows. This library contains all system runtime functions and they are almost the same as in Windows NT. WCECL contains own implementation of COREDLL, which redirects all calls to Windows and brings the compatibility. (More in our Wiki)


FAQ
Q: WCECL supports ARM applications?
A: On x86 - no, but WCECL can be compiled for ARM platform and you can run it on Windows 10 ARM.

Q: It supports Windows XP?
A: Yes, it's the minimal operating system version. SubsystemTool also supports Windows XP. The only problem - there are few calls which are not existing in Windows XP, and I can't fix it, because I use Windows 10 machine.

Q: So it runs programs?
A: Only if all functions used by program are implemented. Currently it ALMOST supports Solitare CE.

Q: When it will run any program correctly?
A: Be patient, because I'm the only one person and it's just my hobby. The project is hosted on GitHub and you can easily help to code.

The project is fully open-sourced and waits for contributors.
Information about contributing and other important things are in Wiki.
It's made just for fun.
GitHub: https://github.com/feel-the-dz3n/wcecl

I'm waiting for your questions!
 Top of the page
C:Amie Page Icon Posted 2019-06-27 12:26 PM
#
Avatar image of C:Amie
Administrator
H/PC Oracle

Posts:
17,951
Location:
United Kingdom
Status:
Hello Dz3n, I assume you came here because you saw my news post? https://www.hpcfactor.com/news/?iid=824

At the current time your project and documentation is very technical and assumes a lot of prior knowledge of terminology and tools. Do you intend to create a more simplified how-to to get people started?

What are your thoughts on the Microsoft project doing the same? https://www.hpcfactor.com/news/?iid=825

This is everything that we have in the SCL which currently identifies as having an x86 binary associated with it. Some are more complicated than others. Perhaps you can find some non-Microsoft test candidates in there:

ArtsSave 1.6
AygShell.dll Stubs [x86]
ButtonBar 1.0
DUGA
eBook Reader
EzDownload 1.15
GDBMce 1.7.3ce
krinput 1.0.1
MBA Calc 4.0.0.3
MDict 3.0
Microsoft .NET Compact Framework 1.0 SP3 for Windows CE 2.11
MilloNotes
nPOPuk 3.04
PocketC Runtime 3.00
PocketC Special Edition (Emulator version) b1.29
PocketTV 0.10.4
POGeo 3.3
PowerTerm CE 6.3.5
PrintCE SDK 4.22
ScrnGrab 1.0.1
Secubox 1.7
Secuwipe 1.1.1
TCPMP 0.66 0.66
TCPMP 0.72 Release Candidate 1 (RC1) 0.72 RC1
Terminal Services Wake-on-LAN 1.0
Total Commander 2.5
Umlaut 1.0
Visual Basic CE Runtimes
vxHpc 2.7.9
vxHpcPlus 2.1.9
vxUtil 2.1.3
WinCE iSCSI Initiator 1.0
Windows CE Task Manager 1.0.0.3
Winwatch 2.3.3
Wordle .95
WR-Tools CPULoad 0.7
WR-Tools Hotkeys 1.0
WR-Tools Resinfo 1.58.246

There isn't very much, sadly. 'Devices' were mainly limited to the x86 development emulator and the occasional person dossing around in Platform Builder.
 Top of the page
Dz3n Page Icon Posted 2019-06-27 12:46 PM
#
Avatar image of Dz3n
H/PC Newbie

Posts:
16
Location:
Ukraine
Status:
Hello C:Amie! I googled something CE-related and opened HPC Factor. I saw the news and was surprised.

Yes, I created some Wiki pages on GitHub repository to extend documentation and will write a lot more so people can understand.

Microsoft's project is interesting for me, but it emulates environment to run whole OS, when WCECL emulates nothing and works like usual program. I suppose that WCECL will work faster than native Windows CE and CEPAL. P.S.: Microsoft's technologies which were used in WSL and CEPAL are really nice, I suppose we can emulate a lot of interesting things with it.

Thank you for sharing x86 programs, I will try to run them.
 Top of the page
Ranomez Page Icon Posted 2019-07-07 1:10 PM
#
Avatar image of Ranomez
H/PC Newbie

Posts:
23
Location:
Romania
Status:
Hello!
I saw this and am actually pretty interested in it but especially cause of the ARM compatibility.
Since you said it can be compiled for ARM I'm actually wondering if it could work on jailbroken Windows RT as well once functional enough?
Explanation: Windows RT can't run exe not signed by Microsoft without a jailbreak, there's a jailbreak for RT 8.0 that allows running even unsigned apps and one for both 8.0 and 8.1 which only allows running test signed apps.
An issue I see with Windows RT is that I don't know what CE apps are compiled as (I honestly didn't play as much as I wish I had with CE cause my only CE device is a 5" PNA) but RT doesn't actually support ARM code, just Thumb-2.
Though there's also an abandoned x86 emulator for RT, not really advanced but can run some older games and apps and even a few more modern ones, although some very slowly so I should test the x86 version first when I get a bit of free time.
 Top of the page
C:Amie Page Icon Posted 2019-07-07 2:05 PM
#
Avatar image of C:Amie
Administrator
H/PC Oracle

Posts:
17,951
Location:
United Kingdom
Status:
CE 3.0+ can run common executable Thumb code natively, it is extremely rare to see anything compiled into it, but it does exist as an option if you are compiling from source.

https://blogs.msdn.microsoft.com/mikehall/2004/11/28/remember-cef-co...
 Top of the page
Dz3n Page Icon Posted 2019-07-07 8:28 PM
#
Avatar image of Dz3n
H/PC Newbie

Posts:
16
Location:
Ukraine
Status:
If you can run VC++ programs there, then you can run and Windows CE compatibility layer. Currently ARM build is not tested.
 Top of the page
Ranomez Page Icon Posted 2019-07-08 3:30 PM
#
Avatar image of Ranomez
H/PC Newbie

Posts:
23
Location:
Romania
Status:
Ok so I did try, sadly the x86 emulator is not advanced enough to allow me to install the VC redist (or at least not the 140 version, some older version might work) and complains about missing functions in ntdll plus some other missing dlls.
I also wanted to compile the projects for ARM and test that but somehow my VS 2017 install is absolutely broken right now (I admit I've not used it since I finished school over a month ago) and will probably require a full reinstall which I can't really be bothered with right now (plus the install takes a whole night cause of me needing a ton of components).
 Top of the page
Dz3n Page Icon Posted 2019-07-08 6:49 PM
#
Avatar image of Dz3n
H/PC Newbie

Posts:
16
Location:
Ukraine
Status:
See https://ci.appveyor.com/project/feel-the-dz3n/wcecl
You can download ARM and x86 binaries there!
 Top of the page
Ranomez Page Icon Posted 2019-07-08 10:24 PM
#
Avatar image of Ranomez
H/PC Newbie

Posts:
23
Location:
Romania
Status:
Ok, thanks, I was not aware of that.
I did test it now and when running CoredllTest a window pops up saying that coredll.dll is either not designed to run on Windows or contains an error.
 Top of the page
Dz3n Page Icon Posted 2019-07-09 10:18 AM
#
Avatar image of Dz3n
H/PC Newbie

Posts:
16
Location:
Ukraine
Status:
What system are using? Maybe it should be compiled for ARM64 target?
 Top of the page
Ranomez Page Icon Posted 2019-07-09 1:02 PM
#
Avatar image of Ranomez
H/PC Newbie

Posts:
23
Location:
Romania
Status:
Windows RT on a Surface RT (Nvidia Tegra 3) so ARM32 not ARM64.
The subsystem tool does work though, well considering the coredllTest app runs I can guess that also works, just the dll doesn't.

EDIT: Specifically Windows RT 8.0 not 8.1.

Edited by Ranomez 2019-07-09 1:05 PM
 Top of the page
Dz3n Page Icon Posted 2019-07-09 6:02 PM
#
Avatar image of Dz3n
H/PC Newbie

Posts:
16
Location:
Ukraine
Status:
Just tested on my Android ARM device and it works
https://i.imgur.com/rEdz5Gu.jpg
 Top of the page
Ranomez Page Icon Posted 2019-07-09 7:40 PM
#
Avatar image of Ranomez
H/PC Newbie

Posts:
23
Location:
Romania
Status:
Interesting, there must be some other limitation in RT (at least in 8.0, didn't test and can't test 8.1).
Well WINE doesn't have the normal RT limitations anyway but still it's fairly odd, I do have the VC Runtime installed and all.
 Top of the page
ntware Page Icon Posted 2019-07-09 11:01 PM
#
Avatar image of ntware
H/PC Elite

Posts:
660
Location:
Florida, US
Status:
This is tricky. Are you running Wine on an ARM Android device? I thought wine was x86 only. How did you manage to do that? Is it running on top of a chroot trick like Linux Deploy?
 Top of the page
Dz3n Page Icon Posted 2019-07-10 8:00 AM
#
Avatar image of Dz3n
H/PC Newbie

Posts:
16
Location:
Ukraine
Status:
Quote
ntware - 2019-07-09 11:01 PM

This is tricky. Are you running Wine on an ARM Android device? I thought wine was x86 only. How did you manage to do that? Is it running on top of a chroot trick like Linux Deploy?


No, it's official Wine for Android. There is also x86 version for x86 Android.
 Top of the page
1 2 3
Jump to forum:
Seconds to generate: 0.312 - Cached queries : 70 - Executed queries : 11