Source: http://www.zxuno.com/forum/viewtopic.php?t=2073
Timestamp: 2019-12-11 00:30:55+00:00

Document:
Core de Specturm VGA nativo - ZX-Uno
Core de Specturm VGA nativo
Mensaje por Kyp » 01 May 2018, 14:04
En mi obsesión por conseguir que el Spectrum se vea lo mejor posible he hecho una variante de mi core que saca video VGA nativo a 1280x1024 60Hz. El Spectrum funciona a velocidad normal, con su ULA a 7 MHz y el Z80 a 3.5 MHz, con contienda e interrupciones de refresco de pantalla cuando corresponde. Exactamente igual que el core PAL. No es un scandoubler, el video VGA funciona de forma independiente para generar la imagen a la frecuencia que necesita ese modo VGA (108 MHz). Precisamente esa 'independencia' tiene el efecto colateral de que los efectos de borde se pierden y al no ir sincronizado con los 50 Hz del PAL se produce un efecto de tearing que según el juego se nota más o menos pero en general se ve MUY bien.
Lo estuvimos viendo el fin de semana pasado en RetroMadrid en el stand del equipo ZX-Uno. Lo dejo por aquí por si queréis probar:
(Como con cualquier otro core, renombrar como COREn.ZX1 donde 'n' es el número de slot para luego instalarlo desde la BIOS)
COREn(zxvga).zip
(76.06 KiB) Descargado 115 veces
Tened en cuenta que al arrancar el ZX-Uno se verá por video compuesto o RGB a 15 KHz pero al cambiar a este core es imprescindible usar un cable VGA conectado al conector RGB y, muy importante, que tenga los dos hilos de sincronismo separados.
Lleva incluido el DivMMC.
Me falta por implementar el flash.
De momento la resolución es de 1280x1024 porque es la del monitor que tengo para probar pero se podría cambiar a cualquier otra. He probado también con 640x480 e incluso con 1920x1080 y funciona sin problemas.
Las teclas de control son un poco diferentes a las del core oficial:
F11 - volver al firmware original
F5 - NMI (para el DivMMC)
Re: Core de Specturm VGA nativo
Mensaje por azesmbog » 01 May 2018, 19:43
Kyp escribió: . No es un scandoubler, el video VGA funciona de forma independiente para generar la imagen a la frecuencia que necesita ese modo VGA (108 MHz).
Ну и чем этот режим лучше, чем со scandoubler ? там то и бордюрные эффекты все на месте. а здесь... Мне лично важнее бордер
Mensaje por Kyp » 01 May 2018, 19:54
No es que sea ni mejor ni peor que el scandoubler. Para demos seguramente es peor, pero la ventaja que yo veo es que utiliza la resolución nativa de los monitores LCD y así los píxeles se ven perfectos, sin ningún tipo de distorsión por escalado.
Mensaje por antoniovillena » 02 May 2018, 00:25
Kyp escribió: Tened en cuenta que al arrancar el ZX-Uno se verá por video compuesto o RGB a 15 KHz pero al cambiar a este core es imprescindible usar un cable VGA conectado al conector RGB y, muy importante, que tenga los dos hilos de sincronismo separados
Solo aclarar que todos los cables VGA tienen los sincronismos separados. Es que me han preguntado si valía el cable VGA o había que usar algún cable especial. En resumen, que el cable VGA es el mismo de siempre, no hay que hacer ninguna modificación.
Registrado: 15 Sep 2016, 20:51
Mensaje por DaCarSoft » 16 Jun 2018, 20:23
Hola Kyp! Antetodo GRACIAS y enhorabuena por tu trabajo!!!
Cuando vi que tu core sacaba señal nativa VGA la verdad es que lo probé rápido en un "invento" que me he fabricado.
Ando haciendo muchas pruebas con mi "ZX-Uno portátil" (una especie de "bartop ZX-Uno" que me he hecho) en el que metí una pantalla LCD IPS comprada en China con VGA y vídeo compuesto (en cuanto saque tiempo subiré unas fotos y mas información aquí en el foro).
La pantalla que uso, es muy "exigente" o "delicada" con el tema de frecuencias y resoluciones. Tengo muchas incompatibilidades con otros cores, como el de Nintendo o Master System que no se ven, a pesar de que se supone que por su frecuencia debería funcionar en mi pantalla. Por ejemplo, para que me funcione el core de Spectrum del ZX-Uno (T24 o Exp26) tengo que ajustar la frecuencia a 57 o 60 Hz en BIOS, por lo que funciona aunque a velocidad superior a la real de 50Hz, pero algunos otros cores que parecen trabajar directamente a 60 deben tener alguna pequeña diferencia por la que no se ven en mi pantalla.
Primero probé tu core de 128K sin éxito por VGA pero que sí me funciona por vídeo compuesto, no sé si es que no está implementado el soporte "nativo" para VGA en esa versión de tu core (debo decir que también probé varios cores de 128K colgados por "Acesmbog" que creo incluían VGA y conmutación a vídeo compuesto con la misma tecla del core oficial de ZX-Uno, pero que no soy capaz de ver por VGA).
El caso es que probé el core de 48K con VGA nativo y funciona muy bien en mi pantalla, se ve la imagen del "paper" más grande que en el core oficial y el borde en proporción 4:3, pero detecté algunas cosas o problemas que no sé si son normales o no:
- Las líneas de pixels en horizontal hacen una especie de movimiento o vibración "muy fina", que supongo que es el pequeño efecto en la imagen que adviertes que aparece también en emuladores.
- El core no muestra el mismo cursor ("K", "E" o "L"...) de escritura del Spectrum, no veo parpadeo (Flash) del fondo del cursor.
- La imagen en mi pantalla no llega a verse absolutamente nítida, ya que aunque el core tiene VGA nativo no coincide con la resolución de mi pantalla y se produce un escalado de la imagen, que además tiene franjas negras laterales a partir del "border" que no se extiende al total de mi pantalla ya que no es 4:3, sin embargo vi en alguna foto que había una versión del core adaptado para que el borde se extendiera a una proporción 16:9 sin deformar el "paper" dejándolo centrado. (La resolución nativa de mi pantalla es de 1280 x 800).
Por todo esto, quería preguntar:
¿¿¿Hay alguna versión del core que funcione a 1280 x 800 (nativos) extendiendo el borde al total de la pantalla???
¿¿¿Hay versión de 128K que tenga VGA???
Gracias por todo, y perdonad mi ignorancia si estoy preguntando algo evidente que haya aparecido en el foro pero que no haya visto.
Mensaje por Kyp » 17 Jun 2018, 17:43
DaCarSoft escribió: Hola Kyp! Antetodo GRACIAS y enhorabuena por tu trabajo!!!
Gracias a ti por probarlo y contarlo
DaCarSoft escribió: Primero probé tu core de 128K sin éxito por VGA pero que sí me funciona por vídeo compuesto, no sé si es que no está implementado el soporte "nativo" para VGA en esa versión de tu core (debo decir que también probé varios cores de 128K colgados por "Acesmbog" que creo incluían VGA y conmutación a vídeo compuesto con la misma tecla del core oficial de ZX-Uno, pero que no soy capaz de ver por VGA).
Si se ve por video compuesto es que no es el core nativo VGA. ¿Lo habré subido mal? Lo revisaré.
El core oficial y el de azesmbog usan una forma diferente a la mía para obtener una señal VGA. Primero se genera una señal PAL 'normal' que luego se pasa por un scandoubler para doblar la frecuencia y crear una señal VGA que no es exactamente VGA.
Mi core genera una señal VGA de 1280x124 a 60 HZ según norma directamente a partir de la memoria de pantalla. Para respetar los timings y el bus flotante del Spectrum al mismo tiempo lleva una implementación parcial de la ULA.
DaCarSoft escribió: El caso es que probé el core de 48K con VGA nativo y funciona muy bien en mi pantalla, se ve la imagen del "paper" más grande que en el core oficial y el borde en proporción 4:3, pero detecté algunas cosas o problemas que no sé si son normales o no:
Eso es normal. Primero porque la señal de 1280x1024 es 4:3, y lo del borde es porque para que los pixeles no se reescalen cada pixel real equivale a 4x4 pixeles VGA, lo que queda una imagen de 1024x768, el resto es borde pero es un poco menos de lo que tiene un Spectrum real.
DaCarSoft escribió: - Las líneas de pixels en horizontal hacen una especie de movimiento o vibración "muy fina", que supongo que es el pequeño efecto en la imagen que adviertes que aparece también en emuladores.
Yo diría que eso es un efecto del reescalado que hace tu pantalla al no ser de 1280x1024.
DaCarSoft escribió: - El core no muestra el mismo cursor ("K", "E" o "L"...) de escritura del Spectrum, no veo parpadeo (Flash) del fondo del cursor.
El flash no está implementado, de momento.
DaCarSoft escribió: - La imagen en mi pantalla no llega a verse absolutamente nítida, ya que aunque el core tiene VGA nativo no coincide con la resolución de mi pantalla y se produce un escalado de la imagen, que además tiene franjas negras laterales a partir del "border" que no se extiende al total de mi pantalla ya que no es 4:3, sin embargo vi en alguna foto que había una versión del core adaptado para que el borde se extendiera a una proporción 16:9 sin deformar el "paper" dejándolo centrado. (La resolución nativa de mi pantalla es de 1280 x 800).
Efectivamente, eso es porque ni la resolución nativa de tu pantalla, ni la relación de aspecto, coincide.
DaCarSoft escribió: ¿¿¿Hay alguna versión del core que funcione a 1280 x 800 (nativos) extendiendo el borde al total de la pantalla???
Ahora mismo no, pero no sería muy complicado hacer una versión para cualquier resolución 'oficial'. He hecho pruebas con la resolución nativa de otros monitores que tengo, uno de 1680x1050 y 1920x1200. Más complicado sería hacer algo que permita escoger la resolución...
DaCarSoft escribió: ¿¿¿Hay versión de 128K que tenga VGA???
Pues creía que la había subido, si tengo una versión. Aunque después he visto que me hace una cosa un poco rara. Estuve probando juegos y me funcionaban todos bien menos el Abu Simbel que al llegar a la 4º pantalla se sale al Basic Tengo que revisarlo porque ese mismo TAP funciona bien en cualquier otro Core/emulador/hw real.
Mensaje por DaCarSoft » 27 Jun 2018, 20:41
Efectivamente debe ser que mi pantalla no interpreta bien la señal de imagen y es la que muestra esos "artefactos", como dices, la culpa en parte podría ser por el escalado que tiene que hacer, aunque es cierto que esto no me sucede en otros cores. Por ello me hubiera gustado saber qué sucedería si el core sacase la señal con la resolución nativa de mi pantalla, o tal vez cualquier otra resolución distinta.
No quiero abusar y pedirte que saques una versión distinta del core con 1280 x 800 sólo para mí, pero intentaré estar atento por si en algún momento pudieras publicar alguna otra versión de tu core con alguna otra resolución y así poder comparar. La verdad es que me hago un lío con los archivos (y sus resoluciones) publicados de tu core, ya que parece que algunos archivos son modificaciones o contribuciones de otro usuario de este foro, con comentarios en ruso (¿? supongo que es ruso...)
Intentaré estar atento también para no "perderme" el core de 128K con VGA si lo puedes subir en algún momento realmente creo que nunca he llegado a la cuarta pantalla del Abu Simbel jejejeje
por todo!!!!
Mensaje por azesmbog » 27 Jun 2018, 21:39
El core oficial y el de azesmbog usan una forma diferente a la mía para obtener una señal VGA.
Azesmbog, he-he, делал только ядро со scandoubler, потому что ему очень важны бордюрные эффекты и частота 50 Гц
Правда такую кадровую частоту не все мониторы поддерживают. Вот для них и нужно вот это ядро с 60 Гц и практически без бордюра?
Но именно это ядро я и не проверял, исходников source нету, а без них совсем не интересно даже проверять. Увы и ах.

References: resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución