NOWY!
Próbowałem tu pisać wczoraj, ale ciągle pojawiał się błąd. Odkryłem, że tak naprawdę wcale nie używa DirectX, ale GDI lub cokolwiek innego niż grafika w Windows (nie OpenGL ani żaden inny API związany ze sprzętem). Przepraszam za to. Naprawdę myślałem, że to DX.
Mam kilka 32-bitowych pełnoekranowych plików DLL systemu Windows, które zostały skompilowane dla ery systemu Windows XP i używam niektórych wersji DirectX do ustawiania trybu grafiki: 320 x 240 x 8. Jest zapisany na stałe, natywny (w żaden sposób nie sfałszowany), a plików binarnych nie można w żaden sposób dotykać, rekompilować ani modyfikować (nie pytaj).
Staram się, aby działały one w systemie Windows 7 64-bitowym i nowszym (nawet nie działa na XP bez odpowiedniej karty i sterownika, aby usunąć wszelkie nieporozumienia). Działają tylko wtedy, gdy karta wideo i jej sterownik obsługują ten tryb, co jest niezwykle rzadkie, niezależnie od tego, czy jest uruchamiane w systemie XP, czy w wersji 7. Wersje 32/64-bitowe również wydają się nie mieć wpływu.
Pracowałem nad tym problemem od dłuższego czasu, prosząc ekspertów o pomoc wiele razy i otrzymując wszelkiego rodzaju potencjalne rozwiązania, które próbowałem jeden po drugim. Każdy z nich kończy się niepowodzeniem z tym samym błędem: nie można ustawić trybu wideo. Problem zawsze polega na tym, że nie można ustawić trybu wideo. Oczywistym rozwiązaniem jest to, że nie można ustawić trybu wideo, ponieważ nie jest obsługiwany. Potrzebuję więc jakiegoś małego pliku EXE, który mogę spakować z tymi plikami EXE, który można skonfigurować tak, aby „owijał” go i oszukiwał, że faktycznie ustawia tryb, podczas gdy faktycznie działa w jakimś emulowanym oknie wideo .
Wypróbowałem „Wine on Windows”, różne narzędzia, które „zmieniają rozdzielczość” (w tym DXWIN i D3DWindower), uruchamiając je w maszynie wirtualnej, ustawienia kompatybilności itp. Prawie o wszystkim, co od razu myślisz. Nic nie działa. Ale sprawa VM nie byłaby dobra, nawet gdyby zadziałała, ponieważ musi to również być „dystrybuowalne”.
Czy ktoś może mi pomóc? Czy to w ogóle jest możliwe do rozwiązania? Wydaje się to tak dziwne, że nie można „oszukać” programów, aby pomyślały, że faktycznie ustawiły tryb wideo.
Mam nadzieję, że prawdziwy ekspert będzie w stanie wymyślić jakieś rozwiązanie.
Odpowiedzi:
Zupełnie nie to, co właściwie miało to zrobić, i nie mogę powiedzieć, czy to zadziała bez faktycznych plików, ale możesz być w stanie emulować starszą kartę graficzną za pomocą 3danalyzera . Emuluje kartę NVIDIA z serii 4000 i 5000 który jest stosunkowo stary i może działać.
źródło
Narzędzie PowerStrip (29,95 USD z wersją próbną) może dodawać niestandardowe rozdzielczości dla monitora. W przypadku zwariowanych (takich jak twój) nie wiadomo, jak to będzie wyglądać.
Artykuł wiki Niestandardowe tryby wyświetlania pokazuje, jak to się robi, a nawet wspomina o niestandardowych rozdzielczościach, takich jak 320 x 200 i 320 x 240.
Na twoim miejscu mógłbym spróbować najpierw na maszynie wirtualnej, na wszelki wypadek (chociaż tak naprawdę nie wiem, czy będzie działał poprawnie na maszynie wirtualnej). Pozwoli ci to nie zniszczyć wyświetlacza komputera bez powodu, a także zobaczyć ekran monitora w jego rzeczywistym (małym) rozmiarze zamiast rozpryskiwać się na całym monitorze.
Jeśli twój system Windows jest 32-bitowy, a twoja karta graficzna to VGA, być może ten stary artykuł może również pomóc: Poprawiono tryby VGA .
[EDYTOWAĆ]
Inną możliwością jest użycie regedit i pozycję na tym kluczu:
HKEY_CURRENT_CONFIG\System\CurrentControlSet\Control\VIDEO\{video-card}\0000
,zmiana następujących klawiszy:
DefautlSettings.XResolution
,DefautlSettings.YResolution
, potem restart.Jeśli nic nie działa, twoja karta wideo może być jedną z tych, które nie obsługują niestandardowych rozdzielczości, dodanych za pomocą sterownika, PowerStrip lub w regedit. Pomoże nam to poznać model Twojej karty.
źródło