diff --git a/demos/driven/TODO b/demos/driven/TODO index db52bba6..e70d3f22 100644 --- a/demos/driven/TODO +++ b/demos/driven/TODO @@ -4,8 +4,9 @@ Intro: Driven animation Atrus: Talk1 + Talk2 (TODO: have him look up?) Scrolll text - Plasma + Plasma (have plasma expand to fill screen?) Maglev: @@ -16,16 +17,22 @@ Mine-cart / Circles Images Spiky 233 - Catherine? - Guy in void? + ????Catherine? + Atrus standing by the rift saying to go for it? White + Guy in void + Fade out? Perhaps the ending has not yet been written... - We blame the party deadline for that... + Seriously, how is it mid November already... + Or perhaps we ran out of time before the deadline... + Credits - + Add random stars that scroll up? + Add little visualizer to both sides? + Myst linking book float by? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/demos/driven/part05_atrus/atrus.s b/demos/driven/part05_atrus/atrus.s index 3cf80b64..46a3fbe1 100644 --- a/demos/driven/part05_atrus/atrus.s +++ b/demos/driven/part05_atrus/atrus.s @@ -128,9 +128,12 @@ atrus_text: do_scroll: - + lda #0 + sta SCROLL_START +do_scroll_again: ldy #0 - sty SCROLL_OFFSET ; FIXME: SCROLL_OFFSET + lda SCROLL_START + sta SCROLL_OFFSET ; FIXME: SCROLL_OFFSET do_scroll_loop: ldx SCROLL_OFFSET lda scroll_text,X @@ -197,7 +200,24 @@ do_scroll_col_loop: inc SCROLL_OFFSET cpy #40 bne do_scroll_loop + + ; FIXME: also check keyboard + + lda #200 + jsr wait + + inc SCROLL_START + lda SCROLL_START + cmp #80 + beq do_scroll_done + + jmp do_scroll_again + +do_scroll_done: + rts -scroll_text: - .byte "THE@QUICK@BROWN@FOX@JUMPED@OVER@THE@LAZY@DOG" +scroll_text: ;0123456789012345678901234567890123456789 + .byte "@@@@@@@@@@@@@@@@@@@@\]^_THE@QUICK@BROWN@" + .byte "FOX@JUMPED@OVER@THE@LAZY@DOG@PACK@MY@BOX" + .byte "@WITH@FIVE@DOZEN@LIQOUR@JUGS" diff --git a/demos/driven/zp.inc b/demos/driven/zp.inc index adb38347..5f06da7d 100644 --- a/demos/driven/zp.inc +++ b/demos/driven/zp.inc @@ -173,6 +173,7 @@ GUITAR_FRAME = $F4 ; Atrus SCROLL_OFFSET = $F0 +SCROLL_START = $F1 ; PLASMACUBE ;OUT1 = $F0 diff --git a/utils/hgr-utils/png2largefont.c b/utils/hgr-utils/png2largefont.c index bb6e2ced..a6930feb 100644 --- a/utils/hgr-utils/png2largefont.c +++ b/utils/hgr-utils/png2largefont.c @@ -363,7 +363,7 @@ int main(int argc, char **argv) { fprintf(stderr,"Loaded image %d by %d\n",xsize,ysize); fprintf(stderr,"Using font offset of 0x%x\n",start_offset); - int pal[2],color=0,byte1,byte2; + int pal[2],color1=0,color2=0,byte1,byte2; /* for now, assume 14x16 font starting at 0,0 */ for(row=0;row<2;row++) { for(col=0;col<16;col++) { @@ -371,19 +371,28 @@ int main(int argc, char **argv) { temp=0; pal[0]=0,pal[1]=0; for(x=0;x<14;x+=2) { - color=image[ (((row*18)+y)*280)+(col*14)+x]; - switch(color){ - case 0: temp=temp<<2; break; - case 1: temp=temp<<2; temp|=2; break; - case 2: temp=temp<<2; temp|=1; break; - case 3: temp=temp<<2; temp|=3; break; - case 4: temp=temp<<2; break; - case 5: temp=temp<<2; temp|=2; + color1=image[ (((row*18)+y)*280)+(col*14)+x]; + color2=image[ (((row*18)+y)*280)+(col*14)+x+1]; + temp=temp<<2; + switch(color1){ + case 0: if ((color2==0) || (color2==4)) temp|=0; + else temp|=1; + break; + case 1: temp|=2; break; + case 2: temp|=1; break; + case 3: if ((color2==3) ||(color2==7)) temp|=3; + else temp|=2; + break; + case 4: if ((color2==0) || (color2==4)) temp|=0; + else temp|=1; pal[x/7]=1; break; - case 6: temp=temp<<2; temp|=1; + case 5: temp|=2; pal[x/7]=1; break; - case 7: temp=temp<<2; temp|=3; + case 6: temp|=1; pal[x/7]=1; break; + case 7: if ((color2==3) || (color2==7)) temp|=3; + else temp|=1; + pal[x/7]=2; break; } } byte1=(reverse_byte(temp>>6)&0x7f)|pal[0]<<7;