-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathgps.txt
452 lines (431 loc) · 7.08 KB
/
gps.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
{$CLEO}
{$NOSOURCE}
03A4: name_thread 'GPS'
// ==========================================
0AC8: 0@ = allocate_memory_size 224000 // 2000 * sizeof(RwD3D9Vertex) * 4
0AC6: 1@ = label @DATA0B offset
0A8C: write_memory 1@ size 4 value 0@ vp 0
// not sure if this is needed, make sure the verts get initialised (see vertsinitialized)
000A: 0@ += 0x8
0A8C: write_memory 0@ size 4 value 0x0 vp 1
// ==========================================
0002: jump @HOOKER
:NOMOREHOOKER
:MAIN_LOOP
0001: wait 250
// inf loop so the allocated mem doesn't get free'd
0002: jump @MAIN_LOOP
:HOOKER
0AC6: 0@ = label @ENTRY offset
0085: 1@ = 0@ // (int)
000E: 1@ -= 0x005869c4
0A8C: write_memory 0x005869bf size 1 value 0xE9 vp 0
0A8C: write_memory 0x005869C0 size 4 value 1@ vp 0
0AC6: 1@ = label @ENTRY offset
000A: 1@ += 1
0A8D: 2@ = read_memory 1@ size 4 vp 0
0062: 2@ -= 0@ // (int)
0A8C: write_memory 1@ size 4 value 2@ vp 0
000A: 1@ += 5
0A8D: 2@ = read_memory 1@ size 4 vp 0
0062: 2@ -= 0@ // (int)
0A8C: write_memory 1@ size 4 value 2@ vp 0
000A: 1@ += 70
0AC6: 3@ = label @DATA0b offset
0A8C: write_memory 1@ size 4 value 3@ vp 0
000A: 1@ += 81
0A8D: 2@ = read_memory 1@ size 4 vp 0
0062: 2@ -= 0@ // (int)
0A8C: write_memory 1@ size 4 value 2@ vp 0
000A: 1@ += 116
0A8D: 2@ = read_memory 1@ size 4 vp 0
0062: 2@ -= 0@ // (int)
0A8C: write_memory 1@ size 4 value 2@ vp 0
000A: 1@ += 32
0AC6: 4@ = label @DATA04 offset
0A8C: write_memory 1@ size 4 value 4@ vp 0
000A: 1@ += 10
0AC6: 5@ = label @DATA03 offset
0A8C: write_memory 1@ size 4 value 5@ vp 0
000A: 1@ += 5
0AC6: 6@ = label @DATA06 offset
0A8C: write_memory 1@ size 4 value 6@ vp 0
000A: 1@ += 39
0A8D: 2@ = read_memory 1@ size 4 vp 0
0062: 2@ -= 0@ // (int)
0A8C: write_memory 1@ size 4 value 2@ vp 0
000A: 1@ += 9
0A8C: write_memory 1@ size 4 value 5@ vp 0
000A: 1@ += 26
0A8C: write_memory 1@ size 4 value 6@ vp 0
000A: 1@ += 11
0A8D: 2@ = read_memory 1@ size 4 vp 0
0062: 2@ -= 0@ // (int)
0A8C: write_memory 1@ size 4 value 2@ vp 0
000A: 1@ += 5
0AC6: 7@ = label @DATA07 offset
0A8C: write_memory 1@ size 4 value 7@ vp 0
000A: 1@ += 7
0A8D: 2@ = read_memory 1@ size 4 vp 0
0062: 2@ -= 0@ // (int)
0A8C: write_memory 1@ size 4 value 2@ vp 0
000A: 1@ += 5
0A8C: write_memory 1@ size 4 value 7@ vp 0
000A: 1@ += 5
0AC6: 8@ = label @DATA08 offset
0A8C: write_memory 1@ size 4 value 8@ vp 0
000A: 1@ += 5
0A8D: 2@ = read_memory 1@ size 4 vp 0
0062: 2@ -= 0@ // (int)
0A8C: write_memory 1@ size 4 value 2@ vp 0
000A: 1@ += 7
0AC6: 9@ = label @DATA09 offset
0A8C: write_memory 1@ size 4 value 9@ vp 0
000A: 1@ += 6
0A8D: 2@ = read_memory 1@ size 4 vp 0
0062: 2@ -= 0@ // (int)
0A8C: write_memory 1@ size 4 value 2@ vp 0
000A: 1@ += 37
0A8C: write_memory 1@ size 4 value 3@ vp 0
000A: 1@ += 5
0A8C: write_memory 1@ size 4 value 9@ vp 0
000A: 1@ += 40
0A8D: 2@ = read_memory 1@ size 4 vp 0
0062: 2@ -= 0@ // (int)
0A8C: write_memory 1@ size 4 value 2@ vp 0
000A: 1@ += 228
0A8C: write_memory 1@ size 4 value 5@ vp 0
000A: 1@ += 14
0A8C: write_memory 1@ size 4 value 5@ vp 0
000A: 1@ += 11
0A8C: write_memory 1@ size 4 value 3@ vp 0
000A: 1@ += 21
0A8D: 2@ = read_memory 1@ size 4 vp 0
0062: 2@ -= 0@ // (int)
0A8C: write_memory 1@ size 4 value 2@ vp 0
0002: jump @NOMOREHOOKER
:ENTRY
hex
e8
4b 66 58 00
e8
06 e2 56 00
85 c0
0f 84 0e 03 00 00
57
8b b8 8c 05 00 00
85 ff
0f 84 fe 02 00 00
8b 80 6c 04 00 00
a9 00 01 00 00
0f 84 ed 02 00 00
8b bf 94 05 00 00
83 ff 03
7c 0e
83 ff 09
74 09
83 ff 0a
0f 85 d4 02 00 00
a1
00 00 00 00 // DATA0b
83 c0 08
81 38 17 b7 d1 38
74 37
bf 40 1f 00 00
c7 00 17 b7 d1 38
83 c0 04
c7 00 55 55 55 40
83 c0 04
c7 00 18 18 b4 ff
83 c0 04
c7 00 00 00 00 00
83 c0 04
c7 00 00 00 00 00
83 c0 0c
4f
85 ff
75 ce
83 ec 18
6a 00
8d 44 24 04
50
e8
6f df 56 00
a1 74 67 ba 00
85 c0
74 33
52
89 c2
81 e2 ff ff 00 00
6b d2 28
8d ba f0 86 ba 00
c1 e8 10
66 39 47 14
75 17
80 7f 25 00
74 11
8b 47 08
89 44 24 18
8b 47 0c
89 44 24 1c
5a
eb 2c
5a
b8 58 f1 c7 00
80 78 02 00
75 12
83 c0 38
3d 58 f8 c7 00
7c f0
83 c4 20
e9 25 02 00 00
8b 78 10
89 7c 24 14
8b 78 14
89 7c 24 18
ff 74 24 18
ff 74 24 18
e8
4b 95 56 00
83 c4 10
d9 5c 24 14
6a 00
6a 00
6a ff
6a 00
68 f0 23 74 49
6a 00
68 f0 23 74 49
68
00 00 00 00 // DATA04
68 d0 07 00 00
68
00 00 00 00 // DATA03
68
00 00 00 00 // DATA06
ff 74 24 40
ff 74 24 40
ff 74 24 40
6a ff
ff 74 24 44
ff 74 24 44
ff 74 24 44
6a 00
8b 0d 27 ca 40 00
e8
65 14 45 00
83 c4 18
66 a1
00 00 00 00 // DATA03
66 85 c0
0f 84 a2 01 00 00
53
52
66 89 c3
bf 00 00 00 00
ff 34 bd
00 00 00 00 // DATA06
8b 0d 27 ca 40 00
e8
27 09 42 00
68
00 00 00 00 // DATA07
89 c1
e8
6b 08 42 00
68
00 00 00 00 // DATA07
68
00 00 00 00 // DATA08
e8
7c 33 58 00
8d 04 fd
00 00 00 00 // DATA09
50
e8
bf 32 58 00
58
6a 00
6a 01
a1 24 7b c9 00
ff 50 20
83 c4 10
47
66 4b
66 85 db
75 ae
83 ec 18
bb 00 00 00 00
a1
00 00 00 00 // DATA0b
ba
00 00 00 00 // DATA09
89 44 24 14
b8 00 00 80 40
89 44 24 10
d9 42 08
d9 02
de e9
d9 5c 24 04
d9 42 0c
d9 42 04
de e9
d9 1c 24
e8
5d ca 53 00
d9 c0
c7 04 24 da 0f c9 3f
d8 04 24
d9 5c 24 0c
d8 24 24
d9 c0
d9 fe
d8 4c 24 10
d9 1c 24
d9 ff
d8 4c 24 10
d9 5c 24 04
d9 44 24 0c
d9 c0
d9 fe
d8 4c 24 10
d9 5c 24 08
d9 ff
d8 4c 24 10
d9 5c 24 0c
8b 44 24 14
ff 32
d9 04 24
d8 44 24 04
d9 1c 24
5f
89 38
ff 72 04
d9 04 24
d8 44 24 08
d9 1c 24
5f
89 78 04
83 c2 08
83 c0 1c
ff 32
d9 04 24
d8 44 24 04
d9 1c 24
5f
89 38
ff 72 04
d9 04 24
d8 44 24 08
d9 1c 24
5f
89 78 04
83 ea 08
83 c0 1c
ff 32
d9 04 24
d8 44 24 0c
d9 1c 24
5f
89 38
ff 72 04
d9 04 24
d8 44 24 10
d9 1c 24
5f
89 78 04
83 c2 08
83 c0 1c
ff 32
d9 04 24
d8 44 24 0c
d9 1c 24
5f
89 38
ff 72 04
d9 04 24
d8 44 24 10
d9 1c 24
5f
89 78 04
83 c0 1c
83 c3 01
3b 1d
00 00 00 00 // DATA03
0f 8c ee fe ff ff
83 c4 18
a1
00 00 00 00 // DATA03
48
6b c0 04
50
ff 35
00 00 00 00 // DATA0b
6a 04
a1 24 7b c9 00
ff 50 30
83 c4 0c
5a
5b
5f
e9
9f 66 58 00
90
90
90
end
// ==========================================
:DATA03 // pNodesCount
hex
00 00 00 00
end
:DATA04 // pDistance
hex
00 00 00 00
end
:DATA06 // pResultNodes
{$INCLUDE gps250nodes.txt}
{$INCLUDE gps250nodes.txt}
{$INCLUDE gps250nodes.txt}
{$INCLUDE gps250nodes.txt}
{$INCLUDE gps250nodes.txt}
{$INCLUDE gps250nodes.txt}
{$INCLUDE gps250nodes.txt}
{$INCLUDE gps250nodes.txt}
:DATA07 // nodepos
hex
00 00 00 00 // x
00 00 00 00 // y
00 00 00 00 // z
end
:DATA08 // tmppoint
hex
00 00 00 00 // x
00 00 00 00 // y
end
:DATA09 // pNodePoints (= 2x pResultNodes)
{$INCLUDE gps250nodes.txt}
{$INCLUDE gps250nodes.txt}
{$INCLUDE gps250nodes.txt}
{$INCLUDE gps250nodes.txt}
{$INCLUDE gps250nodes.txt}
{$INCLUDE gps250nodes.txt}
{$INCLUDE gps250nodes.txt}
{$INCLUDE gps250nodes.txt}
{$INCLUDE gps250nodes.txt}
{$INCLUDE gps250nodes.txt}
{$INCLUDE gps250nodes.txt}
{$INCLUDE gps250nodes.txt}
{$INCLUDE gps250nodes.txt}
{$INCLUDE gps250nodes.txt}
{$INCLUDE gps250nodes.txt}
{$INCLUDE gps250nodes.txt}
:DATA0A // 640.0 & 448.0
hex
00 00 20 44
00 00 E0 43
end
:DATA0B // pVertex (= 4x pResultNodes)
hex
00 00 00 00
end