Tras un par de mesecillos de trabajo e investigación os traigo una nueva actualización del core con un buen puñado de nuevas mejoras y bugfixes. Espero que sea de vuestro agrado
Changelog BETA7:
- 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 . 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 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.
- 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.
Core BETA7b: (enlace EXTERNO no vinculado al foro ni la web):
https://github.com/antoniovillena/zxuno ... 1?raw=true (no autodetectará el setting de vídeo de la BIOS, pero lo demás funcionará perfectamente)
Bueno, pues sigo trabajando en mejoras para próximas versiones
Aquí os dejo un par de fotillos cargando Robocop y Rainbow islands de cassette, ahora que ya funcionan sus cargas: