ZEsarUX en OpenBSD

Software para o relacionado con el core ZX Spectrum / Software for or related to the ZX Spectrum core
Avatar de Usuario
mapache
Mensajes: 272
Registrado: 15 Dic 2016, 22:24

ZEsarUX en OpenBSD

Mensaje por mapache » 13 Sep 2017, 21:58

Hola, he conseguido compilar y comprobar que funciona ZEsarUX en OpenBSD haciendo algunos cambios. No soy programador y he probado 'a martillazos' conforme los errores que daba el compilador.

Lo que he hecho es definir PATH_MAX y NAME_MAX (el primero con el valor que me ha recomendado su autor y este último con un valor arbitrario sólo para comprobar si compila) y eliminar un #include <stdio.h> en la línea 565 de m68kcpu.c. Con esto compila bien en este sistema operativo, a nivel de funcionamiento va muy lento, desconozco si ocurre en la versión estable.

Parto de la última versión actual (5.1): zesarux-code-5a9ee3b86162ef3e1e5576ec1c1c10a1449503b4

z88.h

--- z88.h Wed Sep 13 00:55:47 2017
+++ /home/mapache/z88.h Wed Sep 13 21:52:41 2017
@@ -22,6 +22,8 @@
#ifndef Z88_H
#define Z88_H

+#define PATH_MAX 1024
+#define NAME_MAX 18

#include <dirent.h>
#if defined(__APPLE__)

cpu.h

--- cpu.h Wed Sep 13 00:55:47 2017
+++ /home/mapache/cpu.h Wed Sep 13 21:52:43 2017
@@ -22,6 +22,8 @@
#ifndef CPU_H
#define CPU_H

+#define PATH_MAX 1024
+
#include "compileoptions.h"

//#define EMULATOR_VERSION "5.1"

m68kcpu.c

--- m68kcpu.c Wed Sep 13 00:55:47 2017
+++ /home/mapache/m68kcpu.c Wed Sep 13 21:52:47 2017
@@ -562,7 +562,8 @@
CALLBACK_INSTR_HOOK = callback ? callback : default_instr_hook_callback;
}

-#include <stdio.h>
+
+/*#include <stdio.h>*/
/* Set the CPU type. */
void m68k_set_cpu_type(unsigned int cpu_type)
{



Este último include que he eliminado soluciona este fallo al compilar:
In file included from /usr/include/stdio.h:46,
from m68kcpu.c:565:
/usr/include/sys/types.h:58: error: duplicate 'unsigned'
/usr/include/sys/types.h:58: error: two or more data types in declaration specifiers
/usr/include/sys/types.h:58: warning: empty declaration

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

Re: ZEsarUX en OpenBSD

Mensaje por chernandezba » 14 Sep 2017, 13:04

Genial! Así ya compila todo? Dime que tal te va... rendimiento, velocidad, etc... funciona el sonido? Si pudieses generar capturas de pantalla y/o vídeos estaría perfecto

Gracias!
----

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

Avatar de Usuario
mapache
Mensajes: 272
Registrado: 15 Dic 2016, 22:24

Re: ZEsarUX en OpenBSD

Mensaje por mapache » 14 Sep 2017, 13:41

Compila y funciona aunque extremadamente lento al punto de ser inusable. El sistema operativo trae la herramienta ktrace para analizar con más detalle el funcionamiento aunque soy manco en cuanto a programación y no me he puesto a ver cómo se usa. Aquí ZEsarUX no tiene sonido (al igual que fuse), OpenBSD usa su propia versión de X Windows: https://xenocara.org/ , que va más lento que las X en Linux.

OpenBSD se esfuerza en el cumplimiento de normas y estándares (lo que lo hace muy útil para desarrollo, ya que si funciona aquí se puede portar fácil a otros sistemas tipo Unix), por lo que el hecho de que compile y funcione es un éxito. Para servidores y para seguridad va genial, aunque para temas de interfaz con el usuario es bastante espartano (aunque las más comunes aplicaciones unix funcionan sin problema). A mi me sirve perfectamente para usar firefox, mplayer y lo típico de un escritorio ligero.

Con Fuse si que puedo jugar con el emulador de spectrum con relativamente buen timing aunque sin sonido.

No sé como grabar videos del escritorio. Este sistema tiene la "amigabilidad" justa con el tema multimedia, se puede grabar el escritorio pero lo miré hace tiempo y es un lío.
Adjuntos
ZEsarUX en OpenBSD con el juego Astro Marine Corps.
ZEsarUX en OpenBSD con el juego Astro Marine Corps.

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

Re: ZEsarUX en OpenBSD

Mensaje por chernandezba » 14 Sep 2017, 16:53

Hola

En qué hardware lo ejecutas? PC? Velocidad CPU?

Aquí puedes probar varias cosas:

-Librería SDL. Existe para Openbsd? ZEsarUX tiene soporte para SDL 1 y 2 y quizá vaya mejor
-Aumentar frameskip en ZEsarUX. En settings->GUI. Si pones por ejemplo valor 1, se forzará a 25 FPS. Si pones 2, a 16 FPS, etc. Veo en la captura de pantalla que te indica 10 FPS, esto es porque el propio emulador intenta hacer autoframeskip cuando la cpu se queda corta. Prueba con valores de 4 o 5 frameskip, o mas, a costa de perder FPS puedes ganar velocidad en emulador

En cuanto al sonido, qué tipos de dispositivos soporta BSD? ZEsarUX soporta incluso el "viejo" dsp/oss, y también alsa , pulse, y sdl

Ya me dirás
Saludos
----

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

Avatar de Usuario
mapache
Mensajes: 272
Registrado: 15 Dic 2016, 22:24

Re: ZEsarUX en OpenBSD

Mensaje por mapache » 14 Sep 2017, 17:03

Por CPU no hay problema, es un doble Xeon E5620 a 2.40GHz

Sí que hay SDL, y me da que puede solucionarlo. En cuando saque un rato lo pruebo y pongo como va, sería activar la opción --enable-sdl2 al hacer el configure simplemente?

OpenBSD usa sndiod; oss, alsa y pulse son específicos de Linux (OSS3 suena mucho mejor que ALSA en las pruebas que hice hace años). En teoría el sonido debería funcionar (aunque fuse tampoco va) ya que los programas como firefox, chrome, mpg123 o mplayer funcionan sin estar específicamente programados para OpenBSD.

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

Re: ZEsarUX en OpenBSD

Mensaje por chernandezba » 14 Sep 2017, 17:17

SDL2 lo tengo aún un poco beta, de ahí que haya que indicarlo a mano. Si puedes usar SDL1, mejor

Si en sonido no soporta ni oss, ni alsa ni pulse, no se va a escuchar. Pero con SDL también tienes soporte de sonido

Es muy extraño que te dé ese rendimiento tan pobre con una cpu tan potente
----

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

serbalgi
Mensajes: 9
Registrado: 29 Jun 2016, 23:55

Re: ZEsarUX en OpenBSD

Mensaje por serbalgi » 15 Sep 2017, 00:23

mapache escribió:OpenBSD usa sndiod; oss, alsa y pulse son específicos de Linux (OSS3 suena mucho mejor que ALSA en las pruebas que hice hace años). En teoría el sonido debería funcionar (aunque fuse tampoco va) ya que los programas como firefox, chrome, mpg123 o mplayer funcionan sin estar específicamente programados para OpenBSD.
Intuyo que Fuse puede sacar sonido en OpenBSD vía libao:
http://ports.su/emulators/fuse

Avatar de Usuario
mapache
Mensajes: 272
Registrado: 15 Dic 2016, 22:24

Re: ZEsarUX en OpenBSD

Mensaje por mapache » 15 Sep 2017, 11:05

¿Puedes decirme como compilar ZEsarUX con SDL1? en configure sólo veo la opción "--enable-sdl2". Las X en OpenBSD son más lentas que en Linux.

Gracias, apunto lo de fuse para probarlo. Más que nada quiero el emulador para desarrollo, y para esta tarea ZEsarUX por lo que he visto es ideal. Otros programas que he conseguido compilar son pasmo y z88dk, estos sin hacer ningún cambio.

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

Re: ZEsarUX en OpenBSD

Mensaje por chernandezba » 15 Sep 2017, 12:59

No hay que indicarle nada. Si las detecta, las usará, al igual que otras librerías. Recuerda que tienes que instalar las librerías binarias y las de desarrollo, en openbsd no se como va, pero en debian por ejemplo tienes que instalar la libsdl y libsdl-devel
----

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

Avatar de Usuario
mapache
Mensajes: 272
Registrado: 15 Dic 2016, 22:24

Re: ZEsarUX en OpenBSD

Mensaje por mapache » 15 Sep 2017, 13:18

Aquí los paquetes incluyen la parte "devel". Acabo de fijarme en que configure no detecta el SDL. Buscando, está en este directorio: /usr/local/include/SDL

Responder