yashsingh1/xdaforums huggingface dataset:
[Windows RT Development and Hacking] WizardCM:
Hmm, I've started having an issue with HOMM3. After the 3DO logo, right before the video intro is supposed to play, it crashes. I've tried multiple clean installations (with the latest emulator patch) and multiple reboots. Any methods to debug it yet?

Latest crash happened even before the 3DO logo. Here is the error that occured that time (copied from Event Viewer).

I'm running on the 1.02 jailbreak.
[Windows RT Development and Hacking] mamaich:
Regarding crashes - this is due to a dynamic core, I think I've managed to reproduce the crash and would try to fix it this weekend.

Remember that this is only an alpha version, and the published build is only a first WinRT implementation of a DosBox dynamic core - so expect crashes and incompatibilities. They would be fixed later. Also this weekend I'm planning to add THUMB2 instructions to the dynamic core, this should noticeably increase performance.

Regarding touch screen. It is in plans, but in rather late plans - first I need to implement as much as possible of a standard WinAPI functions without adding extra layers of emulation code. And lots of programs would work as is - as the touch screen returns the regular mouse events to programs, and if the program don't process relative mouse movements, but use absolute mouse coords returned from OS - it would work just fine.
[Windows RT Development and Hacking] xsoliman3:
I guess this technique will also allow cmd line x86 32bit apps to run in due course.

I tried a few but they needed some file(s) or apis not yet implimented, or access violated the emulator
[Windows RT Development and Hacking] mamaich:
Console API is not implemented yet - I have not even tried to work on it. Only thunk functions are autogenerated, and some of them (callbacks for example) require manual modifications.

