Fixing up the hud to indicate Pendant/Crystal etc
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -181,3 +181,5 @@ Sprite_ShowSolicitedMessageIfPlayerFacing_PreserveMessage:
|
||||
RTL
|
||||
}
|
||||
;================================================================
|
||||
|
||||
incsrc menu/hudalpha.asm
|
||||
|
||||
@@ -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.l !NMI_AUX+2 : BEQ .return
|
||||
|
||||
LDA !NMI_AUX+2 : STA $02 ; set up jump pointer
|
||||
LDA !NMI_AUX+1 : STA $01
|
||||
LDA !NMI_AUX+0 : STA $00
|
||||
PHK
|
||||
PEA .return-1
|
||||
|
||||
PHK : PER .return-1 ; push stack for RTL return
|
||||
JMP [$0000]
|
||||
PHA
|
||||
|
||||
.return
|
||||
LDA.b #$00 : STA !NMI_AUX ; zero bank byte of NMI hook pointer
|
||||
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
|
||||
|
||||
PLA : STA $02
|
||||
PLA : STA $01
|
||||
PLA : STA $00
|
||||
+
|
||||
|
||||
LDA $13 : STA $2100 ; thing we wrote over, turn screen back on
|
||||
JML.l PostNMIHookReturn
|
||||
;--------------------------------------------------------------------------------
|
||||
@@ -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
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
@@ -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
23
menu/hudalpha.asm
Normal 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
BIN
menu/menuonly.2bpp
Normal file
Binary file not shown.
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
22
tables.asm
22
tables.asm
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user