Nueva version emulador ZEsarUX-4.1

Software para o relacionado con el core ZX Spectrum / Software for or related to the ZX Spectrum core
Avatar de Usuario
Hark0
Mensajes: 683
Registrado: 27 Sep 2015, 00:31
Ubicación: Cornellà de Llobregat - BCN
Contactar:

Re: Nueva version emulador ZEsarUX-4.1

Mensaje por Hark0 » 18 Jul 2016, 10:59

Collons nen!!!

No paras!!!

:plasplas:
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA.

Avatar de Usuario
Uto
Mensajes: 1394
Registrado: 17 Dic 2015, 16:39

Re: Nueva version emulador ZEsarUX-4.1

Mensaje por Uto » 18 Jul 2016, 11:22

chernandezba escribió:
Uto escribió:
Pero bueno,lo dicho, es sugerencia, supongo que tienes muchas cosas en cola aún :-)
Unas cuantas
https://sourceforge.net/p/zesarux/code/ ... /tree/TODO

;)
Carajo! unas cuantas sí :D

Avatar de Usuario
Uto
Mensajes: 1394
Registrado: 17 Dic 2015, 16:39

Re: Nueva version emulador ZEsarUX-4.1

Mensaje por Uto » 28 Jul 2016, 18:52

Hola!

Se me ha ocurrido probar la emulación de Kempston Mouse con ZesarUX, pero algo debo hacer mal. Como tengo ni idea de como va, me puse a buscar por internet, hasta llegar a esto:

http://www.benophetinternet.nl/hobby/kmt.htm

Ahí hay un apartado de "reading PS/2 mouse", que habla de tres puertos, pero el caso es que ZesarUX, con emulación de Zx-Uno activada, DivMMC y kempston Mouse, solo devuelve 0 en esos tres puertos.

Nota: se que puedo usar los registros de ZX-UNo para leer el PS/2 a pelo, pero la idea era leerlo como un Kempston mouse.

¿Se me pasa algo por alto?

Avatar de Usuario
chernandezba
Mensajes: 841
Registrado: 02 Oct 2015, 23:35

Re: Nueva version emulador ZEsarUX-4.1

Mensaje por chernandezba » 29 Jul 2016, 08:50

Hola

Ahora no estoy seguro, pero creo que los puertos de divmmc entran en conflicto con el kempston mouse. Por tanto, antes de hacer pruebas, desactiva el divmmc, luego activa la emulación de kempston mouse desde hardware settings (no viene activada por defecto), y si quieres prueba los programas que hay en la carpeta /media/spectrum/mouse/ que sí que funcionan ;)

Saludos
César
----

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

Avatar de Usuario
chernandezba
Mensajes: 841
Registrado: 02 Oct 2015, 23:35

Re: Nueva version emulador ZEsarUX-4.1

Mensaje por chernandezba » 29 Jul 2016, 08:57

Por cierto los puertos de kempston mouse no son valores fijos, aunque sí que hay unos valores típicos, pero debe responder a cualquier puerto que siga el estándard, que puedes ver en la linea 4885 del archivo operaciones.c de mi código:

//IN 64479 - return X axis (0-255)
//IN 65503 - return Y axis (0-255)
//IN 64223 - return button status
//D0 - right button
//D1 - left button
//D2-D7 - not used

//From diagram ports

//X-Axis = port 64479 xxxxx011 xx0xxxxx
//Y-Axis = port 65503 xxxxx111 xx0xxxxx
//BUTTONS = port 64223 xxxxxx10 xx0xxxxx


Viendo el link que has pasado y los puertos que comenta:

"...and the PS/2 mouse can be read using ports 15327, 16351 and 15071."

echando un vistazo rápido a esos puertos y los bits implicados deben responder correctamente a las lecturas del kempston.

Yo probaría primero con las demos que te he comentado, si no funciona, desactiva el divmmc, y debería responder.
Y luego ya si quieres puedes hacer lecturas de los puertos manualmente

Saludos
----

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

Avatar de Usuario
Uto
Mensajes: 1394
Registrado: 17 Dic 2015, 16:39

Re: Nueva version emulador ZEsarUX-4.1

Mensaje por Uto » 29 Jul 2016, 09:49

Vale, funciona perfectamente, había un bug en el programa que hice para probarlo, pero funciona bien. Con DivMMC activo también, aunque he probado DivMMC sobre un Spectrum normal, no sobre ZX-Uno :-)

