Este es mi último proyecto Spectrumaniaco

Moderador: Fundadores

Avatar de Usuario
zx81
Aspirante a demonio
Aspirante a demonio
Mensajes: 499
Registrado: 19 Oct 2013, 16:27
Ubicación: Valencia
Has thanked: 11 times
Been thanked: 2 times
Contactar:

Este es mi último proyecto Spectrumaniaco

Mensaje por zx81 »

Hola a todos,

He publicado un vídrio en yutup, el primero de mi canal, donde enseño el pequeño proyecto que ando perfilando antes de hacerlo público de verdad.

Aquí va la URL:

Se agradecerían opiniones y puede que hasta algún ofrecimiento de betatesters, que de eso siempre anda uno escaso.

No tengo guatsap, ni tuity, pero me podéis encontrar en el canal #spectrum del IRC-Hispano, que eso aún existe y es de lo más retro... ;)
Today's robots are very primitive, capable of understanding only a few simple instructions such as 'go left', 'go right' and 'build car'.
John Sladek

Emulador de Spectrum JSpeccy.
Emulador de Spectrum Bare-metal para las Raspberry PI ZXBaremulator
Avatar de Usuario
rcmolina
Demonio tercer orden
Demonio tercer orden
Mensajes: 515
Registrado: 07 Feb 2016, 10:27
Been thanked: 7 times

Re: Este es mi último proyecto Spectrumaniaco

Mensaje por rcmolina »

Yo me ofrezco a ser betatester para tu proyecto zxbaremulator :D
Avatar de Usuario
shikitin !IBM 2
Demonio segundo orden
Demonio segundo orden
Mensajes: 1337
Registrado: 04 Abr 2013, 00:52
Ubicación: En un lugar de la mancha...
Has thanked: 54 times
Been thanked: 5 times

Re: Este es mi último proyecto Spectrumaniaco

Mensaje por shikitin »

Pues d.p.m. :)
Veo que has resuelto el tema del teclado via usb, el proyecto de Antonio Villena lo dejé aparcado por eso, por que habia que hacerse teclado via gpios.
Espero que lo saques pronto y nos cuentes mas cosas, como cargas, snas, taps, etc., audio out y todo eso.
Muy buena noticia, enhorabuena. ;)
Avatar de Usuario
javier2112
Demonio tercer orden
Demonio tercer orden
Mensajes: 886
Registrado: 30 Oct 2014, 12:36
Ubicación: Málaga
Has thanked: 11 times
Been thanked: 13 times

Re: Este es mi último proyecto Spectrumaniaco

Mensaje por javier2112 »

Gran trabajo. Hacer un emulador ¿sin usar sistema operativo? debe de ser aún más complicado, aunque me imagino que de alguna base habrás partido ¿O es que te has programado también un núcleo para la raspberry?

Por cierto, quizá vendría bien alguna explicación, porque sólo con el vídeo no se aprecia bien de qué se trata.


Saludos.


PD. Algo parecido existe para PC: ZX Emulator by Emanuele Cammarata, aunque no recuerdo que se pudiera cargar software de ninguna manera como en el tuyo.
Visita mi hilo de ventas:
viewtopic.php?t=4789
Avatar de Usuario
zx81
Aspirante a demonio
Aspirante a demonio
Mensajes: 499
Registrado: 19 Oct 2013, 16:27
Ubicación: Valencia
Has thanked: 11 times
Been thanked: 2 times
Contactar:

Re: Este es mi último proyecto Spectrumaniaco

Mensaje por zx81 »

Es exactamente lo que parece, un emulador bare-metal para las Raspberry PI. Como dijo Isaac Newton, si pude ver más lejos es porque me subí a hombros de gigantes. Y así ha sido esta vez. Llevaba tiempo colaborando con el autor de una librería escrita en C++ que permite desarrollar aplicaciones bare-metal para la PI, la librería Circle. Una vez tuve el core Z80 en C++, ya ha sido cuestión de días. Aún me quedan por acabar algunos detallitos para sacar la versión 1.0, pero lo que va, va bien.

En lo que menos esperanza tenía era en el sonido, principalmente porque absolutamente nadie sabe cómo usar el HDMI para sacar sonido por la tele, que podría ser estéreo a 192 kHz de sampling con muestras de 24 bits, una animalada. Pero, ya que eso es imposible a día de hoy, he tenido que conformarme con el sonido por PWM. Y hasta el autor de la librería está agradablemente sorprendido del buen resultado obtenido, porque el soporte es de lo más básico (y he peleado de lo lindo con ello).

La idea del emulador era, sobre todo, conseguir una precisión muy alta, imposible de conseguir con un S.O. de propósito general como Linux. De hecho, estimo que la precisión en tiempos anda por los +/- 2 o 3 microsegundos por frame. Ojito, que la capa USB es delicada y ella sola te puede quitar la CPU cuando quiere por lo menos un milisegundo.

Parte de eso lo he resuelto en la PI 2/3 dejándole a la CPU-0 manejar las interrupciones y el USB y utilizando la CPU-1 para el núcleo de la emulación. De momento, los núcleos 2 y 3 los dejo durmiendo el sueño de los justos.

Supongo que esto debería ser un proyecto a medio-largo plazo, porque dependiendo de la funcionalidad que se le de, habría mucho o muchísimo trabajo por hacer. Y eso que a nivel de emulación está como mi emulador Java, aunque limitado al 48k: emulación exacta del Z80, memoria contenida, bus flotante, dibujado con precisión tanto del borde como de la pantalla (y sin dobles buffers). Pasa todos los tests que conozco y, para ser bare-metal, funciona durante horas sin colgarse.

Lo que carga son TAP's de forma acelerada (lo que de el núcleo de la PI), así se conserva la pantalla de carga al menos, que siempre mola verla.

