ZXBaremulator v3.1

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: 10 times
Been thanked: 2 times
Contactar:

Re: ZXBaremulator v3.1

Mensaje por zx81 »

wilco2009 escribió: 15 Nov 2019, 00:34 ¿Y dedicando un núcleo de la CPU solo a pintar la pantalla y enviar el sonido y te desentiendes de eso mientras emulas con los otros? No sé si esas cosas se pueden hacer en una pi sin sistema operativo.
Bueno, eso ya lo hago. en la PI-2 y superiores, usar una CPU para tareas varias y la otra para la emulación, y quedan otras dos CPUs esperando tiempos mejores. La pantalla puede dibujarse incluso usando DMA memoria-memoria aunque, parajódicamente, es más lento usando DMA que el memcpy de toda la vida, que no es especialmente óptimo, hay implementaciones mejores.

Pero la CPU del emulador debería estar muy bien sincronizada en tiempo porque la cinta no perdona y cada IN debería hacerse en el momento más o menos exacto. No es trivial, desde luego.
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
puzel
Seguidor infernal
Seguidor infernal
Mensajes: 14
Registrado: 13 Nov 2019, 20:36

Re: ZXBaremulator v3.1

Mensaje por puzel »

zx81 escribió: 14 Nov 2019, 21:01para una buena experiencia con un teclado USB el mejor que he encontrado es el Logitech K-120, un teclado de apenas 9€ que detecta hasta 6 teclas simultaneas sin despeinarse y tiene un tiempo de polling de solo 10 ms, cuando la mayoría andan por los 16, 20 o más ms (24 ms es lo máximo que he visto en un teclado de primera marca).
Este uso. Casi 2€ más en Amazon.
zx81 escribió: 14 Nov 2019, 21:01A ver si ahora saco tiempo para implementar la otra "feature" que me queda y que evitaría una de las cosas que menos me gustan. Eso siempre que mi idea sea buena y no una pájara mental... :mrgreen:
¿Es una indiscrección preguntar por esa "feature"?
Avatar de Usuario
zx81
Aspirante a demonio
Aspirante a demonio
Mensajes: 499
Registrado: 19 Oct 2013, 16:27
Ubicación: Valencia
Has thanked: 10 times
Been thanked: 2 times
Contactar:

Re: ZXBaremulator v3.1

Mensaje por zx81 »

puzel escribió: 15 Nov 2019, 18:52
zx81 escribió: 14 Nov 2019, 21:01para una buena experiencia con un teclado USB el mejor que he encontrado es el Logitech K-120, un teclado de apenas 9€ que detecta hasta 6 teclas simultaneas sin despeinarse y tiene un tiempo de polling de solo 10 ms, cuando la mayoría andan por los 16, 20 o más ms (24 ms es lo máximo que he visto en un teclado de primera marca).
Este uso. Casi 2€ más en Amazon.
Yo también compré uno por Amazon pero porque lo buscaba con distribución de teclado inglés UK. Por esa chorrada me costó casi 20€, pero bueno, tampoco es una fortuna.
puzel escribió: 15 Nov 2019, 18:52
zx81 escribió: 14 Nov 2019, 21:01A ver si ahora saco tiempo para implementar la otra "feature" que me queda y que evitaría una de las cosas que menos me gustan. Eso siempre que mi idea sea buena y no una pájara mental... :mrgreen:
¿Es una indiscrección preguntar por esa "feature"?
Pues es una cosa que me gustaría probar para ver si funciona, por lo menos para no quedarme con la duda. La única manera de ver la imagen lo más cercana al Spectrum real es configurando la salida de vídeo a 576i@50hz. Así ves todas las demos casi como en el real, salvo por la molestia de que el Spectrum no usa 50 Hz, sino un poco más, y ves una línea de raster que se desplaza de abajo hacia arriba de la pantalla. No es un efecto muy agraciado, pero peor es no ver los efectos de gigascreen ni nada.

Con modos de vídeo de 60 Hz no tienes el problema ni los efectos especiales. Así que pensé que a lo mejor se podía doblar la resolución vertical y dibujar como el Spectrum, una vez el cuadro par y la siguiente el impar. Para que la cosa quede bien hay que doblar, además, la resolución horizontal o quedaría deformada la imagen. Para hacer eso, el modo gráfico que uso de 4 bits/pixel no es el más adecuado, así que tendré que pasar de una vez a un modo de 16bits/pixel que ya no usa paleta. La incertidumbres son:

1.- El redibujado de la pantalla ya no se puede hacer en bloque, que es lo más rápido, hay que hacerlo en líneas alternas. Veremos si no acabo usando DMA para esto.
2.- ¿Servirá de algo el efecto o es solo una teoría absurda?.
3.- Cuando afectará a la velocidad de redibujado, especialmente durante las cargas rápidas. Puede que las PI A+/B+/Zero/ZeroW no puedan con esos modos. Les sobra mucho tiempo por cuadro, alrededor de los 12-15 ms, que es muchísimo, pero es que el dibujado del buffer intermedio va a costar mucho más porque es mucho más grande. Pasamos de representar los 8 pixeles de una posición de pantalla con una palabra de 32 bits, a necesitar 8 palabras de 32 bits (al doblar la resolución horizontal no dibujas 8 pixeles de pantalla, sino 16).

