Página 1 de 2

TEST 3 disponible

Publicado: 25 Ago 2017, 02:01
por mcleod_ideafix
Pues después de trastear a base de bien, incluyendo hacer una plaquita para un Amstrad original con el diseño de gate array del core, ver que funciona idéntico al venerable 40010, y a su vez, probando un Z80 original en la placa del ZX-UNO, ha llegado el resultado. El TEST 3 del core de CPC 464 (sí, aún un 464 pero todo se andará)
2017-08-19 19.44.35.jpg
Uno de los prototipos del módulo de reemplazo de gate array. Hice dos, con distintas tecnologías. Este de la foto aún no he podido echarlo a andar, pero el otro, afortunadamente, funciona como un reloj suizo :)

2017-08-18 02.18.06.jpg
Módulo de reemplazo del gate array en un Amstrad CPC 6128, mientras se está ejecutando la demo Batman Forever. Se la tragó enterita :)

2017-08-23 12.37.33.jpg
Abajo a la derecha, un ZX-UNO con un Z80 CMOS real pinchado como plaquita addon. El core de CPC está cargando el juego Blade Warrior.


Con esta versión deberían haberse corregido los errores de sonido en los juegos que usan WYZPlayer (los juegos de los Mojon Twins, los de CEZ y los de la CPCRetroDev). Todo viene de que hay muchos juegos (y entre ellos, la rutina de sonido de WYZPlayer) que asumen que la instrucción indocumentada OUT (C),0 funciona tal y como su nombre indica, pero si el Z80 es CMOS (o su implementación es como la del CMOS) entonces esa instrucción en realidad escribe $FF en lugar de 0. Una vez corregido esto, además de los juegos mencionados, hay demos técnicas que funcionan por fin pero aún con glitches, como la de Mario de Rhino (Batman Brothers).

Por otra parte, creo que ya sé por qué algunos juegos no parecía que funcionasen con el disparo: resulta que en el Amstrad, la nomenclatura de los dos pines de fuego en el joystick están intercambiados con respecto a la norma Atari, lo que significa que lo que yo llamo FIRE 1 en Atari/Spectrum, en el Amstrad es FIRE 2. Yo esto no lo sabía y cableé FIRE 1 y FIRE 2 en el joystick de acuerdo con la norma Atari. El resultado es que cuando en el jostick, desde BASIC, pulsaba el disparo, en lugar de salirme la X me salía la Z. En definitiva: que parece ser que en Amstrad, los juegos que tienen solo un disparo usan FIRE 2, así que intercambiando esos pines en el diseño se ha solucionado.

He aprovechado para implementar algunas... "exquisiteces", tales como una característica bastante oscura del Amstrad, y que permite forzar al gate array la generación de un VSYNC aunque el CRTC no lo haya mandado. Esto se puede hacer en algunos modelos de Amstrad porque la señal VSYNC del CRTC está conectada, además de al gate array, a un pin del 8255. Este pin del 8255 es, normalmente, de entrada y sirve para que el programador sepa cuándo hay en curso un retrazo vertical. Pero se puede hacer que el 8255 ponga ese pin como de escritura y enviar un valor ahí. Si el 8255 que se usa es más.... "fuerte" que el CRTC (traducido: si la etapa de salida del 8255 tiene menos impedancia que la del CRTC) entonces prevalece el 0 escrito por el 8255 y el gate array interpreta que ha llegado el momento de un intervalo de vblank.

Leyendo el datasheet del 8255 he podido ver que las etapas de entrada de los pines tienen "memoria", es decir, que si se envía un valor por un pin al ponerlo como salida, ese valor puede leerse como valor del pin de entrada, si no hay nada externo forzando un valor en dicho pin. Esto también se ha implementado.

Por favor, id repasando, de la lista que hay compartida en Google Docs (ver hilo del TEST 2), a ver qué juegos que antes no funcionaban ahora sí funcionan :) Estaré atento :)

En este mismo post teneis el core. Como siempre, cambiad la "n" por el número de slot donde vayais a poner el core y flashearlo en el mismo lugar donde tuviérais el TEST 2 (salvo que alguien quiera comparar ambos cores).

Saludos!

Re: TEST 3 disponible

Publicado: 25 Ago 2017, 03:15
por Mejias3D
Felicidades.

Excelente trabajo, como siempre :okidoki;

Re: TEST 3 disponible

Publicado: 25 Ago 2017, 07:41
por Radastan
¡Oleeeeeeeee!

:gracias!: :gracias!: :gracias!:

Como consigas implementar la disquetera de 3" y tengamos 6128 y +3 hacemos movimiento para canonizarte.

Re: TEST 3 disponible

Publicado: 25 Ago 2017, 07:58
por jsj
Para mí este core (junto con el de Spectrum, evidentemente) es uno de los más deseados e imprescindibles.

Ya sería perfecto si consigues implementar un 6128 con su disquetera. :okidoki;

¿O un 464 con M4? (aunque fuese sin WiFi, sólo con acceso a SD)

Re: TEST 3 disponible

Publicado: 25 Ago 2017, 10:07
por Kyp
:plasplas: :plasplas: :plasplas:

Re: TEST 3 disponible

Publicado: 25 Ago 2017, 13:29
por brunosilva
wow.... thanks... great work!

Re: TEST 3 disponible

Publicado: 25 Ago 2017, 14:06
por jaildesigner
JOJOJOJO!!! POR FIN!!!

MIL GRACIAS!
:maestro: :maestro: :maestro:

En cuanto pueda me pongo con la lista de nuevo! :teclando..:

EDIT: Aquí el enlace al documento de Google: https://docs.google.com/spreadsheets/d/ ... sp=sharing

Ya funciona bien el Jet Set Willy :chocala!:

Re: TEST 3 disponible

Publicado: 25 Ago 2017, 16:14
por Hodor
Muchas gracias por seguir convirtiendo al :zxuno: en una extraordinaria máquina.

Re: TEST 3 disponible

Publicado: 25 Ago 2017, 17:10
por dustin
Muchas gracias, a ver si saco un rato para probar juegos. Como poseedor de un 464, es un gusto que por una vez tenga preferencia sobre el 6128 :D, porque desde siempre he tenido la impresión de que era el segundón.

Saludos

Re: TEST 3 disponible

Publicado: 25 Ago 2017, 20:03
por Vanfanel
Fantásticas noticias, este core representa un logro técnico increíble! :chocala!:

El bug de las líneas "cambiadas" en modo VGA que aparece tras un RESET (CTRL+ALT+SUP) sigue presente, no? Eso, o no he actualizado bien el core.