En su momento lo avisaré, pero los betatesters que sepan que necesitaré comprobar el acceso a la SD, y puede que más de una se quede inoperativa pá los restos. Esto es bare-metal y los errores se pagan a conciencia.

Si todo va bien, espero sacar la versión 1.0 para finales de mes como mucho. Porque si me ciego a ir añadiéndole cosas, no veréis nada hasta las navidades de 2031... :D
Today's robots are very primitive, capable of understanding only a few simple instructions such as 'go left', 'go right' and 'build car'.
John Sladek

Emulador de Spectrum JSpeccy.
Emulador de Spectrum Bare-metal para las Raspberry PI ZXBaremulator
Avatar de Usuario
wilco2009 !Sinclair 1
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 8152
Registrado: 01 Abr 2013, 23:47
Ubicación: Valencia
Has thanked: 47 times
Been thanked: 101 times

Re: Este es mi último proyecto Spectrumaniaco

Mensaje por wilco2009 »

Moooola!!! :o

¿Funciona en una Pi Zero?
"Aprender a volar es todo un arte. Aunque sólo hay que cogerle el truco. Consiste en tirarse al suelo y fallar".

Douglas Adams. Guía del autoestopista galáctico.
Avatar de Usuario
zx81
Aspirante a demonio
Aspirante a demonio
Mensajes: 499
Registrado: 19 Oct 2013, 16:27
Ubicación: Valencia
Has thanked: 11 times
Been thanked: 2 times
Contactar:

Re: Este es mi último proyecto Spectrumaniaco

Mensaje por zx81 »

wilco2009 escribió:Moooola!!! :o

¿Funciona en una Pi Zero?
Sep, pero debo recordar que la PI Zero no tiene salida de audio, como las otras. Por lo demás, es como una B+ pero con la CPU a 1 Ghz en lugar de a 700 Mhz. De hecho, lo han probado en una Zero, porque yo no tengo.
Today's robots are very primitive, capable of understanding only a few simple instructions such as 'go left', 'go right' and 'build car'.
John Sladek

Emulador de Spectrum JSpeccy.
Emulador de Spectrum Bare-metal para las Raspberry PI ZXBaremulator
Avatar de Usuario
javier2112
Demonio tercer orden
Demonio tercer orden
Mensajes: 886
Registrado: 30 Oct 2014, 12:36
Ubicación: Málaga
Has thanked: 11 times
Been thanked: 13 times

Re: Este es mi último proyecto Spectrumaniaco

Mensaje por javier2112 »

zx81 escribió:Es exactamente lo que parece, un emulador bare-metal para las Raspberry PI.
(...)
Lo he mirado en la wikipedia. Nunca había oído ese término. Me refería a que quizá haya personas que no sepan de qué va eso.


Saludos.
Visita mi hilo de ventas:
viewtopic.php?t=4789
Avatar de Usuario
zx81
Aspirante a demonio
Aspirante a demonio
Mensajes: 499
Registrado: 19 Oct 2013, 16:27
Ubicación: Valencia
Has thanked: 11 times
Been thanked: 2 times
Contactar:

Re: Este es mi último proyecto Spectrumaniaco

Mensaje por zx81 »

javier2112 escribió:
zx81 escribió:Es exactamente lo que parece, un emulador bare-metal para las Raspberry PI.
(...)
Lo he mirado en la wikipedia. Nunca había oído ese término. Me refería a que quizá haya personas que no sepan de qué va eso.


Saludos.
Se refiere, como ya ha comentado el propio Carmeloco, de un emulador que NO necesita sistema operativo instalado para funcionar. Simplemente, copias el "kernel" a la SD y arrancas la PI directamente en el emulador. El término "bare-metal" se podría traducir como "metal desnudo", o sea, manejarse con el hardware a pelo. Eso es, paradójicamente, bastante complicado de hacer en la PI porque la documentación del hardware es muy poca y llena de erratas. Por eso, alguna gente se ha pasado a la BeagleBone Black, está muchísimo mejor documentada para jugar como un bestia con casi todo. Tentado estoy yo de hacerme con una, ahora que vuelve a haber stock...
Today's robots are very primitive, capable of understanding only a few simple instructions such as 'go left', 'go right' and 'build car'.
John Sladek

Emulador de Spectrum JSpeccy.
Emulador de Spectrum Bare-metal para las Raspberry PI ZXBaremulator
Avatar de Usuario
alvaroalea España - Asturias
Demonio segundo orden
Demonio segundo orden
Mensajes: 1092
Registrado: 25 Oct 2014, 12:49
Ubicación: Asturias, Paraiso Natural
Has thanked: 14 times
Been thanked: 52 times
Contactar:

Re: Este es mi último proyecto Spectrumaniaco

Mensaje por alvaroalea »

zx81 escribió:
wilco2009 escribió:Moooola!!! :o

¿Funciona en una Pi Zero?
Sep, pero debo recordar que la PI Zero no tiene salida de audio, como las otras. Por lo demás, es como una B+ pero con la CPU a 1 Ghz en lugar de a 700 Mhz. De hecho, lo han probado en una Zero, porque yo no tengo.
Por tocar los OO un poco, hasta donde yo se la salida de sonido "analogica" de los raspberry pi, es por medio de dos gpio usando PWM, con una red RC, en el raspberry pi zero, esta red no esta, pero si unas gpio similares, por lo que es muy facil añadir la salida de audio analogico al raspberry pi Zero:
https://learn.adafruit.com/introducing- ... io-outputs
https://learn.adafruit.com/adding-basic ... o/overview
https://learn.adafruit.com/adding-basic ... -pwm-audio
Responder

Volver a “Emulación”