[UPDATED] Retro Virtual Machine v1.0.1 disponible!!!

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

Moderador: Sir Cilve Sinclair

[UPDATED] Retro Virtual Machine v1.0.1 disponible!!!

Notapor jcgamestoy el Mar Sep 01, 2015 1:02 pm

Buenas a todos primero me presento.

Soy Juan Carlos de Alicante y soy el autor de este nuevo emulador para OS X.

Podeis encontrar mucha mas información en:

http://www.retrovirtualmachine.org

Así como en sus manuales (os dejo aquí el enlace al manual en Castellano)

http://www.retrovirtualmachine.org/manuals/manSpa.pdf

El objetivo en esta primera versión es que el emulador sea muy usable y ejecutar lo más fielmente posible los modelos emulados tal como eran sin periféricos. Para programadores ya tendréis más funcionalidades en siguientes versiones :wink:

Espero que os guste y todas las dudas curiosidades o fallos que encontréis lo hablamos por aquí.

Actualización

He encontrado un bug bastante severo que podia impedir ejecutarse al emulador.

Por favor descargar y actualizar desde la web.


Un saludo.
Ultima edición por jcgamestoy el Jue Sep 03, 2015 7:17 pm, editado 1 vez en total
Avatar de Usuario
jcgamestoy
rst 0
 
Mensajes: 38
Registrado: Mie Abr 29, 2015 8:38 am

Re: Retro Virtual Machine v1.0.0 disponible!!!

Notapor chernandezba el Mar Sep 01, 2015 1:31 pm

Hola

Bueno ya hemos hablado en otros foros pero ya que te veo por aquí, una pregunta:

Que es el flag Q?

Se nota que tienes práctica con diseño gráfico, tanto en el emulador como en la documentación, cosa que a mi me falta :P

Saludos
----

ZEsarUX
ZX Second-Emulator And Released for UniX
https://sourceforge.net/projects/zesarux/
Avatar de Usuario
chernandezba
Sabreman
 
Mensajes: 319
Registrado: Mie Oct 17, 2007 5:26 pm

Re: Retro Virtual Machine v1.0.0 disponible!!!

Notapor jcgamestoy el Mar Sep 01, 2015 2:30 pm

Bueno he puesto flag q y tenia que haber puesto registro q.

Es otra característica undocumentada del Z80. Creo que la descubrio Patrik Rak autor del emulador ZXDS

http://www.worldofspectrum.org/forums/discussion/41704/redirect/p1

Y aqui una bateria de tests (los paso todos ni siquiera fuse lo hace :lol: ) que hizo Patrik por acá:

http://www.worldofspectrum.org/forums/discussion/41834/new-z80-cpu-emulation-tester#latest
Avatar de Usuario
jcgamestoy
rst 0
 
Mensajes: 38
Registrado: Mie Abr 29, 2015 8:38 am

Re: Retro Virtual Machine v1.0.0 disponible!!!

Notapor chernandezba el Mar Sep 01, 2015 2:43 pm

Conozco esos tests... Muchas veces se toma Fuse como referencia y por ejemplo no emula memptr, según el mismo Philip Kendall no lo emulará nunca, pues es una feature de poco uso (y tal vez tenga razón). ZEsarUX pasa todos esos test excepto el BIT n,(HL).
He leido eso del flag Q y no acabo de entender cual es el comportamiento final, leo como conclusión:
" In actual fact, we'll probably model our Q register in such a way that Q takes the value 0 if flags change, but takes the value F & ((1 << 3) | (1 << 5)) when flags are left unchanged."

O sea que si hay cambio de flags en alguna instrucción, se resetea a 0, y sino, pues tiene el valor que se indica con la fórmula?
Creo igualmente que el flag Q no se comprueba en esos test, a no ser que sea con la instrucción BIT n,(HL), pues es la única que falla en mi emu (y no implemento el Q).

Por cierto, tu emulador... código cerrado? No hay código fuente para descargar?
----

ZEsarUX
ZX Second-Emulator And Released for UniX
https://sourceforge.net/projects/zesarux/
Avatar de Usuario
chernandezba
Sabreman
 
Mensajes: 319
Registrado: Mie Oct 17, 2007 5:26 pm

Re: Retro Virtual Machine v1.0.0 disponible!!!

Notapor jcgamestoy el Mar Sep 01, 2015 3:34 pm

Efectivamente yo lo hago de la siguiente manera.

Si la instrucción cambia flags q=1 sino q=0

y luego en scf y ccf los bits 3 y 5:

si q=1 son una copia del registro A

si q=0 son A or F (solo los bits 3 y 5) vamos en mi código:

Código: Seleccionar todo
void scf(z80* z)
{
  uint8_t v=z->r.q ? (z->r.a & 0x28) : ((z->r.f | z->r.a) & 0x28);
  z->r.f=(z->r.f & 0xc4) | v | 0x1;

  z->r.q=1;
  z->T=4;
}


y

Código: Seleccionar todo
void ccf(z80* z)
{
  uint8_t c=z->r.f & 0x1;
  uint8_t nc=c ? 0 : 0x1;
  uint8_t v=z->r.q ? (z->r.a & 0x28) : ((z->r.f | z->r.a) & 0x28);
  z->r.f=(z->r.f & 0xc4) | v | (c<<4) | nc;

  z->r.q=1;
  z->T=4;
}


En cuanto a lo de código abierto y cerrado utilizo dentro otro de mis proyectos que de momento es de código cerrado y no hago RVM publico porque ni siquiera podriais compilarlo sin esa parte.

Una de las cosas que tengo pendientes es eliminar esa parte para poder sacarlo en código abierto.

La licencia sera BSD lo más seguro pero ya veremos.

Otra cosa me he bajado ZEsarUX 3.0 (hay alguna version más reciente) para Mac (que cantidad de opciones :D ) y no pasa los test estos (z80full.tap) falla justamente en scf ccf.

En cuanto a lo de bit n,(hl) si te falla es por el memptr el registro q no influye aquí como lo hago yo:

Código: Seleccionar todo
z->r.f=(sz53cFlags[v] & 0x80) | (sz53cFlags[z->r.mptrh] & 0x28) | ((v) ? 0x10 : 0x54) | (z->r.f & 0x1);
  z->r.q=1;


Un saludo y en todo lo que pueda ayudar ya sabes :wink:
Avatar de Usuario
jcgamestoy
rst 0
 
Mensajes: 38
Registrado: Mie Abr 29, 2015 8:38 am

Re: Retro Virtual Machine v1.0.0 disponible!!!

Notapor chernandezba el Mar Sep 01, 2015 4:42 pm

jcgamestoy escribió:Efectivamente yo lo hago de la siguiente manera.

Si la instrucción cambia flags q=1 sino q=0

y luego en scf y ccf los bits 3 y 5:

si q=1 son una copia del registro A

si q=0 son A or F (solo los bits 3 y 5) vamos en mi código:


Gracias. Lo que no acabo de entender es como se lee el valor de ese flag Q, o sólo influye en algunas instrucciones como SCF o CCF?
Si para cada instrucción que cambia o no los flags (todas) tengo que meter una parte de código, creo que casi que no lo agregaré. Todo lo que sea meter cosas en el core de la cpu representa usar mas cpu real y hacer que vaya mas lento. Total, no habrá ningún juego que no funcione debido a eso, sólo estos tests..
Incluso la emulación que tengo de memptr se puede desactivar al compilar el código para ahorrar ciclos de cpu real.


En cuanto a lo de código abierto y cerrado utilizo dentro otro de mis proyectos que de momento es de código cerrado y no hago RVM publico porque ni siquiera podriais compilarlo sin esa parte.

Una de las cosas que tengo pendientes es eliminar esa parte para poder sacarlo en código abierto.


Bueno eso ya depende de cada uno... Incluso podrías publicar esa parte de código abierto, aunque no se pueda compilar.

La licencia sera BSD lo más seguro pero ya veremos.

Otra cosa me he bajado ZEsarUX 3.0 (hay alguna version más reciente) para Mac (que cantidad de opciones :D ) y no pasa los test estos (z80full.tap) falla justamente en scf ccf.


Si, efectivamente falla. Durante mucho tiempo mi test de referencia fue el z80tests.tap, hice lo imposible para que se ejecutase bien (donde hay test de scf y ccf que sí que pasan) y luego descubrí otros tests mas, y la pesadilla volvió a empezar..
En cuanto a versiones de ZEsarUX, la última estable es la 3.0. Hay una beta de la 3.1 compilada para Windows aquí:
http://sourceforge.net/projects/zesarux ... _versions/

Y para el resto de sistemas puedes siempre bajar el código del repositorio y compilar:
http://sourceforge.net/p/zesarux/code/ci/master/tree/

En cuanto a lo de bit n,(hl) si te falla es por el memptr el registro q no influye aquí como lo hago yo:

