Nueva versión emulador ZEsarUX 0.3

Emuladores y aplicaciones que ayudarán a la perpetuación del Spectrum y su software en el futuro

Moderador: Sir Cilve Sinclair

Avatar de Usuario
chernandezba
Sabreman
Mensajes: 391
Registrado: Mié Oct 17, 2007 5:26 pm

Nueva versión emulador ZEsarUX 0.3

Mensaje por chernandezba » Lun Dic 09, 2013 3:00 pm

Hola

He subido una nueva versión de mi emulador de ZX Spectrum/ZX-80/ZX-81. Cambios:

Corregido sonido con pthreads en alsa y dsp
Corregido fallo con valores de frecuencias en tonos y ruidos; el sonido no era real antes
Agregado aalib video driver
Agregado cacalib video driver
Mejorada rutina de autodetección de audio y video
Mejorado driver xwindows. Ahora se puede redimensionar la ventana
Agregado funciones de grabación para TAP y TZX
Corregido fallo con driver curses y colores para caracteres desconocidos
Agregada emulación experimental de ZX80 y ZX81
Agregado funciones de carga de snapshot/cinta para ZX80 y ZX81

Se puede descargar aqui:
http://sourceforge.net/projects/zesarux/

Saludos
César
----

ZEsarUX
ZX Second-Emulator And Released for UniX
https://github.com/chernandezba/zesarux

Avatar de Usuario
son_link
Jack The Nipper
Mensajes: 123
Registrado: Mar Ene 07, 2014 9:55 pm
Ubicación: Atlantis, Galaxia Pegaso

Re: Nueva versión emulador ZEsarUX 0.3

Mensaje por son_link » Jue Ene 09, 2014 9:14 pm

Acabo de bajarlo y compilarlo, pero consume muchos recursos y sin sonido activado. Uso Pulseaudio junto a ALSA, pero sale este error:

Código: Seleccionar todo

Error: Error using audio output driver alsa

Las características de mi PC:
S.O: Archlinux con todo actualizado (siempre tengo lo ultimo, es una distribución de las llamadas Rolling Relesase)
CPU: AMD64X2 3600+
4Gb RAM DDR2 667MHz
Grafica Gigabyte con chipset Nvidia 610 y 1GB RAM DDR3

Por lo que veo funciona también con OSS, pero te recomiendo que añadas Pulse ya que muchas distros (como Ubuntu) lo usan por defecto. Por lo demás va bien, si bien noto un poco de ralentización, pero sera por el alto consumo de CPU.

Dejo captura del administrador de tareas:
Imagen
LOAD TAPE ERROR
Imagen

Avatar de Usuario
chernandezba
Sabreman
Mensajes: 391
Registrado: Mié Oct 17, 2007 5:26 pm

Re: Nueva versión emulador ZEsarUX 0.3

Mensaje por chernandezba » Vie Ene 10, 2014 2:43 pm

Hola son_link
Muchas gracias por la información.
Si, el consumo de CPU es algo que aún está pendiente de optimizar, sobretodo usando el driver X11. También, el core de emulación actualmente está compartido entre Spectrum y ZX80/81 y esto añade ralentización. En futuras versiones se irá mejorando.

En cuanto a lo del sonido, supongo que pulseaudio está usando tu tarjeta de sonido mediante ALSA y de manera exclusiva, por tanto no deja a mi emulador acceder mediante ALSA. Si quieres probar a activar el software mixing de ALSA, para ver si funciona el sonido en el emulador, basta con que crees en tu $HOME el archivo ".asoundrc" con el contenido:
pcm.copy {
type plug
slave {
pcm hw
}
route_policy copy
}


Para activarlo, solo es necesario cerrar sesión y volver a iniciarla
Para desactivarlo, borra el archivo y cierra sesión

Si, también soporta sonido mediante OSS (DSP) pero en tu caso no creo que funcione
Yo utilizo Linux con ALSA, con emulación OSS. Por tanto, puedo probar tanto ALSA como DSP en la misma máquina, y DSP ofrece mejor rendimiento.
Tengo pendiente agregar mas drivers de sonido, pero poco a poco... ;)

Si quieres, te animo también a que pruebes alguna versión "snapshot", descargable desde la misma pagina del proyecto, en la pestaña "Code"

Saludos
César
----

ZEsarUX
ZX Second-Emulator And Released for UniX
https://github.com/chernandezba/zesarux

Avatar de Usuario
son_link
Jack The Nipper
Mensajes: 123
Registrado: Mar Ene 07, 2014 9:55 pm
Ubicación: Atlantis, Galaxia Pegaso

