Windows nie może wejść w tryb wideo o bardzo niskiej rozdzielczości z nowoczesnymi kartami graficznymi / sterownikami

11

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.

użytkownik1696157
źródło
Fakt, że powiedziałeś, że nie możesz ponownie odpowiedzieć itp., Oznacza doświadczenie w programowaniu - czy jesteś w stanie „zawinąć” oprogramowanie w oprogramowanie? Np. Stworzyć nowe oprogramowanie z oknem 320x240 (podobnie jak widok)?
Dave
Cóż, już nie tak ... Wolałbym ustandaryzowane rozwiązanie.
user1696157
Być może powinieneś opublikować to na SO i poprosić o konkretną poradę dotyczącą najlepszego sposobu kodowania opakowania (jeśli takie podejście jest w ogóle wykonalne).
Karan
@Karan: jego pytanie dotyczące SO zostało zamknięte jako nie na temat i został poproszony o opublikowanie tutaj. stackoverflow.com/questions/12576136/…
Harry Johnston,
1
Czy na pewno używasz DX, a nie starszego OGL lub Glide?
Synetech 30.09.12

Odpowiedzi:

2

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ć.

Journeyman Geek
źródło
Nie działa Przepraszam. Wydaje się, że nic nie działa.
user1696157
1
@ user1696157 Co się stało, gdy próbowałeś go uruchomić? Jakie emulowane identyfikatory dostawcy / urządzenia próbowaliście? Coś odpowiedniego, kiedy aplikacja była nowa? Czy włączyłeś rejestrowanie debugowania? Co mówi dziennik?
John Lyon
1
czy zdarzyło Ci się mieć przykładowy plik, który moglibyśmy spróbować - zakładając, że jest to coś do redystrybucji? Trudno jest rozwiązać problem niewidomych.
Journeyman Geek
2

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.

harrymc
źródło
1
Próbowałem twoich sugestii, ale to w ogóle nie działa. :(
user1696157
1
Dodałem więcej informacji. W jaki sposób PowerStrip nie działał dla Ciebie?
harrymc
1
Nie działało tak, jak w „w ogóle nie działało”.
user1696157,
1
Cóż ... Właściwie nie odważyłem się przetestować tych ostatnich podejrzanych programów na komputerze. Ale nie powinno być różnicy ...
użytkownik1696157
1
Jeśli problem dotyczy karty wideo, może to jeszcze działać z emulowaną kartą innej marki. PowerStrip lub regedit hack powinny działać, jeśli warunki są odpowiednie.
harrymc