Windows 3.0 with Multimedia Extensions 1.0

Windows 3.0 with Multimedia Extensions 1.0 (also called Multimedia Windows by some sources) is a special, multimedia-centric release of Windows 3.0, exclusively released on 20 October 1991 to various original equipment manufacturers (OEMs). Currently available releases include a vanilla SDK release for IBM PC in English, a Tandy release for the PC in English and German, an English release for the PC by Creative Labs, and Japanese releases for NEC PC-98 and Fujitsu FM TOWNS. This was Microsoft's first serious attempt to address the multimedia market on Windows.
It is the first version of Windows to support sound output and includes new programs for audio and video playback, including the first version of Media Player, new drivers for CD-ROM drives, sound cards, displays and joysticks and screensavers, as well an updated Control Panel. Most of these changes were later incorporated into Windows 3.1. Although the operating system supports running in real mode, the new changes are only available in the Standard and 386 Enhanced modes.
== Information from antitrust documents ==
An internal Microsoft document released during the Comes v. Microsoft antitrust hearings details the initial development plan for a "Multimedia Windows" release.Iowa District Court for Polk County. Plaintiff's Exhibit #7531, Comes v. Microsoft. According to the document, the alpha release was shipped to 35 external testing groups on 15 June 1990, with 25-30 additional sites to receive it on 1 August 1990. The beta release was to be released in mid-October 1990 and the final OEM Adaptation Kit (OAK) in December 1990.
Tandy is mentioned as the first OEM to launch their multimedia-capable PC-compatibles with Multimedia Windows. IBM, Fujitsu, Sharp, Olivetti, Zenith, Sony and Intel are listed as potential candidates for release. Microsoft Works for Windows with Multimedia extensions is mentioned as one of the apps to tie in with new features of Multimedia Windows.
== New features ==
Windows with Multimedia Extensions comes with a wide array of features, most of which require the system to run in Standard Mode or Enhanced Mode, and most of which are provided through the MMSYSTEM.DLL file.
=== MCI & Sound Support ===
For the first time, Windows now integrates proper sound support rather than simple PC speaker beeps. To prevent application writers from having to add support for the myriad of available sound cards, Microsoft provides three main ways to support sound on Windows with Multimedia Extensions: the waveOut API calls, which involve directly writing PCM waveform data to the sound card, the midiOut API calls, which cause MIDI playback, and the MCI (Multimedia Control Interface) APIs, which allows high-level control of many different multimedia devices. An application could even create an "MCI Window", a special window class that allowed playback of many different kinds of multimedia files, and could even be extended. 
The Media Player application is merely a shell for an MCI Window. Video for Windows extended the MCI technology to add the ability for MCI to control AVI playback. 
=== High-Resolution Timers ===
To support the high-precision timing required for sound, video, and animation playback, Windows with Multimedia Extensions adds a timer API, featuring API calls such as timeGetTime, which reads directly from the PIT's interrupt timer.
=== Joystick Support ===
Windows with Multimedia Extensions integrates support for basic two-button two-axis joysticks through the joyGetPos API.
=== DISPDIB.DLL & DIB.DRV ===
Windows with Multimedia Extensions ships with a system driver named DIB, allowing a software developer to create a GDI device context around a device-independent-bitmap in memory, thus allowing one to perform GDI operations onto the DIB and then have the application directly read the result out of the bits. This is conceptually similar to the CreateDIBSection API call added in Windows 95 and NT 3.5 (and backported through WinG), but since DIB.DRV is treated as an additional display adapter, you cannot BitBlt between DIB.DRV device contexts and those owned by the real display, since the bitmaps backing them (ostensibly "device-dependent" bitmaps, really just stored in the format of the driver which is a DIB for DIB.DRV and an arbitrary format for the main display driver), so it doesn't allow one to directly display the DIB onto the screen.
However, Windows with Multimedia Extensions also ships with a DLL called DISPDIB.DLL, which allows one to suspend GDI and directly access the VGA (Mode 13h; 320x200x256) framebuffer at 0xA0000 (accessed through a selector exported by KERNEL) for high-speed display of graphics and animations. In concert with DIB.DRV, this enables the Windows desktop to run in VGA Mode 13h, since DIB.DRV provides GDI operations onto the DIB surface, and DISPDIB can draw them, allowing for the 320x200 VGA driver that comes with Windows with Multimedia Extensions. Some applications targeting Windows versions 1.0, 2.x, and 3.0 had already bypassed requiring GDI calls by directly accessing the video card, but as VGA slowly became a widely-adopted standard for new computers, Microsoft formalized the arrangement.
== New applications ==
=== Tandy OEM ===
==== Windows Help ====
Windows Help in this release is version 3.07. The About dialog also states "Version 3.1.061d", which is caused because SHELL.DLL from Windows 3.1 build 061d is included.
==== Control Panel ====
About dialog says "Control Panel for Windows graphical environment with Multimedia Extensions 1.0" and "Version 1.0".
==== Auto Install ====
A Tandy OEM application for installing other applications from removable media. Version 1.0.
==== Welcome ====
A fullscreen, run-once Tandy OEM application that says, "Tandy presents the world of multimedia".
==== Multimedia Main Menu ====
A Tandy OEM application for easy access to various multimedia demos, applications, and the Program Manager.
==== Reset Tandy Demo ====
A Tandy OEM application which resets the default shell back to FindCD.
==== FindCD ====
A Tandy OEM application that offers a tutorial and sound test. When finished, it first starts the Welcome application and then the Multimedia Main Menu.
=== Creative Labs OEM ===
The Creative Labs OEM notably includes utilities from the Sound Blaster driver kit, including the Sound Blaster Pro Mixer.
== Problems and fixes ==
=== Startup fix (Tandy OEM) ===
On the Tandy version, the default shell is set to FindCD (see above). This requires the user to insert the installation CD, but the application often hangs at the start (possibly due to bad soundcard configuration), preventing the user from booting into Windows itself without changing the shell back to Program Manager in SYSTEM.INI.
To do this you must open the file SYSTEM.INI in the installation directory, find the [boot] section and change the line shell=findcd.exe to shell=progman.exe. Windows will now start Program Manager on startup.
This doesn't apply to the non-Tandy versions since they set the shell to PROGMAN.EXE by default.
=== VGA cards in 386 Enhanced Mode ===
Some VGA cards may not work or detected properly under 386 Enhanced Mode with this version unless a certain EMMExclude setting is set in SYSTEM.INI.Troubleshooting Unsupported VGA Cards with Windows 3.0 This issue is also known to affect Virtual PC 2004 and 2007.Windows 3.0 386 Enhanced mode in VPC - BetaArchive
== Other ==
Both Tandy and non-Tandy versions include special video drivers, including a 320×200×256 color driver; with special fonts, it works on any virtualization software that emulates a VGA card. It can also be used on later versions of Windows (up to Windows 95) by upgrading from this version.
== File differences ==
== Gallery ==
Win3mmesetup1.png|Starting setup
Win3mmesetup2.png|Setup
Win3mmesetup3.png|Directory confirmation
Win3mmesetup4.png|Config confirmation
Win3mmesetup5.png|Sound card port value selection
Win3mmesetup6.png|Hardware interrupt value selection
Win3mmesetup7.png|Hardware DMA channel selection
Win3mmesetup8.png|Copying files
Win3mmesetup9.png|Exiting TXT setup
Win3mmesetup10.png|Starting GUI setup
Win3mmesetup11.png|Setup
Win3mmesetup12.png|Copying files
Win3mmesetup14.png|Ditto
Win3mmesetup16.png|Ditto
Win3mmesetup17.png|Printers
Win3mmesetup18.png|Set up applications
Win3mmesetup19.png|Scanning
Win3mmesetup20.png|Select applications
Win3mmesetup21.png|Release notes
Win3mmesetup22.png|Confirmation to modify AUTOEXEC.BAT and CONFIG.SYS
Win3mmesetup23.png|Ditto
Win3mmesetup24.png|End of setup
Windows30-MME-Boot.png|Boot screen
Win3mmefb.png|First boot
Win3mmepm.png|Program Manager
Win3mmeaee.png|Application Execution Error
Win3mmecal.png|Calendar
Win3mmecalc1.png|Calculator
Win3mmecalc2.png|Calculator in Scientific mode
Win3mmecard.png|Cardfile
Win3mmecb.png|ChatterBox
Win3mmeclip.png|Clipboard
Win3mmeclock1.png|Clock starts minimized
Win3mmeclock2.png|Clock in Digital theme
Win3mmeclock3.png|Clock in Analog theme
Win3mmecp1.png|Control Panel
Win3mmecp2.png|Color
Win3mmecp3.png|Printers
Win3mmecp4.png|Fonts
Win3mmecp5.png|International
Win3mmecp6.png|Ports
Win3mmecp7.png|Keyboard
Win3mmecp8.png|Mouse
Win3mmecp9.png|Date & Time
Win3mmecp10.png|Desktop
Win3mmecp11.png|386 Enhanced
Win3mmecp12.png|Display
Win3mmecp13.png|Installed drivers
Win3mmecp14.png|Joystick warning
Win3mmecp15.png|Joystick
Win3mmecp16.png|MIDI Mapper warning
Win3mmecp17.png|MIDI Mapper
Win3mmecp18.png|Sound
Win3mmecp19.png|Screen Saver
Win3mmecp20.png|List of screensavers
Win3mmecp21.png|Blackness screensaver
Win3mmecp22.png|Lissajous Figures screensaver
Win3mmecp23.png|Marquee screensaver
Win3mmecp24.png|Melt / Slime Screen screensaver
Win3mmecp25.png|Mystify screensaver
Win3mmecp26.png|Starfield Simulation screensaver
Win3mmefm.png|File Manager
Win3mmejb.png|JukeBox
Win3mmemb.png|Music Box
WMP1About.PNG|About Media Player
Win3mmenp.png|Notepad
Win3mmepaintbrush.png|Paintbrush
Win3mmepifeditor.png|PIF Editor
Win3mmeprintm.png|Print Manager without a printer plugged in
Win3mmer.png|Reversi
Win3mmereadme.png|README.TXT
Win3mmerecorder.png|Recorder
Win3mmesbpmc2.png|Device error
Win3mmese.png|Cannot read from drive D: error
Win3mmesol.png|Solitaire
Win3mmesr.png|Sound Recorder
Win3mmeterminal1.png|Select default serial port
Win3mmeterminal2.png|COM1 isn't available error
Win3mmeterminal3.png|Terminal
Win3mmewrite.png|Write
Win3mmews.png|Windows Setup
Win3mmemulti.png|Multimedia demo
Windows30-MME-Demo.png|Demo
Mme16bpp.png|High color mode with color selector
Win3 320x200.png|320×200 mode
=== OEM versions ===
Win3mmelogo.png|Boot screen (Tandy, Packard Bell, and Creative Labs OEM)
3.0WithMME1.0 TandyOEMDialogue.png|Tandy OEM starting page
Win3mmesbpmc1.png|Sound Blaster Pro Mixer Control (Tandy OEM)
==== Fujitsu FM TOWNS OEM ====
File:Windows-3.0-MME-FM-Towns-Boot.png|Boot screen
File:Windows-3.0-MME-FM-Towns-Desk.png|Desktop
File:Windows-3.0-MME-FM-Towns-ControlPanel.png|Control Panel
File:Windows-3.0-MME-FM-Towns-Converter.png|FM-TOWNS Converter
File:Windows-3.0-MME-FM-Towns-MediaPlayer.png|Media Player
File:Windows-3.0-MME-FM-Towns-MusicBox.png|Music Box
File:Windows-3.0-MME-FM-Towns-SoundRecorder.png|Sound Recorder
==== NEC PC-98 OEM ====
File:Windows-3.0-MME-PC-98-Setup.PNG|Setup
File:Windows3.0-RTM-PC-98-Boot.PNG|Boot screen
File:Windows-3.0-MME-PC-98-Desk.PNG|Desktop
File:Windows-3.0-MME-PC-98-ControlPanel.PNG|Control Panel
File:Windows-3.0-MME-PC-98-ImageScannerUtility.PNG|Image Scanner Utility
File:Windows-3.0-MME-PC-98-UDCM.PNG|User-Defined Character Maintenance Utility
==References==
Category:Retail builds of Windows 3.0
Category:Builds of Windows 3.0 with Multimedia Extensions