[ Dreamcast ]-

Jak się to zaczęło? Pracując w Warszawie, przyjeżdżałem od czasu do czasu na weekend do rodzinnego domu w okolicy Katowic. Mój PC pojechał ze mną do Warszawy, więc podczas pobytu w domu byłem pozbawiony dostępu do internetu, co dosyć mi dopiekało. Składać komputera nie chciałem - wiedziałem, że gdy będę modernizował mojego PC to będę wymieniał procesor z PIII na PIV, czyli będę także wymieniał płytę główną wraz z pamięciami. Zamiast je sprzedawać bardziej opłacało by się dokupić do nich resztę komputera.

Ale pytanie brzmiało: co w międzyczasie? Dowiedziałem się, że dostęp do internetu można uzyskać z konsoli do gier. Zacząłem badać temat: wyjaśniło się, że Xbox z założenia nie miał mieć modemu, PS w teorii zdaje się miał, ale w praktyce nie. Została dosyć już przestarzała konsolka o nazwie Dreamcast, która modem miała wbudowany. Okazało się, że jest nawet sprzedawana z przeglądarką webową - ideał! Co prawda konkretów nie można się było od sprzedawców dowiedzieć - najwyraźniej nikt nie grał w sieci.

Kupiłem, przyniosłem, rozpakowałem. Założyłem CD internetowe, uruchomiłem. Program zaproponował połączenie do providerów w Niemczech, Anglii lub Francji. Nie skorzystałem. Zacząłem grzebać w sieci. Istniał program FISA, którym można było samemu ustawić parametry połączenia, łącznie z ustawieniem parametru, który podwyższał maksymalną szybkość modemu. Ale, żeby uruchomić program, trzeba go było odpalić z bootowalnego CD. Czyli, trzeba się było nauczyć takie płytki robić. Narzędzia było co prawda niestety konsolowe, ale dało się je opanować. Ponieważ konsola ma zabezpieczenie przed nielegalnymi programami, trzeba je było ominąć: najpierw w jednej sesji nagrać krótki i pusty plik .wav, a w drugiej właściwy program. Proste! Jakaś dobra dusza w sieci wydłubała betę przeglądarki webowej - sporo lepszej od tej dołączonej do DC - z CD dołączonego do jakiegoś czasopisma i umieściła w sieci. Też wypaliłem. Teraz już można było DreamCasta naprawdę używać. Doszedł jeszcze zakup przejściówki pozwalającej dołączyć do konsoli zwykły monitor, oraz drugiej - dla klawiatury. Działało!

Zalety:

· obsługa polega głownie na załączeniu i wyłączeniu,

· obsługuje pocztę elektroniczną,

· nie można złapać wirusa,

· w razie problemów wystarczy wyłączyć.

Wady:

· nie obsługuje bardziej zaawansowanych rodzajów dokumentów: .pdf, .doc,

· rozdzielczość 640x480,

· przeglądarka nie jest żadną ze znanych przeglądarek.

 

Wykorzystując uzyskane umiejętności wykonałem trochę płytek z mp3, musiały być wypalone na płytce razem z playerem, ale działały. Spróbowałem podobnej sztuki z filmami VCD, ale tu było już wyraźnie widoczne, że procesor jest na to zbyt słaby. No, zmieniłem także stronę startową przeglądarki z Segi na Super Express.

A teraz trochę z Microsoftu

The Dreamcast console includes a 200-MHz Hitachi SH4 microprocessor and VideoLogic PowerVR graphics chip capable of rendering more than 1 million polygons per second. The system has 16 MB of main memory, 8 MB of video memory, and 2 MB of sound memory. The sound chip is the Yamaha AICA, which uses the ARM7DI as its sound controller. Unlike other consoles that either use cartridges (like the Nintendo 64) or standard CD-ROMs (like the Sony Playstation), Sega designed a proprietary storage format for the Dreamcast called GD-ROM (Gigabyte Disk ROM). These discs can store both standard CD-ROM data and game data in a high-density band. The GD-ROM format allows Dreamcast titles to store more data than standard CD-ROMs without having to go to the much more expensive DVD drives. There are currently several peripherals available for the Dreamcast, including a standard controller, microphone, light gun, wheel, and arcade-style joystick. Many of the peripherals support the use of plug-in Visual Memory System devices. These small devices serve as both persistent memory storage units as well as portable game players using their built-in LCD screen. One of the most promising features of the Dreamcast is its built-in modem. It allows you to provide the same kind of online game play features available in many PC titles today, as well as provide Internet connectivity previously unavailable on consoles.

