Skip to content

Collectables

All known collectable related variables that are hardcoded in the exe. All offsets are for the newest version of Ty (version 1.44)


Totals Screen

Variable Variable Type Hex Offset Notes
Opals int 0xE6A91
Rainbow Scales int 0xE6AB6 Value for the totals screen, make sure to edit the other one for Rainbow Cliffs too
Talismans int 0xE6ACF
Cogs int 0xE6AE8
Bilbies int 0xE6B01
Thunder Eggs int 0xE6B1A
Frames int 0xE6B33

Totals for Each Level

Variable Variable Type Hex Offset Notes
Level Total Opals int 0xE5277 Total amount for all levels
RC Rainbow Scales int 0xE527C Value for Rainbow Cliffs, doesn't affect totals screen

Would be nice to have the max golden cogs value but unfortunately haven't found them yet

Requirements

Variable Variable Type Hex Offset Notes
TE Machine Opal Requirement int 0x136904 Requirement for all levels

Picture Frames

Picture frames work quite differently from the other variables, their IDs get kept track of per level, and counted in a unique way. They all get counted from the address assigned in the LEA(load effective address) up until the address ebp -20, except for the bonus levels which work a bit differently, they instead count up until address ebp -136.

Increasing the amount of per level isn't fully possible but can be done with some trickery, decreasing the amount per level is much easier though, custom code or figuring out how to shuffle values around for each level without crashing would really help with being able to increase them

To edit which picture frames are assigned to which level just edit the ID at the offset, its even possible to have 2 levels have the same ID.

To lower the amount per level just go to the LEA offset and change the value to a lower variable pointer address, eg. if you wanted to change Rainbow cliffs to have 7 picture frames instead of 9 you would change the LEA from -52, to -44. Also keep in mind which variables will be cut off from lowering the amount and reassign the IDs as needed.

Increasing the amount of IDs is a bit more complex and quite limited, it requires setting a level that is assigned IDs before another level (all the levels below are ordered) to have the same amount or less than the usual amount the next level would have. eg. setting Rainbow cliffs LEA to -44 you can then set Two ups LEA up to -52 and use IDs at address -52 and -48 where Rainbow cliffs sets them for Two up as they have already been assigned a value and are no longer being used for Rainbow cliffs. This will then make Rainbow cliffs have 7 IDs and Two up have either 8 or 9.

But for something like Lyre Lyre which only has 5 and the level before it, snow worries, has 24, you would need to lower snow worries down to at least 5 IDs to then be able to add new unique IDs to Lyre to not have any overlap between the two levels

You could even go across multiple levels to increase the amount of ID, eg. could set Rainbow Cliffs and Two up to 6 frames, to then be able to increase the amount in Walk in the Park up to 9, just keep in mind you would need to set the ID at -44 with Two Ups addresses

To disable picture frames showing on the totals screen for a level just change the LEA to -16 (F0).

Below is offsets for each picture frame ID (all IDs are ints), the levels they are assigned to by default, and the pointer address for the local variable the IDs are located by default (reference for editing the LEA opcode)

Rainbow Cliffs (Z1)

Total frames: 9

LEA Value Offset: 0x210E

ID Hex Offset Variable Pointer Address
0 0x2107 ebp -52
1 0x2112 ebp -48
2 0x211f ebp -44
3 0x2126 ebp -40
4 0x212d ebp -36
5 0x2134 ebp -32
6 0x213b ebp -28
7 0x2142 ebp -24
8 0x2149 ebp -20

Two Up (A1)

Total frames: 7

LEA Value Offset: 0x21D7

ID Hex Offset Variable Pointer Address
9 0x21d0 ebp -44
10 0x21db ebp -40
11 0x21e3 ebp -36
12 0x21ea ebp -32
13 0x21f1 ebp -28
14 0x21f8 ebp -24
15 0x21ff ebp -20

Walk in the Park (A2)

Total frames: 6

LEA Value Offset: 0x2242

ID Hex Offset Variable Pointer Address
16 0x223b ebp -40
17 0x2246 ebp -36
18 0x224e ebp -32
19 0x2255 ebp -28
20 0x225c ebp -24
21 0x2263 ebp -20

Ship Rex (A3)

Total frames: 9

LEA Value Offset: 0x22F7

ID Hex Offset Variable Pointer Address
22 0x2291 ebp -52
23 0x2298 ebp -48
24 0x229f ebp -44
25 0x22a6 ebp -40
26 0x22ad ebp -36
27 0x22b4 ebp -32
28 0x22bb ebp -28
29 0x22c2 ebp -24
30 0x22c9 ebp -20

Bridge on the River Ty (B1)

Total frames: 20

LEA Value Offset: 0x2341

ID Hex Offset Variable Pointer Address
31 0x233a ebp -96
32 0x2345 ebp -92
33 0x234d ebp -88
34 0x2354 ebp -84
35 0x235b ebp -80
36 0x2362 ebp -76
37 0x2369 ebp -72
38 0x2370 ebp -68
39 0x2377 ebp -64
40 0x237e ebp -60
41 0x2385 ebp -56
42 0x238c ebp -52
43 0x2393 ebp -48
44 0x239a ebp -44
45 0x23a1 ebp -40
46 0x23a8 ebp -36
47 0x23af ebp -32
48 0x23b6 ebp -28
49 0x23bd ebp -24
50 0x23c4 ebp -20

Snow Worries (B2)

Total frames: 24

LEA Value Offset: 0x2407

ID Hex Offset Variable Pointer Address
51 0x2400 ebp -112
52 0x240b ebp -108
53 0x2413 ebp -104
54 0x241a ebp -100
55 0x2421 ebp -96
56 0x2428 ebp -92
57 0x242f ebp -88
58 0x2436 ebp -84
59 0x243d ebp -80
60 0x2444 ebp -76
61 0x244b ebp -72
62 0x2452 ebp -68
63 0x2459 ebp -64
64 0x2460 ebp -60
65 0x2467 ebp -56
66 0x246e ebp -52
67 0x2475 ebp -48
68 0x247c ebp -44
69 0x2483 ebp -40
70 0x248a ebp -36
71 0x2491 ebp -32
72 0x2498 ebp -28
73 0x249f ebp -24
74 0x24a6 ebp -20

Lyre, Lyre Pants on Fire (C1)

Total frames: 5

LEA Value Offset: 0x252D

ID Hex Offset Variable Pointer Address
75 0x2526 ebp -36
76 0x2531 ebp -32
77 0x2539 ebp -28
78 0x2540 ebp -24
79 0x2547 ebp -20

Beyond the Black Stump (C2)

Total frames: 29

First variable ebp -132 uses a int for the address as its too big for a signed byte

LEA Value Offset: 0x258D

ID Hex Offset Variable Pointer Address
80 0x2586 ebp -132
81 0x2594 ebp -128
82 0x259c ebp -124
83 0x25a3 ebp -120
84 0x25aa ebp -116
85 0x25b1 ebp -112
86 0x25b8 ebp -108
87 0x25bf ebp -104
88 0x25c6 ebp -100
89 0x25cd ebp -96
90 0x25d4 ebp -92
91 0x25db ebp -88
92 0x25e2 ebp -84
93 0x25e9 ebp -80
94 0x25f0 ebp -76
95 0x25f7 ebp -72
96 0x25fe ebp -68
97 0x2605 ebp -64
98 0x260c ebp -60
99 0x2613 ebp -56
100 0x261a ebp -52
101 0x2621 ebp -48
102 0x2628 ebp -44
103 0x262f ebp -40
104 0x2636 ebp -36
105 0x263d ebp -32
106 0x2644 ebp -28
107 0x264b ebp -24
108 0x2652 ebp -20

Rex Marks the Spot (C3)

Total frames: 18

LEA Value Offset: 0x26DD

ID Hex Offset Variable Pointer Address
109 0x2680 ebp -88
110 0x2687 ebp -84
111 0x268e ebp -80
112 0x2695 ebp -76
113 0x269c ebp -72
114 0x26a3 ebp -68
115 0x26aa ebp -64
116 0x26b1 ebp -60
117 0x26b8 ebp -56
118 0x26bf ebp -52
119 0x26c6 ebp -48
120 0x26d6 ebp -44
121 0x26e1 ebp -40
122 0x26ee ebp -36
123 0x26f5 ebp -32
124 0x26fc ebp -28
125 0x2703 ebp -24
126 0x270a ebp -20

Bonus World [Day] (E2)

Total frames: 123

The bonus worlds work a bit different and end on a different offset and use ints for the memory addresses

LEA Value Offset: 0x2C84

ID Hex Offset Variable Pointer Address
127 0x2807 ebp -624
128 0x2811 ebp -620
129 0x281b ebp -616
130 0x2825 ebp -612
131 0x282f ebp -608
132 0x2839 ebp -604
133 0x2843 ebp -600
134 0x284d ebp -596
135 0x2857 ebp -592
136 0x2861 ebp -588
137 0x286b ebp -584
138 0x2875 ebp -580
139 0x287f ebp -576
140 0x2889 ebp -572
141 0x2893 ebp -568
142 0x289d ebp -564
143 0x28a7 ebp -560
144 0x28b1 ebp -556
145 0x28bb ebp -552
146 0x28c5 ebp -548
147 0x28cf ebp -544
148 0x28d9 ebp -540
149 0x28e3 ebp -536
150 0x28ed ebp -532
151 0x28f7 ebp -528
152 0x2901 ebp -524
153 0x290b ebp -520
154 0x2915 ebp -516
155 0x291f ebp -512
156 0x2929 ebp -508
157 0x2933 ebp -504
158 0x293d ebp -500
159 0x2947 ebp -496
160 0x2951 ebp -492
161 0x295b ebp -488
162 0x2965 ebp -484
163 0x296f ebp -480
164 0x2979 ebp -476
165 0x2983 ebp -472
166 0x298d ebp -468
167 0x2997 ebp -464
168 0x29a1 ebp -460
169 0x29ab ebp -456
170 0x29b5 ebp -452
171 0x29bf ebp -448
172 0x29c9 ebp -444
173 0x29d3 ebp -440
174 0x29dd ebp -436
175 0x29e7 ebp -432
176 0x29f1 ebp -428
177 0x29fb ebp -424
178 0x2a05 ebp -420
179 0x2a0f ebp -416
180 0x2a19 ebp -412
181 0x2a23 ebp -408
182 0x2a2d ebp -404
183 0x2a37 ebp -400
184 0x2a41 ebp -396
185 0x2a4b ebp -392
186 0x2a55 ebp -388
187 0x2a5f ebp -384
188 0x2a69 ebp -380
189 0x2a73 ebp -376
190 0x2a7d ebp -372
191 0x2a87 ebp -368
192 0x2a91 ebp -364
193 0x2a9b ebp -360
194 0x2aa5 ebp -356
195 0x2aaf ebp -352
196 0x2ab9 ebp -348
197 0x2ac3 ebp -344
198 0x2acd ebp -340
199 0x2ad7 ebp -336
200 0x2ae1 ebp -332
201 0x2aeb ebp -328
202 0x2af5 ebp -324
203 0x2aff ebp -320
204 0x2b09 ebp -316
205 0x2b13 ebp -312
206 0x2b1d ebp -308
207 0x2b27 ebp -304
208 0x2b31 ebp -300
209 0x2b3b ebp -296
210 0x2b45 ebp -292
211 0x2b4f ebp -288
212 0x2b59 ebp -284
213 0x2b63 ebp -280
214 0x2b6d ebp -276
215 0x2b77 ebp -272
216 0x2b81 ebp -268
217 0x2b8b ebp -264
218 0x2b95 ebp -260
219 0x2b9f ebp -256
220 0x2ba9 ebp -252
221 0x2bb3 ebp -248
222 0x2bbd ebp -244
223 0x2bc7 ebp -240
224 0x2bd1 ebp -236
225 0x2bdb ebp -232
226 0x2be5 ebp -228
227 0x2bef ebp -224
228 0x2bf9 ebp -220
229 0x2c03 ebp -216
230 0x2c0d ebp -212
231 0x2c17 ebp -208
232 0x2c21 ebp -204
233 0x2c2b ebp -200
234 0x2c35 ebp -196
235 0x2c3f ebp -192
236 0x2c49 ebp -188
237 0x2c53 ebp -184
238 0x2c5d ebp -180
239 0x2c67 ebp -176
240 0x2c7d ebp -172
241 0x2c8e ebp -168
242 0x2c9e ebp -164
243 0x2ca8 ebp -160
244 0x2cb2 ebp -156
245 0x2cbc ebp -152
246 0x2cc6 ebp -148
247 0x2cd0 ebp -144
248 0x2cda ebp -140
249 0x2ce4 ebp -136

Bonus World [Night] (E3)

