Página 1 de 4

JSpeccy v0.90

Publicado: Lun May 21, 2012 10:46 pm
por zx81
Buenas noches,

Acabo de subir a la página del proyecto la nueva versión de mi emulador JSpeccy. Aunque es, sobre todo, una versión de corrección de errores y optimizaciones, también tiene alguna que otra cosilla nueva. Me hubiera gustado llegar a tiempo y poderla "regalar" para el 30 aniversario pero, el hombre propone y sus niños (y su señora, faltaría más) disponen. Más vale tarde que nunca...

http://jspeccy.speccy.org

Saludos
José Luis

Re: JSpeccy v0.90

Publicado: Lun May 21, 2012 11:58 pm
por radastan
Pues yo me quito el sombrero, que gozada de emulador oiga. Va de perlas, he jugado al Speccy Bros sin ningún problema.

Madre mía, menuda joya.

Como petición personal sólo aconsejo un modo "scanlines" para el zoom, es decir que imprima una línea si y una línea 2 (o que la segunda sea una atenuación de la de arriba). Es para que sea más fiel a lo que un televisor CRT ofrece.

Re: JSpeccy v0.90

Publicado: Mar May 22, 2012 8:13 am
por zx81
radastan escribió:Pues yo me quito el sombrero, que gozada de emulador oiga. Va de perlas, he jugado al Speccy Bros sin ningún problema.

Madre mía, menuda joya.

Como petición personal sólo aconsejo un modo "scanlines" para el zoom, es decir que imprima una línea si y una línea 2 (o que la segunda sea una atenuación de la de arriba). Es para que sea más fiel a lo que un televisor CRT ofrece.


Viniendo de quien viene, esto sí es un piropo. :D

Respecto al efecto scanlines, lo que hago ahora es, en modo x2, se pinta una línea "normal" y la siguiente más atenuada. En modo x3, una línea normal, la siguiente atenuada y la tercera un poco más atenuada. El modo x4 es igual al x3 pero pintando primero dos líneas seguidas sin atenuación. Creo que es parecido a lo que comentas tú, pero no estoy seguro...

Gracias por probar JSpeccy. ;)

Re: JSpeccy v0.90

Publicado: Mar May 22, 2012 9:24 am
por radastan
¡Leches! pues tienes toda la razón, no me había fijado en las opciones "pal" y "efecto scanlines", ahora si que se ve de lujo.

Cosas que he advertido:

- no guarda la configuración del scanlines al salir, la del zoom si me la guarda si me meto en configuración y guardo.
- no puedo activar la emulación PAL si tengo la ULA+ activada
- ¿Hace algo la emulación PAL? no se so soy yo pero no noto diferencia.

Tiene un soporte bestial de hardware el emulador, es tremendísimo, incluso la ULA+.

Ve pensando en un modo "full screen" que este emulador es perfecto, a mi gusto mejor que el Spectaculator porque es multiplataforma.

Lo he probado con la demo de Paralaktica y el juego Buzzsaw+ y van de perlas, una gozada.

Re: JSpeccy v0.90

Publicado: Mar May 22, 2012 12:56 pm
por Metalbrain
Muchas gracias por la actualización. Es estupendo tener un emulador que casque cuando tiene que cascar. :lol:

Una pequeña puntualización: el Cray 5 no es de Mojon Twins, sino de Retroworks, y el que descubrió los problemas fue más bien Macc:
http://www.worldofspectrum.org/forums/s ... hp?t=38214

Re: JSpeccy v0.90

Publicado: Mar May 22, 2012 5:19 pm
por zx81
radastan escribió:¡Leches! pues tienes toda la razón, no me había fijado en las opciones "pal" y "efecto scanlines", ahora si que se ve de lujo.

Cosas que he advertido:

- no guarda la configuración del scanlines al salir, la del zoom si me la guarda si me meto en configuración y guardo.
- no puedo activar la emulación PAL si tengo la ULA+ activada
- ¿Hace algo la emulación PAL? no se so soy yo pero no noto diferencia.

Tiene un soporte bestial de hardware el emulador, es tremendísimo, incluso la ULA+.

Ve pensando en un modo "full screen" que este emulador es perfecto, a mi gusto mejor que el Spectaculator porque es multiplataforma.

Lo he probado con la demo de Paralaktica y el juego Buzzsaw+ y van de perlas, una gozada.


Pensé que los filtros no se usan siempre, de modo que, a diferencia del zoom que sí suele ser una opción que siempre se usa, guardar la configuración no era muy necesario.Estoy abierto a escuchar opiniones, por supuesto.

La emulación PAL intenta simular el efecto de mezcla de colores que se produce cuando entre dos pixels adyacentes hay un cambio de color. Esto no produce un efecto tan acusado de "difuminación" que si produce el filtro bilineal por ejemplo. Puede observarse más en unas pantallas que en otras, prueba con la pantalla enladrillada del Arkanoid. El efecto tiende a generar pequeñas sombras a los lados de los pixels de modo que no queda tan bien con ULA+. Además, el efecto supone convertir cada pixel de la pantalla de espacio de color RGB a YUV, mezclarlo y volver de YUV a RGB. Hacer eso cuesta tiempo y he tenido que ingeniármelas para no hacer muchos cálculos o el dichoso filtro se me llevaba cantidades importantes de CPU. Que el filtro es incompatible con ULA+ lo digo en la página del proyecto, proclamo. :)

No eres el primero ni el segundo que pide un modo "fullscreen" pero es que no es evidente, la parte de dibujado de la pantalla no tiene nada que ver con el modo ventana. Tendré que mirarlo, pero no prometo nada en el corto plazo. No sé qué pasa, pero cuanto más código escribo más cosas me quedan por hacer....

Gracias por tus recomendaciones. ;)

Re: JSpeccy v0.90

Publicado: Mar May 22, 2012 5:20 pm
por zx81
Metalbrain escribió:Muchas gracias por la actualización. Es estupendo tener un emulador que casque cuando tiene que cascar. :lol:

Una pequeña puntualización: el Cray 5 no es de Mojon Twins, sino de Retroworks, y el que descubrió los problemas fue más bien Macc:
http://www.worldofspectrum.org/forums/s ... hp?t=38214


Gracias por la aclaración. A ver si luego tengo un hueco y lo corrijo en la página del proyecto, que Retroworks no se merece que le quite la autoría de un juego tan bueno. Pido mis más sinceras disculpas a los afectados.

Re: JSpeccy v0.90

Publicado: Mar May 22, 2012 9:32 pm
por Gandulf
Yo personalmente el modo pantalla completa para los emuladores de spectrum y en general los de 8 bits ya hace años que ni lo uso ni miro si lo tiene el emulador. En los CRT y TV quedaba bien pero en las pantallas tft es espeluznante, al menos a tamaños habituales de pantalla.

Cambiando de tema, me encanta el sonido 48k de este emulador :) , por ejemplo con las 3 luces de Glaurung, donde por lo general en el resto de emuladores aparecen sonidos molestos por el medio, muy agudos (incluído spectaculator, aunque éste lo hace casi bien). En el tuyo suena tal cual la recuerdo en el spectrum

Editado: Curiosamente si activo la opción "sonido de alta calidad" sí parece como que salen esas frecuencias altas mezcladas, son bastante altas y mucha gente ni se dará cuenta

Editado II: Definitivamente con el check de alta calidad desactivado (como está por defecto) suena más a spectrum, me imagino que porque en aquella época lo escuchábamos amplificado con métodos bastante cutres

Re: JSpeccy v0.90

Publicado: Mar May 22, 2012 10:19 pm
por radastan
Gandulf escribió:Yo personalmente el modo pantalla completa para los emuladores de spectrum y en general los de 8 bits ya hace años que ni lo uso ni miro si lo tiene el emulador. En los CRT y TV quedaba bien pero en las pantallas tft es espeluznante, al menos a tamaños habituales de pantalla.


Prueba el emulador BlueMSX, te hace creer que estás frente a un televisor CRT, te lo aseguro.

Re: JSpeccy v0.90

Publicado: Mar May 22, 2012 10:22 pm
por Gandulf
Pero entonces hará el emulador la tarea de escalar de forma especial. Me refiero al típico efecto pantalla completa tip ALT + ENTER donde se hace el escalado a pelo, queda fatal, por eso no lo utilizo nunca.

Por cierto, el Nanako Descends to Hell de los Mojones sólo funciona si activo los modelos modernos de 128K de spectrum, en el modo 128K clásico se queda frito al pasar del "comic", se resetea y queda el sonido 128K dando un pitido. Debe ser por el mismo tema que se trató en WOS ¿no? (en spectaculator funciona en todos los modelos 128K)

Re: JSpeccy v0.90

Publicado: Mar May 22, 2012 10:34 pm
por zx81
Gandulf escribió:Yo personalmente el modo pantalla completa para los emuladores de spectrum y en general los de 8 bits ya hace años que ni lo uso ni miro si lo tiene el emulador. En los CRT y TV quedaba bien pero en las pantallas tft es espeluznante, al menos a tamaños habituales de pantalla.

Cambiando de tema, me encanta el sonido 48k de este emulador :) , por ejemplo con las 3 luces de Glaurung, donde por lo general en el resto de emuladores aparecen sonidos molestos por el medio, muy agudos (incluído spectaculator, aunque éste lo hace casi bien). En el tuyo suena tal cual la recuerdo en el spectrum

Editado: Curiosamente si activo la opción "sonido de alta calidad" sí parece como que salen esas frecuencias altas mezcladas, son bastante altas y mucha gente ni se dará cuenta

Editado II: Definitivamente con el check de alta calidad desactivado (como está por defecto) suena más a spectrum, me imagino que porque en aquella época lo escuchábamos amplificado con métodos bastante cutres


Me alegro de que te guste, precisamente a ti, como suena porque aún recuerdo con horror lo que me costó que sonara bien. Y eso que al final, el código es corto y el diablo estaba en los decimales....

La única diferencia entre el sonido "normal" y el de "alta calidad" es que el primero está generado a 32 Khz y el segundo a 48 Khz. El algoritmo es exactamente el mismo y serviría igualmente para cualquier otra frecuencia de muestreo. Si escogí la de 48 Khz es porque la mayoría de tarjetas de sonido modernas no aceptan frecuencias de muestreo por debajo de ese valor (por encima sí, por aquello de los DVD, el 5+1, el 7+1, etc) y todas las frecuencias inferiores deben ser "resampleadas" por software.

Es seguro que el altavoz del Spectrum no soportaba frecuencias tan altas y no me extrañaría que a 48 Khz apareciera algo de aliasing, ya que el filtrado de señal que hago es mínimo (tampoco tengo formación en ese campo, así que me resultaría difícil implementar bien algo que no conozco). Yo creo que otro emulador que también suena bastante más que correcto es el QAOP, y que sí incorpora un filtro, según me dijo su autor.

Gracias por probarlo y por dar tu opinión. ;)

Re: JSpeccy v0.90

Publicado: Mar May 22, 2012 10:39 pm
por zx81
Gandulf escribió:Por cierto, el Nanako Descends to Hell de los Mojones sólo funciona si activo los modelos modernos de 128K de spectrum, en el modo 128K clásico se queda frito al pasar del "comic", se resetea y queda el sonido 128K dando un pitido. Debe ser por el mismo tema que se trató en WOS ¿no? (en spectaculator funciona en todos los modelos 128K)


Me temo que sí,es el mismo problema. JSpeccy dice esto cuando resetea el juego:

Incompatible program with 128k. Register I = 0xF0. Reset!

No, si ya verás tú como el asunto este aún va a traer cola...

Re: JSpeccy v0.90

Publicado: Mar May 22, 2012 11:10 pm
por zx81
zx81 escribió:
Metalbrain escribió:Muchas gracias por la actualización. Es estupendo tener un emulador que casque cuando tiene que cascar. :lol:

Una pequeña puntualización: el Cray 5 no es de Mojon Twins, sino de Retroworks, y el que descubrió los problemas fue más bien Macc:
http://www.worldofspectrum.org/forums/s ... hp?t=38214


Gracias por la aclaración. A ver si luego tengo un hueco y lo corrijo en la página del proyecto, que Retroworks no se merece que le quite la autoría de un juego tan bueno. Pido mis más sinceras disculpas a los afectados.


Corregida la autoría del Cray 5 en la página del proyecto. Reitero mis más humildes disculpas a los autores, que no se merecen el gazapo.

Re: JSpeccy v0.90

Publicado: Mar May 22, 2012 11:17 pm
por Gandulf
Subacuatic también se resetea en el 128K clásico.

Si los emuladores no están emulando correctamente este asunto y teniendo en cuenta que la inmensa mayoría carga los juegos en el spectrum real en modelos 48K o +2A/+3, seguramente haya más juegos afectados

Re: JSpeccy v0.90

Publicado: Mié May 23, 2012 10:05 am
por na_th_an
zx81 escribió:
Gandulf escribió:Por cierto, el Nanako Descends to Hell de los Mojones sólo funciona si activo los modelos modernos de 128K de spectrum, en el modo 128K clásico se queda frito al pasar del "comic", se resetea y queda el sonido 128K dando un pitido. Debe ser por el mismo tema que se trató en WOS ¿no? (en spectaculator funciona en todos los modelos 128K)


Me temo que sí,es el mismo problema. JSpeccy dice esto cuando resetea el juego:

Incompatible program with 128k. Register I = 0xF0. Reset!

No, si ya verás tú como el asunto este aún va a traer cola...


Pues ahora no te puedo decir, pero juraría que este sí funciona en hardware real. Ten en cuenta que el que I>=$C0 y se pagine una ram en contienda durante el ISR no siempre produce un cuelgue; en la mayoría de los casos se trata solo de nieve. Todos nuestros juegos son así, y todos funcionan excepto Maritrini. Por ejemplo, Severin Sewers ha sido probado en un 128 normal, usa I = $F1 (creo), y tiene el player (antiguo) de WYZ en RAM1 (en contienda)... y no se cuelga.

Parece que los juegos que se cuelgan son los que tienen esta combinación de cosas: RAM en contienda durante ISR con I>=$C0 y la última versión del player de WYZ. Cray 5 y Maritrini, de hecho.

Que haya cuelgue o no no es nada determinista. Está claro que "I>=$C0, RAM en contienda durante ISR" es condición necesaria, pero NO suficiente. Hay algo más.