Código: Seleccionar todo
z->r.f=(sz53cFlags[v] & 0x80) | (sz53cFlags[z->r.mptrh] & 0x28) | ((v) ? 0x10 : 0x54) | (z->r.f & 0x1);
  z->r.q=1;


Un saludo y en todo lo que pueda ayudar ya sabes :wink:


Gracias. Como te digo esto del flag Q me lo apunto pero no lo agregaré.

Saludos
César
----

ZEsarUX
ZX Second-Emulator And Released for UniX
https://sourceforge.net/projects/zesarux/
Avatar de Usuario
chernandezba
Sabreman
 
Mensajes: 319
Registrado: Mie Oct 17, 2007 5:26 pm

Re: Retro Virtual Machine v1.0.0 disponible!!!

Notapor chernandezba el Mar Sep 01, 2015 7:36 pm

Hola Juan Carlos.

He probado tu emulador y debo decirte que la parte gráfica esta muy currada, funciona con fluidez y el consumo de cpu no es elevado para todo lo que hace.
Ahora bien, yo cambiaría dos cosas:

1) Al iniciar una máquina hay que grabar la configuración en disco... No hay una manera de pulsar el botón Add, escoger máquina y que no haya que grabarla? Es un tanto engorroso...

2) Después de esto la máquina aparece creada pero apagada, con la pantalla con nieve.... El efecto está super chulo pero seria mejor que arrancase directamente. Sinceramente creo que soy muy torpe porque me ha costado encontrar la manera de hacer el "Power On"

Y veo que no soportas ningún formato de snapshot... excepto uno tuyo propio. Se echa mucho de menos sobretodo abrir archivos .z80, hay montón de juegos por ahi que solo están en ese formato. Además, si alguien ha grabado un snapshot en otro emulador, probablemente lo habrá hecho en formato .z80, y no podrá cargarlo en tu emulador. Ya me imagino que lo sabías de sobra, pero es algo que la gente te pedirá.
Eso si, en cintas tienes montones de formatos, y otros mas recientes, PZX y CSW. Por cierto, hay cintas publicadas en ese formato?

Y otro comentario mas... poniendo el modo de video LCD-RGB, que creo que es el que se ve perfecto, los pixeles son ligeramente mas grandes de lo normal... Comparando con zxsp o ZEsarUX tus pixeles son ligeramente mas grandes, digamos que tu pantalla es mas o menos un 10% mas grande que en otros emuladores... Hay manera de ponerlo a escala 1:1 normal?

Por lo demás, gran emulador. Buen trabajo!

Saludos
César
----

ZEsarUX
ZX Second-Emulator And Released for UniX
https://sourceforge.net/projects/zesarux/
Avatar de Usuario
chernandezba
Sabreman
 
Mensajes: 319
Registrado: Mie Oct 17, 2007 5:26 pm

Re: Retro Virtual Machine v1.0.0 disponible!!!

Notapor jcgamestoy el Mar Sep 01, 2015 9:30 pm

:lol: :lol: :lol: :lol: por partes
chernandezba escribió:Hola Juan Carlos.

He probado tu emulador y debo decirte que la parte gráfica esta muy currada, funciona con fluidez y el consumo de cpu no es elevado para todo lo que hace.
Ahora bien, yo cambiaría dos cosas:

1) Al iniciar una máquina hay que grabar la configuración en disco... No hay una manera de pulsar el botón Add, escoger máquina y que no haya que grabarla? Es un tanto engorroso...
César


Ya pero hay que decirle donde guardar el archivo (en verdad es un Bundle de os vamos hablando en plata una carpeta) y dentro de este se guardan las snapshots, la configuración del teclado y el estado cuando se cierra el emulador.

La idea es que te puedas guardar estos archivos en una carpeta como Dropbox y sincronizar tus maquinas entre varios equipos.

Ademas esta pensado para la futura emulación del DIVIDE (y otras cosas que no puedo contar) para emularlo como realmente se utiliza en la máquina, es decir que el usuario pueda meter un cassette y flashear la rom del DIVIDE etc...

chernandezba escribió:2) Después de esto la máquina aparece creada pero apagada, con la pantalla con nieve.... El efecto está super chulo pero seria mejor que arrancase directamente. Sinceramente creo que soy muy torpe porque me ha costado encontrar la manera de hacer el "Power On"



Cierto lo estoy repensando y lo mejor es lanzar un mensaje que ponga "CMD+ENTER to power on" de todas formas se puede encender desde los controles de la parte de abajo o bien desde el menú machine.

