Nueva beta ZEsarUX - preparando para versión estable

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 beta ZEsarUX - preparando para versión estable

Mensaje por Hark0 » 27 Dic 2016, 10:15

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

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

Re: Nueva beta ZEsarUX - preparando para versión estable

Mensaje por Uto » 02 Ene 2017, 00:29

Un par de cosillas que le veo a ZEsarUX, y que planteo por si tienen "arreglo":

1) Cuando arrancas el ejecutable de ZEsarUX desde otro directorio, da error. Por ejemplo:

Código: Seleccionar todo

user@hotst $ ./ZEsarUX-4.2/zesarux 
ZEsarUX - ZX Second-Emulator And Released for UniX
Copyright (C) 2013 Cesar Hernandez Bano

This program comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions

ZEsarUX Version: 4.2 Date: 5 December 2016 - Rescue on Fractalus edition

Detected SoundBlaster at A220 I5 D1 T2 ... Just kidding ;) 

Error: Unable to open rom file 48.rom

Entiendo que es que no pilla la carpeta correcta, porque busca "./48.rom" en lugar de "<zesarux path>/48.rom". Esto que parece una tontería es bastante incómodo, porque obliga a cualquier script que te hagas para probar lo que estás haciendo (desarrollo) a cambiar a su directorio y luego volver a cambiar al de los fuentes. Quizá haya alguna solución que no he caido :-?

2) Las betas y su mensaje de "ojo que esto es una beta" con pausa es totalmente anti-uso. Si estás usando ZEsarUX para desarrollar y lo abres a menudo esa pausa es tran frustrante que acabas volviendo a la versión estable, con lo cual no pruebas las beta. Entiendo por qué se pone, pero quizá podría ponerse algo de otro modo que haga saber que es una beta sin necesidad de meter un retardo. Se me ocurre que donde pones la versión ("Rescue on fractalus editio") podrías poner "Beta version: use at your own risk" en rojo.

En fin, me recuerda a esos rollos anti-piratería que ponen en los DVDs y que te tienes que tragar, y que solo afectan al que compra el DVD porque el que tiene una copia pirata no lo ve, pues igual: los que prueban (probamos) la beta nos vemos castigados con lo cual dan ganas de seguir con la estable (y por tanto no probar la beta) :-D


Finalmente, y perdón por reaprovechar el hilo pero.. ¿como se montan las imágenes .mmc en linux? Ya se que con mount pero.. ¿qué parámetros?

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

Re: Nueva beta ZEsarUX - preparando para versión estable

Mensaje por chernandezba » 02 Ene 2017, 11:54

Uto escribió:Un par de cosillas que le veo a ZEsarUX, y que planteo por si tienen "arreglo":

1) Cuando arrancas el ejecutable de ZEsarUX desde otro directorio, da error. Por ejemplo:

Código: Seleccionar todo

user@hotst $ ./ZEsarUX-4.2/zesarux 
ZEsarUX - ZX Second-Emulator And Released for UniX
Copyright (C) 2013 Cesar Hernandez Bano

This program comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions

ZEsarUX Version: 4.2 Date: 5 December 2016 - Rescue on Fractalus edition

Detected SoundBlaster at A220 I5 D1 T2 ... Just kidding ;) 

Error: Unable to open rom file 48.rom

Entiendo que es que no pilla la carpeta correcta, porque busca "./48.rom" en lugar de "<zesarux path>/48.rom". Esto que parece una tontería es bastante incómodo, porque obliga a cualquier script que te hagas para probar lo que estás haciendo (desarrollo) a cambiar a su directorio y luego volver a cambiar al de los fuentes. Quizá haya alguna solución que no he caido :-?
La solución rápida en tu caso es copiar 48.rom al directorio actual.
El emulador tiene diferentes rutas para buscar las roms y otros archivos necesarios, una es la ruta actual, otra es la ruta de instalación. Si no lo has instalado, lo buscará en la ruta actual.

2) Las betas y su mensaje de "ojo que esto es una beta" con pausa es totalmente anti-uso. Si estás usando ZEsarUX para desarrollar y lo abres a menudo esa pausa es tran frustrante que acabas volviendo a la versión estable, con lo cual no pruebas las beta. Entiendo por qué se pone, pero quizá podría ponerse algo de otro modo que haga saber que es una beta sin necesidad de meter un retardo. Se me ocurre que donde pones la versión ("Rescue on fractalus editio") podrías poner "Beta version: use at your own risk" en rojo.

En fin, me recuerda a esos rollos anti-piratería que ponen en los DVDs y que te tienes que tragar, y que solo afectan al que compra el DVD porque el que tiene una copia pirata no lo ve, pues igual: los que prueban (probamos) la beta nos vemos castigados con lo cual dan ganas de seguir con la estable (y por tanto no probar la beta) :-D
Bueno al final es cuestión de gustos. No creo que una pausa de 3 segundos sea frustrante como dices.
La pausa está porque quiero asegurarme que el usuario lo lea. Créeme que más de uno se me ha quejado de fallos que aparecen en las betas, como si las betas tuviesen que ser algo estable por que si, y de esa manera aviso al usuario de que es una beta y que no se me queje por eso. Las betas están para que las probéis, y si alguien amablemente me notifica de errores, le estoy muy agracecido. Pero recibir quejas por que tienen fallos, por ahí no paso.
Insisto, la pausa no la quito. Quien no la quiera, que modifique el código fuente (archivo cpu.c, linea 4944 del último código fuente)


Finalmente, y perdón por reaprovechar el hilo pero.. ¿como se montan las imágenes .mmc en linux? Ya se que con mount pero.. ¿qué parámetros?
En el archivo docs/esxdos_nuevo_disco.txt hay una mini-guia. Básicamente se trata de hacerlo con losetup, indicando un offset para saltarse la tabla de particiones (que normalmente la hay).
Si no hubiese tabla de particiones, bastaria con un mount indicando como opción -o loop tal cual
----

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

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

Re: Nueva beta ZEsarUX - preparando para versión estable

Mensaje por Uto » 02 Ene 2017, 12:31

chernandezba escribió: La solución rápida en tu caso es copiar 48.rom al directorio actual.
El emulador tiene diferentes rutas para buscar las roms y otros archivos necesarios, una es la ruta actual, otra es la ruta de instalación. Si no lo has instalado, lo buscará en la ruta actual.
Ah, ya veo, instalada está y ya funciona (en linux, en Windows y OSX ya probaré luego). Gracias!

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

Re: Nueva beta ZEsarUX - preparando para versión estable

Mensaje por Uto » 02 Ene 2017, 19:51

César, ¿como haces para compilar la versión Windows?

He estado retocando algunas cosas para ponerlas a mi gusto (básicamente me he puesto la NMI, hardreset,softreset y reloadMMC en una tecla cada uno) y en linux lo he compilado sin problemas, pero no tengo claro ni por donde empezar para compilar para Windows.

¿Lo compilas desde windows o desde linux?

He intentado desde linux:
make -f Makefile_mingw pero me da errores (MAX_PATH no declarado) y además en el makefile veo referencias a /c/SDL que me preocupan :-?

¿Alguna pista?

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

Re: Nueva beta ZEsarUX - preparando para versión estable

Mensaje por chernandezba » 02 Ene 2017, 20:48

Hola

Entiendo que me hablas de la última versión de código (la 4.3 beta)

Normalmente la versión de Linux la compilas asi:
./configure (con sus opciones, si corresponde)
make

En cambio la de Windows es mas o menos esto:
make -f Makefile_mingw

El script de configure es el encargado de generar el Makefile. Dado que es un script de Unix, en Windows no chuta, por eso dependo de un Unix para generar el makefile de Windows (que además tiene otro nombre, es el Makefile_mingw)
Normalmente ese makefile lo tengo subido en el repositorio y sincronizado con los últimos cambios. Pero últimamente, al agregar el core del QL, el proceso de compilación es algo diferente, y por tanto el Makefile necesario para Windows no está sincronizado con los últimos cambios.

Por tanto, o esperas a que genere el Makefile correspondiente, que puede que lo haga en unos dias ... :silbando: o bien,
prueba a generarlo por ti mismo, en el archivo DEVELOPMENT está mas o menos explicado, busca donde dice:

**Windows
Generar este binario de Windows, mingw:
ZEsarUX_Windows-version.zip


Y sigue los pasos que te va indicando


Si por el contrario me hablas de la última 4.2 estable, sólo debes hacer los últimos pasos:
cmd.exe
set PATH=%PATH%;c:\mingw\bin;c:\mingw\msys\1.0\bin
del compileoptions.h
ren compileoptions_mingw.h compileoptions.h
make -f Makefile_mingw clean
make -f Makefile_mingw

copiar SDL.dll aqui:
copy c:\mingw\sdl\bin\SDL.dll .

y probar a ejecutar:

desde consola:
zesarux.exe


Saludos
----

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

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

Re: Nueva beta ZEsarUX - preparando para versión estable

Mensaje por Uto » 02 Ene 2017, 22:14

Ok, entendido. Lo de Linux lo tenía, lo que pasa es que al generar desde linux el Makefile_mingw también, pensé que tendría que compilarlo desde linux también (compilación cruzada). Veo que no, es desde Windows.

Y sí es la 4.3 beta... o más, porque es lo que me he bajado de Sourceforge, que lo mismo ya tiene cambios. Probaré a compilar el de mingw desde Windows y a ver si no me dan mucho la lata esos cambios del QL :-)

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

Re: Nueva beta ZEsarUX - preparando para versión estable

Mensaje por chernandezba » 02 Ene 2017, 22:54

Uto escribió:
Y sí es la 4.3 beta... o más, porque es lo que me he bajado de Sourceforge, que lo mismo ya tiene cambios.
Pues hasta las 21:00 de hoy han habido cambios ;)
Y te conviene actualizar, porque soluciona algunos fallos críticos al seleccionar el QL
----

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

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

Re: Nueva beta ZEsarUX - preparando para versión estable

Mensaje por Uto » 03 Ene 2017, 00:41

chernandezba escribió:
Uto escribió:
Y sí es la 4.3 beta... o más, porque es lo que me he bajado de Sourceforge, que lo mismo ya tiene cambios.
Pues hasta las 21:00 de hoy han habido cambios ;)
Y te conviene actualizar, porque soluciona algunos fallos críticos al seleccionar el QL
Bueno, mi "versión custom" está enfocada al desarrollo para ZX-Uno, por lo que en realidad los demás cacharros me da igual si funcionan. Es más, creo que me he cargado algo del Z88 que ni sé que es al reutilizar las teclas F6 y F7 como shortcuts, pero me da igual :-)