Next week I'll go on vacation - and hope that I'll be able to spend more time on the project.
[Windows RT Development and Hacking] weisun:
it seems to be the greatest work like your old imgfstool:good::cool:
[Windows RT Development and Hacking] TravisAntonio:
Even though I don't own a RT device but I develop for Windows 8, why not make a donation for this (mamaich) awesome guy? :)
[Windows RT Development and Hacking] funtikar:
Have anyone tried something more extreme? like Warcraft 3 : Frozen Throne?
[Windows RT Development and Hacking] SixSixSevenSeven:
Definitely well beyond the limits
[Windows RT Development and Hacking] GoodDayToDie:
Even if it would run (and admittedly, it might, although I'm not sure if enough of DirectX 7 is available), it would likely be too slow to be playable. The slowest machine I ever got it to run on was a 450MHz P3, and it was not good. The emulated speed is probably worse than that.
[Windows RT Development and Hacking] Amax:
Maybe you was bottlenecked by your RAM or GPU? The minimum requirements is actually a 400 MHz P2 (600 MHz recommended) so it doesn't sound like it should have been too bad on that P3. Especially with the maps included with the game. Some of the larger user made ones were just insane.

Also it's DirectX 8.1, not 7.

But yeah, I wouldn't count on running it on the Surface either, and mine is currently on 8.1 so no way for me to check it myself. But if anybody does have the game and RT 8.0, please do test it. The cd-check was patched out years ago so all you need to do is copy the installed files and run it.
[Windows RT Development and Hacking] hisoft:
I try it before update to RT 8.1. It doesn't work and show "Microsoft Visual C++ Runtime Error!".

Even it have working library. This emulator can give only 1/10 CPU performance, about 130 MHz for original Surface RT.
[Windows RT Development and Hacking] LolitaPlus:
I'm surprised that I can load cl and link in Win86emu.
[Windows RT Development and Hacking] GoodDayToDie:
Interesting... can you actually produce usable binaries? If you can build binaries for RT itself, even slowly through the emulation layer, that could be packaged up and be very valuable. It's really annoying needing to cross-compile everything on a separate machine.
[Windows RT Development and Hacking] LolitaPlus:
First thing, IT IS SLOOOOOOOOOOOW! Cross-compile and copy is much faster. You can share your host directory and use robocopy on Windows RT.

Second is, cl crashes when it is going to produce object files.

Haven't tried link with valid obj files since it won't be very useful if we cannot produce those files.
[Windows RT Development and Hacking] GoodDayToDie:
I'm surprised it crashes, but the slow speed is not surprising. Compilers do a lot of processing, relatively little of which involves the system libraries. Ah, well.
[Windows RT Development and Hacking] mamaich:
I've abandoned this project.

Some time ago my VivoTab RT died due to my experiments - UEFI failed to boot. Fortunately I still had warranty and the shop allowed me to make a replacement due to their service center being unable to fix it or replace with a working one.

So I've changed my VivoTab RT to a Lenovo Thinkpad Tablet 2 that runs x86 Windows natively.

As usual I'm publishing the sources of this tool. They are in the first post. Feel free to use them, just leave my copyright somewhere.

And don't ask how to build them or to explain anything - find that out yourself.

I may return to this project some years later if MS would make Windows RT more developers-friendly, but I'd start from scratch as now I have ideas on better implementation.
[Windows RT Development and Hacking] hisoft:
Thank you for this great software. :good:
[Windows RT Development and Hacking] LolitaPlus:
Project abandoned, bad news....wait you released your sources?

You made my day.
[Windows RT Development and Hacking] LolitaPlus:
I uploaded the code to Github:https://github.com/MakiseKurisu/Win86emu

Also fixed the build.
[Windows RT Development and Hacking] domboy:
Sorry for a slightly off-topic question, but if you no longer have an RT device, would that imply that your work on an RT 8.1 jailbreak is also abandoned? Or are you still able to work on that without having an RT device. Sorry if that's an ignorant question.

On topic, thanks for your work on this particular project!
[Windows RT Development and Hacking] mamaich:
Yes, abandoned too. As it is impossible to work on it without having a device to test.
[Windows RT Development and Hacking] LolitaPlus:
So can you share some of your progress? I thought you has already jailbroke Windows 8.1 since you made a patch specifically for 8.1.
[Windows RT Development and Hacking] domboy:
Understood. Thanks for the update.

Edit: Whoops, never mind, looks like I got usernames and developers confused...

---------- Post added at 11:43 AM ---------- Previous post was at 10:59 AM ----------

Sorry to spread confusion. I thought mamaich was the one working on the new 8.1 jailbreak, but now that look more closely at the thread on that topic, I see it's Myriachan instead.
[Windows RT Development and Hacking] LolitaPlus:
Looking at 0.061, I doubt who will ever try to fix a bug on a platform that his program will never run.

I know mamaich was trying to break SecureBoot, so I asked how's the progress.
[Windows RT Development and Hacking] domboy:
Ahh, perhaps that's the source of my confusion... they were both working on it in some respect.
[Windows RT Development and Hacking] mamaich:
There was a hole in Asus VivoTab RT UEFI that allowed running any unsigned EFI module, for example a patched Windows 8.1 bootloader with SecureBoot removed or Linux GRUB. You've just needed to set the "NvFastBoot" or "NvForceFastBoot" variable (I don't remember exactly which one), GUID="{02f93520-6889-4b79-28b3-8e2f715035e2}" with the SetFirmwareEnvironmentVariableExA function. This function can be called from a custom program running on a jailbroken RT device.

This forced your device to boot into simple UEFI shell where you could run any signed or unsigned EFI module. That shell had a simple "autorun"-like script, so you could automatically load a patched Windows or Linux on every boot.

The hole was closed in the pre-Windows 8.1 UEFI update, I think that the shell module was removed. If you had this variable set and your device got that update - your device just started to hang early on boot. It theoretically could be possible to recover the device yourself with special tools, but I've decided to send it to service and finally got it replaced with an x86 tablet.
[Windows RT Development and Hacking] LolitaPlus:
So seems like you find the usermode exploit (demo 2) in this speech:https://www.youtube.com/watch?v=4bB759KEk3Y

BTW here is whay myriachan found:http://it.slashdot.org/comments.pl?sid=4047191&cid=44466099
[Windows RT Development and Hacking] kitor:
So she found a way to defeat secure boot and we can't use it. That's kind of sad, since breaking it is the only way to fully unlock RT devices.
[Windows RT Development and Hacking] GoodDayToDie:
It doesn't fully defeat secure boot, just a portion of it. It probably wouldn't work for installing Linux or something. As she said, it's a bug in Windows itself.