Re: Nueva versión emulador ZEsarUX 0.3

Mensaje por son_link » Vie Ene 10, 2014 3:06 pm

Encantado, así te comento si detecto algún fallo, ademas usas Git, que es el que uso (ya que uso Github como repositorio)
Aparte, cuando vea que ya este mas estable, subire paquetes tanto para la estable como para la del repositorio a AUR (Archlinux User Repository)
LOAD TAPE ERROR
Imagen

zx81
Freddy Hardest
Mensajes: 612
Registrado: Vie Dic 28, 2007 2:14 pm
Ubicación: Valencia
Contactar:

Re: Nueva versión emulador ZEsarUX 0.3

Mensaje por zx81 » Vie Ene 10, 2014 4:09 pm

chernandezba escribió:Hola son_link
Muchas gracias por la información.
Si, el consumo de CPU es algo que aún está pendiente de optimizar, sobretodo usando el driver X11. También, el core de emulación actualmente está compartido entre Spectrum y ZX80/81 y esto añade ralentización. En futuras versiones se irá mejorando.


Creo que tú ya tienes algún emulador en tu haber, pero por experiencia te digo que no dejes para muy tarde eso de separar los cores si es que tienes que hacerlo. Tengo yo pendiente la refactorización de unas cuantas clases que desgana me entra solo de pensar en desfacer ese entuerto. :D

chernandezba escribió:En cuanto a lo del sonido, supongo que pulseaudio está usando tu tarjeta de sonido mediante ALSA y de manera exclusiva, por tanto no deja a mi emulador acceder mediante ALSA. Si quieres probar a activar el software mixing de ALSA, para ver si funciona el sonido en el emulador, basta con que crees en tu $HOME el archivo ".asoundrc" con el contenido:
pcm.copy {
type plug
slave {
pcm hw
}
route_policy copy
}


Para activarlo, solo es necesario cerrar sesión y volver a iniciarla
Para desactivarlo, borra el archivo y cierra sesión


Esta no me la sabía, así que me la apunto... ;)

chernandezba escribió:Si, también soporta sonido mediante OSS (DSP) pero en tu caso no creo que funcione
Yo utilizo Linux con ALSA, con emulación OSS. Por tanto, puedo probar tanto ALSA como DSP en la misma máquina, y DSP ofrece mejor rendimiento.
Tengo pendiente agregar mas drivers de sonido, pero poco a poco... ;)

Si quieres, te animo también a que pruebes alguna versión "snapshot", descargable desde la misma pagina del proyecto, en la pestaña "Code"

Saludos
César


En principio, OSS está más que "deprecated" en Linux. El problema es que la emulación de OSS en ALSA es horrenda y, al menos en mi experiencia con mi emulador, mete una latencia brutal. Teniendo en cuenta que estás programando en C, no debes tener ningún problema en máquinas relativamente antiguas. La otra cuestión es que PulseAudio se está convirtiendo en el pan nuestro de cada día bajo Linux y ya casi todas las distros lo llevan (a mi no me gusta, pero yo no hago distribuciones). Tener que explicar cómo configurar PulseAudio para que el emu rule con ALSA no es lo mejor (en mi opinión, claro).

Yo voy siguiéndote desde la versión 0.1 gracias a git. ;)
Debido al fallo de un mecanismo, el lanzagranadas M203 se te podía disparar cuando menos lo esperaras, lo que te habría hecho bastante impopular entre lo que quedara de tu unidad.
Revista del ejército EE.UU. PS, agosto 1993.

Emulador JSpeccy
ZXBaremulator

Avatar de Usuario
chernandezba
Sabreman
Mensajes: 391
Registrado: Mié Oct 17, 2007 5:26 pm

Re: Nueva versión emulador ZEsarUX 0.3

Mensaje por chernandezba » Vie Ene 10, 2014 4:33 pm

son_link escribió:Encantado, así te comento si detecto algún fallo, ademas usas Git, que es el que uso (ya que uso Github como repositorio)
Aparte, cuando vea que ya este mas estable, subire paquetes tanto para la estable como para la del repositorio a AUR (Archlinux User Repository)


Si, utilizo Git para ir subiendo mis cambios en el código. Programo desde varias máquinas y es una manera eficiente de poder pasar el código de una a otra
En cuanto a versiones estables, quizá el emulador aún está lejos de estabilizarse del todo y compararse a otros mas potentes, como Fuse. Pero mi idea es que cuando yo veo que una versión se ejecuta sin bugs (aunque no sea completa del todo) genero una nueva release del proyecto en sourceforge y le subo el número de versión

