From 2a8a41030369b921ed5a38b73f02a9a499ea7534 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Sat, 2 Nov 2019 15:47:58 -0400 Subject: [PATCH] ds: almost have rasterbars again --- demosplash/Makefile | 6 +- demosplash/NOTES | 2 +- demosplash/TODO | 10 + demosplash/create_update_type1.s | 59 ++++- demosplash/credits.s | 402 +++++++++++++++++++++++++++++++ demosplash/demosplash.s | 3 + demosplash/generator/Makefile | 10 +- demosplash/generator/offsets.c | 28 +++ demosplash/movement_table.s | 257 ++++++++++++++++++++ demosplash/musictest.s | 21 +- 10 files changed, 791 insertions(+), 7 deletions(-) create mode 100644 demosplash/credits.s create mode 100644 demosplash/generator/offsets.c create mode 100644 demosplash/movement_table.s diff --git a/demosplash/Makefile b/demosplash/Makefile index a6abf0b3..a5ad39ac 100644 --- a/demosplash/Makefile +++ b/demosplash/Makefile @@ -55,7 +55,8 @@ musictest.o: musictest.s \ interrupt_handler.s \ missing.s k_40_48d.inc \ create_update_type1.s \ - book.s \ + book.s book_40_48d.inc \ + credits.s credits_bg.inc offsets_table.s \ dya_space_demo2.pt3 ca65 -o musictest.o musictest.s -l musictest.lst @@ -88,6 +89,9 @@ BOOK_HGR2C.BIN: book_hgr2.bmp ##### +credits_bg.inc: credits_bg.png + $(PNG_TO_40x48D) asm credits_bg.png credits > credits_bg.inc + book_40_48d.inc: book_40_48d.png $(PNG_TO_40x48D) asm book_40_48d.png book > book_40_48d.inc diff --git a/demosplash/NOTES b/demosplash/NOTES index 679d7103..953a47a0 100644 --- a/demosplash/NOTES +++ b/demosplash/NOTES @@ -75,7 +75,7 @@ Memory Map 0c00-0fff (used as page3) 1400-16ff Loader -1700-???? executable +1700-???? executable (30976 bytes) 9000-bfff audio buffer diff --git a/demosplash/TODO b/demosplash/TODO index e0e9d22a..075d089d 100644 --- a/demosplash/TODO +++ b/demosplash/TODO @@ -25,3 +25,13 @@ READING: CREDITS: + implement text + implement rasterbars + + 012345678901 + CODE: DEATER + MUSIC: DYA + MISC MAGIC: QKUMBA + THANKS: + FROGYSUE + S. SUSIE + 0101TALBOT +18*4= diff --git a/demosplash/create_update_type1.s b/demosplash/create_update_type1.s index 6841c9b6..d497fe0c 100644 --- a/demosplash/create_update_type1.s +++ b/demosplash/create_update_type1.s @@ -23,7 +23,7 @@ create_update_inner_loop: cpy #49 bne create_update_inner_loop - ; toggl PAGE0/PAGE1 + ; toggle PAGE0/PAGE1 txa and #$1 ; ror? clc @@ -48,6 +48,63 @@ create_update_inner_loop: rts + ;=========================== + ; from 32 to 160? +setup_rasterbars: + + lda #4 ; which page + sta TEMP + + ldx #32 + lda #<(UPDATE_START+(32*49)) + sta OUTL + lda #>(UPDATE_START+(32*49)) + sta OUTH +setup_rasterbars_outer_loop: + ldy #6 +setup_rasterbars_inner_loop: + txa + pha + inx + txa ; start one earlier + lsr + lsr + and #$fe + tax + lda gr_offsets,X + sta (OUTL),Y + iny + clc + lda gr_offsets+1,X + adc TEMP + sta (OUTL),Y + iny + iny + pla + tax + + cpy #48 + bne setup_rasterbars_inner_loop + + clc + lda #49 + adc OUTL + sta OUTL + lda OUTH + adc #0 + sta OUTH + + + lda TEMP + eor #$04 + sta TEMP + + inx + cpx #160 + bne setup_rasterbars_outer_loop + + rts + one_scanline: .byte $2C,$54,$C0 ; bit PAGE0 ; 4 .byte $A9,$0B ; lda #$0b ; 2 diff --git a/demosplash/credits.s b/demosplash/credits.s new file mode 100644 index 00000000..41991998 --- /dev/null +++ b/demosplash/credits.s @@ -0,0 +1,402 @@ +; Uses the 40x48d page1/page2 every-1-scanline pageflip mode + +; self modifying code to get some extra colors (pseudo 40x192 mode) + +; by deater (Vince Weaver) + +credits: + + ;=================== + ; init screen + jsr TEXT + jsr HOME + bit KEYRESET + + ;=================== + ; init vars + + lda #0 + sta DRAW_PAGE + + ;================== + ; setup graphics + + jsr create_update_type1 + jsr setup_rasterbars + + ;============================= + ; Load graphic page0 + + lda #credits_low + sta GBASH + + lda #$c ; load image to $c00 + + jsr load_rle_gr + + lda #4 + sta DRAW_PAGE + + jsr gr_copy_to_current ; copy to page1 + + ; GR part + bit PAGE1 + bit LORES ; 4 + bit SET_GR ; 4 + bit FULLGR ; 4 + +; jsr wait_until_keypressed + + + ;============================= + ; Load graphic page1 + + lda #credits_high + sta GBASH + lda #$c ; load to $c00 + jsr load_rle_gr + + lda #0 + sta DRAW_PAGE + + jsr gr_copy_to_current + +; ; GR part + bit PAGE0 + +; jsr wait_until_keypressed + + + ;============================== + ; setup graphics for vapor lock + ;============================== + + jsr vapor_lock + + ; vapor lock returns with us at beginning of hsync in line + ; 114 (7410 cycles), so with 5070 lines to go + + ; GR part + bit LORES ; 4 + bit SET_GR ; 4 + bit FULLGR ; 4 + + jsr gr_copy_to_current ; 6+ 9292 + + ; 5070 + 4550 = 9620 + ; 9292 + ; 12 + ; 6 + ; ==== + ; 310 + + ; - 3 for jmp + ; 307 + + ; Try X=9 Y=6 cycles=307 + + ldy #6 ; 2 +tloopA: ldx #9 ; 2 +tloopB: dex ; 2 + bne tloopB ; 2nt/3 + dey ; 2 + bne tloopA ; 2nt/3 + + jmp credits_loop ; 3 + +.align $100 + + ;================================================ + ; Display Loop + ;================================================ + ; each scan line 65 cycles + ; 1 cycle each byte (40cycles) + 25 for horizontal + ; Total of 12480 cycles to draw screen + ; Vertical blank = 4550 cycles (70 scan lines) + ; Total of 17030 cycles to get back to where was + + ; We want to alternate between page1 and page2 every 65 cycles + ; vblank = 4550 cycles to do scrolling + + +credits_loop: + + jsr $9000 + + ;====================================================== + ; We have 4550 cycles in the vblank, use them wisely + ;====================================================== + + ; 4550 -- VBLANK + ; -582 -- erase 22+4*(8+6+126) = 582 + ; -696 -- move+draw 4*(16+26+6+126) = 696 + ; -10 -- keypress + ; -12 -- call/return of draw code + ;======= + ; 3250 + +pad_time: + + ; we erase, then draw + ; doing a blanket erase of all 128 lines would cost 3459 cycles! + + ;========================= + ; ERASE + ;========================= + + lda #$00 ; 2 + sta smc_raster_color1_1+1 ; 4 + sta smc_raster_color1_2+1 ; 4 + sta smc_raster_color2_1+1 ; 4 + sta smc_raster_color2_2+1 ; 4 + sta smc_raster_color3_1+1 ; 4 + ;============= + ; 22 + + ; erase red + + lda red_x ; 4 + and #$7f ; 2 + tax ; 2 + + jsr draw_rasterbar ; 6+126 + + ; erase yellow + + lda yellow_x ; 4 + and #$7f ; 2 + tax ; 2 + + jsr draw_rasterbar ; 6+126 + + ; erase green + + lda green_x ; 4 + and #$7f ; 2 + tax ; 2 + + jsr draw_rasterbar ; 6+126 + + ; erase red + + lda blue_x ; 4 + and #$7f ; 2 + tax ; 2 + + jsr draw_rasterbar ; 6+126 + + + ;========================= + ; MOVE and DRAW + ;========================= + + + ;============ + ; move red + + ldy red_x ; 4 + lda movement_table,Y ; 4 + sta red_x ; 4 + and #$7f ; 2 + tax ; 2 + ;========== + ; 16 + + ; draw red + + lda #$33 ; 2 + sta smc_raster_color1_1+1 ; 4 + sta smc_raster_color1_2+1 ; 4 + lda #$bb ; 2 + sta smc_raster_color2_1+1 ; 4 + sta smc_raster_color2_2+1 ; 4 + lda #$ff ; 2 + sta smc_raster_color3_1+1 ; 4 + ;============= + ; 26 + + + jsr draw_rasterbar ; 6+126 + + + ;============ + ; move yellow + + ldy yellow_x ; 4 + lda movement_table,Y ; 4 + sta yellow_x ; 4 + and #$7f ; 2 + tax ; 2 + ;========== + ; 16 + + ; draw yellow + + lda #$88 ; 2 + sta smc_raster_color1_1+1 ; 4 + sta smc_raster_color1_2+1 ; 4 + lda #$dd ; 2 + sta smc_raster_color2_1+1 ; 4 + sta smc_raster_color2_2+1 ; 4 + lda #$ff ; 2 + sta smc_raster_color3_1+1 ; 4 + ;============= + ; 26 + + + jsr draw_rasterbar ; 6+126 + + ;============ + ; move green + + ldy green_x ; 4 + lda movement_table,Y ; 4 + sta green_x ; 4 + and #$7f ; 2 + tax ; 2 + ;========== + ; 16 + + ; draw green + + lda #$44 ; 2 + sta smc_raster_color1_1+1 ; 4 + sta smc_raster_color1_2+1 ; 4 + lda #$cc ; 2 + sta smc_raster_color2_1+1 ; 4 + sta smc_raster_color2_2+1 ; 4 + lda #$ff ; 2 + sta smc_raster_color3_1+1 ; 4 + ;============= + ; 26 + + + jsr draw_rasterbar ; 6+126 + + ;============ + ; move blue + + ldy blue_x ; 4 + lda movement_table,Y ; 4 + sta blue_x ; 4 + and #$7f ; 2 + tax ; 2 + ;========== + ; 16 + + ; draw blue + + lda #$22 ; 2 + sta smc_raster_color1_1+1 ; 4 + sta smc_raster_color1_2+1 ; 4 + lda #$66 ; 2 + sta smc_raster_color2_1+1 ; 4 + sta smc_raster_color2_2+1 ; 4 + lda #$ff ; 2 + sta smc_raster_color3_1+1 ; 4 + ;============= + ; 26 + + + jsr draw_rasterbar ; 6+126 + + + + + ;============================ + ; WAIT for VBLANK to finish + ;============================ + + ; Try X=71 Y=9 cycles=3250 + + ldy #9 ; 2 +tloop1: ldx #71 ; 2 +tloop2: dex ; 2 + bne tloop2 ; 2nt/3 + dey ; 2 + bne tloop1 ; 2nt/3 + + + lda KEYPRESS ; 4 + bpl cno_keypress ; 3 + jmp credits_loop +cno_keypress: + + jmp credits_loop ; 3 + + + ;======================== + ; Draw a rasterbar + ; unroll as memory is free! haha + ;======================== + ; X is location + + ; 2+22+24+24+24+24+6 = 126 + +draw_rasterbar: + + ldy #0 ; 2 + ;==== + + lda y_lookup_l,X ; 4 + sta OUTL ; 3 + lda y_lookup_h,X ; 4 + sta OUTH ; 3 + +smc_raster_color1_1: + lda #$33 ; 2 + sta (OUTL),Y ; 6 + ;============ + ; 22 + + inx ; 2 + lda y_lookup_l,X ; 4 + sta OUTL ; 3 + lda y_lookup_h,X ; 4 + sta OUTH ; 3 + +smc_raster_color2_1: + lda #$bb ; 2 + sta (OUTL),Y ; 6 + + inx ; 2 + lda y_lookup_l,X ; 4 + sta OUTL ; 3 + lda y_lookup_h,X ; 4 + sta OUTH ; 3 + +smc_raster_color3_1: + lda #$ff ; 2 + sta (OUTL),Y ; 6 + + inx + lda y_lookup_l,X ; 4 + sta OUTL ; 3 + lda y_lookup_h,X ; 4 + sta OUTH ; 3 + +smc_raster_color2_2: + lda #$bb ; 2 + sta (OUTL),Y ; 6 + + inx + lda y_lookup_l,X ; 4 + sta OUTL ; 3 + lda y_lookup_h,X ; 4 + sta OUTH ; 3 + +smc_raster_color1_2: + lda #$33 ; 2 + sta (OUTL),Y ; 6 + + rts ; 6 + + +red_x: .byte $10 +yellow_x: .byte $20 +green_x: .byte $30 +blue_x: .byte $40 diff --git a/demosplash/demosplash.s b/demosplash/demosplash.s index b2f18d49..7304d267 100644 --- a/demosplash/demosplash.s +++ b/demosplash/demosplash.s @@ -132,6 +132,9 @@ wait_until_keypressed: .include "pt3_lib_mockingboard.s" .include "interrupt_handler.s" +; Images (no need to align) +.include "credits_bg.inc" + PT3_LOC = song diff --git a/demosplash/generator/Makefile b/demosplash/generator/Makefile index 511f6f7b..a18a2e3f 100644 --- a/demosplash/generator/Makefile +++ b/demosplash/generator/Makefile @@ -2,7 +2,7 @@ CC = gcc CFLAGS = -Wall -O2 LFLAGS = -all: creator +all: creator offsets creator: creator.o $(CC) -o creator creator.o $(LFLAGS) @@ -10,5 +10,11 @@ creator: creator.o creator.o: creator.c $(CC) $(CFLAGS) -c creator.c +offsets: offsets.o + $(CC) -o offsets offsets.o $(LFLAGS) + +offsets.o: offsets.c + $(CC) $(CFLAGS) -c offsets.c + clean: - rm -f *.o creator + rm -f *.o creator offsets diff --git a/demosplash/generator/offsets.c b/demosplash/generator/offsets.c new file mode 100644 index 00000000..2879c718 --- /dev/null +++ b/demosplash/generator/offsets.c @@ -0,0 +1,28 @@ +#include + +#define NUMBER 128 + +int main(int argc, char **argv) { + + int i; + + printf("y_lookup_h:\n"); + + for(i=0;i(smc%3d+1)",i+32); + printf(">($%4X)",0x9000+(i+32)*49+4); + if (i%8!=7) printf(","); + else printf("\n"); + } + printf("y_lookup_l:\n"); + for(i=0;i 1 + .byte $02 ; 1 -> 2 + .byte $03 ; 2 -> 3 + .byte $04 ; 3 -> 4 + .byte $05 ; 4 -> 5 + .byte $06 ; 5 -> 6 + .byte $07 ; 6 -> 7 + .byte $08 ; 7 -> 8 + .byte $09 ; 8 -> 9 + .byte $0A ; 9 -> 10 + .byte $0B ; 10 -> 11 + .byte $0C ; 11 -> 12 + .byte $0D ; 12 -> 13 + .byte $0E ; 13 -> 14 + .byte $0F ; 14 -> 15 + .byte $10 ; 15 -> 16 + .byte $11 ; 16 -> 17 + .byte $12 ; 17 -> 18 + .byte $13 ; 18 -> 19 + .byte $14 ; 19 -> 20 + .byte $15 ; 20 -> 21 + .byte $16 ; 21 -> 22 + .byte $17 ; 22 -> 23 + .byte $18 ; 23 -> 24 + .byte $19 ; 24 -> 25 + .byte $1A ; 25 -> 26 + .byte $1B ; 26 -> 27 + .byte $1C ; 27 -> 28 + .byte $1D ; 28 -> 29 + .byte $1E ; 29 -> 30 + .byte $1F ; 30 -> 31 + .byte $20 ; 31 -> 32 + .byte $21 ; 32 -> 33 + .byte $22 ; 33 -> 34 + .byte $23 ; 34 -> 35 + .byte $24 ; 35 -> 36 + .byte $25 ; 36 -> 37 + .byte $26 ; 37 -> 38 + .byte $27 ; 38 -> 39 + .byte $28 ; 39 -> 40 + .byte $29 ; 40 -> 41 + .byte $2A ; 41 -> 42 + .byte $2B ; 42 -> 43 + .byte $2C ; 43 -> 44 + .byte $2D ; 44 -> 45 + .byte $2E ; 45 -> 46 + .byte $2F ; 46 -> 47 + .byte $30 ; 47 -> 48 + .byte $31 ; 48 -> 49 + .byte $32 ; 49 -> 50 + .byte $33 ; 50 -> 51 + .byte $34 ; 51 -> 52 + .byte $35 ; 52 -> 53 + .byte $36 ; 53 -> 54 + .byte $37 ; 54 -> 55 + .byte $38 ; 55 -> 56 + .byte $39 ; 56 -> 57 + .byte $3A ; 57 -> 58 + .byte $3B ; 58 -> 59 + .byte $3C ; 59 -> 60 + .byte $3D ; 60 -> 61 + .byte $3E ; 61 -> 62 + .byte $3F ; 62 -> 63 + .byte $40 ; 63 -> 64 + .byte $41 ; 64 -> 65 + .byte $42 ; 65 -> 66 + .byte $43 ; 66 -> 67 + .byte $44 ; 67 -> 68 + .byte $45 ; 68 -> 69 + .byte $46 ; 69 -> 70 + .byte $47 ; 70 -> 71 + .byte $48 ; 71 -> 72 + .byte $49 ; 72 -> 73 + .byte $4A ; 73 -> 74 + .byte $4B ; 74 -> 75 + .byte $4C ; 75 -> 76 + .byte $4D ; 76 -> 77 + .byte $4E ; 77 -> 78 + .byte $4F ; 78 -> 79 + .byte $50 ; 79 -> 80 + .byte $51 ; 80 -> 81 + .byte $52 ; 81 -> 82 + .byte $53 ; 82 -> 83 + .byte $54 ; 83 -> 84 + .byte $55 ; 84 -> 85 + .byte $56 ; 85 -> 86 + .byte $57 ; 86 -> 87 + .byte $58 ; 87 -> 88 + .byte $59 ; 88 -> 89 + .byte $5A ; 89 -> 90 + .byte $5B ; 90 -> 91 + .byte $5C ; 91 -> 92 + .byte $5D ; 92 -> 93 + .byte $5E ; 93 -> 94 + .byte $5F ; 94 -> 95 + .byte $60 ; 95 -> 96 + .byte $61 ; 96 -> 97 + .byte $62 ; 97 -> 98 + .byte $63 ; 98 -> 99 + .byte $64 ; 99 -> 100 + .byte $65 ; 100 -> 101 + .byte $66 ; 101 -> 102 + .byte $67 ; 102 -> 103 + .byte $68 ; 103 -> 104 + .byte $69 ; 104 -> 105 + .byte $6A ; 105 -> 106 + .byte $6B ; 106 -> 107 + .byte $6C ; 107 -> 108 + .byte $6D ; 108 -> 109 + .byte $6E ; 109 -> 110 + .byte $6F ; 110 -> 111 + .byte $70 ; 111 -> 112 + .byte $71 ; 112 -> 113 + .byte $72 ; 113 -> 114 + .byte $73 ; 114 -> 115 + .byte $74 ; 115 -> 116 + .byte $75 ; 116 -> 117 + .byte $76 ; 117 -> 118 + .byte $77 ; 118 -> 119 + .byte $78 ; 119 -> 120 + .byte $79 ; 120 -> 121 + .byte $7A ; 121 -> 122 + .byte $7B ; 122 -> 123 + .byte $FB ; 123 -> 251 + .byte $7B ; 124 -> 123 + .byte $7B ; 125 -> 123 + .byte $7B ; 126 -> 123 + .byte $7B ; 127 -> 123 + .byte $00 ; 128 -> 0 + .byte $80 ; 129 -> 128 + .byte $81 ; 130 -> 129 + .byte $82 ; 131 -> 130 + .byte $83 ; 132 -> 131 + .byte $84 ; 133 -> 132 + .byte $85 ; 134 -> 133 + .byte $86 ; 135 -> 134 + .byte $87 ; 136 -> 135 + .byte $88 ; 137 -> 136 + .byte $89 ; 138 -> 137 + .byte $8A ; 139 -> 138 + .byte $8B ; 140 -> 139 + .byte $8C ; 141 -> 140 + .byte $8D ; 142 -> 141 + .byte $8E ; 143 -> 142 + .byte $8F ; 144 -> 143 + .byte $90 ; 145 -> 144 + .byte $91 ; 146 -> 145 + .byte $92 ; 147 -> 146 + .byte $93 ; 148 -> 147 + .byte $94 ; 149 -> 148 + .byte $95 ; 150 -> 149 + .byte $96 ; 151 -> 150 + .byte $97 ; 152 -> 151 + .byte $98 ; 153 -> 152 + .byte $99 ; 154 -> 153 + .byte $9A ; 155 -> 154 + .byte $9B ; 156 -> 155 + .byte $9C ; 157 -> 156 + .byte $9D ; 158 -> 157 + .byte $9E ; 159 -> 158 + .byte $9F ; 160 -> 159 + .byte $A0 ; 161 -> 160 + .byte $A1 ; 162 -> 161 + .byte $A2 ; 163 -> 162 + .byte $A3 ; 164 -> 163 + .byte $A4 ; 165 -> 164 + .byte $A5 ; 166 -> 165 + .byte $A6 ; 167 -> 166 + .byte $A7 ; 168 -> 167 + .byte $A8 ; 169 -> 168 + .byte $A9 ; 170 -> 169 + .byte $AA ; 171 -> 170 + .byte $AB ; 172 -> 171 + .byte $AC ; 173 -> 172 + .byte $AD ; 174 -> 173 + .byte $AE ; 175 -> 174 + .byte $AF ; 176 -> 175 + .byte $B0 ; 177 -> 176 + .byte $B1 ; 178 -> 177 + .byte $B2 ; 179 -> 178 + .byte $B3 ; 180 -> 179 + .byte $B4 ; 181 -> 180 + .byte $B5 ; 182 -> 181 + .byte $B6 ; 183 -> 182 + .byte $B7 ; 184 -> 183 + .byte $B8 ; 185 -> 184 + .byte $B9 ; 186 -> 185 + .byte $BA ; 187 -> 186 + .byte $BB ; 188 -> 187 + .byte $BC ; 189 -> 188 + .byte $BD ; 190 -> 189 + .byte $BE ; 191 -> 190 + .byte $BF ; 192 -> 191 + .byte $C0 ; 193 -> 192 + .byte $C1 ; 194 -> 193 + .byte $C2 ; 195 -> 194 + .byte $C3 ; 196 -> 195 + .byte $C4 ; 197 -> 196 + .byte $C5 ; 198 -> 197 + .byte $C6 ; 199 -> 198 + .byte $C7 ; 200 -> 199 + .byte $C8 ; 201 -> 200 + .byte $C9 ; 202 -> 201 + .byte $CA ; 203 -> 202 + .byte $CB ; 204 -> 203 + .byte $CC ; 205 -> 204 + .byte $CD ; 206 -> 205 + .byte $CE ; 207 -> 206 + .byte $CF ; 208 -> 207 + .byte $D0 ; 209 -> 208 + .byte $D1 ; 210 -> 209 + .byte $D2 ; 211 -> 210 + .byte $D3 ; 212 -> 211 + .byte $D4 ; 213 -> 212 + .byte $D5 ; 214 -> 213 + .byte $D6 ; 215 -> 214 + .byte $D7 ; 216 -> 215 + .byte $D8 ; 217 -> 216 + .byte $D9 ; 218 -> 217 + .byte $DA ; 219 -> 218 + .byte $DB ; 220 -> 219 + .byte $DC ; 221 -> 220 + .byte $DD ; 222 -> 221 + .byte $DE ; 223 -> 222 + .byte $DF ; 224 -> 223 + .byte $E0 ; 225 -> 224 + .byte $E1 ; 226 -> 225 + .byte $E2 ; 227 -> 226 + .byte $E3 ; 228 -> 227 + .byte $E4 ; 229 -> 228 + .byte $E5 ; 230 -> 229 + .byte $E6 ; 231 -> 230 + .byte $E7 ; 232 -> 231 + .byte $E8 ; 233 -> 232 + .byte $E9 ; 234 -> 233 + .byte $EA ; 235 -> 234 + .byte $EB ; 236 -> 235 + .byte $EC ; 237 -> 236 + .byte $ED ; 238 -> 237 + .byte $EE ; 239 -> 238 + .byte $EF ; 240 -> 239 + .byte $F0 ; 241 -> 240 + .byte $F1 ; 242 -> 241 + .byte $F2 ; 243 -> 242 + .byte $F3 ; 244 -> 243 + .byte $F4 ; 245 -> 244 + .byte $F5 ; 246 -> 245 + .byte $F6 ; 247 -> 246 + .byte $F7 ; 248 -> 247 + .byte $F8 ; 249 -> 248 + .byte $F9 ; 250 -> 249 + .byte $FA ; 251 -> 250 + .byte $FB ; 252 -> 251 + .byte $FC ; 253 -> 252 + .byte $FD ; 254 -> 253 + .byte $FE ; 255 -> 254 diff --git a/demosplash/musictest.s b/demosplash/musictest.s index d576e090..870a56e6 100644 --- a/demosplash/musictest.s +++ b/demosplash/musictest.s @@ -139,8 +139,16 @@ frame_decode_loop: ; book scene ;=========================== - jsr end_book + nop + nop + nop +; jsr end_book + ;=========================== + ; credits + ;=========================== + + jsr credits ; wait wait wait @@ -177,8 +185,10 @@ wait_until_keypressed: .include "gr_fast_clear.s" ;.include "gr_overlay.s" .align $100 +.include "movement_table.s" .include "font.s" - +.align $100 +.include "offsets_table.s" ; missing .include "missing.s" @@ -192,6 +202,9 @@ wait_until_keypressed: ; book .include "book.s" +; credits +.include "credits.s" + ; Music player .include "pt3_lib_core.s" .include "pt3_lib_init.s" @@ -201,6 +214,10 @@ wait_until_keypressed: .include "pt3_lib_write_frame.s" .include "create_update_type1.s" +; Pictures (no need to align) +.include "credits_bg.inc" + + PT3_LOC = song ; must be page aligned