It also looks like there's progress being made on a "real" jailbreak.
[Windows RT Development and Hacking] BIade:
Like soldering a non-arm CPU onto the mainboard :silly: (No offence, just wanted to make you smile, master)
[Windows RT Development and Hacking] mascondante:
Could this project work on the Raspberry Pi running Windows 10 Iot Core?
[Windows RT Development and Hacking] netham45:
The concept probably could, but not this particular implementation.
[Windows RT Development and Hacking] JAmerican:
Does anyone have a working link to a compiled Win86Emu MSI file?

I can't compile the source. I would really like to bring life back to my Surface RT using this.

TIA,

JA
[Windows RT Development and Hacking] <html>:
Any intention to resume this project after the introduction of Lumia 950s yesterday along with Display Dock?
[Windows RT Development and Hacking] Dj_Art:
Anybody can share installed version of win86emu? It doesn't install with new jailbreak.
[Windows RT Development and Hacking] aq3e:
Also curious on how to get this working with the latest break.
[Windows RT Development and Hacking] yopablo:
I am not able to download any built version. Can you share your installer?
[Windows RT Development and Hacking] aq3e:
http://www64.zippyshare.com/v/clW5zarH/file.html
[Windows RT Development and Hacking] black_blob:
IoT Core uses the same signing keys as Windows RT
[Windows RT Development and Hacking] mascondante:
I would like to see that. I could try to figure it out on my own but someone who knows what they are doing could probably get it put together quicker.
[Windows RT Development and Hacking] black_blob:
Build 10240 boots unmodified on a Surface, just grab the Pi2 image
[Windows RT Development and Hacking] roxas22:
Sorry,but the msi file installer says "the version of this app isn't currently supported on this system version" why?
[Windows RT Development and Hacking] outZider:
OK, maybe this will work.

I...

- decompressed the msi

- extracted the registry entries and generated a .reg file

- made sure I was in test mode

- copied the Win and x86node folders to C:\

- ran the tbl-reg.reg file and committed to the registry

- ran the Windows RT Signing Tool from the Windows RT Development Tool thread. this may need to be run again on your RT hardware

- executed \x86node\Windows\launcher.exe

There has been some success running cmd, regedit, so on. I have attached the zip containing the Win and x86node folders, as well as the .reg file.

Download is larger than 8mb, so is available here: https://drive.google.com/open?id=0B3H39su5YGnAMi1VMFVPZUlzZEk
[Windows RT Development and Hacking] 2390:
What is the difference between this and Bochs? I'm new to the Windows RT hacking scene, and am slightly confused
[Windows RT Development and Hacking] Qiangong2:
Someone correct me if I'm wrong, but I believe that Bochs is an emulator and win86emu translates the ARM application calls into x86.
[Windows RT Development and Hacking] 2390:
Oh okay. Has anybody gotten this to work on 8.1?
[Windows RT Development and Hacking] Qiangong2:
Yes:

https://xdaforums.com/windows-8-rt/rt-development/win86emu-0-6-windows-rt-8-1-t3237587
[Windows RT Development and Hacking] IvanStdio:
I can't download, it appears to error, what to do?
[Windows RT Development and Hacking] Qiangong2:
Follow the link here: https://xdaforums.com/windows-8-rt/rt-development/win86emu-0-6-windows-rt-8-1-t3237587
[Windows RT Development and Hacking] fruzi992:
Hi, i have a lumia with windows rt, i am trying to run chrome or firefox or opera but the compatibility set is to old (windows xp sp3), do you know how to properly change reg entries for a newer compatibility?
[Windows RT Development and Hacking] Qiangong2:
There's no way to improve compatibility with win6emu unless improve the code yourself. Also, you won't be able to get chrome or opera working because they run so slow. They run too slow to natively port, so they definitely will not run fast enough on win86emu.
[Windows RT Development and Hacking] Windows 11:
Hmmm...

I cannot seem to download the file from either links
[Windows RT Development and Hacking] symbiot999:
maybe I am missing something but the link to the google drive says not found
[Windows RT Development and Hacking] gailium:
Does this project support .NET 6 WPF apps?
[Windows RT Development and Hacking] danthekilla:
Have Any Developments Been Made On This

Is anyone working on this to make it run faster and/or more stable.
[Windows RT Development and Hacking] mamaich:
If I don't update the post - this does not mean that there is no progress.

I've integrated no2chem's DosBox dynamic core patches into my own code, added several specific optimizations, and here is the video showing the current emulation speed:

http://www.multiupload.nl/N6N0JYV3IK - it is HOMM 3 with the hires patch.

The build is still unstable - you can see that it hangs in the video end. But of cause I'm working on that.

I'll publish the binaries when I'll fix current problems and would add more functionality - for example the registry virtualization layer needed by old apps that write to HKLM (that layer is present on desktop Win8, but is removed from RT as there is no need in compatibility). You may see the need of this layer in HOMM 3 video - as I have to reset all game settings on every launch. There are more things to do, fortunately I'm on vacation and have enough time for coding.
[Windows RT Development and Hacking] danthekilla:
Fantastic I am actually a developer myself so I understand the way that this generally works.

I was just checking up on the development status, I like hearing about all the behind the scenes development work that is going on you know. The emulation speed seems to be much faster now, is that all from the dynamic core and is that all going to be coming in the next update?

anyway thanks heaps for the update and keep me posted.
[Windows RT Development and Hacking] mamaich:
Dynamic core improves speed a lot, but there were some other hacks - for example DosBox emulates CPU page tables, TLB and other features that are unnecessary in my project. Removing them and making direct RAM access from the generated code gave the best speedup. I'll try to speedup things a bit more, but currently increasing stability has a higher priority.
[Windows RT Development and Hacking] GoodDayToDie:
This is fantastic work!

Personally (i.e. do whatever you like, it's not like my opinion matters here), my priorities would be Stability > Compatibility > Speed. It's already fast enough, especially after removing the emulation for CPU parts (like TLBs) that aren't needed, to run non-real-time apps and very old real-time ones happily; given that, I'd love to see support for a wider variety of software. Running Heroes3 on my Surface, as awesome as that is, isn't quite as useful as running, say, Irfanview.

With that said, a possible performance improvement: I've noticed it appears to hammer one core very hard, but not use the others much if at all. Is there any chance that the dynamic recompilation could be moved to another thread, and basically do a JIT recomp of the stuff right ahead of the current program counter, while the program executes "natively" on the other core(s, if it's a multithreaded program)? This may be complex as hell (I'm not a DOSBox hacker in any way) but if possible, it could give considerable speedup given the Tegra 3's multiple but relatively slow cores.

Also, any parts of this you want to open source, that would be awesome. There are a handful of small changes that I would like to make (and I know that I could), and it would also be good to spread the process of adding support for additional libraries.
[Windows RT Development and Hacking] mamaich:
I agree with the priorities you've wrote. Now I'm busy with stability issues. Unfortunately due to ASLR I can't reliably reproduce bugs and this slows down the whole process :-\

Regarding multithreaded recompilation - DosBox is using only one thread and does not use any synchronization inside. I've tried to make it multithreaded in the builds published earlier - and that caused random crashes. I have an idea of making my own CPU emulation engine in a very distant future, and it would be optimized for multiple cores, would have an option to store recompiled code on the disk for later aggressive optimizations, would use MEM_WRITE_WATCH feature of VirtualAlloc to track self-modifying code. But making my own CPU core would be in a very distant future, may be even not this year.

I'm planning to release the modified DosBox and Bochs sources and publish an interface of adding Win API wrapper DLLs, but I'll do it a bit later, when those interfaces would be stabilized.
[Windows RT Development and Hacking] mamaich:
By the way - found the reason why HOMM stopped responding in the end of the posted video. It was due to the lack of "LOCK" prefix emulation in DosBox. As DosBox is only single-threaded, it does not need "lock" command at all, so it was not implemented.

Binkw32.dll (video decoder) heavily uses "lock inc [addr] / lock dec [addr]" for synchronization, and without "lock" the BINK decoder quickly deadlocks itself on a multicore machine.
[Windows RT Development and Hacking] danthekilla:
It is great to hear updates about this!
[Windows RT Development and Hacking] yareally:
Plug in a mouse to the USB port.
[Windows RT Development and Hacking] GoodDayToDie:
Not really waht this thread is about, but for the record, HOMM3 works fine for me using just touch. Simply tap where you want to click, or press-and-hold to right click. Dragging doesn't work correctly but the game doesn't use dragging anyhow.
[Windows RT Development and Hacking] mosfet:
Hello mamaich, it's been ages I haven't connected to XDA and the last time was when I was playing with Windows Mobile devices and I was doing some api hooking. At this time you already were on this forums and I am bit surprised to see that you are still here. Anyway these last month I had to port a big c++ sdk to windows rt and I had to develop some missing features like registry emulation or that kind of thing. I have a small lib for that so if you need something like that I might share it.I am not saying this is great code but might be useful...
[Windows RT Development and Hacking] mamaich:
Thank you for the offer - but I've already implemented all the registry manipulation functions, including the registry key redirection for HKLM that is readonly now for programs that are not run as admin.

Currently I'm working on generic WinAPI - like shell32 interfaces (IMalloc, IShellFolder and so on), implement windows messages that pass callback functions in LParam and so on.

There is a good progress, but need time to make workarounds for bugs in the existing programs. For example WinRar sometimes returns pointers to strings allocated on the stack of the returning function, other programs, HOMM3 for example - like to access the heap after it was freed, other programs use SuspendThread or "lock inc [addr] / lock dec [addr]" for synchronizations instead of normal WinAPI.

On desktop Windows we have existing shims with workarounds, but here I have to emulate them myself as there was no sense for MS to port them to RT.

I really appreciate the amount of work Microsoft did in recent desktop Windows versions for keeping the compatibility with such old programs. This layer is invisible for the end-user, but you really can't live without it.

I'll post a new test build here after a set of a test programs like WinRAR would run correctly. This would be soon enough.
[Windows RT Development and Hacking] xsoliman3:
Great work. Looking forward to seeing further developments (and helping if I could).

Just out of interest was reading up on the vaguely similar older project at http://wiki.winehq.org/ARM (WINE on Android/LInux ARM)

Update - Note WINE on ARM emulates the cpu and catches the apis and runs their equivalent natively
[Windows RT Development and Hacking] netham45:
This, technologically speaking, is pretty much the opposite of WINE.

WINE implements the API and runs the code natively

This emulates the code and runs the API natively
[Windows RT Development and Hacking] mamaich:
Yes, I'm looking at their sources and to the code of ReactOS (they have some ARM support too). I can't directly borrow their code as we have too much differences in the core, but I'm looking on the ways how they've implemented some non obvious/undocumented things. And I'm also heavily studying the leaked Windows NT4 and 2000 sources (of cause I don't use any part of them in my project, but they contain really useful information).

