Karoshi MSX Community
06 de Julio de 2021, 06:08:16 am *
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: Tiempo OffMSX  (Leído 13178 veces)
0 Usuarios y 1 Visitante están viendo este tema.
jjfranco
Visitante
« Respuesta #15 : 16 de Abril de 2007, 06:22:38 pm »

A lo mejor no me he explicado bien,

Estoy haciendo un programa para PC que pase archivos BMP a otros cargables con BLOAD"..",S para   Screen 5. La tarea es sencilla segun el manual tecnico del MSX2. Es incluir por cada byte de la VRAM  dos pixels de pantalla consecutivos sin embargo el resultado que obtengo es pésimo.

Me gustaria colgar un par de pantallas para que veais lo que digo, pero no me deja subir nada, no sé si será problema mio o del foro Huh
Lo intentaré mas tarde
En línea
jjfranco
Visitante
« Respuesta #16 : 17 de Abril de 2007, 05:03:50 pm »

No puedo subir archivos, ¿puede ser problema del foro?
En línea
jjfranco
Visitante
« Respuesta #17 : 17 de Abril de 2007, 05:55:46 pm »

Bueno pues al final he desisitido, no soy capaz de dar con el formato de la cabecera para el      > BSAVE+opcion S <, así que lo estoy haciendo a lo bruto, genero un archivo de texto con los pixeles del BMP y luego lo leo con un programilla en BASIC y lo voy imprimiendo en pantalla (Screen 5) y cuando se haya imprimido todo lo guardo con BSAVE, y problema areglado. Un proceso muy largo pero eficaz.

En línea
jltursan
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« Respuesta #18 : 17 de Abril de 2007, 07:37:16 pm »

Hombre, no se, no he usado jamás esto del BSAVE,S; pero no debería ser muy complicado.
A ver, para empezar no creo que grabe toda la VRAM (¡¿128Kb?!), supongo que grabará más bien la memoria ocupada por la propia pantalla. Sólo tienes que mirar el tamaño de lo grabado, deducir que porción de la VRAM ha grabado en funcion del modo que este usando y cuando esté claro, ver cuantos bytes sobran del tamaño total grabado, eso será la cabecera.
Supongo que el primer byte corresponderá al tipo de fichero, que probablemente será diferente al de un binario corriente (en cuyo caso el primer byte siempre es FE) y luego vendran posiblemente las 3 direcciones estandar, inicio, final y arranque, siendo esta última idéntica a la primera y haciendo todas referencia a direcciones en la VRAM.
En línea

Doom dee doom dee doom
jjfranco
Visitante
« Respuesta #19 : 17 de Abril de 2007, 07:55:49 pm »

Pues no será dificil, pero yo no soy capaz de averiguarlo. Huh

He realizado la siguiente operación;  he realizado un dibujo en Screen 5 y lo he grabado con bsave, en teoria, deberia ocupar un tamaño de (256*212/2) que son 27136 byte mas los bytes de la cabecera.

Pues bien, el archivo que graba tiene un tamaño de aproximadamente 30 K en disco (unos 29,5 Kb en memoria), osea que hay aproximadamente 2 kb de más que no sé para que sirven, ni que información tienen.

El programa que he realizado para PC lo unico que hace es añadir a la imagen generada en binario puro, una cabecera de unos 6 Byte, en la que se contiene, no las direcciones clasicas de inicio, final y comienzo, sino la siguiente informacion que es la que he extraido del  archivo original

0,255,0,0,0,118,0,0

y con eso consiguo cargar la imagen pero se ve un poco rara, por eso me hubiese gustado subir las imagenes, para ver que opinais vosotros.

He intentado con otros valores, buscando con un poco de lógica, y no he conseguido nada.

Lo cierto es que con el mismo programa pero grabando a lo bruto en archivo de texto y luego leyendolo con el MSX-BASIC, se obtiene la imagen perfecta, por lo que deduzco que no es problema de mi programa, sino de que no se que cabecera tengo que incluirle.

En fin, yo desde luego no he sido capaz de encontrar información al tema, y creo que me apañare con lo que tengo, que es lento pero seguro.

En línea
Sd-Snatcher
Karoshi Lover
***
Mensajes: 141


popolon@hotmail.com
Email
« Respuesta #20 : 17 de Abril de 2007, 08:04:58 pm »

Llena toda la vram de una trama conocida por ejemplo todo FF y grabalo, asi al menos distinguiras los datos de lo demas.


Aun asi, ¿has pensado en usar los BMP directamente en tu programa?.



En línea
jjfranco
Visitante
« Respuesta #21 : 17 de Abril de 2007, 08:15:41 pm »

Pues no se me habia ocurrido, probaré a ver que tal.

Lo de usar BMP directamente, es que quiero prescindir de programas externos en el msx, evitando tener tener que arrastrar otro programa que se encarge de cargar los BMP cada vez que quiero hacer un programa, por eso quiero que se carge directamente con el BLOAD.
En línea
jltursan
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« Respuesta #22 : 17 de Abril de 2007, 08:59:13 pm »

Pues nada, que me ha picado la curiosidad y he hecho una prueba. Todo ha funcionado como debería...  Roll Eyes
Sospecho que lo que te está pasando es que debes de estar grabando la pantalla así:

Código:
bsave "nombre",s

¿no?. De esta manera es posible que se monte un cirio y grabe lo primero que pille (es una suposición)

La sintaxis correcta del comando es:

Código:
bsave "nombre", inicio, final, s

En donde inicio y final, como es lógico, hacen referencia a direcciones de VRAM. Por ejemplo si lo que quieres es grabar la pantalla que estás viendo en SC5, tendrás que usar:

Código:
bsave "nombre", 0, &H69FF, s

Y eso te generará un archivo de 27143 bytes, que casualmente es lo que ocupa la pantalla + 7 bytes. El contenido de esos 7 bytes para este fichero en cuestión es el que te había comentado:

FE (al final usa el mismo código que para binarios), 00, 00 (inicio), FF, 69 (final)

A partir de ahí están los datos a pelo de la pantalla tal como los esperabas, cada 4 bits, 1 píxel.

Espero que te sirva  Wink

En línea

Doom dee doom dee doom
WYZ
Visitante
« Respuesta #23 : 17 de Abril de 2007, 09:39:23 pm »

Aro! JL, eso es:  $FE (DIR INI) (DIR FIN) (00 00) datos a saco.

En línea
jltursan
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« Respuesta #24 : 17 de Abril de 2007, 09:43:48 pm »

¡Sasto!, al final me dejé olvidados los dos pobres bytes de la tercera dirección, que aunque no se usen, están ahí... Wink
En línea

Doom dee doom dee doom
jjfranco
Visitante
« Respuesta #25 : 18 de Abril de 2007, 06:57:46 am »


La sintaxis correcta del comando es:

Código:
bsave "nombre", inicio, final, s

En donde inicio y final, como es lógico, hacen referencia a direcciones de VRAM. Por ejemplo si lo que quieres es grabar la pantalla que estás viendo en SC5, tendrás que usar:

Código:
bsave "nombre", 0, &H69FF, s


Así es como lo grabé. pero no con esas direcciones sino con las que venía en el manual del MSX-BASIC de mi MITSUBISHI para Screen 5, que son de "0" para el inicio y el "&h76A0" para el final.
Es posible que ese sea el error, la verdad es que no he comprobado que hay en esas direcciones que indica el manual.

Esta tarde probare, con las direcciones que me has indicado a ver que pasa.

Si funciona 1000 Gracias, y si no funciona me vereis por aquí otra vez
En línea
jjfranco
Visitante
« Respuesta #26 : 18 de Abril de 2007, 03:13:29 pm »

Pues funciona, así que os debo una. Cuando querias pasaros por mi pueblo y os invito a unas birras.


0,255,0,0,0,118,0,0


me rectifico, la cabecera que le tenía metida era

254,0,0,0,118,0,0

Ahora entiendo lo del 254, que es $FE, y yo no hacía más que darle vueltas pensando que era la resolución horizontal de la pantalla.  En fin torpe que es uno.


En línea
xenon
Karoshi Hero
*****
Mensajes: 749



WWW Email
« Respuesta #27 : 30 de Abril de 2007, 12:16:50 pm »

¿Qué le ha pasado al usuario de Jos'B?Huh  Angry Tongue
En línea

MSX now!
Jon_Cortazar
Administrator
Karoshi Forum's God
********
Mensajes: 2777



WWW Email
« Respuesta #28 : 02 de Mayo de 2007, 05:51:46 am »

Pues la verdad, no tengo ni idea de lo que ha pasado aquí Huh. ¿Jos'b, has borrado tu usuario? Undecided, aunque fueras a pasar un tiempito offline no hacía falta, leñe... ahora, dudo que pueda recuperar estos mensajes para un usuario nuevo: ya lo intenté cuando otro usuario borró su cuenta y luego quiso recuperar sus mensajes... vaya faena Embarrassed
« Última modificación: 02 de Mayo de 2007, 05:57:08 am por Viejo_archivero » 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.]
jltursan
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« Respuesta #29 : 02 de Mayo de 2007, 10:56:34 am »

Que cosa más rara, ¿y como es que ahora los mensajes de Jos'b se han enlazado a jjfranco (que presumo que es Jos'b)?.

En cualquier caso pelillos a la mar ya que no se han perdido los mensajes, ¿o alguno ha caido?. Esto es un lío... Tongue
En línea

Doom dee doom dee doom
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!