Página 4 de 5

Re: KCPSM6 PicoBlaze: ¡Soft cores al poder!

Publicado: 18 May 2018, 21:08
por Vanfanel
@jotego: loco me tiene la idea, pero loco. Ghosts'n Goblins o Bubble Bobble en ZX-UNO... :temblando:

Re: KCPSM6 PicoBlaze: ¡Soft cores al poder!

Publicado: 18 May 2018, 22:45
por nch
jotego escribió:Tiene mucho sentido hacerlo así y no tardaréis en ver algo mío desarrollado de esta forma.
Estoy deseando verlo, en serio. Aprovechando hasta la última gota del ZX-Uno.
Gracias jotego. :okidoki;

Re: KCPSM6 PicoBlaze: ¡Soft cores al poder!

Publicado: 19 May 2018, 12:14
por jotego
Vanfanel escribió:@jotego: loco me tiene la idea, pero loco. Ghosts'n Goblins o Bubble Bobble en ZX-UNO... :temblando:
El Bubble Bobble tiene tres Z80. Solo puede caber con técnicas como esta que exprimen la FPGA. Es un juego que aun con tres procesadores se ralentiza a veces. Ese me gustaría llegar a verlo en FPGA.


Enviado desde mi iPhone utilizando Tapatalk

Re: KCPSM6 PicoBlaze: ¡Soft cores al poder!

Publicado: 19 May 2018, 13:42
por jotego
En este tema Alexey, del Mister, está a la defensiva. Quizá sea porque uno de los puntos fuertes de mister es una FPGA grande y está técnica le quita importancia a eso.

Esto se puede usar hasta para hacer los circuitos gráficos. En ese caso no se si en área se ganaría tanto porque estos circuitos no son tan grandes como una CPU. El beneficio sería en la facilidad de diseño. Si al desarrollador le cuesta menos hacer el core, tendremos más cores. Insisto, no se pierde precisión en el sistema.

Por ejemplo los gráficos del Ghosts’n Goblins van a 6MHz. Cada pixel está compuesto de una mezcla de fondo, objetos y caracteres. Hacer la mezcla por software costaría unas 10 o 12 instrucciones que serían unos 24 ciclos de reloj o sea que tendría que ir esa mini CPU a 144MHz. Eso es viable en el ZX-UNO. Cómo estás mini CPUs son tan pequeñas se implementan en la FPGA ocupando slices que están muy pegadas y son muy pocas así que pueden alcanzar mucha velocidad.

Para la síntesis FM de los Yamaha aún estoy dándole vueltas. Puede que en vez de varios picoblaze vaya mejor hacer una mini CPU con un balance de ancho del registro/número de registros distinto. La picoblaze tiene 16 registros de 8 bits y seguramente algo así como 4 registros de 18 bits funcionaría mejor en este caso.


Enviado desde mi iPhone utilizando Tapatalk

Re: KCPSM6 PicoBlaze: ¡Soft cores al poder!

Publicado: 21 May 2018, 23:51
por Radastan
Si consigues meter el Ghost & Goblins, de la forma que sea, en el ZXUno… me vas a tener a tus pies durante eones. Mi juego favorito arcade, junto al Phoenix.

Y si ya metes el Bubble Bobble, y el Bomb Jack, te ponemos un altar. Joder, es que el ZXUno se convertiría en todo un pelotazo.

Re: KCPSM6 PicoBlaze: ¡Soft cores al poder!

Publicado: 22 May 2018, 16:47
por jotego
Radastan escribió:Si consigues meter el Ghost & Goblins, de la forma que sea, en el ZXUno… me vas a tener a tus pies durante eones. Mi juego favorito arcade, junto al Phoenix.

Y si ya metes el Bubble Bobble, y el Bomb Jack, te ponemos un altar. Joder, es que el ZXUno se convertiría en todo un pelotazo.
No sabes cuánto anima ver que a otros compañeros les interesan estos proyectos. Y más si es alguien que ha aportado tanto a la comunidad como tú.

Estoy estudiando la topología de la FPGA Spartan 6 del ZX-UNO mejor y comparando lo que ocupan distintas formas de hacer las cosas ahora. También compré este libro la semana pasada para coger ideas y corregir fallos.

Anoche empecé a definir el problema del sintetizador FM de Yamaha en términos de software corriendo en una mini CPU especializada que haría yo. Empiezo por ahí porque el YM2203 no lo tengo metido aun en el G&G de MiST así que si completo esa parte ya estaría todo el juego en MiST. Sólo que esa parte ya la hago desde el principio con el requisito de que quepa sobradamente en un ZX-UNO. Ojo, que con el YM2203 y el Z80 en ZX-UNO ya hay muchos juegos de CAPCOM que funcionarían (aunque en general necesitan dos Z80 que no sé si cabrían tal y como están hechos ahora).

Re: KCPSM6 PicoBlaze: ¡Soft cores al poder!

Publicado: 09 Jun 2018, 18:25
por jotego
Una pequeña actualización de como va esto.

-he definido una CPU propia minimalista de 16 bits que debería de ocupar muy muy poco en el ZX-UNO
-he escrito el núcleo del modulador FM de los Yamaha para esta CPU mía
-Estimo que para hacer un YM2203 hará falta poner esta CPU a ~100MHz y ocupar un bloque de memoria de la FPGA.
-Estoy evaluando este core FM con un emulador de esta CPU. Todavía no me da el resultado exacto que con el core FM del JT12/JT51. Aunque en la práctica para sonidos que no distorsionen se oirá igual. En la imagen veis la comparativa. El nuevo core se llama NPFM de momento (Nuevo Procesador FM). Ya veis que se solapan las dos curvas. La pequeña diferencia no es realmente audible pero quiero corregirla para poder decir que lo estamos clavando. MAME no creo que lo clave a este nivel. Ya digo que para la mayoría de sonidos no se puede apreciar la diferencia de oído

Imagen


Enviado desde mi iPhone utilizando Tapatalk

Re: KCPSM6 PicoBlaze: ¡Soft cores al poder!

Publicado: 09 Jun 2018, 18:33
por neuro_999
Oido no se, pero vista hay que tenerla buena para ver la diferencia...:)
Con ganas de ver algo implementado con eso a ver que tal. :)


Enviado desde mi ONE A2003 mediante Tapatalk

Re: KCPSM6 PicoBlaze: ¡Soft cores al poder!

Publicado: 09 Jun 2018, 18:51
por Vanfanel
@jotego: Cada vez que me llega al correo un aviso de este hilo, vengo que pierdo el culo a ver qué avances comentas. Me encanta leer lo que vas haciendo...
¿El emulador que correrá sobre tu propia CPU está escrito en C o en qué?

Re: KCPSM6 PicoBlaze: ¡Soft cores al poder!

Publicado: 23 Jun 2018, 17:59
por jotego
Vanfanel escribió:@jotego: Cada vez que me llega al correo un aviso de este hilo, vengo que pierdo el culo a ver qué avances comentas. Me encanta leer lo que vas haciendo...
¿El emulador que correrá sobre tu propia CPU está escrito en C o en qué?
Está escrito en ensamblador. En realidad es muy poco código pero tiene que correr en tiempo real porque si el Yamaha iba en el juego original a 55kHz, a esa velocidad hay que calcularlo todo sin excusa. Y parece lento pero por ejemplo el Ghosts'n Goblins tiene 6 canales FM, cada uno con 4 operadores, o sea que es como si hubiera que calcular para 6x4x55 kHz = 1.320 MHz y si cada salida necesita unas 100 operaciones pues ya nos ponemos en que la CPU ha de correr a más de 132MHz. Por estos motivos en la época estos sintetizadores eran chip dedicados. Imposible hacer esto con un Z80 o un 68000, incluso si sólo hiciéramos un canal FM.

Ahora estoy tratando de cerrar el diseño de la CPU para la FPGA haciendo ya pruebas de velocidad de los módulos. Luchando para ver si llego a 200MHz en el ZX-UNO porque así seguramente con una sola CPU metía dos YM2203 enteritos ahorrando área.