En cuanto subas una a ArchLinux me avisas; no he usado esa distro, pero seria un placer ver mi programa publicado ahí

Saludos
César
----

ZEsarUX
ZX Second-Emulator And Released for UniX
https://github.com/chernandezba/zesarux

Avatar de Usuario
chernandezba
Sabreman
Mensajes: 391
Registrado: Mié Oct 17, 2007 5:26 pm

Re: Nueva versión emulador ZEsarUX 0.3

Mensaje por chernandezba » Vie Ene 10, 2014 4:44 pm

zx81 escribió:
chernandezba escribió:Hola son_link
Muchas gracias por la información.
Si, el consumo de CPU es algo que aún está pendiente de optimizar, sobretodo usando el driver X11. También, el core de emulación actualmente está compartido entre Spectrum y ZX80/81 y esto añade ralentización. En futuras versiones se irá mejorando.


Creo que tú ya tienes algún emulador en tu haber, pero por experiencia te digo que no dejes para muy tarde eso de separar los cores si es que tienes que hacerlo. Tengo yo pendiente la refactorización de unas cuantas clases que desgana me entra solo de pensar en desfacer ese entuerto. :D


Si, hace mucho tiempo hice el ZXSpectr, realizado en Assembler.
Tengo presente lo de los cores, el TODO está lleno de cosas ;) El tema es que el core va relacionado con la implementación de timing real y contended memory, que es bastante complejo y que ahora mismo no está hecho (cada instrucción dura siempre lo mismo)
Por cierto, tu emulador es el jspeccy?

chernandezba escribió:En cuanto a lo del sonido, supongo que pulseaudio está usando tu tarjeta de sonido mediante ALSA y de manera exclusiva, por tanto no deja a mi emulador acceder mediante ALSA. Si quieres probar a activar el software mixing de ALSA, para ver si funciona el sonido en el emulador, basta con que crees en tu $HOME el archivo ".asoundrc" con el contenido:
pcm.copy {
type plug
slave {
pcm hw
}
route_policy copy
}


Para activarlo, solo es necesario cerrar sesión y volver a iniciarla
Para desactivarlo, borra el archivo y cierra sesión


Esta no me la sabía, así que me la apunto... ;)


Siempre se aprende algo nuevo ;)

chernandezba escribió:Si, también soporta sonido mediante OSS (DSP) pero en tu caso no creo que funcione
Yo utilizo Linux con ALSA, con emulación OSS. Por tanto, puedo probar tanto ALSA como DSP en la misma máquina, y DSP ofrece mejor rendimiento.
Tengo pendiente agregar mas drivers de sonido, pero poco a poco... ;)

Si quieres, te animo también a que pruebes alguna versión "snapshot", descargable desde la misma pagina del proyecto, en la pestaña "Code"

Saludos
César


En principio, OSS está más que "deprecated" en Linux. El problema es que la emulación de OSS en ALSA es horrenda y, al menos en mi experiencia con mi emulador, mete una latencia brutal. Teniendo en cuenta que estás programando en C, no debes tener ningún problema en máquinas relativamente antiguas. La otra cuestión es que PulseAudio se está convirtiendo en el pan nuestro de cada día bajo Linux y ya casi todas las distros lo llevan (a mi no me gusta, pero yo no hago distribuciones). Tener que explicar cómo configurar PulseAudio para que el emu rule con ALSA no es lo mejor (en mi opinión, claro).

Yo voy siguiéndote desde la versión 0.1 gracias a git. ;)




Si, completamente de acuerdo contigo, está mas que deprecated ;) Pero no se porque, en las máquinas en las que lo he probado, va mejor que con Alsa, quizá es un fallo con mi emulador
PulseAudio no lo he probado casi, porque además, en mis equipos Linux que uso (Debian + KDE) lo primero que hago es desactivar cualquier daemon/sistema de sonido que no sea Alsa. Pero bueno, como dices, todo evoluciona y si PulseAudio se va estandarizando habrá que adaptarse.

Saludos
César
----

ZEsarUX
ZX Second-Emulator And Released for UniX
https://github.com/chernandezba/zesarux

zx81
Freddy Hardest
Mensajes: 612
Registrado: Vie Dic 28, 2007 2:14 pm
Ubicación: Valencia
Contactar:

Re: Nueva versión emulador ZEsarUX 0.3

Mensaje por zx81 » Vie Ene 10, 2014 5:05 pm

chernandezba escribió:Si, hace mucho tiempo hice el ZXSpectr, realizado en Assembler.
Tengo presente lo de los cores, el TODO está lleno de cosas ;) El tema es que el core va relacionado con la implementación de timing real y contended memory, que es bastante complejo y que ahora mismo no está hecho (cada instrucción dura siempre lo mismo)
Por cierto, tu emulador es el jspeccy?


