Karoshi MSX Community
05 de Julio de 2021, 07:52:26 pm *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias:
 
   Inicio   Ayuda Buscar Ingresar Registrarse  
Páginas: [1] 2 3
  Imprimir  
Autor Tema: WAVeR again!  (Leído 21917 veces)
0 Usuarios y 1 Visitante están viendo este tema.
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« : 04 de Marzo de 2009, 01:34:06 pm »

Hola!

Como habréis visto, ayer me lié la manta a la cabeza y forcé al máximo el mecanismo de carga que hacía servir en el WAVeR v3. Aunque no me atreva aún a llamarlo WAVeR v4, lo cierto es que las cosas funcionan francamente bien, siempre que la fuente de sonido sea la correcta.

Si queréis probarlo, os dejo este ejemplo. Si no tenéis un MSX real a mano, el openMSX os valdrá para cargar el WAV. Para cargarlo en el ordenador real aseguraos de probar diferentes niveles de volumen y, sobre todo, que no haya ningún filtro funcionando. Recordad que por defecto, el reproductor multimedia de Windows sí que incluye filtros, por lo que no creo que os pueda dar buen resultado.

La instrucción de carga es BLOAD"CAS:",R y necesitaréis un MSX con al menos 64 KB lineales en un mismo slot. No deberíais necesitar ningún POKE para MSX2 y superiores. En MSX2 y 2+, si mantenéis pulsada la tecla SELECT entre que aparece el mensaje "Found" y se muestra el mensaje "Loading", forzaréis la ejecución a 60 Hz. En ordenadores con unidad de disco, quizás sea una buena idea arrancar pulsando SHIFT para que desactive las unidades y no consuma RAM inútilmente.

Para que os hagáis una idea, el WAV generado dura menos de 17 segundos y consigue cargar una ROM de 32 KB. No es una velocidad comparable a la del disco, pero empieza a ser una buena alternativa, ¿no os parece? El mismo fichero, cargado con el WAVeR v2 a 2400 baudios tardaría 2 minutos y 45 segundos. Por lo tanto, la mejora es de un orden de magnitud.

Soy el friki del cassette, lo sé.  Grin

Si alguien se anima a hacer pruebas, que cuente por aquí los resultados. Y así sabréis de qué juego se trata  Wink
« Última modificación: 04 de Marzo de 2009, 05:44:00 pm por robsy » En línea
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #1 : 05 de Marzo de 2009, 01:31:06 am »

He puesto un segundo fichero WAV, con el juego GRID WARS, participante en MSXdev'06, para hacer algunas pruebas adicionales. Como la ROM se comprime muy bien y pasa de 32 KB a un poco menos de 9 KB usando bitbuster, el tiempo de carga total es de 12 segundos. Aún no he implementado la rutina de checksum, por lo que si carga con errores lo ejecutará igual. De hecho, la rutina de cálculo del checksum sí funciona. Lo que no funciona es la parte del conversor a WAV que tiene que implementarlo Sad

GRID WARS (WAV zipeado)
En línea
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #2 : 09 de Marzo de 2009, 02:29:40 am »

Bueno, parece que la gente no se ha entusiasmado demasiado con este asunto, pero que sepáis que tira para adelante. El control de checksum ya funciona y todas las ROMs de hasta 32 KB que se carguen en la página 1 también. Ideal para cargar casi cualquier cosa rápidamente en MSX1/MSX2 sin unidad de disco. La ROM que más tiempo tarda en cargar es MALAIKA (32 KB), con menos de 22 segundos, mientras que la más rápida es G-MONKEY (4 KB), con menos de 9 segundos. Dicho queda.

Si alguien quiere animarse a hacer pruebas, que lo diga.
En línea
xgipe
Karoshi Lover
***
Mensajes: 107


« Respuesta #3 : 12 de Marzo de 2009, 11:46:03 am »

¡Hola!

Hace algún tiempo que quería registrarme por aquí, pero no había manera... Sad

Yo también me considero un fanático de los juegos en formato "cassette", y suelo usar el WAVeR para la carga de juegos en mi Toshiba HX10 y en el SONY HB F9S (que ,por cierto, es un tanto "refinado" en cuanto a las cargas por Tape...).

Ultimamente voy algo "liado", pero me ofrezco para "betatester" de la nueva versión... Ya te comentaré que tal me ha ido con las pruebas. Wink

Un saludo,
En línea
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #4 : 12 de Marzo de 2009, 01:02:19 pm »

Gracias por tu ofrecimiento y bienvenido a este foro.

Todo lo que tengo en este momento es operativo pero la aplicación tengo que portarla desde C a C++ para poderla integrar con los compresores (BitBuster y Pletter). Si te parece, en cuanto tenga algunos WAVs de pruebas para juegos de distintos tamaños (8, 16, 32 KB) y a distintas velocidades (14.700 baudios, 7.350 baudios, 3.675 baudios) hago un ZIP y te lo hago llegar donde me digas. Lo prioritario es comprobar la compatibilidad de los ordenadores y la fiabilidad de los distintos reproductores (PC, CD, MP3, etc.).

Por cierto, que a mi el HB F9S no me da ningún problema en cuanto a fiabilidad de la carga. Lo que sí es verdad es que hay que usar muy a menudo el POKE mágico por el tema de la memoria mapeada. Un follón...
En línea
SapphiRe_MSX
Visitante
« Respuesta #5 : 12 de Marzo de 2009, 01:24:23 pm »

Robsy, sería una buena idea que el WAVeR se limitase a pasar ficheros BIN a WAV y que la conversión de ROM a BIN la hiciera otra aplicación. Así se podrían cargar cosas en BIN sin ningún problema y su utilidad sería mucho mayor.
En línea
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #6 : 12 de Marzo de 2009, 01:29:49 pm »

La idea es incluir soporte nativo también para BIN. Es decir, el WAVeR haría conversiones de ROMs y binarios con compresión y velocidades absurdas, y mantendría también la posibilidad de conversión normal (velocidades aceptadas por la BIOS, sin compresión) para ROM, binarios y basic.

Y para terminar de rematar la jugada, conversión de megaROMs para su carga en MegaFlash, MegaRAM y SCC+ vía cassette. Para los frikis reventados de la vida como yo Wink
En línea
Metalbrain
Karoshi Fan
**
Mensajes: 92


Z80jutsushi


« Respuesta #7 : 12 de Marzo de 2009, 01:30:52 pm »

los compresores (BitBuster y Pletter).

¿No has probado con exomizer, aPLib o pucrunch? Que yo sepa todos ellos ofrecen mejor nivel de compresión, aunque tardan un poco más en descomprimir.
En línea
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #8 : 12 de Marzo de 2009, 03:24:48 pm »

Lo que necesito es lo siguiente:

- Compresor con código fuente en C (idealmente) o C++ (no tan idealmente)
- Descompresor en ensamblador muy compacto en cuanto a tamaño (menos de 150 bytes)

¿Me puedes dar alguna pista sobre los compresores de los que hablas? Lo digo por si tienes información a mano para no tener que Googlear mucho Wink
En línea
Metalbrain
Karoshi Fan
**
Mensajes: 92


Z80jutsushi


« Respuesta #9 : 12 de Marzo de 2009, 06:30:10 pm »

Lo que necesito es lo siguiente:

- Compresor con código fuente en C (idealmente) o C++ (no tan idealmente)
- Descompresor en ensamblador muy compacto en cuanto a tamaño (menos de 150 bytes)

¿Me puedes dar alguna pista sobre los compresores de los que hablas? Lo digo por si tienes información a mano para no tener que Googlear mucho Wink

Pues me temo que nos pasamos en los 3 casos de los 150 bytes (aunque sea ligeramente). Además exomizer necesita un buffer de 156 bytes extra (desechables tras la compresión). Creo que pucrunch tiene compresor en C, exomizer en C++, y en el caso de aPLib la librería está cerrada, pero está compilada para varios compiladores y formatos y se puede usar gratis sin ánimo de lucro.

Exomizer 2:
http://hem.bredband.net/magli143/exo/
y mi descompresor, con alguna optimización adicional:
http://www.speccy.org/metalbrain/exo_v3.zip

Pucrunch:
http://www.cs.tut.fi/~albert/Dev/pucrunch/
descompresor optimizado de zogo:
http://jesus.ferreira.googlepages.com/pucrunch.rar

aPLib:
http://www.ibsensoftware.com/products_aPLib.html
mi descompresor Z80:
http://www.worldofspectrum.org/forums/showpost.php?p=230436&postcount=24
y los de CNGSoft:
http://cngsoft.livejournal.com/268202.html
En línea
xgipe
Karoshi Lover
***
Mensajes: 107


« Respuesta #10 : 12 de Marzo de 2009, 11:17:48 pm »

Gracias por tu ofrecimiento y bienvenido a este foro.

¡Gracias a vosotros por vuestro esfuerzo en mantener vivo el MSX!

Citar
...Si te parece, en cuanto tenga algunos WAVs de pruebas para juegos de distintos tamaños (8, 16, 32 KB) y a distintas velocidades (14.700 baudios, 7.350 baudios, 3.675 baudios) hago un ZIP y te lo hago llegar donde me digas. Lo prioritario es comprobar la compatibilidad de los ordenadores y la fiabilidad de los distintos reproductores (PC, CD, MP3, etc.).

Cuando quieras me lo envías a la cuenta que tengo en mi perfil... Por el momento he probado el Grid Wars en el F9S y puedo decirte que el resultado es espectacular... ¡¡¡He cargado el juego en 12 segundos!!! Shocked Shocked Shocked

Citar
Por cierto, que a mi el HB F9S no me da ningún problema en cuanto a fiabilidad de la carga. Lo que sí es verdad es que hay que usar muy a menudo el POKE mágico por el tema de la memoria mapeada. Un follón...

Pues la verdad es que con las cargas "turbo" suele dar algunos problemas... no es así con el Toshiba  Smiley

Un saludo,
En línea
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #11 : 13 de Marzo de 2009, 01:29:52 am »

Me quedo con toda la información, gracias. Espero poderla diseccionar adecuadamente este fin de semana y decidir de una vez qué esquema de compresión me parece más adecuado para estos fines. Por ejemplo, Pletter y Bitbuster, que son los dos que he probado, tienen sus pros y contras:

+ Pletter comprime mejor que Bitbuster
+ Bitbuster tiene un descompresor muy pequeño (89 bytes) frente al de Pletter (168 bytes)
- Ambos tienen un compresor en C++, lo que me obligará a adaptar el código del WAVeR para integrarlo

Verificando todo lo que me has pasado, procuraré encontrar el que consiga un mejor equilibrio en estos tres aspectos. Ahora mismo, aunque Pletter dé mejor compresión, el incremento de tamaño del cargador debido al código del descompresor se come el ahorro de tiempo, por lo que en realidad, todos los juegos ROM de entre 8 y 48 KB cargan más rápido usando BitBuster a velocidad máxima.

Me alegra saber que te ha funcionado el ejemplo en un MSX real. No porque pueda haber problemas de compatibilidad a este nivel, sino por que así sabemos que la fuente de sonido que empleas es fiable y las pruebas podrán depurarse de forma más sencilla. Por cierto, que si cargas en un MSX2, si mantienes apretada la tecla SELECT durante el cambio que se da entre que aparece el FOUND y hasta que aparezca el LOADING, cambiarás la frecuencia de vídeo.

Me toca seguir un rato más... Hasta pronto
En línea
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #12 : 13 de Marzo de 2009, 09:29:06 am »

Por cierto, que googleando un poco, he dado con algunos programas míos del paleozoico: WAVeR v.1. ¡Qué miedo da!
En línea
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #13 : 14 de Marzo de 2009, 02:11:05 am »

Para los valientes que me quieran echar un cable, he puesto una versión previa del WAVeR v4 on-line. No es una aplicación tan práctica como debería, porque depende aún del un cargador externo que se adjunto (fichero binario) y de un compresor también externo (Bitbuster en este caso). Lleva sus propias instrucciones detalladas, por lo que ya sabéis. Cuento con vosotros para darle cañita al tema.
En línea
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #14 : 14 de Marzo de 2009, 08:09:58 pm »

He detectado que, por error, en la versión distribuida ayer no se había activado el control de checksum en el cargador, lo que es básico para asegurarnos de que la carga ha sido correcta. Por ello, he corregido este bug y he aprovechado para depurar algún aspecto más.

Tenéis la nueva versión aquí: WAVeR v4a. Si alguien hace alguna pruebecilla, que nos cuente cómo le ha ido.
En línea
Páginas: [1] 2 3
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.21 | SMF © 2013, Simple Machines XHTML 1.0 válido! CSS válido!