chernandezba escribió:Y veo que no soportas ningún formato de snapshot... excepto uno tuyo propio. Se echa mucho de menos sobretodo abrir archivos .z80, hay montón de juegos por ahi que solo están en ese formato. Además, si alguien ha grabado un snapshot en otro emulador, probablemente lo habrá hecho en formato .z80, y no podrá cargarlo en tu emulador. Ya me imagino que lo sabías de sobra, pero es algo que la gente te pedirá.
Eso si, en cintas tienes montones de formatos, y otros mas recientes, PZX y CSW. Por cierto, hay cintas publicadas en ese formato?


:lol: :lol: :lol: 60 páginas de manual y no os las leeis ninguno.

Si soporta Z80 y SNA tienes que entrar en la gestión de snapshots (cmd+8) darle al botón import y puedes importar las snapshots o exportarlas. Se quedaran guardadas dentro de esta máquina y desde aquí también puedes renombrarlas o eliminarlas.

Si en CSW hay un monton (basicamente es un Wav comprimido exacto de la cinta) y PZX esta el paquete de pruebas que hizo Patrik Rak que lo puedes bajar aquí:

http://zxds.raxoft.cz/pzx.html

PZX es una gozada casi tan simple como TAP y soporta TODO lo que puede hacer TZX pero sin tantos dolores de cabeza. Ojalá la gente se concienciará y pasaramos todo a este formato.

chernandezba escribió:Y otro comentario mas... poniendo el modo de video LCD-RGB, que creo que es el que se ve perfecto, los pixeles son ligeramente mas grandes de lo normal... Comparando con zxsp o ZEsarUX tus pixeles son ligeramente mas grandes, digamos que tu pantalla es mas o menos un 10% mas grande que en otros emuladores... Hay manera de ponerlo a escala 1:1 normal?

Por lo demás, gran emulador. Buen trabajo!

Saludos
César


Exactamente casi ese 10% y si si entras en las opciones de video justo debajo hay un botón que pone OVERSCAN aquí puedes configurarlo como quieras en la opción FULL PAL se muestra el frame completo 384x288 como haces tu en ZEsarUX pero yo lo hice así ya que en un CRT nunca podías ver la resolución PAL completa desde aquí lo puedes configurar al gusto de cada uno.

Y aprovechando ya me he leído el articulo... Brutal cuando lo asimile te cuento pero creo que no tendré muchos problemas en implementar todas las "features" del inves.

Y estoy haciendo pruebas con ZEsarUX 3.0 y me pasa como a ti, estoy acostumbrado al mío y no me aclaro con cosas:

1) Que es eso de "Real Video" y autodetect "Real Video". Cuando lo activo los fps caen en picado a 17 pero no aumenta el consumo de cpu ¿?

2) Se puede cargar un tzx sin autocarga, o es que el soporte de TZX no es completo o algo yo algo mal porque hay muchos que no me cargan.

3) Que significa el "%" que aparece al lado del modelo y de los fps.

A parte de esto chulisimas todas las opciones que tienes en el menu de depuración.

Un saludo Cesar ya me cuentas.

Juan Carlos
Avatar de Usuario
jcgamestoy
rst 0
 
Mensajes: 38
Registrado: Mie Abr 29, 2015 8:38 am

Re: Retro Virtual Machine v1.0.0 disponible!!!

Notapor chernandezba el Mar Sep 01, 2015 11:03 pm

jcgamestoy escribió::lol: :lol: :lol: :lol: por partes
chernandezba escribió:Hola Juan Carlos.

He probado tu emulador y debo decirte que la parte gráfica esta muy currada, funciona con fluidez y el consumo de cpu no es elevado para todo lo que hace.
Ahora bien, yo cambiaría dos cosas:

1) Al iniciar una máquina hay que grabar la configuración en disco... No hay una manera de pulsar el botón Add, escoger máquina y que no haya que grabarla? Es un tanto engorroso...
César


Ya pero hay que decirle donde guardar el archivo (en verdad es un Bundle de os vamos hablando en plata una carpeta) y dentro de este se guardan las snapshots, la configuración del teclado y el estado cuando se cierra el emulador.

La idea es que te puedas guardar estos archivos en una carpeta como Dropbox y sincronizar tus maquinas entre varios equipos.

Ademas esta pensado para la futura emulación del DIVIDE (y otras cosas que no puedo contar) para emularlo como realmente se utiliza en la máquina, es decir que el usuario pueda meter un cassette y flashear la rom del DIVIDE etc...


