CPC6128 de Renaud Hélias para 2mb int. y ext.

Vanfanel
Mensajes: 276
Registrado: 16 Oct 2016, 15:50

Re: CPC6128 de Renaud Hélias

Mensaje por Vanfanel » 09 Ene 2018, 00:55

@jepalza: los avances que estais teniendo son increíbles!
Creo que sería una pena que el core acabase "casi casi" por culpa del espacio. Ya sugerí lo mismo en el core de C64, pero... ¿por qué no le quitais el soporte para cargar cintas y así ahorrais espacio y se puede acabar de afinar? Total, teniendo soporte para DSKs...

Avatar de Usuario
jepalza
Mensajes: 613
Registrado: 02 Oct 2015, 18:52

Re: CPC6128 de Renaud Hélias

Mensaje por jepalza » 09 Ene 2018, 16:40

Vanfanel escribió:@jepalza: los avances que estais teniendo son increíbles!
Creo que sería una pena que el core acabase "casi casi" por culpa del espacio. Ya sugerí lo mismo en el core de C64, pero... ¿por qué no le quitais el soporte para cargar cintas y así ahorrais espacio y se puede acabar de afinar? Total, teniendo soporte para DSKs...
Este core no tiene lectura de cintas. No existe esa parte desde el inicio mismo. Se hizo ya desde sus inicios solo con soporte DSK únicamente.
El problema del espacio, es debido sobre todo al módulo FAT32, que él solo se "come" un 40% aprox. El módulo FAT32 depende a su vez de dos módulos mas, el de lectura de SPI y el de copiado a SRAM, y es por eso, que es un módulo muy pesado para la FPGA.

Para que te hagas una idea: el módulo SPI tiene 667 líneas, el de FAT32 1137 líneas, y el de SRAM unas 100. Casi 2000 líneas de código para poder leer un DSK de una SD. Eso mismo en "c++" ¿100 líneas?

En comparación, el módulo completo del "gatearray" (el corazón del CPC, el núcleo principal) de Mcleod_Ideafix, "solo" tiene 447 líneas.

Vanfanel
Mensajes: 276
Registrado: 16 Oct 2016, 15:50

Re: CPC6128 de Renaud Hélias

Mensaje por Vanfanel » 09 Ene 2018, 16:57

@jepalza: Muchas gracias por la explicación! Yo no tengo ni idea de lenguajes de descripción de hardware (programo en C y C++, así que no creas que entiendo el asunto en toda su dimensión) pero me encanta leer estas explicaciones a cerca del límite de un hardware que verdaderamente adoro como es el ZX-UNO.

Dos preguntas más. Si me pongo pesado preguntando tú dímelo! A veces no sé parar :quemecuentas:
¿Estais usando entonces la implementación del gatearray de McLeod? Leí que el maestro McLeod había conectado esa implementación a un CPC de verdad y ya no había diferencias, por lo que se supone que es más o menos "perfecta". ¿Me equivoco?
Lo que me lleva a la siguiente pregunta: Anoche me chupé entero el vídeo de longtest que has puesto, con gran regocijo, y hay juegos que se ve que tienen glitches (Tempest) o directamente petan (Ghosts'n Goblins). ¿A qué se debe? Si usais la última versión del core de Z80 (el T80) ese pasa todos los tests del ZEXALL ese, así que si no es el gatearray y no es el Z80... ¿Qué falla? Deberían ser cosillas menores ya, por lo que entiendo.

Y otra cosa, que no es del todo de este core: se supone que en los lenguajes de descripción de hardware que usais se pueden meter directivas del preprocesador como #ifdefs y tal, ¿no? Es que llevo meses pidiéndole a Quest una versión del core de C64 sin soporte para cintas pero que pille los settings de las scanlines de la BIOS del ZX-UNO, y lo mismo es más curro del que yo pienso que es.

Pues al final han sido más de dos preguntas. :tepego:

Avatar de Usuario
Quest
Mensajes: 900
Registrado: 27 Sep 2015, 00:20

Re: CPC6128 de Renaud Hélias

Mensaje por Quest » 09 Ene 2018, 17:48

Perdón por la intromisión off-topic en el hilo, solo respondo por alusiones a Vanfanel :)
Vanfanel escribió: Y otra cosa, que no es del todo de este core: se supone que en los lenguajes de descripción de hardware que usais se pueden meter directivas del preprocesador como #ifdefs y tal, ¿no? Es que llevo meses pidiéndole a Quest una versión del core de C64 sin soporte para cintas pero que pille los settings de las scanlines de la BIOS del ZX-UNO, y lo mismo es más curro del que yo pienso que es.
Lamentablemente la detección de vídeo no volverá a ese core. No tiene nada que ver con que soporte o no cintas (son 3 líneas de código o poco más. Y la lectura del audio entrante la hace uno de los chips CIA del commodore, sin el cual ni siquiera funcionaría la máquina :P), ni siquiera con la ocupación. Es un tema de timings de RAM, que están al límite. Los settings de vídeo la BIOS del ZX-UNO los guarda en la SRAM (además en una zona compartida con la memoria que usa el C=), así que intercerptarla en el momento preciso, altera ligeramente el timing, lo suficiente para que empiecen a producirse errores. No obstante, ya lo miraré un día de estos para sintetizar una versión fijada a VGA. Mientras tanto, si quieres que inicie directamente en VGA+scanlines, tienes una opción, baja la versión del core que hice para el add-on IEC (está en el hilo de dicho add-on) dejando puenteados a masa los pines P35 y P43 del zócalo de expansión.

Por cierto @jepalza, buen trabajo de colaboración con Renaud :chocala!:
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA

Avatar de Usuario
desUBIKado
Mensajes: 1002
Registrado: 05 Ago 2016, 22:33

Re: CPC6128 de Renaud Hélias

Mensaje por desUBIKado » 09 Ene 2018, 19:35

Hola jepalza. Tengo instalados los dos últimos cores en mi ZX-Uno.

Con el del 01.01.2018 cargo los programas, aunque luego se ven con errores gráficos

Con el del 08.01.2018 no me carga ningún programa.
20180109_192508.jpg
También me he fijado que solo tengo "borde" en la parte superior e inferior de la imagen. No hay borde en la parte izquierda y derecha. La salida que uso es VGA, mi tarjeta SD es de 4GiB, formateada en FAT32, y mi ZX-Uno es de 2 MiB externos.

Saludos y buen trabajo.

Pdta: Ahora que te habrás puesto a tope de dieta torreznos con el Radastan en Siberia seguró que esto avanza una barbaridad :rofl!:

Avatar de Usuario
freemac
Mensajes: 11
Registrado: 09 Ene 2018, 20:27

Re: CPC6128 de Renaud Hélias

Mensaje por freemac » 09 Ene 2018, 20:40

desUBIKado escribió:También me he fijado que solo tengo "borde" en la parte superior e inferior de la imagen. No hay borde en la parte izquierda y derecha. La salida que uso es VGA, mi tarjeta SD es de 4GiB, formateada en FAT32, y mi ZX-Uno es de 2 MiB externos.
Hola, estoy Renaud.

No se puede fonctionnar normalemente con 2MiB, pues con 4MiB.
Pues... si fonctionnada con pocos juegos, estaba bien de decir cuales. Tienes muchas programas en disk que se viene de cassette, y que son pequeños como : Fruity Frank, a ver pasan con 2MiB :D (se puede que tienes que decirle de "no escribir al RAM cuando RAM_A(20) es uno")



GNG es un juego que se ecribe en RAM y lee en ROM con el mismo "dirección de memoria" (es raro)

Vanfanel
Mensajes: 276
Registrado: 16 Oct 2016, 15:50

Re: CPC6128 de Renaud Hélias

Mensaje por Vanfanel » 10 Ene 2018, 11:01

freemac escribió:
desUBIKado escribió:También me he fijado que solo tengo "borde" en la parte superior e inferior de la imagen. No hay borde en la parte izquierda y derecha. La salida que uso es VGA, mi tarjeta SD es de 4GiB, formateada en FAT32, y mi ZX-Uno es de 2 MiB externos.
Hola, estoy Renaud.

No se puede fonctionnar normalemente con 2MiB, pues con 4MiB.
Pues... si fonctionnada con pocos juegos, estaba bien de decir cuales. Tienes muchas programas en disk que se viene de cassette, y que son pequeños como : Fruity Frank, a ver pasan con 2MiB :D (se puede que tienes que decirle de "no escribir al RAM cuando RAM_A(20) es uno")



GNG es un juego que se ecribe en RAM y lee en ROM con el mismo "dirección de memoria" (es raro)
Hi, Renaud! Nice to see you around here. I can't understad you well (maybe you are using some atomatic translator that is not doing a good job...).
So, can you speak english? It may be better.
Some questions:
1-Are you using McLeod's gatearray? it's supposed to be perfect by now, isn't it? So, why do some games like Tempest still show glitches?
2-Are the remaining compatibility problems due to the disk drive implementation or something else? The latest T80 CPU implementation can pass all the ZXALL tests,
3-Isn't GNG fixable then?

Thanks!

Avatar de Usuario
freemac
Mensajes: 11
Registrado: 09 Ene 2018, 20:27

Re: CPC6128 de Renaud Hélias

Mensaje por freemac » 10 Ene 2018, 13:38

1- FPGAmstrad is based on JavaCPC emulator. It's a different approach.
Tempest show glitches because some not used part of VRAM are displayed instead of horizontal border. Only vertical border is implemented here.
It doesn't affect the Amstrad system.

2- T80 does pass ZXALL testbench. But FPGAmstrad doesn't pass winape Z80 instruction timing testbench
http://www.cpcwiki.eu/index.php/FPGAmst ... _testbench

Problem is around the "WAIT_n generator", in my last version (on MiST-board) I don't have yet validated this part.
It's a long part of work (WIP on MiST-board's CoreAmstrad)

"WAIT_n generator" is the wire between GA and Z80 called "WAIT_n".

As "WAIT_n generator" is not validated yet, on ZX-Uno I do just mod 4 instructions, resulting a nice Arkanoid gameplay -not in youtube- (core 08.01.2018 (core 01.01.2018 can go to trash, its "WAIT_n generator" having been unvalidated since 2 years ago))

About dsk, do prefer simple hacked dsk (without protection, normal size), and sure do use a 4MB ZX-Uno version... FPGAmstrad is using a really simple dsk controler.

3- GNG : I don't have idea how to unlock it, in NEXYS4 it was about lucky, after "relaxing RAM" (using OE wire of RAM I suppose, or doing something else, I don't remember)
I add GNG to my list http://www.cpcwiki.eu/index.php/FPGAmst ... ad_version

Avatar de Usuario
jepalza
Mensajes: 613
Registrado: 02 Oct 2015, 18:52

Re: CPC6128 de Renaud Hélias

Mensaje por jepalza » 10 Ene 2018, 19:06

Vanfanel escribió: ¿Estais usando entonces la implementación del gatearray de McLeod?
Nop!! para nada. El core de Mcleod_ideafix de momento es cerrado. El de Renaud no tiene nada que ver, 0% de parecido entre ambos. Son tan poco parecidos, que los juegos que en un core funcionan, en el otro no tienen por qué hacerlo.
Vanfanel escribió: Y otra cosa, que no es del todo de este core: se supone que en los lenguajes de descripción de hardware que usais se pueden meter directivas del preprocesador como #ifdefs y tal, ¿no? :
Si, pero en el caso del core de Renaud, no se usa ninguno. Se suelen usar para separar dos tipos de FPGA o de placas, o para indicar si es simulacion o codificación real.

Avatar de Usuario
jepalza
Mensajes: 613
Registrado: 02 Oct 2015, 18:52

Re: CPC6128 de Renaud Hélias

Mensaje por jepalza » 10 Ene 2018, 19:15

desUBIKado escribió: Con el del 01.01.2018 cargo los programas, aunque luego se ven con errores gráficos

Con el del 08.01.2018 no me carga ningún programa.
El primer core, ya lo sabía, lo comento en el hilo, era solo para que se viese que va en marcha, pero los fallos gráficos ya los comenté, que estaban presentes.
Lo del segundo me extraña bastante mas, eres el primero que lo dice. No sabría decirte por qué puede ser. Quizás, por el fallo interno que tiene que si borras un archivo y copias otro, el core sigue viendo el anterior borrado, y quiere seguir cargando, pero al estar "pisado" por el nuevo, da error.
Prueba a desfragmentar la SD.
desUBIKado escribió: Pdta: Ahora que te habrás puesto a tope de dieta torreznos con el Radastan en Siberia seguró que esto avanza una barbaridad :rofl!:
:enelPC:
Ya está en su fase mas álgida . Y aún mas ahora que pilla el relevo el propio Renaud (freemac), y como ves, ya está por el foro y puede ayudar.

freemac escribió:
Hola amigo :bienvenido:

Responder