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 $A28000 ; contrib area
incsrc contrib.asm
warnpc $A38000
org $A38000
incsrc stats/main.asm

View File

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

View File

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

View File

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

View File

@@ -141,7 +141,7 @@ DrHudDungeonItemsAdditions:
iny #2
lda.w #$24f5 : sta $1644, y ; blank out map spot
lda $7ef368 : and.l $0098c0, x : beq + ; must have map
lda #$2826 : sta $1644, y ; check mark
JSR MapIndicatorShort : STA $1644, Y
+ iny #2
cpx #$001a : bne +
tya : !add #$003c : tay
@@ -164,6 +164,34 @@ DrHudDungeonItemsAdditions:
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:
lda $7ef366 : and.l $0098c0, x : bne +++ ; has the bk already
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
LDA #$01 : STA !NMI_AUX+1 : STA !NMI_AUX
LDA #$01 : STA !NMI_MW+1 : STA !NMI_MW
LDA !MULTIWORLD_HUD_DELAY
STA !MULTIWORLD_HUD_TIMER
.textdone
@@ -113,7 +113,7 @@ GetMultiworldItem:
BRA -
++
PLP
LDA #$01 : STA !NMI_AUX+1 : STA !NMI_AUX
LDA #$01 : STA !NMI_MW+1 : STA !NMI_MW
.textend
LDA $5D

View File

@@ -397,10 +397,13 @@ DrawHUDDungeonItems:
.next_map
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
LDA.w #$2826
JSL MapIndicatorLong
STA.w $1686,Y
; reload

View File

@@ -1511,7 +1511,8 @@ dw #9999 ; Rupee Limit
; $7F5042 - Tile Upload Offset Override (Low)
; $7F5043 - Tile Upload Offset Override (High)
; $7F5044 - $7F5046 - NMI Auxiliary Function
; $7F5047 - $7F504E - Unused
; $7F5047 - $7F5048 - Multiworld NMI Flags
; $7F5049 - $7F504E - Unused
; $7F504F - $7F506F - Shop Block
; $7F5070 - 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)
;--------------------------------------------------------------------------------
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
BallNChainDungeon:
db #$02