Skip to content

Commit d3721c9

Browse files
authored
[BotW] Some additions to the Day Length pack (#599)
1 parent 7ce34ed commit d3721c9

File tree

2 files changed

+107
-22
lines changed

2 files changed

+107
-22
lines changed

src/BreathOfTheWild/Mods/DayLength/patch_DayTime.asm

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,15 @@ const_timeMultiplier:
88
.float $timeMultiplier
99

1010
const_cloudMultiplier:
11-
.float $cloudMultiplier
11+
.float $cloudMultiplier + (($cloudMultiplier == 0) * $timeMultiplier)
1212

1313

1414
; Normal Time Mode - Time
1515
multiplyTimeStep:
1616
lfs f7, 0xA4(r30) ; original instruction to load timestep
17-
lis r9, const_timeMultiplier@ha
18-
lfs f8, const_timeMultiplier@l(r9)
17+
lis r4, const_timeMultiplier@ha
18+
lfs f8, const_timeMultiplier@l(r4)
1919
fmuls f7, f7, f8
20-
lwz r9, 0(r6) ; repeat prior instruction for free r9 register
2120
blr
2221

2322
0x0365FF78 = bla multiplyTimeStep
@@ -73,4 +72,18 @@ lbz r12, 0x129(r30) ; Normal load instruction
7372
cmpwi r0, 0
7473
blr
7574

76-
0x0365FE0C = bla calcForceTime2
75+
0x0365FE0C = bla calcForceTime2
76+
77+
78+
clockUnits:
79+
li r0, $clockAdjust
80+
cmpwi r0, 0
81+
beq clockSkip
82+
subf r0, r12, r3 ; original instruction
83+
clockSkip:
84+
blr
85+
86+
0x307C130 = bla clockUnits
87+
88+
89+
0x10301850 = .float $bloodMoonTime

src/BreathOfTheWild/Mods/DayLength/rules.txt

Lines changed: 89 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ $timeCycleMode:int = 0
1010
$timeMultiplier = 1.0
1111
$cloudMultiplier = 1.0
1212
$dayTimeEnum:int = 0
13+
$clockAdjust:int = 1
14+
$bloodMoonTime = 2520
1315

1416

1517
[Preset]
@@ -29,99 +31,169 @@ name = 15 seconds
2931
category = Day Length
3032
condition = ($timeCycleMode == 1)
3133
$timeMultiplier = 96
32-
$cloudMultiplier = 96
3334

3435
[Preset]
3536
name = 30 seconds
3637
category = Day Length
3738
condition = ($timeCycleMode == 1)
3839
$timeMultiplier = 48
39-
$cloudMultiplier = 48
4040

4141
[Preset]
42-
name = 1 minutes
42+
name = 1 minute
4343
category = Day Length
4444
condition = ($timeCycleMode == 1)
4545
$timeMultiplier = 24
46-
$cloudMultiplier = 24
4746

4847
[Preset]
4948
name = 6 minutes
5049
category = Day Length
5150
condition = ($timeCycleMode == 1)
5251
$timeMultiplier = 4
53-
$cloudMultiplier = 4
5452

5553
[Preset]
5654
name = 12 minutes
5755
category = Day Length
5856
condition = ($timeCycleMode == 1)
5957
$timeMultiplier = 2
60-
$cloudMultiplier = 2
6158

6259
[Preset]
6360
name = 24 minutes (Default)
6461
category = Day Length
6562
condition = ($timeCycleMode == 1)
6663
default = 1
6764
$timeMultiplier = 1.0
68-
$cloudMultiplier = 1.0
6965

7066
[Preset]
7167
name = 36 minutes
7268
category = Day Length
7369
condition = ($timeCycleMode == 1)
7470
$timeMultiplier = 0.75
75-
$cloudMultiplier = 0.75
7671

7772
[Preset]
7873
name = 48 minutes
7974
category = Day Length
8075
condition = ($timeCycleMode == 1)
8176
$timeMultiplier = 0.5
82-
$cloudMultiplier = 0.5
8377

8478
[Preset]
8579
name = 72 minutes
8680
category = Day Length
8781
condition = ($timeCycleMode == 1)
8882
$timeMultiplier = (1/3)
89-
$cloudMultiplier = (1/3)
9083

9184
[Preset]
9285
name = 96 minutes
9386
category = Day Length
9487
condition = ($timeCycleMode == 1)
9588
$timeMultiplier = 0.25
96-
$cloudMultiplier = 0.25
9789

9890
[Preset]
9991
name = 2 hours
10092
category = Day Length
10193
condition = ($timeCycleMode == 1)
10294
$timeMultiplier = 0.2
103-
$cloudMultiplier = 0.2
10495

10596
[Preset]
10697
name = 4 hours
10798
category = Day Length
10899
condition = ($timeCycleMode == 1)
109100
$timeMultiplier = 0.1
110-
$cloudMultiplier = 0.1
111101

112102
[Preset]
113103
name = 12 hours
114104
category = Day Length
115105
condition = ($timeCycleMode == 1)
116-
$timeMultiplier = (1/3)/10
117-
$cloudMultiplier = (1/3)/10
106+
$timeMultiplier = (1/30)
118107

119108
[Preset]
120109
name = 24 hours
121110
category = Day Length
122111
condition = ($timeCycleMode == 1)
123-
$timeMultiplier = (1/6)/10
124-
$cloudMultiplier = (1/6)/10
112+
$timeMultiplier = (1/60)
113+
114+
115+
[Preset]
116+
name = Normal (No Speedup/Slowdown)
117+
category = Cloud Speed
118+
condition = ($timeCycleMode == 1)
119+
$cloudMultiplier = 1.0
120+
121+
[Preset]
122+
name = Scaled with day length (Default)
123+
category = Cloud Speed
124+
condition = ($timeCycleMode == 1)
125+
default = 1
126+
$cloudMultiplier = 0
127+
128+
129+
[Preset]
130+
name = Update every 5 minutes (Default)
131+
category = Clock Increment Frequency
132+
condition = ($timeCycleMode == 1)
133+
default = 1
134+
$clockAdjust:int = 1
135+
136+
[Preset]
137+
name = Update every minute
138+
category = Clock Increment Frequency
139+
condition = ($timeCycleMode == 1)
140+
$clockAdjust:int = 0
141+
142+
143+
[Preset]
144+
name = 28 days
145+
category = Time between Blood Moons
146+
condition = ($timeCycleMode == 1)
147+
$bloodMoonTime = (28*360)
148+
149+
[Preset]
150+
name = 14 days
151+
category = Time between Blood Moons
152+
condition = ($timeCycleMode == 1)
153+
$bloodMoonTime = (14*360)
154+
155+
[Preset]
156+
name = 7 days (Default)
157+
category = Time between Blood Moons
158+
condition = ($timeCycleMode == 1)
159+
default = 1
160+
$bloodMoonTime = (7*360)
161+
162+
[Preset]
163+
name = 6 days
164+
category = Time between Blood Moons
165+
condition = ($timeCycleMode == 1)
166+
$bloodMoonTime = (6*360-1)
167+
168+
[Preset]
169+
name = 5 days
170+
category = Time between Blood Moons
171+
condition = ($timeCycleMode == 1)
172+
$bloodMoonTime = (5*360-1)
173+
174+
[Preset]
175+
name = 4 days
176+
category = Time between Blood Moons
177+
condition = ($timeCycleMode == 1)
178+
$bloodMoonTime = (4*360-1)
179+
180+
[Preset]
181+
name = 3 days
182+
category = Time between Blood Moons
183+
condition = ($timeCycleMode == 1)
184+
$bloodMoonTime = (3*360-1)
185+
186+
[Preset]
187+
name = 2 days
188+
category = Time between Blood Moons
189+
condition = ($timeCycleMode == 1)
190+
$bloodMoonTime = (2*360-1)
191+
192+
[Preset]
193+
name = 1 day
194+
category = Time between Blood Moons
195+
condition = ($timeCycleMode == 1)
196+
$bloodMoonTime = (1*360-1)
125197

126198

127199
[Preset]

0 commit comments

Comments
 (0)