Refactor time system to use named variables for hours and minutes; add night check functions and update palette handling
This commit is contained in:
@@ -38,8 +38,8 @@ pullpc
|
|||||||
LogoFadeInSetClock:
|
LogoFadeInSetClock:
|
||||||
{
|
{
|
||||||
JSL $00ED7C ; IntroLogoPaletteFadeIn
|
JSL $00ED7C ; IntroLogoPaletteFadeIn
|
||||||
LDA.b #$08 : STA.l $7EE000 ; Set the time to 6:00am
|
LDA.b #$08 : STA.l Hours ; Set the time to 6:00am
|
||||||
LDA.b #$3F : STA.l $7EE002 ; Set the time speed
|
LDA.b #$3F : STA.l TimeSpeed ; Set the time speed
|
||||||
RTL
|
RTL
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -50,8 +50,8 @@ pullpc
|
|||||||
ResetClockTriforceRoom:
|
ResetClockTriforceRoom:
|
||||||
{
|
{
|
||||||
JSL $00E384 ; LoadCommonSprites_long
|
JSL $00E384 ; LoadCommonSprites_long
|
||||||
LDA.b #$00 : STA.l $7EE000 ; low hours for palette?
|
LDA.b #$00 : STA.l Hours ; low hours for palette?
|
||||||
LDA.b #$00 : STA.l $7EE001 ; high hours for palette?
|
LDA.b #$00 : STA.l Minutes ; high hours for palette?
|
||||||
RTL
|
RTL
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -65,7 +65,7 @@ DrawClockToHud:
|
|||||||
{
|
{
|
||||||
LDX #$00
|
LDX #$00
|
||||||
.debut
|
.debut
|
||||||
LDY #$00 : LDA $7EE000,x
|
LDY #$00 : LDA Hours,x
|
||||||
.debut2
|
.debut2
|
||||||
CMP #$0A : BMI .draw
|
CMP #$0A : BMI .draw
|
||||||
SBC #$0A : INY : BRA .debut2
|
SBC #$0A : INY : BRA .debut2
|
||||||
@@ -146,7 +146,7 @@ RunClock:
|
|||||||
LDA #$00 : STA.l Minutes
|
LDA #$00 : STA.l Minutes
|
||||||
LDA.l Hours : INC A : STA.l Hours
|
LDA.l Hours : INC A : STA.l Hours
|
||||||
CMP #$18 : BPL .reset_hours ; hours = 24 ?
|
CMP #$18 : BPL .reset_hours ; hours = 24 ?
|
||||||
;check indoors/outdoors
|
; check indoors/outdoors
|
||||||
LDA $1B : BEQ .outdoors0
|
LDA $1B : BEQ .outdoors0
|
||||||
RTS
|
RTS
|
||||||
.outdoors0
|
.outdoors0
|
||||||
@@ -154,7 +154,7 @@ RunClock:
|
|||||||
JSL RomToPaletteBuffer ; update buffer palette
|
JSL RomToPaletteBuffer ; update buffer palette
|
||||||
JSL PaletteBufferToEffective ; update effective palette
|
JSL PaletteBufferToEffective ; update effective palette
|
||||||
|
|
||||||
;rain layer ?
|
; rain layer ?
|
||||||
LDA $8C : CMP #$9F : BEQ .skip_bg_updt0
|
LDA $8C : CMP #$9F : BEQ .skip_bg_updt0
|
||||||
LDA $8C : CMP #$9E : BEQ .skip_bg_updt0 ; canopy layer ?
|
LDA $8C : CMP #$9E : BEQ .skip_bg_updt0 ; canopy layer ?
|
||||||
CMP #$97 : BEQ .skip_bg_updt0 ; fog layer?
|
CMP #$97 : BEQ .skip_bg_updt0 ; fog layer?
|
||||||
@@ -170,10 +170,9 @@ RunClock:
|
|||||||
|
|
||||||
JSR CheckForDailyQuests
|
JSR CheckForDailyQuests
|
||||||
|
|
||||||
LDA #$00 : STA $7EE000
|
LDA.b #$00 : STA.l Hours
|
||||||
.update_palette
|
|
||||||
; check indoors/outdoors
|
; check indoors/outdoors
|
||||||
LDA $1B : BEQ .outdoors1
|
LDA.b $1B : BEQ .outdoors1
|
||||||
RTS
|
RTS
|
||||||
.outdoors1
|
.outdoors1
|
||||||
|
|
||||||
@@ -234,8 +233,53 @@ CheckForDailyQuests:
|
|||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CheckIfNight:
|
||||||
|
{
|
||||||
|
JSR LoadPeacetimeSprites : BCS +
|
||||||
|
RTL
|
||||||
|
+
|
||||||
|
LDA.l GameState : CMP.b #$02 : BCC .day_time
|
||||||
|
LDA Hours : CMP.b #$12 : BCS .night_time
|
||||||
|
LDA Hours : CMP.b #$06 : BCC .night_time
|
||||||
|
.day_time
|
||||||
|
LDA.l GameState
|
||||||
|
RTL
|
||||||
|
.night_time
|
||||||
|
LDA.b #$03
|
||||||
|
RTL
|
||||||
|
}
|
||||||
|
|
||||||
|
CheckIfNight16Bit:
|
||||||
|
{
|
||||||
|
SEP #$30
|
||||||
|
JSR LoadPeacetimeSprites : BCS +
|
||||||
|
REP #$30
|
||||||
|
RTL
|
||||||
|
+
|
||||||
|
REP #$30
|
||||||
|
; Don't change the spriteset during the intro sequence
|
||||||
|
LDA.l GameState : AND.w #$00FF : CMP.w #$0002 : BCC .day_time
|
||||||
|
; 0x12 = 18 hours or 6 pm
|
||||||
|
LDA Hours : AND.w #$00FF : CMP.w #$0012 : BCS .night_time
|
||||||
|
; If it's less than 6 am, jump to night time
|
||||||
|
LDA Hours : AND.w #$00FF : CMP.w #$0006 : BCC .night_time
|
||||||
|
.day_time
|
||||||
|
LDA.l GameState
|
||||||
|
RTL
|
||||||
|
.night_time
|
||||||
|
; Load the gamestate 03 spritesets, but don't change the save ram
|
||||||
|
LDA.l GameState : CLC : ADC #$0001
|
||||||
|
RTL
|
||||||
|
}
|
||||||
|
|
||||||
pushpc
|
pushpc
|
||||||
|
|
||||||
|
; Overworld_LoadSprites
|
||||||
|
org $09C4E3 : JSL CheckIfNight
|
||||||
|
|
||||||
|
; Sprite_LoadGraphicsProperties_light_world_only
|
||||||
|
org $00FC6A : JSL CheckIfNight16Bit
|
||||||
|
|
||||||
; =========================================================
|
; =========================================================
|
||||||
; ----[ Day / Night system * palette effect ]----
|
; ----[ Day / Night system * palette effect ]----
|
||||||
; =========================================================
|
; =========================================================
|
||||||
@@ -259,18 +303,13 @@ RomToPaletteBuffer:
|
|||||||
JSR $C692 ; $02:C692 -> rom to palette buffer for other colors
|
JSR $C692 ; $02:C692 -> rom to palette buffer for other colors
|
||||||
RTL
|
RTL
|
||||||
|
|
||||||
PaletteBuffer_HUD = $7EC300
|
PalBuf300_HUD = $7EC300
|
||||||
PaletteBuffer_BG = $7EC340
|
PalBuf340_BG = $7EC340
|
||||||
PaletteBuffer_Spr = $7EC400
|
PalBuf400_Spr = $7EC400
|
||||||
|
|
||||||
PaletteCgram_HUD = $7EC500
|
PalCgram500_HUD = $7EC500
|
||||||
PaletteCgram_BG = $7EC540
|
PalCgram540_BG = $7EC540
|
||||||
PaletteCgram_Spr = $7EC600
|
PalCgram600_Spr = $7EC600
|
||||||
|
|
||||||
; part of rom pal to buffer routine
|
|
||||||
; $1B/EF61 9F 00 C3 7E STA $7EC300,x[$7E:C422]
|
|
||||||
; $1B/EF3D 9F 00 C3 7E STA $7EC300,x[$7E:C412]
|
|
||||||
; $1B/EF84 9F 00 C3 7E STA $7EC300,x[$7E:C4B2]
|
|
||||||
|
|
||||||
; Palettes_LoadSingle.next_color
|
; Palettes_LoadSingle.next_color
|
||||||
org $1BEF3D : JSL LoadDayNightPaletteEffect
|
org $1BEF3D : JSL LoadDayNightPaletteEffect
|
||||||
@@ -285,14 +324,14 @@ pullpc
|
|||||||
LoadDayNightPaletteEffect:
|
LoadDayNightPaletteEffect:
|
||||||
{
|
{
|
||||||
STA.l !pal_color : CPX #$0041 : BPL .title_check
|
STA.l !pal_color : CPX #$0041 : BPL .title_check
|
||||||
STA.l PaletteBuffer_HUD, X
|
STA.l PalBuf300_HUD, X
|
||||||
RTL
|
RTL
|
||||||
.title_check
|
.title_check
|
||||||
|
|
||||||
; title or file select screen ?
|
; title or file select screen ?
|
||||||
LDA $10 : AND #$00FF : CMP #$0002 : BCS .outin_check
|
LDA $10 : AND #$00FF : CMP #$0002 : BCS .outin_check
|
||||||
LDA.l !pal_color
|
LDA.l !pal_color
|
||||||
STA.l PaletteBuffer_HUD, X
|
STA.l PalBuf300_HUD, X
|
||||||
RTL
|
RTL
|
||||||
.outin_check
|
.outin_check
|
||||||
|
|
||||||
@@ -301,20 +340,20 @@ LoadDayNightPaletteEffect:
|
|||||||
BRA .overworld
|
BRA .overworld
|
||||||
.restorecode
|
.restorecode
|
||||||
LDA.l !pal_color
|
LDA.l !pal_color
|
||||||
STA.l PaletteBuffer_HUD, X
|
STA.l PalBuf300_HUD, X
|
||||||
RTL
|
RTL
|
||||||
|
|
||||||
.overworld
|
.overworld
|
||||||
LDA $1B : AND #$00FF : BEQ .outdoors2
|
LDA $1B : AND #$00FF : BEQ .outdoors2
|
||||||
LDA.l !pal_color
|
LDA.l !pal_color
|
||||||
STA.l PaletteBuffer_HUD,X
|
STA.l PalBuf300_HUD,X
|
||||||
RTL
|
RTL
|
||||||
.outdoors2
|
.outdoors2
|
||||||
|
|
||||||
PHX
|
PHX
|
||||||
JSL ColorSubEffect
|
JSL ColorSubEffect
|
||||||
PLX
|
PLX
|
||||||
STA.l PaletteBuffer_HUD, X
|
STA.l PalBuf300_HUD, X
|
||||||
RTL
|
RTL
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -391,10 +430,10 @@ BackgroundFix:
|
|||||||
BEQ .no_effect ;BRAnch if A=#$0000 (transparent bg)
|
BEQ .no_effect ;BRAnch if A=#$0000 (transparent bg)
|
||||||
JSL ColorSubEffect
|
JSL ColorSubEffect
|
||||||
.no_effect:
|
.no_effect:
|
||||||
STA.l PaletteCgram_HUD
|
STA.l PalCgram500_HUD
|
||||||
STA.l PaletteBuffer_HUD
|
STA.l PalBuf300_HUD
|
||||||
STA.l PaletteCgram_BG
|
STA.l PalCgram540_BG
|
||||||
STA.l PaletteBuffer_BG
|
STA.l PalBuf340_BG
|
||||||
RTL
|
RTL
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -403,8 +442,8 @@ MosaicFix:
|
|||||||
BEQ +
|
BEQ +
|
||||||
JSL ColorSubEffect
|
JSL ColorSubEffect
|
||||||
+
|
+
|
||||||
STA.l PaletteBuffer_HUD
|
STA.l PalBuf300_HUD
|
||||||
STA.l PaletteBuffer_BG
|
STA.l PalBuf340_BG
|
||||||
RTL
|
RTL
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -418,8 +457,8 @@ SubAreasFix:
|
|||||||
SEP #$20
|
SEP #$20
|
||||||
PLX
|
PLX
|
||||||
.no_effect
|
.no_effect
|
||||||
STA.l PaletteBuffer_HUD
|
STA.l PalBuf300_HUD
|
||||||
STA.l PaletteBuffer_BG
|
STA.l PalBuf340_BG
|
||||||
RTL
|
RTL
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -441,63 +480,23 @@ GlovesFix:
|
|||||||
RTL
|
RTL
|
||||||
}
|
}
|
||||||
|
|
||||||
CheckIfNight:
|
|
||||||
{
|
|
||||||
JSR LoadPeacetimeSprites : BCS +
|
|
||||||
RTL
|
|
||||||
+
|
|
||||||
LDA.l GameState : CMP.b #$02 : BCC .day_time
|
|
||||||
LDA $7EE000 : CMP.b #$12 : BCS .night_time
|
|
||||||
LDA $7EE000 : CMP.b #$06 : BCC .night_time
|
|
||||||
.day_time
|
|
||||||
LDA.l GameState
|
|
||||||
RTL
|
|
||||||
.night_time
|
|
||||||
LDA.b #$03
|
|
||||||
RTL
|
|
||||||
}
|
|
||||||
|
|
||||||
ColorBgFix:
|
ColorBgFix:
|
||||||
{
|
{
|
||||||
PHA
|
PHA
|
||||||
SEP #$30
|
SEP #$30
|
||||||
; Check for save and quit
|
; Check for save and quit
|
||||||
LDA.b $10 : CMP.b #$17 : BEQ .vanilla
|
LDA.b $10 : CMP.b #$17 : BEQ .vanilla
|
||||||
REP #$30
|
REP #$30
|
||||||
PLA
|
PLA
|
||||||
STA.l !pal_color
|
STA.l !pal_color
|
||||||
JSL ColorSubEffect
|
JSL ColorSubEffect
|
||||||
STA.l PaletteCgram_HUD
|
STA.l PalCgram500_HUD
|
||||||
STA.l PaletteCgram_BG
|
STA.l PalCgram540_BG
|
||||||
RTL
|
RTL
|
||||||
|
|
||||||
.vanilla
|
.vanilla
|
||||||
REP #$30
|
REP #$30
|
||||||
PLA
|
PLA
|
||||||
STA.l PaletteCgram_HUD
|
STA.l PalCgram500_HUD
|
||||||
RTL
|
|
||||||
}
|
|
||||||
|
|
||||||
CheckIfNight16Bit:
|
|
||||||
{
|
|
||||||
SEP #$30
|
|
||||||
JSR LoadPeacetimeSprites : BCS +
|
|
||||||
REP #$30
|
|
||||||
RTL
|
|
||||||
+
|
|
||||||
REP #$30
|
|
||||||
; Don't change the spriteset during the intro sequence
|
|
||||||
LDA.l GameState : AND.w #$00FF : CMP.w #$0002 : BCC .day_time
|
|
||||||
; 0x12 = 18 hours or 6 pm
|
|
||||||
LDA $7EE000 : AND.w #$00FF : CMP.w #$0012 : BCS .night_time
|
|
||||||
; If it's less than 6 am, jump to night time
|
|
||||||
LDA $7EE000 : AND.w #$00FF : CMP.w #$0006 : BCC .night_time
|
|
||||||
.day_time
|
|
||||||
LDA.l GameState
|
|
||||||
RTL
|
|
||||||
.night_time
|
|
||||||
; Load the gamestate 03 spritesets, but don't change the save ram
|
|
||||||
LDA.l GameState : CLC : ADC #$0001
|
|
||||||
RTL
|
RTL
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -525,7 +524,7 @@ LoadPeacetimeSprites:
|
|||||||
|
|
||||||
FixSaveAndQuit:
|
FixSaveAndQuit:
|
||||||
{
|
{
|
||||||
LDA #$08 : STA $7EE000
|
LDA.b #$08 : STA.l Hours
|
||||||
LDA.l GameState
|
LDA.l GameState
|
||||||
RTL
|
RTL
|
||||||
}
|
}
|
||||||
@@ -533,13 +532,13 @@ FixSaveAndQuit:
|
|||||||
FixShockPalette:
|
FixShockPalette:
|
||||||
{
|
{
|
||||||
PHA
|
PHA
|
||||||
LDA $1B : BNE .indoors
|
LDA.b $1B : BNE .indoors
|
||||||
PLA
|
PLA
|
||||||
STA !pal_color
|
STA !pal_color
|
||||||
PHX
|
PHX
|
||||||
JSL ColorSubEffect
|
JSL ColorSubEffect
|
||||||
PLX
|
PLX
|
||||||
STA.l PaletteCgram_HUD, X
|
STA.l PalCgram500_HUD, X
|
||||||
RTL
|
RTL
|
||||||
.indoors
|
.indoors
|
||||||
PLA
|
PLA
|
||||||
@@ -550,48 +549,39 @@ FixDungeonMapColors:
|
|||||||
{
|
{
|
||||||
PHA
|
PHA
|
||||||
; Cache the current time
|
; Cache the current time
|
||||||
LDA $7EE000 : STA $7EF900
|
LDA Hours : STA $7EF900
|
||||||
LDA $7EE001 : STA $7EF901
|
LDA Minutes : STA $7EF901
|
||||||
; Set the time to 8:00am while map is open
|
; Set the time to 8:00am while map is open
|
||||||
LDA #$08 : STA $7EE000
|
LDA.b #$08 : STA Hours
|
||||||
LDA #$00 : STA $7EE001
|
LDA.b #$00 : STA Minutes
|
||||||
PLA
|
PLA
|
||||||
STA $7EC229
|
STA.l $7EC229
|
||||||
RTL
|
RTL
|
||||||
}
|
}
|
||||||
|
|
||||||
RestoreTimeForDungeonMap:
|
RestoreTimeForDungeonMap:
|
||||||
{
|
{
|
||||||
LDA $7EF900 : STA $7EE000
|
LDA $7EF900 : STA Hours
|
||||||
LDA $7EF901 : STA $7EE001
|
LDA $7EF901 : STA Minutes
|
||||||
LDA.l $7EC017
|
LDA.l $7EC017
|
||||||
RTL
|
RTL
|
||||||
}
|
}
|
||||||
|
|
||||||
pushpc
|
pushpc
|
||||||
|
|
||||||
; Overworld_LoadSprites
|
|
||||||
org $09C4E3 : JSL CheckIfNight
|
|
||||||
|
|
||||||
; Sprite_LoadGraphicsProperties_light_world_only
|
|
||||||
org $00FC6A : JSL CheckIfNight16Bit
|
|
||||||
|
|
||||||
; $0BFE70 -> background color loading routine
|
; $0BFE70 -> background color loading routine
|
||||||
; Background color write fix - 16 bytes
|
; Background color write fix - 16 bytes
|
||||||
; $0B/FEB6 8F 00 C5 7E STA $7EC500
|
; $0B/FEB6 8F 00 C5 7E STA $7EC500
|
||||||
; $0B/FEBA 8F 00 C3 7E STA $7EC300
|
; $0B/FEBA 8F 00 C3 7E STA $7EC300
|
||||||
; $0B/FEBE 8F 40 C5 7E STA $7EC540
|
; $0B/FEBE 8F 40 C5 7E STA $7EC540
|
||||||
; $0B/FEC2 8F 40 C3 7E STA $7EC340
|
; $0B/FEC2 8F 40 C3 7E STA $7EC340
|
||||||
org $0BFEB6
|
org $0BFEB6 : JSL BackgroundFix
|
||||||
JSL BackgroundFix
|
|
||||||
|
|
||||||
; SetBGColorMainBuffer
|
; SetBGColorMainBuffer
|
||||||
org $0ED5F9
|
org $0ED5F9 : JSL ColorBgFix
|
||||||
JSL ColorBgFix
|
|
||||||
|
|
||||||
; OverworldMosaicTransition_HandleScreensAndLoadShroom
|
; OverworldMosaicTransition_HandleScreensAndLoadShroom
|
||||||
org $02AE92
|
org $02AE92 : NOP #6
|
||||||
NOP #6
|
|
||||||
|
|
||||||
; =========================================================
|
; =========================================================
|
||||||
|
|
||||||
@@ -599,8 +589,7 @@ org $02AE92
|
|||||||
; $0E/D601 8F 00 C3 7E STA $7EC300[$7E:C300]
|
; $0E/D601 8F 00 C3 7E STA $7EC300[$7E:C300]
|
||||||
; $0E/D605 8F 40 C3 7E STA $7EC340[$7E:C340]
|
; $0E/D605 8F 40 C3 7E STA $7EC340[$7E:C340]
|
||||||
|
|
||||||
org $0ED601
|
org $0ED601 : JSL SubAreasFix
|
||||||
JSL SubAreasFix
|
|
||||||
|
|
||||||
; =========================================================
|
; =========================================================
|
||||||
; Gloves color loading routine
|
; Gloves color loading routine
|
||||||
@@ -619,20 +608,19 @@ org $0ED601
|
|||||||
; $1B/EE39 6B RTL
|
; $1B/EE39 6B RTL
|
||||||
|
|
||||||
; Palettes_Load_LinkGloves
|
; Palettes_Load_LinkGloves
|
||||||
org $1BEE2D
|
org $1BEE2D : JSL GlovesFix
|
||||||
JSL GlovesFix
|
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
|
|
||||||
; org $0ABA5A
|
; org $0ABA5A
|
||||||
; TODO: Handle overworld map palette for flashing icons
|
; TODO: Handle overworld map palette for flashing icons
|
||||||
|
|
||||||
|
; Module0E_03_00_DarkenAndPrep
|
||||||
org $0ED956 : JSL FixDungeonMapColors
|
org $0ED956 : JSL FixDungeonMapColors
|
||||||
|
|
||||||
org $0AEFA6 : JSL RestoreTimeForDungeonMap
|
; UnderworldMap_RecoverGFX
|
||||||
|
org $0AEFA6 : JSL RestoreTimeForDungeonMap
|
||||||
|
|
||||||
org $0ED745 : JSL FixShockPalette
|
; RefreshLinkEquipmentPalettes
|
||||||
|
org $0ED745 : JSL FixShockPalette
|
||||||
|
|
||||||
org $09F604
|
; GameOver_SaveAndQuit:
|
||||||
GameOver_SaveAndQuit:
|
org $09F604 : JSL FixSaveAndQuit
|
||||||
JSL FixSaveAndQuit
|
|
||||||
Reference in New Issue
Block a user