I'll publish a new version this weekend.
[Windows RT Development and Hacking] mosfet:
And when do you sleep ;) ?

Just curious to know how you can find time to code so many things...
[Windows RT Development and Hacking] mamaich:
I'm Windows Server admin in a real life. And good admins have enough free time at work :)

By the way, I've tried to run pinball from Windows 98 under emulation. It runs, but the ball is stuck in the top-left corner. This is due to floating-point emulation problems that would be hard to find and fix.
[Windows RT Development and Hacking] GoodDayToDie:
Hmm... is 80387 (x86 floating point instruction set) emulation not available, or is it justa bug in the ARM port of DOSBox? While FP math is kind of crazy and many processors seem to handle the instructions a bit differently (dedicated registers or not, different FP modes, etc.), it would be good to have. Many games, media decoders, and tools will rely on this... Let us know how it goes, thanks!
[Windows RT Development and Hacking] mamaich:
The second - incorrect emulation. Or maybe it is my fault, I could initialize emulated FPU control word with a wrong value, for example I could set rounding to the wrong direction (I've taken the value from a desktop Windows 8, and it may differ for Win98 programs). I've tried the Bochs core - the same problem there, so it really may be my bug.

Edited:

It was my bug. I've set FPU control word to 0x37F, while Win98 value was 0x27F. That one bit controls the FPU precision and caused problems in Pinball.
[Windows RT Development and Hacking] danthekilla:
Wow this sounds like it is coming along great!

Any idea when you can drop a new version?
[Windows RT Development and Hacking] mamaich:
As I've promised earlier - I've updated the first post with a new build.
[Windows RT Development and Hacking] WizardCM:
Glad to hear this has finally reached beta, but every time I try to run anything other than the H3 Demo file provided in previous versions, I get the "Error in the emulated program" message. Including HOMM3 Complete with the 32-bit patch or the HD patch set to 32-bit. I enabled full logging in the registry, and the file literally says "Logger initialised" and "Logger unloaded"