Tras recibir un informe de error de un usuario, decidí que ya era hora de actualizar un poquito FBZX. Sin embargo, estoy tan acostumbrado a trabajar orientado a objeto con Vala y Python que no me apetecía ponerme a trabajar en C puro y programación funcional, así que me lié la manta a la cabeza y refactoricé el código de FBZX en C++. El motivo principal fue reescribir, esta vez sí desde cero, el código del emulador de cinta. Al utilizar herencia simplifica mucho el código, al permitir compartir mucho de él entre ficheros TAP y TZX. Además, ahora permite hacer cosas que antes no eran posibles, como por ejemplo carga rápida de ficheros TZX, e incluso grabar en ambos formatos.
Ya puestos, aproveché para pulir la interfaz y cambiar la tipografía por otra más elegante (y además, proporcional, gracias a código extraído de TTOS). Y también aproveché para añadir detalles extra, como por ejemplo ruido en la entrada de audio cuando la cinta no está en marcha (de manera que el borde parpadee cuando el sistema está esperando a que se ponga en marcha la cinta), o que cuando la cinta esté reproduciéndose el emulador trabaje a máxima velocidad, y que vuelva a velocidad normal cuando se pause.
También corregí algunos bugs, como por ejemplo algunos problemillas que había con la carga y grabación rápidas, sobre todo en modo +3. También retiré todas las palabras clave «register» e «inline» de C porque daban problemas a la hora de compilar con GCC 5. Ah, y al listar ficheros para escoger un TAP, TZX, SNA, etc. aparecen ordenados alfabéticamente, lo que simplifica la búsqueda. Y, por supuesto, limpieza de variables no usadas, etc.