Skip to content

Commit ef6da25

Browse files
authored
[TPHD] Add multiple new cheats and a new Screen Mirroring pack (#721)
Thanks to @Ori-Jakob for adding some new exciting graphic packs: - New Screen Mirroring mode to force the mirror or normal mode. This works irrespective of the type of save you have (Normal or Hero mode). It even works on the fly while playing the game. - The new mega cheats graphic pack which includes the following options: - Moon Jump - Always Great Spin Attack - Rupee Multiplier - Damage Multiplier - Never Decrease (Ammo) - Climb/Crawl Fast - Faster Rolling - Drop Duration Modifiers
1 parent 465ca17 commit ef6da25

File tree

4 files changed

+685
-0
lines changed

4 files changed

+685
-0
lines changed
Lines changed: 241 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,241 @@
1+
[TPHDv81]
2+
moduleMatches = 0x1A03E108, 0xA3175EEA
3+
4+
.origin = codecave
5+
6+
;########### variable setup
7+
_controlleraddy:
8+
.int $controller
9+
10+
_moonjumpBtnCombo:
11+
.int $moon_jmp_btn_combo
12+
13+
_gravity:
14+
.float $gravity
15+
16+
_heartdecmult:
17+
.float $heart_dec_mult
18+
19+
_climbspeed:
20+
.float $climb_speed
21+
22+
_climbfast:
23+
.byte $climb_fast
24+
25+
_rupmult:
26+
.byte $rup_mult
27+
28+
_rupinc:
29+
.byte $rup_inc
30+
31+
_heartdec:
32+
.byte $heart_dec
33+
34+
_arrowdec:
35+
.byte $arrow_dec
36+
37+
_bombdec:
38+
.byte $bomb_dec
39+
40+
_oildec:
41+
.byte $oil_dec
42+
43+
_seeddec:
44+
.byte $seed_dec
45+
46+
;###########
47+
48+
49+
;########### asm modifications
50+
51+
52+
;########### rupee multiplier and rupees always increase
53+
rupeelogic:
54+
lwz r12, +0x6280(r31)
55+
lis r4, _rupmult@ha
56+
lbz r16, _rupmult@l(r4)
57+
lbz r4, _rupinc@l(r4)
58+
cmpwi r12, 0
59+
bge handle_multiply
60+
handle_spend:
61+
cmpwi r4, 1
62+
bne rupreturn
63+
li r17, 0
64+
sub r12, r17, r12
65+
b handle_multiply
66+
handle_multiply:
67+
cmpwi r16, 2
68+
blt rupreturn
69+
mullw r12, r12, r16
70+
rupreturn:
71+
blr
72+
73+
;###########
74+
75+
76+
;########### health never decreases and damage taken multiplier
77+
healthdeclogic:
78+
lis r14, _heartdec@ha
79+
lbz r15, _heartdec@l(r14)
80+
81+
82+
checkhealthdec:
83+
cmpwi r15, 1
84+
fsub f26, f26, f26
85+
fcmpu cr1, f8, f26
86+
bgt cr1, healthdecreturn
87+
beq nohealthdec
88+
lfs f26, _heartdecmult@l(r14)
89+
fmul f8, f26, f8
90+
b healthdecreturn
91+
92+
nohealthdec:
93+
fsub f8, f8, f8
94+
95+
healthdecreturn:
96+
fadds f9, f9, f8
97+
blr
98+
99+
;###########
100+
101+
;########### arrows never decrease logic
102+
arrowlogic:
103+
lis r21, _arrowdec@ha
104+
lbz r22, _arrowdec@l(r21)
105+
cmpwi cr1, r22,0
106+
beq cr1, arrowreturn
107+
cmpwi cr1, r11, 0
108+
bgt cr1, arrowreturn
109+
xor r11, r11, r11
110+
111+
arrowreturn:
112+
add r7, r10, r11
113+
blr
114+
115+
;###########
116+
117+
;########### bombs never decrease logic
118+
bomblogic:
119+
lis r14, _bombdec@ha
120+
lbz r15, _bombdec@l(r14)
121+
cmpwi cr1, r15, 0
122+
beq cr1, bombreturn
123+
lbz r15, +0x1(r12)
124+
cmpw cr1, r15, r5
125+
blt cr1, bombreturn
126+
mr r5,r15
127+
128+
bombreturn:
129+
stb r5,+0x1(r12)
130+
blr
131+
132+
;###########
133+
134+
;########### bombs never decrease logic
135+
oillogic:
136+
lis r14, _oildec@ha
137+
lbz r15, _oildec@l(r14)
138+
cmpwi cr1, r15, 0
139+
beq cr1, oilreturn
140+
mr r5,r0
141+
142+
oilreturn:
143+
sth r5, +0xA(r30)
144+
blr
145+
146+
;###########
147+
148+
;########### bombs never decrease logic
149+
seedlogic:
150+
lis r14, _seeddec@ha
151+
lbz r15, _seeddec@l(r14)
152+
cmpwi cr1, r15, 0
153+
beq cr1, seedreturn
154+
lbz r15, +0xf4(r8)
155+
cmpw cr1, r15, r5
156+
blt cr1, seedreturn
157+
mr r5,r15
158+
159+
seedreturn:
160+
stb r5, +0xf4(r8)
161+
blr
162+
163+
;###########
164+
165+
;########### moonjump logic
166+
moonjumplogic:
167+
lis r17, _gravity@ha
168+
lfs f20, _gravity@l(r17)
169+
fsub f19, f19, f19
170+
fcmpu f20, f19
171+
beq moonreturn
172+
lwz r18, _controlleraddy@l(r17)
173+
lhz r18, +0x02(r18)
174+
lwz r17, _moonjumpBtnCombo@l(r17)
175+
cmpw r18, r17
176+
bne moonreturn
177+
fmr f7, f20
178+
179+
moonreturn:
180+
stfs f7, +0x4fc(r28)
181+
blr
182+
183+
;###########
184+
185+
186+
;########### climb fast logic
187+
climblogic:
188+
lis r14, _climbfast@ha
189+
lbz r15, _climbfast@l(r14)
190+
cmpwi r15, 0
191+
beq originalclimb
192+
lfs f13, _climbspeed@l(r14)
193+
b climbreturn
194+
195+
originalclimb:
196+
lfs f13, +0x728c(r12)
197+
198+
climbreturn:
199+
fmuls f1, f12, f13
200+
blr
201+
202+
;###########
203+
204+
;########### crawl fast logic
205+
crawllogic:
206+
lis r14, _climbfast@ha
207+
lbz r15, _climbfast@l(r14)
208+
cmpwi r15, 0
209+
beq originalcrawl
210+
lfs f0, _climbspeed@l(r14)
211+
b crawlreturn
212+
213+
originalcrawl:
214+
lfs f0, +0x728c(r12)
215+
216+
crawlreturn:
217+
fmadds f1, f0, f12, f13
218+
blr
219+
220+
;###########
221+
222+
223+
;########### Hooks
224+
0x02A1DB74 = bla rupeelogic
225+
0x02A1C664 = bla healthdeclogic
226+
0x02A22734 = bla arrowlogic
227+
0x02AA6764 = ba bomblogic
228+
0x02A1CBD0 = bla oillogic
229+
0x02A22C00 = bla seedlogic
230+
0x02071db8 = bla moonjumplogic
231+
0x0203f5d0 = ba climblogic
232+
0x020a8ed8 = ba climblogic
233+
0x020a6650 = ba climblogic
234+
0x0205367c = ba crawllogic
235+
0x0204d1d4 = .int $roll_asm
236+
237+
0x0203ac14 = .int $always_spin1
238+
0x0203ac24 = .int $always_spin2
239+
0x1000790C = .float $roll_speed
240+
0x1002C076 = .short $drop1
241+
0x1002C078 = .short $drop2

0 commit comments

Comments
 (0)