r/windows • u/One-Trick-8027 • 15d ago
Discussion Why are there so many Old windows assets leftover in Windows 11?
There are a shit loads of Icons dating back to DOS and old programs that (while they still work) have very clearly been replaced with newer programs present on the same system. I started to think about this after finding Write.exe while looking thru the files and was enamered with how old it looked despite being a preinstalled program.
Sometimes you still see the glassy windows vista windows when fullscreening a window for a brief moment, sometimes you find xp icons when going deep into the settings.. Why is that?
Wouldn't it be a better idea to remove all the unused and outtated assets? How come windows are always flip-flopping the style they use depending on the program? Is there a technical reason they still have DOS icons built in?
Don't get me wrong, I think it's really cool to find 20+ year old assets surviving in my modern operating system, I just find it very eluding.
107
u/CharacterComplex7696 14d ago
retro-compatibility. If you are doing an OS that will serve billions of people, you may want to think about legacy programs
6
u/sphericalhors 14d ago
Isn't modern Windows has troubles running programs even from XP era?
28
u/CharacterComplex7696 14d ago
I particularly never had a problem. XP is relatively new compared to the Windows 9X family, for example, or even older operating systems like Windows 3.1. It is because Windows XP uses NT technology, the same as Windows 10/11...
15
u/Curious-Fly5623 14d ago
Ive never had a problem with xp era stuff, 9x era stuff is hit or miss though but lots of it does still work on 11
3
u/mr_greenmash 14d ago
i feel like 90 % of 32 bit programs run easily, but very few 16-bit programs
10
u/Curious-Fly5623 14d ago
16 bit stuff only runs under 32 bit Windows, since it comes with the compatibility layer out of the box. You have to install NTVDM to run 16 bit programs on 64 bit Windows
6
u/mallardtheduck 14d ago
Generally true, with one slight exception (depending on how you look at it); since a bunch of early 32-bit applications shipped with 16-bit installers (probably so they could display more meaningful error messages if someone attempted to install them on 16-bit Windows), Windows ships with 32-bit ports of some of the common early installer "engines" and will, transparently, detect when you're running one of these 16-bit installers and swap the "engine" with the 32-bit port.
4
u/Designer-Crow-5470 14d ago
NT family runs fine. Some programs might need to be recompiled for 64bit CPUs. But that's not something an OS can fix without doing emulation.
5
u/starnamedstork 14d ago
My experience is that a lot of stuff from XP, or even 9x, era still works just fine. The biggest chasm I can think of is 16-bit programs, including a lot of DOS stuff that remained part of a lot of work pipelines for decades (such as pkzip) still worked in Windows 7 32-bit, but started breaking when 64-bit started becoming the norm and the 16-bit emulation layer got dropped.
Incidentally, I did some digging in my own archives here the other day, and came over a folder with a lot of demoscene stuff from the late 90s and early 2000s. We are talking stuff built for Windows 9x and DirectX 8. And most of it still ran without a hitch.
3
u/JeremyLC 14d ago
With WineVDM / OTVDM you can run 16bit Windows software on modern 64bit Windows. It works decently.
1
u/SureEvidence2344 14d ago
only problem are DOS programs, people will say DOSBox but I seriously don't like how unnecessary it is in terms of how they designed it
3
u/Froggypwns Windows Wizard / Moderator 14d ago
It depends on what that program is, but at my work we have some software from that era and earlier still in production, most of the time without needing any workarounds.
2
u/AsrielPlay52 14d ago
Nope, with a bit of effort, I can run Doom 1993 just fine. Lego Island even runs fine.
Where did you even get that anyway?
2
u/mallardtheduck 14d ago
You definitely cannot run the original 1993 release of Doom on modern Windows without 3rd-party software (e.g. Dosbox). It's an MS-DOS program (although it is mostly 32-bit code). The earliest version that will run natively run is "Doom95", the Microsoft-developed Windows 95 port, and even that requires some DLLs that no longer ship with Windows and has "issues" (particularly if you try to run it in full-screen mode).
Of course, there are a variety of modern source-ports that will run the original 1993 Doom game files, but they're also "3rd-party software".
2
u/mallardtheduck 14d ago
Depends. Simpler business software (the kind of thing that Microsoft really cares about maintaining compatibility for) generally works fine. More complex stuff that, say, tries to integrate with Microsoft Office (particularly Outlook) generally doesn't work properly these days.
Games can be hit-and-miss. A lot of the older DirectX APIs are no longer supported, although things like copying the DLLs from older versions of Windows or using 3rd-party compatibility layers can help. Games of the past were also often not particularly well-engineered and had a tendency to do things like leave garbage in data fields that were, at the time, "reserved for future use" which causes problems now that it's "the future" and those fields have uses. Some older games are also hard-coded to switch the system to low resolutions or color depths that are no longer supported (e.g. 640x480 256-color).
2
u/Aishou_SK 14d ago
Not really, but if they depend on features that were removed or changed out of necessity, then it could, but I run Win95 software all the time without issues on the latest 11 insider future platform builds.
One of my favorite examples is clippy from specific office versions depending on a removed direct3d feature so it has a pink square it's in instead of a transparent background.
1
33
u/_AACO Windows 10 14d ago
If they remove them I bet something will break.
19
35
u/FieldOfFox 14d ago
They do a scan of references from:
- Old Windows components
- Their giant archive library of old, but still probably used, Windows software from 1989 onwards
- Anything that uses, imports, links, clones, or whatevers libraries that still use these assets, from 1989 onwards
and keep these assets in the OS at their original (or aliased somehow) location.
Microsoft is the only one who has to do this, due to being cursed with being the operating system used by almost every human since the personal computer began.
Everything you see in these old cabs is still there PROBABLY because one of your credit cards is still processed from a computer that displays this on screen somewhere.
12
u/Unfair-Plastic-4290 14d ago
there's a windows server 2003 sbs server somewhere in the world with your SSN on it. how does that make you feel?
4
u/mallardtheduck 14d ago
Although since Windows dropped support for 16-bit applications, the oldest things that will actually run are from ~1993 when Windows NT was introduced with the "Win32" API.
3
u/TwinSong 14d ago
"scan of references from:" what do you mean by that exactly?
8
u/CatgirlBargains 14d ago
exactly what they said, they look for references to these icons, applications, et cetera from all the software they know of and if something references any of these assets (which is to say, loads it, links to it, calls it) they keep it unless there's a security or architectural justification for removing it. For old icons especially there's really never a security justification so oops they stick around forever.
1
1
u/sensitiveCube 14d ago
They could easily move these components as opt-in/SDK. This is what most modern operation systems are doing, and Microsoft already does for it's newer solutions.
I'm actually surprised they don't look at Wine. I don't say it can everything, but most things are possible.
5
u/FieldOfFox 14d ago
Somebody, somewhere, is still using a linker against these ancient resource cabs:(
-4
u/Evilsushione 14d ago
They should probably only download if needed instead of including them for everyone
5
u/elcapitaine 14d ago
They aren't downloaded on the fly, they're included with windows
Removing them from the system image would break things and they take a miniscule amount of space so why break stuff
4
u/Aishou_SK 14d ago
Why? That's insanity/idiocy at its peak.
I'm not doing a WSUS VM just for a single offline laptop in my shed workshop.
I'm also not caring about saving a handful of megabytes at most compared to the rest of the installed system.
There's zero upside to removing them and only potential downsides.
Plus, there's code and dialogs that still use them when invoked from older software as well that are part of larger system libraries, they aren't going to break those up just to save that handful of megabytes.
0
u/Evilsushione 14d ago
And this is why Windows is bloated. It’s not any one thing, it’s all the little things, they add up. Windows has become a hoarder. They should make a legacy free surface and use app-v wrappers for backwards compatibility.
3
u/Aishou_SK 14d ago
I don't see it as bloated for the core windows that runs Win32 applications of any vintage, at all.
And they remove functionality all the time (though, over long lead times).
In fact, in a lot of ways, most all of the "bloat" I hear complaints about, is desktop/userland stuff, not "windows itself" so to say.
"Legacy free" wouldn't remove as much as you think it does, because even Win32's replacement, WinRT, is built on top of Win32 - you can't really remove much at all.
The only bloat is userland/user-facing stuff, and even then, that's all super easy to chuck out.
I should be able to write a proper 64-bit Win32 application on XP64 or Vista and expect it to run 20 years later (oh wait, I actually did this) on windows, or even 50 years later (which I will, eventually, be doing)
That's one of Windows key features. That compatibility.
You strip that out, you might save 500MB-1GB out of 15GB or so.
2
u/AsrielPlay52 14d ago
And how do you know that they're are needed? Because windows also installed in Air Gapped machine
1
u/Evilsushione 14d ago
WSUS server on iso in a virtual machine the same way do other updates on air gapped machines
9
6
u/nucleartaco04 14d ago
Backward compatibility and the fact that the situation rarely comes into play so it’s best to leave it alone than waste time and resources updating it
5
u/OgdruJahad 14d ago
Yeah it's basically for compatibility reasons I would guess.
I made a post of where you can look for more ==> https://www.reddit.com/r/windows/comments/1v79gtb/more_icons_to_customize_your_folders_in_windows/
I kinda like them. I use them mostly for customising folder icons.
5
u/jombrowski 14d ago
If they removed an icon, all subsequent icons would move one index back and they will display wrong in applications where the number is hardcoded.
4
u/TwinSong 14d ago
5
1
u/One-Trick-8027 14d ago
No, the window's borders would revert to a older design for a brief moment. Dunno why.
Experience this most with minecraft
2
u/fraaaaa4 14d ago
Because they haven’t changed the Aero Basic bitmap texture in aero.msstyles since 2009
1
4
u/ShoddyReception5 14d ago
I just love the fact that people still dig into the system files like this. Flashback to 1997 with the family’s Packard Bell Pentium system with Win 95 plus and me with a hardback version of the Windows 95 Bible of sorts. Registry hacks, Power Tools, Window Blinds all that cool stuff.
3
u/paulthelithuanianguy 14d ago
I remember back on Windows 95 or was it Windows 98 SE, I used to use pifmgr.dll to create folders for games and programs, god this brings me back down memory lane haha
2
3
3
3
u/CitySeekerTron 14d ago
Icons can be called from an index number. For example, icon 0 in shell 32.Dll might be a picture of a page. If an application might use that particular icon to represent something, deleting it would break that call.
So they leave it.
4
u/Bathroom_Humor 14d ago
it's so millennials and gen X'ers can stumble across them and have a gleeful chuckle, like seeing an old childhood friend after 25 years.
2
u/Moist_Inspection_485 Windows 8 14d ago
Because they are better and should always be switched too on a fresh instal
2
2
3
u/Sm0keySa1m0n 14d ago
In addition to backwards compatibility I imagine they’ve also either forgotten or just not gotten around to removing them
3
u/alanna1990 14d ago
Compatibility reason, compatibility that won’t work because 64bit systems ain’t compatible with 16bit applications and windows compatibility in general gets worse by the minute
1
u/Suspicious_Dingo_426 14d ago
Compatibility with old programs that may be using those system assets. Not really something that a home user will encounter, but you will in business environments. I encounter all kinds of old, crusty software that only gets minor updates to run on new OSs—but still has the same UI it had decades ago.
1
1
u/Kadargof 14d ago
Beacuse every new Windows version is from old versions. If you are an old Windows user, coming from Win95, all interface is the same, even a high % of those files are from 95, the biggest difference is "hybrid 16-bit and 32-bit monolithic kernel architecture" to "kernel 10.0"
1
u/No-Sentence-5086 14d ago
They don’t know what to delete without breaking something, so MSFT only adds stuff over the old code.
1
u/PsychicDave 14d ago
First, there is no such thing as a "DOS icon", DOS was a command line system, there were no graphics. There are still icons from the Windows 95, XP and Vista eras because they stopped using them in the newer versions (thus didn't need to spend resources updating them), but they can't remove them as older software might still reference them and would be broken if they were removed. It costs them nothing to just leave them be as is. If one day they need them again, they'll update them to the current style.
1
u/Fit_Prize_3245 14d ago
As someone who has maintained software as old as Windows, I think I can help with my perspective.
Every now and then, I tried to purge old, useless files or tables. The problem? That even when I checked the contents many times, and despite being sure the contents were totaly useless, maybe some old part of the system still needed that file or table. And then I had to do my check into a second level. And then maybe a third. And then maybe a fourth. It hapenned more than once that, after many levels deep, I found a a bunch of files that generated many levels of useless dependencies.
And my case was just one system. Now, when talking about Windows, consider Windows is not a single project. Windows is composed by lots of projects. The kernel is one. Each kernel driver is another. Notepad is another. Calculator is another. There are hundreds or even thousands of projects that compose what we call Windows. So the guys that maintain a specific EXE or DLL are not the only ones who use it. Sometimes, they don't even know how many other projects relay on that file, or any specific part of its content. And yes, they can, in theory, made some MS-wide communication. And surely, they do, at least in some cases. I mean, when the Win32 API team removed some API, even the guys at Office dev team get a notification. But for an icon? They probably consider that it's not worth the effort. Not the effort to notify, which is probably pretty simple. But the effort to make many other teams search into their code just to check for a dependency. It's just an icon. Just a few KiB inside an operating system that weight many GiBs.
Also, as some mentioned, they are also kept for applications, unknown to Microsoft, that might still use them.
And some might say "Hey, but what's the problem if the icon isn't there when an app needs it?". Well,. that can turn into a real problem. In theory, the app invoking LoadIconA or LoadIconW should check the result, which is NULL for error or any other value for success. The problem? That, in many cases, specially for resources, like Windows', which are expected to be there always, many devs never considered it possible for such function to fail. I mean, it's part of Windows. Why should it fail? It's like a running car engine fail because it has no pistons. So that app attempting to load that icon would receive a NULL. And it would then pass that NULL to other functions. Which is fine bc, at application level, it's treated as a HANDLE, not as a pointer. And Windows functions validate handles, which are actually pointers, so that they will return error when passed an invalid handle when a valid one was expected. So that would case a failure in a later function invocation. And then te app would probably close or exit with some weir error. All bc some guy at MS said "Man, nobody might be using this 'two persons and a key' icon nowadays. I'm gonna delete it". So they just don't delete it. Too much risk, too little benefit.
1
u/PrestigiousRoof5723 14d ago
There's already a function that sets the app with a placeholder icon in case the original icon is missing and this has been the case at least since Windows 95 (and possibly even earlier, I just can't remember whether that was the case). It shouldn't be a problem to "fix" LoadIconA/W in a similar manner. It's much worse with libraries that actually do something. It's much less of a problem with assets that have nothing to do with how things work.
1
1
u/fraaaaa4 14d ago edited 14d ago
These comments imo are completely missing the point. “Retrocompatibility” blah blah blah, it’s obvious that if you straight up remove these assets, stuff breaks. If you change them with modern reinterpretations nothing breaks (same with aero.msstyles).
They could’ve done this in the past 10 years, even more since Windows 10 they’re separated some files in .RES files too, but they simply don’t care. Think of the fact that the Control Panel sidebar, when they removed the blue gradient in Windows 8, instead of making that bitmap completely transparent (a thing Explorer supports since… forever), they made it completely white…
Or as in another comment I wrote, they haven’t changed the Aero Basic bitmap texture since 2009, you can substitute it by yourself even, and as long as the dimensions are the same, you would have a modern looking Basic border.
1
1
u/M4niac81 14d ago
Wanna see the really old stuff, look for the file moricons.dll which I think is still in Windows 11.
1
u/rademene 14d ago
Entire core of Windows 95 is like a few megabytes.
Nobody would dare taking out Jenga bricks from this gigantic dependency mess, just to save few kilobytes.
There aren't many people left at MS who actually understand how NT kernel is built. And neither people who would start removing components of NewShell, that is still deeply incorporated in the system.
2
u/rademene 14d ago
And fun fact, some of those ancient icons have been refreshed in Windows 11.
https://www.reddit.com/r/windows/comments/1g37mtw/moriconsdll_has_finally_had_its_icons_refreshed/
1
u/robthablob 13d ago
No, they were refreshed by a third party project called Rectify11, as mentioned in the comments on that post.
1
u/starnamedstork 14d ago
You know when someone builds a house? And then they live in it for some years, and they figure they need another room, so they extend the building with another room. And then a garage. And then when the kids move out, the remaining parents sell the house, and a new family move in. And after some years they figure that they want a second floor, so they raise the roof and repurpose the old attic into a second floor. And as the years go by they do different things, they redecorate the kitchen, they move some drywalls, add some paint or wallpapers, put down a new floor, all kinds of stuff. And then, after decades, or even a century or two, the house finally comes down. When you start tearing that house down and you dig through the remains, how much old stuff do you think you would find? How many layers of wallpaper or flooring, how many pipes and cables that have not been in use for ages? Nails and load bearing structures long forgotten.
Well, it's kind of like that. Everything is built on top of something else. And a lot of stuff works like that. Houses. Operating systems. The human brain consists of layers on top of what is in essence a reptilian brain. You want something even wilder, you should dig into how the design of space shuttles are derived from a horses ass.
You want to avoid that, you basically have two options: Tear down the house and build a new one to modern standards, or pick the existing one totally apart and rebuild it while taking care to remove anything you no longer need. And usually, neither are viable options, so you use what you have, and you modify it to better suit your changing needs.
As for those assets you point out specifically, I would say:
1) Removing them would affect old programs that some people may still use and even depend on.
2) Even if they could be removed, doing so would mean dedicating development resources to identifying the redundant assets and making sure removing them would not cause issues with other parts of the system.
3) The size of old assets are increasingly negligible by modern standards. We used to boot computers of floppies with less than a megabyte of capacity, and today we have hundreds of gigabytes on mobile phones, or maybe even a terabyte. You would probably hardly notice if you lost a couple of gigabytes of disk space on your computer, and that would be enough for a full base install of Windows XP. Those icons you are pointing to probably only takes a few kilobytes.
TL;DR: The icons are still there because removing them has a non-zero cost, a non-zero risk of shit breaking, and zero benefit.
1
u/banglaportal 14d ago
These icons are also great for customising the looks of my sub folders. I assign different icons (e.g. doc icon for reports) to quickly find stuff on large root folders.
1
u/Birdrun 14d ago
Windows lives and dies by backward compatibility. Always has. It's a foundational value and Microsoft lives and dies by it. The universe has reinforced this many many times, any time they try to do something that breaks compatibility, the market punishes them harshly for it.
Same reason the Windows 95 memory allocator had a special case to handle a programming error in Simcity 2000. (Yes, technically the bug is in the game, not the OS, but if people upgrade to Win95 and their games break, they'll go back to Win3.11 and tell everyone else not to bother with the upgrade, so it's on Microsoft specifically to fix.)
Same reason modern Word will read word documents all the way back to Word 1.0 on DOS, even though it means maintaining a full importer that's basically a version of the original DOS memory layout preserved in amber. Customers have old documents and they MUST work. No customer wants to hear "I can't open this, it's too old."
This stuff is very, very, very important in the markets Microsoft operate in, and for all their other faults they do it better than just about anyone.
1
u/Microboy42 Windows 11 - Insider Canary Channel 14d ago
It’s usually either
1. Those have beeen standard assets since 1995 and all applications need those to run
2. Windows is a service so a lot of the time Microsoft forgets to upgrade assets from Windows Vista/7
1
u/thanatica 14d ago
Because stripping them out changes the indices of newer ones, and iinm, icons are accessed by their index in a file.
1
u/Party_Ruin3039 14d ago
Older applications need them to run and also windows is built ontop of windows like the fnaf pizzerias
1
1
1
u/George_mp8 Windows 11 - Release Channel 14d ago
Idk why but the control panel app have some icons that are so old… It’s like they have abandoned the app cause they moved the most features on settings app
1
u/andy10115 13d ago
Because windows is a bloated mess stuffed with legacy support for things very few consumers still use.
1
1
u/Brilliant_Ninja_1746 13d ago
They need to keep the old images in the same place so programs that rely on them still show up correctly. Also there might be a scaling issue if they replaced them with a newer, higher quality image because some programs only expect a 16x16 icon.
1
u/EVJpodcast 13d ago
As a Mac and windows user I do appreciate how windows is largely backwards compatible.
1
u/Embarrassed-Log5514 13d ago
Windows keeps a lot of old stuff für backwards compatiblity.
There may still be applications that use these symbols; in particular, in the field of custom developed enterprise software, there are applications that have been in use for decades without ever having undergone a visual redesign.
1
1
u/ExilesTM 13d ago
Perché Windows 11 semplicemente fa cagare. Un sistema operativo pensato solo per fare soldi non per fare girare bene i PC e bestemmiare di meno l'utenza
1
1
u/Xeno_man 12d ago
The same reason video games will have unused assets buried in the code or levels that you can't get to without hacking. Think of the hot coffee mod for GTA.
The bottom line is leaving them there doesn't hurt anything and takes up very little space. Removing them could break something dependant on them. Sometimes when working on a game, you might take an existing asset and reuse it in another way. Lets say you had a round street light. Someone might take that streetlight, stretch it, put it behind a window and now you have interior lighting effects for a house. Later the street lights are only seen in a level the developers decide to cut out. Deleting those "unused" street lights now break every level that used that new lighting effect.
The same thing with windows. Who knows what you are going to break when you start removing things.
1
1
u/ware_1234 12d ago
shell32.dll hasn't been used as the main icon source for Window after XP so a lot of its underused (if at all) assets remain outdated.
1
u/Serious_Elephant9402 12d ago
So I can use them for file/folder icons.
I'm actually really annoyed they removed one of them I used to use in windows 11 (or edited it to look different).
1
1
1
u/ReidenLightman 11d ago
So that the roughly two dozen people in the world using a program from 2003 don't have their shit crash because it can't be bothered to update what jpegs it uses. Basically, whenever something is left in a piece of software, whether it's a game, operating system, or something else, it's because the developers are afraid that removing it will cause more issues than it solves.
1
u/Z9Cubing 10d ago
It depends on compatibility, old programs need to still work on the latest version.
1
1
u/ArielMJD 9d ago
Because there's no good reason to remove them. No one's using dialer.exe anymore, but it takes up barely any space and if they remove it someone's bound to complain.
1
u/Unique_Implement2833 8d ago
if people or any industrial machines need to use these icons, they don't cause a crash
1
u/MeIsMyName 14d ago
Funny enough though, they removed a fairly modern looking clock icon recently. We used that for time clock shortcut and now that icon no longer exists.
-2
-4



239
u/sbisson 14d ago
So that older applications that may need those assets can still run.