I do have animated sprite as:
and masks as
so... how mask is represented in the sprite?
Something like this? defb @MASK_8_bits, @SPRITE_8_bits
Code: Select all
._sprite_protar1_f1
defb @11111111, @11111001
defb @11111101, @11111010
Code: Select all
._sprite_protar1_f1
defb @11111111, @11111001
defb @11111101, @11111010
Thankyou, but if I follow tutorial something weird happens:derekfountain wrote:Masked sprites are discussed in the second SP1 getting started article, here.
yep, the example worked perfectly.derekfountain wrote:I don't know what you mean by "in the good old misifu".
I picked up your 'circle' code from your Github page and it works correctly. The sprite_sample.png and sprite_sample_mask.png are correctly converted by my local copy of the png2sp1sprite utility and the example works as expected.
Does your example work for you?
Code: Select all
struct sp1_ss * add_sprite_protar1() {
struct sp1_ss * sp;
sp = sp1_CreateSpr(SP1_DRAW_MASK2LB, SP1_TYPE_2BYTE, 3, (int)sprite_protar1, 0);
sp1_AddColSpr(sp, SP1_DRAW_MASK2, SP1_TYPE_2BYTE, (int)sprite_protar2, 0);
sp1_AddColSpr(sp, SP1_DRAW_MASK2, SP1_TYPE_2BYTE, (int)sprite_protar3, 0);
sp1_AddColSpr(sp, SP1_DRAW_MASK2, SP1_TYPE_2BYTE, (int)sprite_protar4, 0);
sp1_AddColSpr(sp, SP1_DRAW_MASK2RB, SP1_TYPE_2BYTE, 0, 0);
sp1_IterateSprChar(sp, initialiseColour);
return sp;
}
Code: Select all
static void initialiseColour(unsigned int count, struct sp1_cs *c)
{
(void)count; /* Suppress compiler warning about unused parameter */
c->attr_mask = SP1_AMASK_INK;
c->attr = INK_BLACK;
}
I lied finally, it is driving me crazy the param named 'void *frame' in 'sp1_MoveSprAbs'.derekfountain wrote:Heh, good timing, I was just about to start trying to work it out myself. Glad you solved it.
Code: Select all
sp = sp1_CreateSpr(SP1_DRAW_MASK2LB, SP1_TYPE_2BYTE, 4, (int)sprite_protar1, 1);
sp1_AddColSpr(sp, SP1_DRAW_MASK2, SP1_TYPE_2BYTE, (int)sprite_protar2, 0);
sp1_AddColSpr(sp, SP1_DRAW_MASK2, SP1_TYPE_2BYTE, (int)sprite_protar3, 0);
sp1_AddColSpr(sp, SP1_DRAW_MASK2RB, SP1_TYPE_2BYTE, 0, 0);
Code: Select all
#define AUX_PHONE 4
#define AUX_ZAP 52 // + 16x2 + 8x2
#define AUX_ARROWRIGHT 100
#define AUX_ARROWLEFT 148
#define AUX_BROOM 196
#define AUX_BROOM2 244
Code: Select all
SECTION rodata_user
; Original: 96, 16 (=12 x 2 chars)
; Blocks: 2
; mask, sprite
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
PUBLIC _auxiliar1
._auxiliar1
._auxiliar1_f1
defb @11111111, @00000000
defb @11110000, @00000000
defb @11000000, @00001111
defb @10000000, @00111011
defb @00000000, @01110100
defb @00000000, @01110110
defb @00000000, @00000111
defb @11100000, @00001111
defb @11100000, @00001100
defb @11000000, @00011001
defb @11000000, @00011010
defb @11000000, @00011001
defb @11000000, @00011100
defb @11000000, @00011111
defb @11100000, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
._auxiliar1_f2
defb @11111111, @00000000
defb @11111110, @00000000
defb @11111100, @00000001
defb @11101000, @00000011
defb @11000000, @00010010
defb @10000000, @00110100
defb @00000000, @01110111
defb @00000000, @11010100
defb @00000000, @10010000
defb @00000001, @00100100
defb @10000001, @00101100
defb @10000011, @00111000
defb @10000111, @00110000
defb @10001111, @00100000
defb @10011111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
._auxiliar1_f3
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11110111, @00000000
defb @11100011, @00001000
defb @11110001, @00000100
defb @11111000, @00000010
defb @11111100, @00000001
defb @11111110, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
._auxiliar1_f4
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111110, @00000000
defb @11100100, @00000001
defb @11100000, @00001010
defb @11100001, @00001100
defb @11100000, @00001110
defb @11100000, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
._auxiliar1_f5
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111110, @00000000
defb @11111110, @00000000
defb @11111000, @00000001
defb @11110000, @00000111
defb @11100000, @00001111
defb @11100000, @00001111
defb @11000000, @00011111
defb @11000000, @00000110
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
._auxiliar1_f6
defb @11111110, @00000000
defb @11111110, @00000000
defb @11111110, @00000000
defb @11111110, @00000000
defb @11111110, @00000000
defb @11111110, @00000000
defb @11111110, @00000000
defb @11111110, @00000000
defb @11111110, @00000000
defb @11111110, @00000000
defb @11111100, @00000001
defb @11111100, @00000001
defb @11111000, @00000011
defb @11111000, @00000011
defb @11111000, @00000011
defb @11111000, @00000010
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
PUBLIC _auxiliar2
._auxiliar2
._auxiliar2_f1
defb @11111111, @00000000
defb @00001111, @00000000
defb @00000011, @11110000
defb @00000001, @11011100
defb @00000000, @00101110
defb @00000000, @01101110
defb @00000000, @11100000
defb @00000111, @11110000
defb @00000111, @00110000
defb @00000011, @01011000
defb @00000011, @10011000
defb @00000011, @01011000
defb @00000011, @00111000
defb @00000011, @11111000
defb @00000111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
._auxiliar2_f2
defb @11111111, @00000000
defb @01111111, @00000000
defb @00100111, @10000000
defb @00000011, @10011000
defb @00000001, @11011100
defb @00000000, @11010110
defb @00000000, @11010010
defb @00000000, @11010110
defb @00000000, @01011100
defb @00000000, @01010001
defb @00000000, @00010011
defb @11000000, @00000110
defb @11100001, @00000000
defb @11100011, @00001000
defb @11100011, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
._auxiliar2_f3
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @01111111, @00000000
defb @00100111, @10000000
defb @00000111, @01010000
defb @10000111, @00110000
defb @00000111, @01110000
defb @00000111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
._auxiliar2_f4
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11101111, @00000000
defb @11000111, @00010000
defb @10001111, @00100000
defb @00011111, @01000000
defb @00111111, @10000000
defb @01111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
._auxiliar2_f5
defb @11100111, @00000000
defb @11100011, @00001000
defb @11000011, @00011000
defb @11000111, @00010000
defb @10000111, @00110000
defb @10001111, @00100000
defb @00001111, @01100000
defb @00011111, @01000000
defb @00011111, @11000000
defb @00111111, @10000000
defb @00111111, @10000000
defb @01111111, @00000000
defb @00111111, @10000000
defb @00111111, @10000000
defb @00111111, @10000000
defb @00111111, @10000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
._auxiliar2_f6
defb @00111111, @10000000
defb @00111111, @10000000
defb @00111111, @10000000
defb @00111111, @10000000
defb @00111111, @10000000
defb @00111111, @10000000
defb @00111111, @10000000
defb @00111111, @10000000
defb @00111111, @10000000
defb @00111111, @10000000
defb @00111111, @10000000
defb @00011111, @11000000
defb @00001111, @11100000
defb @00001111, @11100000
defb @00000111, @11110000
defb @00000111, @11000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
defb @11111111, @00000000
Personally I think sp1 has some functionalities little or no documented.Timmy wrote:Is there anything I can do to make this easier in the future?
To be honest I thought my sp1 example explained a lot already.
But maybe I need to make a tutorial for sp1 then? (Can't promise that it will be good, just that I can make one.)