OS/2 WARP FOR PLAYING AND DEVELOPING PC GAMES Wayne Caswell IBM Corporation January 1995 ABSTRACT: This document focuses on specific OS/2 Warp features that apply to PC gaming. It assumes that the reader is already familiar with OS/2 as a PC operating system. The first section, "OS/2 Warp for PC Gamers," describes OS/2 as a games platform, solving many of the problems PC users face when playing games under DOS or Windows, and helping to usher in a new breed of high-performance 32-bit games. It is being publishied as an article in IBM Personal Software Technical Newsletter, Issue 1, 1995. "Personal Software" is delivered to PC and OS/2 user groups and is also available in softcopy form on the Internet World Wide Web (htpp://www.austin.ibm.com/pspinfo/ibmpcug.html). The second section, "OS/2 Warp for PC Game Developers," describes unique advantages OS/2 has as a development platform and contains detailed information for program developers. It is being published in the May/June 1995 issue of IBM Personal Systems Technical Solutions magazine. For either a single issue or a subscription to Personal Systems magazine, call 1-800-678-8014. DISCLAIMER: Some sections of this paper may include information concerning future products or future releases of products currently commercially available. The description and discussion of IBM's future products, performance, functions, and availability are based upon IBM's current intent and are subject to change. The information contained in this paper has not been submitted to any formal IBM test and is distributed on an "as is" basis without any warranty either express or implied. The use of this information or the implementation of any of these techniques is a customer responsibility and depends on the customer's ability to evaluate and integrate them into the customer's operational environment. While each item may have been reviewed by IBM for accuracy in a specific situation, there is no guarantee that similar outcomes will result elsewhere. Customers attempting to adapt these techniques to their own environments do so at their own risk. This information is not intended to be an assertion of future action or a commitment to deliver products. The authors (and IBM) may use or distribute any information you supply in any way believed appropriate without incurring any obligation whatever. COPYRIGHT INTERNATIONAL BUSINESS MACHINES CORPORATION 1995. ALL RIGHTS RESERVED. Comments & corrections concerning this paper may be sent to: Wayne Caswell IBM, internal zip 2999 11400 Burnet Rd. Austin, TX 78758 1-512-823-1746 (voice) 1-512-823-2733 (fax) WCASWELL@VNET.IBM.COM (INTERNET) ============================================================ TABLE OF CONTENTS ============================================================ OS/2 Warp for PC Gaming PC Games versus Arcade & Game Boxes 32- versus 16- versus 8-Bit Access to More Memory OS/2 Warp Manages Memory Multitasking and Multithreading Child Proofing Installing and Configuring DOS Games Application Recognition Database Save Settings Default Subdirectory Games Folder Troubleshooting Your Games Windows as a Game Platform? BonusPak Reaches into Home Markets Multimedia Features IBM Works IBM Internet Connection for OS/2 CompuServe Information Manager for OS/2 IBM Person to Person for OS/2 FaxWorks for OS/2 HyperACCESS Lite for OS/2 OS/2 Warp for PC Game Developers Market Potential Selecting APIs and Tools Memory Management Multitasking and Multithreading Synchronizing Events and Actions Direct Access to Video Buffers Direct Interface video Extension (DIVE) 32-Bit Virtual I/O Audio Support Sharing Sound Cards Playlists Provide Specific Game Support Image and Photo CD Support Motion (Indeo, Ultimotion, and MPEG) Video Capture Animation (FLI-FLC) Device Drivers Multiplayer Network Access Migrating Existing Applications Future Proofing Symmetric Multiprocessing Systems PowerPC Human Centrics Object Orientation OS/2 Binaries Native PowerPC Apps New Toolkit for Developing Games Objects and Classes Client and Server Classes World Objects Subclasses of Container Class Display Proxies Speech Recognition 3-D Graphics Joystick Support Developer Support IBM Developers Assistance Program Developers Connection for OS/2 Conversion Tools (SMART) Additional Support Possible OS/2 Warp Game Scenario Recommended DOS Settings List of Games Recognized by OS/2 Warp ============================================================ OS/2 WARP FOR PC GAMING ============================================================ OS/2 is a PC operating system that has been around for years, and is well known as the leading 32-bit PC operating system for enterprise client/server computing. Now, IBM is bringing this power to home and mobile users, and is turning heads, with OS/2 Warp. OS/2 Warp is the 32-bit, multitasking, multimedia, crash-protected, Windows-friendly, Internet-accessed, totally cool new way to run your computer. It combines the performance and reliability of its 32-bit heritage with new mobility and productivity features, such as simplified installation, reduced memory requirements, a BonusPak of productivity applications, Internet access, LaunchPad, and a more responsive user interface. OS/2 Warp lets you run lots of applications (written for OS/2, DOS, Windows 3.1 and its upgrades, and Windows for Workgroups 3.1 and 3.11) on the same system at the same time. This section for PC gamers describes OS/2 Warp as an ideal games platform, solving many of the problems that PC users face when playing games under DOS or Windows, and helping to usher in a new breed of high-performance, 32-bit games. PC GAMES VERSUS ARCADE & GAME BOXES =================================== More money is spent on games (arcade games and PC games) than on box-office movies, and 1994 sales of PCs surpassed that of television sets. Traditionally, the dedicated arcade and game boxes (such as Nintendo, Sega, and 3DO) have run the high-speed, fast-twitch, adrenaline-pumping action games popular with young males, leaving adventure and thinking games to personal computers; but that is starting to change with multimedia PCs and advanced operating systems like OS/2 Warp. Game boxes are still less expensive and easier to install and use than PCs. Just plug them into your TV and the wall plug, and insert a game cartridge. There are no commands to start a game, and navigation through the game is simple, usually driven through a joystick that has just a few buttons. Although personal computers are likely to remain more expensive than game boxes, they are on the same technology curve and have the advantage of starting out as multifunction devices -- but with more computing power; both hard-disk and CD-ROM storage; the ability to support better graphics, sound, and video; more user interface alternatives such as keyboard, mouse, and speech and handwriting recognition; and significantly greater flexibility and expandability. PC games have been able to offer greater richness, depth of experience, and educational value. So parents, concerned that their kids are spending too much time in front of violent video games, are attracted by the types of games offered on PCs. They use this as partial justification for spending more for a PC, which can also be used for personal productivity and business applications, than for a game box. PCs are now starting to attract the action games, making them an even better investment, and possibly replacing some of the demand for game boxes. It's no wonder that the manufacturers of video games are looking at the PC market for ports of their games. Even shareware programs like Doom, from Id Software, have proven that the PC can rival the arcade and game controllers in offering engaging action and excitement. 32- VERSUS 16- VERSUS 8-BIT =========================== Over the last few years, we've seen game controllers move from 8-bit models to 16-bit, with more function and the ability to handle better graphics. 16-bit personal computers have been available longer, and started a similar move to more powerful 32-bit systems with the Intel i386. Now PCs have moved through the 486 to Pentium and PowerPC processors, but most of the software is still designed for 16-bit systems. That's like running your V8 engine on just six cylinders. OS/2 Warp, a 32-bit operating system, helps make 32-bit PCs perform better, even when running old 16-bit games. The newer 32-bit OS/2 games and applications can improve performance even more, especially when compared to running older 16-bit versions under the Windows operating environment. You may ask "What benefits does 32-bit processing bring to games?" Without getting into details, you can summarize the benefits as faster performance, richer content, better compatibility with existing applications, and the ability to do more than one thing at a time -- a real boon for games that need to calculate their next moves while displaying video or animation, synchronizing that with exciting sound, and interacting with one or more users. ACCESS TO MORE MEMORY ===================== Today's computers come with more memory than they did a few years ago, and accessing that additional memory gives game developers the ability to handle superior graphics with higher resolution and more colors. With extra memory, programs can also do more, and offer richer, more life-like experiences. But DOS application developers have found that exploiting that extra memory is not easy. DOS is a 16-bit operating system, and as such can only address 1 million bytes of information. Even with 32-bit computers that can address 2 gigabytes of memory, DOS still requires developers to design programs in small 64 KB segments, and limits total memory access to 640K bytes. (1 MB minus DOS control blocks = 640 KB.) The 64 KB memory segment is the result of DOS's segmented memory model, which is carried over from the circa-1980 CPM operating system that DOS was based on. CPM ran on 8-bit computers that could only address 64 KB of memory. To gain access to the additional memory, developers have had to rely on memory managers (EMS, XMS, or DPMI) or on other tricks, including writing their own proprietary DOS extenders. (To support older programs, OS/2 Warp simulates these DOS extenders.) OS/2 WARP MANAGES MEMORY OS/2 programs no longer need to worry about managing memory. Users accustomed to jumping through memory-management hoops will be pleasantly surprised by OS/2 Warp, where they can take advantage of built-in DOS memory management. OS/2 Warp gives each DOS or Windows program up to 48 MB of combined XMS/EMS memory, and up to 512 MB for each application written to the DPMI specification. And Terminate and Stay Resident (TSR) programs can be tucked neatly out of the way by using the LOADHIGH command. OS/2 Warp manages system memory, so you no longer have to do this yourself. Because OS/2 Warp has built-in support for more memory than you'll ever need, and lets your programs access more virtual memory than you really have installed, you no longer have to mess around with DOS extenders and the CONFIG.SYS conflicts that often exist between DOS games. You don't have to reboot with a different CONFIG.SYS each time you want to run a different game. Instead, each game runs in its own virtual DOS machine, with its own settings, thus avoiding CONFIG.SYS conflicts. Some configuration changes can even be made while the program is running. Later, we'll see some suggested settings that are typical for DOS games, but there's enough flexibility to handle almost any DOS game. OS/2 Warp even has the ability to boot a unique DOS session from a diskette or disk image created on your hard disk, while still running other applications. This is helpful if you have an application that is written to a specific version of DOS (e.g., PC DOS 2.1 or DR DOS). It's even possible to run a copy of the pre-1980 version of CPM/86 in this manner. OS/2 Warp shatters the 640 KB memory barrier permanently with its flat (or linear) memory model, giving OS/2 programs as much memory as they need. There is no practical limit to the amount of RAM that OS/2 applications can use -- the system is capable of addressing up to 2 gigabytes of virtual memory and more than 16 MB of physical memory. OS/2 Warp can handle memory objects from just 1 byte in size to 2 gigabytes, giving you flexibility at both the small and very large ends of the software spectrum. OS/2 Warp recognizes and uses all available memory, and also supports virtual memory. As a result, OS/2 applications are not limited by the amount of memory that is physically installed in the system, and developers don't have to create (and users don't have to buy) DOS extenders. And, they don't have to deal with context switches between real-mode and protect-mode memory. OS/2 Warp's virtual memory manager treats hard-disk space as if it were real RAM, limited only by the size of the hard drive. OS/2 Warp silently and quickly swaps out to disk the memory that hasn't been used recently, freeing up real memory for active tasks. Because OS/2 Warp manages memory in small 4 KB page frames instead of variable 64 KB program segments, memory fragmentation and swapping is reduced, and speed is increased. Rather than getting out-of-memory errors, you get fast, efficient, virtual memory management that makes the best of your computer resources. In a few years, it won't be uncommon to find PCs with 64 MB of RAM -- essentially today's mainframes on the desktop. With so much memory, simulation games can be more realistic, and action games can be more vivid. OS/2 Warp is ready for this challenge. MULTITASKING AND MULTITHREADING =============================== Preemptive multitasking is what lets more than one program task run at the same time. With this feature, your fax software can answer a phone call and receive an incoming fax transmission while your son continues playing with his action game. The multitasking in Microsoft Windows and Apple System 7, however, expects each application to cooperate and voluntarily yield control to other programs -- not a very likely scenario. With Windows and System 7, you'd either receive the fax or play the game, but not both at once. Multithreading is the ability to execute more than one program thread at the same time -- within the same program. Because this capability is so helpful (even required) for games, many DOS developers wrote their own routines to handle multiple program segments. With OS/2 Warp, this extra code is not necessary, making OS/2 applications smaller and easier to write. CHILD PROOFING ============== OS/2 Warp makes it possible for the same PC that's used to run a home office to also be used for games and kids' education. Even before the advent of this newest OS/2 version, it was reported by early adopters that OS/2 is the best PC platform for kids, especially when set up by an adult. It rivals an Apple Macintosh in ease of use, offers a richer choice of applications than either DOS or Windows, and protects applications from each other (or from kids). Kids, it seems, learned quickly about which parts of the system they were allowed to explore, and how to shut down the system when they were done. Although it won't prevent very small kids from spilling drinks on the keyboard or inserting foreign objects into diskette drives, OS/2 Warp adds a level of protection that helps make parents feel better. OS/2 Warp's Crash Protection ensures that an error in one program doesn't impact the system or other running programs. Program memory is protected from access by other programs. You can also create a "kids" folder, or a folder for each family member, and fill them with shadows of the program _______ objects, files, or devices that family members are allowed to use. Shadows of your favorite games can appear in everyone's folder, for example. These shadows differ from copies in that they simply link to the original object, which might be a file or program on another disk, so you don't have to take up space with multiple copies. INSTALLING AND CONFIGURING DOS GAMES ==================================== Games and education applications with arcade-style action can be very aggressive in their exploitation of PC hardware, so they often won't run in the Windows environment because of the need for faster graphics. Almost all of the popular games run well under OS/2 Warp, provided that customized settings are used. OS/2 Warp now automatically recognizes over 200 games, and creates individual icons with the associated settings to optimize performance. You can take advantage of this new OS/2 Warp feature in either of two ways: 1. Use the Add Programs application from the System Setup folder to configure multiple games. For each game that OS/2 Warp finds, it assigns a set of customized DOS settings and adds a program object icon in the Games folder, which is found inside the OS/2 System folder. 2. Drag a Program template from the Templates folder to set up an individual program. When you install new games, use the default subdirectory whenever possible. Then make a note of the fully qualified filename (e.g., D:\3DBODY\3DBODY.EXE) of the file used to start the game. Use the Program template to add the game to the location of your choice. When you enter the file name, OS/2 Warp automatically adjusts all settings necessary to run the game. Simply close the Settings notebook, and launch the program object just created. Either way, you avoid the inconvenience of modifying your CONFIG.SYS or AUTOEXEC.BAT files, configuring memory, or using trial-and-error to find ways to keep all those demanding DOS and Windows applications working together. APPLICATION RECOGNITION DATABASE A file named D:\OS2\INSTALL\DATABASE.TXT includes the tested settings for over 200 of the popular games and education titles, including all but a few of the top 100 and a number of shareware titles. If you want to add your own personalized titles to OS/2 Warp's "Application Recognition Database," merely edit the DATABASE.TXT file. When your changes are complete, compile the TXT file with the following commands: CD \OS2\INSTALL PARSEDB DBTAGS.DAT DATABASE.TXT DATABASE.DAT After the next reboot, OS/2 Warp includes your new settings, and is able to recognize your applications whenever you run Add Applications or use the Program template to create a new program object. SAVE SETTINGS OS/2 Warp now allows you to save settings for an individual application in a file you can share with other OS/2 Warp users. From the DOS Settings page, select Print, and then Encoded File, entering the name of the file that will contain the saved settings. Then, from the DOS Settings page on another system, the encoded file can be used to recreate the saved settings for a new object by pressing the Load button. DEFAULT SUBDIRECTORY In most cases, you can simply use the default subdirectory offered by your application's installation program. This enables OS/2 Warp to most easily recognize the game. Some updated games, however, might require installation in a different directory than the default. For example, install the following games as specified: o Install KidPix 2 (for Windows) to a \KIDPIX2 subdirectory instead of the default \KIDPIX, especially if you have the original KidPix program, which also uses \KIDPIX. o Install Might and Magic V: The Dark Side of XEEN to \XEEN5 rather than to the default of \XEEN, especially if you have any of the earlier Might and Magic games, which also try to use \XEEN. o Install Pipe Dream to a directory named \PIPEDRM instead of to the default \PIPE. GAMES FOLDER OS/2 Warp comes with three simple OS/2 games in a Games folder: 1. Solitaire - Klondike 2. Mahjongg Solitaire 3. OS/2 Chess The Games folder is a good place to put the program object icons for your other games. You can then create shadows of appropriate games in each of your kids' folders, as described above under "Child Proofing". TROUBLESHOOTING YOUR GAMES ========================== OS/2 Warp permits you to do other things while a game is ongoing, but some graphics- or CPU-intensive games may slow down in this multitasking environment. For fastest performance with such games, close all windows and apps, especially other DOS apps, before you run a game. Leaving other apps open can steal CPU time from the game, thus slowing down any high-speed action. If you still have trouble running (or installing) your game under OS/2 Warp, the following notes may be of value. o OS/2 WARP DOESN'T RECOGNIZE YOUR GAME. -- If you have other games or applications that are not recognized by the OS/2 Warp Add Programs application and that don't run under the default DOS full-screen session, try the following: - Create a program object for your game by dragging the Program template from the Template folder. - Enter the path and file name and any necessary parameters (such as -NOSOUND, -SB, -VGA, and so on) according to the application's documentation. - Select the Session tab, then "DOS full screen". - Select "DOS settings" and "All DOS settings." - Change the settings in accordance with any documentation or technical support provided by the application vendor. Refer to "Recommended DOS Settings" later in this document to see which settings you'll likely want to change. o TROUBLE WITH SOUND. -- Whether running DOS, Windows, or OS/2, PC users occasionally experience problems running certain advanced games that aggressively use your system's sound capabilities. If you have problems with any game under OS/2 Warp, first try disabling the sound using the program's configuration, setup, install, or sound options. o GAME WON'T EVEN WORK. -- A small number of DOS games apparently use memory-management techniques, such as Virtual Control Program Interface (VCPI), which are virtually impossible to support in any multitasking, controlled-memory environment, such as OS/2 or Windows. To run these programs, your best option may be to boot a native copy of DOS. Fortunately, OS/2 Warp has a dual-boot feature that lets you easily switch back and forth between DOS and OS/2 Warp. Once most users move to OS/2, however, they rarely return to DOS. WINDOWS AS A GAME PLATFORM? =========================== Microsoft Windows comes preloaded on most PC systems and is primarily used for Windows-based business applications that offer a consistent graphical user interface (GUI), but Windows has not proven to be a good games platform. This is partially because games provide their own user interface and don't need the Windows GUI, but mainly because the GUI interferes with the performance of action games. Games also tend to need much more memory than the Windows environment allows, since Windows itself takes away from the DOS 640 KB limit. For these and other reasons, a very large number of DOS games (especially action games) don't even run under current versions of Windows. With few exceptions, they do run under OS/2 Warp, often running even better than under native DOS because of the 32-bit nature of OS/2 Warp and its superior memory management. Microsoft Windows does offer some benefits to games that don't need fast performance, such as device independence for video displays and sound cards (developers don't have to provide their own support, but can write to standard interfaces), and Video for Windows (an add-on that is shipped with educational titles and some games). As a result, some new Windows-based games are starting to appear, but they are usually limited to reference titles and thinking games. OS/2 Warp offers similar benefits and can run these applications too. For more information on DOS, Windows and OS/2 as platforms for running action games, see "Selecting APIs and Tools" in the Developer's section of this document. BONUSPAK REACHES INTO HOME MARKETS ================================== A new BonusPak now ships with every copy of the OS/2 Warp operating system, giving users the immediate opportunity to experience the advantage of native OS/2 applications. In addition to a variety of popular applications, the BonusPak includes easy access to the Internet and other online services by clicking on the IBM Information Superhighway icon. It also includes high-performance multimedia support designed to offer a compelling development environment for next-generation games. The combined information superhighway and multimedia capabilities of OS/2 Warp will make it the ideal system environment for CD-ROM-based educational programs and games, and it will make it easy for users to transform their computers into televisions, view and store their favorite photos, and host live video teleconferences with friends and colleagues. We expect these added features to be a big hit in the booming home-office and edutainment markets. They will change the way people use their computers. For example, you will be able to have your daughter's birthday pictures developed on a Kodak Photo CD and send them electronically to family members across the country via Warp's Internet features. MULTIMEDIA FEATURES OS/2 Warp comes with many leading-edge multimedia features, some of which are ideal for playing today's sophisticated computer games. MULTIMEDIA VIEWER -- is an object-oriented tool that enables users to organize, manage, and browse images, audio files, animation, and video clips. Multimedia objects are shown with "thumbnails", or miniature pictures, as if they were slides on a photographer's light table. The multimedia viewer is an extension of OS/2 Warp's Workplace Shell that gives the user freedom to display or play an object by simply double-clicking on it with a mouse. Multimedia Viewer allows users to view popular image formats such as GIF, TIFF, Targa and PCX. Many of the formats are found in online services such as CompuServe and Internet. EASTMAN KODAK PHOTO CD TECHNOLOGY -- allows users to store and view high-resolution color images and photographs developed on Kodak Photo CDs. The ability to view these images will make OS/2 Warp an attractive program for creating business and school presentations, newsletters, and other documents. OS/2 Warp is the first PC operating system to be Photo CD-enabled without additional software requirements. USE THE PC LIKE A TV -- with OS/2 Warp's support of popular video overlay cards, including the WIN/TV card from Hauppauge Computer Works, Inc. With the preemptive multitasking power of OS/2 Warp, a fully-scalable TV screen can run in the foreground or background while users work on other applications. Device-driver support for other video overlay adapters is also included. ULTIMEDIA VIDEO IN FOR OS/2 (VIDEO IN/2) -- enables users to capture digital video, compress the data into files on their hard-disk drives, and then use the data in presentations using IBM's Ultimotion and Intel's Indeo formats. Video IN/2 complements other multimedia capabilities in OS/2 Warp, including the ability to play and record Audio Video Interleaved (AVI) clips. Video input comes from a video recorder or other device. MOTION PICTURE EXPERTS GROUP (MPEG) -- is an industry standard for digital video that is supported in Warp through Sigma Design's ReelMagic MPEG multimedia playback adapter. This support allows multimedia developers to create OS/2 Warp applications that offer full-motion, full-screen, full-color video and CD-quality digital stereo sound from a single-speed CD-ROM. MPEG support in OS/2 Warp also allows users to view movies and television shows created in the emerging cross-platform VideoCD standard. DIRECT INTERFACE VIDEO EXTENSIONS (DIVE) -- is an API in OS/2 Warp that gives OS/2 applications direct access to the PC video hardware, enabling them to generate the high-speed graphics needed for today's advanced multimedia software. The DIVE graphics interface allows powerful, high-speed games and digital-video applications to use a single high-speed API for stretching, clipping, and color conversion. AUTODESK ANIMATION -- playback support in OS/2 Warp allows users to view video animation files developed using the Autodesk .FLI and .FLC animation file formats. These formats are recognized as the industry standard for PC animation. Sound effects can be added to these files to enhance playback. COMPRESSED AUDIO -- support is included for the industry-standard Interactive Multimedia Association ADPCM and Microsoft ADPCM formats. These formats reduce the amount of disk space required to store audio content, and make it easier to send and receive voice files over networks. Now, audio files take up to 75 percent less disk space, without the need for additional hardware device support. IBM is also extending this capability in Warp to reduce the disk space needed for AVI files. IBM WORKS IBM Works is a collection of productivity tools and application programs designed to meet the needs of a wide variety of users. It will benefit personal use at home, as well as the home office, small business, and even users in corporate environments. IBM Works includes: WORD PROCESSOR -- A full-function word processor that includes advanced features such as tables, mail/merge processing, graphic objects, and functions found in other full-function word processors. SPREADSHEET -- A full-function spreadsheet that includes a variety of features designed to meet the needs of a variety of applications. Combine the spreadsheet capability with the chart application to produce a compound document with text, numbers and charts on the same page. CHART -- A versatile charting application that produces a variety of chart types and allows enhancement with text and drawing tools. Charts can be printed on their own or combined into other IBM Works documents. DATABASE -- A powerful, easy-to-use database application program that can organize both text and graphical information, and import and export files in a variety of formats. The database application works with the IBM Works Report Writer to produce customized reports. REPORT WRITER -- Produces custom reports from any IBM Works or dBase-compatible database. IBM WORKS PERSONAL INFORMATION MANAGER (PIM) -- A collection of productivity applications to help you manage your daily activities. Features include an appointment book, monthly planner, calendar, to-do list, phone book, contact list, note pad, and much more. IBM INTERNET CONNECTION FOR OS/2 The IBM Internet Connection for OS/2 is a complete Internet software package that gives you access to the vast resources of the Internet. This Internet application takes the complexity out of the command-line-based Internet applications of today, and provides the user with one-button installation, as well as one-button registration and hookup to the Internet. With the Advantis default service provider, the Internet becomes easily accessible and fun to explore. The IBM Internet Connection for OS/2 consists of the following: ULTIMAIL LITE -- An easy-to-use interface for creating, sending, receiving, and storing compound document electronic mail. GOPHER CLIENT -- A graphical, user-friendly interface to the Internet, enabling the user to locate and display or transfer information. The Internet consists of more than 30 million computers; Gopher helps you navigate comfortably and confidentially among these systems. TELNETPM -- Allows the user to log in to other computers on the Internet. Programs and information located on other computers can be accessed as though they were on your own computer. (VT100 and VT220 terminal emulation). PMANT -- Allows access to information and programs located on Internet hosts that support 3270 sessions such as VM or MVS. (3270 terminal emulation). FTPPM -- Allows you to easily share, store, and distribute data between your computer and other computers on the Internet. If you are authorized access to a given computer, you can manipulate files on that computer as though it were your own. WEBEXPLORER -- allows users to access the World Wide Web (WWW) through a graphical user interface. The WWW links resources together in an easy-to-use-fashion. For example, a user can get a map of a country, click on a city to retrieve information, see photographs, and read about current demographics. With WebExplorer, users traverse the Internet by moving from one document to another via links or hyperlinks, and can save and annotate documents. WebExplorer was completed after general availability of OS/2 Warp. It is being included in newer versions of OS/2 Warp and is also available electronically. To download to your PC, simply click on an icon that is presented on the Gopher Server or IBM Home Page. It will download and install itself. COMPUSERVE INFORMATION MANAGER FOR OS/2 Developed by CompuServe for OS/2 Warp, this Information Manager program helps you get the most from your CompuServe membership. An object-oriented user interface allows you to access, sort, and utilize the online information and services quickly and easily. If you aren't currently registered with CompuServe but would like to try the service, there is a simple sign-up icon. IBM PERSON TO PERSON FOR OS/2 IBM's real-time conferencing software, Person to Person, has been integrated in the Warp BonusPak. P2P allows up to eight people to work together -- without actually being together -- on a single document, sharing suggestions and writing or drawing comments on the document on their PCs. Data to be worked on is placed into the shared clipboard and can be modified in real time. All parties see the same data at the same time or share files. Without leaving their desks, users can achieve the same level of efficiency, personal interaction, and productivity associated with traditional working sessions, saving time and reducing unnecessary business travel costs. By adding video cameras and an Action Media II adapter, users can host live teleconferences over existing networks. The link can be established over modems, LANs, ISDN, or the Internet, and will also accommodate future protocols (e.g., ATM and two-way TV cable). FAXWORKS FOR OS/2 FaxWorks for OS/2 is a 32-bit fax software program that sends and receives faxes of unlimited length, and prints faxes on any OS/2 Warp printer. Features include drag-drop fax viewing and printing, normal and fine resolution, portrait or landscape orientation, and variable page length. HYPERACCESS LITE FOR OS/2 HyperACCESS Lite for OS/2 is a 32-bit, easy-to-use, easy-to-set-up, object-oriented, modem communications program. ============================================================ OS/2 WARP FOR PC GAME DEVELOPERS ============================================================ PC game developers have long pushed past the limits of DOS, spending countless hours creating their own memory-management DOS extenders, simulating multi-threading, and supporting only de-facto standard sound cards and VGA/SVGA displays unless they write their own drivers. They had to do all this before they could even begin writing the game itself! Unfortunately, because each developer must create all of this on his/her own, conflicts occur between games from different developers, and it's very difficult for users to constantly reconfigure their systems to resolve such conflicts. Not only can OS/2 Warp run the installed base of DOS and Windows games and applications, it also solves many of the problems faced in writing games. And developers are starting to view OS/2 as a way to the future of PowerPC, symmetric multiprocessing, multiplayer networking, and new interfaces like voice recognition and virtual-reality devices. A new entertainment toolkit for OS/2 will make it even easier to exploit these new technologies. MARKET POTENTIAL ================ PC application developers are noticing how expensive it is to launch new DOS- or Windows-based products. The launch of a simple Windows screen-saver, for example, can cost over $1 million, because of all of the product "clutter" in that market. OS/2 Warp, on the other hand, offers an easier entry into a potentially larger market -- at least for 32-bit applications. It's already established in the enterprise, where most OS/2 applications are custom-written, line-of-business apps, and it's rapidly moving into the home. Almost all of the one million copies sold in its first two months went to new OS/2 users, which we know because the upgrade version (from OS/2) didn't become available until January, 1995. The market potential for OS/2 looks just as bright as the technology behind it. OS/2 is well accepted as the industry's leading 32-bit operating system for IBM-compatible PCs, greatly outselling Windows NT, and receiving numerous industry awards. It has attracted thousands of mainstream software developers worldwide. Now, with OS/2 Warp Version 3, IBM is bringing the industrial strength of OS/2 to home and notebook PC users -- making it easier for consumers to buy, install, and use, and expanding the market for OS/2 apps. OS/2 Warp performs well on systems with as little as 4 MB of memory. The beta of OS/2 Warp won BYTE Magazine's "Best of COMDEX" at COMDEX/Spring '94. And that was before IBM added the BonusPak of bundled applications and Information Superhighway access. As of this writing, OS/2 already represents an installed base of over 8 million licenses, and IBM plans to sell more OS/2 in 1995 than Apple Computer, Inc. will sell of the Macintosh, meaning more than 5 million units. IBM's timing couldn't be better, given the growth of home PCs, Microsoft's problems with Windows 95 (as reported in the trade press), and a growing interest in Intel-based systems from among Apple PC users. By 1996, more than half of all PCs will be sold into the home, and with OS/2 Warp, IBM is showing serious interest in that market, while users are showing serious interest in OS/2 Warp. SELECTING APIS AND TOOLS ======================== DOS: DOS has long been the preferred platform for PC games, if for no other reason than because DOS makes it easy to directly access hardware devices like the video screen, game port, and CD-ROM drive. This direct access to hardware devices is necessary so that the PC can rival arcade games and their high-speed, fast-twitch, adrenaline-pumping action popular with young males. To add more function under DOS, programs have grown in size, and developers have had to invent ways of expanding beyond the 640 KB memory barrier. And to improve performance, they've written routines to let their game do more than one thing at a time. This all makes development more difficult and costly. Even with the inventive "tricks" that today's fastest DOS games (like DOOM) include, they still run well under OS/2 Warp! WINDOWS: The "OS/2 Warp for PC Gamers" section of this document gives reasons why action games don't run well under today's Windows environments, and why most game developers have stayed with DOS. But you may also be thinking, "What about Microsoft's new Windows 95?" ISVs developing products for the Windows market have been put in an awkward position, faced with one Microsoft delay after another. Many are now starting to turn to OS/2 Warp as their first market for advanced 32-bit applications, possibly porting back to Windows 95 when that market finally develops. Microsoft has also made it difficult for developers to keep up with its many versions of Windows, with at least four different sets of APIs. And there are major differences between these versions: ---------------- The descriptions of Win16, Win32s, Win32, Win32c, and WinG are from Gartner Group, Inc., January 1994. ---------------- 1. Win16 -- The 16-bit, single-thread, segmented-memory API set for Windows 3.0 and 3.1 only. 2. Win32s -- The 32-bit, single-thread API set that allows an application to run unchanged on either Windows 3.1 or Windows NT. 3. Win32 -- The 32-bit, multiple-thread API set for Windows NT. Applications written to Win32 will run only on NT. 4. Win32c -- The 32-bit, multiple-thread API set for Windows 95. It is equal to Win32, minus the support for NT specific features (e.g., security, SMP and advanced graphics), plus the Windows 95 user-interface extensions. Applications written to Win32c will run on Windows 95 only, at least until Microsoft releases an upgrade to NT that incorporates the Windows 95 user interface and APIs. 5. WinG -- Microsoft's attempt to make Windows more friendly to games, letting developers access video buffers and run full-screen instead of being forced to run in a window. It remains to be seen how many games will be rewritten for WinG. According to the trade press, Windows will continue to have difficulty running the installed base of 16-bit DOS games and, of course, may not be able to run the new 32-bit OS/2 games. 6. Win32i -- An open industry standard, proposed by a large group of developers who are tired of being forced to write to different APIs and who are at the mercy of Microsoft's control of those APIs. The fact that Win32i is being proposed seems to be a sign of growing developer frustration with Microsoft and its control of programming standards. Do you think software developers appreciate being forced to choose between Windows APIs (and limit their market), or to write multiple versions of their applications? No, but they do it anyway because it is the cost of participating in the Windows market. OS/2: IBM's approach to developing for OS/2 is easier -- with a single API set that can be used to build apps for hand-held PCs all the way up to multiprocessing super-servers. That same API set can be used for character-mode apps, or for very graphical apps that take over the whole screen or work in a windowed environment with OS/2's Workplace Shell user interface. To further improve the productivity of developers, OS/2 supports object-oriented programming techniques and languages. The Workplace Shell itself is written in this way, using OS/2's System Object Model (SOM), which allows object-oriented programs to be written in any language (not just C++). All of the Workplace Shell object types (folders, data files, printers, etc.) are implemented as SOM objects. OS/2 apps can be written with a mix of 16-bit and 32-bit modules, making it easier to convert older apps. Developers don't have to convert all of their modules at once, and can choose to exploit the 32-bit, flat-memory model or features like multithreading and SOM objects when they are ready. (This is in extreme contrast with Microsoft's attempt to force the rewrite of all modules in all Windows apps that want to keep using the Windows-Compatible logo.) IBM has been working with various standards organizations, and has made many of its technologies open and available on other platforms, including Windows. These technologies include the Workplace Shell, SOM, OpenDoc, Taligent Frameworks, Ultimedia Compression, and others. The interesting thing is that DOS and Windows users, who are not in a hurry to upgrade their hardware and apps, have a new friend in OS/2 Warp, the most backward-compatible operating system around. I mean that in a nice way. This latest release of OS/2 goes farther than ever before to support DOS and Windows users, and the applications and systems they already own. These users aren't interested in buying a processor upgrade or a new planar, and may even balk at adding memory. Even with modest hardware, many users who couldn't even run OS/2 before are now enjoying this new 32-bit, multitasking, multimedia, Internet-accessed, crash-protected, Windows-friendly, totally cool way to run their computer. They gain new BonusPak apps, and don't have to upgrade their DOS or Windows apps until they are ready. MEMORY MANAGEMENT ================= What would it mean to you, the game developer, if you didn't have to worry about memory management? There would be no more need for DOS extenders -- the ones you write or the ones you expect your users to buy. You wouldn't have to segment your programs into 64 KB modules, and the overall size of your program would be smaller. You'd see improved performance. Because you no longer have to do a lot of trivial stuff, you can get your product to market quicker, or with more function. OS/2 provides rich EMS, XMS, and DPMI support for DOS and Windows applications, but its own flat-memory (versus segmented-memory) model means that, once you develop for OS/2, porting to other 32-bit operating systems (such as System 7, Windows 95, or UNIX) or other hardware platforms (PowerPC, Macintosh, System/390 ...) is relatively easy. This is especially true because of the openness and availability of various IBM technologies (Workplace Shell, SOM, OpenDoc, Taligent Frameworks, Ultimedia Compression...) on other platforms. MULTITASKING AND MULTITHREADING =============================== Microsoft Windows and Apple System 7 offer limited forms of multitasking that requires the programmer to physically add the wait and time-slicing commands into his program. We call this COOPERATIVE multitasking. Because the success of a program is often determined by magazine benchmark tests that feature performance, however, most applications don't "cooperate." In OS/2, the operating system acts as the traffic cop and can preempt a long-running application to satisfy the needs of a higher-priority task. We call this PREEMPTIVE multitasking. MULTITHREADING means that programs can start subtasks that will then be executed by the operating system in the background. For example, a word processor may create a separate thread (subtask) to handle printing or saving to disk. When the user asks the word processor to perform one of these tasks, the word processor creates a new thread, and control returns to the word processor (and the user) immediately, so he/she can continue typing. Applications that utilize multithreading can be much more responsive to the user. Game play can be greatly enhanced and smoother. OS/2 removes the burden from the programmer by supporting multiple threads of execution. This multithreading results in unparalleled responsiveness for game players. In addition, programs can have a separate thread playing music and drawing graphics, all without any special code by the developer. For example, the OS/2 game "Galactic Civilizations" has an artificial-intelligence thread running in the background, generating different "personalities" for the various aliens that the player is competing with, and calculating the computer's next move while the user is moving his/her own pieces or querying status. Speaking of Galactic Civilizations, it was the first commercially available game for OS/2 Warp, and (as of December 12, 1994) has quickly risen to the Net PC Games Top 100 worldwide preference list. This is an independent Internet poll conducted each week on the most popular games. Since the list is compiled from votes by the world's most avid gamers, many in the PC game industry consider it the most objective compilation available. According to John Schaeffer, president of AIM, Sandy, Utah, publisher of Galactic Civilizations, "THERE'S ONLY ONE PC OPERATING SYSTEM THAT GAMERS CAN DEPEND ON TO HANDLE THE RESOURCE-INTENSIVE DESIGN OF GALACTIC CIVILIZATIONS: OS/2 WARP." "THIS WEEK IS A VICTORIOUS ONE FOR OS/2 GAMES WITH GALACTIC CIVILIZATIONS BUMPING DOOM 2: HELL ON EARTH FROM OUR NUMBER ONE POSITION, AND ROIDS (AN OS/2 SHAREWARE GAME) BOASTING THE HIGHEST NEW ENTRY POSITION," says Jurgen Appelo, editor of the Net PC Games Top 100. "MIRRORING THE STRONG CUSTOMER DEMAND FOR OS/2 WARP, GALACTIC CIVILIZATIONS IS REALLY FLYING OUT THE DOOR," says Buck Bohac, president of Indelible Blue, an OS/2 solutions catalog provider in Raleigh, N.C. "NEXT TO OS/2 WARP, WE'VE RARELY SEEN SUCH DEMAND FOR A NEW PRODUCT AS WE HAVE FOR GALACTIC CIVILIZATIONS." SYNCHRONIZING EVENTS AND ACTIONS ================================ Games typically have to synchronize actions with the playing of a CD-ROM or motion on the screen. This requires that programs poll (i.e., constantly get the status of) a sound card to determine where it is playing. This constant polling consumes lots of processor time and is nontrivial code. Fortunately, OS/2 Warp provides a variety of choices for inter-process communications. Multimedia Presentation Manager/2 (MMPM/2), for example, provides a much simpler method to synchronize sound. Simply make one call, and OS/2 Warp will automatically notify your application of the exact position of the sound device. In addition to periodic notifications, MMPM/2 also offers the ability to notify your application at a very specific point in time for synchronization purposes. MMPM/2, which used to be a separately priced add-on product, is now included with OS/2 Warp, so you can be sure that every OS/2 Warp user has the software to handle multimedia. When MMPM/2 is used to play a video clip, it uses one thread to decompress the video (which is very processor-intensive) and another thread to play the audio. The two are synchronized so well that you can (for example) hear the tennis ball hit the racket at the same time you see it hit -- even when several other applications are running at the same time! Video Support: OS/2 Warp supports several ways of addressing the video display, and three of them are especially interesting to game developers. 1. Direct Access to Video Buffer 2. Direct Interface Video Extension (DIVE) 3. 32-bit Virtual I/O DIRECT ACCESS TO VIDEO BUFFERS To start with, you can get close to the hardware with OS/2 Warp, and write directly to video memory, even when running in a Presentation Manager window. While this capability provides excellent performance, there are complexities that must be dealt with when using it. Applications that write directly to the video buffer must provide their own clipping support, color space conversion to the frame buffer, and scaling (if applicable). Also, on displays that are bank-switched, these apps must invoke functions whenever access moves from one bank to another. DIRECT INTERFACE VIDEO EXTENSION (DIVE) DIVE is a display engine that frees the developer from the complexities of direct video buffer access while still providing a high level of performance. The DIVE display engine provides easy-to-use API functions for display updates, and hides the complexities of color space conversion, window clipping, scaling, and bank switching. It also utilizes graphics display hardware acceleration capabilities when present, so your game may actually run faster through the display engine than it would with direct video buffer access. 32-BIT VIRTUAL I/O A third alternative for games development is Virtual I/O (VIO) full-screen sessions. While Presentation Manager services are not available, applications running in this environment have full access to OS/2's 32-bit multitasking, I/O, and memory management functions. API support for some basic VGA modes is provided, and you can also manipulate VGA and SVGA registers (just like in DOS) to control advanced graphics modes. These functions are not portable to OS/2 for the PowerPC, however, and should therefore be used with caution. AUDIO SUPPORT ============= MMPM/2, which comes with OS/2 Warp, provides a very rich API (called Media Control Interface, or MCI) to access sound and video devices. Game vendors no longer have to write a myriad of sound drivers to play a digital audio file. One simple call lets you access popular sound cards (from Creative Labs, Media Vision, Aztech, Gravis, IBM...), as well as other internal or external multimedia devices, such as CD-ROM or videodisc. SHARING SOUND CARDS With OS/2 Warp, it only takes about ten lines of code for an OS/2 game developer to share the audio device with any other OS/2 application. This smooth support assures you that your game always has access to the audio device. This capability is unique to OS/2. Other operating systems make it virtually impossible to share a sound card with another application. Even when running DOS apps under OS/2 Warp, the sound card can't be shared (they must be OS/2 apps in order to share). Thus, if another application is already using the sound card, the game will have to play in silence. Because the computing world is moving toward multitasking environments, where many programs and games can run at the same time, this is a severe limitation with DOS or Windows applications. PLAYLISTS PROVIDE SPECIFIC GAME SUPPORT Game developers have used DOS because it lets them do things that are against the rules -- DOS permits self-modifying code, doesn't have a cumbersome API, and provides tremendous speed. To attract game writers to OS/2, the MMPM/2 designers created playlists specifically to support the things people are used to doing under DOS. Playlists let you play (or stream) digital audio or wave files directly from a program's memory buffers, which is very fast. Playlists also offer a dynamic, BASIC-like language that lets an app instruct MMPM/2 exactly how to play a file. This language can have loops, dynamically grow or shrink, automatically change memory buffers, perform synchronization messages, and even create self-modifying code. For example, a playlist can be created that plays a machine-gun sound five times, then a scream, and finally plays Taps twice -- all without intervention from the programmer. This cannot be done in any other operating environment. IMAGE AND PHOTO CD SUPPORT ========================== OS/2 Warp has access to the large memories required to work with high-resolution images and Kodak Photo CDs, and includes the necessary software support. IBM has signed a license for Photo CD technology from Eastman Kodak, and has integrated that technology into OS/2 Warp. As a result, OS/2 Warp is the first PC operating system to be Photo CD-enabled without requiring users to buy additional software. Kodak's Photo CD system allows color images, including 35mm photos, scanned images, and computer-generated color graphics, to be stored in the Photo CD format. Up to 100 high-resolution Photo CD images can be stored on a single Photo CD master disc. The master discs store images at five levels of resolution, ranging from 2048 x 3072 pixels to 128 x 192 pixels. With the addition of integrated Photo CD support in OS/2 Warp, any OS/2 application that supports display or manipulation of images will be able to view Photo CD images. This includes all applications that use the documented OS/2 multimedia interface. For example, current versions of Ultimedia Perfect Image/2 image processing and enhancement software; Ultimedia Builder/2, an easy-to-use multimedia presentation development package; and Ultimedia Workplace/2, a tool for linking multimedia information and databases, are able to exploit this capability. MOTION (INDEO, ULTIMOTION, AND MPEG) Many game developers have megabytes of proprietary video and audio content that are simply unplayable under environments such as Windows. In contrast, OS/2 Warp offers application developers the ability to support any audio, video, or bitmap format if the vendor writes the appropriate file-parser routines. Another ramification of this rich format support is that the same game can support numerous audio and video formats with a single API call. OS/2 Warp offers unparalleled motion video support, with or without specialized hardware. OS/2's 32-bit environment maximizes video performance in the pervasive software-only environment, enabling the broadest audience for video content for games and titles. OS/2 supports the popular .AVI file format, including Intel's Indeo 2.1, 3.0, and 3.1 compression codecs, as well as IBM's Ultimotion compression. OS/2's software motion video playback remains synchronized even while other activities are going on, and OS/2 also supports video hardware acceleration devices, such as Sigma Design's Reel Magic MPEG adapter and graphics coprocessors that scale the video image. Now, it is possible for games to actually display motion video while plotting future courses of action in a different thread! Using IBM's Ultimotion video format, you can include video content in your game that plays back at 320 x 240 resolution at 15 frames per second (fps) on virtually all 486 systems and above, without floating-point support. Faster systems will play back 320 x 240, 30fps Ultimotion video content. More important, since the Ultimotion video data stream is fully documented and supports random access, you can use the video content in creative ways in your game to achieve interactivity and special effects. Ultimotion video content can also be played back through Video for Windows in the Microsoft Windows environment. The Ultimotion decompressor for Windows enables the Windows-based playback of Ultimotion video clips created under OS/2. The Ultimotion decompressor is a plug-in module that can be installed and used with existing video tools such as Microsoft's Video for Windows. It can also be used by software developers to create their own customized Windows applications that incorporate digital video. Now software developers can take advantage of high-resolution, software-only Ultimotion video to create a wide range of applications such as games, computer-based training, desktop video conferencing, sales kiosks, or edutainment. Ultimotion offers up to full-screen VGA resolution or, at lower resolutions, frame rates of up to 30 fps (full-motion video). Ultimotion also offers an excellent compression ratio that allows the creation of high-quality video at low data rates. This makes it ideal for networked or CD-ROM-based applications. The Ultimotion Development Kit -- including a license for Ultimotion, Ultimotion data stream documentation, a beta of the IBM Ultimotion decompressor for Windows, and sample Ultimotion files -- is available at no charge to qualified developers. For more information in the USA and Canada, contact IBM Worldwide Industry Hardware Support at (800) 426-4579, ext. 200. In the USA and worldwide, information can be received by faxing requests to (708) 635-3620. The Ultimotion Development Kit is also available on-line via PRODIGY (IBM Device Driver in the OS/2 Club Download Library), CompuServe (OS/2 Support, Library 17, IBM files), or Internet via anonymous FTP from software.watson.ibm.com in the /PUBS/OS2/MISC directory. VIDEO CAPTURE Ultimotion playback capability was introduced as part of OS/2 2.1 in May 1993. In November 1993, IBM introduced Ultimedia Video IN for OS/2 (Video IN/2), software that enables users of OS/2 version 2.1 to capture images and create digital video clips in IBM's Ultimotion and Intel's Indeo formats. Using the Ultimotion format, Video IN/2 can create digital video clips in a choice of resolutions, from 640 x 480 (full-screen VGA) to 160 x 120. Video IN/2 also offers a choice of frame rates for Ultimotion, with a maximum of 30 fps full-motion video (at resolutions of up to 320 x 240). Both real-time and asymmetrical (off-line) capture support are provided. Ultimotion provides excellent image quality at extremely low data rates. An average compression ratio of 18:1 allows Ultimotion to deliver 320 x 240 video running at 15 fps at the 150 kilobytes per second (kbs) data rates offered by a single-spin CD-ROM, and running at 30 fps on double-speed CD-ROM at data rates of 300 kbs. Video IN/2, formerly a separately priced product, is now included in OS/2 Warp. ANIMATION (FLI-FLC) An exciting new development in the world of OS/2 multimedia is support for animation files. What this means to you is that the same unsurpassed performance, resource management, synchronization, device independence, file-format independence, and data-compression independence is now available for animation, as it has been for still images, audio, and digital video. The great majority of all PC-based animation uses the .FLI and .FLC file formats designed by AutoDesk. FLI is the format used by older animation applications like AutoDesk Animator. FLC, a superset of FLI, was introduced with AnimatorPro. Collectively, files in either of these formats are referred to as FLICs. FLICs contain data that is organized into frames. The data is compressed, both within a frame and across frames. You can create new FLICs with AnimatorPro or a compatible animation design tool. AnimatorPro has many tools for painting individual still frames with a variety of color and texture effects, including ray-tracing functions. AnimatorPro also has a tweening tool that lets you generate a sequence of frames between any two still frames, creating an illusion of motion or transformation. Finally, AnimatorPro will compress and convert your frames into an .FLC file. DEVICE DRIVERS ============== PC users are impressed by multimedia apps and games, but they get frustrated with the DMA and IRQ settings required to support sound, especially when there are conflicts with other adapters and apps. They have lots of choices of sound cards, but not all of the games support all of the cards, and even the emulation (of SoundBlaster, for example) is inconsistent between cards and drivers shipped with games. From a game developer perspective, keeping up with the proliferation of different types of sound cards and video cards is a constant headache. Each device requires a different driver, and writing all of these drivers is difficult. A possible solution to both sets of problems is for the game to support the device drivers that come with Windows or OS/2. Users would find it much easier to install, and the developer wouldn't have to supply all of those drivers and risk conflicts with other drivers. But that means writing Windows or OS/2 games (not DOS games), and we already visited that issue above. Game vendors have so far chosen to include their own device drivers, so they can access devices directly instead of having to wait for Windows to do the I/O. The device drivers supplied with OS/2 let developers access system hardware directly, so you get the best of both worlds -- device independence and direct access. OS/2 also supports the DOS device drivers that ship with games, fax, and communications programs, and any other app that has unique device needs. Windows cannot support those drivers or run those applications. MULTIPLAYER NETWORK ACCESS ========================== With OS/2 Warp, a developer can write multi-player and multi-computer games by utilizing standard networking APIs. OS/2 Warp supports the most popular networking protocols (e.g., TCP/IP, IPX, and NetBIOS). Furthermore, since these protocols are operating system-independent, it is possible to interact with games running under DOS, X-Windows, and even System 7. MIGRATING EXISTING APPLICATIONS =============================== IBM has obtained the exclusive marketing rights to a migration tool from One Up Corp. in Dallas. SMART 2.0 (Source Migration Analysis Reporting Toolset) automatically converts as much as 70% of the Windows API and message code from 16- and 32-bit Windows applications to 32-bit OS/2 applications. SMART 2.0 is distributed as part of IBM's Developer Connection for OS/2 quarterly CD-ROM and newsletter, priced at $199 per year. FUTURE PROOFING =============== Although OS/2 games (written for today's Intel x86 or Pentium processors) can take advantage of all the features mentioned in this document, developers are especially excited about the future prospects for those games, discussed now. SYMMETRIC MULTIPROCESSING SYSTEMS SMP computer systems are becoming more affordable, and will reach consumer price points in a year or two. IBM already has a version of OS/2 for SMP that supports up to 16 processors and can dispatch program tasks or threads on any of them. The same shrink-wrapped OS/2 binaries that run under OS/2 Warp also run under OS/2 for SMP. POWERPC IBM's PowerPC is a RISC processor that is posing a serious challenge to Intel. Because of its lower price, smaller size, and lower power requirements, the PowerPC is popping up everywhere -- in automobiles, in PDAs, in TV set-top boxes, and in multiprocessing supercomputers. It's comforting to know that the same OS/2 source code that runs on Intel systems will also run on PowerPC systems with a simple recompilation. That's a major advantage for OS/2, since Microsoft's Windows 95 won't run natively on PowerPC. HUMAN CENTRICS Human-centered technologies will provide key features of OS/2 and PowerPC, so people will be able to interact with computers with the same skills they use to interact with other people. These technologies include advanced handwriting and speech recognition, personal agents (who learn your habits, make suggestions, and act on your behalf), animated actors (whose facial movements synchronize with their spoken words), and natural language (so you don't have to remember computer commands). Some of the multimedia features planned for OS/2 for PowerPC, such as software motion video capture and playback, are already built into OS/2 Warp. And two human-centered applications planned for PowerPC, ImageMail and Person to Person (P2P), are also already built into OS/2 Warp. OBJECT ORIENTATION The object-oriented technologies planned for PowerPC are built on the base of OS/2's System Object Model (SOM), OpenDoc, and the Taligent frameworks. A "framework" is a programming structure that reduces the amount of programming to be done, because the code that supplies the mechanics of a task is already written. For example, a communications framework would handle all of the complicated work of adhering to the transport protocols. Application developers could just "plug into" a framework by writing to published interfaces. What an easy way to add multiuser networking capabilities to PC games! OS/2 BINARIES Existing OS/2 Intel-based binaries should run unmodified on the PowerPC with a future release of OS/2 for PowerPC. These applications, however, best exploit the PowerPC capabilities when they are recompiled and run in native PowerPC mode. When Intel object code is run on the PowerPC, there is a performance loss caused by the translation from Intel to PowerPC instruction sets. NATIVE POWERPC APPS You can start writing native applications for the PowerPC today -- by writing pure 32-bit OS/2 Warp applications. Start development on Intel systems using ANSI C compilers. The OS/2 for PowerPC Software Developer Toolkit (SDK) contains a cross-compiler from Metaware that runs on Intel systems but produces PowerPC binaries. In addition, the 32-bit source code you develop can be used on today's OS/2 Warp as well as tomorrow's OS/2 for PowerPC. Only a single source needs to be maintained for both Intel and PowerPC hardware systems! NEW TOOLKIT FOR DEVELOPING GAMES ================================ IBM intends to extend The Developer Connection for OS/2 family with an additional toolkit to enhance the development of entertainment software (games, education, etc.). This new toolkit will build on the existing function in The Developer Connection by incorporating new technologies from IBM. These new technologies, such as comprehensive networking and speech recognition, are areas where IBM excels, and they can provide a unique competitive advantage for the games and entertainment developer. IBM envisions a new generation of OS/2-based games that combine multimedia with these new technologies in a way that home computer users will find irresistible. To show the power of this new generation, and to illustrate programming techniques, the toolkit will contain source code for a sample game that will use all the technologies provided. This sample application will be a 32-bit, multithreaded, multi-player, networked, speech-recognition-capable adventure game using animation, digital video, waveform audio, MIDI, still images, sprites, and 3-D graphics. For a scenario example of what IBM hopes to enable with its new entertainment software developer toolkit, see "OS/2 Warp Game Scenario," later in this section. IBM intends to make this scenario possible with the delivery of its new OS/2 toolkit for games, education, and entertainment programmers. OBJECTS AND CLASSES The centerpiece of this toolkit will be a game object Base class, which will ease the way for games and entertainment programs to exploit the best of new technology from IBM. The game object Base class contains (among others) the following classes: Client and Server Classes: Client and Server classes will make possible multiplayer networked games by routing messages via an open-ended set of supported communications transport subsystems. The Server class will use the IBM Lakes architecture to provide this communications support. IBM Lakes is the networking technology that underlies the Person-To-Person program that IBM ships in the BonusPak for OS/2 Warp. Lakes provides support for application-level connections via TCP/IP, LAN NetBIOS, or asynchronous dial-up, and its architecture can be extended to handle other transport subsystems in the future. An OS/2 game with a game Server object can communicate with game Clients and other game Servers using any or all of the supported transport layers simultaneously. Most games built on the entertainment toolkit will not need to subclass the Client or Server classes. They can remain contentedly ignorant of the workings of the underlying communication functions. Merely by instantiating a Server object, a game can ensure that all players of a multiplayer game session see a consistent view of the game. Communications between the Server and Client objects ensures that state information is reliably replicated and updated for each client. Because Lakes supports the dynamic addition or deletion of individual nodes or applications at any time during a communications session, players will be able to join or leave a game in progress at any time. When a player joins a game, the game's Server object will ensure that the player's Client is brought up to date with the latest state information for the game. Furthermore, all preexisting Clients will be informed of the presence of the new player. The physical location of a game's Server object is of no concern to the game programmer; it is merely recommended that the game code that instantiates the Server object be built into a separate executable from the code that instantiates Client objects. Any end-user, given the appropriate executable, will have the capability of instantiating the Server object on his/her own machine at the same time he/she brings up his/her Client. Another user can connect to the first user and use the same Server object; only another Client is started. Finally, a game Server administrator could start a detached process with just the Server, to which user's Clients will attach as these users log on. In this way, the same executable packaging can easily support a stand-alone player, multiple peer-to-peer connections, or a pay-per-access, client-server configuration. Transport layers for communicating between Servers and Clients are also of no concern to the game developer. Lakes hides all the details of networking with an elegant concept called "channels." The Server and Client objects simply include Lakes channels and ports through which all messages pertinent to the state of the game will pass. A Lakes channel always connects a sending port to a receiving port. Whenever an application joins a Lakes call set (i.e., whenever a user joins a multi-player game in progress), all of the messages sent to Server or Client objects' sending ports will automatically be received by all of the corresponding receiving ports at all of the connected Server or Client objects. In this way, anything that one player does to change the state of the game is automatically seen by all other players. And this synchronization of state data occurs without any special code in the game application. Since Lakes channels can be serialized, the game object base class can guarantee that messages affecting the game are processed in the same order by all distributed Servers and Clients. For example, if Peter and Susan both reach the cellar door key at roughly the same time, but Susan is actually a little faster, both players' clients will receive the same two messages in the same order: 1. Susan's player object has attempted to pick up the key. 2. Peter's player object has attempted to pick up the key. So, when Susan's and Peter's clients receive these messages, they will both know that Susan's grab was successful and Peter's attempt failed. At the time a Client connects to a call set and joins a game, the game may, if it wishes, determine whether the Client has the necessary display data (audio, animation, video, etc.) and input data (e.g. speech recognition grammars) to play the game. If the Client does not have the necessary data, or it has a back-level version of the data, the game Server object may: o disallow the client from playing, o download (presumably with the user's permission) the necessary data, or o allow the client to play with back-level data. Furthermore, the game application may allow clients with different levels of display/input data to play together. For example, a Client on a slow machine without multimedia functions could still participate by playing a text-based version of the game. It would be up to the Display Proxy objects in the game to test whether multimedia function is available. If it is, each object would use the available multimedia types to display itself. If it is not, each object would be displayed using only text data. World Objects: World class objects will represent a single game. Each instance of a World object represents an instance of that game in progress. The state of the World object's data represents the current state of the game. The World object will be instantiated in the same physical location as the Server object; World and Server objects generally exist in a one-to-one relationship. Each time a player joins the game, the World object instantiates a player object to represent the player in the game. Via communication with the Server object, all connected Client objects will then be notified of the new player, causing the creation of a Display Proxy Player (DPPlayer) object at each Client. If the new player's Client does not have the display data necessary for the game (i.e., all the video, images, animation, MIDI, etc. that the game uses), or if the Client has an old version, the World object will download all the necessary files to the Client at the time that the new player joins the game. As the game progresses, all actions taken by all players will be serialized in the World object to keep the game self-consistent. If two players try to change the state of the game at the same time, this serialization will ensure that the changes make sense. For example, if two players in an adventure game try to pick up a cellar door key at the same time, the player whose Client gets a message to the World object first will actually get the object. Subclasses of Container Class: The game object Base class will define a Container class for creating objects that contain other objects: Room, Room Exit, Player, Non-Player, Thing, and other Containers. Stated another way, a subclass of Container will be (for example) Room. ROOM objects can be used to represent physical places in a game, or they can represent more abstract concepts like levels. ROOM EXIT objects define the interfaces between Room objects. They govern when and how a player may pass from one Room to another. Room Exit objects will enable use of the server-switching functions that allow separate World objects to connect. PLAYER objects are instantiated for each player that joins the game; they, too, are containers. Players can contain objects that they own, such as a key picked up in an adventure game, or a weapon earned in an action game. NON-PLAYER objects are similar to Player objects in that they can own Things and move from Room to Room. However, their behavior is determined by the game application. An example of a Non-Player object would be an alien monster in a space adventure game. The Non-Player object class will provide randomizing methods for influencing behavior. For example, a game may assign a sequence of actions that a Non-Player object will perform at a specified time. The game may also specify that exact order or timing of the sequence be modified in a random fashion. Non-Player objects will be designed to exploit the game object Base class's journaling functions. A journal of actions recorded by a Player object could be used as the basis for the randomized behavior of a Non-Player object. So, a space adventure game programmer could determine the behavior of an alien monster by first recording a journal while an experienced user played as though he was the monster. The recorded actions of the user's Player object would be randomized to program the new Non-Player object. The THING class would be used to populate the Room objects with all the necessary parts of the game. All Thing objects could, at the discretion of the game application, use any of the underlying technologies built into the game object Base class. For example, any Thing object could accept input from mouse, joystick, keyboard or speech recognition. A Thing object could display itself on the player's system using any of the available OS/2 Multimedia formats: still picture, animation, motion video, wave audio, or MIDI. Two-dimensional Thing objects will be able to use the new OS/2 sprite engine for motion through a room and for detecting collisions with other Thing objects. Three-dimensional objects will make use of a new OS/2 3-D graphics API for translation and rotation through space. Display Proxies: All of the objects described above, except the Client object, reside in the same physical location as the Server object. Taken together, they define the logical processing of the game, but they do not define how the game appears to the user. The Room, Player, Non-Player and Thing objects each have a counterpart that gets instantiated in the client of every player in the game. This counterpart is called the object's display proxy, or DP. Display proxies contain the actual data necessary for an object to manifest itself to the user: image, animation, video, audio, or MIDI data. Since this data is kept locally at each Client, there will be no performance impact caused by the transmission of display data. The Display Proxies will use the new Direct Access Video Extension (DIVE) interface for displaying images. This new OS/2 Warp interface will permit high-speed (50 fps or more, depending on image size, availability of acceleration hardware, and display type) animation from still image data. An application could, therefore, specify a bitmap array as the display data for a Display Proxy object; the game object base class will display the images in that array through DIVE whenever that object is visible. SPEECH RECOGNITION The Input class will use the IBM Continuous Speech Series to provide speech-recognition input capability to all objects defined by the application. ICSS is a continuous speech-recognition system that digitizes and compresses speech input, then applies a recognition search based on an algorithm that compares phoneme models against context files. Context files define the grammars that delineate the words that are acceptable as input. Because ICSS accepts continuous speech, the user does not need to pause after every word he/she speaks. Furthermore, ICSS is speaker-independent, so users do not have to be trained to talk to ICSS, and ICSS does not have to be trained to listen to users. Unlike speech-recognition systems for dictation, ICSS uses small grammars that define the possible spoken inputs at a given point in time. The capabilities of ICSS to accept continuous speech from an untrained user, to operate independent of a particular speaker, and to utilize discrete, customizable grammars makes it an ideal input method for games and entertainment software. To speech-enable any of the objects it creates, an application based on the entertainment toolkit's game object Base class will provide a context file that contains a grammar for each state of the object. As the object changes state, the new grammar will automatically be loaded so as to correctly interpret any subsequent utterances. For example, an object that represents a book might be defined to have states such as "open" and "closed". The grammar for the open state would contain commands such as "Read the book" and "Close the book", whereas the grammar for the closed state would contain "Open the book". Once these states and grammars are defined, the base class will ensure that the book object receives an "open" message when it is closed and the user says, "Open the book." If ICSS is installed on the user's system, the Input object will: o Establish a session with ICSS o Load the correct context to guide speech recognition every time the input focus changes or an object's state changes o Start the ICSS listening process o Spin off a separate thread which will wait for spoken input o Convert the spoken command into a call to the appropriate object method o Terminate the session with ICSS upon application termination. 3-D GRAPHICS IBM intends to provide support for 3-D graphics modeling and rendering in the entertainment toolkit. Like the MMPM/2 implementation of software motion video, this new 3-D graphics support will use the DIVE interface for maximum performance. JOYSTICK SUPPORT IBM intends to provide a joystick driver for OS/2 in the entertainment toolkit. DEVELOPER SUPPORT ================= IBM wants to make it easy to port existing games, easy to develop new ones, and easy to bring them to market. Several support programs have been set up to meet these objectives. IBM DEVELOPERS ASSISTANCE PROGRAM The IBM Worldwide Developers Assistance Program (DAP) is open to all developers of IBM Personal Software-based products. These developers include corporate programmers producing in-house applications, consultants, educators, industry analysts, government agencies, and others with an interest in PC DOS, OS/2, Pen, Multimedia, LAN Systems, and now OS/2 for PowerPC. The DAP is designed to provide a broad range of technical, business, and marketing support services for this growing and increadingly diverse development community, such as: o Technical support through IBM OS/2 forums on CompuServe o The opportunity to participate in early-code programs o Access to DAPTOOLS via CompuServe and the Internet o Access to OS/2 Custom Application Porting Workshops and LAN Systems Workshops o Technical Conferences o IBM product announcements. Worldwide DAP membership is open to individuals, with no company or product prerequisite, and with no fee. Enrollment is done electronically through either CompuServe or Internet. On CompuServe, enter Go OS2DAP to complete the on-line application form. On Internet, FTP to dap.svo.com (192.203.134.5). Log on using a guest account (GUEST1, ... , GUEST10) and password of DAP4ME. Download the file WWDAP.TXT. Complete and send to wwdap@vnet.ibm.com. If you have any questions, please call 407-982-6408 or 407-982-1030. The Worldwide DAP also has a number of extensions that offer customized services for specific developer needs. Your eligibility for a specific service depends on the type of products you are currently marketing, or developing with plans to market. Some services vary by country but can include: o Online technical support at no charge o Defect support for all warranted products that are supported by IBM support centers o Complimentary access to the online database of Personal Software-based development tools Complimentary subscriptions to OS/2 Developer magazine o Discounts on IBM Personal Software products o Listings in IBM OS/2 & LAN Systems Application Directory, IBM OS/2 & LAN Systems Development Tools Guide, and Sources and Solutions catalog. o "READY! for OS/2" and "READY! for LAN Systems" certification marks o IBM Direct Marketing Center DEVELOPERS CONNECTION FOR OS/2 The Development Connection for OS/2 is a unique annual subscription program, offered in conjunction with the world-wide Developers Assistance Program, and designed to deliver CDs and Newsletters to your door four times a year. Electronic support is also provided to subscribers though Compuserve and the Internet. The Developer Connection for OS/2 is designed to support application developers that develop on the OS/2 platform with the most current technical information, tools, and sneak-previews, along with creative tips and techniques. IBM intends to extend the Developer Connection family with a toolkit for developing entertainment software. The OS/2 Developer's Connection CD-ROM subscription, containing a wide selection of development tools and code, is available for $199 (U.S.) from IBM: 800-6-DEVCON to order in the UNITED STATES 800-561-5293 to order in CANADA 45-3-252-6588 or FAX 45-3-252-8203 to order in EUROPE 61-2-354-7684 or FAX 61-2-354-7766 to order in OTHER LOCATIONS CONVERSION TOOLS (SMART) IBM recently signed an agreement with One Up Corporation to widely distribute its conversion tool, Source Migration Analysis Reporting Toolset (SMART), including current and future versions. SMART will be offered as part of the Developers Connection for OS/2 CD-ROM and results in tremendous time and cost savings for developers converting to 32-bit OS/2 applications from 16-bit Windows, 32-bit Windows NT, and 32-bit applications for future versions of Windows, as well as from 16-bit OS/2 applications. SMART consists of two primary tools. (1) The Analysis and Reporting Tool measures the size of a conversion effort and provides a roadmap for migration, typically in a day, rather than the 6 person-month effort usually required. (2) The Source Migration Tool automatically converts as much as 70 percent, or more in some cases, of the API and message code to 32-bit OS/2 code. ADDITIONAL SUPPORT A surprising amount of information and support is available for OS/2 game developers. Much of it comes from electronic bulletin boards and networks. OS/2 Warp includes electronic access to CompuServe and various tools to navigate the Internet. IBM also provides easy access to an Internet home page (server) on the World Wide Web (WWW) that contains a growing library of support information, information about available OS/2 applications, and sample code. As a game developer, be sure to ask about having your application listed there, and about supplying demo code for users to download and try. The list below is a small subset of Internet and CompuServe sites that contain answers and information about OS/2 multimedia and game development. INTERNET: COMP.OS.OS2.ANNOUNCE -- carries important OS/2 announcements COMP.OS.OS2.BETA -- explores beta releases of OS/2 COMP.OS.OS2.BUGS -- discusses possible bugs found in released versions of OS/2 COMP.OS.OS2.GAMES -- deals with game playing under OS/2 COMP.OS.OS2.MISC -- addresses anything else related to OS/2 programming COMP.OS.OS2.MULTIMEDIA -- discusses OS/2 multimedia (including MMPM/2) COMP.OS.OS2.PROGRAMMER.OOP -- focuses on programming with object technologies (such as SOM, DSOM, OpenDoc, Taligent frameworks, and the OS/2 Workplace Shell) COMP.OS.OS2.PROGRAMMER.PORT -- helps programmers port applications to OS/2 COMP.OS.OS2.PROGRAMMER.TOOLS -- compares and contrasts the various programming tools and compilers available for OS/2 COMP.OS.OS2.SETUP -- offers a place to talk about setup and installation issues COMP.REC.GAMES -- for general games questions FTP-OS2.CDROM.COM -- for OS/2-based multimedia programs and source code COMPUSERVE: OS2DF1 (MMPM/2 section) -- multimedia and game support GO IBM -- OS/2 Forum FIND OS/2 This next list includes a small subset of the hundreds of non-IBM bulletin-board systems with significant OS/2 content. They are sequenced by area code and country code. Fernwood (203) 483-0348 The Bin BBS (206) 451-1905 OS/2 Source BBS (303) 744-0373 Denver OS/2 BBS (303) 755-6859 Inside Technologies BBS (313) 283-1151 OS/2 Woodmeister (314) 446-0016 Gateway/2 (314) 554-9313 Pyramid/2 (415) 494-7497 Bay Area OS/2 (510) 657-7948 OS/2 San Diego (619) 558-9475 OS/2 Las Vegas (702) 433-5535 OS/2 Shareware (703) 385-4325 Greater Chicago Online (708) 895-4042 OS/2 Exchange BBS (904) 739-2445 Abaforum (Barcelona) 34-3-589.38.88 IBM UK 44-256-336655 OS/2 UK 44-454-633197 IBM Denmark 45-42-88-72-22 Copenhagen UG BBS 45-48-24-45-80 OS/2 Norway 47-22-38-09-49 IBM Norway 47-66-99-94-50 IBM Germany 49-7034-15-2160 OS/2 Australia 61-2-241-2466 Soft/2 Shareware 61-8-370-7339 (Adelaide) Your local FidoNet BBS may carry OS/2 echo conferences and/or OS2NET. If not, ask your system operator to join them. Smartnet (an international network of PCBoard BBSs), and PRODIGY (JUMP OS/2 CLUB) are also excellent resources. For information about the IBM United States OS/2 BBS, phone 800-547-1283. IBM Canada also maintains several support BBSs: (416) 946-4244, (416) 946-4255, (514) 938-3022, (604) 380-5441, (604) 664-6464. ============================================================ POSSIBLE OS/2 WARP GAME SCENARIO ============================================================ The following scenario provides an exciting glimpse of what the near future can bring with OS/2 Warp. Eric uses OS/2 Warp's Internet Connection to log on to a game server via the Internet. In one fantasy world provided by this game server, Eric has obtained the key to the cellar door. He's already explored the cellar, gleaning all the clues within, but he's hoping to get something more in exchange for the key itself. An animated figure with a likeness of Eric's face approaches the cellar door on the screen as Eric guides his player-likeness with a joystick. Eric speaks aloud, "Create a VCR", and an image of a video cassette recorder and TV monitor appears at his alter-ego's feet. "Record!" commands Eric, and a red light on the recorder starts blinking. Eric looks into the video camera he has attached to his $200 video capture card. "I have the key to the cellar door," he says as the animated reels turn on the tape recorder. "If you can tell me how to break the Wizard's spell, I'll give you the key." Eric selects the Stop button on the animated VCR and then shuts down his game session. Later that day, Peter connects to the same game server via LAN NetBIOS, and starts exploring the same game world. When he gets to the cellar door, he sees the VCR and TV monitor and selects the play button. Peter watches Eric's recorded message in the animated TV monitor inside his game world. His curiosity is piqued, and Peter says, "Who left this message?" A dialog appears on-screen showing an image of Eric with his nickname and TCP/IP address. In spite of the fact that Peter doesn't have TCP/IP installed, Peter says, "Call him." Meanwhile, Eric has pulled up the IBM Works word processor (included with OS/2 Warp in the BonusPak) and is into more serious homework, but he has left his Person-to-Person Call Manager running in auto-answer mode. Suddenly the game reappears on Eric's OS/2 desktop. Eric sees his own player-image and the image of another player (with a face that looks like Peter's) standing near that same cellar door. Peter has the same view on his screen. Peter speaks into his microphone, and as he talks, his player-likeness moves its mouth in a pantomime of speech. Eric can hear Peter's words emanating from his multimedia speakers: "I know someone who has beaten the Wizard. I will give you her number if you give me the key to the cellar door." Eric's mike is active, too. He replies, "No deal. Get me the information I need first; then I will give you the key." "Okay, can you hold a second?" Peter asks. "Let me see if I can get her on-line." Peter then says, "Call Susan," and his modem begins to click and hum. A moment later, a third player-figure is visible in the game scene, and a third voice can be heard on the audio channel. "Susan," says Peter, "Eric has offered to give us the cellar door key if we can show him how to defeat the Wizard. Do you want to deal?" The same game has popped up on Susan's screen. "It's complicated," replies Susan, "so I made it into a macro. Here, I'll replay it for you." She starts a second session of the same game, but the scene is different: the Wizard's laboratory. The same scene appears on Peter's and Eric's machines. As Peter and Eric watch, Susan's player-image engages in a duel with the Wizard, using various weapons and exchanges of cryptic utterances. "Got it," says Eric. "Thanks!" With his joystick, he drags the cellar door key from his sack onto the image of Peter's player. Then he picks up the VCR, drags it to the shredder, and shuts down his game session. Eric's player-image has disappeared from the other players' screens, but Peter can now see the key in his own sack. He unlocks the cellar door and says to Susan, "Follow me." They step inside... ============================================================ RECOMMENDED DOS SETTINGS ============================================================ Although OS/2 Warp automatically recognizes the top 100+ DOS games and automatically optimizes the DOS settings, there surely will be games that were missed. In this case, you can either make a copy of a program icon for a similar game and then manually change the drive path and program name, or you can use the generalized system settings listed below as a base to start from, and fine-tune if needed. The DOS Settings are displayed in a graphical format, and can be changed according to your game's documentation, or to match the guidelines provided here. 1. Point to the game/program 5. Select "DOS settings." 2. Press mouse button 2. 6. Select "All DOS settings". 3. Select the Session tab. 7. Select OK. 4. Select "DOS full screen". DOS FULL SCREEN -- This is a push button that is selected before editing the DOS Settings. Selecting this option causes your application to cover the entire screen instead of running in a window. You won't be able to see other windows and icons, but most games run much faster in full-screen mode. DOS_BACKGROUND_EXECUTION=OFF (default=ON) -- You'll want to set this to OFF for most games, so that your game doesn't continue to run when you switch to another application. In other words, your game will "freeze" when it is in the background, and resume when you once again bring it to the foreground. Set this to OFF if you don't want your fictitious character to get shot by aliens while you're working on something else! DOS_FILES=NN (default=20) -- For those few games that use more than 20 files during game play, increase the number of files to 30 or 40. Doing this slightly reduces the amount of memory available. DOS_HIGH=ON (default=OFF) -- In most cases, you'll want to set this to ON (along with DOS-UMB) to provide more conventional memory for your game. Some games, however, prefer to access the DOS high-memory space directly, thus requiring DOS-HIGH (and DOS_UMB) to be set to OFF. If DOS_HIGH is ON, you'll generally also want DOS-UMB to be ON, XMS_HANDLES to be greater than zero, and XMS_MEMORY_LIMIT to be at least 64. DOS_STARTUP_DRIVE=D: (a drive letter) -- Some game applications allow you to create a boot diskette to play the game. In those cases where nothing else seems to work, create a boot diskette, then enter "A:" for this setting. After that, when you double-click on the game icon, just make sure that the boot diskette is in drive A:, and OS/2 Warp will start your game as though it were actually starting your system from drive A: DOS_UMB=ON (default=OFF) -- This setting should be ON unless DOS_HIGH is OFF. It lets your DOS game load drivers and other TSR (terminate and stay resident) programs into upper and XMS memory, thus freeing conventional memory space for your game. DPMI_DOS_API=AUTO -- DOS Protected Mode Interface (DPMI) is a memory-access specification for use in multitasking environments such as OS/2 Warp. Many new applications are starting to take advantage of this feature. If you see DPMI mentioned in the game documentation, or in error messages, this default should be changed to ENABLED. DPMI_MEMORY_LIMIT=4 -- This default is usually adequate; however, if you have a truly memory-hungry game, boosting this setting to match the amount of physical memory (RAM) you have might provide performance improvements. However, boosting it beyond your physical memory might cause memory swapping to disk, thus impairing performance. DPMI_NETWORK_BUFF_SIZE=8 -- This default should be OK, but some games require this setting to be 64. EMS_MEMORY_LIMIT=2048 -- If your game requires more than the default of 2 MB of EMS (expanded) memory, then increase this setting to match the amount of physical memory (RAM) you have in your system. HW_NOSOUND=ON (default=OFF) -- Setting this to ON usually prevents your game from using your PC's internal speaker to make annoying noises. This setting does not, however, turn off sound card support in games that attempt, but fail, to play under OS/2 Warp. You should use the application's installation or setup features to control sound-card support. HW_ROM_TO_RAM=ON (default=OFF) -- This setting, which enables copying ROM BIOS to faster RAM, usually improves performance slightly, unless your system is memory-constrained. In some games, this slight improvement can eliminate screen flicker. HW_TIMER=ON (default=OFF) -- This should be set to ON for games and other timing-sensitive applications that need direct access to hardware timer ports. With this setting ON, however, the performance of background applications could suffer. It's a price you pay for fast action games -- where else could you receive a fax while playing DOOM? IDLE_SECONDS=NN (default=0) -- Some programs, such as games and word processors, spend most of their time idling, waiting for user input. Because they were written under the assumption that they are the only application running, they may make heavy use of the processor during this time, polling the keyboard or another device in order to appear as responsive as possible to the user. This setting lets you tell OS/2 Warp how many seconds you would like OS/2 Warp to wait before interrupting the program's idle time. By setting it to 10, you essentially tell OS/2 Warp to allow the DOS program to do whatever it pleases in 10-second intervals during idle time. If IDLE_SENSITIVITY is set to 100, disabling idle-detection, then it doesn't make any difference what IDLE_SECONDS is set to. IDLE_SENSITIVITY=100 (default=75) -- Set this to 100 for most DOS games to disable idle-detection, essentially telling OS/2 Warp not to interrupt your game just because you haven't responded for a certain period of time (defined by IDLE_SECONDS). INT_DURING_IO=ON (default=ON) -- Setting this to OFF causes DOS programs to not receive interrupts until after read/write is done. It should be left ON for multimedia applications to avoid choppy audio. KBD_ALTHOME_BYPASS=OFF (default=OFF) -- Some DOS games display great graphics even in a windowed DOS session. By pressing Alt+Home, you can toggle between running the game in full-screen or in a window. Other programs are not so well-behaved, however, and can even fail if using Alt+Home. In those cases, and whenever the application itself uses the Alt+Home key sequence, KBD_ALTHOME_BYPASS should be set to ON, which tells OS/2 Warp to pass the Alt+Home key sequence along to the application. KBD_CTRL_BYPASS -- In the case where a DOS game uses either the Ctrl+Esc or Alt+Esc key sequences, or when the game does bad things to the screen when you try to switch back to the OS/2 Warp desktop from your game, you should set this to either CTRL_ESC or ALT_ESC. MOUSE_EXCLUSIVE_ACCESS=ON (default=OFF) -- For most games, this can be set to ON to eliminate a second cursor, and to give your game more complete control over the mouse pointer. VIDEO_8514A_XGA_IOTRAP=OFF (default=ON) -- For most games, this should be set to OFF to provide faster, unrestricted access to the video device. VIDEO_FASTPASTE (default=OFF) -- In a few cases where a game seems unresponsive, setting this to ON can provide a minor benefit. VIDEO_RETRACE_EMULATION=OFF (default=OFF) -- This should be left OFF for games and graphical applications to improve performance. XMS_MEMORY_LIMIT=2048 (default=2048) -- Use this setting to increase the amount of XMS (Extended) memory available to an application, or to provide additional memory for the use of DOS_HIGH and DOS_UMB. In general, it's a good idea to leave this number a few megabytes less than the amount of physical memory you have. ============================================================ LIST OF GAMES RECOGNIZED BY OS/2 WARP ============================================================ The following are the game titles that (as of this writing) are recognized by OS/2 Warp. For each title, an icon has been placed in OS/2 Warp's Games folder, including fine-tuned settings to enable enjoyable play. When different versions of these titles exist for different system platforms (e.g., DOS and Windows), in most cases OS/2 Warp recognizes the multiple versions. 1942: The Pacific Air War, MicroProse 4D Boxing, Distinctive Software 7th Guest, Virgin Games A-Train, Maxis Aces of the Pacific, Dynamix Aces over Europe, Dynamix Alone in the Dark, I-Motion Alone in the Dark CD, I-Motion Alone in the Dark 2, I-Motion Arena: The Elder Scrolls, Bethesda Softworks ** Asteroids, Microsoft Battle Chess, Interplay Battle Chess 4000, Interplay Battles of Destiny, QQP Battlezone, Microsoft Betrayal at Krondor, Dynamix Betrayal at Krondor CD, Dynamix Black Jack for OS/2, Reed Blake Stone, Apogee Carriers at War Construction Kit, Strategic Simulations Carriers at War II, Strategic Simulations Castle Wolfenstein 3D, Apogee Centipede, Microsoft Chess Master 3000, Mega CD Pack Chip's Challenge, Microsoft Chuck Yeager's Air Combat, Electronic Arts ** Civilization, MicroProse Commander Keen, Apogee/id Software Commander Keen 4, GT Software/id Software Commander Keen 5, GT Software/id Software Conquered Kingdoms, QQP Corridor 7, Capstone Cosmo's Cosmic Adventure, Apogee Cruel, Microsoft Day of the Tentacle, LucasArts Day of the Tentacle CD, LucasArts DOOM, id Software ** DOOM II, id Software ** Dr. Black Jack, Microsoft Duck Tales, Incredible Technologies Duke Nukem, Apogee Duke Nukem 2, Apogee Dungeon Hack, Strategic Simulations El-Fish, Maxis Electranoid, Pixel Painters Empire Deluxe, New World Computing Epic Pinball, Epic ** Eric the Unready, Legend F-117A Stealth Fighter 2.0, MicroProse F15 Strike Eagle 3, MicroProse Falcon 3.0, Spectrum HoloByte Fleet Defender, MicroProse Freddy Pharkas Frontier Pharmacist, Sierra Freecell, Microsoft Freecell (Win32s), Microsoft Front Page Sports Football, Sierra Frontier Elite II, Gametek/Konami Fuji Golf, Microsoft Galactic Civilizations, AIMs/Stardock Golf, Microsoft Gunship 2000, MicroProse Halloween Harry, Apogee ** Hardball III, Accolade Harpoon CD, Three-Sixty Pacific Harpoon II, Three-Sixty Pacific Hocus Pocus, Apogee Hoyle's Book of Games, Sierra Hoyle's Book of Games, Vol. 3, Sierra Humans, GameTek Indiana Jones: Fate of Atlantis, LucasArts Indianapolis 500, Electronic Arts Indy Car Racing, Papyrus Jack Nicklaus Signature Golf, Accolade ** Jack Nicklaus Unlimited Golf and Course, Accolade ** JezzBall, Microsoft JigSawed, Microsoft Joe Montana Football, SEGA Just Grandma and Me, Living Books Kid Pix, Broderbund Kid Pix 2, Broderbund Killing Cloud, Konami Kings Quest I, Sierra Kings Quest II, Sierra Kings Quest III, Sierra Kings Quest IV, Sierra Kings Quest V, Sierra Kings Quest V CD, Sierra Kings Quest VI, Sierra Kings Quest VI CD, Sierra Klotski, Microsoft Knowledge Adventure, Knowledge Adventure, Inc. ** LHX: Attack Chopper, Electronic Arts Lakers vs. Celtics and the NBA Playoffs, Electronic Arts Lands of Lore, Westwood Studios ** Lands of Lore CD, Westwood Studios ** Leisure Suit Larry 3, Sierra Leisure Suit Larry 5, Sierra Lemmings 2: The Tribe, Psygnosis Lemmings, Psygnosis Life Genesis, Microsoft Links-The Challenge of Golf, Access Links386 Pro, Access ** MYST, Broderbund Mahjongg for OS/2, IBM Mario Is Missing, The Software Toolworks Master of Orion, MicroProse Math Blaster, Davidson Math Rabbit, The Learning Company Mavis Beacon Teaches Typing, Mega CD Pack Mickey's 123's, Disney Mickey's ABC's, Disney Microsoft Flight Simulator 4.0, Microsoft Microsoft Flight Simulator 5.0, Microsoft Might and Magic II, New World Computing Might and Magic III, New World Computing Might and Magic IV: Clouds of Xeen, New World Computing Might and Magic V: Darkside of Xeen, New World Computing Minesweeper for OS/2, David Charlap Minesweeper, Microsoft Missile Command, Microsoft Monster Bash, Apogee Mother Goose, Sierra NHL Hockey, Electronic Arts Oh No! More Lemmings, Psygnosis Operation Neptune, The Learning Company Oregon Trail, MECC Out of This World, Interplay Outpost, Sierra Oxyd magnum!, Dongleware Publishing ** Pegged, Microsoft Pipe Dream, LucasFilm Games Pipe Dream (Windows), Microsoft Playworld, Broderbund Police Quest 3, Sierra Police Quest 4: Open Season, Sierra Police Quest 4: Open Season CD, Sierra Populous, Electronic Arts/Bullfrog Populous 2, Electronic Arts/Bullfrog Prince of Persia, Broderbund Prince of Persia 2, Broderbund Quest for Glory I, Sierra Quest for Glory II: Trial by Fire, Sierra Quest for Glory III, Sierra Quest for Glory IV: Shadows of Darkness, Sierra Railroad Tycoon, MicroProse Railroad Tycoon Deluxe, MicroProse Rally Racer, Accolade Raptor, Apogee/Cygnus RattlerRace, Microsoft Reader Rabbit, The Learning Company Reader Rabbit 1, The Learning Company Reader Rabbit 1 for Windows, The Learning Company Reader Rabbit 2, The Learning Company Reader Rabbit 3, The Learning Company Reader Rabbit's Ready for Letters, The Learning Company Rebel Assault, LucasArts Red Baron, Dynamix Red Baron CD, Dynamix Return to Zork, InfoCom Reversi, Microsoft Rex Nebular, MicroProse Rodent's Revenge, Microsoft Best Roids, Leonard Guy Sam and Max Hit the Road, LucasArts Scorched Earth, Wendell Hicken Seawolf, Electronic Arts Secret Weapons of the Luftwaffe, LucasArts AirCombat Secret of Monkey's Island 2, LucasFilm Games Secret of Monkey's Island, LucasFilm Games Serf City, Strategic Simulations, Inc. Sherlock Holmes (CD), Icom Simulations Sherlock Holmes III, Icom Simulations SimCity 2000, Maxis SimCity Classic, Maxis SimCity (Windows), Maxis SimEarth, Maxis SimFarm, Maxis SimFarm (Windows), Maxis Ski Free, Microsoft Solitaire, Microsoft Solitaire's Journey, QQP Solitaire's Journey (Windows), QQP Space Quest I, Sierra Space Quest IV, Sierra Space Quest V, Sierra Spear of Destiny, Apogee Speed Racer, Accolade Splash, Spinnaker Star Trek 25th Anniversary, Interplay Star Trek: Judgment Rites, Interplay Stellar 7, Dynamix Super Solvers Gizmos & Gadgets, The Learning Company Super Solvers Midnight Rescue, The Learning Company Super Solvers Outnumbered!, The Learning Company Super Solvers Spellbound!, The Learning Company Super Solvers Spellbound! CD, The Learning Company Super Solvers Treasure Mountain, The Learning Company Taipei, Microsoft Take a Break Pinball, Dynamix Task Force 1942, MicroProse Tempest, Microsoft Tensor, AIMs/Palet TetraVex, Microsoft Tetris, Spectrum HoloByte Tetris for Windows, Microsoft The Bard's Tale II, Interplay The Bard's Tale, Interplay The Castle of Dr. Brain, Sierra The Grandest Fleet, QQP The Incredible Machine, Sierra The Island of Dr. Brain, Sierra The Legend of Kyrandia (Book I), Westwood Studios The Legend of Kyrandia (Book II), Westwood Studios The Lost Admiral, QQP The Perfect General, QQP The Playroom, Broderbund The Treehouse, Broderbund Their Finest Hour: The Battle of Britain, LucasArts Air Combat Theme Park, Electronic Arts/Bullfrog Theme Park CD, Electronic Arts/Bullfrog TicTactics, Microsoft Tie Fighter, LucasArts Tom Landry Strategy Football Deluxe, Merit Software Tony LaRussa Baseball II, Strategic Simulations Treasure MathStorm, The Learning Company Treasure Mountain V1.02, The Learning Company Tri Peaks, Microsoft Best Tut's Tomb, Microsoft Best U.S. Atlas Multimedia, Software Toolworks Mega CD Ultima Under World, Origin Ultima Under World II, Origin V for Victory: Market Garden, Three-Sixty Pacific V for Victory: Velikiye Luki, Three-Sixty Pacific VGA Planets, Tim Wisseman Video Poker, Brett King Warlords, Strategic Studies Group Warlords II, Strategic Studies Group Warlords II Scenario Builder, Strategic Studies Group Wasteland, Interplay Wheel of Fortune, GameTek Where in Europe is Carmen San Diego?, Broderbund Where in Space is Carmen San Diego?, Broderbund Where in Time is Carmen San Diego?, Broderbund Where in the USA is Carmen San Diego?, Broderbund Where in the World is Carmen San Diego?, Broderbund Wing Commander, Origin Wing Commander Academy, Origin Wing Commander II, Origin Wing Commander II Special Operations I, Origin Wing Commander II Special Operations II, Origin Wizardry VII: Crusaders of the Dark Savant, Sir-Tech WolfPack CD, Nova Logic WordZap, Microsoft World Atlas Multimedia, Software Toolworks World Circuit, MicroProse X-Wing, LucasFilm Games XCOM - UFO Defense, MicroProse XCOM - UFO Defense CD, MicroProse NOTE: In some games, depending on the hardware configuration, sound should be disabled for optimum performance. Titles marked with an ** are games that require the sound to be disabled in most of the tested configurations. Try them with sound on your system first. ============================================================ TRADEMARKS: ============================================================ Crash Protection, DSOM, IBM, MMPM/2, Multimedia Presentation Manager/2, OS/2, Operating System/2, Person to Person, PowerPC, SOM, System Object Model, Ultimedia Builder/2, Ultimedia Perfect Image/2, Ultimedia Video IN, Ultimedia Workplace/2, Ultimotion, and Workplace Shell are trademarks or registered trademarks of IBM Corporation. Microsoft and Windows95 are trademarks or registered trademarks of Microsoft Corporation.