Total frames: 123

LEA Value Offset: 0x2F76

ID Hex Offset Variable Pointer Address
250 0x2d15 ebp -624
251 0x2d1f ebp -620
252 0x2d29 ebp -616
253 0x2d33 ebp -612
254 0x2d3d ebp -608
255 0x2d47 ebp -604
256 0x2d51 ebp -600
257 0x2d5b ebp -596
258 0x2d65 ebp -592
259 0x2d6f ebp -588
260 0x2d79 ebp -584
261 0x2d83 ebp -580
262 0x2d8d ebp -576
263 0x2d97 ebp -572
264 0x2da1 ebp -568
265 0x2dab ebp -564
266 0x2db5 ebp -560
267 0x2dbf ebp -556
268 0x2dc9 ebp -552
269 0x2dd3 ebp -548
270 0x2ddd ebp -544
271 0x2de7 ebp -540
272 0x2df1 ebp -536
273 0x2dfb ebp -532
274 0x2e05 ebp -528
275 0x2e0f ebp -524
276 0x2e19 ebp -520
277 0x2e23 ebp -516
278 0x2e2d ebp -512
279 0x2e37 ebp -508
280 0x2e41 ebp -504
281 0x2e4b ebp -500
282 0x2e55 ebp -496
283 0x2e5f ebp -492
284 0x2e69 ebp -488
285 0x2e73 ebp -484
286 0x2e7d ebp -480
287 0x2e87 ebp -476
288 0x2e91 ebp -472
289 0x2e9b ebp -468
290 0x2ea5 ebp -464
291 0x2eaf ebp -460
292 0x2eb9 ebp -456
293 0x2ec3 ebp -452
294 0x2ecd ebp -448
295 0x2ed7 ebp -444
296 0x2ee1 ebp -440
297 0x2eeb ebp -436
298 0x2ef5 ebp -432
299 0x2eff ebp -428
300 0x2f09 ebp -424
301 0x2f13 ebp -420
302 0x2f1d ebp -416
303 0x2f27 ebp -412
304 0x2f31 ebp -408
305 0x2f3b ebp -404
306 0x2f45 ebp -400
307 0x2f4f ebp -396
308 0x2f59 ebp -392
309 0x2f6f ebp -388
310 0x2f80 ebp -384
311 0x2f90 ebp -380
312 0x2f9a ebp -376
313 0x2fa4 ebp -372
314 0x2fae ebp -368
315 0x2fb8 ebp -364
316 0x2fc2 ebp -360
317 0x2fcc ebp -356
318 0x2fd6 ebp -352
319 0x2fe0 ebp -348
320 0x2fea ebp -344
321 0x2ff4 ebp -340
322 0x2ffe ebp -336
323 0x3008 ebp -332
324 0x3012 ebp -328
325 0x301c ebp -324
326 0x3026 ebp -320
327 0x3030 ebp -316
328 0x303a ebp -312
329 0x3044 ebp -308
330 0x304e ebp -304
331 0x3058 ebp -300
332 0x3062 ebp -296
333 0x306c ebp -292
334 0x3076 ebp -288
335 0x3080 ebp -284
336 0x308a ebp -280
337 0x3094 ebp -276
338 0x309e ebp -272
339 0x30a8 ebp -268
340 0x30b2 ebp -264
341 0x30bc ebp -260
342 0x30c6 ebp -256
343 0x30d0 ebp -252
344 0x30da ebp -248
345 0x30e4 ebp -244
346 0x30ee ebp -240
347 0x30f8 ebp -236
348 0x3102 ebp -232
349 0x310c ebp -228
350 0x3116 ebp -224
351 0x3120 ebp -220
352 0x312a ebp -216
353 0x3134 ebp -212
354 0x313e ebp -208
355 0x3148 ebp -204
356 0x3152 ebp -200
357 0x315c ebp -196
358 0x3166 ebp -192
359 0x3170 ebp -188
360 0x317a ebp -184
361 0x3184 ebp -180
362 0x318e ebp -176
363 0x3198 ebp -172
364 0x31a2 ebp -168
365 0x31ac ebp -164
366 0x31b6 ebp -160
367 0x31c0 ebp -156
368 0x31ca ebp -152
369 0x31d4 ebp -148
370 0x31de ebp -144
371 0x31e8 ebp -140
372 0x31f2 ebp -136