1 Star 1 Fork 0

真猪奶茶吃货 / dosbox-x

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
GPL-2.0

Welcome to the DOSBox-X project homepage located on GitHub.

Useful links

Table of Contents

Introduction to DOSBox-X

DOSBox-X is a cross-platform DOS emulator based on the DOSBox project (www.dosbox.com).

Like DOSBox, it emulates a PC necessary for running many MS-DOS games and applications that simply cannot be run on modern PCs and operating systems. However, while the main focus of DOSBox is for running DOS games, DOSBox-X goes much further than this. Started as a fork of the DOSBox project, it retains compatibility with the wide base of DOS games and DOS gaming DOSBox was designed for. But it is also a platform for running DOS applications, including emulating the environments to run Windows 3.x, 9x and ME and software written for those versions of Windows. By adding official support for Windows 95, 98, ME emulation and acceleration, we hope that those old Windows games and applications could be enjoyed or used once more. Moreover, DOSBox-X adds support for DOS/V and NEC PC-98 emulations so that you can play DOS/V and PC-98 games with it.

Compared with DOSBox, DOSBox-X focuses more on general emulation and accuracy. In order to help running DOS games and applications, Windows 3.x/9x/ME, as well as for the purpose of historical preservation, testing and continued DOS developments, it is our desire to implement accurate emulation, accurate enough to help make new DOS developments possible with confidence the program will run properly on actual DOS systems. DOSBox-X includes various features for different purposes (some of them ported from other projects), which are implemented as incremental changes since it was forked from DOSBox SVN Daum. DOSBox-X provides many ways to tweak and configure the DOS virtual machine, as we believe a better way to emulate the DOS platform is to give users all the options they need to emulate everything from the original IBM PC system all the way up to late 1990's configuration, whatever it takes to get your game or software package to run. Our goal is to eventually make DOSBox-X a complete emulation package that covers all pre-2000 DOS and Windows 9x based system scenarios, including peripherals, motherboards, CPUs, and all manner of hardware that was made for PC hardware of that time.

Please check out the DOSBox-X homepage for common packages of the latest release for the supported platforms, as well as screenshots of some DOS programs and games running in DOSBox-X. Also see the INSTALL page for DOSBox-X installation instructions and other packages, and the Releases page for archives of all released DOSBox-X versions. For more information about DOSBox-X, such as setting up and running DOSBox-X including its usage tips, please read the user guide in the DOSBox-X Wiki. Steps for building the source code can be found in the BUILD page.

DOSBox-X is completely open-source and free of charge to use and distribute. It is released under the GNU General Public License, version 2. See also the About DOSBox-X page for more information about DOSBox-X's goals and non-goals, along with some links to other projects.

This project has a Code of Conduct, please read it for general information on contributing to or getting support from the project.

Brought to you by: joncampbell123 (Jonathan Campbell)

Notable features in DOSBox-X

Although based on the DOSBox project, DOSBox-X is now a separate project because both have their own separate schedules and development priorities. For example, the main focus of DOSBox is for running DOS games whereas DOSBox-X goes way beyond this. At this time DOSBox-X already has a great number of features that do not exist in DOSBox. Examples of such features include:

  • GUI drop-down menu and built-in graphical configuration tool

  • Save and load state support (with up to 100 save slots + save files)

  • NEC PC-98, AX, DOS/V emulation and Chinese/Japanese/Korean support

  • Fully translatable user interfaces (with language files available)

  • Better support and compatibility with DOS applications

  • Support for more DOS commands and built-in external tools

  • Support for different ways to customize the internal Z: drive

  • Support for CPU types like Pentium Pro, II, III and MMX instructions

  • Support for IDE interfaces and improved Windows 3.x/9x emulation

  • Support for long filenames and FAT32 disk images (DOS 7+ features)

  • Support for pixel-perfect scaling output for improved image quality

  • Support for TrueType font (TTF) output for text-mode DOS programs

  • Support for printing features, either to a real or to a virtual printer

  • Support for starting programs to run on the host systems (-hostrun option)

  • Support for 3dfx Voodoo chip and Glide emulation (including Glide wrapper)

  • Support for cue sheets with FLAC, MP3, WAV, OGG Vorbis and Opus CD-DA tracks

  • Support for FluidSynth MIDI synthesizer (with sound fonts) and MT-32 emulation

  • Support for NE2000 Ethernet for networking features and modem phone book mapping

  • Support for features such as V-Sync, overscan border and stereo swapping

  • Plus many more..

While the vast majority of features in DOSBox-X are cross-platform, DOSBox-X does also have several notable platform-dependent features, such as Direct3D output and support for automatic drive mounting on the Windows platform. These features cannot be easily ported to other platforms. More information about DOSBox-X's features can be found in DOSBox-X’s Feature Highlights page in the DOSBox-X Wiki.

DOSBox-X officially supports both SDL 1.2 and SDL 2.0; both 32-bit and 64-bit builds are also supported.

DOSBox-X supported platforms and releases

DOSBox-X is a cross-platform DOS emulator, so all major host operating systems are officially supported, including:

  1. Windows (XP or higher), 32-bit and 64-bit

  2. Linux (with X11), 32-bit and 64-bit

  3. macOS (Mac OS X), Intel and ARM-based 64-bit

  4. DOS (MS-DOS 5.0+ or compatible)

Windows binaries (both 32-bit and 64-bit), Linux Flatpak or RPM packages (64-bit), macOS packages (64-bit) and DOS versions are officially released periodically, typically on the last day of a month or the first day of the next month. Please check out the DOSBox-X homepage and the INSTALL page for the latest DOSBox-X packages on these platforms and further installation instructions. You can also find ZIP packages or Windows installers for all released versions and their change logs in the Releases page. The Window installers are intended to ease the installation process, and they allow you to start DOSBox-X as soon as the installation ends.

For running DOSBox-X in a real DOS system (MS-DOS or compatible), you can find the HX-DOS package that makes use of the freely-available HX DOS Extender. Type DOSBOX-X to run it from a DOS system. There is also the DOS LOADLIN package which can run from within DOSBox-X itself in addition to a DOS system. Note, however, that not all features of DOSBox-X that are supported in other platforms can be supported in the real DOS environment.

Development (preview) builds intended for testing purposes for various platforms are also available from the DOSBox-X Development Builds page.

The full source code is officially provided with each DOSBox-X release, which may be compiled to run on the above and possibly other operating systems too. You can also get the latest development source code from the repository directly. See also the BUILD page for information on building/compiling the DOSBox-X source code.

Compatibility with DOS programs and games

With the eventual goal of being a complete DOS emulation package that covers all pre-2000 DOS and Windows 3.x/9x based hardware scenarios, we are making efforts to ensure that the vast majority of DOS games and applications will run in DOSBox-X, and these include both text-mode and graphical-mode DOS programs. Microsoft Windows versions that are largely DOS-based (such as Windows 3.x and 9x) are officially supported by DOSBox-X as well. Note that certain config settings may need to be changed from the default ones for some of these programs to work smoothly. Take a look at the DOSBox-X Wiki for more information.

Efforts are also made to aid continued DOS developments by attempting to accurately emulate the hardware, which is why DOSBox-X used to focus on the demoscene software (especially anything prior to 1996) because that era of the MS-DOS scene tends to have all manner of weird hardware tricks, bugs, and speed-sensitive issues that make them the perfect kind of stuff to test emulation accuracy against, even more so than old DOS games. But without a doubt we are also making a lot of efforts to test DOSBox-X against other DOS games and applications, as well as PC-98 programs (most of them are games).

We add new features and make other improvements in every new DOSBox-X version, so its compatibility with DOS programs and games are also improving over time. If you have some issue with a specific DOS program or game, please feel free to post it in the issue tracker.

Contributing to DOSBox-X

We encourage new contributors by removing barriers to entry. Ideas and patches are always welcome, though not necessarily accepted.

If you really need that feature or change, and your changes are not accepted into this main project (or you just want to mess around with the code), feel free to fork this project and make your changes in your fork.

As joncampbell123 only has limited time to work on DOSBox-X, help is greatly appreciated:

  • Testing
    • Features of DOSBox-X, such as its commands and functions
    • The normal operation of DOS games and applications
    • Windows 1.0/2.x/3.x & Windows 95/98/ME guest system support
    • Software or hardware emulation accuracy, helped by for example demoscene software
    • Write more unit tests to test various functions (see existing unit tests in tests/)
    • Developments of new DOS software (possibly aided by DOSLIB/DOSLIB2)
  • Bug fixes, patches, improvements, refinements
  • Suggestions, ideas, assistance of other users, and/or general conversation
  • Platform support (Windows, Linux, macOS, DOS, but others are welcome)
  • Documentation, language file translation, and software packaging
  • Notes regarding DOS and Win3.x/9x games, applications, hacks or weird tricks, etc.

See the CONTRIBUTING page for more contribution guidelines. If you want to tweak or write some code and you don't know what to work on, feel free to visit the issue tracker to get some ideas.

For more descriptions on the source code, please take a look at the DOSBox-X source code description page. Information on building on the source code can be found in the BUILD page.

Information about the debugger is also available in the DOSBox-X Debugger page.

See also the CREDITS page for crediting information.

DOSBox-X development and release pattern

In order to make DOSBox-X's development process more smooth, we have implemented a general development/release pattern for DOSBox-X. The current release pattern for DOSBox-X is as follows:

New DOSBox-X versions are made public at the start (typically on the first day) of each month, including the source code and binary releases. Then the DOSBox-X developments will be re-opened for new features, pull requests, etc. There will be no new features added 6 days before the end of the month, but only bug fixes. The last day of the month is DOSBox-X’s build day to compile for binary releases the first of the next month, so there will be no source code changes on this day including pull requests or bug fixes.

For example, suppose August is the current month - August 25th will be the day pull requests will be ignored unless only bug fixes. August 31st (the last day of August) will be DOSBox-X build day.

This is DOSBox-X’s official release pattern, although it may change later.

Future development experiments

Scattered experiments and small projects are in experiments/ as proving grounds for future revisions to DOSBox-X and its codebase.

These experiments may or may not make it into future revisions or the next version.

Comments are welcome on the experiments, to help improve the code overall.

There are also patches in patch-integration/ for possible feature integrations in the future. We have already integrated many community-developed patches into DOSBox-X in the past.

See also General TODO.txt for some plans of future DOSBox-X developments.

Software security comments

DOSBox-X cannot claim to be a "secure" application. It contains a lot of code designed for performance, not security. There may be vulnerabilities, bugs, and flaws in the emulation that could permit malicious DOS executables within to cause problems or exploit bugs in the emulator to cause harm. There is no guarantee of complete containment by DOSBox-X of the guest operating system or application.

If security is a priority, then:

Do not use DOSBox-X on a secure system.

Do not run DOSBox-X as root or Administrator.

If you need to use DOSBox-X, run it under a lesser privileged user, in a chroot jail or sandbox, or enable DOSBox-X's secure mode with its command-line option -securemode, which disables commands that may allow access to the host system.

If your Linux distribution has it enabled, consider using the auditing system to limit what the DOSBox-X executable is allowed to do.

Features that DOSBox-X is unlikely to support at this time

DOSBox-X aims to be a fully-featured DOS emulation package, but there are some things the design as implemented now cannot accommodate.

  • Pentium 4 or higher CPU level emulation.

    DOSBox-X contains code only to emulate the 8086 through the Pentium III. Real DOS systems (MS-DOS and compatibles) also work best with these CPUs.

    If Pentium 4 or higher emulation is desired, consider using a PC emulator like Bochs or QEMU instead. DOSBox-X may eventually develop Pentium 4 emulation, if wanted by the DOSBox-X community in general.

  • Emulation of PC hardware 2001 or later.

    The official cutoff for DOSBox-X is 2001, when updated "PC 2001" specifications from Microsoft mandated the removal of the ISA slots from motherboards. The focus is on implementing hardware emulation for hardware made before that point.

    Contributors are free to focus on emulating hardware within the time frame between 1980 and 2000/2001 of their choice.

  • Windows guest emulation, Windows Vista or later.

    DOSBox-X emulation, in terms of running Windows in DOSBox-X, will focus primarily on Windows 1.0 through Windows ME (Millennium Edition), and then on Windows NT through Windows XP. Windows Vista and later versions are not a priority and will not be considered at this time. These versions of Windows are not based on DOS.

    If you need to run Windows XP and later, please consider using QEMU, Bochs, VirtualBox, or VMware.

  • Any MS-DOS system other than IBM PC/XT/AT, AX, Tandy, PCjr, and PC-98.

    Only the above listed systems will be considered for development in DOSBox-X. This restriction prevents stretching of the codebase to an unmanageable level and helps keep the code base organized.

    It would be easier on myself and the open source community if developers could focus on emulating their platform of interest in parallel instead of putting everything into one project that, most likely, will do a worse job overall emulating all platforms. However, if adding emulation of the system requires only small minimal changes, then the new system in question may be considered.

    You are strongly encouraged to fork this project and implement your own variation if you need to develop MS-DOS emulation for any other system or console. In doing that, you gain the complete freedom to focus on implementing the particular MS-DOS based system of interest, and if desired, the ability to strip away conflicting IBM PC/XT/AT emulation and unnecessary code to keep your branch's code manageable and maintainable.

    If you are starting a fork, feel free to let me know where your fork is and what system it is emulating, so I can list it in this README file for others seeking emulation of that system. To help, I have added machine and video mode enumerations as "stubs" to provide a starting point for your branch's implementation of the platform. A stub implemented so far is "FM Towns emulation" (machine=fm_towns).

  • Cycle-accurate timing of x86 instructions and execution.

    Instructions generally run one per cycle in DOSBox-X, except for I/O and memory access.

    If accurate emulation of cycles per instruction is needed, please consider using PCem, 86Box, or VARCem instead.

  • Full precision floating point emulation.

    Unless using the dynamic core, DOSBox and DOSBox-X emulate the FPU registers using the "double" 64-bit floating point data type.

    The Intel FPU registers are 80-bit "extended precision" floating point values, not 64-bit double precision, so this is effectively 12 bits of precision loss and 5 bits of range loss (64 to 53 mantissa bits and 16 to 11 exponent bits). This slight loss of precision is perfectly fine considering DOSBox's original goal in supporting DOS games, but may cause problems in other cases that need the full precision.

    It is known at this time that this lack of precision is enough to cause otherwise straightforward comparisons against integers to fail in DOS applications originally written in QBasic or Turbo Basic. There are such DOS games written that check their file size using a floating point compare that will fail in this manner. To run these games, you will need to disable FPU emulation (fpu=false) to force the QBasic/TurboBasic runtime to use software emulation instead.

Origin and history of the DOSBox-X project

DOSBox-X started as a fork of the original DOSBox project sometime in mid-2011. It was started out of a desire to improve the emulator without having to fight with or worry about submitting patches upstream.

As its developers have made it clear, DOSBox's main focus is on DOS games. This is evident by the fact that much of the code is somewhat accurate code with kludges to make DOS games run, instead of focusing on the actual behaviors of real DOS systems.

Jonathan Campbell, the DOSBox-X project maintainer wanted to make various changes to the source code, but many of them were non-game related, and thus were unlikely to be accepted by the DOSBox developers.

Since then, Jonathan Campbell has been modifying the source code over time to improve emulation, fix bugs, and resolve incompatibilities with Windows 95 through ME. He has added options so that DOSBox-X by default can emulate a wider variety of configurations more accurately, while allowing the user to enable various techniques or hacks if needed to run their favorite DOS games or programs. He has also been cleaning up and organizing the code to improve stability and portability where possible.

The original DOSBox project was not written by one programmer. It has been under development since late 2000 with patches, fixes, and improvements from members all over the Vogons forums. Despite not having a major official release since DOSBox 0.74 over 10 years ago, the project is still in semi-active development today in the form of DOSBox SVN. Meanwhile, some of the changes themselves incorporated code from other projects.

Some features and improvements in DOSBox-X also came from another branch of DOSBox known as DOSBox SVN Daum which itself incorporated features from the original DOSBox project, DOSBox-X, and many experimental patches. Although the Daum branch seems to be dead, the features borrowed from it still exists in DOSBox-X. Later on, DOSBox-X also incorporated several features and improvements from other projects such as DOSBox ECE, DOSBox Staging, DOSVAX/DOSVAXJ3, and vDosPlus.

The DOSBox-X project is also helped by its other developers and contributors such as Wengier, aybe, Allofich, and rderooy, who have done significant work to improve the DOSBox-X project, including adding new features, fixing bugs, creating the documentation, maintaining the website, and porting code from other projects.

See also the CREDITS page for crediting of the source code.

Known DOSBox-X forks

  • DOSBox-X Emscripten port (runnable in a web browser) by Yksoft1

    Significant changes are made in order to run efficiently within the web browser when compiled using LLVM/Emscripten. These significant changes require dropping some useful features (including the menus) but are required for performance.

    URL: https://github.com/yksoft1/dosbox-x-vanilla-sdl/tree/emscripten (look for clone URL and use the emscripten branch)

  • DOSBox-X-App (for Windows and macOS) by emendelson

    DOSBox-X-App is a slightly customized version of DOSBox-X, combined with external programs and commands that make it easy to print and create PDFs from DOS applications. It is customized for use with applications, not games.

    URL: http://www.columbia.edu/~em36/dosboxapp.html

  • DOSBoxWP (for WordPerfect for DOS) by emendelson

    DOSBoxWP is a customized version of DOSBox-X targeted for users of WordPerfect for DOS.

    URL (Windows): http://www.columbia.edu/~em36/wpdos/dosboxwp.html

    URL (macOS): http://www.columbia.edu/~em36/wpdos/wpdosboxmac.html

  • Win31DOSBox (Windows 3.1 for 64-bit Windows) by emendelson

    Win31DOSBox aims to be an easy method of running Windows 3.x software for 64-bit Windows systems. The system uses a custom build of DOSBox-X when running Windows 3.1x.

    URL: http://www.columbia.edu/~em36/win31dosbox.html

Support for international language translations and keyboard layouts

Translations

DOSBox-X displays English as the default language, and uses the U.S. code page (437) by default, just like DOSBox.

All messages displayed by DOSBox-X are in English with the default setting. DOSBox-X does support the feature to change the display messages with the use of language files. The language files control all visible output of the internal commands and the internal DOS, as well as the text in DOSBox-X's drop-down menus. If you are a speaker of a non-English language, you are encouraged to create additional language files for use with DOSBox-X by translating messages in DOSBox-X to your language. Other DOSBox-X users can also use these language files for DOSBox-X to display messages in such languages. Language files can be found in the languages directory of your DOSBox-X installation.

Language name Language file
Chinese (Simplified) contrib/translations/zh/zh_CN.lng
Chinese (Traditional) contrib/translations/zh/zh_TW.lng
French contrib/translations/fr/fr_FR.lng
German contrib/translations/de/de_DE.lng
Italian contrib/translations/it/it_IT.lng
Japanese contrib/translations/ja/ja_JP.lng
Korean contrib/translations/ko/ko_KR.lng
Portuguese (Brazilian) contrib/translations/pt/pt_BR.lng
Spanish contrib/translations/es/es_ES.lng
Turkish contrib/translations/tr/tr_TR.lng

Keyboard layouts

The fact that DOSBox-X was developed around the U.S. keyboard layout is primarily due to limitations around the SDL1 library which provides input handling. As such when using the SDL1 version and a non-US keyboard, DOSBox-X automatically uses scancodes with the default setting to work around keyboard layout issues. Scancodes are not needed when using non-US keyboard layouts in the SDL2 version. If you find that a keyboard layout is not yet supported by DOSBox-X, in order to add additional layouts for use with DOSBox-X, please see file README.keyboard-layout-handling on how to do so as a developer.

For further information on international support and regional settings of DOSBox-X, such as steps to create DOSBox-X language files or use external keyboard files in DOSBox-X, as well as support for the Euro symbol and country-specific date and time formats, please look at the guide Regional settings in DOSBox-X in the DOSBox-X Wiki. For more information on East Asian (Chinese/Japanese/Korean) language support, see the East Asian language and system support guide page.

GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. <one line to give the program's name and a brief idea of what it does.> Copyright (C) <year> <name of author> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. <signature of Ty Coon>, 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License.

简介

dosbox 展开 收起
GPL-2.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/real-pig-milk-tea/dosbox-x.git
git@gitee.com:real-pig-milk-tea/dosbox-x.git
real-pig-milk-tea
dosbox-x
dosbox-x
master

搜索帮助