Results 1 to 3 of 3

Thread: A noob question from a noob person about missing .dll files

  1. #1
    AnthoniusII's Avatar XXI ARMORED BRIGADE
    Join Date
    Feb 2007
    Location
    Thessalonike Greece
    Posts
    22,388

    Default A noob question from a noob person about missing .dll files

    I tried to reinstalled an old game of mine.
    When i pressed the exe to start the game it never loaded and i recieved a message "mss32.dll is missing from your computer".
    I loaded my TGC mod that actually opens with Kingdoms exe and atleast custom battles work.
    Question.
    If M2TW/Kingdoms would also require that same .dll file it would not start from the begining like the other game i tried to install. Am I right?
    I downloaded the missing .dll file and put it in its proper place.
    Question. If a game requires one or more .dll files similar messages with the one i mentioned above would apear right?

  2. #2

    Default Re: A noob question from a noob person about missing .dll files

    DLLs themselves aren't necessarily the problem.

    Games and software are built with groundwork in mind. Medieval 2 has its own groundwork that's installed by Steam (or the CD installer), bundled within the game's directory or assumed to exist within OS. Diversity in developers = everyone's using slightly (or massively) different stuff. Sometimes you can answer this problem with specific DLLs if you're lucky and other groundwork is in place (example, an older game requiring a specific windows DLL that was removed in a later version). The reverse is when that DLL is the wrong one (weird software wants the windows 95 version with its features but windows 10 does them different and you can't replace the 10 DLL because that will ruin your ability to run other things).

    Usually, missing DLLs are because this 'groundwork' (which could be a flavor of DirectX, an older Visual Basic or .net, so on) was not installed and is expected to come with the system or at least be handled by the old installer. Or the installer made an assumption about what your computer has and its groundwork assumes you have those (since obsolete and thus not included) DLLs. The problem especially crops up on software that thinks you're using Windows 95 with HotShotFancySoftwareVersion-1.6 that was common at the time. This kind of thing is at the heart of strange or broken behavior from older titles, such as tying game speed to CPU speed being an acceptable choice or old video formats not working because they expected native codecs that have been obsolete for over two decades now. And when's the last time a .tga file was used in a modern game, I honestly haven't seen it...

    Basically, it depends. Things have shifted massively in graphics, development tricks, and dynamic link libraries. Microsoft has removed and changed many and pieces over time, aggressively on Windows 10. Similar has happened for the internet and other areas. Usually a platform like 'Good old Games' will be nice and give you all the toys that worked with the game before. Steam is hit or miss. Windows still offers legacy features like DirectPlay, which can hugely improve old game compatibility once you turn it on. Yes, sometimes plugging in the right DLL will solve it. But depending on the game it can be a much longer road and the DLL may be one clue to the wider problem. Say, the bigger library that the DLL was one part of, which is something the game will not tell you. Basically I'd look the game up first, see what's likely to come up. Medieval 2 is very barely in a modern-ish period plus has aged very well for its design, and it helps that the requirements are pretty light + well supported still. There's some of visual library and directx stuff that Med 2 wants to see which is handled by Steam and the CD installer, both of which work (installer going out is a big one, it was common to use a 16 bit installer for a 32 bit program). Other titles might not be so lucky. You had mild misfortune with one DLL, and you might have gotten lucky there as well.

    I added a stream of thought partially connected to the subject. Quality is meh. I go between three thoughts, but maybe it'll intrigue.
    Rant for a bit of history and long term support/backwards compatibility

    7 compatibility is surprisingly excellent. Pardon me a little story about how Windows has changed - I assume most old games you think of are made for '9x' or Windows XP. Though XP changed some things under the hood, it's vaguely the same generation of support. As noted above, there was one huge change from that time - 9x (win 95 and 98) were built on top of DOS. Yeah, that old command line system. So while they rarely offered programs 'full control', they still had many DOS-things under the hood. Windows 95 was basically a desktop slapped onto DOS. 98 went a little deeper. XP was its own agent, but still had DOS stuff in its heart. This is where a lot of things changed on a deep level, and it's important when contextualizing my own experience with old game support.

    There were the 16 bit installers. For review, the standard these days is 64 bit. 16, 32, 64. Windows supports one generation back based on which version you use. At this point 32 bit is increasingly rare. It will run 16 bit applications (though not ones demanding full system resources like they'd expect on DOS), and it may even run certain 32 bit things better even though 64 is supposed to be fully compatible. You're more likely on 64, and this is where a lot of old stuff breaks in a way no DLL will fix it. It has to be ported to at least 32 bit, a lot of the time people say 'no thanks' and just get the files + have you install the dependencies (groundwork) I mentioned above. In some cases you can 'convert' the installer. This is case by case and why each software in question should be looked up.

    There were DOS games, which nowadays usually have no clue what to do with Windows (if Windows will even let you open them), and so you have something like DosBox which will create an environment that looks familiar to the game. They could play nicely on the 95, 98, xp systems. Nowadays DosBox is about your only answer unless a windows version was made. But here you reach another problem.

    The DOS version may actually run better because it has an easy answer. It was built with the simplest connections to your computer it could find. It was built for low memory and very 'rigid' design. Windows (and the rest of the market) started putting things in the middle. You couldn't just touch the 'real' memory anymore, you had to ask Windows to give it memory. It couldn't dominate all of your hardware like it did for decades before. Programs that did this can often be tricked. You can't trick an early Windows program that easily. They look for more complicated things and can see some of the picture, but this is where things like DLLs and the groundwork get screwy. If you're lucky they will behave regardless because Windows is actually incredibly good about not throwing everything out. Many things work better than you expect. But it's impossible to consider an entire market that has multiplied in complexity over time. So either Windows missed something and you suffer from that support being dropped, or the game was built with no forward thinking and just wanted to use all the cool Windows toys that aged badly. You see where this becomes harder to just stick in a box and expect to work. But you can create a virtual machine and it might just work anyways.

    Windows Vista is a good marker for where everything changed. Drivers had to be redone from scratch. You immediately see one area where older games might not be as happy. Vista was mostly canned because out of the box it had terrible support and people making hardware had to jump hoops to add it. Many old hardware (and even software) creators didn't want to do this. Vista was hugely improved over the years, but upon reaching its peak Microsoft decided the name was a problem and they needed a rebrand. Enter Windows 7, which is functionally Vista with new bling and tweaks. 7 enjoyed all the lessons learned from Vista and its compatibility was enormously better. But as older members here would know, this was not perfect. At this point came a fairly 'modern' generation of finding workarounds for things left behind.

    Windows 8 I'm skipping. Under the hood it wasn't too dramatic compared to 7 as far as old software handling. Windows 10 wasn't either at first. But here's where it gets odd. Windows 10 wanted to be different; it wanted to take your computer on a journey through the latest support, the latest features. Or the latest things they wanted to blow away and offer you something new. In many cases old games might have worked fine, then be screwed because Microsoft wanted to shake it up. The habit that persists to this day (maybe not as bad as a few years ago). Is Medieval 2 working not as great as it used to? Is something else mysteriously not working? Thanks, Microsoft. By keeping updated you run a greater risk than ever of another hour of nonsense for why x doesn't work if it's old. I'm not saying never update, but I will say I don't hold myself to the default Windows schedule. It has to be treated carefully. But with most of the market now on 10, I reluctantly concede that from day to day, 10 does the job and is getting full attention for almost any modern old game compatibility. 7 is being left behind, and unless you're a guru with 7 who doesn't need my talk here, it's becoming harder to just hold out on it for old support's sake.

    I guess that's the way of things, where the old is left behind. The market bends very, very far backwards to support old as it is. Even Windows, and even with 10. More than most people would realize. Even with the dramatic changes of Vista, 10, all the bells and whistles in between, you have a lot of stuff that allows the huge 32 bit generation to run at all. You might have seen people being concerned when Microsoft has raised the idea of dropping 32 bit support a few times. There's a lot of cool stuff that doesn't happen because of backward compatibility (which is why in a lot of cases all you need to do is drop in a DLL and it just works), but as you're obviously thinking - it's not as easy in the real world to just be on the latest flashy thing. Especially if the flashy thing loses sight of why the old was liked in the first place.

    To see a more ruthless company regarding old compatibility, see Apple and the Mac operating system. If you're familiar with Linux, consider the X window system and other long term code/software. They work, they're being supported, but they raise certain issues and implications that are the heart of why people want to replace them, such as X and the issue with any program being able to look at input for any other program unless you hack the programs to behave otherwise. Replacing them naturally brings you to all the problems I reference above. Heck, look at how USB has changed - USB was supposed to be the 'one size fits all', its limits were reached, a better method was found and now anyone who isn't absolutely latest gen gets to be befuddled by 2.0 vs 3.0, USB A vs USB C, and countless splits in between them that contradict the entire purpose of USB as one size fits all.
    Last edited by Twilight Esker; April 07, 2021 at 06:28 AM. Reason: small rewrite, took the chance to ramble

  3. #3
    z3n's Avatar State of Mind
    Patrician Artifex

    Join Date
    Aug 2011
    Posts
    4,073

    Default Re: A noob question from a noob person about missing .dll files

    Download all the old directx9 libraries from Microsoft. This might be the right one but it took me a while a few years ago to find the right one, so maybe not
    https://www.microsoft.com/en-ca/down...s.aspx?id=8109


    Be aware downloading dlls from unofficial places (instead of Microsoft like my link) is dangerous. Dll means dynamic link library aka a link into executable files. This is a code injection which can be very harmful to your computer or steal information.
    The AI Workshop Creator
    Europa Barbaroum II AI/Game Mechanics Developer
    The Northern Crusades Lead Developer
    Classical Age Total War Retired Lead Developer
    Rome: Total Realism Animation Developer
    RTW Workshop Assistance MTW2 AI Tutorial & Assistance
    Broken Crescent Submod (M2TW)/IB VGR Submod (BI)/Animation (RTW/BI/ALX)/TATW PCP Submod (M2TW)/TATW DaC Submod (M2TW)/DeI Submod (TWR2)/SS6.4 Northern European UI Mod (M2TW)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •