time system housekeeping

This commit is contained in:
scawful
2024-12-08 20:12:32 -05:00
parent efcd0f0ac3
commit 26f8d7a862

View File

@@ -5,14 +5,13 @@
!hud_min_high = $7EC7CA !hud_min_high = $7EC7CA
!hud_hours_low = $7EC7C6 !hud_hours_low = $7EC7C6
!hud_hours_high = $7EC7C4 !hud_hours_high = $7EC7C4
!hud_template = $0DFF07
Hours = $7EE000 Hours = $7EE000
Minutes = $7EE001 Minutes = $7EE001
TimeSpeed = $7EE002 TimeSpeed = $7EE002
; HUD Template adjusts timer's color ; HUD Template adjusts timer's color
org !hud_template org $0DFF07
db $10, $24, $11, $24 db $10, $24, $11, $24
db $6C, $25 db $6C, $25
db $90, $24, $90, $24 db $90, $24, $90, $24
@@ -118,8 +117,7 @@ RunClock:
.dialog .dialog
; check submodule to prevent the counter from increasing if save/menu open ; check submodule to prevent the counter from increasing if save/menu open
LDA $11 LDA $11 : CMP #$02 : BEQ .counter_increasing ; NPC/signs speech
CMP #$02 : BEQ .counter_increasing ; NPC/signs speech
RTS RTS
.counter_increasing .counter_increasing
@@ -254,12 +252,10 @@ PaletteCgram_Spr = $7EC600
; $1B/EF84 9F 00 C3 7E STA $7EC300,x[$7E:C4B2] ; $1B/EF84 9F 00 C3 7E STA $7EC300,x[$7E:C4B2]
; Palettes_LoadSingle.next_color ; Palettes_LoadSingle.next_color
org $1BEF3D org $1BEF3D : JSL LoadDayNightPaletteEffect
JSL LoadDayNightPaletteEffect
; Palettes_LoadMultiple.next_color ; Palettes_LoadMultiple.next_color
org $1BEF61 org $1BEF61 : JSL LoadDayNightPaletteEffect
JSL LoadDayNightPaletteEffect
; Palettes_LoadMultiple_Arbitrary.next_color ; Palettes_LoadMultiple_Arbitrary.next_color
org $1BEF84 org $1BEF84
@@ -308,34 +304,36 @@ LoadDayNightPaletteEffect:
ColorSubEffect: ColorSubEffect:
{ {
LDA.l Hours : AND #$00FF : CLC LDA.l Hours : AND #$00FF : CLC : ADC.l Hours ; hours * 2
ADC.l Hours ; hours * 2
AND #$00FF : TAX AND #$00FF : TAX
; Subtract amount to blue field based on a table
LDA.l !pal_color : AND #$7C00 : STA !blue_value LDA.l !pal_color : AND #$7C00 : STA !blue_value
SEC : SBC.l blue_table, X ; Subtract amount to blue field based on a table SEC : SBC.l blue_table, X : STA !temp_value
STA !temp_value
; mask out everything except the blue bits ; mask out everything except the blue bits
AND #$7C00 : CMP !temp_value : BEQ .no_blue_sign_change ; overflow ? AND #$7C00 : CMP !temp_value : BEQ .no_blue_sign_change ; overflow ?
LDA #$0400 ; LDA smallest blue value LDA #$0400 ; LDA smallest blue value
.no_blue_sign_change .no_blue_sign_change
STA.l !blue_value STA.l !blue_value
; Subtract amount to blue field based on a table
LDA !pal_color : AND #$03E0 : STA !green_value LDA !pal_color : AND #$03E0 : STA !green_value
SEC : SBC.l green_table,x ; Subtract amount to blue field based on a table SEC : SBC.l green_table, X : STA.l !temp_value
STA.l !temp_value
; Mask out everything except the green bits ; Mask out everything except the green bits
AND #$03E0 : CMP !temp_value : BEQ .no_green_sign_change ; overflow ? AND #$03E0 : CMP !temp_value : BEQ .no_green_sign_change ; overflow ?
LDA #$0020 ; LDA smallest green value LDA #$0020 ; LDA smallest green value
.no_green_sign_change .no_green_sign_change
STA.l !green_value STA.l !green_value
; substract amount to red field based on a table
LDA.l !pal_color : AND #$001F : STA.l !red_value LDA.l !pal_color : AND #$001F : STA.l !red_value
SEC : SBC.l red_table,x ; substract amount to red field based on a table SEC : SBC.l red_table, X : STA.l !temp_value
STA.l !temp_value
AND #$001F ; mask out everything except the red bits ; mask out everything except the red bits
CMP !temp_value : BEQ .no_red_sign_change ; overflow ? AND #$001F : CMP !temp_value : BEQ .no_red_sign_change ; overflow ?
LDA #$0001 ; LDA smallest red value LDA #$0001 ; LDA smallest red value
.no_red_sign_change .no_red_sign_change
STA.l !red_value STA.l !red_value
@@ -345,7 +343,8 @@ ColorSubEffect:
; ========================================================= ; =========================================================
; color_sub_tables : 24 * 2 bytes each = 48 bytes (2 bytes = 1 color sub for each hour) ; color_sub_tables : 24 * 2 bytes each = 48 bytes
; (2 bytes = 1 color sub for each hour)
blue_table: blue_table:
dw $1000, $1000, $1000, $1000 dw $1000, $1000, $1000, $1000
@@ -557,13 +556,10 @@ RestoreTimeForDungeonMap:
pushpc pushpc
; Overworld_LoadSprites ; Overworld_LoadSprites
org $09C4E3 org $09C4E3 : JSL CheckIfNight
JSL CheckIfNight
; Sprite_LoadGraphicsProperties_light_world_only ; Sprite_LoadGraphicsProperties_light_world_only
org $00FC6A org $00FC6A : JSL CheckIfNight16Bit
JSL CheckIfNight16Bit
; $0BFE70 -> background color loading routine ; $0BFE70 -> background color loading routine
; Background color write fix - 16 bytes ; Background color write fix - 16 bytes
@@ -571,16 +567,12 @@ org $00FC6A
; $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
JSL BackgroundFix
if ZS_CUSTOM_OW_V2 == 0
; Custom BG Color Mosaic Background Color fix
org $028464
NOP #6
else
; SetBGColorMainBuffer ; SetBGColorMainBuffer
org $0ED5F9 org $0ED5F9
JSL ColorBgFix JSL ColorBgFix
endif
; OverworldMosaicTransition_HandleScreensAndLoadShroom ; OverworldMosaicTransition_HandleScreensAndLoadShroom
org $02AE92 org $02AE92