Fixing up the hud to indicate Pendant/Crystal etc

This commit is contained in:
aerinon
2022-02-15 12:12:42 -07:00
parent a80171ba9b
commit fe66c67d07
10 changed files with 119 additions and 39 deletions

View File

@@ -242,6 +242,7 @@ warnpc $A58000
;org $228000 ; contrib area ;org $228000 ; contrib area
org $A28000 ; contrib area org $A28000 ; contrib area
incsrc contrib.asm incsrc contrib.asm
warnpc $A38000
org $A38000 org $A38000
incsrc stats/main.asm incsrc stats/main.asm

View File

@@ -181,3 +181,5 @@ Sprite_ShowSolicitedMessageIfPlayerFacing_PreserveMessage:
RTL RTL
} }
;================================================================ ;================================================================
incsrc menu/hudalpha.asm

View File

@@ -44,28 +44,23 @@ FrameHookAction:
++ ++
REP #$30 : PLA : PLP REP #$30 : PLA : PLP
RTL RTL
!NMI_MW = "$7F5047"
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
NMIHookAction: NMIHookAction:
PHA : PHX : PHY : PHD ; thing we wrote over, push stuff PHA : PHX : PHY : PHD ; thing we wrote over, push stuff
LDA !NMI_AUX : BEQ ++ LDA !NMI_MW : BEQ ++
PHP PHP
SEP #$30 SEP #$30
LDA #$00 : STA !NMI_AUX LDA #$00 : STA !NMI_MW
; Multiworld text ; Multiworld text
LDA !NMI_AUX+1 : BEQ + LDA !NMI_MW+1 : BEQ +
LDA #$00 : STA !NMI_AUX+1 LDA #$00 : STA !NMI_MW+1
JSL.l WriteText JSL.l WriteText
+ +
; Shops
LDA !NMI_AUX+2 : BEQ +
LDA #$00 : STA !NMI_AUX+2
JSL.l Shopkeeper_UploadVRAMTilesLong
+
PLP PLP
++ ++
@@ -78,27 +73,27 @@ NMIHookAction:
JML.l NMIHookReturn JML.l NMIHookReturn
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
!NMI_AUX = "$7F5044" !NMI_AUX = "$7F5044"
PostNMIHookAction: PostNMIHookAction:
LDA !NMI_AUX : BEQ + LDA.l !NMI_AUX+2 : BEQ .return
LDA $00 : PHA ; preserve DP ram
LDA $01 : PHA
LDA $02 : PHA
LDA !NMI_AUX+2 : STA $02 ; set up jump pointer PHK
LDA !NMI_AUX+1 : STA $01 PEA .return-1
LDA !NMI_AUX+0 : STA $00
PHK : PER .return-1 ; push stack for RTL return PHA
JMP [$0000]
.return LDA.b #$00 : STA.l !NMI_AUX+2
LDA.b #$00 : STA !NMI_AUX ; zero bank byte of NMI hook pointer
REP #$20
LDA.l !NMI_AUX+0 : DEC : PHA
SEP #$20
RTL
.return
LDA.b $13 : STA.w $2100
JML.l PostNMIHookReturn
PLA : STA $02
PLA : STA $01
PLA : STA $00
+
LDA $13 : STA $2100 ; thing we wrote over, turn screen back on
JML.l PostNMIHookReturn
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------

View File

@@ -2808,6 +2808,14 @@ org $01C536 : JSL FixJingleGlitch
org $01C592 : JSL FixJingleGlitch org $01C592 : JSL FixJingleGlitch
org $01C65F : JSL FixJingleGlitch org $01C65F : JSL FixJingleGlitch
;================================================================================
; Hooks for when submenu opens
;--------------------------------------------------------------------------------
org $028818
JSL OnMenuLoad
org $02A463
JSL OnMenuLoad
;================================================================================ ;================================================================================
; Terrorpin AI fix ; Terrorpin AI fix
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------

View File

@@ -141,7 +141,7 @@ DrHudDungeonItemsAdditions:
iny #2 iny #2
lda.w #$24f5 : sta $1644, y ; blank out map spot lda.w #$24f5 : sta $1644, y ; blank out map spot
lda $7ef368 : and.l $0098c0, x : beq + ; must have map lda $7ef368 : and.l $0098c0, x : beq + ; must have map
lda #$2826 : sta $1644, y ; check mark JSR MapIndicatorShort : STA $1644, Y
+ iny #2 + iny #2
cpx #$001a : bne + cpx #$001a : bne +
tya : !add #$003c : tay tya : !add #$003c : tay
@@ -164,6 +164,34 @@ DrHudDungeonItemsAdditions:
plp : ply : plx : rtl plp : ply : plx : rtl
} }
MapIndicatorLong:
PHX
LDA.l OldHudToNewHudTable, X : TAX
JSR MapIndicator
PLX
RTL
MapIndicatorShort:
PHX
TXA : LSR : TAX
JSR MapIndicator
PLX
RTS
OldHudToNewHudTable:
dw 1, 2, 3, 10, 4, 6, 5, 8, 11, 9, 7, 12, 13
IndicatorCharacters:
; check G P R C
dw $2426, $2590, $2599, $259B, $258C
MapIndicator:
LDA.l CrystalPendantFlags_3, X : AND #$00FF
PHX
ASL : TAX : LDA.l IndicatorCharacters, X
PLX
RTS
BkStatus: BkStatus:
lda $7ef366 : and.l $0098c0, x : bne +++ ; has the bk already lda $7ef366 : and.l $0098c0, x : bne +++ ; has the bk already
lda.l BigKeyStatus, x : bne ++ lda.l BigKeyStatus, x : bne ++

