Ayuda para prueba en modo radas

Software para o relacionado con el core ZX Spectrum / Software for or related to the ZX Spectrum core
Responder
Avatar de Usuario
yombo
Mensajes: 487
Registrado: 05 Oct 2015, 14:10

Ayuda para prueba en modo radas

Mensaje por yombo » 16 Abr 2016, 00:04

Buenas,

Alguien podría probar este tap en su placa 4.1? En Zesarux me funciona bien, pero en mi placa prototipo v2 (Spartan 3) sólo veo líneas verticales rojas y amarillas, incluído en el borde.

Link al TAP: http://yombo.org/datos/fotos_foros/zxun ... _radas.zip

El programa debería mostrar unos cuadrados de colores moviéndose a izquierda y derecha.

Otras pruebas en modo radas en mi v2 me han ido bien, pero al meter el shadow screen ya no me funciona.

Según he podidio indagar en los cores de la Spartan 3, la paginación de shadow screen está presente en todos los cores que tenían el modo radas. Creo que tengo grabado el core14.

Esto es lo que tendría que mostrar, y es lo que muestra Zesarux:
Imagen

Y esto es lo que saca mi prototipo v2:
Imagen

Avatar de Usuario
carmeloco
Mensajes: 751
Registrado: 25 Dic 2015, 12:02

Re: Ayuda para prueba en modo radas

Mensaje por carmeloco » 16 Abr 2016, 08:58

Me lo descargo, y lo intento probar entre hoy y mañana en el proto V4.

Avatar de Usuario
carmeloco
Mensajes: 751
Registrado: 25 Dic 2015, 12:02

Re: Ayuda para prueba en modo radas

Mensaje por carmeloco » 16 Abr 2016, 09:44

Probado. a mi me sale esto:

Imagen

Lo más curioso de todo, es que esas franjas amarillas y rojas ocupan toda la pantalla, incluida la zona del "border".

Avatar de Usuario
Manu
Mensajes: 83
Registrado: 26 Oct 2015, 08:21

Re: Ayuda para prueba en modo radas

Mensaje por Manu » 16 Abr 2016, 09:52

¿Puedes poner el código fuente, por favor?

Quizás ahí se detecte rápidamente el posible problema :D

Enviado desde mi LG-H815 mediante Tapatalk

Avatar de Usuario
yombo
Mensajes: 487
Registrado: 05 Oct 2015, 14:10

Re: Ayuda para prueba en modo radas

Mensaje por yombo » 16 Abr 2016, 12:18

Aquí tienes el código. Está bastante "en bragas", pero bueno.
https://github.com/yomboprime/pruebaRadas

Está hecho en C (compilador Z88DK). Sólo hay el main.c y una "librería" modoRadastan.h y modoRadastan.c

Avatar de Usuario
yombo
Mensajes: 487
Registrado: 05 Oct 2015, 14:10

Re: Ayuda para prueba en modo radas

Mensaje por yombo » 16 Abr 2016, 12:28

carmeloco escribió:Probado. a mi me sale esto:

Lo más curioso de todo, es que esas franjas amarillas y rojas ocupan toda la pantalla, incluida la zona del "border".
Gracias. Sí, es curioso.

Lo has probado en Zesarux? A mí me salía todo el rato un mensaje en pantalla del emulador alternando entre "Radastan mode 0/1" y " Screen 0/1", pero al quitar los mensajes ya funciona bien, aparentemente.

Me temo que algo estoy haciendo mal.

Avatar de Usuario
Manu
Mensajes: 83
Registrado: 26 Oct 2015, 08:21

Re: Ayuda para prueba en modo radas

Mensaje por Manu » 16 Abr 2016, 17:06

Vale, ya he detectado la función que causa el problema de las rayas verticales en el ZX-Uno:

Código: Seleccionar todo

unsigned char *radasCambiarPantalla() {
    
    unsigned char valorPuerto = inp( 0x00FF );

    if ( ! iPantallaActual ) {
        pantallaActual = DIRECCION_PANTALLA1;
        valorPuerto &= 0xFE;
        iPantallaActual = 1;
    }
    else {
        pantallaActual = DIRECCION_PANTALLA0;
        valorPuerto |= 0x01;
        iPantallaActual = 0;
    }

    outp( 0x00FF, valorPuerto );

    return pantallaActual;

}
Si comentas la llamada, la animación es más brusca al no haber doble buffer, pero "funciona". Ahora hay que investigar porqué causa ese efecto tan extraño en el ZX-Uno y en el emulador no da problemas...

Avatar de Usuario
yombo
Mensajes: 487
Registrado: 05 Oct 2015, 14:10

Re: Ayuda para prueba en modo radas

Mensaje por yombo » 17 Abr 2016, 04:07

Exacto! Muchas gracias por mirártelo... ya he resuelto el bug :)

Resulta que mirando en el código del core (ula_radas.v) he visto que la lectura del puerto timex (FF) no devuelve el ultimo valor escrito, sino otro valor no sé cual, algo relacionado con la vram.

O sea, no hay que leerlo, simplemente escribir el valor que quieres. En este caso, 0 para la página 0, y 1 para la 1. El resto de bits del puerto son para hi-color y hi-res, y poniendolos a 0 se desactivan.
(Lo que ocurría antes es que estaba cambiando entre los modos timex constantemente)

El trozo de código en C ha quedado así:

Código: Seleccionar todo

void radasCambiarPantalla() {
    
    if ( ! iPantallaActual ) {
        outp( 0x00FF, 0 );
        pantallaActual = DIRECCION_PANTALLA1;
        iPantallaActual = 1;
    }
    else {
        outp( 0x00FF, 1 );
        pantallaActual = DIRECCION_PANTALLA0;
        iPantallaActual = 0;
    }

}

Avatar de Usuario
Manu
Mensajes: 83
Registrado: 26 Oct 2015, 08:21

Re: Ayuda para prueba en modo radas

Mensaje por Manu » 17 Abr 2016, 12:16

Efectivamente, ahora va fino :D

De todas maneras, el efecto de las barras verticales EN EL BORDE habría que estudiarlo...

Avatar de Usuario
Hark0
Mensajes: 683
Registrado: 27 Sep 2015, 00:31
Ubicación: Cornellà de Llobregat - BCN
Contactar:

Re: Ayuda para prueba en modo radas

Mensaje por Hark0 » 19 Abr 2016, 11:45

Manu escribió:Efectivamente, ahora va fino :D

De todas maneras, el efecto de las barras verticales EN EL BORDE habría que estudiarlo...
Ya te digo... un border "tuneado":... ;)
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA.

Responder