From 0a1f21cdb691d7765ee59635097d6bb2ed029007 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Sun, 3 Feb 2019 00:55:45 -0500 Subject: [PATCH] ootw: add support for "overlay" on top of background also now the RLE format supports color A, just less efficiently --- gr-utils/png2rle.c | 478 ++++++++++-------- ootw/Makefile | 11 +- ootw/cutscene_beast.s | 7 +- ootw/gr_unrle.s | 121 +++-- ootw/intro.s | 318 +++++++++--- ootw/intro_graphics/01_building/Makefile | 45 ++ .../01_building}/intro_building.inc | 0 .../01_building/intro_building.png} | Bin .../01_building/intro_building_car.inc | 37 ++ .../01_building/intro_building_car.png | Bin 0 -> 487 bytes ootw/intro_graphics/01_building/intro_car.inc | 128 +++++ .../intro_graphics/01_building/intro_car1.png | Bin 0 -> 272 bytes .../01_building/intro_car10.png | Bin 0 -> 330 bytes .../01_building/intro_car12.png | Bin 0 -> 263 bytes .../01_building/intro_car13.png | Bin 0 -> 271 bytes .../01_building/intro_car14.png | Bin 0 -> 273 bytes .../intro_graphics/01_building/intro_car2.png | Bin 0 -> 287 bytes .../intro_graphics/01_building/intro_car3.png | Bin 0 -> 361 bytes .../intro_graphics/01_building/intro_car4.png | Bin 0 -> 341 bytes .../intro_graphics/01_building/intro_car5.png | Bin 0 -> 339 bytes .../intro_graphics/01_building/intro_car6.png | Bin 0 -> 350 bytes .../intro_graphics/01_building/intro_car7.png | Bin 0 -> 335 bytes .../intro_graphics/01_building/intro_car8.png | Bin 0 -> 331 bytes .../intro_graphics/01_building/intro_car9.png | Bin 0 -> 318 bytes ootw/ootw_cavern.s | 6 +- ootw/ootw_cavern2.inc | 2 +- ootw/ootw_cavern3.inc | 4 +- ootw/ootw_mesa.s | 6 +- ootw/ootw_pool.inc | 24 +- ootw/ootw_pool.s | 6 +- ootw/ootw_rope.s | 6 +- 31 files changed, 802 insertions(+), 397 deletions(-) create mode 100644 ootw/intro_graphics/01_building/Makefile rename ootw/{ => intro_graphics/01_building}/intro_building.inc (100%) rename ootw/{intro1_building.png => intro_graphics/01_building/intro_building.png} (100%) create mode 100644 ootw/intro_graphics/01_building/intro_building_car.inc create mode 100644 ootw/intro_graphics/01_building/intro_building_car.png create mode 100644 ootw/intro_graphics/01_building/intro_car.inc create mode 100644 ootw/intro_graphics/01_building/intro_car1.png create mode 100644 ootw/intro_graphics/01_building/intro_car10.png create mode 100644 ootw/intro_graphics/01_building/intro_car12.png create mode 100644 ootw/intro_graphics/01_building/intro_car13.png create mode 100644 ootw/intro_graphics/01_building/intro_car14.png create mode 100644 ootw/intro_graphics/01_building/intro_car2.png create mode 100644 ootw/intro_graphics/01_building/intro_car3.png create mode 100644 ootw/intro_graphics/01_building/intro_car4.png create mode 100644 ootw/intro_graphics/01_building/intro_car5.png create mode 100644 ootw/intro_graphics/01_building/intro_car6.png create mode 100644 ootw/intro_graphics/01_building/intro_car7.png create mode 100644 ootw/intro_graphics/01_building/intro_car8.png create mode 100644 ootw/intro_graphics/01_building/intro_car9.png 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 0000000000000000000000000000000000000000..135a2617d498526bc37b7a110b3138f861202c8f GIT binary patch literal 487 zcmeAS@N?(olHy`uVBq!ia0vp^0YGfP!3-ofTJs(SQpN#3A+A9Bv0Ore-`@W&e;F1h z%$YMs;4+gtSi!vFvOf$Hb>w>1DM#w2fd7lsa2 zSq~tGv%n*=n1Ml08H5=tmfDvA1=&kHeO=ifGcmJD3BFKQKL8YxEOCt}an8@pP0cG| za4t$sEJ;mKD9gnPb;&J?K*lE7Q3OwBt9vt{z|G{nM)C-dw zGR)sL_}8)=FRTc(a>!R{%uteCP_RItZ9zM0V@lI6u2QQ8lPhy7J~hZ449=`u`+L^> zyE)Mt9KxiV^s-y0tSGycQ77>KO08z+hy7~3g$du|1vZ`cJ;`A&ylq{gL`+}cv6G=? zvjfge@DHw1J*`x2U=yR<(mmsFMO;`$#+;X*A{32HT1xe|WeNnAeO-7+PO&Ys#p(7O zr`~|871IN>Z0=p-V(TRzq<@GKFqB?eeBq= bHh%pi58;4+gtSi!vFvOf$Hb>w>1DM#w2fd7lsa2 zSq~tGv%n*=n1Ml08H5=tmfDvA1=&kHeO=ifGcmI;nmxT~%mx&aEOCt}an8@pP0cG| za4t$sEJ;mKD9ZsHnV9vdIrrdJ!q*mQ&j7R)qnPtfje|}-BZe(#?1XgY2$-QRy%+uF?hQA KxvX;4+gtSi!vFvOf$Hb>w>1DM#w2fd7lsa2 zSq~tGv%n*=n1Ml08H5=tmfDvA1=&kHeO=ifGcmJ@F-EFZtN;p0mbgZgIOpf)rskC} zI2WZRmZYXAlxLP?D7bt2281{Ai31f?c)B=-cpQIwaW`Ls0#EBh;mKtQAOGGDW06u+ z)R=BCS95;K3U52u7{9Kmz4febP4WK?Jsa&y7&(7L+1&6k RsRX)#!PC{xWt~$(698#ob>#p6 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ad91d612f70608258b689211cdce0c0a7f5e5ae2 GIT binary patch literal 263 zcmeAS@N?(olHy`uVBq!ia0vp^0YGfP!3-ofTJs(SQpN#3A+A9Bv0Ore-`@W&e;F1h z%$YMs;4+gtSi!vFvOf$Hb>w>1DM#w2fd7lsa2 zSq~tGv%n*=n1Ml08H5=tmfDvA1=&kHeO=ifGcmKu%G|tub{9}cvcxr_#5q4VH#M(> z!MP|ku_QG`p**uBL&4qCHz2%`PaLSo)YHW=#N+teiwgxA6nIz;nj0?pUzf=s$#x`; zF;4+gtSi!vFvOf$Hb>w>1DM#w2fd7lsa2 zSq~tGv%n*=n1Ml08H5=tmfDvA1=&kHeO=ifGcmJjm@SAsb_*yZS>hT|;+&tGo0?a` z;9QiNSdyBeP@Y+mq2TW68xY>eCk|9(>*?Yc;&J@#*^Rsm3Oq*+W8=k7Pz^@qMEyaXD=;OXk;vd$@? F2>_+$T&n;8 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5594a4c15454c791c2f3a3383bc2c38c5df37131 GIT binary patch literal 273 zcmeAS@N?(olHy`uVBq!ia0vp^0YGfP!3-ofTJs(SQpN#3A+A9Bv0Ore-`@W&e;F1h z%$YMs;4+gtSi!vFvOf$Hb>w>1DM#w2fd7lsa2 zSq~tGv%n*=n1Ml08H5=tmfDvA1=&kHeO=ifGcmL3n8sQJr2vH_OI#yLobz*YQ}ap~ zoQqNuOHxx5$}>wc6x=<11Hv2m#DR+JJzX3_JdVG;xRIAZfrr`AJnzH5-%1+FRueQn z*&lE%GLchv0D=R22})a;wleQwyzVVz#`1^z)}&fHXP1y!Z_a1M3;mpP3TPCAr>mdK II;Vst02f$U;{X5v literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b4d1cb03d86068740585d6d7a3f9d3b3c7d44e6f GIT binary patch literal 287 zcmeAS@N?(olHy`uVBq!ia0vp^0YGfP!3-ofTJs(SQpN#3A+A9Bv0Ore-`@W&e;F1h z%$YMs;4+gtSi!vFvOf$Hb>w>1DM#w2fd7lsa2 zSq~tGv%n*=n1Ml08H5=tmfDvA1=&kHeO=ifGcmJB2sz!VI}a3+EOCt}an8@pP0cG| za4t$sEJ;mKD9lFz@i_kWk|Ey#1)ie;o4@^IZ(ADVxFGCH z{tf4CdsH8CwJ%t(AVDPM1#8M;)e~jH6Xx?ObRN3%*viFGz^8F(>G}7i(Z`$rEu4AN aGW7mRQ^Cg9JEj8-X7F_Nb6Mw<&;$T>yJ&#` literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..d3309dbdb6dd80eadbbb4ea45a1bdb2c47549a08 GIT binary patch literal 361 zcmeAS@N?(olHy`uVBq!ia0vp^0YGfP!3-ofTJs(SQpN#3A+A9Bv0Ore-`@W&e;F1h z%$YMs;4+gtSi!vFvOf$Hb>w>1DM#w2fd7lsa2 zSq~tGv%n*=n1Ml08H5=tmfDvA1=&kHeO=ifGcmKMTO8a!R~0BES>hT|;+&tGo0?a` z;9QiNSdyBeP@Y+mq2TW68xY>eCk|9J-P6S}#N+teO9#1{4Fp^-&Te(wb@KoJwR5vH zl_vG<)9l*Wy{3(Ma?5lJs~<52`X>*TwjZ4HpJm&GiX99a{2o1Ka>)AWu)~bQuR!9| z?t~3fJ_aj?v*#Xjn9!uaoSVAC=*FL2ZxuWoIoN`|PCsP%{*1r5dW}rUy@h{w2Yh&< zeZF_~kq0NIZePOjXQI&uZ?1zgr!=`;dVO~jr*xUS^*Q~-G@uh1JYD@<);T3K0RU!< Bj&T40 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..72c76e79a84bafb18d007ebb6408a23ebd37fc9e GIT binary patch literal 341 zcmeAS@N?(olHy`uVBq!ia0vp^0YGfP!3-ofTJs(SQpN#3A+A9Bv0Ore-`@W&e;F1h z%$YMs;4+gtSi!vFvOf$Hb>w>1DM#w2fd7lsa2 zSq~tGv%n*=n1Ml08H5=tmfDvA1=&kHeO=ifGcmJh37RdgW&sLGmbgZgIOpf)rskC} zI2WZRmZYXAlxLP?D7bt2281{Ai31fid%8G=cpQIw=`2@+f`Hq_!ix%dHUGEwZt?Ir zJD)#j7WcX-hdG?tWH>bzG$bpezhc>Wfk)x<`MGU1wzodwcI!LV@ku>GM@&d?tAP3}!!;k~A&sf`qKepQkfe8qGPG^@TaDgn4!u edQPgl&9^EmD3G0D+616;7(8A5T-G@yGywoQ;4+gtSi!vFvOf$Hb>w>1DM#w2fd7lsa2 zSq~tGv%n*=n1Ml08H5=tmfDvA1=&kHeO=ifGcmImDc9t0x(gJNEOCt}an8@pP0cG| za4t$sEJ;mKD9;4+gtSi!vFvOf$Hb>w>1DM#w2fd7lsa2 zSq~tGv%n*=n1Ml08H5=tmfDvA1=&kHeO=ifGcmK6Yd$=?z6~fOS>hT|;+&tGo0?a` z;9QiNSdyBeP@Y+mq2TW68xY>eCk|B9r-lNY!M|No!A`NW6P zt7qKi+OF&f3qNXRDWKvpLE+&2re{2Q$!q5F?Nc|taO?5T&yQDV-B7cgxJW6&{e9(x zNsg8plMg3IvL4!fJi#x_F_VAs^<@PsKE-@ms1p3G>8&ce@cG#RujPDKYQ3o6zT?-i pVucO63Su7{%wj(%ksQC3IZQfirgh#*C7`<)JYD@<);T3K0RU^ThS2~3 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..aff9e58002cb88aa5df83e963688166caccbcbb5 GIT binary patch literal 335 zcmeAS@N?(olHy`uVBq!ia0vp^0YGfP!3-ofTJs(SQpN#3A+A9Bv0Ore-`@W&e;F1h z%$YMs;4+gtSi!vFvOf$Hb>w>1DM#w2fd7lsa2 zSq~tGv%n*=n1Ml08H5=tmfDvA1=&kHeO=ifGcmI=u$W%A`~Vb^EOCt}an8@pP0cG| za4t$sEJ;mKD9lFz@i_kW!bPqI1)kQ2f;lec`~KffJLOTd zGc@k#&-E@}4tw5y!lB^Mz`)4#N7JMBzQwc72Zh&FOa;?U_6j_kR(x>(RQbfNUrYO)n-+bd4-%f&gQc3 Vag4~#NC5{OgQu&X%Q~loCIA~9dk6pk literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..4ae0708f3f6fc0bb5851777202d427eb7151a2a4 GIT binary patch literal 331 zcmeAS@N?(olHy`uVBq!ia0vp^0YGfP!3-ofTJs(SQpN#3A+A9Bv0Ore-`@W&e;F1h z%$YMs;4+gtSi!vFvOf$Hb>w>1DM#w2fd7lsa2 zSq~tGv%n*=n1Ml08H5=tmfDvA1=&kHeO=ifGcmI=Td$bo&Ic5dEOCt}an8@pP0cG| za4t$sEJ;mKD97rMZk$e@z2@`BKj>hfvg;_i<9DnqGEq3Io&8VOWs-)Zjf)K zSQNkKQTLQ$>7R$W)I64jxVxFe&GoYoFAaqv% literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..85ffe653a6d13db808d05b401c1b0f2e15f4bd16 GIT binary patch literal 318 zcmeAS@N?(olHy`uVBq!ia0vp^0YGfP!3-ofTJs(SQpN#3A+A9Bv0Ore-`@W&e;F1h z%$YMs;4+gtSi!vFvOf$Hb>w>1DM#w2fd7lsa2 zSq~tGv%n*=n1Ml08H5=tmfDvA1=&kHeO=ifGcmIY3oUqa))*)xS>hT|;+&tGo0?a` z;9QiNSdyBeP@Y+mq2TW68xY>eCk|AUzdvmRBI7=l?W_E01;S^Hw`0#O2`5e1uM+S8pPLY`manFO_E(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 ;================================