80 lines
2.1 KiB
NASM
80 lines
2.1 KiB
NASM
ShouldOverrideFileLoad:
|
|
; Y = Graphics file being loaded
|
|
CPY.b #$0A ; 0A = Ice/Mire floor file
|
|
BNE .no
|
|
|
|
LDA.w DungeonID ; Dungeon number
|
|
CMP.b #$12 ; Ice Palace
|
|
BEQ .yes
|
|
.no
|
|
CLC : RTS
|
|
.yes
|
|
RTS
|
|
|
|
BgGraphicsLoading:
|
|
; Instructions overwritten
|
|
STZ.b Scrap00
|
|
STX.b Scrap01
|
|
STA.b Scrap02
|
|
|
|
JSR ShouldOverrideFileLoad
|
|
BCS .useSpecialIcePalaceFile
|
|
JML BgGraphicsLoadingResume
|
|
|
|
.useSpecialIcePalaceFile
|
|
; We're loading the floor tiles in Ice Palace. Instead of the normal file,
|
|
; load another one that replaces the bridge tiles with the Bombos medallion
|
|
|
|
LDA.b #IcePalaceFloorGfx>>16
|
|
STA.b Scrap02
|
|
REP #$20
|
|
LDA.w #IcePalaceFloorGfx
|
|
STA.b Scrap00
|
|
LDX.b #64*2 ; Tiles to load * 2
|
|
-
|
|
; Unrolled loop to upload half a tile
|
|
LDA.b [Scrap00] : STA.w VMDATAL : INC.b Scrap00 : INC.b Scrap00
|
|
LDA.b [Scrap00] : STA.w VMDATAL : INC.b Scrap00 : INC.b Scrap00
|
|
LDA.b [Scrap00] : STA.w VMDATAL : INC.b Scrap00 : INC.b Scrap00
|
|
LDA.b [Scrap00] : STA.w VMDATAL : INC.b Scrap00 : INC.b Scrap00
|
|
LDA.b [Scrap00] : STA.w VMDATAL : INC.b Scrap00 : INC.b Scrap00
|
|
LDA.b [Scrap00] : STA.w VMDATAL : INC.b Scrap00 : INC.b Scrap00
|
|
LDA.b [Scrap00] : STA.w VMDATAL : INC.b Scrap00 : INC.b Scrap00
|
|
LDA.b [Scrap00] : STA.w VMDATAL : INC.b Scrap00 : INC.b Scrap00
|
|
DEX
|
|
BNE -
|
|
|
|
SEP #$20
|
|
JML BgGraphicsLoadingCancel
|
|
|
|
ReloadingFloors:
|
|
SEP #$30 ; 8 AXY
|
|
LDA.l LastBGSet ; Floor file that has been decompressed
|
|
TAY
|
|
JSR ShouldOverrideFileLoad
|
|
REP #$30 ; 16 AXY
|
|
BCS .replaceWithSpecialIcePalaceFile
|
|
|
|
; Instructions overwritten by hook
|
|
LDX.w #$0000
|
|
LDY.w #$0040
|
|
|
|
JML ReloadingFloorsResume
|
|
|
|
.replaceWithSpecialIcePalaceFile
|
|
; Block move our hardcoded graphics into the output buffer
|
|
LDX.w #IcePalaceFloorGfx ; Source
|
|
LDY.w #$0000 ; Target
|
|
LDA.w #$0800 ; Length
|
|
PHB
|
|
;MVN $7F, IcePalaceFloorGfx>>16
|
|
MVN $B17F ; CHANGE THIS IF YOU MOVE THE GRAPHICS FILE - kkat
|
|
PLB
|
|
|
|
; Pretend that we ran the original routine
|
|
LDX.w #$0800
|
|
LDA.w #$6600
|
|
STA.b Scrap03
|
|
|
|
JML ReloadingFloorsCancel
|