Welcome to version 1.0 of MicrosoftÂ® WindowsÂ® CE with DirectXÂ® for the Sega Dreamcastâ„¢ System. These release notes contain information on known bugs and problems and additions to the documentation. Dreamcast SDK Licensing In order to use this software to develop and ship a game title, you must sign the Microsoft Development Tools Agreement for the Microsoft Software Development Kit for Dreamcast. For more information about Dreamcast SDK licenses, please send email to: firstname.lastname@example.org Redistribution Disclaimer Cross Products, Ltd. (CPL) has granted Microsoft the right to redistribute the following CPL products within the Windows CE for Dreamcast Software Development Kit (SDK) provided directly to Sega: Â· The Salsa library for personal computer linked to Microsoft applications. Â· The GD Workshop utility, as supplied to Microsoft by CPL, along with associated Help and ancillary fields. Â· Updated firmware for the Debug Adapter and GD-Emulator, as supplied to Microsoft by CPL. Â· The DACheck utility for upgrading the specified firmware files. This redistribution is being allowed so that Microsoft can guarantee compatibility between CPL products and specific releases of the Windows CE for Dreamcast SDK. Microsoft does not market or distribute these products on behalf of CPL. Microsoft provides no warranty to Sega or other users of the Windows CE for Dreamcast SDK for the bundled CPL products, and all responsibility for development and support of the CPL products remains with CPL and Sega. Sega Product Development of Sega of America grants Microsoft Corporation the right to freely distribute the following audio conversion tools with the Windows CE for Dreamcast SDK: Â· WaveCon, a PCM-to-ADPCM conversion tool designed to convert uncompressed PCM WAV audio data to the Yamaha Corporation ADPCM format to run on the Sega Dreamcast hardware. Â· DLS2STB, a DLS-to-Sega tonebank converter, designed to convert data from the MMA DLS instrument bank format to the Sega Dreamcast instrument bank. Viewing These Documents The Windows CE for Dreamcast SDK contains the Windows CE for Dreamcast operating system, all the Dreamcast DirectX components, other OS extensions, sample applications, and documentation. The documentation in Japanese may not be as complete as the English documentation. This SDK is intended to be used with Dreamcast SET5.2x and production hardware. The main body of documentation is provided as an InfoViewer title (IVT). In addition, several important documents are built separately as Word 97 files. If you do not have Microsoft Word 97 installed on your computer, install the Word 97 viewer provided on your CD. Run the installation program from one of the following locations: Â· \Eng\Word97Viewer\Wdview97.exe Â· \Jpn\Word97Viewer\Wdview97.exe. The following other documents are included with this SDK: Â· Docs\Eng\Setup.doc and Docs\Jpn\Setup.doc Information on how to set up your Dreamcast hardware and software, how to use the SDK and set up new applications, and how to create, emulate and burn GD-ROMs. Â· Docs\Eng\Tools.doc and Docs\Jpn\Tools.doc Information on the tools for running and debugging applications, including the Visual StudioÂ® integrated development environment (IDE). Â· Docs\Eng\Segafn.doc and Docs\Jpn\Segafn.doc Reference information on the special compiler intrinsic functions that take advantage of Dreamcast-specific SH4 instructions. Â· Docs\Eng\Sh4notes.htm and Docs\Jpn\Sh4notes.htm Release notes for the Microsoft Windows CE Toolkit for Visual C++Â® 5.0 and the SH4 IDE Enhancement Pack for the Sega Dreamcast System. Windows CE for Dreamcast SDK V1.0 Features Â· Windows CE operating system Â· Win32 Multi-threaded programming model Â· Optimized for Dreamcast (small, fast, flexible) Â· Support for Dreamcast hardware (GD-ROM, Visual Memory, DMA) Â· TCP/IP, RAS, PPP communications protocols; WinSock, WinInet, modem APIs Â· Memory management Â· MIDI API Â· DirectX multimedia API Â· Optimized for Dreamcast SH4, PowerVR2, ARM sound processor Â· DirectDraw: video memory manager for Direct3D Â· Direct3D Immediate Mode: interface for 3D hardware; performs transformation, lighting, rendering Â· DirectInput: input manager (game controller, keyboard, racing wheel) Â· DirectSound: plays and captures digital audio, 3D sound Â· DirectPlay: transport-independent network gaming API Â· DirectShow: Digital audio-video synchronization Â· Tools for remote Dreamcast development: Dreamcast control, profiling, monitoring, peripheral access Â· SDK installs into Visual C++ Interactive Development Environment with SH4 compiler and debugger New Features Since the Last Release (Beta 2) Â· Table fog Â· Bump mapping Â· Locking of dynamic surfaces Â· Vector quantization (VQ) textures and surfaces Â· Registry values for control of video memory allocation, DRIVGLOB allocation, and rendering controls Â· Graphics capabilities reported for all hardware and driver features Â· Real-time monitors to view hardware and software performance, textures in video memory, video memory buffer content and usage Â· Function profiler Â· Visual C++ debugging over SCSI Â· Secure Sockets Layer (SSL) Â· Pocket IME and Tankanji IME Components List The following is a list of all the components of the Windows CE for Dreamcast SDK: Â· DirectDrawÂ® Â· DirectInputÂ® Â· DirectSoundÂ® Â· DirectPlayÂ® Â· Direct3DÂ® Immediate Mode Â· DirectShowâ„¢ Â· MIDI Â· Visual Memory LCD Â· Visual Memory Timer Â· Visual Memory Flash Â· Pocket IME and Tankanji IME Â· WinInet Â· Image decompression library Â· Windows Sockets (Winsock) Â· GD-ROM driver Â· Serial driver Â· Windows CE kernel Â· Remote Access Service (RAS) Â· TCP/UDP/IP/PPP network protocol stack Â· Modem driver VCCE Installation CD Key At the VCCE install CD key prompt, type in all ones: 111-1111111 Known Bugs and Problems This section contains a list of known bugs and problems with this release of the SDK. Where possible, these will be fixed in the next version. DirectDraw Â· DirectDraw currently reports the same set of capabilities for the hardware emulation layer (HEL) and the hardware abstraction layer (HAL). This is actually representative of the complete capabilities of DirectDraw, including those features present in hardware, as well as those that are emulated, such as certain types of bit block transfers (blits). Â· The IDirectDrawColorControl interface and methods are not supported. Â· Triple buffering, with one primary surface and two back buffers, is not supported in this release. Â· Changing the display mode, using IDirectDraw::SetDisplayMode, must be done before any surfaces are created, including the primary surface. Changing the display mode after creating surfaces is unsupported in this version, but is expected to be supported in a later version. Â· The DCY2 FourCC code is not supported in this release. DirectInput Â· There is a two-position slide switch just below the START button on Saturn gamepads. The two positions are labeled + for the left position and O for the right position. Be sure the switch is always in the O position; otherwise DirectInput does not function correctly. The Dreamcast gamepads do not have this switch. Â· Because Dreamcast gamepads do not have C or Z buttons, the C and Z buttons on Saturn gamepads are not operative. Â· If the range property is set with a difference between lMax and lMin greater than 429495, the dead-zone property has no effect at any setting. Â· After an application starts, input devices that are unplugged and plugged back in can act in unexpected ways. If the game is not calling Poll on a regular basis, it might take two EnumDevices calls to see the replugged device. This should not be an issue for games that support hot plugging because they would already be calling EnumDevices on a regular basis. This behavior is due to a limitation in the Maple bus architecture and cannot be fixed. DirectSound Â· The Wavcon.exe program converts 16-bit pulse code modulation (PCM) .wav files to Yamaha 4-bit ADPCM files, achieving four-to-one compression with nearly 16-bit quality. It provides content compression for DirectSound playback. The Yamaha files can be played only on Dreamcast. Stereo .wav files are not supported by Wavcon.exe. The usage syntax is: wavcon infilename outfilename Â· There are some volume fluctuations with one sample converted by Wavcon. There is some error inherent in converting from PCM to ADPCM, and it is worse if the sample quality is low. Some sound-editing programs have normalization features that can clean up dirty, low-quality samples to make them less sensitive to this kind of problem. Â· If you play a YAMAHA ADPCM sound that loops, the volume fluctuates randomly at each loop point. This problem should be fixed in a later release. Direct3D Â· Direct3D Retained Mode is not supported in the Dreamcast SDK. Â· Standard D3D viewports are supported, but the viewport boundaries must be multiples of 32 pixels in x and y dimensions. Â· Video modes can now be changed at run time, rather than only on startup. Â· Four-bit palettized textures are now supported in addition to 8-bit palettized textures Â· The punch-through drawing mode is supported, using a 5551 texture with alpha-blending enabled. This means that there are now three drawing phasesâ€”opaque, punch-through, and translucentâ€”compared with two in the previous release. Â· Vertex fog is rendered incorrectly with specular highlights. When specular highlighting is enabled, the vertex fog in a scene becomes much too dense. If the specular highlighting is turned off, the fog disappears altogether. The workaround is to use table fog, which also has better performance. Â· The aspect ratio is incorrect for scenes rendered in a 640x240x16 display mode. Objects in the scene appear elongated along the y-axis, and the top and bottom portions of the scene are cropped off by the top and bottom of the screen. The workaround is to set a fake aspect ratio that produces the desired results. Â· A background texture quad appears in front of all other polygons in a scene. Avoid using background temporarily.[FONT="] [/FONT] DirectShow Â· To achieve full frame rate with MPEG play, encode MPEG files in a resolution of 320x240 or less, and then scale it with IBasicVideo::SetDestinationPosition to whatever size is needed. The performance of MPEG play is expected to improve in the next release. Windows CE Â· The RegFlushKey function always succeeds, but does nothing. This is intentional, for compatibility purposes. Â· Microsoft strongly recommends that application developers use WinInet in ASCII mode, and not in Unicode mode. Filesystem Â· After switching from the GD-ROM drive to the GD-ROM emulator, using GD Workshop, you must reboot Dreamcast before it can see the change in the file system. Limitations of Samples Â· Some DirectDraw samples, such as Ddex4, Donuts, and Foxbear, running on Windows 95 display incorrect colors with certain video cards. This seems to be a driver issue and has been noted to occur on Matrox Millennium cards. Â· The ImgTest1 sample does not build or run on Windows NT or Windows 95, but it does build and run on Windows CE for Dreamcast. Â· The Httpdump sample does not support asynchronous functionality in this release. Visual Studio IDE Â· Uninstalling the SH4 IDE Enhancement Pack without uninstalling the Windows CE Embedded Toolkit for Visual C++ 5.0 displays the following error dialog and prevents you from opening Visual Studio: â€œThe dynamic-link library Devshl.dll could not be found in the specified pathâ€¦â€ To avoid this problem, uninstall both or neither. Â· If an application is killed by the IDE because the developer hit Stop Debugging, a large fixed allocation is not freed correctly. The driver prints this message when a new application is started: ERROR: Failed to allocate translucent DMA buffer space. Either a previous shutdown of the display driver failed, or the DRIVGLOB section in the Config.bib is too small. The display driver requires 1048576 bytes. In this case, choose Boot to reboot the Dreamcast console. Miscellaneous Â· Do not connect the Dreamcast development system to an SCSI controller serving other SCSI devices, such as a Windows NT system disk or other hard drives. If you do, the debug adapter may lock up or crash during the development process, resulting in possible data loss. Â· SET5.2 is a 16-MB development station. This is not expected to increase. Hardware Â· This release has been extensively tested on Set5.2. It may work on Set5.16, but almost no testing was done, and performance is not guaranteed. There are significant differences between Set5.16 and Set5.2. Set5.16 systems should be upgraded immediately toSet5.2. Â· Accessing video memory 1 byte at a time does not work properly. This is a limitation of the graphics chip. Word and DWORD accesses are okay. Â· The command buffer kept by the video driver is not always flushed when expected. Hardware renders, including blits, are queued and not run until needed; usually, this is signaled to the driver by a flip, a surface lock, or a render or blit to a different surface from the one currently being rendered to. For blit or flip applications, this is not a problem. However, if the front buffer is the target of the render, the application writer must know to lock or unlock a surface; for example, in order to flush the render commands through. Â· Because of a limitation in the Maple hardware, plugging an expansion device into a controller makes the controller appear to be unplugged, and then plugged back in. An application must frequently enumerate DirectInput to protect against usersâ€™ plugging in expansion devices. Games must be written to take this into account. In other words, games must handle the case in which joysticks are unplugged and plugged back in. This could also happen for other expansion devices. The Sega Visual Memory has a battery and is normally powered by that battery. When it is connected to a controller, the power source is switched from battery to controller. This transition process takes about two seconds, and Visual Memory cannot respond to a command during this period. In addition, Visual Memory occupies the expansion bus of a controller, and a controller cannot respond to a command from the main body either. As a result, neither a controller nor Visual Memory can respond to the main body for about two seconds after Visual Memory is connected to a controller. This situation causes a time-out, and the controller acts as if it were unplugged. This problem is unavoidable with the current hardware. Â· There is a design limitation in the Visual Memory unit that is compounded by the preceding problem. If the Visual Memory unit is in game mode when it is plugged into a controller, the controller is unplugged as normal, but is not replugged until the Visual Memory unit is unplugged. The user must put the Visual Memory unit in watch mode before plugging it into a controller. Â· When you use the Image Decompression library, RGBA 5551 surfaces may display a pattern of light blue pixels. This is a hardware problem, not a problem in the library software. Documentation Issues This section includes corrections and additions to the current documentation.