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
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
|
@@MODULE(head.txt)@@
*******************************************************************************
******* HISTORY v1.* *******
*******************************************************************************
szs v1.00a r3958 - 2012-07-14
- wkmpt COBJECT --draw=modelist:
- Mode 'JGPT': Draw arrows at respawn positions.
- Mode 'CJGPT' does what the old 'JGPT' did: Draw connections between
check points and respawn positions.
- Mode 'CNPT': Draw arrows instead of lines.
- New command "wszst MINIMAP": Print and optional patch the releavant minimap
data of a SZS, U8, BRRES or MDL file. Supported patching options: --touch,
--xcenter, --ycenter, --zcenter, --center, --scale, --shift, --xss, --yss
and --zss.
szs v1.01a r3987 - 2012-07-22
- Command "wszst MINIMAP" can now automatically adjust the minimap, if the
new option --auto is set. It analyses MDL section 2 (vertex list) to find
the minimum and maximum values. Then it makes the ranges 4% wider, store
the calculated values in 'posRU' and 'posLD' of the MDL and calculate the
transformation matrices. The command is very flexible and can modify the
map of SZS, U8, BRRES and MDL0 files.
See https://szs.wiimm.de/opt/auto for details.
szs v1.02a r3992 - 2012-08-01
- KCL: Detect invalid triangles (e.g. length=0) on OBJ import.
- Option --kcl: There are now 2 groups of removing commands:
- 'DROP*' drop unused, invalid or fixed triangles (bad triangles).
- 'RM*' remove triangles with special characteristics. At this moment
RM-FACEDOWN is the only command of the 'RM*' class: It will remove all
face down drivable triangles to avoid KCL glitches.
- File DB: Sub files 'kinoko_*.kcl' are now assigned to object group 'kinoko'.
- Update of the KMP Object database.
szs v1.03a r4002 - 2012-08-11
- New global option: --force: The tools analyse input files and reject files
with invalid data structures. If --force is set, little repairable issues
are ignored or repaired and a warning is printed.
>>> THE RESULT MAY BE INVALID OUTPUT FILES!
- Option --kcl: If no 'DROP*' mode is set, the tools drops automatically all
bad triangles. For an existing octree, it is only 'DROP-UNUSED'.
- Option --kcl: Correct handling, if 'DROP-UNUSED' and 'NEW' are set together.
- wszst MINIMAP --auto: The Y-translation is also calculated to make very
high faces visible.
szs v1.04a r4050 - 2012-09-08
- Bug fix for v1.03a: With some option combinations, the KCL generator failed
and created an invalid KCL (if modifying an existing KCL) or a valid KCL
with some unwanted triangles (if importing from OBJ).
- Option --kcl: Better handling of DROP modes.
- Option --kcl: Correct handling, if 'DROP-UNUSED' and 'NEW' are set together.
(Same message as before, but now I have fixed one forgotten special case).
- "wszst CHECK" will now compare the number of cannons in KCL and KMP.
- New option: "wszst NORMALIZE --minimap": If --minimap is set, the minimap
is automatically adjusted like "wszst MINIMAP --auto" does it. All other
options like --scale are ignored for this kind of minimap processing.
- New option: "wszst minimap --set-flags=flags": Set the MDL flags to an user
defined value (default 0x31f).
- The tools accept now 'Yaz1' files in the exact same manner as 'Yaz0' files
hoping that the data structure and the compression method are the same.
- New options: --yaz0 and --yaz1: Force the magic of new created YAZ files
to 'Yaz0' or 'Yaz1'.
- Object database updated.
szs v1.05a r4097 - 2012-09-29
- For text files, only the first 4 characters are used as magic ('#BMG'
instead of '#BMG-TXT'; same for '#KCL', '#KMP' and '#MDL'). On creation
a 8 character magic is still written for compatibility.
- Update of the KMP Object database.
- Files './AIParam/AIParam.baa' and './AIParam/AIParam.bas' are now known by
the internal file database.
- Some optimizations around the KCL octree creation. This includes a new
handling of automatic dropping of invalid KCL triangles.
- Some minor text and layout changes.
szs v1.06a r4110 - 2012-10-06
- Bug fix: "wkclt COPY" printed always a false syntax error after correct
finishing all copy jobs.
- Bug fixes for "wszst NORMALIZE":
- BRRES files will not touched now.
- Memory bug, if rebuilding the KCL.
- wszst CHECK will now make slot proposals with comments:
- Slots 3.1 and 7.1: Check usage of KMP objects 'sunDS' and 'pylon01'.
- Slot 4.2: Only the usage of at least one KMP object of 'kart_truck',
'car_body' or 'K_bomb_car' is done. An additonally MDL analysis is
missed, so the status is only "may run on slot 4.2".
- Slot 6.1: Test the existence of file 'ice.brres' and of KCL flag 0x70.
- Slot 6.2: Check usage of KMP object 'HeyhoShipGBA'.
- New command: wszst SLOTS: Print the possible slots for a track file.
The analysis is the same as for "wszst CHECK" (see above). The command
prints either a positive or a negative slot list, whatever is shorter.
szs v1.07a r4137 - 2012-10-19
- "wszst NORMALIZE --kcl ...": In the old versions, the KCL was patched in
place and the total size of the KCL was not changed. If the new KCL was
larger, parameters were changes in up to 5 iteration steps until the new
KCL was less or equal the old size. Now a complete new KCL is created with
the optimal settings and the size may shrink or grow.
If 'INPLACE' is added to the '--kcl list', the old behavior becomes active.
- wzszt CHECK: The logging of sub checks (KCL+KMP) is now better integrated
into the main log and there is now only one summary line for all.
- KCL creation tuned.
- The auto-add library holds now also unique files of folder 'posteffect'.
Try "wszst AUTOADD ./path/to/Race/Course/" to add all supported files.
- New archive format: WU8 (Wiimms U8)
WU8 is like U8, but the sub files are coded as patch for Nintendos original
files. This removes any code of Nintendo and a compressed WU8 (default) is
in general smaller than the related SZS. For encoding end decoding an
auto-add archive is needed (see https://szs.wiimm.de/doc/autoadd).
- wszst NORMALIZE/PATCH:
- Accept options --dest and --DEST for an alternative destination path.
- Accept options --u8 and --wu8 to define the new (W)U8-archive format.
- Object DB updated.
szs v1.08a r4148 - 2012-10-27
- wszst CREATE/COMPRESS/DECOMPRESS:
- All 3 commands support now U8 and WU8 conversions and accept the
options --u8 and --wu8.
- Support of U8/WU8 conversions of non track files.
- All 3 commands support the new option --remove-src (or --rm-src) to
remove the source files on success and if different to dest files.
- Better error handling of non existing files if --ignore is set.
- New keyword for option --kcl: If creating an OBJ file and 'TRIANGLES' is
set, the triangles are not stored as vertices and faces. Instead each
triangle is stored in an independent line. The OBJ file itself becomes
incompatible (or invalid), because TRI lines are not supported by any
other tool, but it makes adding points or mixing OBJ files much easier.
szs v1.09a r4169 - 2012-11-11
- BZIP2 compression is now supported as alternative to Yaz0. It is dedicated
to the WU8 file format for transferring files. BZIP2 files are smaller than
Yaz0 files and the creation is faster.
- The new option --bz forces BZIP2 compression instead of Yaz0 compression.
- The new option --wbz is a short cut for --wu8 --bz.
=> To create a WBZ (WU8+BZ) file: wszst compress --wbz TRACK.szs
- The new option --szs is a short cut for --u8 --yaz0.
=> To create a SZS (U8+Yaz0) file: wszst compress --szs TRACK.wbz
szs v1.10a r4186 - 2012-11-17
- Bug fix: File type printing (e.g. "YAZ0.U8:filename") was reimplemented
because of the new bzip compression, but with bugs.
- Command "wszst CHECK" will now accept option --verbose to print some more
slot hints (negative info about slots 4.2, 6.1 and 6.2).
- New debug command for all tools: ARGTEST: Print all scanned arguments as
list. This helps to find out wrong parameters, especially for windows.
- Cygwin (Windows): Filename handling improved. If using double quotes around
a filename, backslashes work in a Windows usual way as directory separator.
- Cygwin (Windows): Windows 'SendTo' support added. It must be (un-)installed
with the batch files 'sendto-install.bat' and 'sendto-uninstall.bat'.
Available SendTo jobs:
- normalize-SZS.bat : Normalize a file and convert it to SZS.
- convert-to-WBZ.bat : Convert a SZS file to a WBZ file.
- convert-to-SZS.bat : Convert a WBZ file to a SZS file.
- create-autoadd-library.bat : Use it with the extracted Race/Course
folder to create the autoadd library. It is needed for WBZ conversions.
- New option: --number or --num: If a destination file already exists, append
a number directly before the file extension to make the filename unique.
If other numbered files already exist (ignoring case), use the maximum
existing index+1. Option --number is ignored if --overwrite is set.
szs v1.11a r4205 - 2013-01-01
- If creating the KCL file, the world will be enlarged by the KCL_BLOW value
to avoid problems at the world border.
- New parameter for KCL/octree fine tuning: KCL_MAX_SIZE:
Cubes, that are larger than KCL_MAX_SIZE, will always be splitted into 8
sub cubes and will never have triangle lists. The maximum and default value
for KCL_MAX_SIZE is 1024*1024 (~1 million).
- New flag for --KCL=list: CENTER: If creating a new octree, adjust the cube
entrance values so that the real world is centered in the cube world.
- Some old and for a long time obsolate keywords removed.
szs v1.11b r4214 - 2013-01-20
- Bug fix: If creating a TEX0 file, the float number at offset 0x14 in the
TEX header was wrong (1 too large). The result were artifacts.
- Small updates of the object DB.
szs v1.12a r4236 - 2013-02-09
- Windows version only: Update to Cygwin v1.7.17
- wstrt TRACKS+ARENAS: The index column shows now the internal zero based
track index of the track or arena instead of a simple track counter.
- wstrt FIND -lll: Additionally print the slot index and the internal index
(both zero based) before the file names.
- New command: wbmgt CAT: Print decoded BMG files to stdout. If a source is
a SZS file and no subfile is entered, subfile './message/Common.bmg' is
printed.
szs v1.12b r4246 - 2013-02-23
- Bug fix: The KCL cannon activator was internally handled as drivable type.
So it was wrongly a deletion candidate for --kcl=RM-FACEDOWN.
- Object DB updated.
szs v1.13a r4258 - 2013-03-01
- New option --rm-aiparam (short cut: --rmai): If set, the directory AIParam
and all files are removed from the archive. This option has only impact,
if creating a new archive or normalizing an existing archive.
- Command wszst NORMALIZE: Logging changed.
szs v1.14a r4274 - 2013-03-14
- wkmpt CHECK (and all commands calling this function internally):
4 new tests for sections CKPH, ENPH and ITPH:
- The section must not be empty (WARNING).
- Only ITPH: The first 'next' link must be valid (WARNING).
- Each group must have at least one valid 'next' link (WARNING).
- Each group must have at least one valid 'prev' link (HINT).
See https://szs.wiimm.de/cmd/wkmpt/check#testlist for all tests.
- Option --kcl-script can now be used multiple times to execute multiple
kcl script in the entered order.
- Two new parser functions to identify the source within a script: isKCL()
and isKMP(). Both functions return 0 for false, 1 for true or 2 for true,
if the source is named 'course.*' (main KCL/KMP file).
szs v1.15a r4300 - 2013-03-28
- New docu file: INSTALL.txt
- Mac+Linux+Unix: Script 'install.sh' will call itself with 'sudo' if not
started by user 'root'. Read INSTALL.txt for details.
- Windows: Cygwin updated.
- Better detection of UTF-8 files with byte order mark (BOM). Tool wbmgt will
accept those files now.
- Bug fix: wbmgt CAT: The option --patch is now processed.
- Bug fix: wbmgt ENCODE: Wrong file naming fixed.
- Bug fix: Option --kcl: If no 'DROP*' mode is set, the tools drops all bad
triangles automatically. For an existing octree, it is only 'DROP-UNUSED'.
- Check KCL+KMP: The checks are now done after patching.
- New option --kmp=modes: It works like --kcl=modes to define KMP jobs and
modes. The first modes are:
- NEW : Scan KMP and create a new one.
- RM-SPCITEM : Clear 'special items for players' setting of the 6 item box
object types.
- FIX-CKPH : Fix the section CKPH.
- FIX-ENPH : Fix the section ENPH.
- FIX-ITPH : Fix the section ITPH.
- FIX-PH : Short cut for: FIX-CKPH,FIX-ENPH,FIX-ITPH.
- INPLACE : Force inplace replacing of KMP files (old mode).
- LOG : Debug: Enable KMP specific logging.
The fix modes are EXPERIMENTAL!
See https://szs.wiimm.de/opt/kmp for details.
szs v1.16a r4313 - 2013-04-08
- Bug fix for BTI detection (reduce false positives).
- wkmpt COBJECT --draw=ckpt: Draw lines to next point and to point linked
by the 'next' member.
- New command: wszst ENCODE: Works like wszst CREATE, but will not create a
first level archive. The intension is to create and update all subfiles.
'wszst ENCODE' can be used as a prepararion before using 'wszst UPDATE'.
- New mode for --kmp: FIX-CKNEXT: Automatic calculation of the 'prev' and
'next' links of KMP section CKPT.
See https://szs.wiimm.de/opt/kmp for details.
- Slot 4.2 detection: Improved 'moonview' detection, because MDL.s10
'polygon11' and 'polygon60' are searched and their size is checked.
- Command 'wszst SLOTS': Slots are assigned to output columns now.
- Windows 'SendTo' commands: Fix handling of filenames with spaces.
Reinstall the SendTo files with 'sendto-install.bat'.
- New Windows 'SendTo' commands:
- clean-KCL-of-SZS: Normalize a SZS, drop unneeded KCL triangles and
rebuild the KCL octree.
- adjust-minimap: Adjust the minimap of SZS, BRRES and MDL files.
- Object DB updated.
szs v1.17a r4358 - 2013-04-23
- Moonview slot proposal optimized.
- KMP check: Print a hint, if 200 or more global objects are defined.
- Option --fast overrides compression rates set by --norm or --compr=list.
- New --kcl mode: FIX-ALL: Short cut for DROP,RM,NEW,LOG.
- New option: --autoadd-path=dir: Define a path for the auto-add library
and override the default search pathes.
- New option: --mdl=list: Define a MDL patching method. VERTEX patching is
used by default.
- New option for wszst: --patch-file=list: Define, which kind of KMP, KCL and
BRRES/MDL files are objects for patching. The default is to patch only the
main KMP and KCL files and the MODEL and MAP files. --pfile is a short cut
for --patch-file.
- New name for option --hrot: --yrot
- New options: --xrot, --yrot, --zrot, --ypos: Options --xrot, --zrot and
--ypos are really new for X+Z rotation and --yrot is only a alternative
name for --hrot. See built in help for impact.
- New option: --translate: Works like --shift, but is done after the
rotation. This is similar to the MDL transformations, that works in the
order scale, x-rotate, y-rotate, z-rotate, translate.
- New command for testing: wszst MATRIX: Use the transformation options as
base and calculate and print the related vectors and the tranformation
matrices. Then execute the transformations for each vector (parameter).
- ATTENTION: Because of the new 3D rotation support, a new rotation
algorithm has been implemented. Implementation bugs are not impossible.
- ATTENTION: All new patching options are EXPERIMENTAL!
szs v1.18a r4404 - 2013-05-01
- There is a complete new transformation algorithm: All transforming options
will be used to create a transformation matrix. If using >1 transformation
steps (see below), the matrices are multiplied to get a final transformation
matrix. All transformations are now done using this final transformation
matrix. This is faster and the internal handling is now much easier.
- New option --next: This option allows and separates up to 10 transformation
steps. Logical, each point is transformed step by step in the definition
order. Internally, a final matrix is calculated and all transformations are
done in a single step by using this final matrix. There are some issues
transforming KMP object, see https://szs.wiimm.de/opt/next for details.
- Command MATRIX is now available for all tools with transformation support.
It was redesigned to control the impact of the new transformation steps.
See https://szs.wiimm.de/cmd/matrix
- New option --rot=deg@origin: Define the rotations for 3 axes by one option.
- New option --arot=deg[@pt1]@pt2: Do an (axis) rotation around the axis
specified by the 2 points as single transformation step.
This option is EXPERIMENTAL! See https://szs.wiimm.de/opt/arot
- New option --ascale=factor@dir: Do an (axis) scaling into the direction
specified by the vector 'dir' as single transformation step.
This option is EXPERIMENTAL! See https://szs.wiimm.de/opt/ascale
- KMP object database updated.
szs v1.19a r4461 - 2013-06-02
- wszst CHECK: Check existence of minimap bones 'posLD' and 'posRU'.
Read https://szs.wiimm.de/cmd/wszst/check#desc for a list of all tests.
- Check commands: KMP objects with presence flag == 0 will be handled as
non existent. This changes the missing files status and the slot proposals.
- KCL type names synchchronized to Wiki.
- Bug fix: If a function was searched and a const was defined with the same
name, a `segmentation fault´ (or similar) occured.
- New command: wkmpt STARTPOS: Print the start positions of players in
various formats. See https://szs.wiimm.de/cmd/wkmpt/startpos for details.
- Patching option --kmp accepts now the keywords LEFT, RIGHT, WIDE and NARROW
to modify the start options in section STGI.
- New global option --de: Use german track and arena names.
- Command FILETYPE --long: Column with version of file format added.
- wszst EXTRACT/CREATE: The version number of the archive file format is
stored in and read from the help file 'wszst-setup.txt' to support version
dependent file formats.
- BREFF and BREFT:
- Version numbers are printed in listings with version support.
- The file format version number is written to 'wszst-setup.txt' on
extracting and read from read from 'wszst-setup.txt' on creating.
- The default aligning for BREFT files depends now on the version number.
It is 0x20 for versions <10 (MKW=9) and 0x40 for versions >9 (NSMB=11).
At the moment the new alignment for NSMB is not well tested!
szs v1.19b r4482 - 2013-06-14
- Bug fix: If resizing an image (e.g. for mipmaps), an INTERNAL ERROR
appeared sometimes because of an unhandled combination of image type
and image size (odd height or width). [Thanx to HelloImYourMind]
szs v1.20a r4548 - 2013-07-21
- New Option for wszst and wimgt: --smart:
If resizing an image, use the new smart resize function. The new function
is much slower (factor 2-4) than the old function, but creates much better
resized images. This is only relevant for creating mipaps with odd width
or height. THIS NEW FUNCTION IS EXPERIMENTAL!
- Support of original SketchUp OBJ exporter, see next 2 points for details:
- More tolerant detection of Wavefront OBJ files. Export of the original
SketchUp exporter will be recognized as 'SKPOBJ' instead of 'WAVOBJ'.
- New --kcl flags: 'G' and 'USEMTL': If scanning an OBJ file, these flags
decides, which OBJ commands will define groups. If none is set (default)
'USEMTL' is used for files of type 'SKPOBJ' and 'G' for all others.
- Command 'wkclt CFF' accepts now option --brief to suppress the comment
'# f(type,variant)' and option --long to force a '= f(type,variant)'
parameter.
- Suppress some patch logging messages for CHECK commands.
- CHECK KMP: If option --long is set, print some additional statistics.
- Some error messages are more exact now.
- Bug fix: If using options --test and --remove together, the destination
file was removed sometimes (but not created).
- New patching option: --tform-kmp=list: Fine control about the sections
and objects (position, rotation or scale vector), that are transformed.
See https://szs.wiimm.de/opt/tform-kmp for details.
- Windows only: Cygwin update to v1.7.20 2013-06-07.
szs v1.21a r4578 - 2013-09-07
- Improved built-in help system. Type e.g. "wszst help help" or visit
https://szs.wiimm.de/cmd/wszst/help for details.
- New keyword for option --kmp: FORCE: Ignore little repairable file structure
issues on reading KMP files. Works like --force, but only for KMP files.
- Bug fix: The check for the right position of all KMP sections failed.
- Optimized handling for SZS sub files with 'out of range offsets'.
- wszst: Option --auto-add can now be used together with the commands PATCH
and NORMALIZE. EXPERIMENTAL!
- Bug fix: Wrong calculation of parent directory index in U8 header fixed.
This bug existed from the beginning of the SZS tools and it seems, that it
had no impact for running a track or for other tools. However, the positive
impact is, that the creation of the files Track.szs, Race.szs and the other
language independent SZS files of MKWii directory './Scene/UI' works now.
szs v1.22a r4602 - 2013-09-14
- The Windows installer will now force type REG_EXPAND_SZ for path variables.
- New commmand: wbmgt MIX: Works like CAT, but combines all input files.
- Exported BMG text files will now show all characters of the Unicode Basic
Multilingual Plane (BMP; codes <=0xfffd) without escape sequences.
- Tool wbmgt: Option --single-line supports now 2 levels and option --brief
3 levels. See https://szs.wiimm.de/opt/wbmgt/single-line and
https://szs.wiimm.de/opt/wbmgt/brief for details.
- New option: wszst --patch-bmg: Patch BMG sub files directly. There is no
more need to extract BMG files before patching.
- New option for tools wszst and wbmgt: --msg=list: If set, the BMG messages
are filtered by this list. Only enabled messages are exported to the ouput
BMG file (binary or text).
- If an archive (SZS,...) is found while reading a BMG file, the archive is
searched for BMG sub files and found sub files together are used as BMG
source.
- wstrt can now detect main.dol files and its type (PAL, USA, JAP or KOR).
- Option --kmp accepts now the keywords 1LAP, 2LAPS ... 9LAPS to modify the
first byte of KMP/STGI (number of laps). This first byte has only impact on
patched main.dol files.
szs v1.23a r4682 - 2013-10-05
- Exported BMG text files will now show all characters of the Unicode Basic
Multilingual Plane (BMP; codes <=0xfffd) without escape sequences. New is,
that surrogates and private ranges are always printed as escape sequences.
- New options for BMG text output: --color and --no-color: If enabled, colors
are printed as new escape sequence "\c{color}". 'color' is either a known
color name or a hex number with 4 digits. At the moment, --no-color is
the default to avoid problems with old versions and other externl tools.
In 2014 --color shall become the default. However, the BMG text scanner
accepts the new escape sequence from now and independent of these options.
- New modes for option --patch-bmg: 'ID', 'ID-ALL', 'CT-COPY' and 'CT-FILL'.
See https://szs.wiimm.de/opt/patch-bmg for details.
- New command: wstrt DUMP: Dump the data structure of DOL files as text.
- wstrt ANALYZE: Analyze DOL files and compare them section by section with
the orginal main.dol file of MKWii.
- New command: wstrt EXTRACT: Extract the sections of a DOL file into a
directory. StaticR.rel files are ignored.
- New global option: --ctcode: Enable the CT-CODE mode of the tools.
See https://szs.wiimm.de/doc/ctcode for details and about CT-CODE.
- wstrt PATCH --add-ctcode: Add CT-CODE to original main.dol files.
- New tool: wctct: Manage CT-CODE. See https://szs.wiimm.de/wctct and
https://szs.wiimm.de/doc/ctcode for details.
szs v1.24a r4703 - 2013-10-14
- Bug fix for wctct: Winning + losing ceremony after GP enabled.
- wctct: More possible names for music and property ids.
See https://szs.wiimm.de/doc/slot-id for details.
- Transforming complete tracks: VRCORN will now patched by default, if not
excluded by option --patch-file=list.
- Linux 'make': LIBPNG will be linked as static library, if available.
szs v1.25a r4715 - 2013-10-27
- New KMP command for CKPT, ENPT and ITPT: $SPLIT: Split the group into 2 or
more peaces. See https://szs.wiimm.de/doc/kmp/syntax#ckpt-grp for details.
- New KMP parameter for ENPT and ITPT: @AUTO-FILL: Add additional points if
the distance between points is smaller than the defined value.
See https://szs.wiimm.de/doc/kmp/syntax#enpt-par for details.
- KMP compiler: New snap variant to define x- and y-rotation.
See https://szs.wiimm.de/doc/kmp/snap for details.
- Command 'wkmpt COBJECT' accepts now option --kcl-script to filter the
exported OBJ file.
- Some small fixes for tool wctct.
szs v1.26a r4726 - 2013-11-10
- Bug fix: A patched file was not marked as dirty (and not written), if only
BMG was patched and only with modes 'ID' or 'ID-ALL'.
- New option --export (-X): Enable the export mode and create small and
machine readable text files for easy post processing. The option works
similar like -HBB for KMP and like -HBl11 for BMG text files.
- Windows version only: Update to Cygwin v1.7.25. I hope that it fixes the
bug that occurred during creation of MKW-Fun 2013-10 with Windows 8.1.
szs v1.27a r4742 - 2013-11-24
- Bug fix: Occasional a triangle was marked as invalid by mistake, if it was
inserted by the script function tri$create() (option --kcl-script).
- Minimap fixing: From now the minmum and maximum values of the MDL.s1 root
are set too.
- KMP check: A test added, which controls, that the check points are not to
near together and that they build convex quadrilaterals.
See https://szs.wiimm.de/cmd/wkmpt/check#desc for check details.
- KMP check: Some WARNINGS are HINTS now.
- New transformation option: --tform-script=script
The script is loaded and a macro is called for every vertex. So it is
possible to add user defined and also non linear transformations.
See https://szs.wiimm.de/opt/tform-script for details.
- New parser functions: status(), len2(), hlen2(), sideOfLine(),
ptInConvexPolygon(), ptsInConvexTri(), ptsInConvexQuad().
See https://szs.wiimm.de/cmd/wszst/functions#desc for details.
szs v1.28a r4771 - 2013-12-09
- There was a disorder using the escape sequences '%E' and '%T' for file
extensions/types. '%E' included a leading point, '%T' only sometimes.
Henceforth both will include then leading '.' or are empty, if no file
extension is available. So the earlier '%N.%T' becomes '%N%T'.
- Command wkmpt COBJECT will now also draw the start position with area, the
respawn positions with area, the POTI routes and standard itemboxes. See
https://szs.wiimm.de/opt/draw for details.
- Command wkmpt COBJECT: Check points with quadrilateral warnings are drawn
in red. This option can be disabled by --draw=-warn.
- New KMP check: Test, if all enemy and item root points are inside of at
least one convex check point quadrilateral.
szs v1.29a r4788 - 2013-12-13
- Command 'wkmpt COBJECT' was renamed to the more intuitive name
'wkmpt DRAW'. The old command name can still be used.
- Option --draw has now a short twin: -w
- Option --draw supports the new keyword SOLIDOBJECTS: Draw all solid objects
without any route as a blue octahedron. At the moment, the native object
size, scaling and rotation are ignored.
- Command 'wkmpt DRAW --draw ITEMBOXES' draws itemboxes like in-game as a
grey cube with a vertex down. The color for itemboxes with special items
for players or enemies is dark grey.
- New KCL script functions: tri$createOctahedron(), tri$createAntiPrism()
and tri$createAntiArrow().
szs v1.30a r4810 - 2013-12-27
- Object export (wkclt DECODE & wkmpt DRAW):
- The default for normals changed. Normals will only be included if the
keyword NORMALS of option --kcl is set. The new default is better for
the SketchUp OBJ importer plugin in time and correctness.
- The ambient color of the material 'Ka' is not longer defined.
- Bug fix: If the object needed more than 65535 vertices, then a wrong OBJ
was written with indices modulo 65536.
- wkmpt DRAW: The following objects are drawn in correct size and with a
recognizable form and color: itembox, obakeblockSFC*, dokan*, karehayama
and all trees.
- KCL: Improved error system, if a KCL has more than 65535 normals. Before
aborting, the normals are rounded in multiple steps to find duplicates.
szs v1.31a r4828 - 2014-01-03
- BMG handling: \c{color} escape sequences in text output are now enabled
by default. To be compatible with old tool versions (v1.22a released at
2013-09-14 and older versions), use option --no-color.
- wctct: Support of hex coded filenames for the 32 original tracks.
- Windows only: Cygwin update to v1.7.27 2013-12-09.
- New option: wstrt --all-ranks: Manipulate a query for Nintendos servers, so
that all players in a region are found independent of their ranking points.
szs v1.31b r4841 - 2014-01-17
- KCL bug fix: Creating and managing the flag file failed sometimes.
szs v1.32a r4958 - 2014-02-07
- wszst+wbmgt: Options --color and --no-color have new meanings (see next
point). Instead of the old option --no-color, there is a new option named
--no-bmg-color to suppress '\c{color}' escape sequences of BMG files.
- New global options for all tools: Option --color forces colorized text. It
is enabled by default for output to terminals. Option --no-color disables
colorized text at all. At the moment only the commands COLORS, CHECK and
SLOTS support colorized text.
- New command: COLORS: Test colorized text by printing it in different modes
(colors, bold, underline). Also test the options --color and --no-color.
- Bug fix: A patched BMG file was not marked as dirty (and not written), if
only some characters in the second half of the string are modified and the
length don't change (compared N bytes and not N words).
- Bug fix: wstrt patch --region=name: New assignment of region names to
region numbers: 0=Japan, 1=America, 2=Europe, 3=Australia, ...
- KMP/STGI: Support of the last 2 bytes as `speed modifier':
- On output, the factor is appended as comment.
- On input, a floating point number instead 2 single bytes is accepted
as speed mulitplier. The floating point number is rounded to the nearest
possible number (16 bit cut float with only 7 bits for the mantissa).
- New option for tools wszst and wkmpt: --speed-mod=factor: Define a speed
modifier and patch KMP files.
szs v1.33a r4983 - 2014-03-01
- Colorized patch log.
- New Command: wszst COPY source dest: COPY is an alternative command for
copying and pathing files. It uses the same internal procedure as command
PATCH, but has another command line syntax.
- New mode for option --kmp: FIX-CKJGPT: Fix invalid links to respawn points.
- wszst CHECK: Test geometry of images:
- Warnings about invalid images with zero width or height.
- Warnings about images with width or height not power of 2.
- Hints about images with width or height >1024.
See https://szs.wiimm.de/cmd/wszst/check#testlist for details.
- wszst CHECK: Count and warn about the number of vertices in MDL files
of 'course_model.brres', 'map_model.brres' and 'vrcorn_model.brres',
and about the total of all MDL files.
- New KMP checks for wszst+wkmpt CHECK:
- STGI: Print modified lap counter.
- STGI: Print invalid start position or mode.
- STGI: Print defined speed modifier.
See https://szs.wiimm.de/cmd/wkmpt/check#testlist for details.
- The tools 'wkclt' and 'wbmgt' accept the literal "0" as source filename for
an empty file (like "-" for stdin).
- Windows only: Cygwin update to v1.7.28 2014-02-09.
szs v1.34a r5070 - 2014-04-19
- New Option --slot=keyword: Patch a track file to run at the specified slot.
KMP and KCL may be modified. BRRES files may be added to or removed from
SZS. The main keywords are DAISY, DESERT, SHERBET, SHYGUY, STANDARD and
MOST. Slot numbers (except '42' or '4.2') are also accepted.
See https://szs.wiimm.de/opt/slot for details.
*** THIS NEW OPTION IS EXPERIMENTAL! ***
- New patch option: --https=mode: Patch the https strings of REL and DOL
files. 'mode' is one of the following keywords:
- RESTORE restores the original URLs and domains.
- HTTP replace HTTPS requests by HTTP and sub-domain 'naswii.' by 'nas.'.
- DOMAIN replace HTTPS requests by HTTP and domain 'nintendowifi.net' by
a domain specified by the option --domain.
- PORT1 sets the domain specified by option --domain in combination with
ports 90-93.
- PORT2 is like PORT1, but it uses 'mariokartwii.DOMAIN' to replace the
'mariokartwii.race.gs.nintendowifi.net' domain.
- New patch option: --domain=dom: Define a domain for option --https. The
default domain is 'wiimmfi.de'.
szs v1.35a r5184 - 2014-05-16
- Two more modes for option --https:
- SAKE0: Same as DOMAIN, but don't replace URLs with SAKE domain.
- SAKE1: Same as SAKE0, but replace HTTPS of SAKE domains.
- New option: wstrt --wiimmfi: Patch the files for the new custom server.
It is a short cut for '{--https=domain --domain=wiimmfi.de}'.
szs v1.35b r5386 - 2014-07-02
- wstrt ANALYSE: Bug fix: HTTPS hint for original files removed.
- wstrt PATCH: Bug fix: Some forgotten 'https' and 1 'sake' are patched now.
szs v1.35c r5394 - 2014-07-03
- wstrt PATCH: Another 'https' bug fixed.
szs v1.36a r5680 - 2014-10-18
- New command: wstrt+wbmgt POINTS: Print a table with points assigned after
a versus or private room race. This command should help to find a good
parameter for option --points.
- New option --points=list: Define a new table with points assigned after a
versus or private room race. Predefined tables are:
NINTENDO: Original Nintendo table.
LINEAR: Last get 0 points, all other 1 point more than successor.
WIN15: Winner = 15 points, last=0, all other are evenly distributed.
WIN25: Winner = 25 points, last=0, all other are evenly distributed.
For LINEAR, WIN15 and WIN25 there are some options:
ONE: Last get 1 point instead of 0.
BONUS: Winner get a bonus of 1 point.
See https://szs.wiimm.de/opt/points for details.
- Windows only: Cygwin update to v1.7.32 2014-08-13.
szs v1.36b r5690 - 2014-10-21
- Bug fix: If transforming a track, the minimap became sometimes invisible.
The reason was, that the minimum and maximum parameters of the vertex list
were not calculated and not stored to reflect the new coordinates.
- New patching option: --null: Create a neutral transformation without
affecting the coordinates. The only influence is, that the dependent values
(like maximum) are calculated as if a transformation has taken place.
This option helps to fix the transforming bug mentioned above.
szs v1.37a r6010 - 2015-02-08
- New color management.
- Object database updated.
- New wstrt options --vs=ch & --bt=ch: Replace the second letter of
versus/battle identification ('vs','bt') to a new character.
- Windows only: Cygwin update to v1.7.34-6 2015-02-04.
szs v1.38a r6056 - 2015-02-27
- Tools WSZST contains now all other tools. It can be called in the usual way
or as tool wrappers. See https://szs.wiimm.de/doc/wrapper for details.
- wkmpt DRAW: If the drawing of itemboxes or other solid objects is enabled,
the routes of movable itemboxes or other solid objects are drawn too.
- Two new keywords for option --patch-bmg defined:
- CT-FORCE-COPY: Copy all standard track and arena name messages to
MID 4000..4029 and overwrite existing strings.
- RM-CUPS: Remove racing cup names (MID 23f0..23f7) from BMG.
- New keyword for option --msg=list: CTTRACKS enables the messages for the
CT-CODE track names (MID 4000..40ff).
- New option wctct --write-tracks=file : Create a machine readable file
reflecting the track distribution to the cups. --wtracks is a short cut.
- New option wctct --order-by=bmg : Load the BMG file and filter track
names. Then order the tracks in the cups by the alphabetic order of the
BMG messages. The tracks and its slots are notmodified.
- New option wctct --order-all : Option --order-by will order all tracks.
- New command wctct PATCH : Read each source file, find and scan the
CT-CODE part and patch it.
- New command wctct TRACKS: Create a track listing.
szs v1.39a r6123 - 2015-03-27
- BMG files: Support of new color names YOR0..YOR7: 8 continous colors from
(Y)ellow to (O)range to (R)ed. For compatibility reasons, hex-codes are
used instead of the new names on text output.
- wctct: Minor bugs fixed for handling BMG files.
- wctct CREATE: Support of output modes EU-BRRES, US-BRRES, JP-BRRES, EU-SZS,
US-SZS and JP-SZS to create strap files, either uncompressed (xx-BRRES) or
compressed (xx-SZS).
- New option: wctct CREATE --images=dir: Define a directory where the images
for BRRES or SZS files are searched.
- KMP/GOBJ/ELINE_CONTROL: Use group names instead of index numbers for links
into section ENPH. Reordering of groups is stable now. In section ENPT a
cross reference to ELINE_CONTROL objects is printed.
- New option for wstrt: --vs-region and --bt-region: Define different regions
for versus races and battles.
- New: wszst SHA1 --base64: print the checksum as BASE64 encoded string.
- New: wszst SHA1 --verify: Compare a checksum integrated in the filename.
szs v1.40a r6162 - 2015-04-13
- wstrt: The region is now patched at 4 places at StaticR.rel for versus
races and at 4 other places for battles. Versus and battle can be patched
to different regions.
- BMG: Each BMG string has an additional 32-bit value. In old versions,
a value different from 0x01000000 is printed as separate line using the
format 'NAME ~ VALUE'. With this version, also a combiantion of value and
string is possible. The new format is: NAME [value_vector] = STRING'.
At scanning, both formats are accepted.
- The new option --bmg-inline selects the new inline format for output.
It will be the default in the future.
- The new option --no-bmg-inline selects the old separate line format for
output. At the moment it is the default for compatibility reasons.
- Full support of PAT0 binary and text files including decoding and encoding:
- 2 models for text output are used. SIMPLE for all standard PAT0 files
and COMPLEX for PAT0 with extended features (e.g. multiple animations).
- The internal parser is used to scan text files (SIMPLE and COMPLEX).
- New tool 'wpatt': Wiimms PAT Tool: Decode and encode PAT0 files.
- Tool 'wszst' decodes on extract and encodes on archive creation if the
text file was touched.
- The new option --pat=list defines global options for PAT processing.
- Support of PACK archives (list, extract and create).
- New option --pack: Force a PACK archive on CREATE.
- New option --align-pack=size: Define the alignment for PACK sub-files.
- The tools of the Linux distributions are compiled now with static libraries
to improve the compatibility with various Linux systems.
szs v1.41a r6469 - 2015-09-04
- Bug fix: wstrt patch --region: Changing the region in a staticr.rel file
was internally not registered as modification with the result, that the
patched file was not rewritten.
- New option for wkmpt DRAW: --png geometry: A PNG with a top view of the
world is created instead of an OBJ file. Use rotation to view into other
directions. This is very slow.
- Internal sub-file database: Files "posteffect.bblm", "posteffect.bdof" and
"VolcanoPiece*.*" are now marked as 'optional'. The new classification
suppresses "Missing file:" warnings on checks.
szs v1.42a r6527 - 2015-10-03
- New commands: wszst STGI & wkmpt STGI: Print a single line statistic about
KMP/STGI settings (start pos, speed mod, laps) for each source file.
Both commands do the same and accept track and KMP (bin and text) files.
- New option: wstrt --add-section: Add a new section to a main.dol file.
It's also possible to add a gecko code interpreter together with cheat
codes, e.g. the Lap & Speed Modifier.
szs v1.43a r6536 - 2015-10-09
- Option --add-section supports now GCT files as input. In this case,
code-handler-only is added automatically.
szs v1.44a r6558 - 2015-10-17
- BMG: The `inline mode' for attributes is now enabled by default. It can be
disabled by option --no-bmg-inline.
- BMG message id 0 is allowed now.
- BMG: Support of 1A escapes with up to 254 bytes (before 12 bytes).
- BMG: Escape sequences \x{}, \u{} and \z{} can now handle comma separated
lists of parameters. See https://szs.wiimm.de/doc/bmg/esc for details.
- New option: --x-escapes: Use \x{} escapes instead of \z{} escapes.
- New option: --old-escapes: To be compatible with v1.43 and earlier, print
1A escape sequences with total size of >12 bytes as single words. Also
don't use \x{} and \u{} with parameter lists.
- BMG supports now attribute vectors up to 20 bytes. MKWii uses only 4 bytes
for attributes.
- New option: --bmg-inf-size (also --inf-size for tool wbmgt):
Defines the size of section 'INF0'. For MKW it is usually 8.
- New option: --force-attrib=attrib: Override all BMG attributes with the
entered value. See https://szs.wiimm.de/doc/bmg/attrib for the syntax.
- New option: --def-attrib=attrib: Define alternative default attributes for
new BMG text files. See https://szs.wiimm.de/doc/bmg/attrib for the syntax.
- New option: --no-attrib: Suppress the output of string attributes at new
BMG text files.
szs v1.45a r6602 - 2015-10-31
- Option --patch-bmg=id: Better detection of the source file type (Race,
Event, MenuOther, ... ) especially in SZS files.
- The KMP compiler can now automatically create respawn points and/or
automatically connect check points to the nearest respawn point. Both
together make an initial respawn setup much easier.
Read https://szs.wiimm.de/info/respawn-setup.html for details.
- Tool wctct: It is now possible to define hidden tracks (don't appear in
any cup) by using control letter 'H' instead of 'T'.
- New option: wctct/wstrt --ct-dir: Define a search directory for CT-CODE
parts and use the internal copies only, if no valid file is found. Use
this option multiple times to define more than one search directory.
- wctct --ct-dir: Search files rmc?/mod1.bin, rmc?/mod2.bin, rmc?/ovr1.bin
and rmc?/bad1code.bin.
- wstrt --ct-dir: Search files rmc?/boot_code.bin and rmc?/boot_data.bin
if option --add-ctcode is used.
- Tools wctct and wstrt use now the most current CT-CODE version provided by
https://github.com/Wiimm/wii-ct-code (a fork of Chadderz code with support
of the SZS Tools). To use the old code of year 2013 download the zip file
https://szs.wiimm.de/download/ctcode/ctcode-2013-10.zip and use the base
directory as parameter for the new option --ct-dir (see above).
- wstrt --add-ctcode: The first free DOL sections are used now. Before only
sections T2 and D8 were added if not already in use.
- New option: wstrt --meno: Patch some 'MenuSingle' and 'MenuMulti' strings
of file StaticR.rel for online usage to 'MenO*' to distinguish between
offline and online.
szs v1.46a r6626 - 2015-11-08
- New option: --compatible=version: The option accpets a version number
(format '#.##' or 'v#.##') or a revision number (format 'r#') as parameter.
If set, the tools try to create BMG and KMP text files, that are compatible
to the entered version. This may override other legacy options.
- wkmpt DECODE: If creating a KMP text file, a new macro section is included.
The only yet provided macro is ITEMBOX: It help to setup a row of items
and supports automatic height correction. See the macro definition for more
details. The macro itself is very old and works also with old versions of
the tools, but they don't create it.
- wkmpt DRAW: Draw objects 'kinoko_*' and 'DKturibashiGC' as recognizable
polygons. These objects can also be used to stop fall-down on automatic
height evaluation, if the new parameter 'KCL-FALL-ADD-ROAD' is set to '1'.
- New: Post processing flags for KMP sections ENPT, ITPT and JGPT. To disable
the new flags column on text output, use option --compatible=v1.45.
- wkmpt DRAW: If drawing check point connection lines, red is used for the
left and green for the right side (like navigation lights).
- wkmpt DRAW: Option --draw supports now object filtering by presence flag.
The new keywords are: 1OFFLINE .. 3OFFLINE and 1ONLINE .. 3ONLINE.
szs v1.47a r6650 - 2015-11-27
- Tool wctct: Update of the internal CT-CODE (mod2). The new code improves
the modes "in order" and "random" for offline versus races. Here you can
find old CT-CODE version: https://szs.wiimm.de/download/ctcode/
Visit https://github.com/Wiimm/wii-ct-code/ for more details.
szs v1.48a r6675 - 2015-12-11
- Tools wctct and wstrt support now Korean CT-CODE. Therefor external CT-CODE
files are needed. Use --ct-dir=path to declare at least one search path.
- Bug fix: wctct disables the hard coded region patch of the CT-CODE. Now
region patches in StaticR.rel are possible like before v1.45a.
- Bug fix: On CT-CODE text export wctct encloses the track names by quote
signs. This feature was accidentally lost with v1.38a.
- New option: wctct --allow-slots: Activate reserved slots for automatic
slot assigning. Example: --allow-slots ARENAS,SPECIAL
szs v1.49a r6974 - 2016-03-05
- The BMG is rewritten as independent source code lib. It can be used by
other tools (e.g. mkw-ana) now.
- BMG text output contains now more comments about message ID groups.
- Option --patch-bmg supports 2 new modes:
- UNICODE: Replace Unicode-escapes ('\u{xx}') with 16-bit codes by related
unicode character.
- RM-ESCAPE: Remove all 0x1a-escapes from all strings.
- KCL script 'lower-walls.txt' updated to support different gradients.
- New option: --mipmap-size=num: Define the minimal width and minimal height
of a generated mipmap. The default is 16. Tools before v1.49 used 1 as not
alterable value. --mm-size is a short cut.
- Option --kcl RM-FACEDOWN: Remove all road with face direction >30 degree
toward bottom. Before it was >0 degree.
- New keyword for option --kcl: RM-FACEUP: Remove all walls with a face
direction >80 degree towards the sky.
- New keyword for option --kcl: CONV-FACEUP: Convert all walls with a face
direction >80 degree towards the sky into a simple road.
- New keyword for option --kcl: SCRIPT: If set, KCL scripts are executed
before cleaning and transforming the KCL.
szs v1.50a r7053 - 2016-04-08
- Improved cheat code handling.
- Three new options: --gct-move & --gct-addr & --gct-space
With these 3 options it is possible to support a very large cheat code
table. Therefor a temporary section is created that runs at the very
beginning and takes space from the game heap to establish a code section
before the FST table.
- Tool wctct: Update of the internal CT-CODE (mod1). The new code allows to
select original tracks in regions. Here you can find old CT-CODE versions:
https://szs.wiimm.de/download/ctcode/
Visit https://github.com/Wiimm/wii-ct-code/ for more details.
szs v1.51a r7107 - 2016-06-01
- wstrt is able to patch DOL files of other games and not only of MKWii.
- The CHECK for slot 4.2 will be more exact now because it looks for the
needed materials. The presence flags of objects 'car_body' and 'kart_truck'
is also tested. If option --OLD is set, the old polygon test will be used.
- Option --kmp=list supports now the keyword REVERSE as `backwards´ support:
Reverse KMP sections ENPH, ENPT, ITPH, ITPT, POTI. The implementation is
not finished yet and more section (CKPH, CKTP, KTPT, JGPT) will follow.
- Different small fixes.
szs v1.52a r7164 - 2016-06-29
- Bug fix for wkclt: Since v1.49a, the transformation was executed twice,
but only for commands DECODE and ENCODE. Command COPY works correct and
transforms only once.
- wstrt: Wiimmfi patching excludes now 3 patch positions for competitions.
It's now the job of the competition patcher to patch these 3 URLs.
- wkclt CFF: If creating a new flag file, the new function i(type,z,index)
is defined as support for fall boundaries (idea by Wexos).
- New tool: wmdlt: The tool wmdlt exists since v0.26a (2012), but was always
hidden, because it was useless. But now I started with MDL analysis and
plan to modifiy MDL data.
- wmdlt CAT/DECODE: Print a MDL file as text. It is incomplete, but can be
used for analysing.
- wmdlt STRINGS: Print all strings of a MDL.
- For slot 42 (moonview highway) the content of the 12 needed materials
is checked.
szs v1.53a r7308 - 2016-12-09
- Bug fix: Occasional a "Segmentation fault" occured, if reading an empty file.
- Option --draw supports the new keyword DECORATION: Draw unsolid objects
without any route as a magenta cuboid.
szs v1.54a r7393 - 2017-08-14
- Some KCL flags renamed.
- wkmpt draw --draw AREA: Areas of KMP are drawn as yellow arrows and as
transparent yellow cuboids.
- Support for RKC (competition) files added:
RKC files are handled like other archives. Tool wszst is able to detect,
list, extract or create a RKC file, also recursive. Direct creation and
optimation of the included SZS is not implemented yet.
- New keyword for option --kmp: MAX-LAPS: Keyword MAX-LAPS has only impact,
if one of 1LAP,...,9LAPS is set too. Then, the number of laps is only
decreased to the specified number, but never increased.
- New keyword for option --kmp: RM-EMPTY: After creating a new KMP, all empty
KMP sections are removed to make the KMP as small as possible. Use this
option only for compettitions!
- New command: YAZDUMP: Prints an info dump about the YAZ0/YAZ1 compression
details for analysis.
- New compression methods: 10 (=ULTRA) and 100-150: They need much more time
than BEST (=9) but create smaller SZS files than Nintendo did. It is
dedicated to competitions with strict size limitations.
- There is a new option: --tiny=level: It tries to minimize SZS and also the
included KCL and KMP by different technics (rounding values, sorting and
compression methods 100-150). It is not fully documentd yet.
See https://szs.wiimm.de/info/tiny.html for details.
- New keyword for option --kcl: WEAK-WALLS: Set the most significant bit
(bit 15, 0x8000) of KCL flag of all walls. It stops hard bumping at the
edges and has similar effects like lowering the walls.
- Windows only: Cygwin update to v2.8.1, 2017-07-03.
- Apple Mac is no longer supported because I no longer have access to a Mac.
szs v1.55a r7429 - 2017-11-11
- New command: wszst DISTRIBUTION: The aim is to create a text file that
describes a custom track distribution. The owner have to edit the created
file and send it to Wiimm. Wiimm add the information to the custom track
portal https://ct.wiimm.de/ with a complete track list.
szs v1.55b r7437 - 2017-11-19
- wszst DISTRIBUTION: New parameter: PREDECESSOR
- wszst AUTOADD: With option -v, the command will list invalid files too.
szs v1.56a r7461 - 2017-12-03
- wszst DISTRIBUTION: Track scanning improved.
- Option --cache is a global option now. It is used to speedup every YAZ0
compression, but only for standard compression level 9 (BEST). A hash table
is used now for optimization.
- New option: --cname: Defines a cache file name for a single file.
- New Command: wszst SCANCACHE: Scan the cache directory for SZS files and
re-build the hash table.
szs v1.57a r7484 - 2018-04-11
- Windows version only: Update to Cygwin v2.10.0.
- New option for tools wkclt, wszst and wkmpt: --kcl-min=FLOAT: Define a
minimal `length` of KCL triangles. The length is the heights of the
reference side of the triangle. Smaller triangles are invalidated and
ignored or removed. The default value is 0.1 and good values are between
0.01 and 2.0. Until v1.56a the minimal length was hard coded as 1e-6
(1/million) to avoid mathematical overflows while calculating positions
by normals. The larger value reduces the number of KCL glitches
dramatically for some tracks with many unusual triangles.
- New option: --wc24: If set, options --wiimmfi and --domain will exclude
2 strings of StaticR.rel from the URL patch to enable WC24 support.
szs v1.58a r7499 - 2018-04-20
- Option --kcl-min=EXPR: This option is deprecated, but still supported. It
is an alternative name for --tri-height=EXPR now.
- New option --tri-area=EXPR: Define the minimal area size of KCL triangles.
The intention is to ignore triangles that are generally to small. EXPR is
a floating point number or expression. Triangles are invalidated if their
area size is smaller than EXPR. The test is executed after reading files,
after transformations, and after calculating normals and lengths. Values
between 0.01 and 4.0 are recommended. The careful value 1.0 is used as
default. Value 0 disables this filter functionality.
- New option --tri-height=EXPR: Define the minimal height of KCL triangles.
The intention is to ignore deformed triangles (very slim, but long). EXPR
is a floating point number or expression. Triangles are invalidated if at
least 1 of the 3 heights is smaller than EXPR. The test is executed after
reading files, after transformations, and after calculating normals and
lengths. Values between 0.01 and 2.0 are recommended. The careful value 0.1
is used as default. Value 0 disables this filter functionality.
- You can proof the impact of the options above by command wkclt TEST.
- Command wkclt DUMP has been expanded and shows metrics like side length,
area size and heights for each triangle.
- New command: wkclt LIST: Print a list of all triangles with metrics in
human and machine readable text format. It is like command DUMP, but
reduced to the list of triangles.
- New implementation for OBJ groups without assigned KCL flag. They will be
inserted into the OBJ export now.
szs v1.58b r7503 - 2018-05-18
- Default value for options --tri-area and --tri-height is now 1.0.
- Some more minor edits.
szs v1.59a r7533 - 2018-08-05
- Option --kcl-min is not longer supported. Use option --tri-height instead.
- The old file extension ".flag.txt" for KCL flag files is not longer
supported.
- wszst/wkmpt CHECK: Battle arenas are now detected in 2 levels: "some hints
found" and "is battle arena". Some hints and warnings are suppressed for
battle arenas.
- wszst SLOTS: For battle arenas, the keyword ARENA is printed instead of a
slot list.
- New option: --export-flags[=mode] (or short: --exflags): KMP compiler and
scanner support the export and import of KMP flags for sections ENPT, ITPT
and JGPT through a binary KMP file. Therefore, the last byte of the scale
or of the x-rotation is used. Values becomes inaccurate by 0.003% (not
relevant for scale or rotation and not noticeable while playing).
MODE is either OFF, AUTO (default) or ON. Without value, ON is used. ON and
OFF override the @EXPORT-FLAGS settings of a KMP text file.
- New option: --wim0[=mode]: KMP compiler and scanner support the export and
KMP parameters through a special KMP section named "@WIM0@". MODE is either
OFF, AUTO (default) or ON. Without value, ON is used. ON and OFF override
the @WIM0 setting of a KMP text file. This as an experimental feature at
the moment to proof the compatibility with other KMP tools.
- New command wkmpt WIM0: Analyze the WIM0 section of each KMP file (text,
binary or szs) and print an info about it.
- wkmpt DRAW: AREAs are drawn dependent of the mode either as a rectangle
cuboid or as a cylinder (more exact: as an anti prism with 20 sides).
- wkmpt: If creating a KMP by text file, the PREV and NEXT links of item
routes are checked. If missed, a link to self is added to avoid a freeze.
- Option --kmp FIX-CKPH,FIX-ENPH,FIX-ITPH: If a PREV or NEXT link is missed,
a link to itself is added. Before, a link to another group was inserted.
- Camera types 0 (Goal) and 3 (KartFollow) are excluded from transformation
and scaling now.
- KMP text files: STGI is printed with new column names according the new
knowledge of CT-Wiiki.
- Internal KMP GOBJ database updated by CT-Wiiki object table.
szs v1.60a r7578 - 2018-08-21
- Improved detection of battle arenas by KMP. The output of KMP text files
of racing tracks and battle arenas differ.
- New option:--battle[=mode]: The mode is either OFF, AUTO (default) or ON.
OFF and ON override the automatic detection of battle arenas.
- wkmpt DRAW: The connections between ENPT and ITPT routes are drawn with
half width and a brighter color now. Additional, there is a distinction
between bidirectional links, PREV only and NEXT only.
- wkmpt DRAW: Dispatch points of KMP sections ENPT and ITPT are detected and
printed as octahedron. The NEXT links point to the nearest end of the
destination routes.
- New keyword for option --draw: DISPATCH: If set, the settings of dispatch
points of areans are visualized by colors to support the analysis.
- New keyword for option --draw: COINS: If set, draw coins as yellow, orange
or red cubus. Color and size depend on coin place type.
- New keywords for option --draw: BLACK and WHITE: If set, a very dark grey
(BLACK) or a very bright grey (WHITE) ground is inserted at height 0.0.
The rectangle encloses all valid triangles.
- New command: wkmpt ROUTES: Print out the new internal cross references for
routes of KMP sections CKPH, CKPT, ENPH, ENPT, ITPH and ITPT.
- The settings of KMP sections CKPH, ENPH and ITPH are printed as "$SETTINGS"
line if not zero. They are also scanned and stored into binary KMP. Usually
only section ENPH of battle arenas use these settings.
- New feature for KMP sections ENPT and ITPT to support battle arenas:
@AUTO-CONNECT=MODE: Control the automatic calculation of PREV and NEXT
links. One MODE is DISPATCH: Connect routes and dispatch points
automatically controlled by different settings. THe default is to link all
routes, if no links is defined.
- Auto created group names of ENPT begin with 'DP' instead of 'G', if
DISPATCH mode is active.
- PREV links of KMP sections CKPH, ENPH and ITPH are printed as "$PREV" line,
if either @AUTO-CONNECT is changed or the PREV link lists is different from
automatic calculated list.
- New global option: --route-options: Disable or enable the new features
$SETTINGS, @AUTO-CONNECT, ...
- wkmpt CHECK and wszst CHECK improved:
- Info about arena classification: NONE, MAYBE, ARENA, ARREA+DISPATCH
- Battle arena: Hint about non empty CKPT and ITPT.
- Battle arena: Warnings about empty ENPT.
- Racing track: Warnings about empty CKPT, ENPT and ITPT.
- Check the number of KTPT elements and find missed or multiple defined
player indices for battle arenas.
- Check the number of MSPT elements and print warnings about too less or
hints about too much records.
- Check number and valid types of coin objects.
- Some camera warnings reduced to HINT.
- New global option: --battle=mode: MODE is either OFF, AUTO (default) or ON.
OFF and ON override the automatic battle detection.
- New commands to be used behind $GROUP: $PREV and $SETTINGS.
- New commands to fine control @AUTO-CONNECT: $DEF-CLASS, $CLASS, $AC-PREV,
$AC-NEXT and $ONEWAY.
- New keywords for option --kmp: DUMP-CLASS, DUMP-ONEWAY, DUMP-ALL: Dump
reference lists at the end of section ENPT and ITPT.
- Internal KMP GOBJ database updated by CT-Wiiki object table.
szs v1.61a r7601 - 2018-09-23
- Bug fix for the new route analysis (e.g. wkmpt DRAW): The positions were
wrong (e.g. NAN or too large) when analysing ITPT.
- New command: wszst ISARENA: Check the arena status of a SZS file, print a
status line and exit with an appropriate status code.
szs v1.62a r7620 - 2018-11-07
- Windows version only: Update to Cygwin 2.11.1.
- Cygwin bug fix: Color support failed, if tools started in a Windows console
window or as script outside a Cygwin window.
- The text parser (mainly used to scan KMP text files) supports the new data
type STRING. Different string functions and command @EXEC added.
- Battle arena detection improved.
- New command: wstrt HEXDUMP: Dump the content of a DOL file ordered by the
memory addres. Enter "wstrt help hexdump" to get a list of the many ouput
formatting options.
szs v1.62b r7624 - 2018-11-08
- Bug fix for new parser STRING support.
szs v1.62c r7630 - 2018-11-10
- wstrt --add-section FILE: If a single file is not found and the filename
(not path) contains at least 1 '@' character, then all '@' characters of
it are replaced by the region code (one of P,E,J,K) for a second try.
- New option for Command wstrt HEXDUMP: --sname=LIST: Select addresses to
dump by section names.
szs v1.62d r7634 - 2018-11-11
- DOL detection improved.
- Tool wstrt: After patching main.dol for Wiimmfi.de, the HTTP header
"Host: DOMAIN" is not longer sent twice.
- Tool wstrt: Patching and analysing of DOL files improved.
- Tool wstrt automatically patch main.dol to support the new login method
at Wiimmfi.de, when using option --wiimmfi.
szs v1.63a.beta1 r7657 - 2018-11-17
- Tool wstrt: The method to patch main.dol to support the new Wiimmfi login
changed: It don't use the Gecko Code Handler any more.
- The cheat code memory is allocated dynamically. It supports a total of more
than 90000 cheat code lines (>720kb).
- Behaviour of option --gct-move changed: It optionally accept one of the
keywords OFF, AUTO and ON. Without parameter, AUTO is used.
- A warning message is printed, if CT-CODE (option --add-ctcode) should be
added to a not original main.dol.
szs v1.63a r7664 - 2018-11-19
- Tool wstrt: All around Wiimmfi and CT-CODE patching, and around cheat code
management tuned and optimized. On the fly, some small bugs fixed.
Related options: --add-section --gct-move --gct-addr --gct-space
--add-ctcode --wiimmfi --domain --https --wc24 --force
szs v1.64a r7680 - 2018-11-23
- Tool wstrt: Wiimmfi patching optimized again, especially in combination
with CT-CODE.
- New option for tool wstrt: --clean-dol: Remove additional DOL sections,
reset entry point and VBI address, and try to restore other patches known
by SZS tools. This is done after loading a DOL and before analysing and
patching to allow re-patching.
- Error logging improved.
szs v1.65a r7690 - 2018-12-23
- Support of BMG files without section MID1.
- New Option: --bmg-mid=MODE: Control the creation of BMG section MID1.
MODE is one of OFF, AUTO (default) or ON.
- The impact of options --n-mipmaps, --max-mipmaps and --mipmap-size changed.
All 3 options together control the automatic creation of mipmaps.
Read https://szs.wiimm.de/info/mipmap.html for details.
- Option --smart is deprecated and ignored now. The new option --fast-mipmaps
will enable the old algorithm for images with odd width or with odd height.
Read https://szs.wiimm.de/doc/img/resize for details.
*******************************************************************************
******* END *******
*******************************************************************************
|