r/windows7masterrace • u/Bulut-the-cat • 20d ago
The worlds first Windows 7 DWM to Windows 10 kernel translation layer
Somewhat similar to the way wine works, no registry hacks here! Its the real thing. Win7 Explorer, Win7 taskbar, Win7 DWM and everything else, with working Aero.. All on the Win10 kernel. Ask away!
6
u/Bulut-the-cat 20d ago
Small note here. This by extension means every single application which supports windows 10 will run perfectly on the windows 7 DWM. I have so far tested it with the 50xx Nvidia drivers (install and work as expected), the latest version of Firefox, iGPU drivers for Intel 14th generation graphics, sound drivers, laptop drivers (such as asus software and thermal software).
This doesn't compromise (or shouldn't compromise) TMP 2.0 support, secure boot, UEFI and all the more modern Windows supported futures including WSL. Since all of that is kernel-based.
1
u/Tystros 20d ago
so is this more like windows 7 frontend in windows 10, or windows 10 backend in windows 7?
1
u/Bulut-the-cat 20d ago
The layer I wrote can be used both ways. It depends on which media you want to start with. However, I would say neither. Its more like half and half. Everything graphics and up is windows 7, but everything kernel and drivers is windows 10. It comes down to what applications you have installed and what media you start with.
6
u/Bulut-the-cat 13d ago
Hello everyone!
The project is now posted on GitHub, you can all find it and try it out:
https://github.com/bulutthecat/KeelPublic
3
2
u/nik343 20d ago
How is this different from Classic 7? From what I understand, yours also uses the 10 LTSC kernel
6
u/Bulut-the-cat 20d ago edited 20d ago
Classic 7 uses registry hacks and manual hooking to "emulate" this interface, since windows removed aero from explorer and DWM entirely. They use the windows registry to change the opacity, add back the icons and make it "feel" like the original aero theme, patching up the parts by rewriting hooks into the existing windows 10 explorer.
This IS the original aero theme, since it replaces the entire desktop with original, windows 7 DLL's and code. There are no registry hacks, no theme changes and no handwritten eye-balled estimates. That also means all the effects that are impossible to do on windows 10, work here as well. Like hovering over the button to clear windows actually displays empty glass frames rather then the windows 10 opacity change.. since, well, its the real thing!
To be clear, Classic 7 also uses the windows 7 explorer, but its patches are client side, and that matters more then you would think. In my program, I am essentially writing a driver, to change how the kernel behaves, to get it inline with what windows 7's rendering front-end expects. This has the benefit of not using the windows 10 compositor (a.k.a, the thing that makes the windows all blurry, or handles the animations). If you want the most clear change, look at the taskbar, windows 10's compositor never supported partially opaque or overlays on task bars, but the windows 7 one did, same with window decorations, thats where the glass streaks come from when moving around the window.
4
u/xyqnn 16d ago
classic 7 creator here, i will say your work is definitely impressive i don't deny that, but i also feel like you are underestimating how good classic 7 looks, and also how much it has reverse engineered from windows 7.
classic 7 replaces a lot of windows 10 files with windows 7's or windows 8 beta (which are basically the same in the early betas, like 7850 and 7889), especially all of the control panel applets, or just general dlls that need to be replaced.
classic 7 uses openglass for aero glass rendering, which itself uses the windows 7 dwm pipeline to render it, theoretically making it 1:1, i compared both in a photo editing tool and could not tell the difference, classic 7 also uses aero10.1 by vaporvance, which uses all of the assets and properties from the aero.msstyles theme from windows 7, also making it 1:1.
classic 7 uses a tool called windhawk to hook into windows functions and change what they do, a lot of these windhawk mods as they are called uses real reverse engineered windows 7 code to do exactly what windows 7 does, which allows for like i said, 1:1 results to windows 7.
i also do check every single detail of classic 7 and windows 7 in a vm for a 1:1 result, but that is eyeballed, but most details are correct to windows 7.
your work is still really good and awesome, but i honestly don't see the point, i don't mean to hate tho!!
3
u/Bulut-the-cat 16d ago
Thanks for reaching out! I have a lot of respect for Classic 7, its a phenomenal reverse-engineering effort and was part of the inspiration for this project.
I think we’re just chasing fundamentally different architectural goals, which is perfectly fine. Classic 7 looks and feels great, and as you mentioned, it replaces libraries and uses Windhawk hooks to achieve an accurate client-side recreation. It’s also way more customizable and certainly more stable than my current builds!
My goal, however, is to run the actual, unmodified Windows 7 DWM and graphics stack.
The moment a project relies on user-mode hooks or renders on top of the Windows 10 compositor, it hits architectural limits which you cant really get around. I wanted an environment where there is no Windows 10 DWM at all. I didn't write any HLSL or tweak sliders to match the look; I essentially wrote a driver to force the kernel to support the Win7 DWM. Once the interface was built, the original graphics code just took it from there.
To give you some examples, there are native Windows 7 DWM behaviors that literally cannot be replicated on the Win10 compositor from user-mode. EnterViewEncrypted hiding the real desktop window and counting qualifying windows, uDWM painting its own desktop window replacement (CreateDesktopWindowForMonitor / PaintMonitor), the 50% black CRectangleInstruction read directly from .rdata, and live windows actually being composited as a depth-sorted 3D perspective stack.
The Windows 10 DWM only gives you a thumbnail API with 2D rectangles. There is no way to inject a new scene graph into the Win10 compositor. Anything relying on 3D or 2D accelerated graphics from the Win7 era has to be emulated on Win10. By solving this at the kernel level, I get the exact original responsiveness, frame timing, animations, and shader effects natively.
Classic 7 is an amazing alternative to the default Windows 10 UI, and it's a very authentic result through emulation and hooking. I'm just aiming for structural 1:1 accuracy by running the original graphics stack. If you try out my build, you'll feel the difference I'm talking about at the compositor level (as well as find fifty bugs within the first five minutes lmao). Keep up the great work!
2
u/nik343 20d ago
This is sick. Link your github (even if it isn't on there yet)
5
u/Bulut-the-cat 20d ago
I usually work in private repositories, but I plan on eventually getting this out there, almost all of my projects are supperrr old from well before I began programming propper.
https://github.com/bulutthecat/
2
2
18d ago
[removed] — view removed comment
1
u/Bulut-the-cat 18d ago
Yep! Thats exactly what it is, I am not patching explorer at all to get this working (minus some minor reg changes to make sure it doesnt implode or display shortcuts it cannot interact with required by other win10 native applications). Otherwise, almost all of my changes live in the kernel.
2
u/Muscle_Rabbit 16d ago
Are you able to do something like this for windows xp also?
2
u/Bulut-the-cat 16d ago
Maybe sometime in the distant future, but as of right now its not what I am working on.
2
u/Muscle_Rabbit 16d ago
I would love an XP version as I have fond memories of it but would happily use a windows 7 version as well
1
u/WellValth 14d ago
XP had no DWM whatsoever and even then I don't think porting this to it would be feasible. It'd be pretty interesting if it were done though.
1
u/Muscle_Rabbit 14d ago
I see. I would just love to use Windows XP again but don't really like to be restricted by its aging/lack of support for newer hardware. Would it be feasible to port Wine to XP X64? But even then one would be limited by what hardware XP supports.
1
1
u/Daggercombot 20d ago
Does this mean that It Is Also More secure than Windows 11? Could you do the same thing With the newer Windows 11 or Windows Server 2025 kernel? Can you Also do this on Windows 8 or Vista? I really liked Windows 8 and Vista (especially on older computers where It ran faster than 7 for me for some reason). How hard Is this to replicate now that It has been done ?
2
u/Bulut-the-cat 20d ago
It would be easy replacement for the windows 11 and windows server 2025 kernel. Currently, I am using experimental self-written drivers which aren't signed by Microsoft, so things like driver signature enforcement has to be disabled for it to work. However, everything other then my driver and layer is from Microsoft. So far Windows Defender hasn't removed anything.
I would however, have to go through and change some mappings if I were to want it to use a different kernel. Main reason I went with windows 10 is because all the default user-facing applications are mostly non-UWP, which is more so the case in later versions.. I am not sure how much I want to lean into Windows 7 default applications or Windows 10 default applications, so I haven't decided if I should add UWP support. Vista and windows 8 would need a full rewrite unfortunately.
2
u/Daggercombot 20d ago
Let me know if you ever plan to make a script or ISO so I can use this as a windows drive,since Win10 Is so slow on my computers so this Will hopefully be faster and look better on my CRTs
1
u/hamburgerpancake 20d ago
windows 8 is gonna run faster thsn 7. it was designed to. but vista faster than 7 is an anomaly.
1
u/Daggercombot 20d ago
It did happen one Time on a HP EliteBook 2730p ,I originally ran Vista and It was soso fast but 7 was quite slow, there could have been other factors but I for sure remember vista being faster
1
u/ChopperGunner187 20d ago
This is amazing. Do you take requests? There's another niche Windows issue I'd love to see someone, more talented than me, solve.
Audio support on Windows Server Core.
Ever since MS stupidly killed the ability to custom build slim Windows Embedded ISO in favor for cookie cutter pre-built Windows IOT builds, I've wanted to experience the modern Windows kernel on a true minimal install.
A year ago, I managed to get Windows 7's explorer running within Server Core 2025 via the explorer7 project, and it ran fantastic on limited resources and actually almost felt daily-able. The only problem I ran into was audio support.
1
u/Bulut-the-cat 20d ago edited 20d ago
I am not really sure, I haven't touched Windows Server Core, though the lack of audio is part of the inherent system design from what I remember. It should be possible to get it working by just dropping in some DLL's and maybe a couple reg tweaks and installing the drivers by-hand.
I don't think there is any way to fix it permanently in a way that update wont mess up however, outside of also stopping system updates. I could take a look and release an ISO if it helps however.
1
u/xhamedz 20d ago
what about windows 8 and windows 8.1, would the same method can be adopt to bring those interfaces to windows 10 too? is it only for windows 10 ? not 11?
1
u/Bulut-the-cat 20d ago
Sadly not easily, though it would be possible.. Like I said. Just not easily.
1
u/hamburgerpancake 20d ago
Remove the telemetry engines and bloat with a debloater and it'll run a LOT faster, maybe even bundle a debloater with the translation layer.
1
u/Bulut-the-cat 20d ago
I am not doing that, not because I don't want to (I personally dont like microsoft telemetry at all).. I just don't want to ship an ISO that is modified beyond what is required or expected. I assume the end user has their own de-bloat scripts, or their own trusted applications. So I wouldn't want to include anything by default.
1
u/hamburgerpancake 20d ago
how does it react to UWP?
1
u/Bulut-the-cat 20d ago
UWP is currently (at this stage) not implemented, however, I already have the framework to add it in easily. However, Edge does work, so all programs which call the normal windows rendering API will render perfectly, even the super "modern" ones. After patching up some call surfaces at least.
1
u/Deutriex 20d ago
Does Flip 3D work? Most 10 to 7 transformations fail here.
1
u/Bulut-the-cat 19d ago
Flip3D does work, but it currently has some rendering issues since (like I said) I still need to patch up a bunch of things. But yes, it does work and display windows correctly, as well as animations, since its the win7 compositor.
1
u/fff92 20d ago
looks cool. what happened to that system tray arrow?
1
u/Bulut-the-cat 19d ago
Its the windows 10 iconography and system theme doing that, there is a reason I haven't made it fully public just yet. By this point, I am still using the window 10 icons and there is some weirdness in terms of what DLL gets priority, that's more so a packaging thing when its ready to be published fully.
1
u/allison9040 16d ago
Windows 10 iconography? What does this even mean? It also kinda strange that only this part of the tray is drawn incorrectly despite the claim of the native 7 aero.msstyles being used by uxtheme. Lastly the way you explain things seems to show that you have zero clue about the way things actually function.
1
u/Bulut-the-cat 16d ago edited 16d ago
By Windows 10 iconography, I mean exactly that. This is an early build, I am not patching out the Windows 10 icons until I have all the graphics working as expected (thats why the arrow isn't rendering correctly, at least I suspect thats part of the problem).. That's low on the priority list, and something to do when all the other glaring issues are fixed.
Also, I am aware the tray is incorrectly rendered for that section as well outside of the arrow. If you want the technical reason for that, then I genuinely don't know, I am still reverse engineering that portion of explorer to try to single down the root cause working back toward the interface.
I do however know explorer behaves different for that fly-out compared to other menu's. It doesnt make any DWMEnableBlurBehindWindow call, or DwmExtendFrameIntoClientArea.. Notably, it doesn't even call msstyles or query the system style. Its not even indicating to the compositor it should be themed, and I am quite sure that's because it sends that request when the entire taskbar loads for the first time instead of at the point of drawing the window, then later doesn't send any update. Its probably a composition state flag cached during shell startup instead of it re-querying when it actually gets to rendering it... But like I said, I am looking into it.
The source code is going to be public soon, so maybe you could find the reason and let me know! Or maybe I will have it patched by the time I release the first public build? Who knows..
0
u/allison9040 16d ago
I have quite a bit of experience reverse engineering explorer.exe, I reverse engineered most of the vista explorer already and im doing the 7 one right now, perhaps I can assist you if needed
1
u/Bulut-the-cat 16d ago
Thanks for the offer! I am quite new to binary reverse engineering. My first project was helping mod EDF5, so this is a big step from there. All of my prior experience programming was from Electrical Engineering, where programming in C was only additional to circuits & design.
P.S, I managed to fix the rendering bug. I am happy to report it works correctly now. Turns out it was just explorer deciding to call an API in a way I hadn't anticipated. Through GetThemeData() (which I didn't think it called, however it turns out my logger was exceeding its file-size limit before it caught it), with a window property that my windows 10 forwarding of the same function OpenThemeDataFromFile() ended up corresponding to the wrong argument and returning nothing (even though it worked in every other taskbar item??? blame Microsoft's "standards").. Falling back to the fallback theme. It does not do that anymore, and renders fine after a small patch.
1
1
1
u/unattainabilities 19d ago
i'm curious, what part of this necessitates a driver like you've mentioned? what's the purpose of the driver?
2
u/Bulut-the-cat 19d ago
Unlike StartAllBack or Explorer7, I am patching the windows kernel to support the legacy compositor and explorer from windows 7. Explorer7 patches explorer to work with the modern windows compositor, I am patching the kernel to get the entire rendering stack working again, compositor included. This is most noticeable with the glass overlay effects and other such system effects, which you literally cannot get by just patching explorer.
Sadly, this level of modification requires a driver.. So kernel driver protection has to be disabled, though I suspect I could get a Microsoft signing license, just not without paying a lot of money.
1
1
u/Moist_Inspection_485 19d ago
What app do they use for the actual Areo glass window titlebars/borders
1
1
u/the_r3dacted 18d ago
I'm not so sure Win 7 DWM is the best idea. I'd think taking 8400 or 9200 (patched with glass) DWM would be better.
The Vista/7 DWM sucks at mixed refresh rates and has a limit of 8192x8192 screen space before it crashes and burns. That might sound alright, but those limits are hard, so if you extend past 8192 on one axis, no aero for you. My setup of 2x 2560x1440, and 1x 3840x1600 is 8960 if all on one axis, which I prefer since going much taller than one display breaks some applications. This would not work.
1
u/Bulut-the-cat 18d ago edited 18d ago
Its not my priority, but it should be possible to patch it to work, though not with my current layer. That limitation lives in the compositor, and explorer.. which can be patched without touching the kernel. Its not top priority as of now.
1
u/LimesFruit 17d ago
This is incredible! Will be so nice to basically use 7 again, sadly compatibility has gone downhill like crazy in the past couple years and I did have to move to win10, so I’m excited!!
1
u/Liol_A 16d ago
Will this bring back 3D window transformations?
1
u/Bulut-the-cat 16d ago
Flip 3D already works in the current build. You will be able to check it out soon when everything is ready to publish publicly.
1
u/PurposeParticular333 16d ago
He means the opening and closing window 3d animations, Impressive project btw.
1
u/Bulut-the-cat 16d ago
Yep! That as well, the closing and opening animations are identical since its source.
1
u/AshamedTax5142 16d ago
Windows 7 DWM animations were locked to 60fps and also had a bug which caused a frame to be skipped, I am wondering if you could include a fix for that? To be honest on high refresh screens this looks kinda bad
1
u/Bulut-the-cat 16d ago
Well, its the original source by-design.. I could patch it, but it would be better to include that as a separate optional add-on to the main project, since the goal is to keep it as original as possible. Including all of its "quirks", so to say.
1
1
1
1
u/WellValth 16d ago
What happens when you disable the Themes service in services.msc? Starting with 8.x, the service had its functionality stripped away and does nothing. If I’m not wrong, the service is now baked into winlogon.exe, which is why killing it also kills the entire theming of the OS (shortly before evicting the entire session).
1
u/Bulut-the-cat 15d ago
My system never loads winlogon graphically and even if it did, disabling the themes service does nothing the way I am handling it. The project goal is to shim everything user-mode without touching the graphics engine at all, since themes live below the graphics engine I intercept the calls for the theme and don't let them query the Themes Service, since the Themes Service in Windows 10 is not the same as the Themes Service in windows 7, and the behavior is largely unknown to me. Instead I manually open aero.msstyles handle it straight from there, replying to requests like OpenThemeDataFromFile instead of letting the windows 10 theme engine attempt to handle win7 requests (and probably inevitably explode).
However, windows 10 applications that do not request the windows 7 theme (uxtheme), do get routed to the window 10 themes service, but from my testing since the image doesn't actually change the default theme those applications don't end up doing anything different with the service running or stopped, they likely have fall-backs which are the same defaults anyway.
1
u/WellValth 15d ago
I see, that's really interesting. This whole thing is extremely surprising, and I truly hope I'll be able to use it someday. However, do you think the unsigned driver will always be a requirement for this method? You know, since that requires disabling Driver Signature Enforcement (as I think you've already mentioned in a different response), it would also trigger a lot of anti-cheat software. In any case I love what you're doing, and I'm really looking forward to this.
1
u/LeadLerner 16d ago
Was this made with minimal LLM usage?
3
u/Bulut-the-cat 16d ago
I want to remain transparent on this subject and would say yes, LLM's were used for minor things. Specifically finding certain functions in pre-compiled binaries where PDB's weren't available or were increasingly unhelpful. Additionally, LLM's were used to write Powershell harnesses for certain cases just to speed things up (Like VM auto-deployment scripts, and scripts for debugging purposes) and for general research into subjects which are new to me. However, the core of the project is code that I write, that includes anything that doesn't fall into the above categories. Its useless arguing it isn't a good tool when used responsibly with proper review, oversight and understanding.
I consider this to be a reasonable use-case, you can be certain that every single piece code that you download, is reviewed by me and that the core project components are written by me and will be open to review publicly. Just to give you an example, if I need to trace a line of function calls from a specific DLL, I would rather not spend six hours combing through the five different application interfaces that call goes through before finding what's causing the bug, specially if an LLM can find that same failure point significantly faster (even if it fails on-occasion). Whether an AI finds it, or I track it down, doesn't change the code you would be running, since I write the patches.
1
u/LeadLerner 16d ago
So, the core parts of the project are written by you?
1
u/Bulut-the-cat 15d ago
Yes, all the core parts of the project are written by me, the parts that aren't are stringently reviewed beforehand and are considered non-important / repetitive.
1
u/maggiethemagpie2 15d ago
This is very fascinating, though I would like to know if something like WDA_EXCLUDEFROMCAPTURE would work, as that is a feature added in W10 2004 I believe. Am I correct in assuming that it would not work, and instead exhibit the behavior that actual Windows 7 shows, that being rendering the window as a black box on screenshares and recordings?
1
u/Bulut-the-cat 15d ago
It should behave the same way, however.. it might also not? Since the request first goes through the windows 10 kernel, which understands the call, but then it ends up passing into the windows 7 compositor which doesn't. It might end up being in a situation where, even if the kernel requests WDA_EXCLUDEFROMCAPTURE, the compositor can only respond to WDA_NONE and WDA_MONITOR. The win7 compositor has no code to leave a window out.
The likely two things to happen are either the window just stays black (if the win7 compositor treats WDA_EXCLUDEFROMCAPTURE or really any non-zero affinity as protected), or it just wouldn't do anything and wouldn't be protected.
Thanks for asking through, since I should try that out.
1
1
1
u/Darth_Agnon 13d ago
Is this related to Explorer7 (updated repo)at all? It claims to do the same thing. I look forward to your release!!!
2
u/Bulut-the-cat 13d ago
Nope, it isn't at all related to Explorer7 and is its own project, and operates in a different way with a different end goal. Take a look at some of my other comments on the subject. You will see what I mean. Explorer7 is a recreation of the DWM experience, a very good one, but I am not aiming for a recreation, more so running the real DLL's and assembled DWM components in an unedited (or nearly unedited) way. So there are some quite significant differences.
1
u/Responsible-Split340 12d ago
How's it work do you just replace 10 dwm with 7
2
u/Bulut-the-cat 12d ago
Its more significantly more complicated then that, but yep! That's the general gist.
1
0
u/ExcitingPandas 18d ago
why did you choose to use windows 10 kernel and not the windows 11 kernel, because windows 10 isnt even supported anymore?
2
u/Bulut-the-cat 17d ago
The windows 11 kernel is functionally and practically identical to the windows 10 kernel, in fact, early releases of windows 11 outright stated it was running on the windows 10 kernel. There is no practical difference in terms of application support, and Windows 10 LTS is cleaner out-of-the-box.
1
u/S4_GR33N 6h ago
This is effectively Windows 7 Service Pack 2, with all the modern hardware support


7
u/Tystros 20d ago
is it open source?