diff --git a/gr-utils/png2rle.c b/gr-utils/png2rle.c index e7810f0d..93eaa357 100644 --- a/gr-utils/png2rle.c +++ b/gr-utils/png2rle.c @@ -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; -} - - - - diff --git a/ootw/Makefile b/ootw/Makefile index 8da1ab0f..87ff1b95 100644 --- a/ootw/Makefile +++ b/ootw/Makefile @@ -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 diff --git a/ootw/cutscene_beast.s b/ootw/cutscene_beast.s index 402a5c71..b391d10e 100644 --- a/ootw/cutscene_beast.s +++ b/ootw/cutscene_beast.s @@ -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 diff --git a/ootw/gr_unrle.s b/ootw/gr_unrle.s index 51fbf6ce..5e0b5dd5 100644 --- a/ootw/gr_unrle.s +++ b/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 diff --git a/ootw/intro.s b/ootw/intro.s index 6ef02ab1..35581604 100644 --- a/ootw/intro.s +++ b/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" + + diff --git a/ootw/intro_graphics/01_building/Makefile b/ootw/intro_graphics/01_building/Makefile new file mode 100644 index 00000000..150a7b0d --- /dev/null +++ b/ootw/intro_graphics/01_building/Makefile @@ -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 diff --git a/ootw/intro_building.inc b/ootw/intro_graphics/01_building/intro_building.inc similarity index 100% rename from ootw/intro_building.inc rename to ootw/intro_graphics/01_building/intro_building.inc diff --git a/ootw/intro1_building.png b/ootw/intro_graphics/01_building/intro_building.png similarity index 100% rename from ootw/intro1_building.png rename to ootw/intro_graphics/01_building/intro_building.png diff --git a/ootw/intro_graphics/01_building/intro_building_car.inc b/ootw/intro_graphics/01_building/intro_building_car.inc new file mode 100644 index 00000000..a2c9cc28 --- /dev/null +++ b/ootw/intro_graphics/01_building/intro_building_car.inc @@ -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 diff --git a/ootw/intro_graphics/01_building/intro_building_car.png b/ootw/intro_graphics/01_building/intro_building_car.png new file mode 100644 index 00000000..135a2617 Binary files /dev/null and b/ootw/intro_graphics/01_building/intro_building_car.png differ diff --git a/ootw/intro_graphics/01_building/intro_car.inc b/ootw/intro_graphics/01_building/intro_car.inc new file mode 100644 index 00000000..a2648277 --- /dev/null +++ b/ootw/intro_graphics/01_building/intro_car.inc @@ -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 diff --git a/ootw/intro_graphics/01_building/intro_car1.png b/ootw/intro_graphics/01_building/intro_car1.png new file mode 100644 index 00000000..b42bf9ca Binary files /dev/null and b/ootw/intro_graphics/01_building/intro_car1.png differ diff --git a/ootw/intro_graphics/01_building/intro_car10.png b/ootw/intro_graphics/01_building/intro_car10.png new file mode 100644 index 00000000..4e27131e Binary files /dev/null and b/ootw/intro_graphics/01_building/intro_car10.png differ diff --git a/ootw/intro_graphics/01_building/intro_car12.png b/ootw/intro_graphics/01_building/intro_car12.png new file mode 100644 index 00000000..ad91d612 Binary files /dev/null and b/ootw/intro_graphics/01_building/intro_car12.png differ diff --git a/ootw/intro_graphics/01_building/intro_car13.png b/ootw/intro_graphics/01_building/intro_car13.png new file mode 100644 index 00000000..209ac796 Binary files /dev/null and b/ootw/intro_graphics/01_building/intro_car13.png differ diff --git a/ootw/intro_graphics/01_building/intro_car14.png b/ootw/intro_graphics/01_building/intro_car14.png new file mode 100644 index 00000000..5594a4c1 Binary files /dev/null and b/ootw/intro_graphics/01_building/intro_car14.png differ diff --git a/ootw/intro_graphics/01_building/intro_car2.png b/ootw/intro_graphics/01_building/intro_car2.png new file mode 100644 index 00000000..b4d1cb03 Binary files /dev/null and b/ootw/intro_graphics/01_building/intro_car2.png differ diff --git a/ootw/intro_graphics/01_building/intro_car3.png b/ootw/intro_graphics/01_building/intro_car3.png new file mode 100644 index 00000000..d3309dbd Binary files /dev/null and b/ootw/intro_graphics/01_building/intro_car3.png differ diff --git a/ootw/intro_graphics/01_building/intro_car4.png b/ootw/intro_graphics/01_building/intro_car4.png new file mode 100644 index 00000000..72c76e79 Binary files /dev/null and b/ootw/intro_graphics/01_building/intro_car4.png differ diff --git a/ootw/intro_graphics/01_building/intro_car5.png b/ootw/intro_graphics/01_building/intro_car5.png new file mode 100644 index 00000000..d5cba4ee Binary files /dev/null and b/ootw/intro_graphics/01_building/intro_car5.png differ diff --git a/ootw/intro_graphics/01_building/intro_car6.png b/ootw/intro_graphics/01_building/intro_car6.png new file mode 100644 index 00000000..8f3f4d71 Binary files /dev/null and b/ootw/intro_graphics/01_building/intro_car6.png differ diff --git a/ootw/intro_graphics/01_building/intro_car7.png b/ootw/intro_graphics/01_building/intro_car7.png new file mode 100644 index 00000000..aff9e580 Binary files /dev/null and b/ootw/intro_graphics/01_building/intro_car7.png differ diff --git a/ootw/intro_graphics/01_building/intro_car8.png b/ootw/intro_graphics/01_building/intro_car8.png new file mode 100644 index 00000000..4ae0708f Binary files /dev/null and b/ootw/intro_graphics/01_building/intro_car8.png differ diff --git a/ootw/intro_graphics/01_building/intro_car9.png b/ootw/intro_graphics/01_building/intro_car9.png new file mode 100644 index 00000000..85ffe653 Binary files /dev/null and b/ootw/intro_graphics/01_building/intro_car9.png differ diff --git a/ootw/ootw_cavern.s b/ootw/ootw_cavern.s index 8bdcb214..1dbe987d 100644 --- a/ootw/ootw_cavern.s +++ b/ootw/ootw_cavern.s @@ -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 diff --git a/ootw/ootw_cavern2.inc b/ootw/ootw_cavern2.inc index 6d661297..4f5a6255 100644 --- a/ootw/ootw_cavern2.inc +++ b/ootw/ootw_cavern2.inc @@ -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 diff --git a/ootw/ootw_cavern3.inc b/ootw/ootw_cavern3.inc index 35add10d..6b5ab576 100644 --- a/ootw/ootw_cavern3.inc +++ b/ootw/ootw_cavern3.inc @@ -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 diff --git a/ootw/ootw_mesa.s b/ootw/ootw_mesa.s index 0ea3241d..0580fc6f 100644 --- a/ootw/ootw_mesa.s +++ b/ootw/ootw_mesa.s @@ -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 ;================================= diff --git a/ootw/ootw_pool.inc b/ootw/ootw_pool.inc index 47bf4fe9..be5fb8d8 100644 --- a/ootw/ootw_pool.inc +++ b/ootw/ootw_pool.inc @@ -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 diff --git a/ootw/ootw_pool.s b/ootw/ootw_pool.s index 2cae711f..443010d5 100644 --- a/ootw/ootw_pool.s +++ b/ootw/ootw_pool.s @@ -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 ;=================================================== diff --git a/ootw/ootw_rope.s b/ootw/ootw_rope.s index 0b933809..398d646a 100644 --- a/ootw/ootw_rope.s +++ b/ootw/ootw_rope.s @@ -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 ;================================