custom oracle menu
This commit is contained in:
65
Menu/lw_map_names.asm
Normal file
65
Menu/lw_map_names.asm
Normal file
@@ -0,0 +1,65 @@
|
||||
OverworldLocationNames:
|
||||
dw "RANCH___________" ; 00
|
||||
dw "RANCH___________" ; 01
|
||||
dw "PYRAMID_________" ; 02
|
||||
dw "LAND_OF_TREE____" ; 03
|
||||
dw "SNOW_MOUNTAIN___" ; 04
|
||||
dw "SNOW_MOUNTAIN___" ; 05
|
||||
dw "SNOW_MOUNTAIN___" ; 06
|
||||
dw "SNOW_MOUNTAIN___" ; 07
|
||||
dw "RANCH___________" ; 08
|
||||
dw "RANCH___________" ; 09
|
||||
dw "INN_____________" ; 0A
|
||||
dw "KALYXO_CASTLE___" ; 0B
|
||||
dw "KALYXO_CASTLE___" ; 0C
|
||||
dw "POTION_SHOP_____" ; 0D
|
||||
dw "HALL_OF_SECRETS_" ; 0E
|
||||
dw "CEMETERY________" ; 0F
|
||||
dw "TOADSTOOL_WOODS_" ; 10
|
||||
dw "RANCH_PATH______" ; 11
|
||||
dw "CROSSROADS______" ; 12
|
||||
dw "KALYXO_CASTLE___" ; 13
|
||||
dw "KALYXO_CASTLE___" ; 14
|
||||
dw "MOUNTAINSIDE____" ; 15
|
||||
dw "PATH_OF_SECRETS_" ; 16
|
||||
dw "ANCIENT_SHRINE__" ; 17
|
||||
dw "TOADSTOOL_WOODS_" ; 18
|
||||
dw "TOADSTOOL_WOODS_" ; 19
|
||||
dw "CROSSROADS______" ; 1A
|
||||
dw "KALYXO_CASTLE___" ; 1B
|
||||
dw "KALYXO_ROAD_____" ; 1C
|
||||
dw "CROSSROADS______" ; 1D
|
||||
dw "SUNKEN_CITY_____" ; 1E
|
||||
dw "SUNKEN_CITY_____" ; 1F
|
||||
dw "TOADSTOOL_WOODS_" ; 20
|
||||
dw "TOADSTOOL_WOODS_" ; 21
|
||||
dw "SWORDSMITHS_____" ; 22
|
||||
dw "WAYWARD_VILLAGE_" ; 23
|
||||
dw "WAYWARD_VILLAGE_" ; 24
|
||||
dw "VILLAGE_ROAD____" ; 25
|
||||
dw "SUNKEN_CITY_____" ; 26
|
||||
dw "SUNKEN_CITY_____" ; 27
|
||||
dw "TOADSTOOL_WOODS_" ; 28
|
||||
dw "TOADSTOOL_WOODS_" ; 29
|
||||
dw "VILLAGE_ROAD____" ; 2A
|
||||
dw "WAYWARD_VILLAGE_" ; 2B
|
||||
dw "WAYWARD_VILLAGE_" ; 2C
|
||||
dw "VALLEY__________" ; 2D
|
||||
dw "CITY_ROAD_______" ; 2E
|
||||
dw "TAIL_PALACE_____" ; 2F
|
||||
dw "PHANTOM_SHIP____" ; 30
|
||||
dw "PHANTOM_SHIP____" ; 31
|
||||
dw "SECRET_BEACH____" ; 32
|
||||
dw "LOOM_BEACH______" ; 33
|
||||
dw "LOOM_BEACH______" ; 34
|
||||
dw "BEACH_PATH______" ; 35
|
||||
dw "GARO_DESERT_____" ; 36
|
||||
dw "GARO_DESERT_____" ; 37
|
||||
dw "PHANTOM_SHIP____" ; 38
|
||||
dw "PHANTOM_SHIP____" ; 39
|
||||
dw "LOST_SEA________" ; 3A
|
||||
dw "LOOM_BEACH______" ; 3B
|
||||
dw "LOOM_BEACH______" ; 3C
|
||||
dw "LOOM_WATERFALL__" ; 3D
|
||||
dw "GARO_DESERT_____" ; 3E
|
||||
dw "GARO_DESERT_____" ; 3F
|
||||
730
Menu/menu.asm
Normal file
730
Menu/menu.asm
Normal file
@@ -0,0 +1,730 @@
|
||||
;===========================================================
|
||||
; The Legend of Zelda: Oracle of Secrets
|
||||
; ------------NEW Custom Menu ------------
|
||||
;
|
||||
; Details: Complete overhaul of original LTTP menu
|
||||
; Two Pane Oot/MM inspired design
|
||||
; Original item layout and designs
|
||||
; Detailed Quest Status screen
|
||||
; Player name, location name, and death count
|
||||
;
|
||||
; Significant thanks to Kan for helping me craft this menu!
|
||||
;
|
||||
;===========================================================
|
||||
|
||||
pushpc
|
||||
org $1BD662 ; update in game hud colors
|
||||
dw hexto555($814f16), hexto555($552903)
|
||||
org $1BD66A
|
||||
dw hexto555($d51d00), hexto555($f9f9f9)
|
||||
org $1DB672
|
||||
dw hexto555($d1a452), hexto555($f9f9f9)
|
||||
org $1DB67A
|
||||
dw hexto555($5987e0), hexto555($f9f9f9)
|
||||
org $1DB682
|
||||
dw hexto555($7b7b83), hexto555($bbbbbb)
|
||||
org $1DB68A
|
||||
dw hexto555($a58100), hexto555($dfb93f)
|
||||
org $0098AB : db $D8>>1
|
||||
org $00F877 : db Menu_Entry>>0
|
||||
org $00F883 : db Menu_Entry>>8
|
||||
org $00F88F : db Menu_Entry>>16
|
||||
org $808B6B : LDX.w #$6040
|
||||
org $8DDFB2 : LDA.l Menu_ItemIndex, X
|
||||
pullpc
|
||||
|
||||
org $248000
|
||||
Menu_Tilemap:
|
||||
incbin "tilemaps/menu_frame.tilemap"
|
||||
|
||||
Menu_QuestIcons:
|
||||
incbin "tilemaps/quest_icons.tilemap"
|
||||
|
||||
incsrc "menu_gfx_table.asm"
|
||||
incsrc "menu_draw_items.asm"
|
||||
incsrc "menu_text.asm"
|
||||
|
||||
Menu_Palette:
|
||||
; 7EC502
|
||||
; first tile blank bc kan said so
|
||||
dw hexto555($814f16)
|
||||
dw hexto555($552903)
|
||||
dw hexto555($000000)
|
||||
dw hexto555($000000) ; transparent
|
||||
dw hexto555($d51d00)
|
||||
dw hexto555($f9f9f9)
|
||||
dw hexto555($000000)
|
||||
dw hexto555($000000) ; transparent
|
||||
dw hexto555($d1a452)
|
||||
dw hexto555($f9f9f9)
|
||||
dw hexto555($000000)
|
||||
dw hexto555($000000) ; transparent
|
||||
dw hexto555($5987e0)
|
||||
dw hexto555($f9f9f9)
|
||||
dw hexto555($000000)
|
||||
dw hexto555($000000) ; transparent
|
||||
dw hexto555($7b7b83)
|
||||
dw hexto555($bbbbbb)
|
||||
dw hexto555($000000)
|
||||
dw hexto555($000000) ; transparent
|
||||
dw hexto555($a58100)
|
||||
dw hexto555($dfb93f)
|
||||
dw hexto555($000000)
|
||||
dw hexto555($000000) ; transparent
|
||||
dw hexto555($814f16)
|
||||
dw hexto555($013e6e)
|
||||
dw hexto555($000000)
|
||||
dw hexto555($000000) ; transparent
|
||||
dw hexto555($15cd34)
|
||||
dw hexto555($f9f9f9)
|
||||
dw hexto555($000000)
|
||||
|
||||
Menu_Entry:
|
||||
PHB : PHK : PLB
|
||||
LDA.w $0200
|
||||
ASL
|
||||
TAX
|
||||
|
||||
JSR (.vectors,X)
|
||||
|
||||
SEP #$20
|
||||
PLB
|
||||
RTL
|
||||
|
||||
.vectors
|
||||
dw Menu_InitGraphics ; 00
|
||||
dw Menu_UploadRight ; 01
|
||||
dw Menu_UploadLeft ; 02
|
||||
dw Menu_ScrollDown ; 03
|
||||
dw Menu_ItemScreen ; 04
|
||||
dw Menu_ScrollTo ; 05
|
||||
dw Menu_StatsScreen ; 06
|
||||
dw Menu_ScrollFrom ; 07
|
||||
dw Menu_ScrollUp ; 08
|
||||
dw Menu_Exit ; 09
|
||||
|
||||
; ===================================================================================
|
||||
; 00 MENU INIT GRAPHICS
|
||||
|
||||
Menu_InitGraphics:
|
||||
{
|
||||
LDA.w $0780 : STA.w $00
|
||||
INC $0200
|
||||
}
|
||||
|
||||
; ===================================================================================
|
||||
; 01 MENU UPLOAD RIGHT
|
||||
|
||||
Menu_UploadRight:
|
||||
{
|
||||
JSR Menu_DrawBackground
|
||||
JSR Menu_DrawQuestItems
|
||||
JSR Menu_DrawCharacterName
|
||||
JSR DrawQuestIcons
|
||||
JSR DrawTriforceIcon
|
||||
JSR DrawPendantIcons
|
||||
JSR DrawDeathCounter
|
||||
JSR DrawPlaytimeLabel
|
||||
JSR DrawScrollsLabel
|
||||
|
||||
;; heart piece empty, move this later
|
||||
LDX.w #$2484 : STX.w $149E ; draw empty top left
|
||||
LDX.w #$6484 : STX.w $14A0 ; draw empty top right
|
||||
LDX.w #$2485 : STX.w $14DE ; draw empty bottom left
|
||||
LDX.w #$6485 : STX.w $14E0 ; draw empty bottom right
|
||||
|
||||
JSR DrawHeartPieces
|
||||
JSR DrawMusicNotes
|
||||
JSR Menu_DrawQuestStatus
|
||||
JSR Menu_DrawAreaNameTXT
|
||||
JSR DrawLocationName
|
||||
|
||||
SEP #$30
|
||||
LDA.b #$23 : STA.w $0116
|
||||
LDA.b #$01 : STA.b $17
|
||||
INC.w $0200
|
||||
RTS
|
||||
}
|
||||
|
||||
; ===================================================================================
|
||||
; 02 MENU UPLOAD LEFT
|
||||
|
||||
Menu_UploadLeft:
|
||||
{
|
||||
JSR Menu_DrawBackground
|
||||
JSR DrawYItems
|
||||
JSR Menu_DrawSelect
|
||||
JSR Menu_DrawItemName
|
||||
;;JSR Debug_Entry
|
||||
|
||||
; INSERT PALETTE -------
|
||||
LDX.w #$3E
|
||||
.loop
|
||||
LDA.w Menu_Palette, X
|
||||
STA.l $7EC502, X
|
||||
DEX : DEX
|
||||
BPL .loop
|
||||
|
||||
SEP #$30
|
||||
;-----------------------
|
||||
LDA.b #$22 : STA.w $0116
|
||||
LDA.b #$01 : STA.b $17 : STA.b $15 ; added for palette
|
||||
INC.w $0200
|
||||
RTS
|
||||
}
|
||||
|
||||
; ===================================================================================
|
||||
; dw 0, -5, -10, -15, -20, -25, -40, -60, -75, -90, -100, -125, -135, -150, -175, -180, -190, -200, -210, -215, -220, -225, -230, -232, -238
|
||||
; dw 0, -5, -10, -15, -20, -40, -60, -75, -90, -100, -125, -150, -175, -190, -200, -210, -220, -225, -230, -232, -250
|
||||
Menu_Scroll:
|
||||
dw 0, -3, -5, -7, -10, -12, -15, -20, -28, -40, -50, -60, -75, -90, -100, -125, -150, -175, -190, -200, -210, -220, -225, -230, -232, -234, -238
|
||||
|
||||
; ===================================================================================
|
||||
; 03 MENU SCROLL DOWN
|
||||
|
||||
Menu_ScrollDown:
|
||||
{
|
||||
LDA.b #$11 : STA.w $012F
|
||||
SEP #$10
|
||||
REP #$20
|
||||
|
||||
LDX.w MenuScrollLevelV
|
||||
INX : INX
|
||||
LDA.w Menu_Scroll, X
|
||||
STA.b $EA
|
||||
CMP.w #$FF12 : BNE .loop
|
||||
|
||||
JMP Menu_InitItemScreen
|
||||
|
||||
.loop
|
||||
STX.w MenuScrollLevelV
|
||||
RTS
|
||||
}
|
||||
|
||||
; ===================================================================================
|
||||
; 04 MENU ITEM SCREEN
|
||||
|
||||
Menu_ItemIndex:
|
||||
db $03 ; slingshot
|
||||
db $02 ; boomerang
|
||||
db $0E ; hookshot
|
||||
db $01 ; bombs
|
||||
db $11 ; deku mask
|
||||
db $0B ; bottle1
|
||||
db $05 ; firerod (nimbus)
|
||||
db $06 ; icerod
|
||||
db $09 ; lamp
|
||||
db $04 ; hammer
|
||||
db $0F ; bombos / goron
|
||||
db $4B ; bottle2
|
||||
db $12 ; somaria
|
||||
db $0D ; byrna
|
||||
db $0C ; book
|
||||
db $07 ; feather
|
||||
db $10 ; bunny hood
|
||||
db $8B ; bottle3
|
||||
db $08 ; ocarina
|
||||
db $14 ; mirror
|
||||
db $0B ; shovel
|
||||
db $0A ; powder
|
||||
db $13 ; stone mask
|
||||
db $CB ; bottle4
|
||||
|
||||
Menu_AddressIndex:
|
||||
db $7EF340 ; bow
|
||||
db $7EF341 ; boom
|
||||
db $7EF342 ; hookshot
|
||||
db $7EF343 ; bombs
|
||||
db $7EF348 ; deku mask
|
||||
db $7EF35C ; bottle1
|
||||
db $7EF345 ; firerod (nimbus)
|
||||
db $7EF346 ; icerod
|
||||
db $7EF34A ; lamp
|
||||
db $7EF34B ; hammer
|
||||
db $7EF347 ; bombos / goron
|
||||
db $7EF35D ; bottle2
|
||||
db $7EF350 ; somaria
|
||||
db $7EF351 ; byrna
|
||||
db $7EF34E ; book
|
||||
db $7EF34D ; feather
|
||||
db $7EF349 ; bunny hood
|
||||
db $7EF35E ; bottle3
|
||||
db $7EF34C ; ocarina
|
||||
db $7EF353 ; mirror
|
||||
db $7EF34F ; shovel
|
||||
db $7EF344 ; powder
|
||||
db $7EF352 ; stone mask
|
||||
db $7EF35F ; bottle4
|
||||
|
||||
Menu_ItemCursorPositions:
|
||||
dw menu_offset(6,1) ; bow
|
||||
dw menu_offset(6,4) ; boom
|
||||
dw menu_offset(6,7) ; hookshot
|
||||
dw menu_offset(6,10) ; bombs
|
||||
dw menu_offset(6,13) ; deku mask
|
||||
dw menu_offset(6,16) ; bottle1
|
||||
dw menu_offset(9,1) ; firerod
|
||||
dw menu_offset(9,4) ; icerod
|
||||
dw menu_offset(9,7) ; lamp
|
||||
dw menu_offset(9,10) ; hammer
|
||||
dw menu_offset(9,13) ; goron
|
||||
dw menu_offset(9,16) ; bottle2
|
||||
dw menu_offset(12,1) ; somaria
|
||||
dw menu_offset(12,4) ; byrna
|
||||
dw menu_offset(12,7) ; book
|
||||
dw menu_offset(12,10) ; feather
|
||||
dw menu_offset(12,13) ; bunny hood
|
||||
dw menu_offset(12,16) ; bottle3
|
||||
dw menu_offset(15,1) ; flute
|
||||
dw menu_offset(15,4) ; mirror
|
||||
dw menu_offset(15,7) ; shovel
|
||||
dw menu_offset(15,10) ; powder
|
||||
dw menu_offset(15,13) ; stone mask
|
||||
dw menu_offset(15,16) ; bottle
|
||||
|
||||
; ----------------------
|
||||
Menu_FindNextItem:
|
||||
LDY.w $0202 : INY
|
||||
CPY.b #$19 : BCC .no_reset
|
||||
LDY.b #$01
|
||||
.no_reset
|
||||
STY.w $0202
|
||||
LDX.w Menu_AddressIndex-1, Y
|
||||
LDA.l $7EF300, X
|
||||
BEQ Menu_FindNextItem
|
||||
RTS
|
||||
; ----------------------
|
||||
Menu_FindPrevItem:
|
||||
LDY.w $0202 : DEY : BNE .no_reset
|
||||
LDY.b #$18
|
||||
.no_reset
|
||||
STY.w $0202
|
||||
LDX.w Menu_AddressIndex-1, Y
|
||||
LDA.l $7EF300, X
|
||||
BEQ Menu_FindPrevItem
|
||||
RTS
|
||||
; ----------------------
|
||||
Menu_FindNextDownItem:
|
||||
LDA.w $0202 : CLC : ADC.b #$06
|
||||
CMP.b #$19 : BCC .no_reset
|
||||
SBC.b #$18
|
||||
.no_reset
|
||||
TAY : STY.w $0202
|
||||
LDX.w Menu_AddressIndex-1, Y
|
||||
LDA.l $7EF300, X
|
||||
BEQ Menu_FindNextUpItem
|
||||
RTS
|
||||
; ----------------------
|
||||
Menu_FindNextUpItem:
|
||||
LDA.w $0202 : SEC : SBC.b #$06
|
||||
BPL .no_reset : BNE .no_reset
|
||||
CLC : ADC.b #$18
|
||||
.no_reset
|
||||
TAY : STY.w $0202
|
||||
LDX.w Menu_AddressIndex-1, Y
|
||||
LDA.l $7EF300, X
|
||||
BEQ Menu_FindNextDownItem
|
||||
RTS
|
||||
; ----------------------
|
||||
Menu_DeleteCursor:
|
||||
REP #$30
|
||||
LDX.w Menu_ItemCursorPositions-2, Y
|
||||
|
||||
LDA.w #$20F5
|
||||
STA.w $1108, X
|
||||
STA.w $1148, X
|
||||
STA.w $114E, X
|
||||
STA.w $110E, X
|
||||
STA.w $11C8, X
|
||||
STA.w $1188, X
|
||||
STA.w $118E, X
|
||||
STA.w $11CE, X
|
||||
SEP #$30
|
||||
STZ $0207
|
||||
RTS
|
||||
; ----------------------
|
||||
Menu_InitItemScreen:
|
||||
{
|
||||
SEP #$30
|
||||
LDY.w $0202 : BNE .all_good
|
||||
|
||||
.loop
|
||||
INY : CPY.b #$25 : BCS .bad
|
||||
LDX.w Menu_AddressIndex-1, Y
|
||||
LDA.l $7EF300, X
|
||||
BEQ .loop
|
||||
|
||||
STY.w $0202
|
||||
BRA .all_good
|
||||
|
||||
.bad
|
||||
STZ.w $0202
|
||||
|
||||
.all_good
|
||||
|
||||
STZ $0207
|
||||
LDA.b #$04
|
||||
STA.w $0200
|
||||
RTS
|
||||
}
|
||||
; ----------------------
|
||||
Menu_ItemScreen:
|
||||
{
|
||||
JSR Menu_CheckHScroll
|
||||
|
||||
INC $0207
|
||||
LDA.w $0202 : BEQ .no_inputs
|
||||
|
||||
ASL : TAY
|
||||
LDA.b $F4
|
||||
LSR : BCS .move_right
|
||||
LSR : BCS .move_left
|
||||
LSR : BCS .move_down
|
||||
LSR : BCS .move_up
|
||||
BRA .no_inputs
|
||||
|
||||
.move_right
|
||||
JSR Menu_DeleteCursor
|
||||
JSR Menu_FindNextItem
|
||||
BRA .draw_cursor
|
||||
|
||||
.move_left
|
||||
JSR Menu_DeleteCursor
|
||||
JSR Menu_FindPrevItem
|
||||
BRA .draw_cursor
|
||||
|
||||
.move_down
|
||||
JSR Menu_DeleteCursor
|
||||
JSR Menu_FindNextDownItem
|
||||
BRA .draw_cursor
|
||||
|
||||
.move_up
|
||||
JSR Menu_DeleteCursor
|
||||
JSR Menu_FindNextUpItem
|
||||
BRA .draw_cursor
|
||||
|
||||
.draw_cursor
|
||||
LDA.b #$20 : STA.w $012F ; cursor move sound effect
|
||||
.no_inputs
|
||||
|
||||
SEP #$30
|
||||
LDA.w $0202
|
||||
ASL : TAY
|
||||
REP #$10
|
||||
LDX.w Menu_ItemCursorPositions-2, Y
|
||||
|
||||
LDA.b #$20 : BIT.w $0207
|
||||
|
||||
REP #$20
|
||||
|
||||
BEQ .no_delete
|
||||
|
||||
LDA.w #$20F5
|
||||
STA.w $1108, X
|
||||
STA.w $1148, X
|
||||
STA.w $114E, X
|
||||
STA.w $110E, X
|
||||
STA.w $11C8, X
|
||||
STA.w $1188, X
|
||||
STA.w $118E, X
|
||||
STA.w $11CE, X
|
||||
BRA .done
|
||||
|
||||
|
||||
.no_delete
|
||||
LDA.w #$3060 : STA.w $1108, X ; corner
|
||||
LDA.w #$3070 : STA.w $1148, X
|
||||
|
||||
LDA.w #$7060 : STA.w $110E, X ; corner
|
||||
LDA.w #$7070 : STA.w $114E, X
|
||||
|
||||
LDA.w #$3070 : STA.w $1188, X
|
||||
LDA.w #$B060 : STA.w $11C8, X ; corner
|
||||
|
||||
LDA.w #$7070 : STA.w $118E, X
|
||||
LDA.w #$F060 : STA.w $11CE, X ; corner
|
||||
|
||||
.done
|
||||
JSR Menu_DrawItemName
|
||||
SEP #$20
|
||||
LDA.b #$22 : STA.w $0116
|
||||
LDA.b #$01 : STA.b $17
|
||||
|
||||
RTS
|
||||
}
|
||||
|
||||
; ===================================================================================
|
||||
; 05 MENU SCROLL TO
|
||||
|
||||
Menu_ScrollTo:
|
||||
{
|
||||
SEP #$20
|
||||
JSR Menu_ScrollHorizontal
|
||||
BCC .not_done
|
||||
|
||||
INC.w $0200
|
||||
|
||||
.not_done
|
||||
RTS
|
||||
}
|
||||
|
||||
; ===================================================================================
|
||||
; 06 MENU STATS SCREEN
|
||||
|
||||
Menu_StatsScreen:
|
||||
{
|
||||
JSR Menu_CheckHScroll
|
||||
RTS
|
||||
}
|
||||
|
||||
; =====================================
|
||||
|
||||
Menu_CheckHScroll:
|
||||
{
|
||||
LDA.b $F4
|
||||
BIT.b #$10 : BNE .leave_menu
|
||||
LDA.b $F6
|
||||
BIT.b #$20 : BNE .left
|
||||
BIT.b #$10 : BNE .right
|
||||
|
||||
RTS
|
||||
|
||||
.left
|
||||
REP #$20
|
||||
LDA.w #$FFF8
|
||||
BRA .merge
|
||||
|
||||
.right
|
||||
REP #$20
|
||||
LDA.w #$0008
|
||||
|
||||
.merge
|
||||
STA.w MenuScrollHDirection
|
||||
|
||||
SEP #$30
|
||||
INC.w $0200
|
||||
LDA.b #$06 : STA.w $012F
|
||||
RTS
|
||||
|
||||
.leave_menu
|
||||
LDA.b #$08
|
||||
STA.w $0200
|
||||
RTS
|
||||
}
|
||||
|
||||
; =====================================
|
||||
|
||||
Menu_ScrollHorizontal:
|
||||
{
|
||||
REP #$21 ; set A to 16 bit, clear carry flag
|
||||
|
||||
LDA.w $E4 ; BG3 Horizontal Scroll Value
|
||||
ADC.w MenuScrollHDirection ; Direction set by Menu_CheckHScroll
|
||||
AND.w #$01FF
|
||||
STA.b $E4
|
||||
AND.w #$00FF
|
||||
BNE .loop
|
||||
|
||||
SEC
|
||||
RTS
|
||||
|
||||
.loop
|
||||
CLC
|
||||
RTS
|
||||
}
|
||||
|
||||
; ===================================================================================
|
||||
; 07 MENU SCROLL FROM
|
||||
|
||||
Menu_ScrollFrom:
|
||||
{
|
||||
JSR Menu_ScrollHorizontal
|
||||
BCC .not_done
|
||||
|
||||
JMP Menu_InitItemScreen
|
||||
|
||||
.not_done
|
||||
RTS
|
||||
}
|
||||
|
||||
; ===================================================================================
|
||||
; 08 MENU SCROLL UP
|
||||
|
||||
Menu_ScrollUp:
|
||||
{
|
||||
LDA.b #$12 : STA.w $012F ; play menu exit sound effect
|
||||
SEP #$10
|
||||
REP #$20
|
||||
|
||||
LDX.w MenuScrollLevelV
|
||||
LDA.w Menu_Scroll, X
|
||||
STA.b $EA
|
||||
BNE .loop
|
||||
STZ.b $E4
|
||||
|
||||
INC.w $0200
|
||||
RTS
|
||||
|
||||
.loop
|
||||
DEX : DEX : STX.w MenuScrollLevelV
|
||||
|
||||
JSL Menu_UpdateHudItem
|
||||
RTS
|
||||
}
|
||||
|
||||
; ===================================================================================
|
||||
; incomplete :(
|
||||
Menu_CheckBottle:
|
||||
{
|
||||
;; 7F5021 7ED101
|
||||
STZ.w $7F5021
|
||||
LDA.w $0202 : CMP.b #$15 : BNE .not_shovel
|
||||
LDA.b #$0001 : STA.w $7F5021
|
||||
|
||||
.not_shovel
|
||||
|
||||
LDA.w $0202 : CMP.b #$19 : BNE .not_flute
|
||||
LDA.w $7EF34C : JML $70A31D
|
||||
|
||||
.not_flute
|
||||
|
||||
RTS
|
||||
}
|
||||
|
||||
; ===================================================================================
|
||||
; 09 MENU EXIT
|
||||
|
||||
Menu_Exit:
|
||||
{
|
||||
;set $0303 by using $0202 to index table on exit
|
||||
JSR Menu_CheckBottle
|
||||
LDY.w $0202 : BEQ .no_item
|
||||
DEY
|
||||
LDA.w Menu_ItemIndex, Y
|
||||
STA.w $0303
|
||||
|
||||
.no_item
|
||||
REP #$20
|
||||
STZ $0200
|
||||
;;STZ $11
|
||||
LDA.w $010C
|
||||
STA.b $10
|
||||
|
||||
LDX.b #$3E
|
||||
.loop
|
||||
|
||||
LDA.l $7EC300, X : STA.l $7EC500, X
|
||||
DEX : DEX
|
||||
BPL .loop
|
||||
|
||||
INC.b $15
|
||||
INC.b $16
|
||||
|
||||
RTS
|
||||
}
|
||||
; ===================================================================================
|
||||
; XX MENU HIJACK HUD
|
||||
|
||||
HudItems:
|
||||
dw BowsGFX
|
||||
dw BoomsGFX
|
||||
dw HookGFX
|
||||
dw BombsGFX
|
||||
dw DekuMaskGFX
|
||||
dw BottlesGFX
|
||||
dw Fire_rodGFX
|
||||
dw Ice_rodGFX
|
||||
dw LampGFX
|
||||
dw HammerGFX
|
||||
dw GoronMaskGFX
|
||||
dw BottlesGFX
|
||||
dw SomariaGFX
|
||||
dw ByrnaGFX
|
||||
dw BookGFX
|
||||
dw JumpFeatherGFX
|
||||
dw BunnyHoodGFX
|
||||
dw BottlesGFX
|
||||
dw OcarinaGFX
|
||||
dw MirrorGFX
|
||||
dw ShovelGFX
|
||||
dw PowderGFX
|
||||
dw StoneMaskGFX
|
||||
dw BottlesGFX
|
||||
|
||||
; LDA.w $0202
|
||||
; ASL : TAX
|
||||
; LDY.w HudItems-2, X
|
||||
|
||||
Menu_UpdateHudItem:
|
||||
{
|
||||
PHB
|
||||
PHK
|
||||
PLB
|
||||
; print pc
|
||||
; SEP #$30
|
||||
; LDA.b #$7E : STA.b $0C ; set the indirect bank
|
||||
; REP #$30
|
||||
|
||||
; LDA.w $0202
|
||||
; ASL : TAX
|
||||
; LDY.w HudItems-2, X
|
||||
; STY.b $00
|
||||
|
||||
; LDY.w $0202
|
||||
; LDX.w Menu_AddressIndex-1, Y
|
||||
; LDA.l $7EF300, X
|
||||
; STA.w $08
|
||||
|
||||
; LDA.b [$08]
|
||||
; ADC.b $00
|
||||
; TAY
|
||||
|
||||
REP #$30
|
||||
LDA.w $0202
|
||||
ASL : TAX
|
||||
LDY.w HudItems-2, X
|
||||
|
||||
LDA.w $0000,Y : STA.l $7EC778
|
||||
LDA.w $0002,Y : STA.l $7EC77A
|
||||
LDA.w $0004,Y : STA.l $7EC7B8
|
||||
LDA.w $0006,Y : STA.l $7EC7BA
|
||||
SEP #$30
|
||||
|
||||
PLB
|
||||
RTL
|
||||
}
|
||||
|
||||
; ===================================================================================
|
||||
|
||||
Menu_DrawBackground:
|
||||
{
|
||||
REP #$30
|
||||
LDX.w #$FE ; $1700-17FF
|
||||
|
||||
.loop
|
||||
LDA.w Menu_Tilemap, X
|
||||
STA.w $1000, X
|
||||
LDA.w Menu_Tilemap+$100, X
|
||||
STA.w $1100, X
|
||||
LDA.w Menu_Tilemap+$200, X
|
||||
STA.w $1200, X
|
||||
LDA.w Menu_Tilemap+$300, X
|
||||
STA.w $1300, X
|
||||
LDA.w Menu_Tilemap+$400, X
|
||||
STA.w $1400, X
|
||||
LDA.w Menu_Tilemap+$500, X
|
||||
STA.w $1500, X
|
||||
LDA.w Menu_Tilemap+$600, X
|
||||
STA.w $1600, X
|
||||
LDA.w Menu_Tilemap+$700, X
|
||||
STA.w $1700, X
|
||||
|
||||
DEX : DEX
|
||||
BPL .loop
|
||||
|
||||
RTS
|
||||
}
|
||||
|
||||
;===============================================================================
|
||||
|
||||
incsrc "lw_map_names.asm"
|
||||
363
Menu/menu_draw_items.asm
Normal file
363
Menu/menu_draw_items.asm
Normal file
@@ -0,0 +1,363 @@
|
||||
;===============================================================================
|
||||
|
||||
DrawMenuItem:
|
||||
STA.b $08
|
||||
STY.b $00
|
||||
|
||||
LDA.b [$08]
|
||||
AND.w #$00FF
|
||||
|
||||
BNE .not_zero
|
||||
|
||||
LDY.w #NothingGFX
|
||||
BRA .draw
|
||||
|
||||
.not_zero
|
||||
DEC
|
||||
|
||||
ASL
|
||||
ASL
|
||||
ASL
|
||||
ADC.b $00
|
||||
TAY
|
||||
|
||||
.draw
|
||||
LDA.w $0000,Y : STA.w $1108,X
|
||||
LDA.w $0002,Y : STA.w $110A,X
|
||||
LDA.w $0004,Y : STA.w $1148,X
|
||||
LDA.w $0006,Y : STA.w $114A,X
|
||||
|
||||
RTS
|
||||
|
||||
;===============================================================================
|
||||
|
||||
DrawQuestIcons:
|
||||
LDX.w #$10
|
||||
|
||||
.loop
|
||||
LDA.w Menu_QuestIcons, X
|
||||
STA.w $1364, X
|
||||
LDA.w Menu_QuestIcons+$10, X
|
||||
STA.w $13A4, X
|
||||
LDA.w Menu_QuestIcons+$20, X
|
||||
STA.w $13E4, X
|
||||
LDA.w Menu_QuestIcons+$30, X
|
||||
STA.w $1424, X
|
||||
LDA.w Menu_QuestIcons+$40, X
|
||||
STA.w $1464, X
|
||||
LDA.w Menu_QuestIcons+$50, X
|
||||
STA.w $14A4, X
|
||||
LDA.w Menu_QuestIcons+$60, X
|
||||
STA.w $14E4, X
|
||||
DEX : DEX : BPL .loop
|
||||
|
||||
LDA.w #$20F5 : STA.w $13B4 : STA.w $13F4 : STA.w $1474 : STA.w $14B4
|
||||
|
||||
RTS
|
||||
|
||||
;===============================================================================
|
||||
|
||||
DrawTriforceIcon:
|
||||
LDA.l $7EF37A
|
||||
LDX.w #$3534
|
||||
LDY.w #$3544
|
||||
|
||||
LSR : BCC +
|
||||
STX.w $1366 : INX : STX.w $1368 : DEX
|
||||
STY.w $13A6 : INY : STY.w $13A8 : DEY
|
||||
|
||||
+ LSR : BCC +
|
||||
STX.w $136A : INX : STX.w $136C : DEX
|
||||
STY.w $13AA : INY : STY.w $13AC : DEY
|
||||
|
||||
+ LSR : BCC +
|
||||
STX.w $136E : INX : STX.w $1370 : DEX
|
||||
STY.w $13AE : INY : STY.w $13B0 : DEY
|
||||
|
||||
+ LSR : BCC +
|
||||
STX.w $13E4 : INX : STX.w $13E6 : DEX
|
||||
STY.w $1424 : INY : STY.w $1426 : DEY
|
||||
|
||||
+ LSR : BCC +
|
||||
STX.w $13E8 : INX : STX.w $13EA : DEX
|
||||
STY.w $1428 : INY : STY.w $142A : DEY
|
||||
|
||||
+ LSR : BCC +
|
||||
STX.w $13EC : INX : STX.w $13EE : DEX
|
||||
STY.w $142C : INY : STY.w $142E : DEY
|
||||
|
||||
+ LSR : BCC +
|
||||
STX.w $13F0 : INX : STX.w $13F2 : DEX
|
||||
STY.w $1430 : INY : STY.w $1432 : DEY
|
||||
|
||||
+
|
||||
RTS
|
||||
|
||||
;===============================================================================
|
||||
|
||||
DrawPendantIcons:
|
||||
LDA.l $7EF374
|
||||
LSR : BCC +
|
||||
LDX.w #$2502 : STX.w $14A4 : INX : STX.w $14A6
|
||||
LDX.w #$2512 : STX.w $14E4 : INX : STX.w $14E6
|
||||
|
||||
+ LSR : BCC +
|
||||
LDX.w #$3D00 : STX.w $14AA : INX : STX.w $14AC
|
||||
LDX.w #$3D10 : STX.w $14EA : INX : STX.w $14EC
|
||||
|
||||
+ LSR : BCC +
|
||||
LDX.w #$2D06 : STX.w $14B0 : INX : STX.w $14B2
|
||||
LDX.w #$2D16 : STX.w $14F0 : INX : STX.w $14F2
|
||||
|
||||
+ RTS
|
||||
|
||||
;===============================================================================
|
||||
|
||||
; V H O P P P T T T T T T T T T T <- tile format
|
||||
; V = Vertical Flip
|
||||
; H = Horizontal Flip
|
||||
; O = Priority
|
||||
; P = Palette 0 to 7
|
||||
; T = Tile (which is normally called C for Character) 0 to 1023
|
||||
; E000 is T = 0
|
||||
; E100 would be T = 16
|
||||
|
||||
DrawHeartPieces:
|
||||
LDA.l $7EF36B
|
||||
AND.w #$00FF
|
||||
CMP.w #3 : BEQ .top_right
|
||||
CMP.w #1 : BEQ .top_left
|
||||
BCS .bottom_left
|
||||
RTS
|
||||
|
||||
.top_right
|
||||
LDX.w #$64AD : STX.w $14A0
|
||||
.bottom_left
|
||||
LDX.w #$24AE : STX.w $14DE
|
||||
.top_left
|
||||
LDX.w #$24AD : STX.w $149E
|
||||
RTS
|
||||
|
||||
;===============================================================================
|
||||
|
||||
DrawMusicNotes:
|
||||
LDA.w #$01
|
||||
STA.w MusicNoteValue
|
||||
LDA.w #MusicNoteValue
|
||||
LDX.w #menu_offset(17,8)
|
||||
LDY.w #QuarterNoteGFX
|
||||
JSR DrawMenuItem
|
||||
|
||||
LDA.w #$02
|
||||
STA.w MusicNoteValue
|
||||
LDA.w #MusicNoteValue
|
||||
LDX.w #menu_offset(17,11)
|
||||
LDY.w #QuarterNoteGFX
|
||||
JSR DrawMenuItem
|
||||
|
||||
LDA.w #$03
|
||||
STA.w MusicNoteValue
|
||||
LDA.w #MusicNoteValue
|
||||
LDX.w #menu_offset(17,14)
|
||||
LDY.w #QuarterNoteGFX
|
||||
JSR DrawMenuItem
|
||||
|
||||
LDA.w #$04
|
||||
STA.w MusicNoteValue
|
||||
LDA.w #MusicNoteValue
|
||||
LDX.w #menu_offset(17,17)
|
||||
LDY.w #QuarterNoteGFX
|
||||
JSR DrawMenuItem
|
||||
|
||||
RTS
|
||||
|
||||
;===============================================================================
|
||||
|
||||
DrawYItems:
|
||||
; Set up the bank of our indirect address
|
||||
SEP #$30
|
||||
LDA.b #$7E : STA.b $0A
|
||||
|
||||
REP #$30
|
||||
|
||||
LDA.w #$7EF340
|
||||
LDX.w #menu_offset(7,2)
|
||||
LDY.w #BowsGFX
|
||||
JSR DrawMenuItem
|
||||
|
||||
LDA.w #$7EF341
|
||||
LDX.w #menu_offset(7,5)
|
||||
LDY.w #BoomsGFX
|
||||
JSR DrawMenuItem
|
||||
|
||||
LDA.w #$7EF342
|
||||
LDX.w #menu_offset(7,8)
|
||||
LDY.w #HookGFX
|
||||
JSR DrawMenuItem
|
||||
|
||||
LDA.l $7EF343
|
||||
CMP.w #$00 : BEQ .no_bomb
|
||||
LDA.w #$0001
|
||||
STA.w MenuItemValueSpoof
|
||||
LDA.w #MenuItemValueSpoof
|
||||
LDX.w #menu_offset(7,11)
|
||||
LDY.w #BombsGFX
|
||||
JSR DrawMenuItem
|
||||
.no_bomb
|
||||
|
||||
LDA.w #$7EF348
|
||||
LDX.w #menu_offset(7,14)
|
||||
LDY.w #DekuMaskGFX
|
||||
JSR DrawMenuItem
|
||||
|
||||
LDA.w #$7EF35C
|
||||
LDX.w #menu_offset(7,17)
|
||||
LDY.w #BottlesGFX
|
||||
JSR DrawMenuItem
|
||||
|
||||
LDA.w #$7EF354
|
||||
LDX.w #menu_offset(10,20)
|
||||
LDY.w #PowerGloveGFX
|
||||
JSR DrawMenuItem
|
||||
|
||||
LDA.w #$7EF345
|
||||
LDX.w #menu_offset(10,2)
|
||||
LDY.w #Fire_rodGFX
|
||||
JSR DrawMenuItem
|
||||
|
||||
LDA.w #$7EF346
|
||||
LDX.w #menu_offset(10,5)
|
||||
LDY.w #Ice_rodGFX
|
||||
JSR DrawMenuItem
|
||||
|
||||
LDA.l $7EF34A
|
||||
CMP.w #$00 : BEQ .no_lamp
|
||||
DEC
|
||||
.no_lamp
|
||||
STA.w MenuItemValueSpoof
|
||||
LDA.w #MenuItemValueSpoof
|
||||
LDX.w #menu_offset(10,8)
|
||||
LDY.w #LampGFX
|
||||
JSR DrawMenuItem
|
||||
|
||||
LDA.w #$7EF34B
|
||||
LDX.w #menu_offset(10,11)
|
||||
LDY.w #HammerGFX
|
||||
JSR DrawMenuItem
|
||||
|
||||
LDA.w #$7EF347
|
||||
LDX.w #menu_offset(10,14)
|
||||
LDY.w #GoronMaskGFX
|
||||
JSR DrawMenuItem
|
||||
|
||||
LDA.w #$7EF35D
|
||||
LDX.w #menu_offset(10,17)
|
||||
LDY.w #BottlesGFX
|
||||
JSR DrawMenuItem
|
||||
|
||||
LDA.w #$7EF355
|
||||
LDX.w #menu_offset(12,20)
|
||||
LDY.w #PegasusBootsGFX
|
||||
JSR DrawMenuItem
|
||||
|
||||
LDA.w #$7EF350
|
||||
LDX.w #menu_offset(13,2)
|
||||
LDY.w #SomariaGFX
|
||||
JSR DrawMenuItem
|
||||
|
||||
LDA.w #$7EF351
|
||||
LDX.w #menu_offset(13,5)
|
||||
LDY.w #ByrnaGFX
|
||||
JSR DrawMenuItem
|
||||
|
||||
; LDA.w #$7EF34C
|
||||
; LDX.w #menu_offset(13,8)
|
||||
; LDY.w #ShovelGFX
|
||||
; JSR DrawMenuItem
|
||||
|
||||
LDA.w #$7EF34E
|
||||
LDX.w #menu_offset(13,8)
|
||||
LDY.w #BookGFX
|
||||
JSR DrawMenuItem
|
||||
|
||||
LDA.w #$7EF34D
|
||||
LDX.w #menu_offset(13,11)
|
||||
LDY.w #JumpFeatherGFX
|
||||
JSR DrawMenuItem
|
||||
|
||||
LDA.w #$7EF349
|
||||
LDX.w #menu_offset(13,14)
|
||||
LDY.w #BunnyHoodGFX
|
||||
JSR DrawMenuItem
|
||||
|
||||
LDA.w #$7EF35E
|
||||
LDX.w #menu_offset(13,17)
|
||||
LDY.w #BottlesGFX
|
||||
JSR DrawMenuItem
|
||||
|
||||
LDA.w #$7EF356
|
||||
LDX.w #menu_offset(14,20)
|
||||
LDY.w #FlippersGFX
|
||||
JSR DrawMenuItem
|
||||
|
||||
LDA.w #$7EF34C ; ocarina
|
||||
LDX.w #menu_offset(16,2)
|
||||
LDY.w #ShovelGFX
|
||||
JSR DrawMenuItem
|
||||
|
||||
LDA.w #$7EF353
|
||||
LDX.w #menu_offset(16,5)
|
||||
LDY.w #MirrorGFX
|
||||
JSR DrawMenuItem
|
||||
|
||||
LDA.w #$7EF34F
|
||||
LDX.w #menu_offset(16,8)
|
||||
LDY.w #ShovelGFX
|
||||
JSR DrawMenuItem
|
||||
|
||||
LDA.w #$7EF344
|
||||
LDX.w #menu_offset(16,11)
|
||||
LDY.w #PowderGFX
|
||||
JSR DrawMenuItem
|
||||
|
||||
LDA.w #$7EF352
|
||||
LDX.w #menu_offset(16,14)
|
||||
LDY.w #StoneMaskGFX
|
||||
JSR DrawMenuItem
|
||||
|
||||
LDA.w #$7EF35F
|
||||
LDX.w #menu_offset(16,17)
|
||||
LDY.w #BottlesGFX
|
||||
JSR DrawMenuItem
|
||||
|
||||
LDA.w #$7EF357
|
||||
LDX.w #menu_offset(16,20)
|
||||
LDY.w #MoonPearlGFX
|
||||
JSR DrawMenuItem
|
||||
|
||||
RTS
|
||||
|
||||
Menu_DrawQuestItems:
|
||||
SEP #$30
|
||||
LDA.b #$7E : STA.b $0A
|
||||
REP #$30
|
||||
|
||||
LDA.w #$7EF359
|
||||
LDX.w #menu_offset(14,2)
|
||||
LDY.w #SwordGFX
|
||||
JSR DrawMenuItem
|
||||
|
||||
LDA.w #$7EF35A
|
||||
LDX.w #menu_offset(14,5)
|
||||
LDY.w #ShieldGFX
|
||||
JSR DrawMenuItem
|
||||
|
||||
LDA.l $7EF35B
|
||||
INC
|
||||
STA.w MenuItemValueSpoof
|
||||
LDA.w #MenuItemValueSpoof
|
||||
LDX.w #menu_offset(14,8)
|
||||
LDY.w #TunicGFX
|
||||
JSR DrawMenuItem
|
||||
|
||||
RTS
|
||||
156
Menu/menu_gfx_table.asm
Normal file
156
Menu/menu_gfx_table.asm
Normal file
@@ -0,0 +1,156 @@
|
||||
;===============================================================================
|
||||
; Item graphics
|
||||
; Lack of an item will be handled by the "NothingGFX" data
|
||||
; Everything else will be used as follows:
|
||||
; dw top left, top right, bottom left, bottom right ; val = 1
|
||||
; dw top left, top right, bottom left, bottom right ; val = 2
|
||||
; etc
|
||||
;===============================================================================
|
||||
|
||||
NothingGFX:
|
||||
dw $20F5, $20F5, $20F5, $20F5 ; Nothing
|
||||
|
||||
BowsGFX:
|
||||
dw $28BA, $28E9, $28E8, $28CB ; Empty bow
|
||||
dw $297C, $297D, $2849, $284A ; NEW slingshot
|
||||
dw $28BA, $284A, $2849, $28CB ; Bow and arrows
|
||||
dw $28BA, $28E9, $28E8, $28CB ; Empty silvers bow
|
||||
dw $28BA, $28BB, $24CA, $28CB ; Silver bow and arrows
|
||||
|
||||
BoomsGFX:
|
||||
dw $2CB8, $2CB9, $2CC9, $ACB9 ; NEW Blue boomerang
|
||||
dw $24B8, $24B9, $24C9, $A4B9 ; NEW red boomerang
|
||||
dw $3CB8, $3CB9, $3CC9, $BCB9 ; NEW green boomerang
|
||||
|
||||
HookGFX:
|
||||
dw $24F5, $24F6, $24C0, $24F5 ; Hookshot
|
||||
dw $2C17, $3531, $2D40, $3541 ; Ball & Chain
|
||||
|
||||
BombsGFX:
|
||||
dw $2CB2, $2CB3, $2CC2, $6CC2 ; Bombs
|
||||
|
||||
PowderGFX:
|
||||
dw $2444, $2445, $2446, $2447 ; Mushroom
|
||||
dw $283B, $283C, $283D, $283E ; NEW Powder
|
||||
|
||||
Fire_rodGFX:
|
||||
dw $24B0, $24B1, $24C0, $24C1 ; Fire rod
|
||||
|
||||
Ice_rodGFX:
|
||||
dw $2CB0, $2CBE, $2CC0, $2CC1 ; Ice rod
|
||||
|
||||
; formerly Bombos
|
||||
GoronMaskGFX:
|
||||
dw $2867, $6867, $2877, $6877 ; Goron Mask
|
||||
|
||||
; formerly Quake
|
||||
DekuMaskGFX:
|
||||
dw $2066, $6066, $2076, $6076 ; Deku Mask
|
||||
|
||||
; formerly Ether
|
||||
BunnyHoodGFX:
|
||||
dw $3469, $7469, $3479, $7479 ; Bunny Hood
|
||||
|
||||
LampGFX:
|
||||
dw $24BC, $24BD, $24CC, $64CC ; New Lamp
|
||||
|
||||
HammerGFX:
|
||||
dw $24B6, $24B7, $20C6, $24C7 ; NEW Hammer
|
||||
|
||||
ShovelGFX:
|
||||
dw $30D0, $20D1, $30E0, $30E1 ; NEW Shovel
|
||||
dw $2CD4, $2CD5, $2CE4, $2CE5 ; Flute
|
||||
dw $2CD4, $2CD5, $2CE4, $2CE5 ; Flute (active)
|
||||
|
||||
OcarinaGFX:
|
||||
dw $2CD4, $2CD5, $2CE4, $2CE5 ; Flute
|
||||
|
||||
; formerly fishing net
|
||||
JumpFeatherGFX:
|
||||
dw $2840, $2841, $3C42, $3C43 ; Roc's Feather
|
||||
|
||||
BookGFX:
|
||||
dw $3CA5, $3CA6, $3CD8, $3CD9 ; Book of Mudora
|
||||
|
||||
BottlesGFX:
|
||||
dw $2044, $2045, $2046, $2047 ; Mushroom
|
||||
dw $2837, $2838, $2CC3, $2CD3 ; Empty bottle
|
||||
dw $24D2, $64D2, $24E2, $24E3 ; Red potion
|
||||
dw $3CD2, $7CD2, $3CE2, $3CE3 ; Green potion
|
||||
dw $2CD2, $6CD2, $2CE2, $2CE3 ; Blue potion
|
||||
dw $2855, $6855, $2C57, $2C5A ; Fairy
|
||||
dw $2837, $2838, $2839, $283A ; Bee
|
||||
dw $2837, $2838, $2839, $283A ; Good bee
|
||||
|
||||
SomariaGFX:
|
||||
dw $24DC, $24DD, $24EC, $24ED ; Cane of Somaria
|
||||
|
||||
ByrnaGFX:
|
||||
dw $2CDC, $2CDD, $2CEC, $2CED ; Cane of Byrna
|
||||
|
||||
; formerly Magic Cape
|
||||
StoneMaskGFX:
|
||||
dw $30B4, $30B5, $30C4, $30C5 ; Stone Mask
|
||||
|
||||
MirrorGFX:
|
||||
dw $2C72, $2C73, $2C62, $2C63 ; Mirror
|
||||
dw $2C62, $2C63, $2C72, $2C73 ; Mirror
|
||||
|
||||
; Collectibles
|
||||
|
||||
QuarterNoteGFX:
|
||||
dw $30AA, $306B, $307A, $306A ; Gray Note
|
||||
dw $2CAA, $2C6B, $2C7A, $2C6A ; Blue Note
|
||||
dw $24AA, $246B, $247A, $246A ; Red Note
|
||||
dw $3CAA, $3C6B, $3C7A, $3C6A ; Green Note
|
||||
dw $34AA, $346B, $347A, $346A ; Gold Note
|
||||
|
||||
TradeQuestGFX:
|
||||
dw $3D36, $3D37, $3D46, $3D47 ; Yoshi Doll
|
||||
dw $28DE, $28DF, $28EE, $28EF ; Tasty Meat
|
||||
dw $346C, $346D, $347C, $347D ; This shit is Bananas!
|
||||
dw $241E, $241F, $242E, $242F ; Pretty Bow
|
||||
dw $3D7E, $3D7F, $356C, $756C ; Pineapple
|
||||
|
||||
; Equipped Items
|
||||
|
||||
PegasusBootsGFX:
|
||||
dw $2429, $242A, $242B, $242C ; Pegasus Boots
|
||||
|
||||
PowerGloveGFX:
|
||||
dw $30DA, $30DB, $30EA, $30EB ; Worn-out Glove
|
||||
dw $28DA, $28DB, $28EA, $28EB ; Power Glove
|
||||
|
||||
FlippersGFX:
|
||||
dw $2C9A, $2C9B, $2C9D, $2C9E
|
||||
|
||||
MoonPearlGFX:
|
||||
dw $2433, $2434, $2435, $2436
|
||||
|
||||
SwordGFX:
|
||||
dw $2C64, $2CCE, $2C75, $EC64 ; level one
|
||||
dw $2C64, $2C65, $2C74, $2D26 ; level two
|
||||
dw $3464, $3465, $3475, $3429 ; level three
|
||||
dw $3464, $3465, $3475, $3429 ; level four
|
||||
|
||||
ShieldGFX:
|
||||
dw $2CFD, $6CFD, $2CFE, $6CFE ; baby shield
|
||||
dw $2CFF, $6CFF, $2C9F, $6C9F ; island shield
|
||||
dw $2C80, $2C81, $2C8D, $2C8E ; mirror shield
|
||||
|
||||
TunicGFX:
|
||||
dw $3C68, $7C68, $3C78, $7C78 ; green tunic
|
||||
dw $2C68, $6C68, $2C78, $6C78 ; blue tunic
|
||||
dw $3468, $7468, $3478, $7478 ; gold tunic
|
||||
|
||||
; still some more to go
|
||||
|
||||
SelectItemTXT:
|
||||
dw $2562, $2554, $255B, $2554, $2552, $2563, $2417, $2417, $2558, $2563, $2554, $255C ; Select Item
|
||||
|
||||
QuestStatusTXT:
|
||||
dw $2560, $2564, $2554, $2562, $2563, $2417, $2562, $2563, $2550, $2563, $2564, $2562
|
||||
|
||||
AreaNameTXT:
|
||||
dw $243F, $2550, $2561, $2554, $2550, $2417, $255D, $2550, $255C, $2554, $241C, $2430, $2430, $2430, $2430, $2430, $2430, $2430, $2430, $2430
|
||||
; 241D 241D 241D 241D 241D 241D 241D 241D
|
||||
256
Menu/menu_text.asm
Normal file
256
Menu/menu_text.asm
Normal file
@@ -0,0 +1,256 @@
|
||||
;====================================
|
||||
; Text Routines
|
||||
;====================================
|
||||
|
||||
; Alphabet manual writing function
|
||||
'A' = $2550
|
||||
'B' = $2551
|
||||
'C' = $2552
|
||||
'D' = $2553
|
||||
'E' = $2554
|
||||
'F' = $2555
|
||||
'G' = $2556
|
||||
'H' = $2557
|
||||
'I' = $2558
|
||||
'J' = $2559
|
||||
'K' = $255A
|
||||
'L' = $255B
|
||||
'M' = $255C
|
||||
'N' = $255D
|
||||
'O' = $255E
|
||||
'P' = $255F
|
||||
'Q' = $2560
|
||||
'R' = $2561
|
||||
'S' = $2562
|
||||
'T' = $2563
|
||||
'U' = $2564
|
||||
'V' = $2565
|
||||
'W' = $2566
|
||||
'X' = $2567
|
||||
'Y' = $2568
|
||||
'Z' = $2569
|
||||
'.' = $256A
|
||||
':' = $256B
|
||||
'0' = $2570
|
||||
'1' = $2571
|
||||
'2' = $2572
|
||||
'3' = $2573
|
||||
'4' = $2574
|
||||
'5' = $2575
|
||||
'6' = $2576
|
||||
'7' = $2577
|
||||
'8' = $2578
|
||||
'9' = $2579
|
||||
'_' = $20F5
|
||||
|
||||
; ===================================================================================
|
||||
|
||||
DeathLabel:
|
||||
dw "DEATHS:_"
|
||||
|
||||
DrawDeathCounter:
|
||||
REP #$30
|
||||
LDX.w #$0E
|
||||
|
||||
.draw2
|
||||
LDA.w DeathLabel, X
|
||||
STA.w $13CC, X
|
||||
DEX : DEX : BPL .draw2
|
||||
|
||||
RTS
|
||||
|
||||
; ===================================================================================
|
||||
|
||||
ScrollsLabel:
|
||||
dw "SCROLLS:_"
|
||||
|
||||
DrawScrollsLabel:
|
||||
LDX.w #$10
|
||||
|
||||
.draw2
|
||||
LDA.w ScrollsLabel, X
|
||||
STA.w $140C, X
|
||||
DEX : DEX : BPL .draw2
|
||||
|
||||
RTS
|
||||
|
||||
; ===================================================================================
|
||||
|
||||
PlaytimeLabel:
|
||||
dw "PLAYTIME:_"
|
||||
|
||||
DrawPlaytimeLabel:
|
||||
LDX.w #$10
|
||||
|
||||
.draw2
|
||||
LDA.w PlaytimeLabel, X
|
||||
STA.w $1692, X
|
||||
DEX : DEX : BPL .draw2
|
||||
|
||||
RTS
|
||||
|
||||
; ===================================================================================
|
||||
|
||||
Menu_ItemNames:
|
||||
dw "__SLINGSHOT___ "
|
||||
dw "__BOOMERANG___ "
|
||||
dw "___HOOKSHOT___ "
|
||||
dw "____BOMBS_____ "
|
||||
dw "__DEKU_MASK___ "
|
||||
dw "____BOTTLE____ "
|
||||
dw "___FIRE_ROD___ "
|
||||
dw "___ICE_ROD____ "
|
||||
dw "_____LAMP_____ "
|
||||
dw "____HAMMER____ "
|
||||
dw "__GORON_MASK__ "
|
||||
dw "____BOTTLE____ "
|
||||
dw "___SOMARIA____ "
|
||||
dw "____BYRNA_____ "
|
||||
dw "_SECRET_TOME__ "
|
||||
dw "_JUMP_FEATHER_ "
|
||||
dw "__BUNNY_HOOD__ "
|
||||
dw "____BOTTLE____ "
|
||||
dw "___OCARINA____ "
|
||||
dw "_MAGIC_MIRROR_ "
|
||||
dw "____SHOVEL____ "
|
||||
dw "_MAGIC_POWDER_ "
|
||||
dw "__STONE_MASK__ "
|
||||
dw "____BOTTLE____ "
|
||||
|
||||
Menu_DrawItemName:
|
||||
LDA.w $0202 : DEC
|
||||
ASL : ASL : ASL : ASL : ASL
|
||||
LDY.w #$000
|
||||
TAX
|
||||
.loop
|
||||
LDA.w Menu_ItemNames, X ; Load your text character
|
||||
STA.w $1692, Y ; <- into the buffer
|
||||
INX : INX
|
||||
INY : INY : CPY #$001C : BCC .loop
|
||||
RTS
|
||||
|
||||
; ===================================================================================
|
||||
|
||||
; ;LDX.w $7E00A0 ; load room number
|
||||
;-------------------------------------
|
||||
TestLocationName:
|
||||
dw "YOUR_HOUSE__"
|
||||
;-------------------------------------
|
||||
|
||||
DrawLocationName:
|
||||
{
|
||||
REP #$30
|
||||
LDA $1B ; check if indoors or outdoors
|
||||
AND.w #$00FF ; isolate bit
|
||||
CMP.w #$01 ; if 1, then indoors
|
||||
BEQ .indoors
|
||||
|
||||
LDA.b $8A
|
||||
ASL : ASL : ASL : ASL : ASL
|
||||
LDY.w #$000
|
||||
TAX
|
||||
.loop
|
||||
LDA.w OverworldLocationNames, X ; Load your text character
|
||||
STA.w $12CC, Y ; <- into the buffer
|
||||
INX : INX
|
||||
INY : INY : CPY #$0020 : BCC .loop
|
||||
RTS
|
||||
|
||||
.indoors
|
||||
LDX.w #$16
|
||||
|
||||
.loop2
|
||||
LDA.w TestLocationName, X
|
||||
STA.w $12CC, X
|
||||
|
||||
DEX : DEX
|
||||
BPL .loop2
|
||||
|
||||
RTS
|
||||
}
|
||||
|
||||
|
||||
; ===================================================================================
|
||||
|
||||
Menu_DrawSelect:
|
||||
REP #$30
|
||||
LDX.w #$16
|
||||
|
||||
.loop
|
||||
LDA.w SelectItemTXT, X
|
||||
STA.w $1194, X
|
||||
|
||||
DEX : DEX
|
||||
BPL .loop
|
||||
|
||||
RTS
|
||||
|
||||
; ===================================================================================
|
||||
|
||||
Menu_DrawQuestStatus:
|
||||
REP #$30
|
||||
LDX.w #$16
|
||||
|
||||
.loop
|
||||
LDA.w QuestStatusTXT, X
|
||||
STA.w $1194, X
|
||||
|
||||
DEX : DEX
|
||||
BPL .loop
|
||||
|
||||
RTS
|
||||
|
||||
; ===================================================================================
|
||||
|
||||
Menu_DrawAreaNameTXT:
|
||||
REP #$30
|
||||
LDX.w #$26
|
||||
|
||||
.loop
|
||||
LDA.w AreaNameTXT, X
|
||||
STA.w $128C, X
|
||||
|
||||
DEX : DEX
|
||||
BPL .loop
|
||||
|
||||
RTS
|
||||
|
||||
; ===================================================================================
|
||||
|
||||
; Player's Name
|
||||
; $3D9-$3E4: See appendix for listing of character codes. Note each of the six letters is represented by a 16-bit number.
|
||||
; 00-A 01-B 02-C 03-D 04-E 05-F 06=G 07-H 08-I^ 09-J 0A-K 0B-L 0C-M 0D-N OE-O OF-P
|
||||
; 10-??
|
||||
; 20-Q 21-R 22-S 23-T 24-U 25-V 26-W 27-X 28-Y 29-Z 2A-a 2B-b-2C-c 2D-d 2E-e 2F-f
|
||||
; 40-g 41-h 42-k 43-j 44-i 45-l 46-m 47-n 48-o 49-p 4A-q 4B-r 4C-s 4D-t 4E-u 4F-v
|
||||
|
||||
; 60-w 61-x 62-y 63-z 64-0 65-1 66-2 67-3 68-4 69-5 6A-6 6B-7 6C-8 6D-9 6E-"?" 6F-"!"
|
||||
; 80-"-" 81-"." 82-"," 85-"(" 86-")"
|
||||
|
||||
;B1-blank^
|
||||
|
||||
; ^This code is not the canon encoding of this character. ex. AF is the proper "I". 08 is not.
|
||||
|
||||
Menu_DrawCharacterName:
|
||||
REP #$30
|
||||
|
||||
LDX.w #$C
|
||||
.loop
|
||||
LDA.l $7EF3D9, X
|
||||
CMP.w #$AF : BEQ .fix_i
|
||||
CMP.w #$10 : BCC .skip ; handle P -> Q gap
|
||||
SBC.b #$10
|
||||
CLC
|
||||
CMP.w #$2A : BCS .fix_lowercase
|
||||
.skip
|
||||
CLC : ADC #$2550
|
||||
STA.w $138C, X
|
||||
DEX : DEX : BPL .loop
|
||||
|
||||
RTS
|
||||
|
||||
.fix_i
|
||||
LDA.w #$08 : BRA .skip
|
||||
|
||||
.fix_lowercase
|
||||
LDA.w #$1D : BRA .skip
|
||||
Reference in New Issue
Block a user