Notatka ·
Windows 95, 98, 2000 i XP z akceleracją 3D w QEMU
QEMU Retro: akceleracja grafiki w dawnych Windows, shadery, dwukierunkowy schowek oraz dźwięk 3D i MIDI.
Tak, dobrze czytasz. To możliwe, choć nie działa od razu po uruchomieniu zwykłego QEMU. W ostatnich tygodniach pracowałem nad rozwiązaniem, które pozwoli jak najlepiej poczuć klimat dawnych systemów operacyjnych. Nie każdy ma miejsce na kilka starych pecetów, a sam sprzęt po tylu latach potrafi być równie kapryśny jak Windows z serii 9x.
Tak powstał projekt QEMU Retro. Chciałem przenieść wrażenie korzystania z retro sprzętu i systemów na współczesny komputer. No dobra, na razie tylko na mój, bo muszę jeszcze sprawdzić, czy mogę udostępnić zmiany w QEMU i bibliotekach pomocniczych.
Zależało mi na immersji: najważniejsze jest opóźnienie reakcji na monitorze. Znasz to uczucie, kiedy uruchamiasz PCem, DOSBox, VirtualBox czy VMware i pulpit niby działa, ale na prawdziwym sprzęcie wszystko reagowało inaczej? Szybciej, bardziej bezpośrednio. Ja znam je aż za dobrze i od lat szukałem rozwiązania. Tymczasem kolejne wersje hypervisorów przestawały wspierać starsze systemy. Najpierw znikało 3D, potem bywały problemy nawet z 2D, a dobra integracja z hostem stawała się coraz trudniejsza.
Co mam gotowe na tę chwilę?
Na początek zbudowałem całkiem nowy frontend dla QEMU.

1. Akcelerowany sterownik 3D i 2D dla Windows 2000 oraz XP (32-bit)
Obsługuje DirectX 7 i OpenGL 1.1, akcelerowane blity oraz operacje 2D GDI. Do tego wiele rozdzielczości i tryby kolorów 4, 8, 16, 24 oraz 32 bity.

2. Akcelerowany sterownik 3D i 2D dla Windows 95 oraz 98
Obsługuje DirectX 6, akcelerowane operacje 2D GDI, wiele rozdzielczości oraz tryby kolorów 4, 8, 16, 24 i 32 bity.
3. Dwukierunkowy schowek dla Windows 95, 98, 2000 i XP
4. Eksperymentalne wygładzanie czcionek w Windows 2000
Sterownik grafiki implementuje coś w rodzaju ClearType na poziomie całego systemu. Fajny bajer do włączenia, choć jeszcze nie jest w pełni stabilny.

Efekt nie będzie wyglądał tak samo na każdym monitorze. Jakość tekstu zależy między innymi od skalowania w QEMU, DPI monitora hosta i rodzaju matrycy. Funkcję można włączyć opcją „Wygładź krawędzie czcionek ekranowych” w zakładce „Efekty” we właściwościach ekranu.
5. Shadery retro w moim buildzie QEMU
Korzystam z librashader, bo zależało mi na dobrej wydajności i realistycznych efektach. Backend po stronie hosta używa obecnie DirectX 11. Binaria są na razie skompilowane tylko dla Windows 10 i 11; wydanie dla Linuksa mam w planach.
6. Sterownik audio 3D i MIDI
Mam też własny sterownik audio dla Windows 2000 i XP, z pozycyjnym EAX dla gier oraz MIDI. Po stronie hosta za dźwięk MIDI odpowiada FluidSynth.

Docelowo chcę przygotować go także dla Windows 9x. Inny model sterowników oznacza, że kod po stronie systemu gościa trzeba będzie napisać od zera, ale backend hosta pozostanie wspólny.
Zobacz demonstrację urządzenia MIDI na YouTube .
Więcej filmów i zdjęć pokażę w kolejnych wpisach. Na razie potraktujcie to jako teaser.
Komentarze
Jestem za bezpiecznym internetem. Zapraszam do rzeczowej dyskusji z szacunkiem dla innych.
Dyskusja jest wspólna dla polskiej i angielskiej wersji wpisu. Komentarze pozostają w języku autora; nicki nie są zweryfikowaną tożsamością.
Nie ma jeszcze komentarzy. Możesz dodać pierwszy.
Trwa weryfikacja…Komentarz został opublikowany. Dziękuję za udział w dyskusji!Nie udało się pobrać komentarzy. Odśwież stronę za chwilę.Sprawdź formularz i wypełnij wszystkie wymagane pola.Nick musi mieć od 2 do 32 znaków, a komentarz od 3 do 2000 znaków i maksymalnie 20 nowych linii.Wybierz inny nick: użyj liter A–Z lub polskich, cyfr 0–9, spacji, kropki, myślnika lub podkreślenia. Wymagana jest co najmniej jedna litera lub cyfra. Nazwy sugerujące administratora lub reprezentowanie AMD są zastrzeżone.Usuń linki, HTML, wulgaryzmy, znaki sterujące lub niewidoczne i spróbuj ponownie.Weryfikacja CAPTCHA jest niepoprawna, wygasła lub została już użyta. Wykonaj ją ponownie.Filtr antyspamowy odrzucił komentarz. Sprawdź treść przed ponowną próbą.Zbyt wiele prób lub komentarzy z tego adresu. Poczekaj co najmniej 10 minut; limity godzinowe i dobowe mogą wymagać dłuższej przerwy.Nie udało się potwierdzić publikacji. Odśwież listę komentarzy przed kolejną próbą i zachowaj kopię swojego tekstu.Taki komentarz został już przesłany do tego wpisu. Odśwież stronę, aby go zobaczyć.Nie udało się odnowić formularza. Poczekaj i ponownie wybierz „Dodaj komentarz”; wpisany tekst pozostaje w formularzu.