Efectivamente, como ya sabes no puedes pensar en el core Z80 sin pensar también en la contended-memory. O quizá yo no supe separar completamente una cosa de la otra, vaya usted a saber. Como podrás suponer, en mi infinita ignorancia yo empecé haciendo lo contrario de lo que te acabo de decir, de modo que tuve que retocar a fondo el core Z80 varias veces.... :oops:

Y sí, mi emulador es JSpeccy.

chernandezba escribió:
zx81 escribió:En principio, OSS está más que "deprecated" en Linux. El problema es que la emulación de OSS en ALSA es horrenda y, al menos en mi experiencia con mi emulador, mete una latencia brutal. Teniendo en cuenta que estás programando en C, no debes tener ningún problema en máquinas relativamente antiguas. La otra cuestión es que PulseAudio se está convirtiendo en el pan nuestro de cada día bajo Linux y ya casi todas las distros lo llevan (a mi no me gusta, pero yo no hago distribuciones). Tener que explicar cómo configurar PulseAudio para que el emu rule con ALSA no es lo mejor (en mi opinión, claro).

Yo voy siguiéndote desde la versión 0.1 gracias a git. ;)


Si, completamente de acuerdo contigo, está mas que deprecated ;) Pero no se porque, en las máquinas en las que lo he probado, va mejor que con Alsa, quizá es un fallo con mi emulador
PulseAudio no lo he probado casi, porque además, en mis equipos Linux que uso (Debian + KDE) lo primero que hago es desactivar cualquier daemon/sistema de sonido que no sea Alsa. Pero bueno, como dices, todo evoluciona y si PulseAudio se va estandarizando habrá que adaptarse.

Saludos
César


No te preocupes. Yo llevo la tira con JSpeccy y sigo peleando con el sonido como si fuera el primer día. Mira si es así, que ayer mismo hice las últimas modificaciones a algo relacionado con eso. A veces me han dado ganas de tirar el ordenador por la ventana. Porque, a fin de cuentas, depurar un core Z80 es cuestión de paciencia y tesón. Pero el sonido es algo muy subjetivo que no se puede medir fácilmente. Y cuando le pides a la familia que opinen qué les parece si algo suena bien o no te responden con un lacónico a mi es que todo eso me suena a ruido. :shock:
Debido al fallo de un mecanismo, el lanzagranadas M203 se te podía disparar cuando menos lo esperaras, lo que te habría hecho bastante impopular entre lo que quedara de tu unidad.
Revista del ejército EE.UU. PS, agosto 1993.

Emulador JSpeccy
ZXBaremulator

hikoki
Freddy Hardest
Mensajes: 653
Registrado: Sab Nov 23, 2013 8:27 am

Re: Nueva versión emulador ZEsarUX 0.3

Mensaje por hikoki » Vie Ene 10, 2014 5:21 pm

Disculpad que me meta en esta conversación sin tener ni idea de estos temas :)
se me ocurre una idea para valorar menos subjetivamente si el sonido está bien emulado, he observado que algunos músicos en WoS graban en mp3 directamente desde el hardware y después publican un slideshow en forma de tap junto con dibujos y texto, quizás haya algún programa que compare las frecuencias de diferentes ficheros de audio, la idea sería comparar el mp3 original capturado de un Spectrum con el capturado de un emulador.

zx81
Freddy Hardest
Mensajes: 612
Registrado: Vie Dic 28, 2007 2:14 pm
Ubicación: Valencia
Contactar:

Re: Nueva versión emulador ZEsarUX 0.3

Mensaje por zx81 » Vie Ene 10, 2014 5:55 pm

hikoki escribió:Disculpad que me meta en esta conversación sin tener ni idea de estos temas :)
se me ocurre una idea para valorar menos subjetivamente si el sonido está bien emulado, he observado que algunos músicos en WoS graban en mp3 directamente desde el hardware y después publican un slideshow en forma de tap junto con dibujos y texto, quizás haya algún programa que compare las frecuencias de diferentes ficheros de audio, la idea sería comparar el mp3 original capturado de un Spectrum con el capturado de un emulador.


Bienvenidas todas las ideas, pero esa no la veo clara. De entrada, no creo que fuera buena idea comparar nada partiendo de un mp3, debería ser un WAV puro y duro. Luego, los filtros a la salida del Spectrum tienen su efecto en la señal y eso ya no es fácil de emular, dependiendo además de cómo el emulador genere los samples de sonido. No soy experto en tratamiento digital de la señal, que en sí mismo es todo un mundo, pero quizá diera algo más de información una comparación de las respectivas FFT's.

