NOVO!
Eu estava tentando postar aqui ontem, mas ele continuou me dando um erro. Eu descobri que ele realmente não está usando o DirectX, mas o GDI ou o que for que não seja o gráfico DX no Windows (não o OpenGL ou qualquer outra API relacionada ao hardware). Me desculpe por isso. Eu realmente pensei que era DX.
Tenho vários EXEs de tela cheia de 32 bits do Windows que foram compilados para a era do Windows XP e usam alguma versão do DirectX para definir o modo gráfico: 320x240x8. É codificado, nativo (sem falsificação) e os binários não podem ser tocados, recompilados ou modificados de nenhuma maneira (não pergunte).
Estou tentando fazer com que eles sejam executados no Windows 7 de 64 bits e posterior (ele nem roda no XP sem a placa e o driver certos, apenas para esclarecer qualquer confusão). Eles só são executados se a placa de vídeo e seu driver suportarem especificamente esse modo, o que é extremamente raro, independentemente de ser executado no XP ou 7. As versões de 32/64 bits também parecem não ter impacto.
Estou com esse problema há muito tempo, pedindo ajuda a especialistas várias vezes e obtendo todos os tipos de soluções possíveis, que tentei uma a uma. Cada um deles falha com o mesmo erro: não é possível definir o modo de vídeo. O problema é sempre que ele não pode definir o modo de vídeo. A solução óbvia é que ele não pode tentar definir o modo de vídeo, porque não é suportado. Então, preciso de algum tipo de pequeno EXE que possa ser agregado a esses EXEs e que possa ser configurado para "envolvê-lo" e enganá-lo, pensando que ele realmente definiu o modo, enquanto na verdade está sendo executado em algum tipo de janela de vídeo emulada .
Eu tentei o "Wine on Windows", vários utilitários que "alteram a resolução" (incluindo DXWIN e D3DWindower), executando-o dentro de uma VM, configurações de compatibilidade, etc. Praticamente tudo o que você pensa imediatamente. Nada funciona. Mas a coisa da VM não seria boa, mesmo que funcionasse, porque isso também deve ser "distribuível".
Alguém pode me ajudar? Isso é possível de resolver? Parece tão bizarro que não é possível "enganar" os programas para que eles realmente definam o modo de vídeo.
Espero que um verdadeiro especialista seja capaz de encontrar alguma solução.
Respostas:
Totalmente não é o que realmente pretende fazer, e não sei dizer se funcionará sem os arquivos reais em questão, mas você pode emular uma placa gráfica mais antiga com o 3danalyzer . Emula uma placa nvidia das séries 4000 e 5000 que é relativamente antigo e pode funcionar.
fonte
O utilitário PowerStrip (US $ 29,95 com avaliação) pode adicionar resoluções personalizadas para o seu monitor. Para os loucos (como o seu), não se sabe como será.
O artigo da wiki Modos de exibição personalizados mostra como isso é feito e até menciona resoluções especificamente personalizadas, como 320x200 e 320x240.
No seu lugar, talvez eu tente primeiro em uma máquina virtual, apenas por precaução (embora eu realmente não saiba se funcionará corretamente em uma VM). Isso permitirá que você não destrua a tela do computador por nada, além de ver a tela do monitor em seu tamanho real (pequeno), em vez de espalhar-se por todo o monitor.
Se o Windows for de 32 bits e a placa de vídeo for VGA, talvez este artigo antigo também possa ajudar: Modos VGA ajustados .
[EDITAR]
Outra possibilidade é usar regedit e posição para esta chave:
HKEY_CURRENT_CONFIG\System\CurrentControlSet\Control\VIDEO\{video-card}\0000
,alterar as seguintes teclas:
DefautlSettings.XResolution
,DefautlSettings.YResolution
, em seguida, reiniciar.Se nada funcionar, sua placa de vídeo pode ser uma que não suporta resoluções personalizadas, adicionadas via driver, PowerStrip ou no regedit. Isso nos ajudaria a conhecer o modelo do seu cartão.
fonte