http://personal.auna.com/casariche/k7zx.1.4.zip
* Corregido bug para convertir snapshots
Funciona correctamente para los formatos .sna y .z80. Es compatible con las
varias versiones del formato z80 pero la informacion relativa a los modelos
128k es ignorada. El cargador solo está previsto para el modo 48k. En caso
de que el fichero z80 contenga un snapshot de 128k se convierte a 48k; si el
juego es 48k funcionará sin problema.
* Optimización del método delta
El método delta funciona a 25200 y 19600 bps. Para cargar un snapsot de 48k
(sin contar el tiempo de carga del cargador) los tiempo teoricos son 15,6
segs y 20 segs respectivamente..
Si alguno cronometró los tiempos reales (pj para el Manic miner) con la
versión anterior comprobaría que a 25kbps tardaba menos del previsto (12
segs) y a 19kbps más (24 segs) .
Esto era asi porque la misma rutina servía a la vez para las dos
velocidades. Ahora para cada velocidad se adapta la rutina con una tabla
propia. Con este sistema sistema además se puede elegir optimizar
estadísticamente la tabla con lo que se puede ganar un 5% adicional de
velocidad.
Optimizado los 48k de un snapshot del Manic Miner se cargan en 11 y 16 segs.
* Nuevas velocidades para método slow
A las velocidades de 11kbps y 14kbps se añaden las velocidades de 12kbps y
17kbps.
* Opción de generar los wav en estereo a 16 bits.
Para poder pasarlos directamente a un cd.
* Opción de convertir todos los ficheros (*.tap, *.tzx, *.sna, *.z80) de un
directorio de forma automática.
A la hora de convertir ficheros .tap y .tzx es necesario que cada bloque de
bytes tenga su cabecera.
* Puesta en práctica
He hecho pruebas con un + y un +3 y con cuatro tarjetas de sonido. Con
resultados varios pero hasta en el peor de los casos es posible una carga
rápida.
En dos tarjetas (para cualquier modelo de spectrum) es imposible alcanzar
velocidades de 25, 22 y 17 kpbs. El resto de velocidades , incluida 19kbs,
son viables en todas las tarjetas.
Los resultados en el + y en el +3 son ligeramente distintos.
Mientras en el +3 es posible cargar con el metodo milks a 19kpbs sin
problema en el + hay que ajustar mucho para conseguir 16kbs.
En cambio el + llega a cargar a 25kbs usando delta y el +3 se queda en
19kbsp.
Aventuro que los resultados del plus serián los de un gomas y los del +3 los
de un +2 negro. Faltaría probar en un 128+ y en un +2 gris.
La polaridad de la onda.
En teoría todos los métodos (salvo milks a 16 , 19 y 25kbps) funcionan igual
para un wav que para el mismo wav invertido. Pero en la práctica no es lo
mismo.
Utilizando el método delta hay una polaridad que funciona a la prefección
pero la invertida puede meter algun error. Es cuestión de probar una onda y
su invertida creando dos wavs diferetes. O con el mismo wav probar con la
tecla 9 pulsada durante toda la carga (teclear LOAD"", pulsar y mantener la
tecla 9 , darle al play). El + y el +3 funcionan con polaridades opuestas:
si un wav funciona bien en el +, en el +3 funcionará bien ese wav invertido.
> http://personal.auna.com/casariche/k7zx.1.4.zip
A-LU-CI-NAN-TE!! Lo he estado probando, y aunque no he pasado de 14k, para mi ya
es un logro!
> He hecho pruebas con un + y un +3 y con cuatro tarjetas de sonido. Con
Yo las pruebas las estoy haciendo en un 48K, issue 6A. Las tarjetas son:
- La interna del PC, una C-Media o algo así (la típica AC97)
- Una Sound Blaster Live! 5.1
> En dos tarjetas (para cualquier modelo de spectrum) es imposible alcanzar
> velocidades de 25, 22 y 17 kpbs. El resto de velocidades , incluida 19kbs,
> son viables en todas las tarjetas.
Podrías especificar qué tarjetas, a qué volumen, a qué nivel de bajos y agudos,
etc... has hecho las pruebas?
Hay alguna opción para que la frecuencia de muestreo final del WAV sea de 48 kHz
en lugar de 44,1? Las tarjetas que soporten de forma nativa esta frecuencia de
muestreo podrán enviar una onda más... "perfecta", no?
¿has probado las pantallas patron o directamente te has aventurado con algun
juego?
¿Que tipo de fallos de carga has observado?
> > En dos tarjetas (para cualquier modelo de spectrum) es imposible
alcanzar
> > velocidades de 25, 22 y 17 kpbs. El resto de velocidades , incluida
19kbs,
> > son viables en todas las tarjetas.
>
> Podrías especificar qué tarjetas, a qué volumen, a qué nivel de bajos y
agudos,
> etc... has hecho las pruebas?
>
1 ESS Solo1 (la de un thinkpad ) através de la salida Phones (el portatil
tiene potenciometro de control de volumen )
2 Yamaha Ds1x através de la salide Line
3 Sound Blaster AW64 atraves de salida SpkOut
4 SB16 Wave04 (2200) através de salida SpkOut
Las mejores son las SB. La del porttil va bien pero tiene problemas con las
frcuencias de 22 kHz. La peor la Yamaha ( solo el método slow da garantías).
El volumen mas bien bajo (1/3 del total) en las SB y funciona sin problemas.
En las otras el volumen a tope.
El volumen no debe ser problema para los metodos shavings (slow y delta) ,
que sea suficiente para cargar la parte BASIC. Los otros metodos requieren
un ajuste de volumen más cuidadoso.
En cuanto a graves y agudos en el medio (no presté atención a eso). Lo que
sí hice es deshabilitar los efectos esteroe 3d y similares y puse en
silencio todos las entradas de audio distinta al wav.
> Hay alguna opción para que la frecuencia de muestreo final del WAV sea de
48 kHz
> en lugar de 44,1? Las tarjetas que soporten de forma nativa esta
frecuencia de
> muestreo podrán enviar una onda más... "perfecta", no?
Mmmmmm. Interesante punto.
De hecho, si te fijas en las fuentes , hay restos de la frecuencia de
muestro como parámetro. Hice wavs con distintas frecuencias muestreo (con el
objetivo de conseguir más velocidad) y en el emulador funcionaba pero las
pruebas en real fueron desastrosas. Tanto que lo descarté y me concentré en
la standard de 44100.
¿Por qué funcionó tan mal? Pensando en ello más tardé me planteé que la
tarjeta de sonido tendría fisicamente un reloj ajustado a los 44100 y que
otras frecuencias se ajustaban haciando resampleado. Tanto se notaba que
hasta de oido se notaba la diferencia.
Ahora con lo que dices de frecuancias nativas la cosa me parece más clara.
Si, se podría poner como opción los 48000 y como efecto colateral quizás
estemos en disposición de batir otra vez el record mundial y alcanzar los
27.428 bps!!!
44100 en hexadecimal es ac44. Si abres el fichero wav con un editor
hexadecimal y cambias las cadenas 44ac que veas en la cabecera por 80bb
($bb80=48000) ya tienes el wav con la frecuencia de muestreo de 48000.
El problema es que seguramente ahora la parte Basic no cargará. Habrá que
cargar la parte basic con el wav a 44100.
Y luego queda ajustar las rutinas a la nueva frecuencia. En algunas es más
sencillo que en otras. Me pondré manos a la obra.
De todas formas ¿como se puede saber cual es la frecuencia nativa de una
tarjeta de sonido?
> 44100 en hexadecimal es ac44. Si abres el fichero wav con un editor
> hexadecimal y cambias las cadenas 44ac que veas en la cabecera por 80bb
> ($bb80=48000) ya tienes el wav con la frecuencia de muestreo de 48000.
No, no quiero que vaya más rápido. Quiero que tenga más muestras por período.
Eso debería mejorar la forma de onda saliente, al tener, digamos, más "puntos".
Lo he intentado resamplear con el Sound Forge, pero el muy puñetero me mete
siempre algo de filtro durante el resampling y el resultado es desastroso. Para
que funcione, el resampling debería hacerse durante la propia generación de la
forma de onda.
Una tarjeta además que soporte 48 kHz de forma nativa tendrá mejores filtros de
salida, con la banda pasante quizás por encima de los 20 kHz, al haber más
"margen" por el aumento de la frecuencia de muestreo.
> De todas formas ¿como se puede saber cual es la frecuencia nativa de una
> tarjeta de sonido?
Preguntándosela a través de DirectSound. También puedes crear un WAVEFORMATEX
con la tasa de muestreo a 48 kHz e intentar abrir la tarjeta con waveOpen() . Si
te da un handle válido, es que soporta los 48 kHz. Cuidado! porque este último
método puede "engañarte" si el driver de la tarjeta de sonido se encarga de
resamplear los 48 a 44,1. DirectSound sí te dará las "capabilities" reales de tu
tarjeta, diciendo cuáles son nativas y cuáles emuladas por software.