No video
DOS Memory Explained
DOS games are awesome, but many have tricky memory requirements and there are terms like conventional memory, extended memory and expanded memory that can be confusing. This video explains what's going on in an easy-to-understand manner.
MS-DOS Starter Pack: www.philscompu...
💙 Consider supporting me 💙
Patreon: Get exclusive early access, behind the scenes, pickups, extended gameplay, first impressions, private discord server and more: / philscomputerlab
PayPal donation: www.paypal.me/...
Disclosure: Below are affiliate links, and I may receive a commission if you make a purchase.
Amazon: amzn.to/3fvz8sg
eBay: ebay.us/bKzLAW
Buy games from GOG: track.adtracti...
Пікірлер: 314
When I was 15 I could do all of this in my sleep, but I forgot all of it, this is a really nice walk down memory lane...
@lucasrem
Ай бұрын
We learned it at school, i will never forget it, how you address memory. Extended memory, or expanded memory, above 640 k, so you needed to address it yourself, to get access to it.
@dallesamllhals9161
Ай бұрын
Tee-hee...I was getting tired* - learning at 15...(C64. Amiga 1200...then 486 DX2 66MHz...) *Got a bit spoiled by Workbench 3.0/3.1 vs DOS 6 and Windows 3.11
@Michael_Brock
Ай бұрын
Remember hours of fun (not) running qemm to optimize memory management. One of my configs had 720 odd k of conventional memory. Accessed HMA and freed monochrome region as conventional memory. Dos and as many drivers loaded high ie above the conventional memory up to 1 meg, with some bits in HMA ie base 64k of extended memory.
@charlesswenson259
25 күн бұрын
I'll never forget having my grandpa make me a boot disk for ultima 7 due to it being finicky about xms. He's still a chill dude at 94 years old
@eitantal726
24 күн бұрын
I remember getting hard drives recognized was difficult. you needed to enter the parameters in the bios
This is the lecture that did not exist in 1994 when I needed it. How did we learn any of this before? This video will be referenced in my hobby from now on. Thank you for the very broken down steps showing everything before and after with every adjustment to the startup files. This video explains more than searching the web has provided me. It shows experience applied and examples. It's great!
@billcook4768
29 күн бұрын
CompuServe
@rahulraina2667
28 күн бұрын
I was just wondering the same. I believe we were kids who just knew to RTFM and figured it out!
@philscomputerlab
27 күн бұрын
Yes readme files, help documents and computer magazines...
"DOS games are absolutely beautiful" Instant thumbs up 😁
Ah if we only had Phil's legendary DOS boot menu back in the early 90's... Our lives would have been so much easier back then!
@the_kombinator
Ай бұрын
Boot disks - lots of boot disks ;)
@myne00
Ай бұрын
Many existed. It was just harder to share because of the lack of internet.
@lucasrem
Ай бұрын
@@myne00 BBS was good enough !
@ruevs
23 күн бұрын
My boot menu in the 90-ties has 15 items... Win98+QEMM386+4DOS...
@OpenGL4ever
20 күн бұрын
I created my own DOS boot menu in the 90s. I had about 6 menu entries. It looked something like this: 1. Only Conventional Memory 2. EMS without CD-ROM 3. EMS with CD-ROM 4. XMS without CD-ROM 5. XMS with CD-ROM 6. Windows 3.1 with CD-ROM With these entries I was able to cover 99% of all programs. I only needed a boot disk in one case, but I was too lazy to create a new entry for it and it was only necessary temporarily. Of course, you needed MS-DOS 6.0 or an alternative DOS that could do this. Boot menus were not possible with MS-DOS 5.0, so MS-DOS 5.0 users were the people who used boot disks.
THANK YOU! I have quite literally spent this morning trying to work out EMM386 on a 386 I’m installing Tie Fighter on after recently doing a full refurb! I’m new to dos gaming so was getting memory errors and this vid helps soooo much! Great explanation and help!
@TheOneRobUK
Ай бұрын
Definitely get his Ms dos starter pack if you haven't, helped me so much in the past when I first got reacquainted with Dos. Wish I had it in the 90s 😂
@gavinc5255
Ай бұрын
Thanks… yes, I have been all over the website now. So much useful stuff there! Even the ESS drivers for the sound card I picked up! And Tie Fighter (and Monkey Island and Wolfestein) is now running great thanks to freeing up some conventional memory and setting up the rest properly. Big help!!
@tdome3000
Ай бұрын
@@gavinc5255 I've played the Tie Fighter demo for countless hours, until I got the full game a few years later.
@jordancobb509
Ай бұрын
This brings back memories. When I was a kid I was the king of configuring boot floppies for my friends to get those old Lucasfilm games to work. Especially getting the serial mouse and soundcard to work at the same time. Good times!
@OpenGL4ever
20 күн бұрын
There is a windows 9x version of Tie Fighter. It doesn't require EMM386 and offers textures. Good old games does have this version.
I rember back in mid 90s I was able to tweak the autoexec.bat and config.sys to fit all the drivers for mouse, CD-ROM and sound card and still had 610k of conventional memory left. I was able to run Falcon 3 no problem (it required a lot of memory IIRC).
Great video. You have explained the way MS-DOS uses system memory very well. Keep up the great work.
I remember the worst offender was Ultima 7, which needed lots of conventional memory (around 585-590K, if I remember correctly), but refused to work with any standard or popular expanded memory managers like EMM386 or QEMM. It had it's own built-in bespoke "Voodoo" memory manager, that just didn't play nicely with them. I remember I had to make "special" config for this game alone. It was a bit of a headache, also because you basically required to somehow cram smartdrv.exe into your "lean" config no matter what, because of Ultima7's constantly accessing HDD that slowed things down on an uncached HDD and made everything choppy. (Smartdrv is a standard MSDOS hard drive caching utility)
@RetroGamingNook
Ай бұрын
I think we commented this at the same time, but you have really dug into the issue. I consider the challenge part of the game. 😵💫
@kosmosyche
Ай бұрын
@@RetroGamingNook Yeah, I agree, there was some nerdy beauty in it for sure, learning how to solve things just to play your favorite games. I know I felt proud of myself when a game I had problems with finally loaded.
@DerekLippold
Ай бұрын
I remember having to make boot disks for games sometimes to get them to run
@philscomputerlab
Ай бұрын
OMG Smartdrive, yes I remember using this a lot also. It also helped with caching CD. Now with modern flash based storage, I never use it.
@johnmijo
Ай бұрын
I used QEMM back in the day as well and then started creating a custom DOS boot selection according to the game I was trying to run, either Extended or Expanded memory configs or neither as the case maybe.
I'm using your Bootmenu on several computers and it's super useful! Both in pure DOS and combined with WIN98 DOS Mode. Thanks for putting it together! :)
@philscomputerlab
Ай бұрын
Awesome :D
@srideepprasad
Ай бұрын
Ah.. the good old days. I recall emm386 and the more advanced qemm386, all do save a few tens of kbs of conventional memory.
Memory management was an art. QEMM was quite good at it IIRC. You just scratched the surface with two TSRs. Things become more tricky with EMS page frame and more drivers for sound card and etc. in upper memory.
Ultima 7 was the most difficult game for me to configure memory in DOS way back.
@the_kombinator
Ай бұрын
They literally give you the option to create a boot disk - or make one yourself with just a mouse driver, himem.sys, and a BLASTER environment. Sometimes, on certain machines, I am able to run the game in EMM386 (somehow - but it's not stable)
@dallesamllhals9161
Ай бұрын
There was a 2D platform game that needed 613 or was it 618KB of RAM 😲 ^was pretty close to run back to my now NOT supported Amiga 1200 in late 1994...
I came to the PC from the Amiga, in mid-1995. I only had a short while of messing about with memory configs until Windows 95 came along, though DOS games still ruled the roost for another year. Memmaker was sufficient for me most of the time, but the whole experience was shocking to an ex-Amiga man. I suppose I'd been spoiled! I think only because I was young and had the burning desire to play the likes of Doom and Little Big Adventure did I persevere. I'm not sure I'd have the energy or motivation if I had to do it now, nearly 30 years later.
@Dukefazon
Ай бұрын
I too came from the Amiga to PC gaming but I switched only in when Win98 SE was out. I didn't have any trouble playing older DOS games but this year I put together a cool little 486 build and I had my fair share of headaches configuring the memory just right, going back and forth between games to see what runs and what won't run now after I changed something. Luckily today we have all sorts of forums and articles that can help us so it's much easier to understand what is actually going on in the machine than back in those days.
@MarkTheMorose
Ай бұрын
@@Dukefazon PC vs Amiga; makes a change from Amiga vs ST, I suppose 😀 One of the shocks I had was finding that Desert Strike on the PC had an extra mission or level, but as well as being more tricky to set up, the sound was poor in comparison to the Amiga version. In fact, I think the Amiga was the only version where the men you're meant to rescue shout 'over here!'.
@emmettturner9452
Ай бұрын
I got my first PC in 1996 and immediately ran into an issue where I only had sound effects in Windows and CD-Audio in real-mode DOS. There simply was no way to have both with my IBM mWave combination sound card + modem. It also caused an issue with MIDI playback on dial-up webpages since the modem was in use.
@philippkemptner4604
Ай бұрын
I had the same culture shock coming from Amiga to PC.
@Shmbler
Ай бұрын
Disregarding the raw CPU power for Doom, my switch from the A500 to a DOS PC was quite a setback in many regards. At least until a good year later Win95 was released. Hadntt Commodore gone bankrupt shortly after Doom was released, I would probably have bought an A1200 instead.
I have spent the last 2 weeks testing my late 90's early 2000's hardware, and your videos have been invaluable to me getting things up and running again! Thanks Phil, your the man. I have my K6-2 @605mhz w/ Voodoo 5 5500 finally working, but still having fits with my old copy of 98! (Missing cab files error) I also have piles of ddr1 and other video cards I just tested on my Thunderbird 1400 system ready to go. Sorry no DOS comments, I was just so exited I had to share with you since you've been a big inspiration to me!
@philscomputerlab
5 күн бұрын
Thank you! It really is a great hobby, taking us back in time :D Also a great community to be part of with many awesome people and there is always something new to learn...
One other trick we used at the time was using program overlays to work. This would allow you to swap out portions of your code to disk, freeing up RAM. Microsoft invented the concept, but you had to manage which code you wanted to overlay very carefully. Then Borland came around with VROOM (which iirc stood for virtual read-only object oriented memory) and made it exponentially more flexible. These were the predecessors for DLLs, which can still be manually loaded or unloaded if someone wanted to go through the trouble (though more often than not people rely on the linker to automatically load or unload).
Thanks!! even I understood some of this stuff in the time, there were a lot of technical aspects that didn't fully understand until today
I always wondered what was that DOS/4GW thing when running more modern DOS Games, like The Settlers II. Now I know, nice. 😊 Nice to see you explaining the RAM situation in DOS, since things without DOS/4GW were a bit confusing to me, didn't really understand it well and just gave it a rest. This video makes it easier!
@OpenGL4ever
20 күн бұрын
The W stands for Watcom because DOS/4G was shipped with the Watcom C Compiler. This led to many game developers switching to the Watcom compiler and programming their games with it. As a result, many games that used DOS/4GW followed quickly. Of course there were other DOS extenders, but they mostly came later.
Phil's Computer Lab explained: Great channel.
@philscomputerlab
Ай бұрын
❤️
In hindsight, I think I enjoyed the memory optimizing/troubleshooting more than the actual games themselves!
@dallesamllhals9161
Ай бұрын
PLEASE try it again....then tell US about it 😛
Gotta love when Phil uploads a video. I always appreciate your knowledge and dedication to the retro community. Looking forward to seeing more of your amazing content.
I remember coding my own games and demos using EMS memory and how much I hated that environment. I wanted to use DOS/4GW and linear memory but before Internet it was hard getting the information you needed.
Interesting video about the begining of the 640k and more ram later. Back in the day, on my first pc, Apricot Qi 386SX 16 mhz, with 1 mb ram, I was juggling with emm386, himem.sys and loading the mouse only when needed for few games and win 3.11. Your ms-dos startup pack is legendary man. I think it ibecame a standard for retro systems up to 486.
It's interesting to see an upsurgence of interest in pre-windows software and hardware that many consider to be just obsolete and useless. Perhaps as the industry moves toward ARM architecture and emulators of old software (Sorry for the use of "old") a new appreciation of of what was will help to preserve a lot of digital history being actively lost to "progress" This video really brings back memories of the driver gymnastics everyone had to preform just to have some fun.
Back in the DOS days I was quite proficient with tweaking autoexec.bat and config.sys and it was such a monumental moment when boot menus became a thing. A while ago I built a late DOS and Windows 95 gaming PC with an AMD K-3 II 400 MHz and your resources where a godsend to get everything up and running. Keep up the good work Phil!
DOS's MEMMAKER was ok for systems with minimal TSRs loaded. QEMM's OPTIMIZE and Netroom's CUSTOMIZE (which MEMMAKER was based off of) could produce much better results.
@nickwallette6201
29 күн бұрын
The family computer used to have QEMM on it back in the day. However, it seems like, now, it isn't as useful. I rarely have any issues getting software to run with just some minimal DEVICEHIGH statements added to CONFIG SYS, even with sound, mouse, and even SCSI drivers loaded. But, when I loaded QEMM386 just for old time's sake, the default results from OPTIMIZE gave me tons of conventional memory (more than I had, but also more than I needed), and made the system much more prone to crashes for the privilege. At some point, I'll probably try again and see what's going on, but for now, I don't really have a reason to bother
@OzzFan1000
29 күн бұрын
@@nickwallette6201 yeah, QEMM's ROM Stealth technology certainly caused a lot of problems with software accessing ROM locations directly instead of accessing them through DOS functions. Netroom's Cloaking utility seems to fare better in the compatibility department. If you use "cloaked" utilities, they only needed to put at minimum a 1k stub in an upper memory block while the rest of the application could be run from XMS. Netroom included their own disk cache and ram disk, while Logitech's 6.4x mouse drivers also supported cloaking. This configuration leaves lots of free conventional memory as well as allowing more room in UMB for more TSRs.
There's the article "From 0 to 1 MB in DOS" from Julio Merino which explains this in detail. It is a must
@AncapDude
Ай бұрын
Just read it. Very good one.
Great job Phil. Brings back memories of configuring WC and other games. BTW I found your boot disk very useful in my retro machine!
Not only your DOS customized menu is great, all the stuff in your website is of great help. Every time I have to deal with Soundblaster drivers and configurations I just need to go to your web.
This is so well explained Phil, thanks for clearing this up as it’s something I knew about but didn’t really ‘get’. Hasn’t been an issue for me anyway as I have been using your starter pack on my retro PCs ever since I found out about it. Super useful and means MS DOS ‘just works’.
@philscomputerlab
Ай бұрын
Awesome 😊😊
Very helpful video to understand how memory management works on DOS. Thanks for fan drivers for mouse and cd rom i got plenty of conventional memory to run Aces of the Pacific. Aces of the Pacific and Aces over Europe for example needs 610K of conventional memory and 311K of Expanded memory.
When we had our 486, most of the times memmaker did a solid job. But then we got some games that required even more free memory and we could not play them. The solution came with getting the QEMM. That really further freed up the memory and afterwards we never saw memory too low messages again. Of course we also needed the dos boot menu, because some games just did not like QEMM. One I can think of that was complaining was Micro Machines II, but there were others, of course.
Once again a precious content for retrogaming lovers. Thank you for sharing this valuable tutorial❤
Great tutorial and perfect timing again :) Since yesterday I was trying to pass the magic barrier of 610kB but without success on my recent buy, 26 years old Optimus Prestige 98' (polish brand very popular back in the day) with Pentium II 233MHz and famous, noisy as hell Quantum Big Foot 5.25'. The problem I had was however a very little amount of UMB in general - only 22kB. Adding the parameter I=B000-B7FF to EMM386 solved the problem so I finally got around 54 kB of UMB and 613kB free conventional memory. Later after some testing I have still changed it to I=E000-EAFF to avoid potential collision with Monochrome Text memory. Maybe that hint will help anyone here as well 😅 Have a great Retro Weekend Fellows 😊
@philscomputerlab
Ай бұрын
That is deep dive stuff, once you specify own memory ranges. Well done!
@MuffledMosquito
Ай бұрын
I remember when I learned about the monochrome text memory area and that is what I always used afterwards. I don't remember it ever causing issues with whatever software I used.
Thanks for sharing. I used to love to play around with the memory management for games.
Very good introduction into the topic. When I was 19, ppl would invite me to do just that. To optimize their conventional memory so they could run their favorite games. Surprisingly, even till the end of DOS gaming, not every game used a 32 bit DOS extender. Even though they had been available for years. And MS itself clearly didn't invest any work into DOS itself anymore at this point, so ppl had to use 3rd party tools like QEMM and the likes to automate the process somewhat.
I remember setting up a dos boot menu that had a bunch of different memory config options you could select just like the one you showed. Fun times!
Thnx for this explanation! Learned a lot from all your videos! greetings from the Netherlands! 💪
Great nostalgia! Love the marketing @ 4:40 where they are trying to convince people the Conner drive may have slower response times but is more power efficient - saving 0.75W! Three quarters of a watt, that's just cute in today's world.
I've been using your startup pack for years now with my pure dos gaming builds. Thank you, saved me a lot of time.
Kind of left out one option to keep your UMB memory with no EMS activated just need to change EMM386 to "DEVICE=C:\DOS\EMM386.EXE NOEMS" which give you upper memory without having Expanded memory active
@SergiuszRoszczyk
Ай бұрын
Yes and no. It still switches CPU from real mode to Virtual 8086 mode, which freaks out some games
@AncapDude
Ай бұрын
@@SergiuszRoszczykAnd apps
@billcook4768
29 күн бұрын
I remember having a NOEMS command in some of my batch files. Haven’t heard/thought about in once in the 30-ish years. Then I read your post and it all came back to me.
Very thorough. Great video. I remember having to learn this via long distance telephone calls to game tech support hotlines when I was 14.
the hardest game to run under DOS for me regarding memory was SEAL Team, which required 600k conventional memory, but I also had Gravis Ultrasound requiring Ultramid resident program for the sound, and a basic mouse controller... I was forced to create a completely dedicated setup for SEAL Team alone, stripped of all resident drivers or whatever, just EMS, mouse and Ultramid. Fortunately MSDOS 6.0 made it possible with a start-up menu
@billcook4768
29 күн бұрын
As a fellow GUS owner, I feel your pain.
Your MS-DOS super easy is a life saver for many of us noobs!
I have kept all my old startup config/autoexecs from back in the day. They are fairly similar to yours, although the language used in the menu options is a lot closer to what you'd expect from a teenager.
Your videos are always jam packed with great information and are always very well polished. I think a great segway on this topic would be another video explaining what CONVENTION/EXPANDED/EXTENDED memory actually is and how the system uses it.
@lucasrem
Ай бұрын
he only needs it for games, load it in high memory is enough
@jorgeandrade20
Ай бұрын
@@lucasrem I was asking for definitions.
Excellent video :-) Continuing the gold standard for tutorials and explanations behind retro tech challenges 🎉
So many memories with DOS and older windows. I had issues with Lotus III when I tried to run on DOS mode in windows 98, I had to use MemMaker and it ran without any issues.
I had a Gravis Ultrasound. Amazing bit of hardware, but the drivers made it a serious challenge to free up memory.
I remember pays my neighbour with a pack of cigarrete back in 98 for a copy of Prince of Persia to play in my junior high computer lab. We used to go there at night, playing games or just playing around with WordStar and lotus123 along with the teacher that responsible for the lab
Very nice video, bringing back the nearly forgotten lore of DOS tweaking :) On my systems back in the day (386DX-40, later 486DX4-120), I did an awful lot of manual memory tweaking, mainly for exactly this one purpose - making my games run :) I had quite a few TSRs loaded which I did not want to work without, so it sometimes took some trial and error to get it right, but I did succeed for each and every game I had :) Back then, I did not know about the boot menu possibility, but even if I did, I would probably do without it - my setup was as follows: I created (and pimped up to the absolute limit of what's possible within the constraints of the goal in mind) several different sets of CONFIG+AUTOEXEC files that covered all possible scenarios of memory requirements for various games. (continuing in the replies - my original post is simply disappearing, so I'm forced to split it)
@Beus38
Ай бұрын
Then, I created my own program called the autoexec manager that replaced (or kept) the current autoexec+config with one requested by the commandline. If it actually did any change, it automatically rebooted the computer afterwards for the new config to activate right away. Then, in every game's directory, I had a file called "!.bat" (so that it was always first in the list) which called the autoexec manager with the appropriate parameter for that particular game first thing, and then proceeded to load the game, possibly preceded by loading any sound TSRs (I had a GUS PnP, so my setup was even more complicated as I had to tinker with iwsbos/megaem much of the time - and this batch file always loaded the one that was working with that game).
@Beus38
Ай бұрын
That way, I did not have to remember any game requirements - neither memory, nor sound driver ones - if I wanted to play a game, I just ran the batch file in its directory, and if my system had a different autoexec+config currently active, the computer simply rebooted. Then I went to the game's directory again, ran the !.bat again and it loaded the proper sound TSR for me, if necessary, and ran the game - and it worked with no further effort or thinking ;) So I only had to find the right configuration for each game once, and forget about it :) So, in this sense, it was an even better setup than a boot menu, because with that, I'd have to remember what the requirements of the game I intend to run are, before the system even boots up :) Well, I have always liked creating kinda unconventional solutions to problems that I encounter, and this was one of them :)
@philscomputerlab
Ай бұрын
@@Beus38 Very clever!
Wow, this brings back so many good/bad memories getting stuff to run. I actually used DOS 6.22's menu feature to run specific games with their own setup config.sys + autoexec.bat files when I should have done it like you did instead. It would have cut down on the quantity of menu items I had.
Good explanation, made me realise my USB driver lines for DOS were running in conventional. Only thing this and the starter pack cant do is the opposite and limit your max memory for games like Aladdin which won't run with more than 32mb of ram. Memeater to the rescue. Though I did use your starter pack as a starter to cobble a new bat file to adjust my ram with memeater on 5mb increments to my needs. Love your stuff Phil ❤
@philscomputerlab
Ай бұрын
Need to try out memeater and Aladdin the next time I'm working with Socket 7 machine!
@TheOneRobUK
Ай бұрын
@@philscomputerlab 😀 enjoy your coffee
With the Olympics in two weeks, starting with the Accolade Summer Athletics is super appropriate. :P
your wonderfully informative and educational video makes me want to run the Mac OS port of everything.
awesome video ! brings soooo many memories me tweaking my 286 with 1MB of RAM to get some games working haha ! thank you !
Nice, now I am curious how much memory my retro computers use. I might use this video as a help guide to try and improve the use of memory.
I managed to get Turrican 2 to run perfectly fine just by removing Upper memory in the configuration section of ms-dos mode under windows 95. So satisfying to get a game that is known to be hard to get running working properly. :)
Man, I wish I had this guide back in the late 90s when I was 13 and couldn't get Actua Soccer, Striker 95, Broken Sword or Beneath a Steel Sky to run! 😀
Oh the old Memory layout of DOS the normal 640K of the OS and the rest in high or extended memory area. I remember those times very fondly. I remember having a Tandy 1000 286 with 768K of RAM and that sucker could run KQ4 SCI. I had like one memory issue with using DOS and that was trying to play Duke Nukem 3D with only 8mb of RAM and it required 16mb. The only other issues under DOS that I had is with IRQs and getting the sound drivers to wok.
Level 1 upgrade - where using EMS, move the page frame down to C800 running on from where the VGA BIOS finishes - this avoids splitting the upper memory (All the MEMAKER shenanigans is about dealing with split upper memory, optimizing the block fit). Ninja level .... JEMMEX to provide both XMS and upper / EMS. Double ninja level, using UMBPCI to create upper memory in real mode, which MAY work with software that does not tolerate V86 mode. MGDX has some guides... 644,048 free conventional memory
The EMM386 puts the CPU in Virtual-86 mode instead of the normal real mode. There were third party drivers that could provide upper memory area in real mode. They used the memory manager on the mother board to do it. If you had say 4 MB memory the memory was form 0 to 4 MB but normally the area 640K to 1 MB was simply not used. The drivers could provide the RAM. There was also a trick that if you provided memory to 640 KB..736 KB (704 KB on monochrome display) you could get base memory up to 736 B or 704 KB but if you tried any EGA/VGA graphics mode the computer would crash.
@AndyAKratz
29 күн бұрын
Used to be a hardcore DOS user when I was very young and still know it like the back of my hand. Used DOS 5.0 on my Tandy 1000 RSX, but had experience even with DOS 2.11 on 8088 and 286 machines at the time. I believe you may have answered a question that's had me stifled for the longest time and that's when I would use EMM386 to enable expanded memory and notice that my 386-SX@25MHZ would run slower. Simply disabling EMM386 and rebooting the system (of course) leaving only XMS (HIMEM.SYS) would result in better performance. Obviously this wasn't an option for games and software that required EMS memory, but now that you mentioned that it puts the CPU in *Virtual-86* mode might be the explanation to the performance drop. On the other hand, this performance drop would not be felt on a high-end 486-DX4 machine or any Pentium computer due to them being significantly faster processors.
This is a very interesting and extremely important topic when it comes to actual DOS gaming and not just playing with DOS games on a more modern system. I wrote about my experiences prior here, I learned a lot about the good old DOS's memory management and how to run old games with weird memory requirements. Aladdin is notoriously finicky about the memory settings. Another interesting example was Elite 1-2-3. Elite 1 was small enought that it could fit in my not optimized memory map. Elite 2 didn't start because it required more conventional memory and Elite 3 ran without an issue because it handled the extended memory. Or something like that... But after using MEMMAKER it helped to clean up my autoexec.bat and everything, now Aladdin, Leisure Suit Larry 6, Day of the Tentacle and all the Elite games ran without an issue. Larry 6 froze occassionally but tweaking a config file manually helped with that, I had to lower some caching parameter that was not in the setup program and it worked after that.
Hey you have zoomed out! THANK YOU! Love the channel but the too zoomed in shots were really jarring!
Excellent video and very well explained. This is great for newcomers to DOS! The memory terminology can be really confusing. I have my own startup boot menus with my DOS / Windows 3.11 dual boot. I love to have ultimate control of which drivers get loaded where. I'm running videcdd, mouse, doskey, univbe, and a network packet driver for mTCP along with a few other TSRs. MemMaker does a fantastic job of optimizing and fitting the little drivers in the spaces between the larger ones. I only wish I didn't have to re-run it for every new system or anytime I make a hardware change lol. The flags that it adds to LH determine exactly where the TSR goes in upper memory and if it gets split up into noncontiguous parts. I wish I understood those arguments so that I didn't have to run MemMaker each time. The sad part is that they are apparently undocumented though...
@philscomputerlab
Ай бұрын
Nice! mTCP is awesome, but recently I'm leaning towards just installing Windows 3.11 and using a nice FTP client there and running FTP server on NAS.
awesome video. Wish I had it back in 1990! always appreciate the starter pack. Thanks Phil
I actually enjoyed the tinkering with all such problems and trying to solve them more than I enjoyed the actual eventual gaming :)
@philscomputerlab
Ай бұрын
You're not alone! A lot of us for example like playing with the hardware more than actually playing games!
Dont forget QMM386, another memory manager. I used it too, very good. But in the end, manually setup resolve all my issues with memory.
Ugh, don't get me started on dealing with base memory. The time I spend tweak the sh!t out of my config.sys and autoexec.bat to load high, change order (because that also matters) and making menu options to not load certain things... loadhigh helped for sure
I used a bat file that would ask if I was playing particular games then run the extra commands and adjust autoexec and configsys to what I was intended on doing.
I wrote a short paragraph in college to demonstrate what had to be done to get a program to run on DOS, during the Windows 9x period. It was a sobering reminder that it was not easy for novice users of the time to get games running. Despite Microsnot's plug and play OS auto running CD-ROM on insert. Games were still mostly DOS games and Windows still needed DOS for a few more years.
Something I clearly do not miss from that era :)
Of all the people I'd expect to have access to a 286, you're the first on the list. We have to find you a proper 286 to play with!
I remember those days. It was a meta game on it's own figuring out the memory management to get a game working was its own puzzle.
Major nostalgia with my early early PC endeavors. 386 and much time spent tweaking
Falcon 3.0 with some add ons, like Fighting Tiger and MiG-29 was pretty hard to get running. Cannot remember, but I think the tricks in this vid is enough to get the programs running.
Nice video! Memmaker does decent job in optimizing the memory, but the UMB can be optimized even further by placing the drivers/programs manually in the UMB. That can be achieved with the LOADHIGH's /L:x switch , where x is the number/ID of the UMB. You can find the UMB numbers/IDs by issuing MEM /F command. HIMEM.SYS/EMM386.EXE or similar must be loaded, of course. On that topic, for those who use EMS memory: it's a good practice to manually set the beginning of the page frames, so there won't be two separate UMB blocks between those frames (the EMM386.EXE's FRAME=xxxx parameter). Also, some programs like MSCDEX support partial loading in the HMA (/E parameter). Using HIMEM.SYS/EMM386.EXE replacements, like JEMM/JEMMeX, can also squeeze some free conventional memory.
Brought back some memories 👍
Thank you for this video. Great content.
I remember Dune2 and additional sounds in game when we have uma.
Danke Phil, excellent content as always, this helped me a lot
Awesome guide for the retro community! 🎉
25 years later I finally understand this.
@philscomputerlab
28 күн бұрын
@@axa993 😍
The toughest games to run were the ones that stuck with 16-bit and conventional memory past 1993, the DOS4GW era. They tended to require over 600K, up to around 620K if memory serves. That would be okay if nothing else was loaded but having that much free plus mouse, sound, and CD drivers was a huge ask. Even with upper memory, not everything went up there and there wasn't as much usable space as you might think with the 384KB claim.
@lucasrem
Ай бұрын
The biggest afford was running them in protected modes !
Dynamix games... making boot disks was hell sometimes. Like 603k needed or something crazy
I couldn't get Lands of Lore 2 and Stonekeep to run on my Pentium 75 with 8 MB RAM. Found an articel in a computer magazine and when trying a few of the commands shown in it to figure out what they do, I accidentaly deleted the config.sys and autoexec.bat. They were there again after a restart, but I didn't have a mouse or a cd-rom drive under DOS and my keyboard was English for the longest time. 😅 And both games still refused to start, since I didn't have a cd drive anymore. That made me stop fumbling around with my memory and set me on a new quest, instead. God, that was so frustrating. Me being 11 years old, no internet, and no one in my family having the slightest idea of how a computer works, much less DOS, I was pretty much screwed for a while and could only do Win95 stuff when DOS was still king. A year or so later, my mother brought a book home from work that I studied for about a week until I was finally able to rewrite the content of those two files, and it felt unbelievable when everything was working again, even the damn German keyboard. After that I was cursed to repair PCs for basically everyone I know for the next two decades or so, but aaaah, those were the days ^^
The trick was, expanding memory using tools that would eat some of that memory. QEMM for example.
I had a fancy DOS startup menu back on my first PC. It had options to load Windows 95 as well as Linux using loadlin. I didn't have a bunch of memory options, since most of the DOS games I had were from the DOS4GW days.
The main problem I had back then that these DOS tricks were poorly documented or at least access to them was not easy. Experience (checking friends' files etc.) was very important and mostly I was shooting blindly around. Wish we had videos like yours. Lack of documentation had always been a very unfortunate policy at Microsoft, which allowed Linux to gain traction over time.
@philscomputerlab
Ай бұрын
Yes! I also had to use a keyboard driver, that used another few KB that US users didn't need. PC magazines were my main resource for knowledge back in those days...
some more things worth mentioning: before msdos 6.x, a very common thing to use was qemm. it did basically the same like msdos 6.x memmaker did, but way before msdos came out with it. i remember running qemm with msdos 3.31 and later with msdos 5.x, skipping the damn msdos 4.x completely, it just sucked. another dos game worth mentioning was ultima 7, that came out with its own memory manager. i think it was called voodoo memory manager
I remember having to choose what drivers I really needed for some games as when all drivers were loaded, the amount of base memory left after loading all the drivers into high mem, UMB and where possible extended memory, didn't leave enough base memory for soem games.
Back in the day I would use a custom loader to make a bootable Windows CD with some file manager, mouse support, high memory and DOS games to play while main OS was down. Those "mix CD's" really impressed my finds 😎. You could call them live CD's, kind of 😊. You really did a great job explaining DOS memory quirks and feature, Phill 😉👍!
@philscomputerlab
Ай бұрын
Nice!
memmaker was always hit or miss with me. At some point I switched to PC DOS 7 and used it's "ramsetup" feature and it worked really well for me most of the time.
@ErrorMessageNotFound
Ай бұрын
QEMM and 4dos are worth looking into as well.
Very helpful. Thank you!
You shold mention about pretty nice program - umascan. It helps a lot when you need to find empty memory regions.
@philscomputerlab
Ай бұрын
I'll check it out! It sounds nifty.
I started gaming in the windows 95 era. We had it so much easier. While I did use 3.1 and DOS a little bit it was for very basic games like QBASIC Gorillas that didn’t need more memory.
Ahh memories of the early 1990s trying to get privateer to work. I never did manage to get it to work, but if I had access to this information then I think I would have.
@philscomputerlab
Ай бұрын
AFAIK that game uses EMS, so would need EMM386.
@RN1441
Ай бұрын
@@philscomputerlab I vaguely recall having EMM386 on my machine, but I didn't know the techniques you showed for loading the drivers in to alternate memory regions. Another complication I remember is that I had a CDROM drive that required a very specific driver as it came with a dedicated interface card. I think I was able to get the amount of memory free needed, but only by not loading the CDROM driver and since the game was on CD, that was no help.
I thought of messing with the old config.sys on my Win98 PC. Come to find out, I just needed to use my original upgrade disc, and re-install. Maddog Mcree booted right up. No hiccups, whatsoever.
I wouldn’t count not having sound as “launching without any issues”… fitting and correctly configuring the sound drivers as well was always a significant part of the challenge.
@philscomputerlab
26 күн бұрын
@@xinaesthetic ? Context?
@xinaesthetic
26 күн бұрын
@@philscomputerlab when you launch Wing Commander in particular, hearing the orchestra tuning sound is what signals to me when the hard work is finally done...
@philscomputerlab
26 күн бұрын
@@xinaesthetic Ahh, yea didn't capture audio 😊
I still remember those commands but didnt know about LH command. But I wonder now what would happen if you just use LH in front of game executable?
Man... I was like 8 in 88. Youre a lucky dude. We were so poor we didnt even get an NES til I was in middle school.
"Not enough memory", the mysterious message from my childhood.
@AncapDude
29 күн бұрын
@@O.Shawabkeh I remember testing Wipeout from the PS1 on my DOS PC. Surprisingly I could access the disc and there was a WIPEOUT.EXE on it, but it always said "Not enough memory" no matter what I tried. 4 sure it was not meant for DOS either.