From a2a15b23f27898566ba4a5b56c01f9032a045fe0 Mon Sep 17 00:00:00 2001 From: Pecusx Date: Fri, 18 Apr 2025 11:28:42 +0200 Subject: [PATCH] Titlee screen (test only) --- art/title_screen.asm | 65 ++++++++++++++++++++++++++++++ lumber.asm | 94 ++++++++++++++++++++++++++++++++++++------- lumber.xex | Bin 25897 -> 27664 bytes 3 files changed, 145 insertions(+), 14 deletions(-) create mode 100644 art/title_screen.asm diff --git a/art/title_screen.asm b/art/title_screen.asm new file mode 100644 index 0000000..5112b2a --- /dev/null +++ b/art/title_screen.asm @@ -0,0 +1,65 @@ + dta $00,$00,$00,$00,$00,$00,$00,$00 + dta $00,$00,$00,$46,$47,$30,$38,$39 + dta $22,$23,$28,$29,$42,$43,$38,$39 + dta $20,$21,$3A,$3B,$31,$00,$00,$00 + dta $00,$00,$00,$00,$00,$00,$00,$00 + dta $00,$00,$00,$00,$0C,$0D,$0E,$0F + dta $10,$11,$12,$13,$14,$15,$16,$17 + dta $18,$19,$1A,$1B,$1C,$1D,$1E,$1F + dta $31,$00,$00,$00,$00,$00,$00,$00 + dta $00,$00,$00,$00,$00,$00,$00,$00 + dta $00,$00,$00,$00,$20,$21,$22,$23 + dta $24,$25,$26,$27,$28,$29,$2A,$2B + dta $2C,$2D,$2E,$2F,$30,$31,$32,$33 + dta $34,$35,$36,$37,$38,$39,$3A,$3B + dta $3C,$3D,$3E,$3F,$40,$41,$31,$00 + dta $00,$00,$00,$00,$42,$43,$44,$45 + dta $46,$47,$48,$49,$4A,$4B,$4C,$4D + dta $4E,$4F,$50,$51,$52,$53,$31,$00 + dta $00,$00,$00,$00,$00,$00,$00,$00 + dta $00,$00,$00,$00,$00,$00,$00,$00 + dta $00,$00,$00,$00,$00,$00,$00,$4C + dta $4D,$20,$21,$42,$43,$44,$45,$52 + dta $53,$20,$21,$4C,$4D,$20,$21,$31 + dta $00,$10,$11,$0C,$0D,$10,$11,$16 + dta $17,$31,$00,$00,$00,$00,$00,$00 + dta $00,$00,$00,$00,$00,$3C,$3D,$42 + dta $43,$30,$2C,$2D,$30,$3A,$3B,$20 + dta $21,$36,$37,$54,$00,$2C,$2D,$20 + dta $21,$38,$39,$28,$29,$31,$00,$22 + dta $23,$50,$51,$31,$00,$00,$00,$00 + dta $00,$00,$00,$00,$00,$00,$00,$26 + dta $27,$30,$2C,$2D,$30,$46,$47,$20 + dta $21,$36,$37,$54,$00,$38,$39,$28 + dta $29,$36,$37,$3C,$3D,$26,$27,$50 + dta $51,$31,$00,$00,$00,$00,$00,$00 + dta $00,$00,$00,$00,$00,$00,$00,$00 + dta $00,$00,$00,$00,$00,$00,$00,$00 + dta $24,$25,$3C,$3D,$26,$27,$28,$29 + dta $31,$00,$00,$00,$00,$00,$00,$00 + dta $00,$00,$00,$00,$00,$00,$00,$00 + dta $00,$00,$00,$00,$00,$00,$00,$00 + dta $46,$47,$3C,$3D,$38,$39,$20,$21 + dta $44,$45,$52,$53,$31,$00,$3E,$3F + dta $28,$29,$24,$25,$34,$35,$3C,$3D + dta $31,$00,$00,$00,$00,$00,$00,$00 + dta $00,$00,$00,$00,$00,$00,$00,$00 + dta $00,$00,$00,$00,$2C,$2D,$42,$43 + dta $20,$21,$3E,$3F,$2E,$2F,$30,$24 + dta $25,$44,$45,$31,$00,$00,$00,$00 + dta $00,$00,$00,$00,$00,$00,$00,$00 + dta $00,$00,$00,$00,$00,$00,$20,$21 + dta $26,$27,$20,$21,$38,$39,$31,$00 + dta $4C,$4D,$20,$21,$24,$25,$2E,$2F + dta $3C,$3D,$4C,$4D,$44,$45,$34,$35 + dta $30,$31,$00,$00,$00,$00,$00,$00 + dta $00,$00,$00,$00,$00,$00,$00,$00 + dta $00,$00,$00,$00,$00,$00,$00,$38 + dta $39,$48,$49,$44,$45,$30,$24,$25 + dta $31,$00,$00,$00,$00,$00,$00,$00 + dta $00,$00,$00,$00,$00,$00,$00,$00 + dta $00,$00,$00,$20,$21,$36,$37,$28 + dta $29,$34,$35,$44,$45,$20,$21,$3A + dta $3B,$26,$27,$28,$29,$42,$43,$31 + dta $00,$38,$39,$20,$21,$42,$43,$46 + dta $47,$30,$3A,$3B,$31,$00,$00,$00 \ No newline at end of file diff --git a/lumber.asm b/lumber.asm index c1d3f53..4d86329 100644 --- a/lumber.asm +++ b/lumber.asm @@ -9,7 +9,7 @@ ;--------------------------------------------------- .macro build - dta d"0.35" ; number of this build (4 bytes) + dta d"0.37" ; number of this build (4 bytes) .endm .macro RMTSong @@ -27,7 +27,7 @@ display = $a000 .zpvar tempbyte .byte .zpvar SyncByte .byte .zpvar NTSCCounter .byte - .zpvar StateFlag .byte ; 0 - game, 1 - start screen, 2 game over screen, etc. + .zpvar StateFlag .byte ; 0 - menu, 1 - game screen, 2 RIP screen, 5 - game over screen, etc. .zpvar PowerValue .byte ; power: 0 - 48 .zpvar PowerTimer .byte .zpvar PowerDownSpeed .byte @@ -101,6 +101,16 @@ font_game_lower_left ins 'art/tl_l.fnt' ; font_game_rip ins 'art/t_rip.fnt' ; +font_titles + ins 'art/title_fonts.fnt' ; +dl_title + .by $10,$70 + .by $45 + .wo title_screen ; title screen (menu?) + :12 .by $05 + .by $41 + .wo dl_title +;--------------------------------------------------- dl_level ;.by $10 .by $44 @@ -167,13 +177,38 @@ c_greyRIP = 18 ; v8 - if the branch under (due to change of sides) the lumberjack and branch above on the other side ; v9 - if the branch opposite the lumberjack and branch above on the other side ;-------------------------------------------------- +title_screen + icl 'art/title_screen.asm' ;-------------------------------------------------- .proc vint ;-------------------------------------------------- - + lda StateFlag + bne no_titles + ; titles (StateFlag=0) - set DLI + vdli NoDLI + jmp DLI_OK +no_titles + cmp #3 + beq no_geme_and_RIP + ; game screen and RIP screen (StateFlag=1 or 2) - set DLI vdli IngameDLI1 - + jmp DLI_OK +no_geme_and_RIP + ; game over screen (StateFlag=3) - set DLI + vdli NoDLI + +DLI_OK + lda StateFlag + jeq titles_VBI + cmp #1 + beq game_VBI + cmp #2 + beq game_VBI + cmp #3 + jeq gameover_VBI +game_VBI + ; game screen and RIP screen (StateFlag=1 or 2) - set DLI ; over horizon ; PMG horizontal coordinates and sizes txa @@ -279,8 +314,12 @@ cloud3_fly dec clouds3Hpos no_new_cloud3 no_clouds_change + jmp common_VBI +titles_VBI +gameover_VBI +common_VBI ; NTSC speed correction lda PAL and #%00001110 @@ -358,6 +397,11 @@ key_released jmp XITVBV .endp ;-------------------------------------------------- +.proc NoDLI +;-------------------------------------------------- + rti +.endp +;-------------------------------------------------- .proc IngameDLI1 ;-------------------------------------------------- pha @@ -490,24 +534,46 @@ gameOver ;-------------------------------------------------- .proc StartScreen ;-------------------------------------------------- -/* jsr MakeDarkScreen - mwa #dl_start dlptrs - lda #$0 ;+GTIACTLBITS - sta GPRIOR - sta COLBAKS + jsr MakeDarkScreen + mva #0 StateFlag + mva #>font_titles CHBAS + mwa #dl_title dlptrs + mva #$c8 COLBAKS + mva #$00 COLOR0 + mva #$fc COLOR1 + mva #$ee COLOR2 + mva #$de COLOR3 lda #@dmactl(standard|dma) ; normal screen width, DL on, P/M off sta dmactls pause 1 StartLoop - ;jmp StartLoop -EndOfStartScreen */ - mva #1 StateFlag + jsr GetKey +EndOfStartScreen rts .endp ;-------------------------------------------------- .proc LevelScreen ;-------------------------------------------------- jsr MakeDarkScreen + + mva #>font_game_upper CHBAS + mva #>font_game_lower_right LowCharsetBase + mva GameColors+c_black PCOLR0 ; = $02C0 ;- - rejestr-cień COLPM0 + mva GameColors+c_black COLOR0 + mva GameColors+c_sky COLBAKS ; sky + mva GameColors+c_dark_brown COLOR1 ; dark brown + mva GameColors+c_red COLOR2 ; red + mva GameColors+c_light_brown COLOR3 ; light brown + + mva #$00 birds_order ; standard birds order + jsr LevelReset + jsr InitBranches + jsr draw_branches + mva #24 PowerValue ; half power + mva #1 PowerTimer ; reset timer ( 1, not 0! ) + jsr draw_PowerBar + mva #1 LumberjackDir ; right side + jsr PrepareLevelPM jsr PrepareBirdsPM jsr PrepareCloudsPM @@ -518,8 +584,8 @@ EndOfStartScreen */ mva #%00000011 GRACTL mva #>font_game_upper CHBAS jsr SetPMr1 - pause 5 mva #1 StateFlag + pause 5 rts .endp ;-------------------------------------------------- @@ -883,7 +949,7 @@ no_branch_l sta dmactls mva #%00000011 GRACTL mwa #dl_level dlptrs - vdli IngameDLI1 + ;vdli IngameDLI1 ;VBI diff --git a/lumber.xex b/lumber.xex index cd260ce3ba3867f8ad2b1dc9ec0a49fc66d9fcb9..33f1bb640434b82fc2b6fa3ada6319a13a1b36c5 100644 GIT binary patch delta 5452 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 E0{U^O5C8xG