From e00ff48be375b88d459ec5bf07cc99f3542098c4 Mon Sep 17 00:00:00 2001 From: scawful Date: Tue, 24 Jun 2025 18:14:52 -0400 Subject: [PATCH] Add menu journal code skeleton and tilemaps --- Menu/menu_journal.asm | 186 ++++++++++++++++++++++++++++++++ Menu/tilemaps/journal_begin.bin | Bin 0 -> 2048 bytes Menu/tilemaps/journal_end.bin | Bin 0 -> 2048 bytes Menu/tilemaps/journal_mid.bin | Bin 0 -> 2048 bytes 4 files changed, 186 insertions(+) create mode 100644 Menu/menu_journal.asm create mode 100644 Menu/tilemaps/journal_begin.bin create mode 100644 Menu/tilemaps/journal_end.bin create mode 100644 Menu/tilemaps/journal_mid.bin diff --git a/Menu/menu_journal.asm b/Menu/menu_journal.asm new file mode 100644 index 0000000..efbbdd0 --- /dev/null +++ b/Menu/menu_journal.asm @@ -0,0 +1,186 @@ +; Book of Secrets Journal Menu +; Journal States +JOURNAL_STATE_FIRST_PAGE = $0000 +JOURNAL_STATE_MIDDLE_PAGE = $0001 +JOURNAL_STATE_LAST_PAGE = $0002 + +Journal_Handler: +{ + PHB : PHK : PLB + ; Check for L button press + LDA.b $F6 : BIT.b #$20 : BEQ .check_right + REP #$30 + JSR Journal_PrevPage + JSL Menu_DrawJournal + JSR Journal_DrawEntry + BRA .draw_page + + .check_right + ; Check for R button press + LDA.b $F6 : BIT.b #$10 : BEQ .draw_page + REP #$30 + JSR Journal_NextPage + JSL Menu_DrawJournal + JSR Journal_DrawEntry + .draw_page + SEP #$30 + PLB + RTL +} + +Journal_PrevPage: +{ + LDA.l JournalState + AND.w #$00FF : CMP.w #JOURNAL_STATE_FIRST_PAGE + BEQ .wrap_to_last + DEC A + STA.l JournalState + RTS + + .wrap_to_last + LDA.w #JOURNAL_STATE_LAST_PAGE + STA.l JournalState + RTS +} + +Journal_NextPage: +{ + LDA.l JournalState + AND.w #$00FF : CMP.w #JOURNAL_STATE_LAST_PAGE + BEQ .wrap_to_first + INC A + STA.l JournalState + RTS + + .wrap_to_first + LDA.w #JOURNAL_STATE_FIRST_PAGE + STA.l JournalState + RTS +} + +Journal_DrawEntry: +{ + REP #$30 + LDX.w #$0000 + LDY.w #$0000 + .loop + LDA.w BookEntries, X : STA.w $1292, Y + INY #2 : INX #2 + CPY.w #$001F : BCC .loop + SEP #$30 + RTS +} + +BookEntries: + dw "THIS_IS_A_TEST__" + dw "______________ " + dw "______________ " + +Menu_DrawJournal: +{ + PHB : PHK : PLB + LDA.l JournalState + ASL : TAX + JSR (.page_drawers, X) + SEP #$30 + PLB + RTL + + .page_drawers + dw Journal_DrawFirstPage + dw Journal_DrawMiddlePage + dw Journal_DrawLastPage +} + +Journal_DrawFirstPage: +{ + REP #$30 + LDX.w #$FE + + .loop + LDA.w .first_page_tilemap, X + STA.w $1000, X + LDA.w .first_page_tilemap+$100, X + STA.w $1100, X + LDA.w .first_page_tilemap+$200, X + STA.w $1200, X + LDA.w .first_page_tilemap+$300, X + STA.w $1300, X + LDA.w .first_page_tilemap+$400, X + STA.w $1400, X + LDA.w .first_page_tilemap+$500, X + STA.w $1500, X + LDA.w .first_page_tilemap+$600, X + STA.w $1600, X + LDA.w .first_page_tilemap+$700, X + STA.w $1700, X + DEX : DEX + BPL .loop + RTS + + .first_page_tilemap + incbin "tilemaps/journal_begin.bin" +} + +Journal_DrawMiddlePage: +{ + REP #$30 + LDX.w #$FE + + .loop + LDA.w .middle_page_tilemap, X + STA.w $1000, X + LDA.w .middle_page_tilemap+$100, X + STA.w $1100, X + LDA.w .middle_page_tilemap+$200, X + STA.w $1200, X + LDA.w .middle_page_tilemap+$300, X + STA.w $1300, X + LDA.w .middle_page_tilemap+$400, X + STA.w $1400, X + LDA.w .middle_page_tilemap+$500, X + STA.w $1500, X + LDA.w .middle_page_tilemap+$600, X + STA.w $1600, X + LDA.w .middle_page_tilemap+$700, X + STA.w $1700, X + DEX : DEX + BPL .loop + + RTS + + .middle_page_tilemap + incbin "tilemaps/journal_mid.bin" +} + +Journal_DrawLastPage: +{ + REP #$30 + LDX.w #$FE + + .loop + LDA.w .last_page_tilemap, X + STA.w $1000, X + LDA.w .last_page_tilemap+$100, X + STA.w $1100, X + LDA.w .last_page_tilemap+$200, X + STA.w $1200, X + LDA.w .last_page_tilemap+$300, X + STA.w $1300, X + LDA.w .last_page_tilemap+$400, X + STA.w $1400, X + LDA.w .last_page_tilemap+$500, X + STA.w $1500, X + LDA.w .last_page_tilemap+$600, X + STA.w $1600, X + LDA.w .last_page_tilemap+$700, X + STA.w $1700, X + DEX : DEX + BPL .loop + + RTS + + .last_page_tilemap + incbin "tilemaps/journal_end.bin" +} + diff --git a/Menu/tilemaps/journal_begin.bin b/Menu/tilemaps/journal_begin.bin new file mode 100644 index 0000000000000000000000000000000000000000..1fcfc72f7251b2a41b0f32221ee8595c54160a94 GIT binary patch literal 2048 zcmeH{y$*sf6hs17ZWhSf}H|Om|`vM5F$tvL?Tr91~RN3WSC>2Ag7GRU5pG`z9c}7sRo<^$*&PG zxx5chz4?pQ{XRdRJmF4lD)jF^(eZkie9-s(-s{|M>Y%>A^=Ha%7(dM~XnC7z!26(I w-fy(5t?t<9;Qj>;*);59y&?JYS+U~p8~?=k*|^z|XC<6pP_Fv&Y5%{v0Z}33|5JYVV1gLC~AW5}+L~0Pl9*1LW$5l9nk4Bjf1yGnzND(RMH7<5m*6e5+ zXb!&UfB`0)G?=wfFS+eQ0Fj2E_BDEj9E&#zrkH6+DWQIf6Ql7@1WJrIAW2O0B?3m( zdVtD9KT6#m{~U0^+u{EOuG#Gqeby()Y2DUS$Nkr*KdOE$|3XO>Z$NgU8}|oOToq3& mwDCNHO%}c8c*iFCVOOZ>zP=MfP5%x09PTsZi~3>Hf4m-2>EmSp literal 0 HcmV?d00001 diff --git a/Menu/tilemaps/journal_mid.bin b/Menu/tilemaps/journal_mid.bin new file mode 100644 index 0000000000000000000000000000000000000000..2fdaa9bba83e6f4dcf2a234ee7da6e86445d7b1b GIT binary patch literal 2048 zcmeH{I}U>|42F3W3QRyHpq20EMs=uBgu-1gxDp@0kX1$qTlEP4`5F%ytdLPL~F3e9igqKB~r9=QvB ziGbnbdw|MAKkK?Z{#jsyBkjLKHnaL}ir|{vr1dwtKBHc5)pqT0+4?)J-B``ogL~fJ zuJYoIfhL|eFv*}UPHmNie##XHX5TOqgTCXY==Cm# O`v&<({W{}+pS%FKn&Vag literal 0 HcmV?d00001