Autor
| I search programs to convert PC graphs -> MSX.
|
GuilianSeed msx user Mensajes: 40 | Publicado: Marzo 18 2007, 19:11   |
Hello MSX friends,
Well, I'm searching programs to convert PC graphics (bmp,jpg,gif) to use them on MSX in screen 5, 7,8 or 12 (sc5 prefered... héhé...)
Could you help me, please ?
I search programs for PC and for MSX...
Thank you in advance soooooooo much !
Greetings,
|
|
Ivan
 msx professional Mensajes: 935 | Publicado: Marzo 18 2007, 19:26   |
|
|
dumfrog msx novice Mensajes: 18 | Publicado: Marzo 18 2007, 20:15   |
You can also try this.
It's a very powerful tool  |
|
GuilianSeed msx user Mensajes: 40 | Publicado: Marzo 19 2007, 12:59   |
Thank you Ivan & Dumfrog   !
|
|
sinus msx user Mensajes: 35 | Publicado: Marzo 20 2007, 12:50   |
You may also consider SymStudio the development kit (PC tools) that go along with the Symbos project (MSX/CPC Multitasking Os).
It deals a lot with graphics and videos convertions too, depending on your expectations.
I still know too little about this one though, too few experiments so far. But it looks - very - promissing, and very user friendly.
Sin
|
|
wolf_
 msx legend Mensajes: 4827 | Publicado: Marzo 20 2007, 13:03   |
I'm currently working on a texture-generator/image-modifier. Amongst the filters are palette reduction and bitmap->charactermode conversion (to get 2 colors per row of 8, so to say). On the todo: YJK conversion, and msx-files export. The advantage of these modifiers being filters in a texture generator means that one can apply a lot of other stuff to a picture prior to conversion, like noise/diffuse, dither, color-balance, brightness, contrast, etc. Handy stuff to spice up the quality of the result a bit. Maybe when it's done I could forge a subset of this texgen orso and release it..
|
|
wolf_
 msx legend Mensajes: 4827 | Publicado: Marzo 20 2007, 16:10   |
Example for converting to charactermodes (e.g. scr2/4)
original:
charactermode:
charactermode with a little bit o' extra noise:
 |
|
pitpan msx master Mensajes: 1418 | Publicado: Marzo 20 2007, 17:43   |
Any test with more detailed graphics? I mean a drawing or a photograph instead of a texture.
It looks nice!
|
|
wolf_
 msx legend Mensajes: 4827 | Publicado: Marzo 20 2007, 17:57   |
I've no image import yet, so for the moment I can only show generated gfx (like this sine-distorted perlin noise). I can however show what's left of such pictures using the MSX1 palette (which is not much  ) rather than this grey palette.. |
|
wolf_
 msx legend Mensajes: 4827 | Publicado: Marzo 20 2007, 18:48   |
Original:
Using charactermode and the genuine MSX1 palette:

(yuk! but well, what'd ya expect?  ) |
|
Jipe msx freak Mensajes: 214 | Publicado: Marzo 20 2007, 22:20   |
on MSX i use ViewGIF v1.01 -> convert gif files in screen 8 and 12
for screen 5 i use a Japan Program -> S8TOS5 ver1.0 1993
;-) crazy french post in english forum and i reply in english ( i am french)
|
|
Samor msx professional Mensajes: 847 | Publicado: Marzo 21 2007, 14:22   |
I remember an old tool that could read BMP files on MSX, and convert them... probably not as good as these solutions, though...
|
|
ro msx guru Mensajes: 2353 | Publicado: Marzo 21 2007, 15:26   |
didn't MSD build such softs?
|
|
wolf_
 msx legend Mensajes: 4827 | Publicado: Marzo 21 2007, 15:46   |
msd..? MSD..? The same msd who only codes stuff for screen 0 and g9k? That 'msd'?  |
|
Sd-Snatcher msx addict Mensajes: 258 | Publicado: Marzo 23 2007, 00:51   |
Now im working on this unoptimized code:
#include <stdio.h>
#include <msx/msx.h>
#include <ctype.h>
#include <string.h>
static FCB file;
static void set_name( FCB *p_fcb, const char *p_name ) {
int i, j;
memset( p_fcb, 0, sizeof(FCB) );
for( i = 0; i < 11; i++ ) {
p_fcb->name[i] = ' ';
}
for( i = 0; (i < 8) && (p_name[i] != 0) && (p_name[i] != '.'); i++ ) {
p_fcb->name[i] = toupper( p_name[i] );
}
if( p_name[i] == '.' ) {
i++;
for( j = 0; (j < 3) && (p_name[i + j] != 0) && (p_name[i + j] != '.'); j++ ) {
p_fcb->ext[j] = toupper( p_name[i + j] );
}
}
}
void pset(unsigned char x, unsigned char y, unsigned char color)
{
vpoke((y*256)+x,color);
}
void readbmp(unsigned char xoffset, unsigned char yoffset, const char *p_name)
{
unsigned long x,xsize;
unsigned long y,ysize;
unsigned long cont;
int r;
unsigned char buffer[256];
file.drive_no = 0;
file.current_block = 0;
set_name( &file, p_name );
if( fcb_open( &file ) != FCB_SUCCESS )
{
puts( "Failed: fcb_open()" );
/* return 0;*/
}
r = fcb_read( &file, buffer, 18 ); /*header 1*/
r = fcb_read( &file, buffer, 4 );
xsize=buffer[0];
xsize+=buffer[1]*256;
xsize+=buffer[2]*256*256;
xsize+=buffer[3]*256*256*256;
r = fcb_read( &file, buffer, 4 );
ysize=buffer[0];
ysize+=buffer[1]*256;
ysize+=buffer[2]*256*256;
ysize+=buffer[3]*256*256*256;
r = fcb_read( &file, buffer, 256 ); /*header 2*/
r = fcb_read( &file, buffer, 256 ); /*header 2*/
r = fcb_read( &file, buffer, 256 ); /*header 2*/
r = fcb_read( &file, buffer, 256 ); /*header 2*/
r = fcb_read( &file, buffer, 29 ); /*header 2*/
cont=((xsize/4)+1)*4;
for (y=ysize; y>0 ; y--)
{
if (cont==xsize+4)
{
r = fcb_read( &file, buffer, xsize );
if( r == 0 ) break;
}
else
{
r = fcb_read( &file, buffer, cont );
if( r == 0 ) break;
}
for (x=0; (x<xsize)&&(x<(255-xoffset)); x++)
pset(x+xoffset,y-1+yoffset,buffer[x]);
}
if( fcb_close( &file ) != FCB_SUCCESS )
{
puts( "Failed: fcb_close()" );
/* return 0;*/
}
}
/* --------------------------------------------------------- */
static unsigned char wait( int j ) {
volatile int i;
for( i = 0; i < j; i++ ) {
}
return (unsigned char) i;
}
/* --------------------------------------------------------- */
int main(char** argv, int argc)
{
if(argc<1)
{
puts("Usage: ViewBMP <filename>");
return 0;
}
screen(8);
readbmp(30,30,argv[0]);
screen(0);
return 0;
}
Can be compiled with SDCC.
Can be used to load bmp files directly.  ... in screen 8 |
|
|
|
|