Si, todo esto parece lógico. Pero creo que debería haber una manera rápida de arrancar una maquina, todos los emuladores lo hacen así, seleccionas maquina y arranca. Pero bueno, solo es mi opinión... ;)


chernandezba escribió:2) Después de esto la máquina aparece creada pero apagada, con la pantalla con nieve.... El efecto está super chulo pero seria mejor que arrancase directamente. Sinceramente creo que soy muy torpe porque me ha costado encontrar la manera de hacer el "Power On"



Cierto lo estoy repensando y lo mejor es lanzar un mensaje que ponga "CMD+ENTER to power on" de todas formas se puede encender desde los controles de la parte de abajo o bien desde el menú machine.


Bueno esos controles no aparecen siempre... Creo que solo cuando dejas el ratón por ahí encima,no?


chernandezba escribió:Y veo que no soportas ningún formato de snapshot... excepto uno tuyo propio. Se echa mucho de menos sobretodo abrir archivos .z80, hay montón de juegos por ahi que solo están en ese formato. Además, si alguien ha grabado un snapshot en otro emulador, probablemente lo habrá hecho en formato .z80, y no podrá cargarlo en tu emulador. Ya me imagino que lo sabías de sobra, pero es algo que la gente te pedirá.
Eso si, en cintas tienes montones de formatos, y otros mas recientes, PZX y CSW. Por cierto, hay cintas publicadas en ese formato?


:lol: :lol: :lol: 60 páginas de manual y no os las leeis ninguno.

Si soporta Z80 y SNA tienes que entrar en la gestión de snapshots (cmd+8) darle al botón import y puedes importar las snapshots o exportarlas. Se quedaran guardadas dentro de esta máquina y desde aquí también puedes renombrarlas o eliminarlas.



Lógico, 60 páginas son demasiadas ;) creo que fui al menú de abrir, no pude seleccionar un archivo .z80, fui a la documentación, leí solo la sección de cintas y archivos soportados y no leí más allá...





Si en CSW hay un monton (basicamente es un Wav comprimido exacto de la cinta) y PZX esta el paquete de pruebas que hizo Patrik Rak que lo puedes bajar aquí:

http://zxds.raxoft.cz/pzx.html

PZX es una gozada casi tan simple como TAP y soporta TODO lo que puede hacer TZX pero sin tantos dolores de cabeza. Ojalá la gente se concienciará y pasaramos todo a este formato.


Bueno ahora mismo el 99% de juegos esta en WOS y ahí solo hay tap y tzx. Dudo que nadie vaya a convertirlos y mas teniendo en cuenta el nulo mantenimiento que tiene la página desde hace año y medio.



chernandezba escribió:Y otro comentario mas... poniendo el modo de video LCD-RGB, que creo que es el que se ve perfecto, los pixeles son ligeramente mas grandes de lo normal... Comparando con zxsp o ZEsarUX tus pixeles son ligeramente mas grandes, digamos que tu pantalla es mas o menos un 10% mas grande que en otros emuladores... Hay manera de ponerlo a escala 1:1 normal?

Por lo demás, gran emulador. Buen trabajo!

Saludos
César


Exactamente casi ese 10% y si si entras en las opciones de video justo debajo hay un botón que pone OVERSCAN aquí puedes configurarlo como quieras en la opción FULL PAL se muestra el frame completo 384x288 como haces tu en ZEsarUX pero yo lo hice así ya que en un CRT nunca podías ver la resolución PAL completa desde aquí lo puedes configurar al gusto de cada uno.




Ok lo probare. Pero creo que por defecto se debería ver a escala normal.




Y aprovechando ya me he leído el articulo... Brutal cuando lo asimile te cuento pero creo que no tendré muchos problemas en implementar todas las "features" del inves.

Y estoy haciendo pruebas con ZEsarUX 3.0 y me pasa como a ti, estoy acostumbrado al mío y no me aclaro con cosas:

1) Que es eso de "Real Video" y autodetect "Real Video". Cuando lo activo los fps caen en picado a 17 pero no aumenta el consumo de cpu ¿?



Con Real video des habilitado la pantalla se refresca de manera que usa menos cpu pero no soporta, por ejemplo, efectos rainbow. Esta pensada para equipos lentos.
En cuando a los FPS, en Mac OS, cuando lo habilitas, automáticamente te aumenta el valor de frameskip, valor que puedes luego poner a 0. Esto lo hice porque en mi anterior mac usaba demasiada cpu al activar real video y tenía que bajar el consumo...


