Core Commodore 64 (Quest). CHANGELOG

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

Core Commodore 64 (Quest). CHANGELOG

Mensaje por desUBIKado » 20 Feb 2017, 20:48

AVISO PREVIO: El sistema de carga de discos y el formato SD RAW no son un capricho ni significa que no se quiera mejorar el sistema para hacerlo más sencillo. El problema es que no se puede hacer un sistema mejor, porque los recursos de la FPGA del Zx-Uno están llenos al 99,99% con lo que el core requiere para funcionar. No se responderán preguntas con respecto a este tema. Tampoco se pueden incluir, por el mismo motivo, sistemas tipo SD2IEC, que ocupan muchísimo. Además el sistema actual del core, con la implementación real de la disquetera 1541 completa, es mucho más compatible (95% o más) que un sistema tipo SD2IEC, donde la compatibilidad rozará el 70%. Una vez que te acostumbras al sistema, es sencillo de manejar, y la gran compatibilidad con los discos .d64 compensa con creces. Gracias por vuestra comprensión.

BETA7b (01-Mar-2017)
  • Se modifica los "timings" y también los accesos a memoria para que no estén tan apurados, por lo que ahora se escucha correctamente el sonido en ciertos ZX-Uno que antes no lo hacían.
  • Se realizan ciertos cambios internos que mejoran la compatibilidad, cargando ahora juegos como el Robocop 3.
  • Para añadir estas mejoras ha sido necesario quitar la detección de los "settings" de vídeo al inicio durante el "reset".
Anuncio en el foro
https://github.com/antoniovillena/zxuno ... 1?raw=true

BETA7 (23-Feb-2017)
  • Mejora en carga de cassetes: Ya no es necesario mantener una tecla pulsada tras la cabecera para continuar la carga. (He modificado el Kernel especialmente para este core. Parcheada la subrutina de espera para la pulsación en $E4E0 para que la espera sea cero). En resumen: cargas "del tirón" :)
  • Otra buena mejora en la carga de cassettes: Por fin funcionan las cargas de muchos más juegos de Ocean (algunos de Imagine, etc) que antes no lo hacían (Como Robocop, Rainbow Islands...). La causa era una protección contra cartuchos "freezer" (Freeload) que usan muchos de estos títulos, que comprueba mediante una rutina el checksum de una zona concreta de la memoria que cambia si un cartucho de estos está conectado. Ahora se inicializa con el patrón $00 - $FF que presenta un C64 real (he usado mi C64C real como referencia), y el problema ha quedado solucionado. Esta parte, aunque simple, ha costado un montón de tiempo de investigaciones, pero al fin está listo. Espero que disfrutéis de esos geniales cargadores con música :D. Aún hay algunos cargadores que se resisten (como algunos de los que usan Cyberload), pero sigo investigando :)
  • SID: Mejoras significativas. La más relevante: implementados los filtros. Ahora ya suenan esos efectos tipo "wah-wah" tan característicos (Combrobar en música de Cybernoid 1 y 2 por ejemplo, o en demos). El sonido es más limpio. Ha costado un poco que cupiera esta parte en la FPGA, pero tras un poco de optimización ha sido posible :). Más cambios: Arregladas las notas faltantes del canal de pulso, que no se oían en Cybernoid 2, GnG, etc. Ahora el sonido de la llave en Manic Miner ya no queda suspendido. Otros cambios menores en el reloj de entrada para que los timings sean aún más exactos.
  • Implementadas algunas funciones de las CIAs que estaban incompletas o no presentes, (ToD completo, IRQ de alarma, etc..). No hay mucho software que se beneficie de ellas, pero al menos ahora hay varios programas de test que ya no dan fallo ni se cuelgan en esas áreas. Parece que de paso la demo Edge of Disgrace al fin ya no se cuelga a mitad del segundo disco, y llega por fin hasta el final :)
  • Tecla RESTORE (NMI) añadida (Mapeada a tecla TAB del teclado PS/2).
  • Pequeños ajustes en el VIC-II que solucionan algún glitch en demos (Sigue habiendo glitches importantes por solucionar aún).
  • Muchos reajustes en los sincronismos de vídeo, tanto en compuesto/RGB como en VGA. Ahora debería ser compatible con más pantallas. También se ha ajustado de forma más fina la frecuencia vertical en ambos casos para que sean 50Hz exactos. Espero que notéis la mejora :D espero feedback de este tema, a ver qué tal os funciona ahora. Aun así puede que haya alguna pantalla "rarilla" que nunca se llegue a llevar bien con la señal del C64, pero serían casos mínimos.
  • Añadida al arranque, la detección del modo de vídeo de la BIOS del ZX-UNO (VGA / RGB-Video compuesto y estado de las scanlines)
  • Cambiado ligeramente el comportamiento de los puertos de joystick (tecla F11) para que sean un poco más claros. Los ajustes quedarían así (son 4 en total a rotar):
    ** Por defecto (sin pulsación de F11): Puerto 1: Funcionan tanto el joystick real como el emulado a la vez. Puerto 2: vacío.
    ** Tras la primera pulsación de F11: Puerto 1: Vacío. Puerto 2: Funcionan tanto el joystick real como el emulado a la vez.
    ** Tras la segunda pulsación de F11: Puerto 1: Joystick real. Puerto 2: Joystick emulado.
    ** Tras la tercera pulsación de F11: Puerto 1: Joystick emulado. Puerto 2: Joystick real.
    Las siguientes pulsaciones de F11 tras la tercera volverían a rotar los puertos desde el principio.
    Como véis, se podría jugar a dobles con joystick real y emulado a la vez uno en cada puerto, sin problemas.
Anuncio en el foro

BETA6 (2-Dic-2016)
  • Mejoras en la emulación de la 1541 (CPU más exacta). Ahora cargan más discos (por ejemplo de las demos "We are Demo", "Uncensored" o "Wonderland XII", y unos cuantos más que antes no cargaban).
  • Arreglado bug que afectaba al SID y que impedía que sonasen los canales de ruido en las 3 voces. ¡Por fin suenan las pistas de percusión en muchos juegos/demos donde antes no sonaban! (como por ejemplo, "Commando", "Ghosts'n'Goblins", etc..)
  • Aumentado el número máximo de imágenes de disco .D64 posibles en la SD, de 256 a 16.384 (Hasta 4Gb de datos)
  • Añadida emulacion REAL del cambio de disco. Ahora se envía momentánteamente a la 1541 un cambio de señal al sensor de detección de protección contra escritura (que es como la 1541 real detecta que se ha insertado un disco) al cambiar de imagen de disco. De este modo se arreglan 2 problemas que había: 1) Al cambiar de disco y listar directorio, antes no cambiaba el nombre del disco, sólo el listado de archivos; ahora también se actualiza el nombre (etiqueta). 2) Algunas demos/juegos (como "We are Demo", "Wonderland XII", etc..) que pedían cambio de disco pero nunca quedaba registrado, y por tanto no seguían funcionando, ahora lo detectan, dado que usan ese recurso para hacerlo, y siguen funcionando correctamente.
  • Añadida opción para elegir la polaridad de la señal de entrada de audio (EAR), mediante la tecla "+" del teclado numérico. El led del ZX-UNO será el testigo. Con el led apagado, tenemos la polaridad invertida (por defecto, como hasta ahora), con el led encendido, la polaridad no estará invertida.
Anuncio en el foro
https://github.com/antoniovillena/zxuno ... 1?raw=true

BETA5 (30-Nov-2016)
  • Unificadas ramas normal y A en una. Ahora para resetear en JiffyDOS, pulsar F12 como siempre. Para resetear con rom de C64 normal (y por tanto para poder cargar cintas), pulsar Ctrl+F12
  • Mejoras en la salida VGA, para evitar los casos de imagen intermitente en algunas pantallas y eliminar algunos artefactos. En una pequeña cantidad de monitores que no soportan bien el autocentrado, podría salir la imagen un poco desplazada hacia abajo. En tal caso, centrar manualmente con los controles del monitor.
  • Añadida opción de scanlines en VGA. Para activarla/desactivarla, pulsar el guión (-) del teclado numérico.
  • Añadida opción de paleta de colores dual. Arranca por defecto con la paleta realista (la de siempre). Para cambiar de paleta (a una paleta similar a la del emulador ccs64, con unos colores mucho más brillantes), pulsar la tecla "Fin". Volver a pulsar para volver a la normal.
  • Añadida emulación de las teclas F2, F4, F6 y F8 (lo natural en el C64 real es sacarlas mediante SHIFT+F1,F3,F5,F7). Ahora al pulsar F2, F4, F6 y F8, se emula la pulsación de SHIFT + su F correspondiente.
  • Mejorado aún más el reset. Ahora ya no hace falta resetear dos veces en prácticamente ningún caso
Anuncio en el foro

BETA4 y BETA4a (28-Nov-2016)

Mejoras y cambios en la BETA4
  • Muchas mejoras en la generación de sincronismos (tanto en RGB/Video compuesto como en VGA). Ahora debería ir bien, sin que la imagen se mueva. Probado en 4 TVs LCD y CRT, y en 3 monitores VGA (con soporte 50Hz) y en todas ha ido perfectamente.
  • Arreglado bug en las frecuencias del SID, por el cual sonaba más de un semitono por encima de lo normal.
  • Añadidas más teclas para el control de discos:
    -- Con "Ctrl+RePag" avanzas 10 discos hacia adelante
    -- Con "Ctrl+AvPag" retrocedes 10 discos (Si el número de discos hacia atrás es menor de 10, irá al 1.
    -- Con "Insert" vas al disco 1
  • Incluidas las mejoras de la rama "a" (Mejor reset, teclas 5 y 2 del teclado numérico para emular la dirección "abajo" del joystick)
Anuncio en el foro

Mejoras y cambios en la BETA4a
  • Arreglado bug por el cual no cargaban las cintas (ajuste de la temporización de la señal de entrada)
  • Añadido feedback de audio en la carga (sonará el audio de carga de cinta, a un volumen bajito para que no moleste demasiado)
  • Por supuesto, trae las mejoras de sincronismos, SID y demás, de la BETA4 normal.
Anuncio en el foro

BETA3a (25-Nov-2016)

La rama "a" usa la rom original de Commodore que permite cargas desde cinta y funcionamiento del disco/SD aunque a velocidad más lenta que la rama normal del core que usa el JiffyDOS.
  • Mejorado el reset (ahora limpia toda la RAM). Si tras algún juego aun así no resetea (muy pocos casos), resetead dos veces.
  • Añadido soporte de carga por cinta (no probado. Por favor, reportad). Sin feedback de audio.
  • Kernal -02 original (cargas de disco irán más lentas).
  • Mapeada la dirección de abajo del joystick virtual tanto al 2 como al 5 del keypad numérico
Anuncio en el foro

BETA2 (24-Nov-2016)
  • Añade soporte para SDHC
Anuncio en el foro

BETA1 (23-Nov-2016)

El core está basado parcialmente en los trabajos de Peter Wendrich y "Dar FPGA" (http://www.syntiac.com/) y (http://darfpga.blogspot.com.es/).
  • C64 PAL con 64K de RAM
  • Impmentación de disquetera 1541 completa, redirigida a SD y en RAW). Sólo lectura.
  • JiffyDOS opcional tanto para la 1541 como para el C64. Esto acelera muy notalemente las cargas.
  • Chip de sonido SID
  • Soporte de joystick, tanto real (norma Atari, SMS, megadrive...) como emulado en pad numérico
  • Switch Video compuesto/RGB - VGA 50Hz (tecla Bloq Desp. / Scroll Lock)
  • Reset (F12)
  • Master Reset (ctrl+alt+backspace)
  • LED testigo de lectura de la disquetera 1541.
Anuncio en el foro

---------------------------------------------------

TECLAS GENERALES DEL MANEJO DEL CORE:

Teclas del CORE (no confundir con las teclas propias del commodore o de JiffyDOS):

- F12 = Reset modo JiffyDOS
- Ctrl+F12 = Reset modo ROM C64 original (para carga de cintas)
- F11 = Rotar entre puertos de joystick
- Insert = Ir al disco 1 de la SD
- RePag = Ir al siguiente disco de la SD
- AvPag = Ir al disco anterior de la SD
- Ctrl+RePag = Ir al disco 10 posiciones más adelante de la SD
- Ctrl+AvPag = Ir al disco 10 posiciones más atrás de la SD
- Fin = Cambiar paleta de colores
- Bloq.Despl. = Cambiar salida de vídeo entre RGB/Video compuesto y VGA
- (-) Guión del teclado numérico = Activar/desactivar scanlines (sólo en VGA)
- (+) Signo "más" del teclado numérico = cambiar polaridad de entrada de audio (EAR). (disponible desde la BETA6).

Mapeo de teclas del C64 (sólo pongo las menos obvias):

- Teclado numérico = Emulación de joystick (teclas 5 y 2 mapeadas a la dirección "abajo", el 0 es el disparo)
- F2, F4, F6, F8 : tal cual (antes de la beta 5 había que hacerlo con shift, como en el C64 real)
- Esc = Start/Stop
- Alt = Tecla commodore
- F9 = Tecla del símbolo de la libra
- F10 = Tecla del símbolo +
- El resto de teclas van mapeadas al estilo de un teclado de PC inglés.

Algunas teclas rápidas / combinaciones de JiffyDOS (sólo las más usuales. Para el más info, buscar en google):

- F1 = Listar contenido del disco actual
- Shift+Esc = Cargar y ejecutar el primer archivo del disco (equivale a LOAD "*",8 + ENTER + RUN + ENTER. (no todos los discos tienen un primer archivo ejecutable)
- /x* (donde x es una o más letras del nombre de un archivo) = equivale a LOAD "x*",8
- @ = Muestra el estado de la disquetera (error, file not found, version del firmware, etc). Útil cuando el led parpadea de forma constante (indica error de la 1541) y no sabemos cual es el error.

Responder