|
|
|
|
@@ -7,6 +7,7 @@
|
|
|
|
|
Journal_Handler:
|
|
|
|
|
{
|
|
|
|
|
PHB : PHK : PLB
|
|
|
|
|
SEP #$30 ; Ensure 8-bit A and X/Y for input handling
|
|
|
|
|
|
|
|
|
|
; Check timer
|
|
|
|
|
LDA.w $0207 : BEQ .process_input
|
|
|
|
|
@@ -20,7 +21,8 @@ Journal_Handler:
|
|
|
|
|
JSR Journal_PrevPage
|
|
|
|
|
JSL Menu_DrawJournal
|
|
|
|
|
SEP #$30
|
|
|
|
|
LDA.b #$0A : STA.w $0207 ; Set delay
|
|
|
|
|
LDA.b #$20 : STA.w $012F ; Play page scroll sound
|
|
|
|
|
LDA.b #$0A : STA.w $0207 ; Set delay
|
|
|
|
|
JMP .exit
|
|
|
|
|
|
|
|
|
|
.check_right
|
|
|
|
|
@@ -30,7 +32,8 @@ Journal_Handler:
|
|
|
|
|
JSR Journal_NextPage
|
|
|
|
|
JSL Menu_DrawJournal
|
|
|
|
|
SEP #$30
|
|
|
|
|
LDA.b #$0A : STA.w $0207 ; Set delay
|
|
|
|
|
LDA.b #$20 : STA.w $012F ; Play page scroll sound
|
|
|
|
|
LDA.b #$0A : STA.w $0207 ; Set delay
|
|
|
|
|
|
|
|
|
|
.exit
|
|
|
|
|
SEP #$30
|
|
|
|
|
@@ -202,22 +205,34 @@ Journal_DrawEntry:
|
|
|
|
|
INY #2 ; Next VRAM word
|
|
|
|
|
INX #2 ; Next Text word
|
|
|
|
|
|
|
|
|
|
; Wrap logic for multiple lines
|
|
|
|
|
; Line 1 ends at $1292 + $20 (32 bytes) = $12B2?
|
|
|
|
|
; Let's just assume the text includes padding or we handle newlines?
|
|
|
|
|
; Simplified: The text data is pre-formatted to 16 chars per line.
|
|
|
|
|
; We just copy linear data to linear VRAM.
|
|
|
|
|
; But VRAM is linear in rows? Yes, usually.
|
|
|
|
|
; However, to jump to next line in tilemap we need to add stride.
|
|
|
|
|
; Row Width = $40 bytes (32 tiles * 2 bytes).
|
|
|
|
|
; If we write 16 chars (32 bytes), we need to skip 32 bytes to reach next line.
|
|
|
|
|
; Wrap logic for multiple lines (up to 9 lines supported)
|
|
|
|
|
; Row Width = $40 bytes (32 tiles * 2 bytes)
|
|
|
|
|
; Each line is 16 chars ($20 bytes), then skip $20 to next row
|
|
|
|
|
|
|
|
|
|
CPY.w #$0020 : BNE .check_line_2
|
|
|
|
|
TYA : CLC : ADC.w #$0020 : TAY ; Skip to next line start
|
|
|
|
|
TYA : CLC : ADC.w #$0020 : TAY
|
|
|
|
|
.check_line_2
|
|
|
|
|
CPY.w #$0060 : BNE .check_line_3 ; End of Line 2 ($20 + $40 = $60)
|
|
|
|
|
CPY.w #$0060 : BNE .check_line_3
|
|
|
|
|
TYA : CLC : ADC.w #$0020 : TAY
|
|
|
|
|
.check_line_3
|
|
|
|
|
CPY.w #$00A0 : BNE .check_line_4
|
|
|
|
|
TYA : CLC : ADC.w #$0020 : TAY
|
|
|
|
|
.check_line_4
|
|
|
|
|
CPY.w #$00E0 : BNE .check_line_5
|
|
|
|
|
TYA : CLC : ADC.w #$0020 : TAY
|
|
|
|
|
.check_line_5
|
|
|
|
|
CPY.w #$0120 : BNE .check_line_6
|
|
|
|
|
TYA : CLC : ADC.w #$0020 : TAY
|
|
|
|
|
.check_line_6
|
|
|
|
|
CPY.w #$0160 : BNE .check_line_7
|
|
|
|
|
TYA : CLC : ADC.w #$0020 : TAY
|
|
|
|
|
.check_line_7
|
|
|
|
|
CPY.w #$01A0 : BNE .check_line_8
|
|
|
|
|
TYA : CLC : ADC.w #$0020 : TAY
|
|
|
|
|
.check_line_8
|
|
|
|
|
CPY.w #$01E0 : BNE .check_line_9
|
|
|
|
|
TYA : CLC : ADC.w #$0020 : TAY
|
|
|
|
|
.check_line_9
|
|
|
|
|
|
|
|
|
|
BRA .loop
|
|
|
|
|
|
|
|
|
|
@@ -232,27 +247,335 @@ Journal_DrawEntry:
|
|
|
|
|
|
|
|
|
|
; Format: Address(3), Mask(1), TextPtr(2) = 6 bytes
|
|
|
|
|
Journal_MasterList:
|
|
|
|
|
dl $7EF3D6 : db $02 : dw Entry_QuestStart ; OOSPROG bit 1 (Quest Start)
|
|
|
|
|
dl $7EF3D6 : db $10 : dw Entry_MetElder ; OOSPROG bit 4 (Met Elder)
|
|
|
|
|
dl $7EF3C6 : db $04 : dw Entry_MakuTree ; OOSPROG2 bit 2 (Maku Tree)
|
|
|
|
|
; === Chapter 0: A Hero is Born ===
|
|
|
|
|
dl $7EF3C5 : db $02 : dw Entry_TheCall ; GameState = $02 (Farore intro)
|
|
|
|
|
dl $7EF3C6 : db $04 : dw Entry_CastAway ; OOSPROG2 bit 2 (Kydrog intro)
|
|
|
|
|
|
|
|
|
|
; === Chapter 1: The Maku Tree ===
|
|
|
|
|
dl $7EF3D4 : db $01 : dw Entry_MakuTree ; MakuTreeQuest = $01
|
|
|
|
|
dl $7EF3C7 : db $01 : dw Entry_FirstEssence ; MapIcon = $01 (Mushroom Grotto)
|
|
|
|
|
|
|
|
|
|
; === Ocarina Quest Chain (HINT -> PROGRESS -> COMPLETE) ===
|
|
|
|
|
dl $7EF3D7 : db $01 : dw Entry_MaskShop ; SideQuestProg bit 0 (met salesman)
|
|
|
|
|
dl $7EF3D7 : db $02 : dw Entry_CursedGirl ; SideQuestProg bit 1 (found cucco)
|
|
|
|
|
dl $7EF3D7 : db $08 : dw Entry_GotMushroom ; SideQuestProg bit 3 (got mushroom)
|
|
|
|
|
dl $7EF344 : db $02 : dw Entry_GotPowder ; MagicPowder = $02
|
|
|
|
|
dl $7EF3D8 : db $01 : dw Entry_CurseBroken ; SideQuestProg2 bit 0 (ranch girl)
|
|
|
|
|
dl $7EF3D8 : db $04 : dw Entry_SongLearned ; SideQuestProg2 bit 2 (song taught)
|
|
|
|
|
|
|
|
|
|
; === Deku Mask Chain ===
|
|
|
|
|
dl $7EF3D7 : db $04 : dw Entry_DyingDeku ; SideQuestProg bit 2 (found deku)
|
|
|
|
|
dl $7EF3D8 : db $10 : dw Entry_DekuFreed ; SideQuestProg2 bit 4 (soul freed)
|
|
|
|
|
dl $7EF349 : db $01 : dw Entry_DekuMask ; DekuMask obtained
|
|
|
|
|
|
|
|
|
|
; === Dungeon Completions ===
|
|
|
|
|
dl $7EF398 : db $01 : dw Entry_D1Complete ; Scrolls bit 0 (Mushroom Grotto)
|
|
|
|
|
dl $7EF398 : db $02 : dw Entry_D2Complete ; Scrolls bit 1 (Tail Palace)
|
|
|
|
|
dl $7EF398 : db $04 : dw Entry_D3Complete ; Scrolls bit 2 (Kalyxo Castle)
|
|
|
|
|
dl $7EF398 : db $08 : dw Entry_D4Complete ; Scrolls bit 3 (Zora Temple)
|
|
|
|
|
dl $7EF398 : db $10 : dw Entry_D5Complete ; Scrolls bit 4 (Glacia Estate)
|
|
|
|
|
dl $7EF398 : db $20 : dw Entry_D6Complete ; Scrolls bit 5 (Goron Mines)
|
|
|
|
|
dl $7EF398 : db $40 : dw Entry_D7Complete ; Scrolls bit 6 (Dragon Ship)
|
|
|
|
|
|
|
|
|
|
; === Mask Collection ===
|
|
|
|
|
dl $7EF347 : db $01 : dw Entry_ZoraMask ; ZoraMask obtained
|
|
|
|
|
dl $7EF358 : db $01 : dw Entry_WolfMask ; WolfMask obtained
|
|
|
|
|
dl $7EF348 : db $01 : dw Entry_BunnyHood ; BunnyHood obtained
|
|
|
|
|
|
|
|
|
|
; === Other Side Quests ===
|
|
|
|
|
dl $7EF39B : db $01 : dw Entry_BeanPlanted ; MagicBeanProg bit 0 (planted)
|
|
|
|
|
dl $7EF3D7 : db $10 : dw Entry_OldManQuest ; SideQuestProg bit 4 (old man)
|
|
|
|
|
dl $7EF3D7 : db $20 : dw Entry_GoronQuest ; SideQuestProg bit 5 (goron)
|
|
|
|
|
|
|
|
|
|
dw $0000 ; Terminator
|
|
|
|
|
|
|
|
|
|
Entry_QuestStart:
|
|
|
|
|
dw "Quest_Started___"
|
|
|
|
|
dw "Find_the_3_gems_"
|
|
|
|
|
dw "to_save_Hyrule__"
|
|
|
|
|
; ---------------------------------------------------------
|
|
|
|
|
; Chapter 0: A Hero is Born
|
|
|
|
|
; ---------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
Entry_TheCall:
|
|
|
|
|
dw "THE_CALL________"
|
|
|
|
|
dw "________________"
|
|
|
|
|
dw "A_VOICE_CALLED__"
|
|
|
|
|
dw "OUT_TO_ME..._IT_"
|
|
|
|
|
dw "SAID_ACCEPT_THIS"
|
|
|
|
|
dw "QUEST__HERO.____"
|
|
|
|
|
dw $FFFF
|
|
|
|
|
|
|
|
|
|
Entry_MetElder:
|
|
|
|
|
dw "Spoke_to_Elder__"
|
|
|
|
|
dw "He_mentioned_a__"
|
|
|
|
|
dw "missing_girl____"
|
|
|
|
|
Entry_CastAway:
|
|
|
|
|
dw "CAST_AWAY_______"
|
|
|
|
|
dw "________________"
|
|
|
|
|
dw "KYDROG_TOOK_____"
|
|
|
|
|
dw "FARORE_AND_CAST_"
|
|
|
|
|
dw "ME_TO_THE_ABYSS."
|
|
|
|
|
dw "FIND_MAKU_TREE._"
|
|
|
|
|
dw $FFFF
|
|
|
|
|
|
|
|
|
|
; ---------------------------------------------------------
|
|
|
|
|
; Chapter 1: The Maku Tree
|
|
|
|
|
; ---------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
Entry_MakuTree:
|
|
|
|
|
dw "Met_Maku_Tree___"
|
|
|
|
|
dw "He_needs_his____"
|
|
|
|
|
dw "memory_back_____"
|
|
|
|
|
dw "THE_MAKU_TREE___"
|
|
|
|
|
dw "________________"
|
|
|
|
|
dw "I_FOUND_THE_____"
|
|
|
|
|
dw "MAKU_TREE._IMPA_"
|
|
|
|
|
dw "AWAITS_IN_THE___"
|
|
|
|
|
dw "HALL_OF_SECRETS."
|
|
|
|
|
dw $FFFF
|
|
|
|
|
|
|
|
|
|
Entry_FirstEssence:
|
|
|
|
|
dw "FIRST_ESSENCE___"
|
|
|
|
|
dw "________________"
|
|
|
|
|
dw "DARKNESS_LURKS__"
|
|
|
|
|
dw "IN_THE_MUSHROOM_"
|
|
|
|
|
dw "GROTTO_TO_THE___"
|
|
|
|
|
dw "WEST.___________"
|
|
|
|
|
dw $FFFF
|
|
|
|
|
|
|
|
|
|
; ---------------------------------------------------------
|
|
|
|
|
; Ocarina Quest Chain
|
|
|
|
|
; ---------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
Entry_MaskShop:
|
|
|
|
|
dw "MASK_SHOP_______"
|
|
|
|
|
dw "________________"
|
|
|
|
|
dw "A_SALESMAN_EAST_"
|
|
|
|
|
dw "OF_VILLAGE_SELLS"
|
|
|
|
|
dw "MASKS._HE_NEEDS_"
|
|
|
|
|
dw "ME_TO_HAVE_AN___"
|
|
|
|
|
dw "OCARINA._A_GIRL_"
|
|
|
|
|
dw "AT_TOTO_RANCH___"
|
|
|
|
|
dw "MIGHT_HELP._____"
|
|
|
|
|
dw $FFFF
|
|
|
|
|
|
|
|
|
|
Entry_CursedGirl:
|
|
|
|
|
dw "CURSED_GIRL_____"
|
|
|
|
|
dw "________________"
|
|
|
|
|
dw "A_GIRL_AT_TOTO__"
|
|
|
|
|
dw "RANCH_IS_CURSED!"
|
|
|
|
|
dw "SHE_HAS_BEEN____"
|
|
|
|
|
dw "TURNED_INTO_A___"
|
|
|
|
|
dw "CUCCO._MAGIC____"
|
|
|
|
|
dw "POWDER_MIGHT____"
|
|
|
|
|
dw "BREAK_THE_SPELL."
|
|
|
|
|
dw $FFFF
|
|
|
|
|
|
|
|
|
|
Entry_GotMushroom:
|
|
|
|
|
dw "STRANGE_MUSHROOM"
|
|
|
|
|
dw "________________"
|
|
|
|
|
dw "FOUND_A_STRANGE_"
|
|
|
|
|
dw "MUSHROOM_IN_THE_"
|
|
|
|
|
dw "WOODS._THE______"
|
|
|
|
|
dw "POTION_SHOP_____"
|
|
|
|
|
dw "MIGHT_WANT_THIS."
|
|
|
|
|
dw $FFFF
|
|
|
|
|
|
|
|
|
|
Entry_GotPowder:
|
|
|
|
|
dw "MAGIC_POWDER____"
|
|
|
|
|
dw "________________"
|
|
|
|
|
dw "THE_WITCH_MADE__"
|
|
|
|
|
dw "POWDER_FROM_THE_"
|
|
|
|
|
dw "MUSHROOM._IT_HAS"
|
|
|
|
|
dw "TRANSFORMATIVE__"
|
|
|
|
|
dw "POWER.__________"
|
|
|
|
|
dw $FFFF
|
|
|
|
|
|
|
|
|
|
Entry_CurseBroken:
|
|
|
|
|
dw "CURSE_BROKEN____"
|
|
|
|
|
dw "________________"
|
|
|
|
|
dw "THE_POWDER______"
|
|
|
|
|
dw "BROKE_THE_CURSE!"
|
|
|
|
|
dw "THE_RANCH_GIRL__"
|
|
|
|
|
dw "GAVE_ME_HER_____"
|
|
|
|
|
dw "OCARINA_AND_____"
|
|
|
|
|
dw "TAUGHT_ME_THE___"
|
|
|
|
|
dw "SONG_OF_STORMS._"
|
|
|
|
|
dw $FFFF
|
|
|
|
|
|
|
|
|
|
Entry_SongLearned:
|
|
|
|
|
dw "SONG_OF_HEALING_"
|
|
|
|
|
dw "________________"
|
|
|
|
|
dw "THE_MASK________"
|
|
|
|
|
dw "SALESMAN_TAUGHT_"
|
|
|
|
|
dw "ME_THE_SONG_OF__"
|
|
|
|
|
dw "HEALING._IT_CAN_"
|
|
|
|
|
dw "FREE_TROUBLED___"
|
|
|
|
|
dw "SPIRITS_FROM____"
|
|
|
|
|
dw "THEIR_PAIN._____"
|
|
|
|
|
dw $FFFF
|
|
|
|
|
|
|
|
|
|
; ---------------------------------------------------------
|
|
|
|
|
; Deku Mask Chain
|
|
|
|
|
; ---------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
Entry_DyingDeku:
|
|
|
|
|
dw "DYING_DEKU______"
|
|
|
|
|
dw "________________"
|
|
|
|
|
dw "A_DEKU_SCRUB_IN_"
|
|
|
|
|
dw "THE_WOODS_IS____"
|
|
|
|
|
dw "WITHERING_AWAY._"
|
|
|
|
|
dw "HIS_SPIRIT_SEEMS"
|
|
|
|
|
dw "TROUBLED..._____"
|
|
|
|
|
dw "PERHAPS_A_______"
|
|
|
|
|
dw "HEALING_MELODY?_"
|
|
|
|
|
dw $FFFF
|
|
|
|
|
|
|
|
|
|
Entry_DekuFreed:
|
|
|
|
|
dw "DEKU_FREED______"
|
|
|
|
|
dw "________________"
|
|
|
|
|
dw "THE_SONG_FREED__"
|
|
|
|
|
dw "THE_DEKUS_______"
|
|
|
|
|
dw "TORTURED_SOUL.__"
|
|
|
|
|
dw "HE_LEFT_BEHIND__"
|
|
|
|
|
dw "A_MASK..._______"
|
|
|
|
|
dw $FFFF
|
|
|
|
|
|
|
|
|
|
Entry_DekuMask:
|
|
|
|
|
dw "DEKU_MASK_______"
|
|
|
|
|
dw "________________"
|
|
|
|
|
dw "WITH_THE_DEKU___"
|
|
|
|
|
dw "MASK_I_CAN_TAKE_"
|
|
|
|
|
dw "DEKU_FORM._THIS_"
|
|
|
|
|
dw "WILL_HELP_ME____"
|
|
|
|
|
dw "TRAVERSE_THE____"
|
|
|
|
|
dw "SWAMPS_TO_______"
|
|
|
|
|
dw "TAIL_PALACE.____"
|
|
|
|
|
dw $FFFF
|
|
|
|
|
|
|
|
|
|
; ---------------------------------------------------------
|
|
|
|
|
; Dungeon Completions
|
|
|
|
|
; ---------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
Entry_D1Complete:
|
|
|
|
|
dw "GROTTO_CLEARED__"
|
|
|
|
|
dw "________________"
|
|
|
|
|
dw "THE_MUSHROOM____"
|
|
|
|
|
dw "GROTTO_IS_FREE__"
|
|
|
|
|
dw "OF_EVIL._I_FOUND"
|
|
|
|
|
dw "THE_BOW_WITHIN._"
|
|
|
|
|
dw $FFFF
|
|
|
|
|
|
|
|
|
|
Entry_D2Complete:
|
|
|
|
|
dw "TAIL_PALACE_____"
|
|
|
|
|
dw "________________"
|
|
|
|
|
dw "MOLDORM_FALLS.__"
|
|
|
|
|
dw "THE_ROCS_FEATHER"
|
|
|
|
|
dw "GRANTS_ME_THE___"
|
|
|
|
|
dw "GIFT_OF_FLIGHT._"
|
|
|
|
|
dw $FFFF
|
|
|
|
|
|
|
|
|
|
Entry_D3Complete:
|
|
|
|
|
dw "KALYXO_CASTLE___"
|
|
|
|
|
dw "________________"
|
|
|
|
|
dw "THE_CASTLE_IS___"
|
|
|
|
|
dw "RECLAIMED._THE__"
|
|
|
|
|
dw "MEADOW_BLADE____"
|
|
|
|
|
dw "IS_MINE.________"
|
|
|
|
|
dw $FFFF
|
|
|
|
|
|
|
|
|
|
Entry_D4Complete:
|
|
|
|
|
dw "ZORA_TEMPLE_____"
|
|
|
|
|
dw "________________"
|
|
|
|
|
dw "THE_WATERS_ARE__"
|
|
|
|
|
dw "PURIFIED._THE___"
|
|
|
|
|
dw "HOOKSHOT_WILL___"
|
|
|
|
|
dw "AID_MY_QUEST.___"
|
|
|
|
|
dw $FFFF
|
|
|
|
|
|
|
|
|
|
Entry_D5Complete:
|
|
|
|
|
dw "GLACIA_ESTATE___"
|
|
|
|
|
dw "________________"
|
|
|
|
|
dw "TWINROVA_IS_____"
|
|
|
|
|
dw "DEFEATED._THE___"
|
|
|
|
|
dw "FIRE_ROD_MELTS__"
|
|
|
|
|
dw "ALL_OBSTACLES.__"
|
|
|
|
|
dw $FFFF
|
|
|
|
|
|
|
|
|
|
Entry_D6Complete:
|
|
|
|
|
dw "GORON_MINES_____"
|
|
|
|
|
dw "________________"
|
|
|
|
|
dw "THE_MINES_ARE___"
|
|
|
|
|
dw "SAFE._THE_HAMMER"
|
|
|
|
|
dw "BREAKS_THROUGH__"
|
|
|
|
|
dw "ANY_BARRIER.____"
|
|
|
|
|
dw $FFFF
|
|
|
|
|
|
|
|
|
|
Entry_D7Complete:
|
|
|
|
|
dw "DRAGON_SHIP_____"
|
|
|
|
|
dw "________________"
|
|
|
|
|
dw "THE_ANCIENT_SHIP"
|
|
|
|
|
dw "YIELDS_ITS______"
|
|
|
|
|
dw "SECRET:_THE_____"
|
|
|
|
|
dw "SOMARIA_ROD.____"
|
|
|
|
|
dw $FFFF
|
|
|
|
|
|
|
|
|
|
; ---------------------------------------------------------
|
|
|
|
|
; Mask Collection
|
|
|
|
|
; ---------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
Entry_ZoraMask:
|
|
|
|
|
dw "ZORA_MASK_______"
|
|
|
|
|
dw "________________"
|
|
|
|
|
dw "THE_PRINCESS____"
|
|
|
|
|
dw "GAVE_ME_A_MASK._"
|
|
|
|
|
dw "I_CAN_BREATHE___"
|
|
|
|
|
dw "UNDERWATER._____"
|
|
|
|
|
dw $FFFF
|
|
|
|
|
|
|
|
|
|
Entry_WolfMask:
|
|
|
|
|
dw "WOLF_MASK_______"
|
|
|
|
|
dw "________________"
|
|
|
|
|
dw "THE_WOLFOS______"
|
|
|
|
|
dw "SPIRIT_IS_AT____"
|
|
|
|
|
dw "PEACE._ITS_MASK_"
|
|
|
|
|
dw "GRANTS_SPEED____"
|
|
|
|
|
dw "AT_NIGHT._______"
|
|
|
|
|
dw $FFFF
|
|
|
|
|
|
|
|
|
|
Entry_BunnyHood:
|
|
|
|
|
dw "BUNNY_HOOD______"
|
|
|
|
|
dw "________________"
|
|
|
|
|
dw "THE_MASK________"
|
|
|
|
|
dw "SALESMAN_SOLD___"
|
|
|
|
|
dw "ME_A_BUNNY_HOOD."
|
|
|
|
|
dw "I_CAN_RUN_______"
|
|
|
|
|
dw "FASTER_NOW._____"
|
|
|
|
|
dw $FFFF
|
|
|
|
|
|
|
|
|
|
; ---------------------------------------------------------
|
|
|
|
|
; Other Side Quests
|
|
|
|
|
; ---------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
Entry_BeanPlanted:
|
|
|
|
|
dw "MAGIC_BEAN______"
|
|
|
|
|
dw "________________"
|
|
|
|
|
dw "I_PLANTED_A_____"
|
|
|
|
|
dw "MAGIC_BEAN._IT__"
|
|
|
|
|
dw "NEEDS_WATER_AND_"
|
|
|
|
|
dw "A_BEES_BLESSING."
|
|
|
|
|
dw $FFFF
|
|
|
|
|
|
|
|
|
|
Entry_OldManQuest:
|
|
|
|
|
dw "OLD_MAN_________"
|
|
|
|
|
dw "________________"
|
|
|
|
|
dw "AN_OLD_MAN_IS___"
|
|
|
|
|
dw "LOST_IN_THE_____"
|
|
|
|
|
dw "LAVA_LANDS._IF_I"
|
|
|
|
|
dw "ESCORT_HIM_HOME_"
|
|
|
|
|
dw "HE_MAY_REWARD___"
|
|
|
|
|
dw "ME._____________"
|
|
|
|
|
dw $FFFF
|
|
|
|
|
|
|
|
|
|
Entry_GoronQuest:
|
|
|
|
|
dw "GORON_QUEST_____"
|
|
|
|
|
dw "________________"
|
|
|
|
|
dw "THE_GORON_NEEDS_"
|
|
|
|
|
dw "5_ROCK_SIRLOINS_"
|
|
|
|
|
dw "TO_OPEN_THE_____"
|
|
|
|
|
dw "MINES._I_SHOULD_"
|
|
|
|
|
dw "SEARCH_THE______"
|
|
|
|
|
dw "MOUNTAINS.______"
|
|
|
|
|
dw $FFFF
|
|
|
|
|
|
|
|
|
|
; ---------------------------------------------------------
|
|
|
|
|
@@ -264,38 +587,29 @@ Menu_DrawJournal:
|
|
|
|
|
PHB : PHK : PLB
|
|
|
|
|
REP #$30
|
|
|
|
|
|
|
|
|
|
; Logic to choose background based on page number?
|
|
|
|
|
; For now just cycle them 1-2-3-1-2-3
|
|
|
|
|
LDA.l JournalState : AND.w #$00FF
|
|
|
|
|
CLC : ADC.b #$01 ; Make 1-based?
|
|
|
|
|
; Modulo 3?
|
|
|
|
|
; Simple:
|
|
|
|
|
; 0 -> First
|
|
|
|
|
; Last -> Last
|
|
|
|
|
; Else -> Middle
|
|
|
|
|
; Page selection logic:
|
|
|
|
|
; 0 -> First page background
|
|
|
|
|
; Last -> Last page background
|
|
|
|
|
; Else -> Middle page background
|
|
|
|
|
|
|
|
|
|
; But we don't know which is last without counting.
|
|
|
|
|
; Let's just use First for 0, Last for Last, Middle for others.
|
|
|
|
|
|
|
|
|
|
LDA.l JournalState : AND.w #$00FF : BEQ .first
|
|
|
|
|
LDA.l JournalState : AND.w #$00FF : BNE .not_first
|
|
|
|
|
; JournalState == 0, draw first page
|
|
|
|
|
JSR Journal_DrawFirstPage
|
|
|
|
|
BRA .draw_entry
|
|
|
|
|
.not_first
|
|
|
|
|
|
|
|
|
|
; Check if this is the last page
|
|
|
|
|
PHA
|
|
|
|
|
JSR Journal_CountUnlocked : DEC A : STA.b $02
|
|
|
|
|
PLA
|
|
|
|
|
CMP.b $02 : BEQ .last
|
|
|
|
|
|
|
|
|
|
BRA .middle
|
|
|
|
|
|
|
|
|
|
.first
|
|
|
|
|
JSR Journal_DrawFirstPage
|
|
|
|
|
BRA .exit
|
|
|
|
|
.last
|
|
|
|
|
CMP.b $02 : BNE .middle
|
|
|
|
|
; This is the last page
|
|
|
|
|
JSR Journal_DrawLastPage
|
|
|
|
|
BRA .exit
|
|
|
|
|
BRA .draw_entry
|
|
|
|
|
.middle
|
|
|
|
|
JSR Journal_DrawMiddlePage
|
|
|
|
|
.exit
|
|
|
|
|
|
|
|
|
|
.draw_entry
|
|
|
|
|
JSR Journal_DrawEntry
|
|
|
|
|
|
|
|
|
|
SEP #$30
|
|
|
|
|
|