DOSBox
- leilei
- File Contributor
- Posts: 465
- Joined: August 16th, 2007, 2:45 pm
- DOSGuy
- Website Administrator
- Posts: 1063
- Joined: September 2nd, 2005, 8:28 pm
- Contact:
LOL!
There's no question that DOSBox kicks an enormous amount of butt. It's almost 100% compatible with DOS software, and can even run 16-bit versions of Windows. And it's free!
Now that Microsoft has dropped support for 16-bit software, you pretty much have no choice but to use an alternative like DOSBox. If I was Microsoft, I would take a little more pride in my legacy and work a bit harder on NTVDM, but they're unlikely to pay a team of programmers to work on it. Thank goodness that the internet brings together so many people who are willing to work on this sort of project for free.
There's no question that DOSBox kicks an enormous amount of butt. It's almost 100% compatible with DOS software, and can even run 16-bit versions of Windows. And it's free!
Now that Microsoft has dropped support for 16-bit software, you pretty much have no choice but to use an alternative like DOSBox. If I was Microsoft, I would take a little more pride in my legacy and work a bit harder on NTVDM, but they're unlikely to pay a team of programmers to work on it. Thank goodness that the internet brings together so many people who are willing to work on this sort of project for free.
- leilei
- File Contributor
- Posts: 465
- Joined: August 16th, 2007, 2:45 pm
- DOSGuy
- Website Administrator
- Posts: 1063
- Joined: September 2nd, 2005, 8:28 pm
- Contact:
I sympathize with the generation who didn't grow up with a command line operating system. I'm perfectly comfortable navigating my computer and running software from the command prompt, so the only thing I needed to learn about DOSBox was the fact that you need to "mount" the folder that your game is in. I hope that the tutorial I wrote is easy to follow, even for people who have never used DOS. I'd appreciate feedback on that.
-
- 5-bit member
- Posts: 39
- Joined: December 30th, 2006, 5:16 am
- Location: Finland
- Contact:
-
- Less than a nibble
- Posts: 1
- Joined: June 6th, 2008, 2:38 am
WINbox
Once I Learn How To Write Code I'm Going To Create A Program Called "WINbox"
A PC Emulator. This Is Inspired By "DOSBox". "WINbox" Will Make PC Emulation Easier.
And Hopefully I Can Make It So You Don't Have To Mount Any Thing.
This Program Will Be Available Free For Download And Will Run On:
:Windows
:Mac
:Linux?
I Have Never Used "Linux" So For You "Linux" Users You May Have To Wait A While.
And If Have Time I Will Also Create "MACbox" For Windows Users Who Want To Use Mac Software.
A PC Emulator. This Is Inspired By "DOSBox". "WINbox" Will Make PC Emulation Easier.
And Hopefully I Can Make It So You Don't Have To Mount Any Thing.
This Program Will Be Available Free For Download And Will Run On:
:Windows
:Mac
:Linux?
I Have Never Used "Linux" So For You "Linux" Users You May Have To Wait A While.
And If Have Time I Will Also Create "MACbox" For Windows Users Who Want To Use Mac Software.
- DOSGuy
- Website Administrator
- Posts: 1063
- Joined: September 2nd, 2005, 8:28 pm
- Contact:
Re: DOSBox
DOSBox is actually a PC emulator. A large number of operating systems work to some extent in DOSBox, including many versions of Windows. There's not really a need to create a "WinBox", though you might want to lend a hand to the DOSBox crew if you can improve Windows emulation in DOSBox. As for MacBox, although DOSBox can't emulate non-PC (6502/PPC-based) Macs, there are some pretty good Macintosh emulators already.
Then there's virtualization. The need to emulate most PC operating systems on a PC is largely negated by virtualization suites, which allow you to run one operating system while using another. For instance, I can run a copy of Windows 95 while using Windows XP if I have a copy of Windows 95 and virtualization software. An emulator is almost certainly going to require you to have a copy of the operating system that you want to use anyway, because emulating a full-featured operating system -- including a Graphical User Interface -- would be nearly impossible. DOS was a simple command-line operating system, but writing an emulator that lets you run Windows 3.1 programs without a copy of Windows 3.1 would be a daunting task. Even ancient Windows 3.1 had a complex API (Application Programming Interface) and Registry. Imagine having to also emulate DirectX without having a copy of DirectX, which you would need to write a Windows 95 emulator. So, if you have to have a copy of the operating system anyway, why not just run it in a virtualization suite?
The biggest reason to use an emulator instead is if you want to run the operating system on a different kind of computer than it was designed for, like if you wanted to run Windows on a non-PC Mac or vice versa. The system you're running always has to be more powerful than the system that you want to emulate, so running Windows 95 on a 6502-based Mac is impossible, and running Windows Vista on a PowerPC-based Mac is highly improbable, even with a dual processor G5 server. Some systems simply can't emulate other systems because they're not powerful enough. If you want to run Mac software on a PC, however, that can be done, and has been done, and will continue to be done. There are Mac emulators. But let's say that you want to write your own emulator anyway.
The phrase, "once I learn how to write code" suggests that you aren't currently a programmer. I've been programming for almost 20 years and there is nothing that I could contribute to DOSBox. My skills extend as far as making simple games and applications, and I'm satisfied with that. Anyone can get good enough at programming to make simple programs and games. An emulator is a highly technical program that translates CPU opcodes (the basic instructions that represent the operations that a CPU can perform) into instructions that can be performed by a different CPU (like an Atari 2600 emulator that uses x86 Assembly language to run on a PC) or a general CPU (like an emulator that uses C to make an emulator portable to any other computer). DOSBox is an example of the latter, taking x86 instructions and converting them into C instructions, which is kind of odd when you realize that you're using an x86 to emulate an x86. It's like writing a NES emulator for NES, or a PSP emulator for PSP. Why would you want to do that? Well, while I'm sure that most DOSBox users are running DOSBox on a PC, using C allows DOSBox to be ported to other computers like non-PC Macs, handheld computers, the Sony PSP, even potentially cellphones.
That last paragraph was long and technical. My point was that emulators require a highly technical knowledge of the system being emulated, and the Assembly or C instructions that would perform that task on another system. With dedication, you might be able to write an emulator by yourself. Some of the video game emulators were written by a single person (though they may have had help from the open source code of other emulators). Emulating a system that has lots of hardware is almost impossible to do alone. Emulating the Super Nintendo, for instance, requires emulating the extra hardware that was added to some games, such as the Super FX chip. Emulating a PC or Mac is even harder because there were many generations of hardware upgrades (and they were more sophisticated than video game consoles to begin with because of extra hardware like floppy drives and hard drives). To emulate the PC means to emulate the CPU, at least half a dozen video cards (MDA, Hercules, CGA, EGA, VGA, 8514, SVGA, etc.), several sound cards (AdLib, Sound Blaster, Gravis Ultrasound, etc.), the floppy disk controller, different data bus architectures (IDE, SCSI), serial and parallel communications standards (UART 8550/16550, etc.), modems, network cards, and more types of hardware than I can think of. Some of those things are beyond the scope of the DOSBox project, but they would be needed in a Windows emulator. A 32-bit Windows emulator that can't connect to the internet wouldn't be much value to me. The scope of PC emulation is enormous and probably too ambitious for any one person. To attempt such a project, you would have to join or assemble a team.
My point in writing all of this isn't to discourage you from your dreams. I suspect from your capitalization of every word that you're a reasonably young person. Learning how to contribute to a mature emulator like DOSBox or MAME or MESS could turn an amateur programmer into a professional, and would likely make you highly sought after by technology companies. The people who contribute to those projects are very good programmers, and they worked hard for years to get that way. If you go around making ambitious and improbable claims -- such as announcing that you're going write to a Windows or Mac emulator by yourself -- on most forums, you'll get flamed to death. If you write the bigwigs from a project like MAME and announce that you're going to contribute something incredible (completing the Model 3 emulation would truly be a gift to humanity) before you know anything about programming an emulator, they might tell you to get lost, or they might mess around with your computer to put you in your place. I'm not attributing malice to those guys, but they're basically super hackers and they could certainly put a scare into a noob if they wanted to. They would have no trouble telling you where you live, what your phone number is, and maybe find a picture of you on your hard drive and Photoshop it to make it look like one of your parents was a warthog. Computer programmers are famously willing to help one another, but notoriously unwilling to waste their time on peers who fall too short of their own skill level. After all, why should they teach you when someone closer to your own level could?
So, I hope this was educational and gave you realistic expectations rather than discouraging or offending you. It's for your own good that I'm advising you not to make overly ambitious claims on internet forums. A lot of people will use the anonymity of the internet to flame you pretty hard. Some people just love to put others down. You might show them all one day, but if it takes years, how will you find them to rub it in their faces? I hope that you do achieve your programming goals, but take the first steps before you start focusing on the end of a very long road.
Then there's virtualization. The need to emulate most PC operating systems on a PC is largely negated by virtualization suites, which allow you to run one operating system while using another. For instance, I can run a copy of Windows 95 while using Windows XP if I have a copy of Windows 95 and virtualization software. An emulator is almost certainly going to require you to have a copy of the operating system that you want to use anyway, because emulating a full-featured operating system -- including a Graphical User Interface -- would be nearly impossible. DOS was a simple command-line operating system, but writing an emulator that lets you run Windows 3.1 programs without a copy of Windows 3.1 would be a daunting task. Even ancient Windows 3.1 had a complex API (Application Programming Interface) and Registry. Imagine having to also emulate DirectX without having a copy of DirectX, which you would need to write a Windows 95 emulator. So, if you have to have a copy of the operating system anyway, why not just run it in a virtualization suite?
The biggest reason to use an emulator instead is if you want to run the operating system on a different kind of computer than it was designed for, like if you wanted to run Windows on a non-PC Mac or vice versa. The system you're running always has to be more powerful than the system that you want to emulate, so running Windows 95 on a 6502-based Mac is impossible, and running Windows Vista on a PowerPC-based Mac is highly improbable, even with a dual processor G5 server. Some systems simply can't emulate other systems because they're not powerful enough. If you want to run Mac software on a PC, however, that can be done, and has been done, and will continue to be done. There are Mac emulators. But let's say that you want to write your own emulator anyway.
The phrase, "once I learn how to write code" suggests that you aren't currently a programmer. I've been programming for almost 20 years and there is nothing that I could contribute to DOSBox. My skills extend as far as making simple games and applications, and I'm satisfied with that. Anyone can get good enough at programming to make simple programs and games. An emulator is a highly technical program that translates CPU opcodes (the basic instructions that represent the operations that a CPU can perform) into instructions that can be performed by a different CPU (like an Atari 2600 emulator that uses x86 Assembly language to run on a PC) or a general CPU (like an emulator that uses C to make an emulator portable to any other computer). DOSBox is an example of the latter, taking x86 instructions and converting them into C instructions, which is kind of odd when you realize that you're using an x86 to emulate an x86. It's like writing a NES emulator for NES, or a PSP emulator for PSP. Why would you want to do that? Well, while I'm sure that most DOSBox users are running DOSBox on a PC, using C allows DOSBox to be ported to other computers like non-PC Macs, handheld computers, the Sony PSP, even potentially cellphones.
That last paragraph was long and technical. My point was that emulators require a highly technical knowledge of the system being emulated, and the Assembly or C instructions that would perform that task on another system. With dedication, you might be able to write an emulator by yourself. Some of the video game emulators were written by a single person (though they may have had help from the open source code of other emulators). Emulating a system that has lots of hardware is almost impossible to do alone. Emulating the Super Nintendo, for instance, requires emulating the extra hardware that was added to some games, such as the Super FX chip. Emulating a PC or Mac is even harder because there were many generations of hardware upgrades (and they were more sophisticated than video game consoles to begin with because of extra hardware like floppy drives and hard drives). To emulate the PC means to emulate the CPU, at least half a dozen video cards (MDA, Hercules, CGA, EGA, VGA, 8514, SVGA, etc.), several sound cards (AdLib, Sound Blaster, Gravis Ultrasound, etc.), the floppy disk controller, different data bus architectures (IDE, SCSI), serial and parallel communications standards (UART 8550/16550, etc.), modems, network cards, and more types of hardware than I can think of. Some of those things are beyond the scope of the DOSBox project, but they would be needed in a Windows emulator. A 32-bit Windows emulator that can't connect to the internet wouldn't be much value to me. The scope of PC emulation is enormous and probably too ambitious for any one person. To attempt such a project, you would have to join or assemble a team.
My point in writing all of this isn't to discourage you from your dreams. I suspect from your capitalization of every word that you're a reasonably young person. Learning how to contribute to a mature emulator like DOSBox or MAME or MESS could turn an amateur programmer into a professional, and would likely make you highly sought after by technology companies. The people who contribute to those projects are very good programmers, and they worked hard for years to get that way. If you go around making ambitious and improbable claims -- such as announcing that you're going write to a Windows or Mac emulator by yourself -- on most forums, you'll get flamed to death. If you write the bigwigs from a project like MAME and announce that you're going to contribute something incredible (completing the Model 3 emulation would truly be a gift to humanity) before you know anything about programming an emulator, they might tell you to get lost, or they might mess around with your computer to put you in your place. I'm not attributing malice to those guys, but they're basically super hackers and they could certainly put a scare into a noob if they wanted to. They would have no trouble telling you where you live, what your phone number is, and maybe find a picture of you on your hard drive and Photoshop it to make it look like one of your parents was a warthog. Computer programmers are famously willing to help one another, but notoriously unwilling to waste their time on peers who fall too short of their own skill level. After all, why should they teach you when someone closer to your own level could?
So, I hope this was educational and gave you realistic expectations rather than discouraging or offending you. It's for your own good that I'm advising you not to make overly ambitious claims on internet forums. A lot of people will use the anonymity of the internet to flame you pretty hard. Some people just love to put others down. You might show them all one day, but if it takes years, how will you find them to rub it in their faces? I hope that you do achieve your programming goals, but take the first steps before you start focusing on the end of a very long road.
Today entirely the maniac there is no excuse with the article.
-
- 7-bit super nerd
- Posts: 208
- Joined: January 16th, 2008, 1:23 am
- Location: The Netherlands
Re: DOSBox
^ Nice summary.
DOSBox has always been an amazing utility and aside from some remaining issues, it's damn near perfect these days.
DOSBox has always been an amazing utility and aside from some remaining issues, it's damn near perfect these days.
Chinese checkers. Mashed potatoes! And a tyrannosaurus rex!
-
- Less than a nibble
- Posts: 12
- Joined: July 1st, 2008, 8:35 pm
Re: DOSBox
Yah, 0.72 was a big step up from prior versions. I only wish the sounds were better and the program would choose the perfect cycle speed automatically.
- DOSGuy
- Website Administrator
- Posts: 1063
- Joined: September 2nd, 2005, 8:28 pm
- Contact:
Re: DOSBox
For me it usually does. I have no problems with the sound.
Today entirely the maniac there is no excuse with the article.
-
- Less than a nibble
- Posts: 1
- Joined: November 12th, 2008, 9:49 am
Re: DOSBox
I agree DOSBox is the best thing since DOS 6.22
I had been setting up some 486's and Pentium PCs with all the parts the computer company I work for had left over. And I installed all the games I still have from 5 1/4 and 3 1/2 floppies. I've put together several machines and had various degrees of success at getting some games to work correctly. And I know what I'm doing (although it has been awhile) as I was a lover of DOS and preferred running my games from DOS instead of Windows 3.1 back when I had my Packard Bell 486.
I downloaded DOSBox and was amazed at how easily it ran every DOS game I have, with but a few tweaks.
I had been setting up some 486's and Pentium PCs with all the parts the computer company I work for had left over. And I installed all the games I still have from 5 1/4 and 3 1/2 floppies. I've put together several machines and had various degrees of success at getting some games to work correctly. And I know what I'm doing (although it has been awhile) as I was a lover of DOS and preferred running my games from DOS instead of Windows 3.1 back when I had my Packard Bell 486.
I downloaded DOSBox and was amazed at how easily it ran every DOS game I have, with but a few tweaks.
-
- Less than a nibble
- Posts: 9
- Joined: August 26th, 2009, 11:04 am
Re: DOSBox
Wonderful utility, definitely a 10. Only way I know of to run most DOS games reliably in Linux.
-
- Less than a nibble
- Posts: 1
- Joined: May 30th, 2010, 3:50 pm
I absolutely love DOS Box now
Thanks to reading about it on RGB Classic Game's DOS BOX Tutorial, I decided to try it out.
I love Windows 3.1/3.11 because I grew up with it, it was on our first computer. Along with a DOS game I loved playing, Descent. Though our old Acer only had the Demo version, but still, for a demo, it was awesome.
Virtual PC never seemed too friendly for DOS games (Or at least that is the case on my laptop and old desktop before when I tried it.)
Though thanks to DOS box, I can enjoy my DOS games and windows 3.11 experience.
Screenshot of what I got going on mine, so far. I found some pretty good drivers for S3 graphics on this so I can go pretty high in color and resolutions at the same time.
I love Windows 3.1/3.11 because I grew up with it, it was on our first computer. Along with a DOS game I loved playing, Descent. Though our old Acer only had the Demo version, but still, for a demo, it was awesome.
Virtual PC never seemed too friendly for DOS games (Or at least that is the case on my laptop and old desktop before when I tried it.)
Though thanks to DOS box, I can enjoy my DOS games and windows 3.11 experience.
Screenshot of what I got going on mine, so far. I found some pretty good drivers for S3 graphics on this so I can go pretty high in color and resolutions at the same time.
-
- 7-bit super nerd
- Posts: 208
- Joined: January 16th, 2008, 1:23 am
- Location: The Netherlands
Re: I absolutely love DOS Box now
Yeah, Virtual PC is really not a good choice for playing DOS games. In my experience, it has many speed issues and pretty terrible sound support. It does come in handy when I want to play some of my old Windows 9x games that won't work on Vista.Hoodcom wrote:Virtual PC never seemed too friendly for DOS games (Or at least that is the case on my laptop and old desktop before when I tried it.)
Chinese checkers. Mashed potatoes! And a tyrannosaurus rex!