Strona główna

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.

Frontend QEMU Retro z ustawieniami obrazu i shaderów

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.

Właściwości sterownika QEMU Retro XP w Windows 2000

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.

Windows 2000 z wygładzonym tekstem w narzędziu diagnostycznym DirectX

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.

Urządzenia QEMU Retro 3D Audio i MIDI w Windows 2000

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.