Y no hay limite tope de resolucion, eso es cuestion de GEMIX.
El juego nativamente siempre funciona a 640x400(en caso de que la pantalla sea panoramica)
Pero si se cambia a 640x480(es opcional) ya no usa Resolucion Virtual, se supone que todos los ordenadores(en teoria) soportan 640x480
- alto_pant=480;
- if(Config.full_vent==mode_fullscreen);//si estamos en modo fullscreen...
- GET_DESKTOP_SIZE(&X,&Y);
- Tipo_patnalla=(X*10)/Y;
- if(Tipo_patnalla=>16 or Tipo_patnalla==6);
- alto_pant=400;X=0;
- repeat
- x1=video_modes[X].width;y1=video_modes[X].height;
- if(x1=>640 and y1=>400);
- Z=(x1*10)/y1;
- if(Z=>16 or Z==6);break;end//debe ser Panoramica
- end
- X++;
- until(X==num_video_modes);
- end
- end
- if(file_exists("SVR.ini"));
- file=fopen("SVR.ini","r","t");
- FGETS(TEXTO_TEMP,file);//comentario
- FGETS(TEXTO_TEMP,file);//resolucion X
- x1=calculate(TEXTO_TEMP);
- FGETS(TEXTO_TEMP,file);//resolucin Y
- y1=calculate(TEXTO_TEMP);
- Config.RESXY[0]=X1;Config.RESXY[1]=Y1;
- FGETS(TEXTO_TEMP,file);//comentario
- FGETS(TEXTO_TEMP,file);//alto_pant altura pantalla
- alto_pant=calculate(TEXTO_TEMP);
- IF(alto_pant<400 OR (alto_pant>400 AND alto_pant<480));alto_pant=400;END
- IF(alto_pant>480);alto_pant=480;END
- FGETS(TEXTO_TEMP,file);//ventana
- if(TEXTO_TEMP=="VENTANA");Config.full_vent=1;else;Config.full_vent=2;end
- FGETS(TEXTO_TEMP,file);//comentario
- FGETS(TEXTO_TEMP,file);//filtro scantype
- Config.SCANLINE=calculate(TEXTO_TEMP);
- FGETS(TEXTO_TEMP,file);//comentario
- FGETS(TEXTO_TEMP,file);//filtro1
- Config.SCANTYPE=calculate(TEXTO_TEMP);
- fclose(file);
- ELSE
- Config.RESXY[0]=X1;Config.RESXY[1]=Y1;
- SAVE_CONF_VID();
- end
- if(x1<>640 and y1<>alto_pant);
- SET_VIRTUAL_RESOLUTION(x1,y1,FALSE,false);
- end
- SET_MODE(640,alto_pant,32,Config.full_vent,Config.SCANTYPE,Config.SCANLINE);
Busca resoluciondes(empezando desde el mas vajo), que sea igual o superior a 640x400, pero siempre con la condicion que el aspecto visual de la pantalla sea 16:9 o parecido.
Pues uso la lista de GEMIX de resoluciones disponibles, se puede ver ejecutando este codigo:
- program test_video;
- global
- int n;
- float form,x1,y1;
- begin
- set_mode(640,400);
- write(0, 50, 10, 3, "VIDEO_MODES: ");
- write_int(0, 128, 10, 3, &num_video_modes);
- for(n = 0; n < num_video_modes; n++)
- y = 10 + ((n + 1) * 10);
- x1=video_modes[n].width*10;y1=video_modes[n].height;
- form=x1/y1;
- write(0, 50, 10 + y, 3, itoa(n)+") "+itoa(video_modes[n].width) + "x" + itoa(video_modes[n].height)+" > "+ftoa(form));
- end
- // show video_bits
- write(0, 250, 10, 3, "VIDEO_BITS: ");
- write_int(0, 322, 10, 3, &num_video_bits);
- for(n = 0; n < num_video_bits; n++)
- y = 10 + ((n + 1) * 10);
- write(0, 250, 10 + y, 3, itoa(n)+") "+itoa(video_bits[n].bpp));
- end
- // show video_bits
- write(0, 450, 10, 3, "VIDEO_RATES: ");
- write_int(0, 528, 10, 3, &num_video_rates);
- for(n = 0; n < num_video_rates; n++)
- y = 10 + ((n + 1) * 10);
- write(0, 450, 10 + y, 3, itoa(n)+") "+itoa(video_rates[n].rate));
- end
- repeat
- frame;
- until(key(_esc));
- end
En mi portatil Notebook 10", me salen estas:

y como es de logica, el juego me encuentra que tengo la 640x400 de forma nativa, y no usa el VIRTUAL
en caso de No tenerlo, seguiria buscando... hasta dar con la 1024x600, por que es panoramica y aqui si que usara el VIRTUAL
Aviso de que cuando se ejecuta en modo ventana, No se recomienda usar Virtual... pero editando el archivo SVR.ini
se puede personalizar a gusto el tamaño de la ventana de juego.
Aviso de que cuando se usa VIRTUAL, no es posible activar el filtro SCANLINE (no funciona)
Erkos, contra menos grande/comparacion haya en la resolucion VIRTUAL a la nativa del juego 640x400, mas performance tendra. Creo que ya lo sabes.