menu housekeeping
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
|
||||
NothingGFX:
|
||||
dw $20F5, $20F5, $20F5, $20F5
|
||||
|
||||
|
||||
; ---------------------------------------------------------
|
||||
|
||||
BowsGFX:
|
||||
@@ -97,7 +97,7 @@ BigChestKeyGFX:
|
||||
; ---------------------------------------------------------
|
||||
|
||||
MapGFX:
|
||||
dw $2936, $2937, $2946, $2947
|
||||
dw $2936, $2937, $2946, $2947
|
||||
|
||||
; ---------------------------------------------------------
|
||||
|
||||
@@ -113,7 +113,7 @@ JumpFeatherGFX:
|
||||
; ---------------------------------------------------------
|
||||
|
||||
BookGFX:
|
||||
dw $3CA5, $3CA6, $3CD8, $3CD9
|
||||
dw $3CA5, $3CA6, $3CD8, $3CD9
|
||||
|
||||
; ---------------------------------------------------------
|
||||
|
||||
@@ -132,7 +132,7 @@ BottlesGFX:
|
||||
; ---------------------------------------------------------
|
||||
|
||||
SomariaGFX:
|
||||
dw $24DC, $24DD, $24EC, $24ED
|
||||
dw $24DC, $24DD, $24EC, $24ED
|
||||
|
||||
; ---------------------------------------------------------
|
||||
|
||||
@@ -140,7 +140,7 @@ ByrnaGFX:
|
||||
dw $2CDC, $2CDD, $2CEC, $2CED
|
||||
|
||||
FishingRodGFX:
|
||||
dw $2C82, $2C83, $2C8B, $2C8C
|
||||
dw $2C82, $2C83, $2C8B, $2C8C
|
||||
|
||||
PortalRodGFX:
|
||||
dw $2CF0, $24F1, $30EC, $E4F0
|
||||
@@ -149,7 +149,7 @@ PortalRodGFX:
|
||||
|
||||
; formerly Magic Cape
|
||||
StoneMaskGFX:
|
||||
dw $30B4, $30B5, $30C4, $30C5
|
||||
dw $30B4, $30B5, $30C4, $30C5
|
||||
|
||||
; ---------------------------------------------------------
|
||||
|
||||
@@ -172,7 +172,7 @@ MirrorGFX:
|
||||
dw $2C62, $2C63, $2C72, $2C73 ; Mirror
|
||||
|
||||
|
||||
; =============================================================================
|
||||
; =========================================================
|
||||
; Collectibles
|
||||
; ---------------------------------------------------------
|
||||
|
||||
@@ -218,7 +218,7 @@ DekuStickGFX:
|
||||
; Equipped Items
|
||||
|
||||
PegasusBootsGFX:
|
||||
dw $2429, $242A, $242B, $242C ; Pegasus Boots
|
||||
dw $2429, $242A, $242B, $242C ; Pegasus Boots
|
||||
|
||||
; ---------------------------------------------------------
|
||||
|
||||
@@ -229,18 +229,18 @@ PowerGloveGFX:
|
||||
; ---------------------------------------------------------
|
||||
|
||||
FlippersGFX:
|
||||
dw $2C9A, $2C9B, $2C9D, $2C9E
|
||||
dw $2C9A, $2C9B, $2C9D, $2C9E
|
||||
|
||||
; ---------------------------------------------------------
|
||||
|
||||
MoonPearlGFX:
|
||||
dw $2433, $2434, $2435, $2436
|
||||
dw $2433, $2434, $2435, $2436
|
||||
|
||||
; ---------------------------------------------------------
|
||||
|
||||
SwordGFX:
|
||||
dw $2C64, $2CCE, $2C75, $EC64 ; level one
|
||||
dw $2C64, $2C65, $2C74, $2D26 ; level two
|
||||
dw $2C64, $2CCE, $2C75, $EC64 ; level one
|
||||
dw $2C64, $2C65, $2C74, $2D26 ; level two
|
||||
dw $248A, $2465, $3C74, $2D48 ; level three
|
||||
dw $288A, $2865, $2C74, $2D39 ; level four
|
||||
|
||||
@@ -259,7 +259,7 @@ TunicGFX:
|
||||
dw $2468, $6468, $2478, $6478 ; red tunic
|
||||
|
||||
; =============================================================================
|
||||
; Static Text on the Menu
|
||||
; Static Text on the Menu
|
||||
|
||||
SelectItemTXT:
|
||||
dw $2562, $2554, $255B, $2554
|
||||
@@ -269,11 +269,11 @@ SelectItemTXT:
|
||||
QuestStatusTXT:
|
||||
dw $2560, $2564, $2554, $2562
|
||||
dw $2563, $2417, $2562, $2563
|
||||
dw $2550, $2563, $2564, $2562
|
||||
dw $2550, $2563, $2564, $2562
|
||||
|
||||
AreaNameTXT:
|
||||
dw $243F, $2550, $2561, $2554
|
||||
dw $2550, $2417, $255D, $2550
|
||||
dw $255C, $2554, $241C, $2430
|
||||
dw $2430, $2430, $2430, $2430
|
||||
dw $2430, $2430, $2430, $2430
|
||||
dw $2430, $2430, $2430, $2430
|
||||
|
||||
@@ -324,36 +324,35 @@ HUD_UpdateHearts:
|
||||
; Draws hearts in a painfully slow loop
|
||||
LDX.w #$0000
|
||||
|
||||
.next_heart
|
||||
.next_heart
|
||||
LDA.b $00 : CMP.w #$0008 : BCC .less_than_one_heart
|
||||
; Notice no SEC was needed since carry is assumedly set.
|
||||
SBC.w #$0008 : STA.b $00
|
||||
LDY.w #$0004
|
||||
JSR .draw_heart
|
||||
INX #2
|
||||
BRA .next_heart
|
||||
; Notice no SEC was needed since carry is assumedly set.
|
||||
SBC.w #$0008 : STA.b $00
|
||||
LDY.w #$0004
|
||||
JSR .draw_heart
|
||||
INX #2
|
||||
BRA .next_heart
|
||||
.less_than_one_heart
|
||||
|
||||
.less_than_one_heart
|
||||
CMP.w #$0005 : BCC .half_heart_or_less
|
||||
LDY.w #$0004
|
||||
BRA .draw_heart
|
||||
LDY.w #$0004
|
||||
BRA .draw_heart
|
||||
.half_heart_or_less
|
||||
|
||||
.half_heart_or_less
|
||||
CMP.w #$0001 : BCC .empty_heart
|
||||
LDY.w #$0002
|
||||
BRA .draw_heart
|
||||
|
||||
.empty_heart
|
||||
LDY.w #$0002
|
||||
BRA .draw_heart
|
||||
.empty_heart
|
||||
RTS
|
||||
|
||||
.draw_heart
|
||||
.draw_heart
|
||||
; Compare number of hearts so far on current line to 10
|
||||
CPX.w #$0014 : BCC .no_line_change
|
||||
; if not, we have to move down one tile in the tilemap
|
||||
LDX.w #$0000
|
||||
LDA.b $07 : CLC : ADC.w #$0040 : STA.b $07
|
||||
; if not, we have to move down one tile in the tilemap
|
||||
LDX.w #$0000
|
||||
LDA.b $07 : CLC : ADC.w #$0040 : STA.b $07
|
||||
.no_line_change
|
||||
|
||||
.no_line_change
|
||||
LDA.b [$0A], Y : TXY : STA.b [$07], Y
|
||||
RTS
|
||||
}
|
||||
@@ -362,26 +361,26 @@ HUD_UpdateHearts:
|
||||
|
||||
HexToDecimal:
|
||||
{
|
||||
REP #$30
|
||||
STZ $0003
|
||||
LDX.w #$0000
|
||||
LDY.w #$0002
|
||||
.next_digit
|
||||
CMP $F9F9, Y : BCC .next_lowest_10s_place
|
||||
REP #$30
|
||||
STZ $0003
|
||||
LDX.w #$0000
|
||||
LDY.w #$0002
|
||||
.next_digit
|
||||
CMP $F9F9, Y : BCC .next_lowest_10s_place
|
||||
SEC : SBC $F9F9, Y
|
||||
INC $03, X
|
||||
BRA .next_digit
|
||||
.next_lowest_10s_place
|
||||
.next_lowest_10s_place
|
||||
INX : DEY #2
|
||||
BPL .next_digit
|
||||
STA $05
|
||||
SEP #$30
|
||||
LDX.b #$02
|
||||
.set_next_digit_tile
|
||||
.set_next_digit_tile
|
||||
LDA $03, X : CMP.b #$7F
|
||||
BEQ .blank_digit
|
||||
ORA.b #$90
|
||||
.blank_digit
|
||||
.blank_digit
|
||||
STA $03, X
|
||||
DEX : BPL .set_next_digit_tile
|
||||
RTS
|
||||
|
||||
@@ -358,7 +358,7 @@ DrawCollectibleNamesAndCount:
|
||||
RTS
|
||||
}
|
||||
|
||||
DrawGoldstarName:
|
||||
DrawGoldstarName:
|
||||
{
|
||||
REP #$30
|
||||
LDX.w #$0000
|
||||
@@ -370,7 +370,7 @@ DrawGoldstarName:
|
||||
RTS
|
||||
}
|
||||
|
||||
DrawMushroomName:
|
||||
DrawMushroomName:
|
||||
{
|
||||
REP #$30
|
||||
LDX.w #$0000
|
||||
@@ -387,15 +387,15 @@ DrawMushroomName:
|
||||
DrawLocationName:
|
||||
{
|
||||
REP #$30
|
||||
LDA $1B ; check if indoors or outdoors
|
||||
AND.w #$00FF ; isolate bit
|
||||
CMP.w #$01 ; if 1, then indoors
|
||||
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 #5
|
||||
LDY.w #$000
|
||||
TAX
|
||||
TAX
|
||||
|
||||
.draw_overworld_loop
|
||||
LDA.w OverworldLocationNames, X ; Load your text character
|
||||
@@ -412,8 +412,8 @@ DrawLocationName:
|
||||
|
||||
.draw_indoors_loop
|
||||
LDA.w DungeonLocationNames, Y : STA.w $12CC, X
|
||||
|
||||
INY : INY
|
||||
|
||||
INY : INY
|
||||
INX : INX : CPX #$0020 : BCC .draw_indoors_loop
|
||||
RTS
|
||||
}
|
||||
@@ -467,23 +467,23 @@ Menu_DrawAreaNameTXT:
|
||||
; =========================================================
|
||||
|
||||
; Player's Name
|
||||
; $3D9-$3E4: See appendix for listing of character codes.
|
||||
; $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
|
||||
; 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
|
||||
; 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-")"
|
||||
; 81-"."
|
||||
; 82-","
|
||||
; 85-"(" 86-")"
|
||||
;
|
||||
; B1-blank^
|
||||
;
|
||||
@@ -505,30 +505,30 @@ Menu_DrawCharacterName:
|
||||
REP #$30
|
||||
LDX.w #$C
|
||||
|
||||
.draw_name_loop
|
||||
; Player's Name in memory, indexed by X
|
||||
.draw_name_loop
|
||||
; Player's Name in memory, indexed by X
|
||||
LDA.l $7EF3D9, X
|
||||
|
||||
; Check if the character is the special encoding for "I" first.
|
||||
CMP.w #$AF : BEQ .fix_i
|
||||
|
||||
; Check if it is the gap between the P and Q characters
|
||||
; Check if the character is the special encoding for "I" first.
|
||||
CMP.w #$AF : BEQ .fix_i
|
||||
|
||||
; Check if it is the gap between the P and Q characters
|
||||
CMP.w #$10 : BCC .write_to_screen ; handle P, Q gap
|
||||
SBC.b #$10
|
||||
CLC
|
||||
CMP.w #$2A : BCS .fix_lowercase
|
||||
|
||||
.write_to_screen
|
||||
CMP.w #$2A : BCS .fix_lowercase
|
||||
|
||||
.write_to_screen
|
||||
CLC : ADC #$2550 : STA.w $134C, X
|
||||
DEX : DEX : BPL .draw_name_loop
|
||||
|
||||
RTS
|
||||
|
||||
.fix_i
|
||||
LDA.w #$08 : BRA .write_to_screen
|
||||
.fix_i
|
||||
LDA.w #$08 : BRA .write_to_screen
|
||||
|
||||
.fix_lowercase
|
||||
; TODO: Convert the lowercase value of 2A or greater inside of the
|
||||
; accumulator and convert it to an uppercase value.
|
||||
.fix_lowercase
|
||||
; TODO: Convert the lowercase value of 2A or greater inside of the
|
||||
; accumulator and convert it to an uppercase value.
|
||||
LDA.w #$1D : BRA .write_to_screen
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user