Can anyone help with this one?
I am using Fusion C 1.2, a newbie to MSX, a veteran in C, writing a small game. It is working well in OpenMSX with the default MSX2 Philips NMS 8255.
It compiles to a com file. When I put it onto an SD card and into my MSX1 (Panasonic CF2700) with a MegaflashROM it works almost identically except my sprites aren't showing at all. I must be missing something about sprites for the MSX1.
The game is trying to use 1 single colour 16x16 sprite, shown double size, and 1 two colour (i.e. 2x) 16x16 sprites, on top of each other. No sprites seem to work.
I use static char arrays for the sprite pattern. (Drawn in the MSX Sprite Editor from Electric Adventures)
Here is the declaration for the single colour one
static const unsigned char wan_pattern0[] = {0b00000100,0b01111101,0b00010000,0b00010100,0b01111101,0b00010000,0b00010000,0b00010000};
static const unsigned char wan_pattern1[] = {0b00011100,0b01110001,0b01000011,0b00000110,0b00011000,0b00000000,0b00000000,0b000000000};
static const unsigned char wan_pattern2[] = {0b00010000,0b11110000,0b00000000,0b00001000,0b11111000,0b10010000,0b10010000,0b10010000};
static const unsigned char wan_pattern3[] = {0b10010000,0b10010010,0b00011110,0b00000000,0b00000000,0b00000000,0b00000000,0b0000000 };
I'm using Screen 2.
In my main loop I do this code:
SpriteReset();
SpriteDouble();
SetSpritePattern( 0, wan_pattern0,8 );
SetSpritePattern( 1, wan_pattern1,8 );
SetSpritePattern( 2, wan_pattern2,8 );
SetSpritePattern( 3, wan_pattern3,8 );
Sprite16();
PutSprite (0,0,120,63,15);
But the sprite doesn't display.
The code compiles to about 23Kb.
Any suggestions?