ootw: add support for "overlay" on top of background
also now the RLE format supports color A, just less efficiently
@ -13,6 +13,260 @@
|
||||
#define OUTPUT_ASM 1
|
||||
#define OUTPUT_RAW 2
|
||||
|
||||
|
||||
|
||||
/*****************************************/
|
||||
/* \/ \/ */
|
||||
/* Converts a PNG to RLE compressed data */
|
||||
/*****************************************/
|
||||
|
||||
|
||||
static int print_run(int count, int out_type, int run, int last) {
|
||||
|
||||
int size=0;
|
||||
|
||||
if (count==0) {
|
||||
if (out_type==OUTPUT_C) {
|
||||
printf("\n\t");
|
||||
}
|
||||
else if (out_type==OUTPUT_ASM) {
|
||||
printf("\n\t.byte ");
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (out_type==OUTPUT_C) {
|
||||
}
|
||||
else if (out_type==OUTPUT_ASM) {
|
||||
printf(", ");
|
||||
}
|
||||
}
|
||||
|
||||
if (run==1) {
|
||||
if ((last&0xf0)==0xA0) {
|
||||
if (out_type==OUTPUT_C) {
|
||||
printf("0x%02X,0x%02X,0x%02X,",0xa0,1,last);
|
||||
}
|
||||
else if (out_type==OUTPUT_ASM) {
|
||||
printf("$%02X,$%02X,$%02X",0xa0,1,last);
|
||||
}
|
||||
else {
|
||||
printf("%c%c%c",0xa0,1,last);
|
||||
}
|
||||
size+=3;
|
||||
}
|
||||
else {
|
||||
if (out_type==OUTPUT_C) {
|
||||
printf("0x%02X,",last);
|
||||
}
|
||||
else if (out_type==OUTPUT_ASM) {
|
||||
printf("$%02X",last);
|
||||
}
|
||||
else {
|
||||
printf("%c",last);
|
||||
}
|
||||
size++;
|
||||
}
|
||||
}
|
||||
if (run==2) {
|
||||
if ((last&0xf0)==0xA0) {
|
||||
if (out_type==OUTPUT_C) {
|
||||
printf("0x%02X,0x%02X,0x%02X,",0xa0,2,last);
|
||||
}
|
||||
else if (out_type==OUTPUT_ASM) {
|
||||
printf("$%02X,$%02X,$%02X",0xa0,2,last);
|
||||
}
|
||||
else {
|
||||
printf("%c%c%c",0xa0,2,last);
|
||||
}
|
||||
size+=3;
|
||||
}
|
||||
else {
|
||||
|
||||
if (out_type==OUTPUT_C) {
|
||||
printf("0x%02X,0x%02X,",last,last);
|
||||
}
|
||||
else if (out_type==OUTPUT_ASM) {
|
||||
printf("$%02X,$%02X",last,last);
|
||||
}
|
||||
else {
|
||||
printf("%c",last);
|
||||
printf("%c",last);
|
||||
}
|
||||
size+=2;
|
||||
}
|
||||
}
|
||||
|
||||
if ((run>2) && (run<16)) {
|
||||
if (out_type==OUTPUT_C) {
|
||||
printf("0x%02X,0x%02X,",0xA0|run,last);
|
||||
}
|
||||
else if (out_type==OUTPUT_ASM) {
|
||||
printf("$%02X,$%02X",0xA0|run,last);
|
||||
}
|
||||
else {
|
||||
printf("%c",0xA0|run);
|
||||
printf("%c",last);
|
||||
}
|
||||
size+=2;
|
||||
}
|
||||
|
||||
if (run>=16) {
|
||||
if (out_type==OUTPUT_C) {
|
||||
printf("0x%02X,0x%02X,0x%02X,",0xA0,run,last);
|
||||
}
|
||||
else if (out_type==OUTPUT_ASM) {
|
||||
printf("$%02X,$%02X,$%02X",0xA0,run,last);
|
||||
}
|
||||
else {
|
||||
printf("%c",0xA0);
|
||||
printf("%c",run);
|
||||
printf("%c",last);
|
||||
}
|
||||
size+=3;
|
||||
}
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
|
||||
int rle_smaller(int out_type, char *varname,
|
||||
int xsize,int ysize, unsigned char *image) {
|
||||
|
||||
int run=0;
|
||||
int x;
|
||||
|
||||
int last=-1,next;
|
||||
int size=0;
|
||||
int count=0;
|
||||
|
||||
x=0;
|
||||
|
||||
/* Write out xsize and ysize */
|
||||
|
||||
if (out_type==OUTPUT_C) {
|
||||
fprintf(stdout,"unsigned char %s[]={\n",varname);
|
||||
fprintf(stdout,"\t0x%X, /* ysize=%d */",xsize,ysize);
|
||||
}
|
||||
else if (out_type==OUTPUT_ASM) {
|
||||
fprintf(stdout,"%s:",varname);
|
||||
fprintf(stdout,"\t.byte $%X ; ysize=%d",xsize,ysize);
|
||||
} else {
|
||||
fprintf(stdout,"%c",xsize);
|
||||
}
|
||||
|
||||
size+=2;
|
||||
|
||||
/* Get first top/bottom color pair */
|
||||
last=image[x];
|
||||
run++;
|
||||
x++;
|
||||
|
||||
while(1) {
|
||||
|
||||
/* get next top/bottom color pair */
|
||||
next=image[x];
|
||||
|
||||
// if ((next&0xf0)==0xA0) {
|
||||
// fprintf(stderr,"Warning! Using color A (grey2)!\n");
|
||||
// next&=~0xf0;
|
||||
// next|=0x50; // substitute grey1
|
||||
// }
|
||||
|
||||
/* If color change (or too big) then output our run */
|
||||
/* Note 0xff for run length is special case meaning "finished" */
|
||||
if ((next!=last) || (run>254)) {
|
||||
|
||||
size+=print_run(count,out_type,run,last);
|
||||
|
||||
count++;
|
||||
run=0;
|
||||
last=next;
|
||||
}
|
||||
|
||||
x++;
|
||||
|
||||
/* If we reach the end */
|
||||
if (x>=xsize*(ysize/2)) {
|
||||
run++;
|
||||
|
||||
size+=print_run(count,out_type,run,last);
|
||||
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
run++;
|
||||
if (count>6) count=0;
|
||||
|
||||
}
|
||||
|
||||
/* Print closing marker */
|
||||
|
||||
if (out_type==OUTPUT_C) {
|
||||
fprintf(stdout,"0xA1,");
|
||||
fprintf(stdout,"\t};\n");
|
||||
} else if (out_type==OUTPUT_ASM) {
|
||||
fprintf(stdout,"\n\t.byte $A1\n");
|
||||
} else {
|
||||
fprintf(stdout,"%c",0xA1);
|
||||
}
|
||||
|
||||
size+=1;
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Converts a PNG to RLE compressed data */
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
|
||||
unsigned char *image;
|
||||
int xsize,ysize;
|
||||
int size=0;
|
||||
int out_type=OUTPUT_C;
|
||||
|
||||
if (argc<4) {
|
||||
fprintf(stderr,"Usage:\t%s type INFILE varname\n\n",argv[0]);
|
||||
fprintf(stderr,"\ttype: c or asm or raw\n");
|
||||
fprintf(stderr,"\tvarname: label for graphic\n");
|
||||
fprintf(stderr,"\n");
|
||||
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
if (!strcmp(argv[1],"c")) {
|
||||
out_type=OUTPUT_C;
|
||||
}
|
||||
else if (!strcmp(argv[1],"asm")) {
|
||||
out_type=OUTPUT_ASM;
|
||||
}
|
||||
else if (!strcmp(argv[1],"raw")) {
|
||||
out_type=OUTPUT_RAW;
|
||||
}
|
||||
|
||||
if (loadpng(argv[2],&image,&xsize,&ysize)<0) {
|
||||
fprintf(stderr,"Error loading png!\n");
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
fprintf(stderr,"Loaded image %d by %d\n",xsize,ysize);
|
||||
|
||||
// size=rle_original(out_type,argv[3],
|
||||
// xsize,ysize,image);
|
||||
|
||||
size=rle_smaller(out_type,argv[3],
|
||||
xsize,ysize,image);
|
||||
|
||||
fprintf(stderr,"Size %d bytes\n",size);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* Converts a PNG to RLE compressed data */
|
||||
|
||||
int rle_original(int out_type, char *varname,
|
||||
@ -132,227 +386,3 @@ int rle_original(int out_type, char *varname,
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
/*****************************************/
|
||||
/* \/ \/ */
|
||||
/* Converts a PNG to RLE compressed data */
|
||||
/*****************************************/
|
||||
|
||||
|
||||
static int print_run(int count, int out_type, int run, int last) {
|
||||
|
||||
int size=0;
|
||||
|
||||
if (count==0) {
|
||||
if (out_type==OUTPUT_C) {
|
||||
printf("\n\t");
|
||||
}
|
||||
else if (out_type==OUTPUT_ASM) {
|
||||
printf("\n\t.byte ");
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (out_type==OUTPUT_C) {
|
||||
}
|
||||
else if (out_type==OUTPUT_ASM) {
|
||||
printf(", ");
|
||||
}
|
||||
}
|
||||
|
||||
if (run==1) {
|
||||
if (out_type==OUTPUT_C) {
|
||||
printf("0x%02X,",last);
|
||||
}
|
||||
else if (out_type==OUTPUT_ASM) {
|
||||
printf("$%02X",last);
|
||||
}
|
||||
else {
|
||||
printf("%c",last);
|
||||
}
|
||||
size++;
|
||||
}
|
||||
if (run==2) {
|
||||
if (out_type==OUTPUT_C) {
|
||||
printf("0x%02X,0x%02X,",last,last);
|
||||
}
|
||||
else if (out_type==OUTPUT_ASM) {
|
||||
printf("$%02X,$%02X",last,last);
|
||||
}
|
||||
else {
|
||||
printf("%c",last);
|
||||
printf("%c",last);
|
||||
}
|
||||
size+=2;
|
||||
}
|
||||
|
||||
if ((run>2) && (run<16)) {
|
||||
if (out_type==OUTPUT_C) {
|
||||
printf("0x%02X,0x%02X,",0xA0|run,last);
|
||||
}
|
||||
else if (out_type==OUTPUT_ASM) {
|
||||
printf("$%02X,$%02X",0xA0|run,last);
|
||||
}
|
||||
else {
|
||||
printf("%c",0xA0|run);
|
||||
printf("%c",last);
|
||||
}
|
||||
size+=2;
|
||||
}
|
||||
|
||||
if (run>=16) {
|
||||
if (out_type==OUTPUT_C) {
|
||||
printf("0x%02X,0x%02X,0x%02X,",0xA0,run,last);
|
||||
}
|
||||
else if (out_type==OUTPUT_ASM) {
|
||||
printf("$%02X,$%02X,$%02X",0xA0,run,last);
|
||||
}
|
||||
else {
|
||||
printf("%c",0xA0);
|
||||
printf("%c",run);
|
||||
printf("%c",last);
|
||||
}
|
||||
size+=3;
|
||||
}
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
|
||||
int rle_smaller(int out_type, char *varname,
|
||||
int xsize,int ysize, unsigned char *image) {
|
||||
|
||||
int run=0;
|
||||
int x;
|
||||
|
||||
int last=-1,next;
|
||||
int size=0;
|
||||
int count=0;
|
||||
|
||||
x=0;
|
||||
|
||||
/* Write out xsize and ysize */
|
||||
|
||||
if (out_type==OUTPUT_C) {
|
||||
fprintf(stdout,"unsigned char %s[]={\n",varname);
|
||||
fprintf(stdout,"\t0x%X, /* ysize=%d */",xsize,ysize);
|
||||
}
|
||||
else if (out_type==OUTPUT_ASM) {
|
||||
fprintf(stdout,"%s:",varname);
|
||||
fprintf(stdout,"\t.byte $%X ; ysize=%d",xsize,ysize);
|
||||
} else {
|
||||
fprintf(stdout,"%c",xsize);
|
||||
}
|
||||
|
||||
size+=2;
|
||||
|
||||
/* Get first top/bottom color pair */
|
||||
last=image[x];
|
||||
run++;
|
||||
x++;
|
||||
|
||||
while(1) {
|
||||
|
||||
/* get next top/bottom color pair */
|
||||
next=image[x];
|
||||
|
||||
if ((next&0xf0)==0xA0) {
|
||||
fprintf(stderr,"Warning! Using color A (grey2)!\n");
|
||||
next&=~0xf0;
|
||||
next|=0x50; // substitute grey1
|
||||
}
|
||||
|
||||
/* If color change (or too big) then output our run */
|
||||
/* Note 0xff for run length is special case meaning "finished" */
|
||||
if ((next!=last) || (run>254)) {
|
||||
|
||||
size+=print_run(count,out_type,run,last);
|
||||
|
||||
count++;
|
||||
run=0;
|
||||
last=next;
|
||||
}
|
||||
|
||||
x++;
|
||||
|
||||
/* If we reach the end */
|
||||
if (x>=xsize*(ysize/2)) {
|
||||
run++;
|
||||
|
||||
size+=print_run(count,out_type,run,last);
|
||||
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
run++;
|
||||
if (count>6) count=0;
|
||||
|
||||
}
|
||||
|
||||
/* Print closing marker */
|
||||
|
||||
if (out_type==OUTPUT_C) {
|
||||
fprintf(stdout,"0xA1,");
|
||||
fprintf(stdout,"\t};\n");
|
||||
} else if (out_type==OUTPUT_ASM) {
|
||||
fprintf(stdout,"\n\t.byte $A1\n");
|
||||
} else {
|
||||
fprintf(stdout,"%c",0xA1);
|
||||
}
|
||||
|
||||
size+=1;
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Converts a PNG to RLE compressed data */
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
|
||||
unsigned char *image;
|
||||
int xsize,ysize;
|
||||
int size=0;
|
||||
int out_type=OUTPUT_C;
|
||||
|
||||
if (argc<4) {
|
||||
fprintf(stderr,"Usage:\t%s type INFILE varname\n\n",argv[0]);
|
||||
fprintf(stderr,"\ttype: c or asm or raw\n");
|
||||
fprintf(stderr,"\tvarname: label for graphic\n");
|
||||
fprintf(stderr,"\n");
|
||||
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
if (!strcmp(argv[1],"c")) {
|
||||
out_type=OUTPUT_C;
|
||||
}
|
||||
else if (!strcmp(argv[1],"asm")) {
|
||||
out_type=OUTPUT_ASM;
|
||||
}
|
||||
else if (!strcmp(argv[1],"raw")) {
|
||||
out_type=OUTPUT_RAW;
|
||||
}
|
||||
|
||||
if (loadpng(argv[2],&image,&xsize,&ysize)<0) {
|
||||
fprintf(stderr,"Error loading png!\n");
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
fprintf(stderr,"Loaded image %d by %d\n",xsize,ysize);
|
||||
|
||||
// size=rle_original(out_type,argv[3],
|
||||
// xsize,ysize,image);
|
||||
|
||||
size=rle_smaller(out_type,argv[3],
|
||||
xsize,ysize,image);
|
||||
|
||||
fprintf(stderr,"Size %d bytes\n",size);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -53,11 +53,15 @@ INTRO: intro.o
|
||||
|
||||
intro.o: intro.s \
|
||||
gr_copy.s gr_fast_clear.s gr_pageflip.s gr_unrle.s gr_putsprite.s \
|
||||
gr_overlay.s \
|
||||
keyboard.s random16.s \
|
||||
intro_building.inc intro_elevator.inc intro_off_elevator.inc \
|
||||
intro_elevator.inc intro_off_elevator.inc \
|
||||
intro_keypad.inc intro_scanner.inc intro_unzapped.inc \
|
||||
intro_open_soda.inc intro_drinking.inc intro_collider_ui.inc \
|
||||
intro_tunnel1.inc intro_tunnel2.inc intro_gone.inc
|
||||
intro_tunnel1.inc intro_tunnel2.inc intro_gone.inc \
|
||||
intro_graphics/01_building/intro_car.inc \
|
||||
intro_graphics/01_building/intro_building_car.inc \
|
||||
intro_graphics/01_building/intro_building.inc
|
||||
ca65 -o intro.o intro.s -l intro.lst
|
||||
|
||||
####
|
||||
@ -100,9 +104,6 @@ ootw_c2_cage.inc: $(PNG2RLE) ootw_c2_cage.png
|
||||
|
||||
#####
|
||||
|
||||
intro_building.inc: $(PNG2RLE) intro1_building.png
|
||||
$(PNG2RLE) asm intro1_building.png building_rle > intro_building.inc
|
||||
|
||||
intro_elevator.inc: $(PNG2RLE) intro_elevator.png
|
||||
$(PNG2RLE) asm intro_elevator.png elevator_rle > intro_elevator.inc
|
||||
|
||||
|
@ -74,16 +74,11 @@ beast_end:
|
||||
;=============================
|
||||
; Restore background to $c00
|
||||
|
||||
lda #$0c
|
||||
sta BASH
|
||||
lda #$00
|
||||
sta BASL ; load image off-screen $c00
|
||||
|
||||
lda #>(cavern3_rle)
|
||||
sta GBASH
|
||||
lda #<(cavern3_rle)
|
||||
sta GBASL
|
||||
|
||||
lda #$c ; load image off-screen $c00
|
||||
jmp load_rle_gr
|
||||
|
||||
|
||||
|
121
ootw/gr_unrle.s
@ -1,100 +1,87 @@
|
||||
;=================
|
||||
; load RLE image
|
||||
;=================
|
||||
; Output is BASH/BASL
|
||||
; Output is A:00 (assume page aligned)
|
||||
; Input is in GBASH/GBASL
|
||||
load_rle_gr:
|
||||
lda #$0
|
||||
tay ; init Y to 0
|
||||
sta TEMP ; stores the xcoord
|
||||
|
||||
sta CV ; ycoord=0
|
||||
; format: first byte=xsize
|
||||
; A0,X,Y means run of X bytes of Y color
|
||||
; A1 means end of file
|
||||
; A2-AF,X means run of low nibble, X color
|
||||
; if high nibble not A: just display color
|
||||
|
||||
; CV = current Y
|
||||
; CH = max xsize (usually 40)
|
||||
; TEMP = page
|
||||
; TEMPY= current X
|
||||
|
||||
|
||||
load_rle_gr:
|
||||
sec
|
||||
sbc #4 ; adjust page to write to
|
||||
; to match gr_offsets
|
||||
sta TEMP
|
||||
|
||||
ldy #$0 ; init Y to 0
|
||||
sty CV
|
||||
|
||||
jsr load_and_increment ; load xsize
|
||||
sta CH
|
||||
|
||||
jsr unrle_new_y
|
||||
|
||||
|
||||
rle_loop:
|
||||
jsr load_and_increment
|
||||
|
||||
tax
|
||||
|
||||
cmp #$A1 ; if 0xa1
|
||||
beq rle_done ; we are done
|
||||
|
||||
pha
|
||||
|
||||
and #$f0 ; mask
|
||||
cmp #$a0 ; see if special AX
|
||||
beq decompress_special
|
||||
|
||||
pla ; note, PLA sets flags!
|
||||
; not special, just color
|
||||
|
||||
txa ; put color back in A
|
||||
ldx #$1 ; only want to print 1
|
||||
bne decompress_run
|
||||
|
||||
decompress_special:
|
||||
pla
|
||||
txa ; put read value back in A
|
||||
|
||||
and #$0f ; check if was A0
|
||||
|
||||
bne decompress_color ; if A0 need to read run, color
|
||||
|
||||
decompress_large:
|
||||
jsr load_and_increment ; get run length
|
||||
jsr load_and_increment ; run length now in A
|
||||
|
||||
decompress_color:
|
||||
tax ; put runlen into X
|
||||
jsr load_and_increment ; get color
|
||||
jsr load_and_increment ; get color into A
|
||||
|
||||
decompress_run:
|
||||
rle_run_loop:
|
||||
sta (BASL),y ; write out the value
|
||||
inc BASL ; increment the pointer
|
||||
bne rle_skip3 ; if wrapped
|
||||
inc BASH ; then increment the high value
|
||||
inc BASL
|
||||
dec TEMPY
|
||||
bne rle_not_eol ; if less then keep going
|
||||
|
||||
rle_skip3:
|
||||
pha ; store colore for later
|
||||
; if here, we are > max_X
|
||||
|
||||
inc TEMP ; increment the X value
|
||||
lda TEMP
|
||||
cmp CH ; compare against the image width
|
||||
bcc rle_not_eol ; if less then keep going
|
||||
|
||||
lda BASL ; cheat to avoid a 16-bit add
|
||||
cmp #$a7 ; we are adding 0x58 to get
|
||||
bcc rle_add_skip ; to the next line
|
||||
inc BASH
|
||||
rle_add_skip:
|
||||
clc
|
||||
adc #$58 ; actually do the 0x58 add
|
||||
sta BASL ; and store it back
|
||||
|
||||
inc CV ; add 2 to ypos
|
||||
inc CV ; each "line" is two high
|
||||
|
||||
lda CV ; load value
|
||||
cmp #15 ; if it's greater than 14 it wraps
|
||||
bcc rle_no_wrap ; Thanks Woz
|
||||
|
||||
lda #$0 ; we wrapped, so set to zero
|
||||
sta CV
|
||||
|
||||
; when wrapping have to sub 0x3d8
|
||||
sec ; this is a 16-bit subtract routine
|
||||
lda BASL
|
||||
sbc #$d8 ; LSB
|
||||
sta BASL
|
||||
lda BASH ; MSB
|
||||
sbc #$3 ;
|
||||
sta BASH
|
||||
|
||||
rle_no_wrap:
|
||||
lda #$0 ; set X value back to zero
|
||||
sta TEMP
|
||||
inc CV
|
||||
inc CV
|
||||
pha
|
||||
jsr unrle_new_y
|
||||
pla
|
||||
|
||||
rle_not_eol:
|
||||
pla ; restore color
|
||||
dex
|
||||
bne rle_run_loop ; if not zero, keep looping
|
||||
|
||||
beq rle_loop ; and branch always
|
||||
|
||||
rle_done:
|
||||
@ -104,12 +91,22 @@ rle_done:
|
||||
|
||||
|
||||
load_and_increment:
|
||||
lda (GBASL),y ; load value ; 5?
|
||||
inc GBASL ; 5?
|
||||
bne lskip2 ; 2nt/3
|
||||
inc GBASH ; 5?
|
||||
lskip2:
|
||||
rts ; 6
|
||||
|
||||
|
||||
lda (GBASL),Y
|
||||
inc GBASL
|
||||
bne lai_no_oflo
|
||||
inc GBASH
|
||||
lai_no_oflo:
|
||||
rts
|
||||
|
||||
unrle_new_y:
|
||||
ldy CV
|
||||
lda gr_offsets,Y
|
||||
sta BASL
|
||||
lda gr_offsets+1,Y
|
||||
clc
|
||||
adc TEMP ; adjust for page
|
||||
sta BASH
|
||||
lda CH
|
||||
sta TEMPY
|
||||
ldy #0
|
||||
rts
|
||||
|
318
ootw/intro.s
@ -14,11 +14,11 @@ intro:
|
||||
bit FULLGR
|
||||
|
||||
;===========================
|
||||
; Setup pages (is this necessary?)
|
||||
; Setup pages
|
||||
|
||||
lda #0
|
||||
lda #4
|
||||
sta DRAW_PAGE
|
||||
lda #1
|
||||
lda #0
|
||||
sta DISP_PAGE
|
||||
|
||||
;===============================
|
||||
@ -30,15 +30,13 @@ intro:
|
||||
;=============================
|
||||
; Load background to $c00
|
||||
|
||||
lda #$0c
|
||||
sta BASH
|
||||
lda #$00
|
||||
sta BASL ; load image off-screen $c00
|
||||
|
||||
lda #>(building_rle)
|
||||
sta GBASH
|
||||
lda #<(building_rle)
|
||||
sta GBASL
|
||||
|
||||
lda #$0c ; load to $c00
|
||||
|
||||
jsr load_rle_gr
|
||||
|
||||
;=================================
|
||||
@ -46,13 +44,240 @@ intro:
|
||||
|
||||
jsr gr_copy_to_current
|
||||
jsr page_flip
|
||||
jsr gr_copy_to_current
|
||||
|
||||
building_loop:
|
||||
lda KEYPRESS
|
||||
bpl building_loop
|
||||
bit KEYRESET
|
||||
|
||||
lda #>(intro_car1)
|
||||
sta GBASH
|
||||
lda #<(intro_car1)
|
||||
sta GBASL
|
||||
lda #$10 ; load to $1000
|
||||
jsr load_rle_gr
|
||||
|
||||
jsr gr_overlay
|
||||
jsr page_flip
|
||||
|
||||
building_loop2:
|
||||
lda KEYPRESS
|
||||
bpl building_loop2
|
||||
bit KEYRESET
|
||||
|
||||
lda #>(intro_car2)
|
||||
sta GBASH
|
||||
lda #<(intro_car2)
|
||||
sta GBASL
|
||||
lda #$10 ; load to $1000
|
||||
jsr load_rle_gr
|
||||
|
||||
jsr gr_overlay
|
||||
jsr page_flip
|
||||
|
||||
building_loop3:
|
||||
lda KEYPRESS
|
||||
bpl building_loop3
|
||||
bit KEYRESET
|
||||
|
||||
lda #>(intro_car3)
|
||||
sta GBASH
|
||||
lda #<(intro_car3)
|
||||
sta GBASL
|
||||
lda #$10 ; load to $1000
|
||||
jsr load_rle_gr
|
||||
|
||||
jsr gr_overlay
|
||||
jsr page_flip
|
||||
|
||||
building_loop4:
|
||||
lda KEYPRESS
|
||||
bpl building_loop4
|
||||
bit KEYRESET
|
||||
|
||||
lda #>(intro_car4)
|
||||
sta GBASH
|
||||
lda #<(intro_car4)
|
||||
sta GBASL
|
||||
lda #$10 ; load to $1000
|
||||
jsr load_rle_gr
|
||||
|
||||
jsr gr_overlay
|
||||
jsr page_flip
|
||||
|
||||
building_loop5:
|
||||
lda KEYPRESS
|
||||
bpl building_loop5
|
||||
bit KEYRESET
|
||||
|
||||
lda #>(intro_car5)
|
||||
sta GBASH
|
||||
lda #<(intro_car5)
|
||||
sta GBASL
|
||||
lda #$10 ; load to $1000
|
||||
jsr load_rle_gr
|
||||
|
||||
jsr gr_overlay
|
||||
jsr page_flip
|
||||
|
||||
building_loop6:
|
||||
lda KEYPRESS
|
||||
bpl building_loop6
|
||||
bit KEYRESET
|
||||
|
||||
lda #>(intro_car6)
|
||||
sta GBASH
|
||||
lda #<(intro_car6)
|
||||
sta GBASL
|
||||
lda #$10 ; load to $1000
|
||||
jsr load_rle_gr
|
||||
|
||||
jsr gr_overlay
|
||||
jsr page_flip
|
||||
|
||||
building_loop7:
|
||||
lda KEYPRESS
|
||||
bpl building_loop7
|
||||
bit KEYRESET
|
||||
|
||||
lda #>(intro_car7)
|
||||
sta GBASH
|
||||
lda #<(intro_car7)
|
||||
sta GBASL
|
||||
lda #$10 ; load to $1000
|
||||
jsr load_rle_gr
|
||||
|
||||
jsr gr_overlay
|
||||
jsr page_flip
|
||||
|
||||
building_loop8:
|
||||
lda KEYPRESS
|
||||
bpl building_loop8
|
||||
bit KEYRESET
|
||||
|
||||
lda #>(intro_car8)
|
||||
sta GBASH
|
||||
lda #<(intro_car8)
|
||||
sta GBASL
|
||||
lda #$10 ; load to $1000
|
||||
jsr load_rle_gr
|
||||
|
||||
jsr gr_overlay
|
||||
jsr page_flip
|
||||
|
||||
building_loop9:
|
||||
lda KEYPRESS
|
||||
bpl building_loop9
|
||||
bit KEYRESET
|
||||
|
||||
lda #>(intro_car9)
|
||||
sta GBASH
|
||||
lda #<(intro_car9)
|
||||
sta GBASL
|
||||
lda #$10 ; load to $1000
|
||||
jsr load_rle_gr
|
||||
|
||||
jsr gr_overlay
|
||||
jsr page_flip
|
||||
|
||||
building_loop10:
|
||||
lda KEYPRESS
|
||||
bpl building_loop10
|
||||
bit KEYRESET
|
||||
|
||||
lda #>(intro_car10)
|
||||
sta GBASH
|
||||
lda #<(intro_car10)
|
||||
sta GBASL
|
||||
lda #$10 ; load to $1000
|
||||
jsr load_rle_gr
|
||||
|
||||
jsr gr_overlay
|
||||
jsr page_flip
|
||||
|
||||
building_loop11:
|
||||
lda KEYPRESS
|
||||
bpl building_loop11
|
||||
bit KEYRESET
|
||||
|
||||
|
||||
;=============================
|
||||
; Load background to $c00
|
||||
|
||||
lda #>(building_car_rle)
|
||||
sta GBASH
|
||||
lda #<(building_car_rle)
|
||||
sta GBASL
|
||||
|
||||
lda #$0c ; load to $c00
|
||||
|
||||
jsr load_rle_gr
|
||||
|
||||
jsr gr_copy_to_current
|
||||
jsr page_flip
|
||||
|
||||
building_loop12:
|
||||
lda KEYPRESS
|
||||
bpl building_loop12
|
||||
bit KEYRESET
|
||||
|
||||
|
||||
lda #>(intro_car12)
|
||||
sta GBASH
|
||||
lda #<(intro_car12)
|
||||
sta GBASL
|
||||
lda #$10 ; load to $1000
|
||||
jsr load_rle_gr
|
||||
|
||||
jsr gr_overlay
|
||||
jsr page_flip
|
||||
|
||||
building_loop13:
|
||||
lda KEYPRESS
|
||||
bpl building_loop13
|
||||
bit KEYRESET
|
||||
|
||||
|
||||
lda #>(intro_car13)
|
||||
sta GBASH
|
||||
lda #<(intro_car13)
|
||||
sta GBASL
|
||||
lda #$10 ; load to $1000
|
||||
jsr load_rle_gr
|
||||
|
||||
jsr gr_overlay
|
||||
jsr page_flip
|
||||
|
||||
building_loop14:
|
||||
lda KEYPRESS
|
||||
bpl building_loop14
|
||||
bit KEYRESET
|
||||
|
||||
lda #>(intro_car14)
|
||||
sta GBASH
|
||||
lda #<(intro_car14)
|
||||
sta GBASL
|
||||
lda #$10 ; load to $1000
|
||||
jsr load_rle_gr
|
||||
|
||||
jsr gr_overlay
|
||||
jsr page_flip
|
||||
|
||||
building_loop15:
|
||||
lda KEYPRESS
|
||||
bpl building_loop15
|
||||
bit KEYRESET
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
;===============================
|
||||
;===============================
|
||||
; Walk into door
|
||||
@ -71,15 +296,11 @@ building_loop:
|
||||
;=============================
|
||||
; Load background to $c00
|
||||
|
||||
lda #$0c
|
||||
sta BASH
|
||||
lda #$00
|
||||
sta BASL ; load image off-screen $c00
|
||||
|
||||
lda #>(elevator_rle)
|
||||
sta GBASH
|
||||
lda #<(elevator_rle)
|
||||
sta GBASL
|
||||
lda #$c ; load to off-screen $c00
|
||||
jsr load_rle_gr
|
||||
|
||||
;=================================
|
||||
@ -105,15 +326,11 @@ elevator_loop:
|
||||
;=============================
|
||||
; Load background to $c00
|
||||
|
||||
lda #$0c
|
||||
sta BASH
|
||||
lda #$00
|
||||
sta BASL ; load image off-screen $c00
|
||||
|
||||
lda #>(off_elevator_rle)
|
||||
sta GBASH
|
||||
lda #<(off_elevator_rle)
|
||||
sta GBASL
|
||||
lda #$c ; load to off-screen $c00
|
||||
jsr load_rle_gr
|
||||
|
||||
;=================================
|
||||
@ -138,15 +355,11 @@ off_elevator_loop:
|
||||
;=============================
|
||||
; Load background to $c00
|
||||
|
||||
lda #$0c
|
||||
sta BASH
|
||||
lda #$00
|
||||
sta BASL ; load image off-screen $c00
|
||||
|
||||
lda #>(keypad_rle)
|
||||
sta GBASH
|
||||
lda #<(keypad_rle)
|
||||
sta GBASL
|
||||
lda #$c ; load to off-screen $c00
|
||||
jsr load_rle_gr
|
||||
|
||||
;=================================
|
||||
@ -172,15 +385,11 @@ keypad_loop:
|
||||
;=============================
|
||||
; Load background to $c00
|
||||
|
||||
lda #$0c
|
||||
sta BASH
|
||||
lda #$00
|
||||
sta BASL ; load image off-screen $c00
|
||||
|
||||
lda #>(scanner_rle)
|
||||
sta GBASH
|
||||
lda #<(scanner_rle)
|
||||
sta GBASL
|
||||
lda #$c ; load to off-screen $c00
|
||||
jsr load_rle_gr
|
||||
|
||||
;=================================
|
||||
@ -210,15 +419,11 @@ scanner_loop:
|
||||
;=============================
|
||||
; Load background to $c00
|
||||
|
||||
lda #$0c
|
||||
sta BASH
|
||||
lda #$00
|
||||
sta BASL ; load image off-screen $c00
|
||||
|
||||
lda #>(unzapped_rle)
|
||||
sta GBASH
|
||||
lda #<(unzapped_rle)
|
||||
sta GBASL
|
||||
lda #$c ; load to off-screen $c00
|
||||
jsr load_rle_gr
|
||||
|
||||
;=================================
|
||||
@ -250,15 +455,11 @@ unzapped_loop:
|
||||
;=============================
|
||||
; Load background to $c00
|
||||
|
||||
lda #$0c
|
||||
sta BASH
|
||||
lda #$00
|
||||
sta BASL ; load image off-screen $c00
|
||||
|
||||
lda #>(open_soda_rle)
|
||||
sta GBASH
|
||||
lda #<(open_soda_rle)
|
||||
sta GBASL
|
||||
lda #$c ; load to off-screen $c00
|
||||
jsr load_rle_gr
|
||||
|
||||
;=================================
|
||||
@ -283,15 +484,11 @@ open_soda_loop:
|
||||
;=============================
|
||||
; Load background to $c00
|
||||
|
||||
lda #$0c
|
||||
sta BASH
|
||||
lda #$00
|
||||
sta BASL ; load image off-screen $c00
|
||||
|
||||
lda #>(drinking_rle)
|
||||
sta GBASH
|
||||
lda #<(drinking_rle)
|
||||
sta GBASL
|
||||
lda #$c ; load to off-screen $c00
|
||||
jsr load_rle_gr
|
||||
|
||||
;=================================
|
||||
@ -315,15 +512,11 @@ drinking_loop:
|
||||
;=============================
|
||||
; Load background to $c00
|
||||
|
||||
lda #$0c
|
||||
sta BASH
|
||||
lda #$00
|
||||
sta BASL ; load image off-screen $c00
|
||||
|
||||
lda #>(collider_ui_rle)
|
||||
sta GBASH
|
||||
lda #<(collider_ui_rle)
|
||||
sta GBASL
|
||||
lda #$c ; load to off-screen $c00
|
||||
jsr load_rle_gr
|
||||
|
||||
;=================================
|
||||
@ -355,15 +548,11 @@ collider_ui_loop:
|
||||
;=============================
|
||||
; Load background to $c00
|
||||
|
||||
lda #$0c
|
||||
sta BASH
|
||||
lda #$00
|
||||
sta BASL ; load image off-screen $c00
|
||||
|
||||
lda #>(tunnel1_rle)
|
||||
sta GBASH
|
||||
lda #<(tunnel1_rle)
|
||||
sta GBASL
|
||||
lda #$c ; load to off-screen $c00
|
||||
jsr load_rle_gr
|
||||
|
||||
;=================================
|
||||
@ -390,15 +579,11 @@ tunnel1_loop:
|
||||
;=============================
|
||||
; Load background to $c00
|
||||
|
||||
lda #$0c
|
||||
sta BASH
|
||||
lda #$00
|
||||
sta BASL ; load image off-screen $c00
|
||||
|
||||
lda #>(tunnel2_rle)
|
||||
sta GBASH
|
||||
lda #<(tunnel2_rle)
|
||||
sta GBASL
|
||||
lda #$c ; load to off-screen $c00
|
||||
jsr load_rle_gr
|
||||
|
||||
;=================================
|
||||
@ -424,15 +609,11 @@ tunnel2_loop:
|
||||
;=============================
|
||||
; Load background to $c00
|
||||
|
||||
lda #$0c
|
||||
sta BASH
|
||||
lda #$00
|
||||
sta BASL ; load image off-screen $c00
|
||||
|
||||
lda #>(gone_rle)
|
||||
sta GBASH
|
||||
lda #<(gone_rle)
|
||||
sta GBASL
|
||||
lda #$c ; load to off-screen $c00
|
||||
jsr load_rle_gr
|
||||
|
||||
;=================================
|
||||
@ -465,9 +646,14 @@ gone_loop:
|
||||
.include "gr_unrle.s"
|
||||
.include "gr_copy.s"
|
||||
.include "gr_offsets.s"
|
||||
.include "gr_overlay.s"
|
||||
|
||||
; background graphics
|
||||
.include "intro_building.inc"
|
||||
.include "intro_graphics/01_building/intro_building.inc"
|
||||
.include "intro_graphics/01_building/intro_building_car.inc"
|
||||
.include "intro_graphics/01_building/intro_car.inc"
|
||||
|
||||
|
||||
.include "intro_elevator.inc"
|
||||
.include "intro_off_elevator.inc"
|
||||
.include "intro_keypad.inc"
|
||||
@ -479,3 +665,5 @@ gone_loop:
|
||||
.include "intro_tunnel1.inc"
|
||||
.include "intro_tunnel2.inc"
|
||||
.include "intro_gone.inc"
|
||||
|
||||
|
||||
|
45
ootw/intro_graphics/01_building/Makefile
Normal file
@ -0,0 +1,45 @@
|
||||
include ../../../Makefile.inc
|
||||
|
||||
PNG2RLE = ../../../gr-utils/png2rle
|
||||
|
||||
|
||||
all: intro_car.inc intro_building.inc intro_building_car.inc
|
||||
|
||||
#####
|
||||
|
||||
intro_car.inc: $(PNG2RLE) intro_car1.png intro_car2.png \
|
||||
intro_car3.png intro_car4.png intro_car5.png \
|
||||
intro_car6.png intro_car7.png intro_car8.png \
|
||||
intro_car9.png intro_car10.png intro_car12.png \
|
||||
intro_car13.png intro_car14.png
|
||||
$(PNG2RLE) asm intro_car1.png intro_car1 > intro_car.inc
|
||||
$(PNG2RLE) asm intro_car2.png intro_car2 >> intro_car.inc
|
||||
$(PNG2RLE) asm intro_car3.png intro_car3 >> intro_car.inc
|
||||
$(PNG2RLE) asm intro_car4.png intro_car4 >> intro_car.inc
|
||||
$(PNG2RLE) asm intro_car5.png intro_car5 >> intro_car.inc
|
||||
$(PNG2RLE) asm intro_car6.png intro_car6 >> intro_car.inc
|
||||
$(PNG2RLE) asm intro_car7.png intro_car7 >> intro_car.inc
|
||||
$(PNG2RLE) asm intro_car8.png intro_car8 >> intro_car.inc
|
||||
$(PNG2RLE) asm intro_car9.png intro_car9 >> intro_car.inc
|
||||
$(PNG2RLE) asm intro_car10.png intro_car10 >> intro_car.inc
|
||||
$(PNG2RLE) asm intro_car12.png intro_car12 >> intro_car.inc
|
||||
$(PNG2RLE) asm intro_car13.png intro_car13 >> intro_car.inc
|
||||
$(PNG2RLE) asm intro_car14.png intro_car14 >> intro_car.inc
|
||||
|
||||
|
||||
#####
|
||||
|
||||
intro_building_car.inc: $(PNG2RLE) intro_building_car.png
|
||||
$(PNG2RLE) asm intro_building_car.png building_car_rle > intro_building_car.inc
|
||||
|
||||
#####
|
||||
|
||||
intro_building.inc: $(PNG2RLE) intro_building.png
|
||||
$(PNG2RLE) asm intro_building.png building_rle > intro_building.inc
|
||||
|
||||
|
||||
|
||||
#####
|
||||
|
||||
clean:
|
||||
rm -f *~ *.inc
|
Before Width: | Height: | Size: 484 B After Width: | Height: | Size: 484 B |
37
ootw/intro_graphics/01_building/intro_building_car.inc
Normal file
@ -0,0 +1,37 @@
|
||||
building_car_rle: .byte $28 ; ysize=48
|
||||
.byte $A3,$26, $00,$00, $26, $A5,$66, $A8,$65, $A6,$25, $65
|
||||
.byte $AE,$66, $26,$26, $66, $00,$00, $AD,$26, $AA,$22, $20
|
||||
.byte $A0,$1E,$00, $A5,$20, $A0,$10,$22, $00,$00, $20, $00,$00, $20,$20
|
||||
.byte $60,$60, $A6,$20, $A0,$19,$00, $66, $60, $A3,$00, $26,$26
|
||||
.byte $AB,$22, $62, $26, $00, $A3,$22, $62, $26,$26
|
||||
.byte $56, $A6,$00, $A6,$02, $A3,$22, $00,$00, $AD,$22, $66
|
||||
.byte $22, $00, $A3,$22, $66, $22,$22, $55, $00
|
||||
.byte $A4,$20, $00, $A6,$20, $22, $66, $22, $00,$00
|
||||
.byte $A7,$22, $66, $00, $A4,$22, $66, $22, $00
|
||||
.byte $22,$22, $66, $A3,$22, $55, $A4,$22, $26, $00,$00
|
||||
.byte $26,$26, $66, $26,$26, $66, $22,$22, $00,$00, $A6,$22
|
||||
.byte $66, $22, $00, $AD,$22, $25, $50, $00
|
||||
.byte $20, $00, $20, $A3,$00, $20, $00, $20,$20
|
||||
.byte $26, $22,$22, $00,$00, $A6,$22, $26, $22, $20
|
||||
.byte $AE,$22, $55, $00, $20, $00, $20, $00,$00
|
||||
.byte $20, $00,$00, $20,$20, $A3,$22, $00,$00, $22, $55
|
||||
.byte $66,$66, $A7,$22, $52, $A3,$02, $A3,$22, $55, $66,$66
|
||||
.byte $22,$22, $66, $55, $00,$00, $20, $00,$00, $20,$20
|
||||
.byte $00, $20,$20, $A3,$22, $00,$00, $22, $55, $66,$66
|
||||
.byte $A7,$22, $55, $A3,$00, $A3,$22, $55, $66,$66, $A3,$22
|
||||
.byte $66, $55, $00, $20, $00,$00, $20,$20, $00,$00
|
||||
.byte $20, $A3,$22, $00,$00, $22, $55, $66,$66, $A7,$22
|
||||
.byte $55, $A3,$00, $A3,$22, $55, $66,$66, $22,$22, $02,$02
|
||||
.byte $06, $0A, $A0,$01,$A0, $00,$00, $20,$20, $00, $20
|
||||
.byte $00, $A3,$02, $00,$00, $22, $55, $66,$66, $A7,$22
|
||||
.byte $A4,$26, $A3,$22, $55, $66,$66, $22, $00, $22,$22
|
||||
.byte $02, $00, $50, $A3,$00, $20, $00, $20,$20
|
||||
.byte $A5,$00, $22, $55, $66,$66, $AE,$22, $05, $06,$06
|
||||
.byte $00, $A3,$02, $00,$00, $06, $A5,$00, $20,$20, $22
|
||||
.byte $A0,$01,$A2, $22, $00,$00, $22, $55, $66,$66, $22
|
||||
.byte $20, $62, $A4,$60, $A3,$22, $02, $A0,$13,$00, $20
|
||||
.byte $22, $26,$26, $00,$00, $22, $A0,$01,$AA, $66,$66, $02
|
||||
.byte $A9,$22, $A0,$14,$00, $20, $A3,$02, $00,$00, $02, $0A
|
||||
.byte $06,$06, $00,$00, $A3,$02, $00, $A5,$02, $A0,$10,$00, $20,$20
|
||||
.byte $A0,$1B,$00, $02, $A0,$FE,$00
|
||||
.byte $A1
|
BIN
ootw/intro_graphics/01_building/intro_building_car.png
Normal file
After Width: | Height: | Size: 487 B |
128
ootw/intro_graphics/01_building/intro_car.inc
Normal file
@ -0,0 +1,128 @@
|
||||
intro_car1: .byte $28 ; ysize=48
|
||||
.byte $A0,$C8,$AA, $A0,$28,$0A, $A0,$FF,$00, $A0,$41,$00, $10, $11,$11, $10
|
||||
.byte $A0,$21,$00, $10,$10, $00, $A4,$11, $A0,$20,$00, $A4,$11, $01
|
||||
.byte $11,$11, $01, $A0,$20,$00, $A4,$11, $A0,$25,$00, $01,$01, $A0,$F1,$00
|
||||
.byte $A1
|
||||
intro_car2: .byte $28 ; ysize=48
|
||||
.byte $A0,$FF,$AA, $A0,$24,$AA, $A0,$11,$0A, $A8,$00, $0A, $AA,$AA, $0A,$0A
|
||||
.byte $A0,$1D,$00, $0A, $A6,$AA, $0A, $A0,$22,$00, $A3,$AA, $0A
|
||||
.byte $A0,$24,$00, $A3,$AA, $A0,$25,$00, $A3,$AA, $A4,$00, $10,$10, $00
|
||||
.byte $10,$10, $A0,$16,$00, $10,$10, $00, $10,$10, $00, $A3,$AA
|
||||
.byte $A4,$00, $11,$11, $00, $11,$11, $A0,$16,$00, $11,$11, $00
|
||||
.byte $11,$11, $00, $A3,$AA, $A4,$00, $01,$01, $00, $01,$01
|
||||
.byte $A0,$16,$00, $01,$01, $00, $01,$01, $00, $A3,$AA, $A0,$25,$00
|
||||
.byte $A3,$0A, $A0,$FF,$00, $A0,$3E,$00
|
||||
.byte $A1
|
||||
intro_car3: .byte $28 ; ysize=48
|
||||
.byte $A0,$83,$AA, $A4,$6A, $A0,$23,$AA, $6A, $AB,$66, $A0,$1B,$AA, $6A
|
||||
.byte $AD,$66, $A0,$19,$AA, $6A, $AF,$66, $A0,$18,$AA, $AF,$66, $06
|
||||
.byte $A0,$10,$00, $A8,$AA, $AE,$66, $06, $A0,$11,$00, $A6,$AA, $55
|
||||
.byte $FF,$FF, $A7,$66, $F6, $A3,$86, $66, $06, $A0,$12,$00
|
||||
.byte $A6,$AA, $55, $FF,$FF, $A7,$66, $00,$00, $88, $08
|
||||
.byte $A0,$14,$00, $A6,$AA, $55, $FF,$FF, $A7,$66, $FF, $88
|
||||
.byte $A0,$16,$00, $A6,$AA, $55, $FF,$FF, $A8,$66, $06, $A0,$16,$00
|
||||
.byte $A6,$AA, $55, $FF,$FF, $A7,$66, $A8,$00, $10,$10, $00
|
||||
.byte $10, $AC,$00, $A6,$AA, $55, $FF,$FF, $A3,$66, $A3,$60
|
||||
.byte $A9,$00, $11,$11, $00, $11, $AC,$00, $A6,$AA, $55
|
||||
.byte $6F, $FF, $A6,$66, $A0,$19,$00, $A6,$AA, $A0,$01,$A5, $A0,$01,$A6
|
||||
.byte $A0,$01,$AF, $A7,$86, $A0,$18,$00, $A9,$AA, $A0,$01,$A8, $A5,$88, $A0,$19,$00
|
||||
.byte $AB,$AA, $A0,$01,$A8, $A3,$88, $A0,$19,$00, $AD,$AA, $A0,$01,$A8, $88
|
||||
.byte $A0,$B9,$00
|
||||
.byte $A1
|
||||
intro_car4: .byte $28 ; ysize=48
|
||||
.byte $A0,$D5,$AA, $AC,$6A, $A0,$1B,$AA, $AE,$66, $A0,$19,$AA, $AF,$66, $A0,$19,$AA
|
||||
.byte $AF,$66, $0A,$0A, $AC,$00, $AB,$AA, $A5,$66, $F6, $A3,$86
|
||||
.byte $A3,$66, $A3,$FF, $AE,$00, $AB,$AA, $A5,$66, $FF, $A3,$88
|
||||
.byte $A3,$66, $FF,$FF, $0F, $AE,$00, $AB,$AA, $A5,$66, $FF
|
||||
.byte $A3,$88, $66, $00,$00, $FF, $A0,$10,$00, $AB,$AA, $A5,$66
|
||||
.byte $A4,$65, $06,$06, $00, $0F, $A0,$10,$00, $AB,$AA, $A9,$66
|
||||
.byte $A0,$14,$00, $AA,$AA, $A0,$01,$A0, $A5,$60, $A4,$66, $A0,$14,$00, $AC,$AA
|
||||
.byte $A8,$66, $60, $A9,$00, $10, $00, $10, $A7,$00
|
||||
.byte $AD,$AA, $A0,$01,$A6, $A6,$86, $AA,$00, $01, $00, $01
|
||||
.byte $A7,$00, $AF,$AA, $A0,$01,$A8, $A4,$88, $A0,$14,$00, $A0,$12,$AA, $A0,$01,$A8
|
||||
.byte $88, $A0,$14,$00, $A0,$14,$0A, $08,$08, $A0,$B2,$00
|
||||
.byte $A1
|
||||
intro_car5: .byte $28 ; ysize=48
|
||||
.byte $A0,$FF,$AA, $A0,$6F,$AA, $55, $A0,$16,$AA, $0A, $AA,$00, $A6,$AA
|
||||
.byte $55, $A9,$AA, $5A, $A6,$AA, $5A, $A3,$AA, $0A
|
||||
.byte $A0,$01,$A0, $A0,$02,$AA, $A9,$00, $A6,$AA, $A0,$01,$A5, $A3,$AA, $6A
|
||||
.byte $A3,$66, $6A, $A0,$01,$AA, $55, $A6,$AA, $55, $A0,$01,$AA
|
||||
.byte $0A, $A0,$01,$A0, $A0,$02,$AA, $0A, $AA,$00, $A8,$AA, $FA
|
||||
.byte $6A, $A5,$66, $6A, $6F, $A3,$66, $A3,$AA, $05
|
||||
.byte $00, $0A, $AE,$00, $A8,$AA, $FF, $AB,$66, $6A
|
||||
.byte $0A, $A0,$12,$00, $A8,$AA, $FF, $A3,$66, $A4,$60, $A4,$66
|
||||
.byte $06, $A0,$13,$00, $A8,$AA, $6F, $06, $AA,$66, $A0,$14,$00
|
||||
.byte $A8,$AA, $A0,$01,$A6, $A0,$01,$A0, $A0,$01,$A6, $A9,$86, $A0,$11,$00, $10
|
||||
.byte $00, $10, $AB,$0A, $A9,$08, $A0,$11,$00, $01, $00
|
||||
.byte $01, $A0,$F0,$00
|
||||
.byte $A1
|
||||
intro_car6: .byte $28 ; ysize=48
|
||||
.byte $A0,$FF,$AA, $A0,$91,$AA, $A3,$66, $00,$00, $66, $FF, $FA
|
||||
.byte $A0,$20,$AA, $A3,$66, $00,$00, $66, $A3,$FF, $66,$66, $6A
|
||||
.byte $A0,$10,$AA, $0A,$0A, $A0,$02,$A0, $A5,$00, $0A,$0A, $A0,$01,$AA, $A3,$06
|
||||
.byte $00,$00, $66, $A3,$FF, $A5,$66, $6A, $AC,$AA, $00
|
||||
.byte $A3,$AA, $00, $A0,$01,$AA, $AC,$00, $66, $A3,$FF, $A8,$66
|
||||
.byte $6A, $A8,$AA, $00, $A4,$AA, $00, $A0,$01,$AA, $A7,$00
|
||||
.byte $A3,$66, $00,$00, $66, $A3,$FF, $A3,$66, $A4,$60, $A3,$66
|
||||
.byte $6A, $A0,$02,$AA, $A0,$12,$00, $66, $60,$60, $00,$00, $66
|
||||
.byte $A3,$FF, $AB,$66, $50, $A0,$12,$00, $10, $06, $86,$86
|
||||
.byte $00,$00, $86, $A3,$8F, $A5,$86, $00, $A3,$06, $02,$02
|
||||
.byte $A0,$13,$00, $01, $00,$00, $08, $00,$00, $08, $A0,$FF,$00
|
||||
.byte $A0,$13,$00
|
||||
.byte $A1
|
||||
intro_car7: .byte $28 ; ysize=48
|
||||
.byte $A0,$FF,$AA, $A0,$D7,$AA, $0A, $50, $A8,$00, $A5,$0A, $6A
|
||||
.byte $5A, $6A,$6A, $AE,$AA, $5A, $A4,$AA, $0A, $A0,$01,$A0
|
||||
.byte $A0,$01,$AA, $00, $55, $AC,$00, $66, $FF,$FF, $F6
|
||||
.byte $AE,$AA, $55, $A0,$02,$AA, $0A, $00, $A3,$0A, $00
|
||||
.byte $05, $A7,$00, $A3,$66, $00,$00, $66, $A3,$FF, $66,$66
|
||||
.byte $6A, $A4,$60, $6A, $A4,$AA, $0A,$0A, $A0,$11,$00, $66
|
||||
.byte $6A,$6A, $00,$00, $66, $A3,$FF, $06, $AA,$66, $55
|
||||
.byte $50, $A0,$12,$00, $A3,$86, $00,$00, $86, $A3,$8F, $80,$80
|
||||
.byte $A3,$86, $A5,$06, $02, $A0,$14,$00, $A3,$08, $00,$00, $A6,$08
|
||||
.byte $A0,$FF,$00, $AE,$00
|
||||
.byte $A1
|
||||
intro_car8: .byte $28 ; ysize=48
|
||||
.byte $A0,$FF,$AA, $A0,$D0,$AA, $5A, $A5,$AA, $A3,$0A, $A6,$00, $A0,$19,$AA
|
||||
.byte $A0,$01,$A5, $A3,$AA, $0A, $A0,$01,$A0, $A0,$01,$AA, $0A, $A0,$01,$A0
|
||||
.byte $55, $A5,$00, $A0,$19,$AA, $A3,$0A, $A0,$01,$A0, $A0,$02,$AA, $00
|
||||
.byte $A0,$02,$AA, $00, $55, $A6,$00, $66, $6A,$6A, $00,$00
|
||||
.byte $6A, $F5, $F6,$F6, $A3,$6A, $A4,$60, $A3,$AA, $0A
|
||||
.byte $A0,$14,$00, $66, $6A,$6A, $00,$00, $66, $A3,$FF, $AB,$66
|
||||
.byte $50,$50, $A0,$12,$00, $A3,$86, $00,$00, $86, $A3,$8F, $86,$86
|
||||
.byte $A5,$06, $A4,$0A, $A0,$FF,$00, $A0,$2D,$00
|
||||
.byte $A1
|
||||
intro_car9: .byte $28 ; ysize=48
|
||||
.byte $A0,$FF,$AA, $A0,$D5,$AA, $A4,$0A, $A0,$01,$AA, $0A,$0A, $A0,$20,$AA, $00
|
||||
.byte $A3,$AA, $00, $50, $A3,$00, $A0,$1B,$AA, $A3,$0A, $00
|
||||
.byte $A3,$0A, $00,$00, $06, $A5,$00, $A0,$02,$AA, $A3,$6A, $0A,$0A
|
||||
.byte $A6,$AA, $A5,$6A, $A3,$AA, $0A, $A0,$13,$00, $A0,$01,$AA, $66
|
||||
.byte $65,$65, $00,$00, $66, $A3,$FF, $AB,$66, $05, $A0,$12,$00
|
||||
.byte $A0,$01,$AA, $A3,$06, $00,$00, $06, $A3,$0F, $A7,$06, $A4,$02
|
||||
.byte $A0,$FF,$00, $A0,$2D,$00
|
||||
.byte $A1
|
||||
intro_car10: .byte $28 ; ysize=48
|
||||
.byte $A0,$FF,$AA, $A0,$D5,$AA, $A4,$0A, $A0,$01,$AA, $0A,$0A, $A0,$1C,$AA, $5A
|
||||
.byte $A3,$AA, $00, $A0,$02,$AA, $0A, $00, $50, $A3,$00
|
||||
.byte $A0,$1B,$AA, $05, $0A,$0A, $00, $A3,$0A, $00,$00, $06
|
||||
.byte $A5,$00, $A0,$02,$AA, $A3,$6A, $0A,$0A, $A6,$AA, $A5,$6A, $A3,$AA
|
||||
.byte $0A, $A0,$13,$00, $A0,$01,$AA, $66, $65,$65, $00,$00, $66
|
||||
.byte $A3,$FF, $AB,$66, $05, $A0,$12,$00, $A0,$01,$AA, $A3,$06, $00,$00
|
||||
.byte $06, $A3,$0F, $A7,$06, $A4,$02, $A0,$10,$00, $20,$20, $A0,$1B,$00
|
||||
.byte $02, $A0,$FE,$00
|
||||
.byte $A1
|
||||
intro_car12: .byte $28 ; ysize=48
|
||||
.byte $A0,$FF,$AA, $A0,$FF,$AA, $BB, $A0,$01,$AA, $5A, $A0,$25,$AA, $A0,$01,$A0
|
||||
.byte $A0,$81,$AA, $A0,$28,$0A, $A0,$F0,$00
|
||||
.byte $A1
|
||||
intro_car13: .byte $28 ; ysize=48
|
||||
.byte $A0,$FF,$AA, $A0,$FF,$AA, $BB, $A0,$26,$AA, $0B, $00, $0B
|
||||
.byte $A0,$25,$AA, $A3,$00, $A0,$25,$AA, $A3,$00, $A0,$25,$AA, $A3,$00, $A8,$AA
|
||||
.byte $A0,$1D,$0A, $00,$00, $05, $A8,$0A, $A0,$F0,$00
|
||||
.byte $A1
|
||||
intro_car14: .byte $28 ; ysize=48
|
||||
.byte $A0,$FF,$AA, $A0,$87,$AA, $BA, $0A, $A0,$26,$AA, $BB, $00
|
||||
.byte $A0,$25,$AA, $A3,$00, $A0,$25,$AA, $A3,$00, $A0,$25,$AA, $0B, $00
|
||||
.byte $0B, $A0,$25,$AA, $A3,$00, $A0,$25,$AA, $A3,$00, $A0,$25,$AA, $A3,$00
|
||||
.byte $A8,$AA, $A0,$1D,$0A, $05, $00, $05, $A8,$0A, $A0,$F0,$00
|
||||
.byte $A1
|
BIN
ootw/intro_graphics/01_building/intro_car1.png
Normal file
After Width: | Height: | Size: 272 B |
BIN
ootw/intro_graphics/01_building/intro_car10.png
Normal file
After Width: | Height: | Size: 330 B |
BIN
ootw/intro_graphics/01_building/intro_car12.png
Normal file
After Width: | Height: | Size: 263 B |
BIN
ootw/intro_graphics/01_building/intro_car13.png
Normal file
After Width: | Height: | Size: 271 B |
BIN
ootw/intro_graphics/01_building/intro_car14.png
Normal file
After Width: | Height: | Size: 273 B |
BIN
ootw/intro_graphics/01_building/intro_car2.png
Normal file
After Width: | Height: | Size: 287 B |
BIN
ootw/intro_graphics/01_building/intro_car3.png
Normal file
After Width: | Height: | Size: 361 B |
BIN
ootw/intro_graphics/01_building/intro_car4.png
Normal file
After Width: | Height: | Size: 341 B |
BIN
ootw/intro_graphics/01_building/intro_car5.png
Normal file
After Width: | Height: | Size: 339 B |
BIN
ootw/intro_graphics/01_building/intro_car6.png
Normal file
After Width: | Height: | Size: 350 B |
BIN
ootw/intro_graphics/01_building/intro_car7.png
Normal file
After Width: | Height: | Size: 335 B |
BIN
ootw/intro_graphics/01_building/intro_car8.png
Normal file
After Width: | Height: | Size: 331 B |
BIN
ootw/intro_graphics/01_building/intro_car9.png
Normal file
After Width: | Height: | Size: 318 B |
@ -250,11 +250,6 @@ done_cavern:
|
||||
|
||||
cavern_load_background:
|
||||
|
||||
lda #$0c
|
||||
sta BASH
|
||||
lda #$00
|
||||
sta BASL ; load image off-screen $c00
|
||||
|
||||
lda WHICH_CAVE
|
||||
bne cave_bg1
|
||||
|
||||
@ -273,4 +268,5 @@ cave_bg1:
|
||||
lda #<(cavern2_rle)
|
||||
sta GBASL
|
||||
cave_bg_done:
|
||||
lda #$c ; load image off-screen $c00
|
||||
jmp load_rle_gr ; tail call
|
||||
|
@ -27,7 +27,7 @@ cavern2_rle: .byte $28 ; ysize=48
|
||||
.byte $22,$22, $78,$78, $88, $28, $A5,$88, $58, $A3,$55
|
||||
.byte $77, $A3,$88, $A5,$55, $58, $A3,$88, $A8,$55, $22
|
||||
.byte $A3,$55, $22,$22, $55, $57,$57, $22, $A0,$1E,$55, $22,$22
|
||||
.byte $55,$55, $22,$22, $A3,$55, $22, $AA,$55, $5A, $A0,$13,$55
|
||||
.byte $55,$55, $22,$22, $A3,$55, $22, $AA,$55, $A0,$01,$AA, $A0,$13,$55
|
||||
.byte $22,$22, $55,$55, $A3,$22, $25, $55, $22, $AA,$55
|
||||
.byte $5A, $A0,$13,$55, $22, $82, $85, $22, $A7,$82
|
||||
.byte $88,$88, $A0,$12,$85, $A0,$1C,$88, $A8,$28, $A4,$88, $28, $AA,$88
|
||||
|
@ -9,13 +9,13 @@ cavern3_rle: .byte $28 ; ysize=48
|
||||
.byte $F6,$F6, $66,$66, $A0,$10,$22, $77, $66, $A4,$88, $55
|
||||
.byte $AF,$66, $6F, $A0,$11,$22, $77, $66, $A4,$88, $55
|
||||
.byte $A3,$6F, $A4,$F6, $A9,$66, $A0,$10,$22, $55, $22, $77
|
||||
.byte $A4,$88, $55, $56, $A6,$66, $A5,$6F, $A3,$F6, $A7,$22
|
||||
.byte $A4,$88, $55, $A0,$01,$A6, $A6,$66, $A5,$6F, $A3,$F6, $A7,$22
|
||||
.byte $A6,$55, $A4,$22, $55, $22, $77, $A5,$88, $5A
|
||||
.byte $AA,$66, $46, $66,$66, $A8,$22, $A6,$55, $A4,$22, $55
|
||||
.byte $22, $77, $78, $A3,$88, $85,$85, $55, $6F,$6F
|
||||
.byte $A4,$F6, $66,$66, $A3,$44, $26, $A7,$22, $52, $55,$55
|
||||
.byte $85, $A3,$55, $A4,$22, $55, $22, $25, $77
|
||||
.byte $A7,$88, $8F, $5F,$5F, $A4,$6F, $88,$88, $28, $A8,$22
|
||||
.byte $A7,$88, $8F, $A0,$02,$AF, $A4,$6F, $88,$88, $28, $A8,$22
|
||||
.byte $55,$55, $88, $A4,$55, $A4,$22, $55, $22, $25
|
||||
.byte $57, $78, $A8,$88, $85, $8A, $7A,$7A, $78,$78
|
||||
.byte $28, $A9,$22, $55, $85, $58, $A4,$55, $A4,$22
|
||||
|
@ -27,15 +27,11 @@ ootw_mesa:
|
||||
;=============================
|
||||
; Load background to $c00
|
||||
|
||||
lda #$0c
|
||||
sta BASH
|
||||
lda #$00
|
||||
sta BASL ; load image off-screen $c00
|
||||
|
||||
lda #>(cavern3_rle)
|
||||
sta GBASH
|
||||
lda #<(cavern3_rle)
|
||||
sta GBASL
|
||||
lda #$c ; load image off-screen $c00
|
||||
jsr load_rle_gr
|
||||
|
||||
;=================================
|
||||
|
@ -30,16 +30,16 @@ pool_rle: .byte $28 ; ysize=48
|
||||
.byte $52,$52, $58, $52, $A3,$55, $88, $55,$55, $52
|
||||
.byte $26, $A3,$82, $88, $22, $A3,$88, $22,$22, $88
|
||||
.byte $A3,$22, $88, $22,$22, $88,$88, $55,$55, $82, $A4,$88
|
||||
.byte $85, $88, $A6,$55, $85, $88, $A3,$55, $22
|
||||
.byte $A4,$88, $82,$82, $88, $A3,$22, $28, $A6,$22, $28,$28
|
||||
.byte $25, $A9,$88, $A5,$85, $88,$88, $85,$85, $8A, $82
|
||||
.byte $A7,$88, $A4,$22, $52, $82, $55, $85, $AA,$25
|
||||
.byte $28, $A5,$25, $28, $A8,$25, $85, $55,$55, $A4,$85
|
||||
.byte $22, $55, $88, $55,$55, $85, $28, $A0,$1B,$22
|
||||
.byte $28, $85, $55, $78, $88,$88, $A3,$55, $25
|
||||
.byte $58, $A7,$52, $72, $A3,$52, $22, $52,$52, $72
|
||||
.byte $A8,$52, $22, $A6,$52, $72, $58, $55,$55, $58
|
||||
.byte $A3,$82, $88, $82,$82, $A3,$88, $A7,$82, $88, $A3,$82
|
||||
.byte $88, $A7,$82, $88, $A4,$82, $88, $A6,$82, $A0,$28,$88
|
||||
.byte $AA,$28, $A4,$22, $A0,$1A,$28, $A0,$A0,$00
|
||||
.byte $85, $88, $A6,$55, $85, $88, $55,$55, $A0,$01,$A5
|
||||
.byte $22, $A4,$88, $82,$82, $88, $A3,$22, $28, $A6,$22
|
||||
.byte $28,$28, $25, $A9,$88, $A5,$85, $88,$88, $85,$85, $8A
|
||||
.byte $82, $A7,$88, $A4,$22, $52, $82, $55, $85
|
||||
.byte $AA,$25, $28, $A5,$25, $28, $A8,$25, $85, $55,$55
|
||||
.byte $A4,$85, $22, $55, $88, $55,$55, $85, $28
|
||||
.byte $A0,$1B,$22, $28, $85, $55, $78, $88,$88, $A3,$55
|
||||
.byte $25, $58, $A7,$52, $72, $A3,$52, $22, $52,$52
|
||||
.byte $72, $A8,$52, $22, $A6,$52, $72, $58, $55,$55
|
||||
.byte $58, $A3,$82, $88, $82,$82, $A3,$88, $A7,$82, $88
|
||||
.byte $A3,$82, $88, $A7,$82, $88, $A4,$82, $88, $A6,$82
|
||||
.byte $A0,$28,$88, $AA,$28, $A4,$22, $A0,$1A,$28, $A0,$A0,$00
|
||||
.byte $A1
|
||||
|
@ -33,15 +33,11 @@ ootw_pool:
|
||||
;=============================
|
||||
; Load background to $c00
|
||||
|
||||
lda #$0c
|
||||
sta BASH
|
||||
lda #$00
|
||||
sta BASL ; load image off-screen $c00
|
||||
|
||||
lda #>(pool_rle)
|
||||
sta GBASH
|
||||
lda #<(pool_rle)
|
||||
sta GBASL
|
||||
lda #$c ; load image off-screen $c00
|
||||
jsr load_rle_gr
|
||||
|
||||
;===================================================
|
||||
|
@ -28,15 +28,11 @@ ootw_rope:
|
||||
;=============================
|
||||
; Load background to $c00
|
||||
|
||||
lda #$0c
|
||||
sta BASH
|
||||
lda #$00
|
||||
sta BASL ; load image off-screen $c00
|
||||
|
||||
lda #>(rope_rle)
|
||||
sta GBASH
|
||||
lda #<(rope_rle)
|
||||
sta GBASL
|
||||
lda #$c ; load image off-screen $c00
|
||||
jsr load_rle_gr
|
||||
|
||||
;================================
|
||||
|