Avatar de Usuario
Uto
Mensajes: 1394
Registrado: 17 Dic 2015, 16:39

Re: Nueva version emulador ZEsarUX-4.1

Mensaje por Uto » 20 Sep 2016, 11:11

Hola!

Me he encontrado con una "incompatibilidad" de ZesarUX con ZX-Uno, que además creo que es intencionada, pero que creo que a la larga puede afectar a aplicaciones. Se trata del COREID: en ZesarUX el COREID devuelto es "ZesarUX Z80" mientras que un ZxUno real devuelve un core que indica efectivamente el número de versión del core y fecha del mismo.

Entiendo que al final es un compromiso, pero ahora mismo ZesarUX soporta - en la medida que un emulador puede - las funcionalidades del core 22y por tanto creo que debería reportar dicho COREID.

¿Por qué? Porque puede haber programas o juegos que sabiendo que dependen de una funcionalidad soportada a partir del core X, comprueben el COREID para ver si estamos en una versión igual o superior.

Es decir, imaginad que a partir del CORE 40 aparece un nuevo modo de video y hay un juego que lo utiliza. Lo lógico sería que el juego comprobara que hay core 40 o más, y sino diga que tienes que actualizar el ZX-Uno. Otra opción es lanzarlo y que no funcione, pero es menos profesional.

Algo parecido es lo que iba a hacer con ZXUC en el momento de meterle soporte de las nuevas funcionalidades del core 23, detectar el COREID y solo mostrar las nuevas funcionalidades si el core es igual o mayor a 23. Así según el core que tienes te salen las opciones que puedes cambiar. Con ZesarUX, no puedo hacerlo, o tendría que hacer la ñapa de que si detecto "ZesarUX Z80" considerar que es core 22, pero entonces se queda en core 22 para siempre.

¿Qué opinas César?

Avatar de Usuario
Alki
Mensajes: 129
Registrado: 13 Sep 2016, 17:50

Re: Nueva version emulador ZEsarUX-4.1

Mensaje por Alki » 20 Sep 2016, 13:12

Gracias chernandezba, vaya curro!!

Avatar de Usuario
chernandezba
Mensajes: 841
Registrado: 02 Oct 2015, 23:35

Re: Nueva version emulador ZEsarUX-4.1

Mensaje por chernandezba » 20 Sep 2016, 14:47

Buena pregunta...

La verdad es que cuando agregué el coreid, inicialmente el identificador era mucho mas largo y provocaba extraños "efectos visuales" tanto en el arranque de la bios como en zxunocfg. Luego acorté el nombre y ya se corrigió.

Tienes razón con esto, si no indico algún número de versión que se corresponda con el core del zx-uno no tienes manera de saber qué características del zx-uno implementa. Creo igualmente que debería retornar el texto "ZEsarUX" en parte del mensaje para que el programa que lo detecte sepa que está en emulación y no en máquina real. Quizá algo así como "ZEsarUX T22" seria algo razonable.

Eso sí, debería haber un historial de cambios (que no se si está) con la relación de versiones del core del zx-uno y las características que implementa. Porque por ejemplo he agregado recientemente el bit "DISD" del registro devcontrol, pero no se a partir de qué versión del core lo agregaron. Esto es importante para que yo establezca el texto del Coreid de manera coherente según lo que emulo.

Por otra parte, sólo remarcar aquí, para que no haya confusión (que también comento en el FAQ):
ZEsarUX no emula la FPGA del zx-uno. ZEsarUX emula lo siguiente cuando seleccionas máquina zx-uno:
-CPU Z80
-Normal hardware de un Spectrum +2A: Audio Chip, Beeper, Tape, etc...
-Memoria adicional del ZX-Uno
-SPI Flash
-DivMMC
-256 registros internos del zx-uno: Masterconf, Mastermapper, etc
-Otras características adicionales: ULAplus...

Por tanto no es posible probar diferentes "cores" como tal que se portan a zx-uno, por ejemplo no puedes probar el core de master system en ZEsarUX

Saludos
----

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

Avatar de Usuario
chernandezba
Mensajes: 841
Registrado: 02 Oct 2015, 23:35

Re: Nueva version emulador ZEsarUX-4.1

Mensaje por chernandezba » 20 Sep 2016, 14:48

Alki escribió:Gracias chernandezba, vaya curro!!
Muchas gracias :gracias!:
----

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

Responder