fade in from grey

This commit is contained in:
alpine9000
2016-04-16 16:24:03 +10:00
parent d98337bd11
commit bd2ad017b4
4 changed files with 378 additions and 3 deletions
+16
View File
@@ -0,0 +1,16 @@
016 132 233 255
082 000 015 255
133 000 026 255
210 063 006 255
211 116 039 255
253 174 017 255
233 216 100 255
016 132 233 255
000 000 014 255
029 192 255 255
121 235 255 255
071 174 192 255
213 213 213 255
210 000 039 255
154 154 154 255
000 000 000 000
+60
View File
@@ -0,0 +1,60 @@
#include <stdio.h>
typedef struct {
unsigned char r, g, b, a;
} rgba_t;
#define NUM_COLORS 16
rgba_t original[NUM_COLORS];
rgba_t gray[NUM_COLORS];
rgba_t progress[NUM_COLORS];
int
main(int argc, char** argv)
{
FILE* fp = fopen(argv[1], "r");
rgba_t* p = original;
while (fscanf(fp, "%d %d %d %d", &p->r, &p->g, &p->b, &p->a) == 4) {
p++;
}
rgba_t* g = gray;
p = original;
for (int i = 0; i < NUM_COLORS; i++) {
g->r = g->g = g->b = (p->r + p->g + p->b) / 3;
// printf("%d %d %d\n", g->r, g->g, g->b);
g++;
p++;
}
for (int s = 1; s <= 16; s++) {
printf(".step%d\n", s);
for (int i = 0; i < NUM_COLORS; i++) {
int dr = ((((float)original[i].r)-(float)gray[i].r)/16.0)*s;
int dg = ((((float)original[i].g)-(float)gray[i].g)/16.0)*s;
int db = ((((float)original[i].b)-(float)gray[i].b)/16.0)*s;
#if 0
printf("r:%d %d %d -> %d\n"
"g:%d %d %d -> %d\n"
"b:%d %d %d -> %d\n",
original[i].r,gray[i].r, dr, gray[i].r+dr,
original[i].g,gray[i].g, dg, gray[i].g+dg,
original[i].b,gray[i].b, db, gray[i].b+db);
#endif
printf("\tdc.w\t$%03x\n",
((gray[i].r+dr)>>4)<<8|
((gray[i].g+dg)>>4)<<4|
((gray[i].b+db)>>4));
}
}
printf("fadeComplete:\n");
fclose(fp);
}
+273
View File
@@ -0,0 +1,273 @@
.step1
dc.w $778
dc.w $211
dc.w $333
dc.w $655
dc.w $777
dc.w $998
dc.w $bbb
dc.w $778
dc.w $000
dc.w $9aa
dc.w $ccc
dc.w $899
dc.w $ddd
dc.w $545
dc.w $999
dc.w $000
.step2
dc.w $778
dc.w $211
dc.w $323
dc.w $655
dc.w $877
dc.w $a98
dc.w $bba
dc.w $778
dc.w $000
dc.w $8aa
dc.w $ccd
dc.w $899
dc.w $ddd
dc.w $644
dc.w $999
dc.w $000
.step3
dc.w $679
dc.w $211
dc.w $423
dc.w $754
dc.w $876
dc.w $a97
dc.w $cba
dc.w $679
dc.w $000
dc.w $8ab
dc.w $bdd
dc.w $899
dc.w $ddd
dc.w $644
dc.w $999
dc.w $000
.step4
dc.w $689
dc.w $211
dc.w $422
dc.w $754
dc.w $976
dc.w $a97
dc.w $cba
dc.w $689
dc.w $000
dc.w $7ab
dc.w $bdd
dc.w $799
dc.w $ddd
dc.w $734
dc.w $999
dc.w $000
.step5
dc.w $58a
dc.w $211
dc.w $422
dc.w $854
dc.w $976
dc.w $b96
dc.w $cc9
dc.w $58a
dc.w $000
dc.w $7ab
dc.w $bdd
dc.w $799
dc.w $ddd
dc.w $734
dc.w $999
dc.w $000
.step6
dc.w $58a
dc.w $311
dc.w $522
dc.w $853
dc.w $975
dc.w $b96
dc.w $cc9
dc.w $58a
dc.w $000
dc.w $6ac
dc.w $add
dc.w $79a
dc.w $ddd
dc.w $834
dc.w $999
dc.w $000
.step7
dc.w $48a
dc.w $311
dc.w $512
dc.w $953
dc.w $a75
dc.w $c95
dc.w $cc9
dc.w $48a
dc.w $000
dc.w $6ac
dc.w $ade
dc.w $79a
dc.w $ddd
dc.w $824
dc.w $999
dc.w $000
.step8
dc.w $48b
dc.w $311
dc.w $512
dc.w $943
dc.w $a75
dc.w $ca5
dc.w $dc8
dc.w $48b
dc.w $000
dc.w $5ac
dc.w $ade
dc.w $69a
dc.w $ddd
dc.w $923
dc.w $999
dc.w $000
.step9
dc.w $48b
dc.w $301
dc.w $612
dc.w $942
dc.w $a74
dc.w $ca4
dc.w $dc8
dc.w $48b
dc.w $000
dc.w $5bd
dc.w $9de
dc.w $6aa
dc.w $ddd
dc.w $923
dc.w $999
dc.w $000
.step10
dc.w $38c
dc.w $301
dc.w $612
dc.w $a42
dc.w $b74
dc.w $da4
dc.w $dc8
dc.w $38c
dc.w $000
dc.w $4bd
dc.w $9de
dc.w $6aa
dc.w $ddd
dc.w $a23
dc.w $999
dc.w $000
.step11
dc.w $38c
dc.w $401
dc.w $612
dc.w $a42
dc.w $b74
dc.w $da3
dc.w $dc7
dc.w $38c
dc.w $000
dc.w $4be
dc.w $9ee
dc.w $5ab
dc.w $ddd
dc.w $a13
dc.w $999
dc.w $000
.step12
dc.w $28c
dc.w $401
dc.w $702
dc.w $b41
dc.w $b73
dc.w $ea3
dc.w $dc7
dc.w $28c
dc.w $000
dc.w $3be
dc.w $8ef
dc.w $5ab
dc.w $ddd
dc.w $b13
dc.w $999
dc.w $000
.step13
dc.w $28d
dc.w $401
dc.w $702
dc.w $b41
dc.w $c73
dc.w $ea2
dc.w $dd7
dc.w $28d
dc.w $000
dc.w $3be
dc.w $8ef
dc.w $5ab
dc.w $ddd
dc.w $b13
dc.w $999
dc.w $000
.step14
dc.w $18d
dc.w $401
dc.w $701
dc.w $c41
dc.w $c73
dc.w $ea2
dc.w $ed6
dc.w $18d
dc.w $000
dc.w $2bf
dc.w $8ef
dc.w $5ab
dc.w $ddd
dc.w $c02
dc.w $999
dc.w $000
.step15
dc.w $18e
dc.w $401
dc.w $801
dc.w $c40
dc.w $c72
dc.w $fa1
dc.w $ed6
dc.w $18e
dc.w $000
dc.w $2bf
dc.w $7ef
dc.w $4ab
dc.w $ddd
dc.w $c02
dc.w $999
dc.w $000
.step16
dc.w $18e
dc.w $500
dc.w $801
dc.w $d30
dc.w $d72
dc.w $fa1
dc.w $ed6
dc.w $18e
dc.w $000
dc.w $1cf
dc.w $7ef
dc.w $4ac
dc.w $ddd
dc.w $d02
dc.w $999
dc.w $000
fadeComplete:
+29 -3
View File
@@ -55,8 +55,7 @@ MainLoop:
bra SetupBoardLoop
GameLoop:
;; bsr FadeToPalette
bsr InstallColorPalette
bsr InstallNextGreyPalette
move.l #FOREGROUND_SCROLL_PIXELS,foregroundScrollPixels
jsr WaitVerticalBlank
bsr HoriScrollPlayfield
@@ -425,6 +424,28 @@ InstallGreyPalette:
dbra d0,.loop
rts
InstallNextGreyPalette:
lea tileMapCopperPalettePtr,a1
move.l fadePtr,a0
lea fadeComplete,a2
cmp.l a2,a0
bge .done
add.l #2,a1
move.l #15,d0
.loop:
move.w (a0),(a1)
add.l #2,a0
add.l #4,a1
dbra d0,.loop
move.l frameCount,d0
lsr.l #1,d0
btst.l #0,d0
beq .done
add.l #16*2,fadePtr
.done
rts
InstallPalette:
include "out/tilemap-palette.s"
rts
@@ -465,7 +486,9 @@ joystick:
dc.b 0
joystickpos:
dc.b 0
fadePtr:
dc.l fade
animIndex:
ds.l 16,0
deAnimIndex:
@@ -551,6 +574,9 @@ greyPalette:
tilemapPalette:
include "tilemap-palette-table.s"
fade:
include "fade.s"
section .bss
foregroundBitplanes1:
ds.b IMAGESIZE*3