HispaMSX

Z380 y MP3

2000-05-23 17:54:21

Va, 23 Mayo 2000

 Hola a todos.

Aviso de que este mensaje es bastante largo de leer. Trata acerca del Z380 y
del MP3, explicando claramente muchas cosas.
Quien no le interese el tema del Z380, no necesita seguir leyendo este
mensaje.
Pero quien crea que alguna vez va a dar una opinion sobre el tema, por
favor, lea este mensaje.

Esto es en respuesta al mensaje de Ag0ny en HispaMSX acerca del Z380 y del
MP3.
Personalmente lamento haber gastado 2 horas en escribir este mensaje, en
lugar de haberlas gastado programando en mi MSX. Pero en honor a la verdad,
he tenido que escribirlo.
Aunque el tono de mi mensaje sea un poco brusco, permiteme que asi sea, para
poder enfatizar ciertos detalles.

APARTADOS:
1- El MSX no parece capaz de reproducir MP3, salvo que se le acople un
decoder externo.
2- El Z380, tal como lo ha montado Padial, es la MAS POTENTE de las formas
en que un Z380 se puede conectar al MSX.



- - - - - - - - - - - - - - - - - - - - -
1- El MSX no parece capaz de reproducir MP3, porque es lento respecto a lo
que el MP3 necesita.

Si apuramos mucho, podríamos reproducir algun tipo de MP3 en un Turbo R,
pero a pocos KHz y MONO. Y eso, despues de varios meses de trabajo por parte
de los programadores.
Esta calidad no interesaria a NADIE porque seria muy deficiente, y ademas,
la mayoria de los ficheros MP3 que circulan por la red, son de muy alta
calidad, entre 128Kbits/seg y 256 Kbit/seg. Solo algunos de 32Kbits/seg
circulan por la red, y es porque son "promos" a 22KHz y MONO de algunas
novedades.

La unica posibilidad de reproducir MP3 en un MSX es mediante un dispositivo
externo que convierta los datos MP3 en ondas, y las mande directamente a una
salida de audio, o bien al mezclador de audio del MSX (en cuyo caso sonaria
MONO)
Es decir, una especie de cartucho con salidas de audio (como el MModule, o
Moonsound).

Esta posibilidad, si que es muy interesante. Espero que todos los intentos
de hacer sonar MP3 en un MSX se orienten hacia una solucion Hardware. No
debe de ser muy caro, y encima no sobrecargaria el sistema MSX si se le dota
de una RAM capaz de almacenar algunos minutos de musica MP3.

En el mercado HiFi, estan proliferando multitud de reproductores portatiles
de MP3, bien desde tarjetas de memoria de 32 o 64 Megas, o bien directamente
desde CD-R.

La idea, es basarse en el hardware de estos perifericos, y construir /
adaptar uno para MSX.

Si todavia alguien piensa en hacer una solucion via software para MSX, aun
respetando su opinion, creo que seria mas facil hacer volar un Seat Panda, o
que un perro hable.

Y por favor, tened en cuenta esta consideracion: En el caso de que fuese
posible reproducir algun tipo de MP3 en un MSX, aun sacrificando varios años
en el intento. Mereceria la pena? Seguro que la gente no querria comprar ese
software, sino que fuese de dominio publico, como pasa en el ambito PC. Y
encima, habria muchas protestas por la baja calidad resultante, o porque no
soporte un futurible MP4 o MP5.
Creeis que es justo ? Creeis que un programador puede dejar un trabajo o
unos estudios, dedicar meses a tratar de reproducir MP3 en un MSX, y encima
sin cobrar un duro y aguantando criticas ?  ( Antes de nada, decir que yo no
me creo capaz de lograr lo del MP3, pero si recomendaria a quien fuese
capaz, que NO lo intentase, que se dedicase a otras cosas mas productivas,
como acabar con las guerras, el hambre, y todo eso )

Por otro lado, habeis oido hablar de los radio-cassettes y de los
reproductores de CDs ??
Sirven para escuchar musica. Si no tienes un PC o un cacharro que reproduzca
musica, puedes usar un radio-cassette, Minidisc, CD-portatil, y otros
cacharros.

Yo tengo un poco de todo. Tengo un PC nuevecito, con el que paso CDs a MP3,
y los escucho mas tarde.
Pero no lo uso mucho. Prefiero grabar una cinta, y poder escucharla en el
walkman o radiocasette, que me los puedo llevar a cualquier habitacion.

Y si alguien no puede vivir sin MP3, pues que sepa, que por unas 40.000
pelas, se puede comprar un Pentium usado, que va a ir como un cohete
reproduciendo MP3 mientras una tia en bolas baila por la pantalla, y de
internet baja ficheros a 256 Kbits/seg.

Lo que quiero decir, es que "a ver si nos centramos un poco" en lo que es el
MSX.
Quien quiera que el MSX haga todo lo que hacen los PC modernos, pues alla
con sus sueños.






- - - - - - - - - - - - - - - - -

2- El Z380, tal como lo ha montado Padial, es la MAS POTENTE de las formas
en que un Z380 se puede conectar al MSX.

Antes de todo, hablo CONOCIENDO el asunto a fondo, y desde el punto de vista
de DIPLOMADO, PROGRAMADOR, DISEÑADOR y usuario que soy, tanto de MSX como de
PC.

Repito: Padial ha hecho con el Z380 lo MAS que se puede hacer.

Permitidme explicar el POR QUE de todas las cosas.


A) EL HARDWARE INTERNO DEL MSX SOLO SOPORTA 3.57 MHZ
Entonces, por que alguien se queja de que la tarjeta Z380 enchufada al MSX
no pueda acceder al hardware interno del MSX ??????
Si pudiera hacerlo, seria a la misma velocidad que el Z80.
Entonces, PARA QUE !!!!!

B) SI QUE EXISTE FORMA DE QUE EL Z380 ACCEDA AL HARDWARE INTERNO DEL MSX
DIRECTAMENTE
Leonardo ha hecho pruebas, mediante las cuales, el Z380 es capaz de
inhabilitar al Z80, y asi apoderarse del control del BUS interno del MSX y
acceder a los perifericos directamente. Para esto, solamente hay que llevar
un cable especial desde la tarjeta Z380 hasta una patilla del Z80.
Pero esta posibilidad NO SIRVE PARA NADA, porque el Z380 a 18.4 MHz haria
EXPLOTAR al MSX que solo soporta 3.57 MHz. Habria que configurar el Z380 a
3.57 MHz (Lo cual YA es posible mediante un JUMPER). Pero entonces
ESTARIAMOS DONDE EMPEZAMOS !!! NO HEMOS GANADO NADA !!!

C) LA TARJETA Z380 de PADIAL ES LO MEJOR QUE SE PUEDE HACER CON UN Z380 para
MSX
c.1) Normalmente fuciona como un cartucho "Plug & Play". Y sirve para MSX-1,
MSX-2, MSX-TR, e incluso si ASCII saca un MSX-5, tambien sirve.
c.2) La tarjeta Z380 se puede usar DE VARIAS MANERAS:
c.2.1) Como cartucho
c.2.2) Sustituyendo al Z80
c.2.3) En el expansor de 32-bits, con el expansor conectado al MSX
c.2.4) En el expansor de 32-bits, sin necesidad de tener un MSX !!
c.2.5) Conectando 2, 3 ... 8 tarjetas Z380 en un expansor, y trabajar en
paralelo con los 8 procesadores a la vez.

D) SI ASCII SACASE UN MSX-4 CON UN Z80 a 100 MHz, SERIA MENOS POTENTE QUE EL
Z380 a 18.4 MHz.
Porque el Z380 es un procesador de 32 bits, mientras que el Z80 es de 8
bits.
Porque el Z380 a 18.4 MHz ya equivale a un Z80 a 36.8 MHz dado que el Z380
ejecuta el doble de instrucciones por segundo que un Z80 a la misma
velocidad.
Al ser de 32 bits, para operaciones de transferencia, calculo, etc, es 4
veces mas rapido que un Z80 a la misma velocidad
Al tener MEMORIA LINEAL DE HASTA 4 GIGAS no necesita mapear la memoria en
paginas de 16 KB. Entonces, al acceder a gran cantidad de datos, el Z380 lo
hace mucho mas rapido y sencillo que un Z80 mapeando.
Si multiplicamos todas estas ventajas, seguro que nos acercamos mucho, e
incluso superamos a un Z80 a 100 MHz.
Y si ademas contamos con que la tarjeta Z380 permite seguir funcionando al
procesador original Z80 o R800, habria que sumar la potencia de dicho
procesador.
Y mas todavia: El Z380 tiene 8 bancos de registros de 32 bits, mas modos de
direccionamiento, nuevas instrucciones aritmetico logicas, etc, etc, etc.
SEGUIMOS CONTANDO ??

E) ES CIERTO QUE EL Z380 NO APROVECHA AL 100% EL SIMM DE MEMORIA
Pero no por un fallo de diseño, sino porque el Z380 esta pensado para
funcionar asi al trabajar con memorias del tipo SIMM.
El porque se usa este tipo de memorias, es porque son relativamente baratas,
faciles de encontrar, y con mucha capacidad, de hasta 128 Megas.
Si hiciesemos una memoria especial para Z380, aparte de poca capacidad, el
precio de la tarjeta se duplicaria.
El asunto es que en 8 bits, se acceden a todas las direcciones, pero como el
SIMM usa posiciones de 16 bits, se desaprovechan los 8 bits altos.
Y en 16 bits, el Z380, por diseño, solo trabaja bien usando direcciones
PARES, no IMPARES.
Dado que las lineas de los buses de direcciones y datos estan conectadas
directamente entre el Z380 y el SIMM, dirigid las quejas al señor Zilog, no
a Leonardo.

F) NADA DE CHORRADAS SOBRE LAS INTERRUPCIONES
El Z380 puede provocar una INT hacia el MSX, y tambien reconoce las INTs del
VDP.
PERO NO DIGAMOS TONTERIAS DE QUE EL Z380 TIENE QUE TRABAJAR CON INTS
MANTENIENDO NO SE QUE Y NO SE CUAL !!!!
Normalmente no hay por que utilizar las INTs para NADA.
Repito PARA NADA. He de repetirlo mas veces ??
Entonces, explico: El Z380 se comunica con el MSX mediante una memoria de
1KB de tipo "Biport" que puede ser escrita y leida tanto por el MSX como por
el Z380 a la vez. A LA VEZ.
Entonces, para comunicarse, lo que se hace es usar cualquier protocolo que
se te ocurra, usando posiciones de esa memoria: Escribes un "0" en una
variable de "Preparado". Luego, depositas los datos, y al final, escribes un
"1" en la variable. El otro procesador, si esta libre, muestrea esa
variable, y cuando es "1", lee los datos. Es algo MUY simple, que he
comprobado que tiene el mismo rendimiento que si la memoria fuese de 64 KB y
no tuviesemos que fragmentar los datos en "paquetes" pequeños.


Es decir, que mientras el MSX deposita unos datos en una zona de esa
memoria, el Z380 puede estar leyendo en otra zona. EN PARALELO. La memoria
es SUPER-RAPIDA, y no se "enlentece" aunque ambos procesadores la accedan al
mismo tiempo.
Sobre el tamaño de la memoria de 1 KB, se puede sustituir por otra de 2K,
4K, 8K, y hasta 64 K. Pero con precios entre 10.000 y 50.000 pesetas.
Como programador, aseguro de que el tamaño de 1KB, es SUPERSUFICIENTE para
lo que necesita el sistema. Es una memoria de COMUNICACION, no de
ALMACENAMIENTO.
Muchos de los ROUTERS actuales trabajan con unidades de informacion de mucho
menor tamaño, del orden de 56 bytes, y van como cohetes.


G) SI QUEREIS MUY ALTAS VELOCIDADES
El Z380 esta pensado para poder utilizarse en un expansor de slots de 32
bits que YA ESTA DISPONIBLE tambien gracias a Padial.
Todos los perifericos que se conecten al expansor, podran ser accedidos
directamente por el Z380 a 14.3 MHz y 32 bits !!!!!
Es decir, que por ejemplo, un GFX 9000 conectado de esta manera, iria 8
veces mas rapido que conectado directamente a un Turbo-R.
Si encima adaptas el GFX a 32 bits en lugar de 16, pues tendrias 16 veces
mas velocidad de acceso.
SE ENTIENDE ??
Ademas, tanto el Z380 como el expansor de 32 bits soportan DMA, lo que
permite crear perifericos muy avanzados y rapidos.


H) UN MSX QUE TENGA CONECTADA UNA TARJETA Z380 APROVECHA SU HARDWARE INTERNO
AL 100%. Y SOLO ES POSIBLE DE ESTA MANERA.
Repito: La unica forma de aprovechar al 100% el hardware interno del MSX, es
usando la tarjeta Z380.
Actualmente, un MSX normal, no aprovecha su hardware al 100% porque tiene
que hacer calculos entre medias: preparar datos, y tambien ejecutar el
programa principal.
Es decir, que un juego, por ejemplo, el 50% del tiempo esta dedicado a
ejecutar el programa principal, un 20% preparando datos para la VRAM, y un
30% mandando esos datos a la VRAM.
Por lo tanto, en estas condiciones, el MSX aprovecha la VRAM al 30%
Si utilizamos la tarjeta Z380, el programa principal se ejecutaria en el
Z380, y tambien la preparacion de datos. Dichos datos se escriben en la
memoria de 1K.
El MSX estaria el 100% del tiempo haciendo OTIRs desde esa memoria de 1K
hacia la VRAM, con lo que se aprovecha la VRAM al 100%  (pongamos un 98%
para no ser tan perfectos...)
OS DAIS CUENTA ??
Yo hice una demo para Tilburg, muy sencilla, en la cual se movian 32 sprites
por la pantalla, rebotando en los bordes.
Dicho programa, lo versione para MSX+Z380 sin optimizar para nada el codigo.
El resultado de cronometrar unos 5000 pasos de programa:
MSX2: 42 segundos
MSX2+Z380: 6 segundos
MSX Turbo R: 11 segundos
MSX Turbo R + Z380 : 6 segundos.
Lo que quiere decir, que se ha sacado el 100% de rendimiento a la VRAM,
porque da igual que el Z380 este conectado a un Turbo R que a un MSX2,
puesto que la VRAM de ambos ordenadores es igual de veloz.
Por favor, la gente que cree que es "malo" que el Z380 no pueda acceder a
los puertos internos del MSX, que PIENSE UN MOMENTO:
Si pudiese, el programa de los "rebotes" tardaria unos 11 segundos, igual
que un Turbo-R sin nada mas.
Que es mejor entonces, un programa que tarda 11 segundos, o uno que tarda 6
??
Obviamente el de 6. Que es el que usa la Z380 tal y como esta construida
ahora.
HACE FALTA MAS EXPLICACIONES ???


I) SOBRE EL Z380 y el MP3:
Viendo las anteriores explicaciones, la forma de trabajar con el Z380 de
cara al MP3 seria:
i.1) Conectado como cartucho a un Turbo R
El Z380 tendria almacenado en su memoria el fichero MP3.
Lo iria descomprimiendo, y mandando bloques de info al Turbo R.
El Turbo R estaria el 100% del tiempo mandando bytes al PCM, lo cual
supondria aprox. unos 20 o 30 KHz. (Lo digo a ojo * )
* = EL Turbo R puede grabar audio a 16 KHz, pero puede reproducirlo mucho
mas rapido,  porque al grabar es mas lento: Es decir: Al grabar, el Z380 ha
de hacer 8 comparaciones con el conversor A/D hasta hallar el valor de la
onda. Mientras para reproducir, no tiene que hacer ninguna comparacion,
simplemente hacer un OUT al PCM.
Si alguien tiene interes, que haga la prueba, a ver cuantos KHz puede
generar el TurboR por el PCM.
i.2) Si conectamos un conversor D/A al expansor de 32 bits, en el cual esta
presente el Z380, tambien se podria trabajar de cara a MP3, y en STEREO, si
el conversor D/A es doble.
Claro que de esta forma, el Z380 va a 14.3 MHz en lugar de 18.4, y encima,
no tendria al R800 mandando los datos al PCM, por lo que el resultado,
aunque en STEREO, seria mas lento e irregular.

- - - - - -

Para acabar:

-Gracias a los que hayan leido todo esto, por su paciencia.
-El Z380 es perfecto tal y como esta. Hace que el MSX sea mucho mas potente,
pero no hace milagros. Para milagros, los santos.
-Para MP3 mejor hacerse un decoder externo ( QUE NO ES UN COVOX, JODER, QUE
ES OTRA COSA MAS COMPLEJA !!) y saldria mas barato que un Z380.
-De hacerse este decoder, el Z380 tambien podria usarlo, para lograr mayor
rapidez y calidad, y sin detener al MSX para nada.

-Por favor, cualquier comentario negativo hacia el Z380, podeis hacerlo.
Pero os ruego que esteis mejor informados. Cualquier "rumor" hace mas daño
que la realidad explicada abiertamente.
Pero cosas como :
"porque tal y como lo tiene Padial, es un truño"
" Para colmo, has de generar una interrupción a mano poniendo a 1 nosequé
bit y luego volviéndolo a bajar, y el Z80 ha de
estar todo el rato vigilando esa interrupción."
Hacen mucho daño, sobre todo porque no son ciertas.
Y:
"No sé qué opinarán los demás del tema, pero al menos yo opino que el Z380
que está montando Padial no tiene mucha salida."
Es una opinion respetable, pero o bien deberias informarte mejor, o si ya lo
estas, deberias exponer de que forma lo harias tu.

Nadie esta obligado a comprar un Z380, pero que no desanime con afirmaciones
erroneas  a quienes puedan estar interesados.

Gracias, y hasta luego.

  Daniel Zorita.

Página MSX sobre el Z380 y sobre el concurso de juegos MSX1 de 4 KB:

http://teleline.terra.es/personal/dzorita/eindex.html




<Anterior en la conversación] Conversación actual [Siguiente en la conversación>