JSpeccy v0.93.1

Publico la versión 0.93.1, más por "obligación" que por tener muchos cambios. El pasado día 17 de julio quedó obsoleta la versión 7 de Java y, por cuestión de seguridad, no debería seguir usándose.

Esto conlleva generar un .jar que solo pueda ejecutarse en Java 8, aprovechando de paso alguna de las novedades de la nueva versión. Todo esto no hubiera sido necesario de no ser por un detallito: un cambio en el manejo del teclado en Java que, aunque uniformiza su funcionamiento entre plataformas, afecta al comportamiento en plataformas Unix.

Como pasa infinidad de veces en informática, las nuevas versiones traen muchas mejoras documentadas y varias "peoras" sin especificar. Lamentablemente, éste es tambien nuestro caso. Java 8 incorpora de serie un bug en el sistema de redibujado de Swing que afecta a JSpeccy. He estado esperando a ver si alguna versión nueva de Java 8 solucionaba ese bug pero, de momento, no ha sido así.

Afortunadamente, hay una manera sencilla y multiplataforma de evitar el problema. Se trata de llamar a JSpeccy de la siguiente forma: java -Dsun.java2d.opengl=True -jar JSpeccy.jar

Si no se especifica que Java debe usar el path OpenGL para el dibujado, el emulador funcionará, pero no se actualizará la zona de juego como debería. Si en algún momento arreglan el problema, lo avisaré. Conste que no es malo usar el path OpenGL, porque en realidad algunas cosas ganan, como el escalado de la ventana, que se hace por hardware en lugar de por software y, por tanto, es más rápido.

Por lo demás, no hay cosas nuevas apreciables. Si hay, en cambio, algunas correcciones y mejoras:

  • Corregido un problema menor con la generación de samples de sonido.
  • El filtro del beeper es un poco menos agresivo.
  • Corregido un problema esporádico con la emulación de las envolventes del AY-3-8910.
  • La ROM estándar para el modelo +2A es la v4.1, no la v4.0 que suele usarse en el +3. De hecho, no he visto ningún +2A con la versión 4.0. Esto obliga a borrar el archivo JSpeccy.xml, que se generará de nuevo al arrancar.
  • Modificación experimental al código que mezcla el sonido del beeper y del AY para intentar dar más volumen de sonido a ambos.
  • Al cambiar de modelo de Spectrum, parar la cinta primero si es que ésta está en marcha.
  • Corregido un error en el método de carga automática de cinta que afectaba al manejo del teclado en el juego Bubble Bobble tras la carga.
  • La velocidad de carga rápida ahora acepta porcentajes de velocidad mayores de 9999. Espero que tengas una máquina tan rápida como para eso... :)

Y esto es todo. No es mucho para los 16 meses transcurridos desde la última versión, pero ha sido un periodo muy complicado, especialmente en lo profesional, y no he tenido el tiempo, ni las ganas, ni la motivación suficiente como para poder hacer mucho más. Esperemos que sea cierto eso de que no hay mal que cien años dure y los próximos meses sean mejores. Ideas no me faltan, afortunadamente.

Avisar también a todo el mundo que durante este mes de agosto dejará de existir la dirección de correo que tenía hasta ahora. La nueva la tenéis al final de esta página y en el diálogo "Acerca de..." del emulador.

Por último, me gustaría dedicar esta versión a mi tío Juan, fallecido el pasado Mayo tras una larguísima y penosa enfermedad y mandar un fuerte abrazo a mi tía y mis primos que han pasado por un trance verdaderamente duro.