2) Se puede cargar un tzx sin autocarga, o es que el soporte de TZX no es completo o algo yo algo mal porque hay muchos que no me cargan.




Esto es algo que he mejorado para la versión 3.1. Un tzx si es todo binario se puede cargar como cinta normal, siempre que el juego no use una rutina propia de carga. En caso de tzx de audio, turbo o de carga binaria propia, se debe meter como real tape



3) Que significa el "%" que aparece al lado del modelo y de los fps.



uso de cpu... Si te digo la verdad en mac ahora no se si te muestra el uso de cpu solo del proceso emulador o de todo el equipo. En Linux muestra el uso de cpu total



A parte de esto chulisimas todas las opciones que tienes en el menu de depuración.



Gracias. Te sugiero que pruebes los breakpoints condicionales...





Un saludo Cesar ya me cuentas.

Juan Carlos


Saludos
Cesar
----

ZEsarUX
ZX Second-Emulator And Released for UniX
https://sourceforge.net/projects/zesarux/
Avatar de Usuario
chernandezba
Sabreman
 
Mensajes: 319
Registrado: Mie Oct 17, 2007 5:26 pm

Re: Retro Virtual Machine v1.0.0 disponible!!!

Notapor jcgamestoy el Mar Sep 01, 2015 11:52 pm

chernandezba escribió:Con Real video des habilitado la pantalla se refresca de manera que usa menos cpu pero no soporta, por ejemplo, efectos rainbow. Esta pensada para equipos lentos.
En cuando a los FPS, en Mac OS, cuando lo habilitas, automáticamente te aumenta el valor de frameskip, valor que puedes luego poner a 0. Esto lo hice porque en mi anterior mac usaba demasiada cpu al activar real video y tenía que bajar el consumo...


Ahora lo pillo, ósea que utilizas dos rutinas para "dibujar" la pantalla una rápida y otra precisa. Lo he activado le he quitado el Frameskip y va muy bien.

Lo que si he visto en que en los tests de Richard:

http://www.zxspectrum4.net/op_timing.php

Tienes alguna problema con la memoria en contienda. Esto si es importante yo hasta que no los pase todos habian algunos tzx que no cargaban como deberían (El puto bubble bobble cargaba pero algunos gráficos salían corruptos).

Veo que no te has liado tampoco con la emulación del FDC765 mmm ya veras ya que pesadilla.

chernandezba escribió:Ok lo probare. Pero creo que por defecto se debería ver a escala normal.


Bueno teniendo en cuenta que fuse usa 320x240 y se come medio border me quedo entre medio (por defecto).

Y otra cosa que te quiero comentar llevo todo el día buscando donde encontré un .tap que tengo y no consigo recordarlo. Creo que fue en WOS pero no me acuerdo.

El tap en cuestion es una demo de no se quien que aprovechando el snow bug conseguía hacer un scroll por hardware (si como suena) de la pantalla.

Yo lo emulo bastante bien pero no estoy 100% seguro de que la emulación del snow bug este bien. (Más teniendo en cuenta que no tengo ningún spectrum para probarlo).

Puedes verlo en este video de youtube:

https://www.youtube.com/watch?v=cEE7t6t-cQo

A partir del minuto 2:36

Por favor si alguien a leido algo de esto y se acuerda que me refresque la memoria. Y si te interesa el tap lo tengo aquí ya me dices como te lo mando.
Avatar de Usuario
jcgamestoy
rst 0
 
Mensajes: 38
Registrado: Mie Abr 29, 2015 8:38 am

Re: Retro Virtual Machine v1.0.0 disponible!!!

Notapor chernandezba el Mie Sep 02, 2015 9:51 am

jcgamestoy escribió:
chernandezba escribió:Con Real video des habilitado la pantalla se refresca de manera que usa menos cpu pero no soporta, por ejemplo, efectos rainbow. Esta pensada para equipos lentos.
En cuando a los FPS, en Mac OS, cuando lo habilitas, automáticamente te aumenta el valor de frameskip, valor que puedes luego poner a 0. Esto lo hice porque en mi anterior mac usaba demasiada cpu al activar real video y tenía que bajar el consumo...


Ahora lo pillo, ósea que utilizas dos rutinas para "dibujar" la pantalla una rápida y otra precisa. Lo he activado le he quitado el Frameskip y va muy bien.

Si, de manera resumida:
-Sin Real Video. A cada 50 Hz leo la memoria de pantalla (ram 5 o 7) y la muestro en la ventana tal cual. Y dibujo el borde con el color del puerto FEH
-Con Real Video. Cada scanline se va guardando en un buffer de pantalla y se vuelca todo el buffer en la ventana cada 50 Hz. Por eso le llamo "Real", porque es tal y como se ve un spectrum real.

Lo que si he visto en que en los tests de Richard:

http://www.zxspectrum4.net/op_timing.php

Tienes alguna problema con la memoria en contienda. Esto si es importante yo hasta que no los pase todos habian algunos tzx que no cargaban como deberían (El puto bubble bobble cargaba pero algunos gráficos salían corruptos).

Gracias, lo se :) Es por eso que la demo overscan en 48k no sale del todo perfecta. Hay un byte de atributos en la primera linea que no sale coordinado. Estos errores de contienda o de ciclos de cpu son muy dificiles de encontrar, o lo haces bien a la primera o hacer debug de eso es una pesadilla. Yo he encontrado algunos de esos bugs por casualidad.
Lo del bubble bobble no me suena... si que recuerdo ver gráficos corruptos pero en modo Inves... tienes mas detalles de eso? Para además ver si mi emulador los muestra bien o no...

Veo que no te has liado tampoco con la emulación del FDC765 mmm ya veras ya que pesadilla.


Ni creo que me lie nunca. Quien usa discos de +3? Es como preguntar.... quien usa microdrives? Creo que el esfuerzo de implementar la emulación de eso no merece la pena. Siempre tienes la opción de recurrir al código fuente de fuse, allí hay un archivo .c con la emulación del floppy, puedes hacer casi un copy-paste y meterlo en mi emulador. Lo iba a hacer un dia pero al final pasé...

chernandezba escribió:Ok lo probare. Pero creo que por defecto se debería ver a escala normal.


Bueno teniendo en cuenta que fuse usa 320x240 y se come medio border me quedo entre medio (por defecto).


No me refiero al tamaño del border. Me refiero al tamaño de los pixeles tal cual. Digamos que con zoom 2 (en mi emulador o con zxsp por ejemplo) se ven claramente puntos de 2x2 pixeles. En tu emulador esos puntos son algo mas grandes. Es facil de comparar, arrancas tu emulador y otro y en el copyright de sinclair tus letras son algo mas grandes...

Y otra cosa que te quiero comentar llevo todo el día buscando donde encontré un .tap que tengo y no consigo recordarlo. Creo que fue en WOS pero no me acuerdo.

El tap en cuestion es una demo de no se quien que aprovechando el snow bug conseguía hacer un scroll por hardware (si como suena) de la pantalla.

Yo lo emulo bastante bien pero no estoy 100% seguro de que la emulación del snow bug este bien. (Más teniendo en cuenta que no tengo ningún spectrum para probarlo).

Puedes verlo en este video de youtube:

https://www.youtube.com/watch?v=cEE7t6t-cQo

A partir del minuto 2:36

Por favor si alguien a leido algo de esto y se acuerda que me refresque la memoria. Y si te interesa el tap lo tengo aquí ya me dices como te lo mando.


Eso es muy muy raro. Que yo sepa el snow effect no hace eso ni por asomo. Todas las descripciones del snow effect, pese a ser algo crípticas, jamás hablan de mover bloques de memoria (necesarios para hacer scroll). Creo que es un fake en toda regla.
Y si, me interesa el tap, mándamelo si quieres a mi mail personal. Lo encontrarás en el archivo HISTORY de mi emu (no lo digo por aqui para evitar spammers-bots)

Gracias

César
----

ZEsarUX
ZX Second-Emulator And Released for UniX
https://sourceforge.net/projects/zesarux/
Avatar de Usuario
chernandezba
Sabreman
 
Mensajes: 319
Registrado: Mie Oct 17, 2007 5:26 pm

Re: Retro Virtual Machine v1.0.0 disponible!!!

Notapor chernandezba el Mie Sep 02, 2015 10:00 am


Y otra cosa que te quiero comentar llevo todo el día buscando donde encontré un .tap que tengo y no consigo recordarlo. Creo que fue en WOS pero no me acuerdo.

El tap en cuestion es una demo de no se quien que aprovechando el snow bug conseguía hacer un scroll por hardware (si como suena) de la pantalla.

Yo lo emulo bastante bien pero no estoy 100% seguro de que la emulación del snow bug este bien. (Más teniendo en cuenta que no tengo ningún spectrum para probarlo).

Puedes verlo en este video de youtube:

https://www.youtube.com/watch?v=cEE7t6t-cQo

A partir del minuto 2:36

Por favor si alguien a leido algo de esto y se acuerda que me refresque la memoria. Y si te interesa el tap lo tengo aquí ya me dices como te lo mando.


Aqui hay algo que no entiendo...
-Ese video es de tu emulador
-Se ve claramente que hace scroll de pantalla
-No veo (o no consigo ver) el snow effect

Entonces, no entiendo porque dices que es un scroll por hardware que no sabes como funciona, si tu emulador lo hace...
Y además no le veo relación aquí con el snow effect.

Yo veo simplemente un scroll de pantalla, nada mas...

Saludos
César
----

ZEsarUX
ZX Second-Emulator And Released for UniX
https://sourceforge.net/projects/zesarux/
Avatar de Usuario
chernandezba
Sabreman
 
Mensajes: 319
Registrado: Mie Oct 17, 2007 5:26 pm

Re: Retro Virtual Machine v1.0.0 disponible!!!

Notapor jcgamestoy el Mie Sep 02, 2015 11:11 am

No, no me he explicado bien.

De fake nada lo hace y me costo emularlo un huevo. Lo que no recuerdo es en que foro lo vi, cuando estaba implementando el snow lo encontré y creía que lo había guardado en favoritos pero no lo encuentro.

Los "pixeles" extraños que se ven en el snow effect son debidos a que cuando se hace el refresco de ram se corrompe la dirección no el dato que lee la ULA para mostrar en pantalla. Básicamente se ponen los 7 bits bajos del registro r en las 7 direcciones bajas del bus de direcciones.

Con lo cual la ULA lee de otra posición de la pantalla. El tap este muy inteligentemente va reiniciando el registro r (supongo no he mirado el codigo) de manera que el snow bug lee de las direcciones de pantalla que le interesan al autor de esto.

Es brutal, lo que no se y es eso lo que preguntaba es como se ve en un Spectrum Real. Me interesa muchísimo verlo en marcha en un 48k. Por favor alguien que me lea si puede grabar un video de esto corriendo y subirlo a Youtube se lo agradecería enormemente.

El tap lo podeis descargar aqui:

https://www.dropbox.com/s/oj1cet0mb1ro3jz/snow.tap?dl=0

Pero recuerdo no es mio. Si alguien lo ha visto también en la red que me recuerde donde.

Otra cosa en cuanto al snow bug veo que en ZEsarUX haces que el ordenador se cuelgue a los pocos segundos.

Esto creo que no es del todo correcto, los 48k creo que no se cuelgan. Y los de 128k se cuelgan solo cuando la contienda es con I>0xc0 y hay unos modelos de +2 que usan otro PAL que no se cuelgan.

Esto me lo pasaron en el foro de los mojontwins creo cuando discutiamos el snow effect en la primera version de Ninjajar.

http://velesoft.speccy.cz/zx/umbrella/umbrella.htm

Un placer discutir contigo todas estas cuestiones técnicas por aqui. Seguro que podemos aprender mucho el uno del otro.

Un saludo

Juan Carlos
Avatar de Usuario
jcgamestoy
rst 0
 
Mensajes: 38
Registrado: Mie Abr 29, 2015 8:38 am

Re: Retro Virtual Machine v1.0.0 disponible!!!

Notapor jcgamestoy el Mie Sep 02, 2015 11:51 am

Avatar de Usuario
jcgamestoy
rst 0
 
Mensajes: 38
Registrado: Mie Abr 29, 2015 8:38 am

Re: Retro Virtual Machine v1.0.0 disponible!!!

Notapor chernandezba el Mie Sep 02, 2015 12:07 pm

Puf tela... rectifico, no será fake, con esto que me dices... ;)

Lo he probado con mi emulador y aparece mi snow, pero nada que ver con un scroll...

Te agradecería enormemente si me pasaste el método que utilizas tu para mostrarlo ;)

En cuanto al reset, yo leí por ahí que el Spectrum 48k se acababa reseteando al cabo de unos segundos, pero no se si sucedía siempre, y/o si pasaba con cualquier ULA...

Gracias
César
----

ZEsarUX
ZX Second-Emulator And Released for UniX
https://sourceforge.net/projects/zesarux/
Avatar de Usuario
chernandezba
Sabreman
 
Mensajes: 319
Registrado: Mie Oct 17, 2007 5:26 pm

Siguiente

Volver a Emulación y preservación

¿Quién está conectado?

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

cron