He intentado hacer el build en mingw, pero no lo he conseguido, me da un error en el linker (creo). Me he bajado el paquete SDL-devel-1.2.15-mingw32.tar.gz y lo he descomprimido en c:\mingw\SDL, y entonces ya compila (tras hacer las órdenes indicadas, SET PATH, cambiar el compile_options, cmd.exe, make clean, make. Sale esto:

Código: Seleccionar todo

$ make -f Makefile_mingw
gcc  -DMINGW -Ic:\mingw\sdl\include -Wall -Wextra -fsigned-char cpu.o main_unix.
o charset.o  scrsimpletext.o     scrsdl.o audiosdl.o common_sdl.o  autoselectopt
ions.o chardetect.o textspeech.o scrnull.o screen.o mem128.o chloe.o prism.o tbb
lue.o timex.o     audionull.o ay38912.o codsinpr.o codprddfd.o codpred.o operaci
ones.o debug.o tape.o tape_tap.o tape_tzx.o tape_smp.o audio.o zx8081.o jupitera
ce.o z88.o cpc.o sam.o atomlite.o zxuno.o snap.o snap_z81.o snap_zx8081.o menu.o
 core_spectrum.o core_zx8081.o core_z88.o core_cpc.o core_ace.o core_sam.o timer
.o contend.o disassemble.o utils.o playtzx.o joystick.o ula.o mmc.o ide.o pd765.
o divmmc.o divide.o diviface.o zxpand.o superupgrade.o dandanator.o spectra.o sp
ritechip.o printers.o realjoystick.o ulaplus.o if1.o -o zesarux -Lc:\mingw\sdl\b
in -lSDL
cpu.o:cpu.c:(.text+0xa2c): undefined reference to `m68k_init'
cpu.o:cpu.c:(.text+0xa38): undefined reference to `m68k_set_cpu_type'
cpu.o:cpu.c:(.text+0xa3d): undefined reference to `m68k_pulse_reset'
cpu.o:cpu.c:(.text+0xa42): undefined reference to `ql_ipc_reset'
cpu.o:cpu.c:(.text+0x1386): undefined reference to `memoria_ql'
cpu.o:cpu.c:(.text+0x2e28): undefined reference to `memoria_ql'
screen.o:screen.c:(.text+0xab04): undefined reference to `ql_mc_stat'
screen.o:screen.c:(.text+0xab1c): undefined reference to `memoria_ql'
debug.o:debug.c:(.text+0x1f3f): undefined reference to `cpu_core_loop_ql'
disassemble.o:disassemble.c:(.text+0x98): undefined reference to `m68k_disassemb
le'
utils.o:utils.c:(.text+0xa234): undefined reference to `ql_readbyte_no_ports'
utils.o:utils.c:(.text+0xa262): undefined reference to `m68k_get_reg'
collect2.exe: error: ld returned 1 exit status
make: *** [zesarux] Error 1

Supongo que todos esos errores de referencias sin definir es lo que dices que has arreglado, pero ya digo que me da igual, no voy a arrancar el QL en esta versión. Además imagino que en linux me han salido también, aunque ni me he fijado porque como me generaba el ejecutable no lo he tenido en cuenta.

¿Alguna idea?

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

Re: Nueva beta ZEsarUX - preparando para versión estable

Mensaje por chernandezba » 03 Ene 2017, 08:58

Uto escribió:
Bueno, mi "versión custom" está enfocada al desarrollo para ZX-Uno, por lo que en realidad los demás cacharros me da igual si funcionan. Es más, creo que me he cargado algo del Z88 que ni sé que es al reutilizar las teclas F6 y F7 como shortcuts, pero me da igual :-)
Bueno para eso es código abierto, para que cada uno haga sus modificaciones ;)
Lo del F6 y F7 no te preocupes, sólo se usa en Z88 y sólo con drivers de video curses, aalib y cacalib

He intentado hacer el build en mingw, pero no lo he conseguido, me da un error en el linker (creo). Me he bajado el paquete SDL-devel-1.2.15-mingw32.tar.gz y lo he descomprimido en c:\mingw\SDL, y entonces ya compila (tras hacer las órdenes indicadas, SET PATH, cambiar el compile_options, cmd.exe, make clean, make. Sale esto:

Código: Seleccionar todo

$ make -f Makefile_mingw
gcc  -DMINGW -Ic:\mingw\sdl\include -Wall -Wextra -fsigned-char cpu.o main_unix.
o charset.o  scrsimpletext.o     scrsdl.o audiosdl.o common_sdl.o  autoselectopt
ions.o chardetect.o textspeech.o scrnull.o screen.o mem128.o chloe.o prism.o tbb
lue.o timex.o     audionull.o ay38912.o codsinpr.o codprddfd.o codpred.o operaci
ones.o debug.o tape.o tape_tap.o tape_tzx.o tape_smp.o audio.o zx8081.o jupitera
ce.o z88.o cpc.o sam.o atomlite.o zxuno.o snap.o snap_z81.o snap_zx8081.o menu.o
 core_spectrum.o core_zx8081.o core_z88.o core_cpc.o core_ace.o core_sam.o timer
.o contend.o disassemble.o utils.o playtzx.o joystick.o ula.o mmc.o ide.o pd765.
o divmmc.o divide.o diviface.o zxpand.o superupgrade.o dandanator.o spectra.o sp
ritechip.o printers.o realjoystick.o ulaplus.o if1.o -o zesarux -Lc:\mingw\sdl\b
in -lSDL
cpu.o:cpu.c:(.text+0xa2c): undefined reference to `m68k_init'
cpu.o:cpu.c:(.text+0xa38): undefined reference to `m68k_set_cpu_type'
cpu.o:cpu.c:(.text+0xa3d): undefined reference to `m68k_pulse_reset'
cpu.o:cpu.c:(.text+0xa42): undefined reference to `ql_ipc_reset'
cpu.o:cpu.c:(.text+0x1386): undefined reference to `memoria_ql'
cpu.o:cpu.c:(.text+0x2e28): undefined reference to `memoria_ql'
screen.o:screen.c:(.text+0xab04): undefined reference to `ql_mc_stat'
screen.o:screen.c:(.text+0xab1c): undefined reference to `memoria_ql'
debug.o:debug.c:(.text+0x1f3f): undefined reference to `cpu_core_loop_ql'
disassemble.o:disassemble.c:(.text+0x98): undefined reference to `m68k_disassemb
le'
utils.o:utils.c:(.text+0xa234): undefined reference to `ql_readbyte_no_ports'
utils.o:utils.c:(.text+0xa262): undefined reference to `m68k_get_reg'
collect2.exe: error: ld returned 1 exit status
make: *** [zesarux] Error 1

Supongo que todos esos errores de referencias sin definir es lo que dices que has arreglado, pero ya digo que me da igual, no voy a arrancar el QL en esta versión. Además imagino que en linux me han salido también, aunque ni me he fijado porque como me generaba el ejecutable no lo he tenido en cuenta.

¿Alguna idea?
Bueno eso son errores al hacer el link. Si da errores ahí, no genera el ejecutable. En Linux dudo que te haya salido eso, sino no tendrías ejecutable. Quizá si que hayan warnings al compilar, pero no pueden haber errores al hacer el link.
Pues lo que echo de menos en esa última línea es el enlazado con todos los archivos objeto (.o) del core de motorola del ql.
Por una parte, al hacer el make, hay un momento en que se generan unos archivos .c (un tipo de rutinas autogeneradas) que aparece con un texto:

./m68kmake

Musashi v3.3 68000, 68010, 68EC020, 68020 emulator
Copyright 1998-2000 Karl Stenerud (karl@mame.net)

Generated 1962 opcode handlers from 513 primitives
gcc -Wall -Wextra -fsigned-char -c m68kcpu.c


Si has visto esto, es buena señal.
Luego, la sentencia final de enlazado, yo tengo lo siguiente en Mac (fíjate sólo en los .o, ignora el resto de opciones):
gcc -Wall -Wextra -fsigned-char cpu.o scrcocoa.o charset.o scrstdout.o scrsimpletext.o scrcurses.o scrxwindows.o autoselectoptions.o chardetect.o textspeech.o scrnull.o screen.o mem128.o chloe.o prism.o tbblue.o timex.o audiocoreaudio.o audionull.o ay38912.o codsinpr.o codprddfd.o codpred.o operaciones.o debug.o tape.o tape_tap.o tape_tzx.o tape_smp.o audio.o zx8081.o jupiterace.o z88.o cpc.o sam.o atomlite.o zxuno.o snap.o snap_z81.o snap_zx8081.o menu.o core_spectrum.o core_zx8081.o core_z88.o core_cpc.o core_ace.o core_sam.o core_ql.o timer.o contend.o disassemble.o utils.o playtzx.o joystick.o ula.o mmc.o ide.o pd765.o divmmc.o divide.o diviface.o zxpand.o superupgrade.o dandanator.o spectra.o spritechip.o printers.o realjoystick.o ulaplus.o if1.o ql.o m68kcpu.o m68kdasm.o m68kops.o m68kopac.o m68kopdm.o m68kopnz.o -o zesarux -lncurses -lX11 -L/usr/X11R6/lib -L/opt/X11/lib -lXext -lXxf86vm -lpthread -framework CoreAudio -framework AudioUnit -framework CoreServices -framework Foundation -framework AppKit

De tu línea de enlazado, acaba con:

printers.o realjoystick.o ulaplus.o if1.o -o zesarux -Lc:\mingw\sdl\b
in -lSDL

Y yo tengo todos estos .o adicionales:
if1.o ql.o m68kcpu.o m68kdasm.o m68kops.o m68kopac.o m68kopdm.o m68kopnz.o -o zesarux .....

Prueba a ejecutar a mano esa sentencia de gcc tuya añadiendo los .o adicionales. A ver si así te funciona.
Cuando pueda revisaré el proceso de compilación en Windows a ver si a mi me sucede lo mismo.

Saludos
----

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

Responder