Si funciona, y es soportable en velocidad en las PI más pequeñas, habrá valido la pena, espero. Si no, será mucho tiempo tirado a la basura porque el cambio me afecta a una gran parte del core del emulador. Esto va a ser una pesadilla, ya verás... :?
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: 884
Registrado: 30 Oct 2014, 12:36
Ubicación: Málaga
Has thanked: 11 times
Been thanked: 13 times

Re: ZXBaremulator v3.1

Mensaje por javier2112 »

Bueno, el emulador Spectrum, que es del año 89, emula la rutina de carga de cinta de la rom con un Intel 286, sobre un sistema operativo MSDOS.

No dudo que tenga su dificultad implementarla pero estoy seguro de que sobra cpu con cualquier Raspberry Pi.


Saludos.

PD. El emulador Z80 también implementaba en 1994 otras rutinas de carga: http://www.elmundodelspectrum.com/aquel ... -spectrum/
Visita mi hilo de ventas:
viewtopic.php?t=4789
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: ZXBaremulator v3.1

Mensaje por wilco2009 »

javier2112 escribió: 15 Nov 2019, 21:59 Bueno, el emulador Spectrum, que es del año 89, emula la rutina de carga de cinta de la rom con un Intel 286, sobre un sistema operativo MSDOS.

No dudo que tenga su dificultad implementarla pero estoy seguro de que sobra cpu con cualquier Raspberry Pi.


Saludos.

PD. El emulador Z80 también implementaba en 1994 otras rutinas de carga: http://www.elmundodelspectrum.com/aquel ... -spectrum/
De hecho, el emulador "SPECTRUM" que citas es el de Pedro Gimeno, amigo comun de zx81 y mio.
En su emulador Pedro utiliza un modo de texto en 16 colores, haciendo los caracteres de un pixel de alto, por lo que la distribución de la memoria se parece mucho a la que tiene el vídeo de un Spectrum. Hasta casi tiene colour clash y todo (realmente los atributos le ocupan 8 bytes x caracter en lugar de 1byte, pero bueno)

Ese modo de hacerlo surgió de una charla de madrugada entre Pedro y yo, y realmente resulto en un incremento importante en el rendimiento de su emulador.
"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: 10 times
Been thanked: 2 times
Contactar:

Re: ZXBaremulator v3.1

Mensaje por zx81 »

javier2112 escribió: 15 Nov 2019, 21:59 Bueno, el emulador Spectrum, que es del año 89, emula la rutina de carga de cinta de la rom con un Intel 286, sobre un sistema operativo MSDOS.

No dudo que tenga su dificultad implementarla pero estoy seguro de que sobra cpu con cualquier Raspberry Pi.


Saludos.

PD. El emulador Z80 también implementaba en 1994 otras rutinas de carga: http://www.elmundodelspectrum.com/aquel ... -spectrum/
En ll emulador de Pedro creo que solo cargué una vez una cinta por el puerto paralelo. Luego ya era fácil encontrar archivos SP de casi cualquier cosa y no lo intenté más. El Z80 lo usé poquísimo, con eso de que era "charguar", que habían otros también muy competentes para la época (JPP, X128, R80), y que en cuanto descubrí emuladores para Linux (x128, xzx, xz81) ya no volví a usar emuladores ni en DOS (por el que no guardo el más mínimo cariño), ni muchos menos en Windows, que ya en aquella época estaba claro que era un ñordo antológico y nunca dejaría de serlo (y así sigue).

Así que no he llegado a ver cargar en esos emuladores juegos con protecciones turbo, que ya es raro que funcionen sin más, porque hay cosas que entonces no se emulaban de la Z80 o del Spectrum simplemente porque aún no se conocían. Pedro abandonó pronto el emulador y, aunque una vez estuvimos a punto de retomarlo, al final no hicimos nada (aún debo tener guardado en un viejo disco de 500MB un montón de cosas que me pasó Pedro, entre ellas, los fuentes de entonces de su emulador). No recuerdo cuando se acabó el Z80, supongo que cuando su autor dejó de ganar dinero con él, allá por el 95 o así, cuando la gente empezó a usar mayoritariamente el Windows 95. Yo creo que fué por esa época, quizá el 96, cuando le dejé a Pedro mi +3 para que extrajera la ROM e investigara acerca de los timings de las instrucciones.

No es un problema de CPU, incluso podría leerse el GPIO usando interrupciones (la librería Circle lo puede hacer, además, usando la interrupción rápida) sino de sincronización entre la cinta, que es tiempo real, y la emulación, que va considerablemente más rápida.
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
zx81
Aspirante a demonio
Aspirante a demonio
Mensajes: 499
Registrado: 19 Oct 2013, 16:27
Ubicación: Valencia
Has thanked: 10 times
Been thanked: 2 times
Contactar:

Re: ZXBaremulator v3.1

Mensaje por zx81 »

wilco2009 escribió: 16 Nov 2019, 00:39
javier2112 escribió: 15 Nov 2019, 21:59 Bueno, el emulador Spectrum, que es del año 89, emula la rutina de carga de cinta de la rom con un Intel 286, sobre un sistema operativo MSDOS.

No dudo que tenga su dificultad implementarla pero estoy seguro de que sobra cpu con cualquier Raspberry Pi.


Saludos.

PD. El emulador Z80 también implementaba en 1994 otras rutinas de carga: http://www.elmundodelspectrum.com/aquel ... -spectrum/
De hecho, el emulador "SPECTRUM" que citas es el de Pedro Gimeno, amigo comun de zx81 y mio.
En su emulador Pedro utiliza un modo de texto en 16 colores, haciendo los caracteres de un pixel de alto, por lo que la distribución de la memoria se parece mucho a la que tiene el vídeo de un Spectrum. Hasta casi tiene colour clash y todo (realmente los atributos le ocupan 8 bytes x caracter en lugar de 1byte, pero bueno)

Ese modo de hacerlo surgió de una charla de madrugada entre Pedro y yo, y realmente resulto en un incremento importante en el rendimiento de su emulador.
No sabía que habías sido tú el culpable de semejante invento... :)

Fue una decisión inteligente, porque es mucho más rápido tratar la pantalla en modo texto que en modo gráfico. Y el Spectrum no necesita más.

En ZXBaremulator la idea de usar 4bpp/pixel es de Antonio Villena, que lo hizo en su piBacteria. Lo que tiene narices es que de lo poquísimo mínimamente documentado de la PI es el framebuffer y ese modo no lo he visto documentado en ninguna parte. De donde lo sacó, él sabrá.
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
sinclair200 España
Moderador
Moderador
Mensajes: 9988
Registrado: 28 Mar 2014, 18:25
Ubicación: Madrid
Has thanked: 8 times
Been thanked: 177 times

Re: ZXBaremulator v3.1

Mensaje por sinclair200 »

javier2112 escribió: 14 Nov 2019, 21:04
Zumber escribió: 14 Nov 2019, 15:21 Despues de :
cargar rapido sin errores
poder pausar y salvar partidas
tener todos los modelos de spectrum en uno
calidad de imagen hdmi

¿¿¿¿Quien quiere usar un original???

Solo se echa de menos el tacto y la estetica del hardware original , pero ya nos han dicho hoy que falta muy poco para resolver ese punto.
Si me apuras, si se pudiera cargar por cinta seria la releche.

zx81 ya me ha dicho que no, pero yo insisto. Con lo perfeccionista que es, al final lo hará :D

Saludos.
Yo tenía un emulador de ZX Spectrum (alemán) que mediante un inventillo mitad ampli, mitad conector LPT se podía cargar desde una cinta real un juego de spectrum en el.... :D
Imagen
Z80 INSIDE.........
WANTED:…………. CPC 6128 british
Avatar de Usuario
zx81
Aspirante a demonio
Aspirante a demonio
Mensajes: 499
Registrado: 19 Oct 2013, 16:27
Ubicación: Valencia
Has thanked: 10 times
Been thanked: 2 times
Contactar:

Re: ZXBaremulator v3.1

Mensaje por zx81 »

sinclair200 escribió: 16 Nov 2019, 20:58
javier2112 escribió: 14 Nov 2019, 21:04
Zumber escribió: 14 Nov 2019, 15:21 Despues de :
cargar rapido sin errores
poder pausar y salvar partidas
tener todos los modelos de spectrum en uno
calidad de imagen hdmi

¿¿¿¿Quien quiere usar un original???

Solo se echa de menos el tacto y la estetica del hardware original , pero ya nos han dicho hoy que falta muy poco para resolver ese punto.
Si me apuras, si se pudiera cargar por cinta seria la releche.

zx81 ya me ha dicho que no, pero yo insisto. Con lo perfeccionista que es, al final lo hará :D

Saludos.
Yo tenía un emulador de ZX Spectrum (alemán) que mediante un inventillo mitad ampli, mitad conector LPT se podía cargar desde una cinta real un juego de spectrum en el.... :D
Lo que aquí se trata de dilucidar no es si se puede hacer, que ya se ha demostrado que se puede, sino si esos emuladores también cargaban cintas con protecciones, Speedlock, Bleepload, Alkatraz y demás. Yo apostaría a que no podían, solo TAPs sin protección, pero aún nadie ha podido confirmar o desmentir categóricamente que pudieran.
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: 884
Registrado: 30 Oct 2014, 12:36
Ubicación: Málaga
Has thanked: 11 times
Been thanked: 13 times

Re: ZXBaremulator v3.1

Mensaje por javier2112 »

Ese emulador más que alemán era holandés, el Z80 que hemos mencionado, y si, soportaba cierta cargas no estándar. Al menos eso dicen las crónicas (seguid el enlace que deje antes).

Yo nunca lo pude comprobar porque era una característica de la versión de pago.
Visita mi hilo de ventas:
viewtopic.php?t=4789
Responder

Volver a “Emulación”