mirror of
https://frontier.innolan.net/github/AmigaExamples.git
synced 2026-09-13 09:33:26 +00:00
fade in from grey
This commit is contained in:
@@ -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
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user