Además, no es solo la calidad del sonido, son cosas tan complicadas de ver como intentar saber si estás emulando bien las envolventes del AY o el generador de ruido. Te puedes pegar horas y días solo con eso, sobre todo si te pasa como a mi y no tienes experiencia previa en nada relacionado con la generación de sonidos ni con el tratamiento de la señal.
Debido al fallo de un mecanismo, el lanzagranadas M203 se te podía disparar cuando menos lo esperaras, lo que te habría hecho bastante impopular entre lo que quedara de tu unidad.
Revista del ejército EE.UU. PS, agosto 1993.

Emulador JSpeccy
ZXBaremulator

hikoki
Freddy Hardest
Mensajes: 653
Registrado: Sab Nov 23, 2013 8:27 am

Re: Nueva versión emulador ZEsarUX 0.3

Mensaje por hikoki » Vie Ene 10, 2014 6:11 pm

No sé decirte más :) quizás te puedan ayudar los músicos que han desarrollado software para el spectrum y además interpretan música desde el hardware, mrbeep, ccowley, shiru, etc
Me he puesto a buscar y he encontrado estos programas para comparar sonidos :
http://www.toscanalyzer.org/index.php/e ... k-tour-eng
http://sourceforge.net/projects/fourierrocks/
http://www.libinst.com/Audio%20DiffMaker.htm
http://www.pas-products.com/programs.html

Edit: toscanalyzer acepta mp3 y wav, es una aplicación java que va en linux

Avatar de Usuario
son_link
Jack The Nipper
Mensajes: 123
Registrado: Mar Ene 07, 2014 9:55 pm
Ubicación: Atlantis, Galaxia Pegaso

Re: Nueva versión emulador ZEsarUX 0.3

Mensaje por son_link » Mar Ene 14, 2014 11:42 am

chernandezba escribió:
En cuanto subas una a ArchLinux me avisas; no he usado esa distro, pero seria un placer ver mi programa publicado ahí

Saludos
César

Cuando reduzcas el consumo de la CPU lo subiré. Aparte agregue a mi lector RSS el feed que proporciona SourceForge, así se cuando actualizas el repositorio y así bajar y compilar la ultima revisión
LOAD TAPE ERROR
Imagen

Avatar de Usuario
chernandezba
Sabreman
Mensajes: 391
Registrado: Mié Oct 17, 2007 5:26 pm

Re: Nueva versión emulador ZEsarUX 0.3

Mensaje por chernandezba » Mar Ene 14, 2014 1:12 pm

son_link escribió:
chernandezba escribió:
En cuanto subas una a ArchLinux me avisas; no he usado esa distro, pero seria un placer ver mi programa publicado ahí

Saludos
César

Cuando reduzcas el consumo de la CPU lo subiré. Aparte agregue a mi lector RSS el feed que proporciona SourceForge, así se cuando actualizas el repositorio y así bajar y compilar la ultima revisión


Hola

Podrías probar una versión snapshot, sin sonido (pasándole el parámetro --ao null) ? Por curiosidad he comparado el consumo de cpu con mi emulador y con fuse y dan resultados parecidos (35% zesarux y 30% fuse, en un portátil a @ 2.00GHz), esto con mismo programa cargado y zoom de pantalla al mínimo (1)

Creo que en tu caso ese alto consumo de cpu se debe al fallo con el sonido

Saludos
César
----

ZEsarUX
ZX Second-Emulator And Released for UniX
https://github.com/chernandezba/zesarux

Avatar de Usuario
son_link
Jack The Nipper
Mensajes: 123
Registrado: Mar Ene 07, 2014 9:55 pm
Ubicación: Atlantis, Galaxia Pegaso

Re: Nueva versión emulador ZEsarUX 0.3

Mensaje por son_link » Mar Ene 14, 2014 2:16 pm

No, me consume un 45% de media sin sonido.
LOAD TAPE ERROR
Imagen

Avatar de Usuario
chernandezba
Sabreman
Mensajes: 391
Registrado: Mié Oct 17, 2007 5:26 pm

Re: Nueva versión emulador ZEsarUX 0.3

Mensaje por chernandezba » Mar Ene 14, 2014 2:52 pm

son_link escribió:No, me consume un 45% de media sin sonido.



Y si lo comparas con fuse en igualdad de condiciones? mismo programa cargado, mismo nivel de zoom... cuanta cpu te consume?
----

ZEsarUX
ZX Second-Emulator And Released for UniX
https://github.com/chernandezba/zesarux

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados