Karoshi MSX Community
05 de Julio de 2021, 07:53:21 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.
SapphiRe_MSX
Visitante
« Respuesta #30 : 19 de Marzo de 2009, 04:40:30 pm »

Por supuesto: se trataría de hacer un conversor multifrecuencia. 8192, 11025, 22050, 44100, 48000 Hz. Menudo curro!

Bueno, pero ya no es tanto curro, ¿verdad? Con todo lo que tienes hecho sería ir juntando partes de aquí y de allá para poder tenerlo todo en una única utilidad.
En línea
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #31 : 19 de Marzo de 2009, 07:57:28 pm »

No, la parte del conversor no tiene tanto trabajo. Lo que me fastidia es que para integrarlo con los compresores (Bitbuster y/o Pletter) tendré que traducirlo todo a C++, que no es santo de mi devoción, y me obligará a refrescar mis conocimientos al respecto. Por lo tanto, muuuucha pereza en este sentido. Y lo que es peor, los ejecutables son gigantescos al usar GNU G++ Sad

Una vez hecho el cambio, no habrá problemas en incluir las siguientes opciones: compresión (on/off), velocidad (desde 1200 baudios hasta los chopecientosmil), frecuencia (8192 - 48000 Hz) y algunos aspectos para potenciar la compatibilidad (arranque directo, modo inverso, etc.). La idea es que soporte tanto basic (tokenizado o no, aunque no habrá aquí carga turbo), binario (a través de la BIOS o turbo, con o sin compresión) y ROM.

Si tenéis alguna sugerencia sobre aspectos exóticos, hacedla ahora para poderlo incluir en el diseño final de la aplicación. Igual hay alguna paranoia que no me he planteado aún y podría venir bien...

Lo que no se va a solucionar de forma inequívoca es qué hacer con máquinas que no disponen de 64 KB en un mismo slot. Las opciones son dos: parchear las ROMs, con lo cual las ROMs que jueguen con llamadas inter-slot dejarán de funcionar (léase todas las de 48 KB), o no parchearlas y que se fastidie quien no disponga de 64 KB lineales. Mi opción es la segunda, por el momento.

El otro problema son los ordenadores con BIOS "raras", en los que será difícil ejecutar ROMs en BASIC o mixtas con binario y basic. Un ejemplo es el Sony HB-75. Al lanzar la llamada estandar para arrancar ROMs (7D75h) lo que se ejecuta es el PERSONAL DATABANK.

Mi pregunta, oh profundos conocedores del estándar, es si esta llamada que empleo, 7D75h, es realmente estándar o puedo encontrar otro punto de entrada que consiga el mismo efecto y no casque en algunos modelos. Me fastidiaría bastante tener que replicar el proceso de carga de BASIC-ROM, aunque podría hacerse Tongue
En línea
SapphiRe_MSX
Visitante
« Respuesta #32 : 19 de Marzo de 2009, 08:20:05 pm »

Si tenéis alguna sugerencia sobre aspectos exóticos, hacedla ahora para poderlo incluir en el diseño final de la aplicación. Igual hay alguna paranoia que no me he planteado aún y podría venir bien...

¿Qué te parece la opción de incluir una pantalla de carga al generar el WAV?

Citar
Lo que no se va a solucionar de forma inequívoca es qué hacer con máquinas que no disponen de 64 KB en un mismo slot. Las opciones son dos: parchear las ROMs, con lo cual las ROMs que jueguen con llamadas inter-slot dejarán de funcionar (léase todas las de 48 KB), o no parchearlas y que se fastidie quien no disponga de 64 KB lineales. Mi opción es la segunda, por el momento.

No creo que haga falta. La idea sería buscar los 64K de RAM y colocar la ROM en su sitio. Luego, para arrancar la ROM lo mejor sería colocar la BIOS en la página 0, la ROM (en RAM) en la página 1 y luego llamar a la dirección que se encuentra en 4002. Si la ROM es BASIC o no arranca en la página 1, simplemente se mira la dirección en 8002 y listos. Pero lo ideal sería replicar la configuración de SLOTS que pone la BIOS al arrancar una ROM, de página 0 a 3: BIOS, ROM, XX, RAM.

Luego la propia ROM se debería colocar en su sitio sin problema alguno... ¿Qué te parece?
En línea
xgipe
Karoshi Lover
***
Mensajes: 107


« Respuesta #33 : 20 de Marzo de 2009, 09:32:07 am »

Si tenéis alguna sugerencia sobre aspectos exóticos, hacedla ahora para poderlo incluir en el diseño final de la aplicación. Igual hay alguna paranoia que no me he planteado aún y podría venir bien...

¿Qué te parece la opción de incluir una pantalla de carga al generar el WAV?


Me apunto a la propuesta de SapphiRe.

Y de paso, pregunto: ¿has pensado en una interfaz de usuario para Güindous?...
No lo digo por mí, que estoy habituado al modo MS-DOS, sino por hacer la aplicación algo más amigable a los "sufridores" del entorno Micro$oft...

Saludos! Smiley
En línea
SapphiRe_MSX
Visitante
« Respuesta #34 : 20 de Marzo de 2009, 10:26:19 am »

Y de paso, pregunto: ¿has pensado en una interfaz de usuario para Güindous?...
No lo digo por mí, que estoy habituado al modo MS-DOS, sino por hacer la aplicación algo más amigable a los "sufridores" del entorno Micro$oft...

Hombre, quizá sería mejor que la herramienta fuera en línea de comando y luego hacer una interfaz sobre ella... y ya puestos. ¿Por qué en C? ¿No podrías hacerlo en Java? Así ya tendríamos la misma herramienta para Win, Linux, Mac...
En línea
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #35 : 20 de Marzo de 2009, 10:31:25 am »

Os cuento: ayer hice las pruebas necesarias para probar qué tal funcionaría todo a 48.000 Hz, y tengo buenas y malas noticias. Las buenas es que es factible generar la onda. La mala es que con el esquema de carga actual, al máximo de velocidad (que se incrementa en un 10% respecto al funcionamiento a 44.100 Hz), no funciona en Z80 a 3,5 MHz. Tendré que optimizarlo para velocidad aún más, y no sé si seré capaz de lograrlo. Eso sí, en un MSX2+ y poniéndolo a 5,75 MHz va muy suave.

Me encerraré este fin de semana en optimizar la velocidad de ejecución, pero dudo que consiga el máximo de velocidad en procesadores a 3,5 MHz y onda a 48.000 Hz. La velocidad real de carga en el peor caso es aquí de 16.000 bits por segundo, es decir, aproximadamente unas 2 KB/segundo reales sin incluir compresión. Aquí igual sí que tenemos un límite físico en la capacidad de sampleo del MSX Sad

En cuanto a interfaces, reconozco que sería muy cómodo disponer de un frontend en condiciones, pero no es ahora mismo prioritario. Me preocupa más que el desarrollo sea sólido. Después siempre se puede hacer una chapuza de interfaz en el lenguaje que sea. Si la tengo que hacer yo para Windows, haceros a la idea de que será un cacharro en Delphi  Roll Eyes
En línea
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #36 : 17 de Junio de 2010, 08:35:18 pm »

Apunte para los cintófilos anacrónicos agudos: usando WAVs a 64 KHz y el modo de 5.37 MHz de los MSX2+ de Panasonic he alcanzado una velocidad de carga física de 24.000 baudios. Si a eso le añadimos una buena compresión, tipo BitBuster o Pletter, la velocidad de carga efectiva puede superar los 30.000 baudios fácilmente. Sigue estando lejos de otras alternativas más modernas, pero ahora que no se fabrican más discos de 3,5" puede ser una opción a tener en cuenta, especialmente porque al carecer de partes móviles es menos susceptible a las averías que las unidades de disco clásicas. No entro en CF-IDE y SD, que son alternativas mucho más fiables y rápidas.

En cualquier caso, pasar de los 1.200 baudios de la mayoría de las cintas de los 80s a más de 30.000 me parece una buena cosa. Además, no habría problema en utilizar estas técnicas para cargar megaROMs en una MegaFlashSCC.

Ahora tengo que seguir peleando, que aún no he conseguido que el MSX a velocidad de CPU estándar cargue WAVs a 48 KHz. A 44.1 KHz sí he alcanzado la velocidad máxima que es de 16.540 baudios reales, por encima de 20.000 con compresión. Para haceros una idea, a la velocidad actual y en un MSX estándar, son algo así como 2,5 KB/sec, es decir, que una ROM de 32 KB se cargaría en unos 13 segundos, más el cargador, es decir, unos 17 segundos en total.

Creo que haré caso a Sap y programaré únicamente un conversor de binarios a WAV. Y que cada uno se haga después las conversiones de ROMs que quiera. Me vuelvo al curro...
En línea
Jon_Cortazar
Administrator
Karoshi Forum's God
********
Mensajes: 2777



WWW Email
« Respuesta #37 : 18 de Junio de 2010, 11:10:24 am »

Lo de la pantalla de carga, que yo sepa, ya estaba funcional en anteriores WaveR: aparecía un texto, con el nombre del juego, que podía ser pasado a través de la linea de comando (corríjame, señor pitpan, si me equivoco)

Como propuesta, estaría bien poder hacer una especie de "batch converter", de forma que WaveR pudiera generar 1 solo WAV a partir de varios archivos (es decir, por ejemplo, un cargador de BASIC y 3 binarios): sería buena poder indicar el nombre de varios archivos a convertir e incluso el período (en segundos) de silencio entre un bloque de datos y otro. De esta forma se podrían crear archivos de cinta "completos" y "a mano" en lugar tener que convertir archivo a archivo y luego unirlo todo en un programa de edición de onda. En fin, que no sería una nueva funcionalidad en la generación de los bloques, sino la posibilidad de poder entrar más de un archivo con espacios de silencio determinados entre ellos.
En línea

Jon Cortázar Abraido (aka El Viejo Archivero)
RELEVO Videogames
[Dioniso: La cafeína está haciendo su trabajo; yo espero hacer el mío.]
[pitpan: Me sigue pareciendo más productivo jugar al SNAIL MAZE que seguir esta discusión.]
xgipe
Karoshi Lover
***
Mensajes: 107


« Respuesta #38 : 18 de Junio de 2010, 02:03:35 pm »

Ahora tengo que seguir peleando, que aún no he conseguido que el MSX a velocidad de CPU estándar cargue WAVs a 48 KHz. A 44.1 KHz sí he alcanzado la velocidad máxima que es de 16.540 baudios reales, por encima de 20.000 con compresión. Para haceros una idea, a la velocidad actual y en un MSX estándar, son algo así como 2,5 KB/sec, es decir, que una ROM de 32 KB se cargaría en unos 13 segundos, más el cargador, es decir, unos 17 segundos en total.

Como cintófilo anacrónico agudo celebro la noticia, y pongo a vuestra disposición mis MSX de primera y segunda generación para testear lo que se tercie...

Un saludo,
 Wink
En línea
aorante
Karoshi Maniac
****
Mensajes: 451


nuTella Power!


WWW Email
« Respuesta #39 : 20 de Junio de 2010, 07:04:13 pm »

@pitpan
Me parece genial tu proyecto!
Tienes algún sitio WEB donde se pueda descargar la tool y alguna demo?
Quiero probarlo y hacer un post en mi blog y me gustaría poner un link a la web del proyecto.
En línea

--------------------------------- ------ ----- --- -- -
aorante/303bcn
http://aorante.blogspot.com
http://twitter.com/#!/aorante
http://303bcn.wordpress.com/
--------------------------------- ------ ----- --- -- -
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #40 : 20 de Junio de 2010, 09:07:18 pm »

De momento no tengo nada preparado, aorante. Pero en breve espero poder subir un mini-conversor al apartado del foro que se dedica al software de Karoshi. A ver qué tal.
En línea
Mortimer
Karoshi Lover
***
Mensajes: 216


WWW
« Respuesta #41 : 21 de Junio de 2010, 11:27:07 am »

Acabo de descubrir este hilo y me lo he tenido que leer entero. Como usuario durante muchísimos años únicamente de un HB-F9S, mis vivencias nostálgicas con el MSX son 95% cinta, 4% cartucho, y 1% disco... Después, cuando apareció fMSX, hice un programita en Pascal (me parece recordar) para poder preservar las cintas (No protegidas) capaz de interpretar el sampleo de las ondas, y reconstruir un .DSK. El primer juego que me funcionó fue el Turbo Girl  Roll Eyes. Creo que sigo teniendo los fuentes por algún sitio por si sirven para algo.

Me encantaría poder cargar los juegos desde CD a 44100Hz en un tiempo razonable ahora que ya están rozando lo retro. De hecho, la última vez que estuve en el rastro vi algunos Disckman sony que debían ser perfectamente contemporáneos de nuestros ordenadores. A ver si vuelvo y pillo alguno para que vayan a juego Cheesy

Como 'feauture' no he visto que se haya comentado hacer que se pueda dejar una pausa definible entre cada par de bloques, por si quieres cargar portadas o animaciones tal y como estaban en la cinta original (Como los logos de Topo o Erbe), porque obviamente no habrá ningún remote connector.

Pitpan, si necesitas algo de ayuda con programación en C++ (O hacerlo en Java como propone SapphiRe) , beta tester o lo que sea relacionado con esto no dudes en darme un toque.

PD: Si te preocupa el tamaño del ejecutable, no sé si será porque no conoces el mejor shrinkreador-compresor libre que existe: http://upx.sourceforge.net/
« Última modificación: 21 de Junio de 2010, 01:06:36 pm por Mortimer » En línea
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #42 : 21 de Junio de 2010, 01:02:38 pm »

Desde CD, he conseguido una señal bastante fiable a un 50% de la velocidad máxima, es decir, a unos 8.300 baudios. Si a esto le añadimos una compresión estándar, la mejora no es poca. Es decir, con este sistema, la limitación es que los CDs de audio no admiten más de 99 pistas. Se pueden multiplexar los canales L y R, y conseguir así 198 juegos por CD. Tampoco va mal... Puedes tener en unos pocos CDs una colección bastante importante Wink
En línea
Mortimer
Karoshi Lover
***
Mensajes: 216


WWW
« Respuesta #43 : 21 de Junio de 2010, 01:11:33 pm »

Desde CD, he conseguido una señal bastante fiable a un 50% de la velocidad máxima, es decir, a unos 8.300 baudios. Si a esto le añadimos una compresión estándar, la mejora no es poca. Es decir, con este sistema, la limitación es que los CDs de audio no admiten más de 99 pistas. Se pueden multiplexar los canales L y R, y conseguir así 198 juegos por CD. Tampoco va mal... Puedes tener en unos pocos CDs una colección bastante importante Wink


Bueno, la limitación de las 100 pistas quizás no importe mucho, porque de todas formas sólo hay 80 minutos disponibles por CD y como el tamaño tampoco se va a reducir brutalmente creo que se alcanzará antes el límite de tiempo que el de pistas. Si no, lo de usar los dos canales es muy buena idea.

(PD: Creo que he modificado mi post anterior justo después de que lo leyeras)
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!