23
menu/hudalpha.asm Normal file
View File

@@ -0,0 +1,23 @@
OnMenuLoad:
LDA.b #UploadMenuOnlyIcons>>0 : STA !NMI_AUX
LDA.b #UploadMenuOnlyIcons>>8 : STA !NMI_AUX+1
LDA.b #UploadMenuOnlyIcons>>16 : STA !NMI_AUX+2
LDA.b #$0E : STA.b $10 ; what we overwrote
RTL
UploadMenuOnlyIcons:
REP #$20
LDA.w #MenuOnlyIcons : STA.w $4342
LDA.w #$1801 : STA.w $4340
LDA.w #$0240 : STA.w $4345
LDA.w #$0F800>>1 : STA.w $2116
SEP #$20
LDA.b #MenuOnlyIcons>>16 : STA.w $4344
LDA.b #$80 : STA.w $2118
LDA.b #$10 : STA.w $420B
RTL
MenuOnlyIcons:
incbin "menuonly.2bpp"

BIN
menu/menuonly.2bpp Normal file

Binary file not shown.

View File

@@ -37,7 +37,7 @@ PHX : PHY : PHP
++ ++
SEP #$20 SEP #$20
LDA #$01 : STA !NMI_AUX+1 : STA !NMI_AUX LDA #$01 : STA !NMI_MW+1 : STA !NMI_MW
LDA !MULTIWORLD_HUD_DELAY LDA !MULTIWORLD_HUD_DELAY
STA !MULTIWORLD_HUD_TIMER STA !MULTIWORLD_HUD_TIMER
.textdone .textdone
@@ -113,7 +113,7 @@ GetMultiworldItem:
BRA - BRA -
++ ++
PLP PLP
LDA #$01 : STA !NMI_AUX+1 : STA !NMI_AUX LDA #$01 : STA !NMI_MW+1 : STA !NMI_MW
.textend .textend
LDA $5D LDA $5D

View File

@@ -397,10 +397,13 @@ DrawHUDDungeonItems:
.next_map .next_map
BIT.w .dungeon_bitmasks,X BIT.w .dungeon_bitmasks,X
BEQ ..skip_map BNE ..draw_map
; MapMode indicates if maps are needed for the info
LDA.l MapMode : AND #$00FF : BNE ..skip_map
..draw_map
LDY.w .dungeon_positions,X LDY.w .dungeon_positions,X
LDA.w #$2826 JSL MapIndicatorLong
STA.w $1686,Y STA.w $1686,Y
; reload ; reload

View File

@@ -1511,7 +1511,8 @@ dw #9999 ; Rupee Limit
; $7F5042 - Tile Upload Offset Override (Low) ; $7F5042 - Tile Upload Offset Override (Low)
; $7F5043 - Tile Upload Offset Override (High) ; $7F5043 - Tile Upload Offset Override (High)
; $7F5044 - $7F5046 - NMI Auxiliary Function ; $7F5044 - $7F5046 - NMI Auxiliary Function
; $7F5047 - $7F504E - Unused ; $7F5047 - $7F5048 - Multiworld NMI Flags
; $7F5049 - $7F504E - Unused
; $7F504F - $7F506F - Shop Block ; $7F504F - $7F506F - Shop Block
; $7F5070 - Reserved for OneMind ; $7F5070 - Reserved for OneMind
; $7F5071 - Reserved for OneMind ; $7F5071 - Reserved for OneMind
@@ -1893,6 +1894,25 @@ db #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00,
; 0x186380 - 187FFF (unused) ; 0x186380 - 187FFF (unused)
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
org $30EFE0 ; PC 0x186FE0-0x186FEF
CrystalPendantFlags_3:
db $00 ; Sewers
db $00 ; Hyrule Castle
db $01 ; Eastern Palace
db $02 ; Desert Palace
db $00 ; Agahnim's Tower
db $04 ; Swamp Palace
db $04 ; Palace of Darkness
db $03 ; Misery Mire
db $04 ; Skull Woods
db $03 ; Ice Palace
db $02 ; Tower of Hera
db $04 ; Thieves' Town
db $04 ; Turtle Rock
db $00 ; Ganons Tower
; 00 - No Prize. 01 - Green Pendant. 02 - Other Pendant, 03 - Special Crystal, 04 - Other Crystal
org $30EFFF ; PC 0x186FFF org $30EFFF ; PC 0x186FFF
BallNChainDungeon: BallNChainDungeon:
db #$02 db #$02