The Dreamcast console does not actually ship with Windows CE built in. The operating system, DirectX, and the game itself are built as one image and stored on the GD-ROM. When the GD-ROM is placed in the Dreamcast console, the boot ROM loads the bootstrap code, which then loads the Windows CE operating system. This way, there are no versioning issues. You ship the version of Windows CE your game was developed on with your game, so there is no need to worry if the user has the correct version installed or not. There are, of course, differences between the Win32 and DirectX on Dreamcast compared to the desktop. There is no Windows UI (no Windows Explorer, Start menu, and so on), so the game is in charge of providing the entire user interface. There is no support for multiple windows either; the game runs in full-screen exclusive mode with DirectDraw and Direct3D as the primary graphics APIs. Like other Windows CE platforms, you can pick and choose which components you wish to build with your game. For example, if your game does not make any use of the networking features of Dreamcast, you don't have to include DirectPlay or Winsock.

Because Windows CE does not provide its own UI for the Dreamcast, much of the functionality of the Win32 user component as been removed. Only the APIs for accessing resources and some user input WM_* messages are supported. Specifically, those actually dealing with window elements like buttons or menus are removed. Similarly, much of the GDI has been removed because DirectDraw and Direct3D are the main graphics APIs. What's left of the GDI is support for loading fonts and bitmaps. A new Dreamcast-specific API has been introduced that allows read/write permission to the Visual Memory System devices mentioned earlier. For using the Dreamcast communication features, the standard Win32 serial communications API is supported, as well as Winsock 1.1.

Windows CE for Dreamcast supports the full set of DirectX foundation components. DirectDraw, Direct3D Immediate Mode, DirectInput, DirectSound, DirectPlay, and DirectShow are all supported. An upcoming release will also add support for DirectMusic. All these components have been optimized for Dreamcast to improve performance, reduce size, and take advantage of platform-specific features. This is done while still providing developers with the standard APIs available on the desktop for developing games. Figure 5 highlights some differences between the Dreamcast DirectX components and the desktop ones.

DirectDraw and Direct3D have been heavily optimized for the PowerVR graphics chip to support nearly all the features using the standard APIs from desktop DirectX. Because the hardware on the Dreamcast is fixed, much of the software emulation code in DirectDraw and Direct3D has been removed to reduce memory footprint. Again, your game will be the only application running, so you have to use full-screen exclusive mode:

lpDD->SetCooperativeLevel(hwndMain, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);

When using DirectDraw, your single game application loads the DirectDraw library, ddraw.dll, and DirectDraw hardware abstraction layer (HAL), ddhal.dll, and DirectDraw calls are passed through these thin libraries to the hardware for execution. When using DirectSound, your application loads dsound.dll and sndcore.dll and DirectSound calls are passed down through these thin layers to the ARM processor sound driver for execution.

Usage of Direct3D under Dreamcast is very similar to that of its PC equivalent. You create the Direct3D device, create and load textures, and then call BeginScene. Inside the loop you set render-states for each mesh and then call one of the DrawPrimitive* functions. When finished you call EndScene and Flip. One notable difference is that there is no Z buffer on the Dreamcast. However, it is still supported by Direct3D for code compatibility purposes. There are some features of the PowerVR chip that have no equivalent support in desktop Direct3D, like support for a modifier volume, which can be used by the hardware to alter various properties of other polygons that fall inside or outside of it. Direct3D exposes some of these in the current release and many will be in future releases. Using these features does create situations where code is Dreamcast specific, but also allows you to make full use of the Dreamcast hardware while still benefiting from desktop-compatible code for a majority of your game. One DirectX component that is completely missing from Dreamcast is Direct3D Retained Mode, mainly due to its size and performance.

Using DirectInput on the Dreamcast is virtually identical to the desktop. You enumerate input devices using EnumDevices and create device objects for each one found. All the currently available devices for the Dreamcast, such as the game pad, wheel, and arcade stick are supported. The main difference on Dreamcast is that buffered data is not supported, so you must use immediate data for all input. This should be done often but cannot be done more than once per frame.

Networking technologies like DirectPlay, WinInet, Winsock, and Remote Access Service (RAS) are all available on the Dreamcast. DirectPlay for Dreamcast allows game developers to provide network-play functionality similar to that already available on the desktop. WinInet opens the door to various Internet services like WebTV that want to target Dreamcast users. As on the desktop, Winsock and RAS provide low-level access to the underlying protocol stack and support for dial-up connections respectively.

[ eof ]-