mirror of
https://github.com/project-slippi/Ishiiruka.git
synced 2025-10-06 00:12:42 +02:00
Display rank information on CSS and Game Setup Screen (#441)
* chore: update codeset files * feature: add rank display this is a port of https://github.com/project-slippi/dolphin/pull/38 * chore: update rust extensions * chore: update playback codes
This commit is contained in:
@@ -1147,7 +1147,7 @@ B07E01C9 3B200000
|
||||
7D8903A6 4E800421
|
||||
7C791B78 3A800000
|
||||
3ABF0060 3AFE01CB
|
||||
3B590034 1C74001F
|
||||
3B590036 1C74001F
|
||||
7F03BA14 1ED40024
|
||||
7ED6AA14 88760001
|
||||
2C030000 40820028
|
||||
@@ -1161,7 +1161,7 @@ B07E01C9 3B200000
|
||||
4E800421 3A940001
|
||||
2C140004 4180FFA0
|
||||
3A800000 3ABF0060
|
||||
3AFE0247 3B5900CF
|
||||
3AFE0247 3B5900D1
|
||||
1C74000A 7F03BA14
|
||||
1ED40024 7ED6AA14
|
||||
88760001 2C030000
|
||||
@@ -1176,7 +1176,7 @@ B07E01C9 3B200000
|
||||
3A940001 2C140004
|
||||
4180FFA0 3A800000
|
||||
3ABF0060 3AFE026F
|
||||
3B5900F7 1C74001D
|
||||
3B5900F9 1C74001D
|
||||
7F03BA14 1ED40024
|
||||
7ED6AA14 88760001
|
||||
2C030000 40820028
|
||||
@@ -1196,7 +1196,7 @@ B07E01C9 3B200000
|
||||
618CADF4 7D8903A6
|
||||
4E800421 987E02E3
|
||||
2C190000 41820044
|
||||
387E02E4 38990394
|
||||
387E02E4 38990396
|
||||
38A00033 3D808000
|
||||
618C31F4 7D8903A6
|
||||
4E800421 3C60803D
|
||||
|
@@ -1146,7 +1146,7 @@ B07E01C9 3B200000
|
||||
7D8903A6 4E800421
|
||||
7C791B78 3A800000
|
||||
3ABF0060 3AFE01CB
|
||||
3B590034 1C74001F
|
||||
3B590036 1C74001F
|
||||
7F03BA14 1ED40024
|
||||
7ED6AA14 88760001
|
||||
2C030000 40820028
|
||||
@@ -1160,7 +1160,7 @@ B07E01C9 3B200000
|
||||
4E800421 3A940001
|
||||
2C140004 4180FFA0
|
||||
3A800000 3ABF0060
|
||||
3AFE0247 3B5900CF
|
||||
3AFE0247 3B5900D1
|
||||
1C74000A 7F03BA14
|
||||
1ED40024 7ED6AA14
|
||||
88760001 2C030000
|
||||
@@ -1175,7 +1175,7 @@ B07E01C9 3B200000
|
||||
3A940001 2C140004
|
||||
4180FFA0 3A800000
|
||||
3ABF0060 3AFE026F
|
||||
3B5900F7 1C74001D
|
||||
3B5900F9 1C74001D
|
||||
7F03BA14 1ED40024
|
||||
7ED6AA14 88760001
|
||||
2C030000 40820028
|
||||
@@ -1195,7 +1195,7 @@ B07E01C9 3B200000
|
||||
618CADF4 7D8903A6
|
||||
4E800421 987E02E3
|
||||
2C190000 41820044
|
||||
387E02E4 38990394
|
||||
387E02E4 38990396
|
||||
38A00033 3D808000
|
||||
618C31F4 7D8903A6
|
||||
4E800421 3C60803D
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -894,7 +894,7 @@ B07E01C9 3B200000
|
||||
7D8903A6 4E800421
|
||||
7C791B78 3A800000
|
||||
3ABF0060 3AFE01CB
|
||||
3B590034 1C74001F
|
||||
3B590036 1C74001F
|
||||
7F03BA14 1ED40024
|
||||
7ED6AA14 88760001
|
||||
2C030000 40820028
|
||||
@@ -908,7 +908,7 @@ B07E01C9 3B200000
|
||||
4E800421 3A940001
|
||||
2C140004 4180FFA0
|
||||
3A800000 3ABF0060
|
||||
3AFE0247 3B5900CF
|
||||
3AFE0247 3B5900D1
|
||||
1C74000A 7F03BA14
|
||||
1ED40024 7ED6AA14
|
||||
88760001 2C030000
|
||||
@@ -923,7 +923,7 @@ B07E01C9 3B200000
|
||||
3A940001 2C140004
|
||||
4180FFA0 3A800000
|
||||
3ABF0060 3AFE026F
|
||||
3B5900F7 1C74001D
|
||||
3B5900F9 1C74001D
|
||||
7F03BA14 1ED40024
|
||||
7ED6AA14 88760001
|
||||
2C030000 40820028
|
||||
@@ -943,7 +943,7 @@ B07E01C9 3B200000
|
||||
618CADF4 7D8903A6
|
||||
4E800421 987E02E3
|
||||
2C190000 41820044
|
||||
387E02E4 38990394
|
||||
387E02E4 38990396
|
||||
38A00033 3D808000
|
||||
618C31F4 7D8903A6
|
||||
4E800421 3C60803D
|
||||
@@ -1447,14 +1447,14 @@ B06C0001 38600001
|
||||
88780004 987B0001
|
||||
80780005 907B0007
|
||||
3C80804D 90645F90
|
||||
7FE3FB78 3898025C
|
||||
7FE3FB78 3898025E
|
||||
38A00138 3D808000
|
||||
618C31F4 7D8903A6
|
||||
4E800421 3C60801D
|
||||
6063457C 80830000
|
||||
5485302E 38800040
|
||||
7C8523D6 7C832214
|
||||
887803C7 98640008
|
||||
887803C9 98640008
|
||||
886DAFA0 2C030000
|
||||
4082007C 3CA0803D
|
||||
60A5AD40 80A50000
|
||||
@@ -3278,7 +3278,7 @@ C022AEC8 80610080
|
||||
38800009 480003B9
|
||||
887E0000 2C030004
|
||||
4182000C 38BD0064
|
||||
48000008 38BE00B0
|
||||
48000008 38BE00B2
|
||||
3880000A 48000399
|
||||
887E0000 2C030004
|
||||
4182000C 38BD0064
|
||||
@@ -3307,7 +3307,7 @@ C022AEC8 80610080
|
||||
2C030005 408200A8
|
||||
3B60000B 3B200000
|
||||
3B000000 3AE00000
|
||||
3ADE016B 7EB6C8AE
|
||||
3ADE016D 7EB6C8AE
|
||||
56A00631 41820010
|
||||
3B390002 3B180001
|
||||
48000018 2C150020
|
||||
@@ -3321,7 +3321,7 @@ C022AEC8 80610080
|
||||
3B7B0001 7ED6BA14
|
||||
3AD60001 3B200000
|
||||
3B000000 2C150000
|
||||
41820020 387E025C
|
||||
41820020 387E025E
|
||||
7C96CA14 7C041800
|
||||
40800010 2C1B000E
|
||||
41810008 4BFFFF78
|
||||
@@ -3462,7 +3462,7 @@ BE8100B0 4BFFFFB1
|
||||
3D808000 618CC160
|
||||
7D8903A6 4E800421
|
||||
3C608000 60635614
|
||||
93E30000 386003C8
|
||||
93E30000 386003CA
|
||||
3D808037 618CF1E4
|
||||
7D8903A6 4E800421
|
||||
907F0000 886DAFA0
|
||||
@@ -4215,7 +4215,7 @@ D03D0008 C03C0040
|
||||
D03D000C D03D0010
|
||||
4CC63242 C03C0048
|
||||
C05C0048 7FA3EB78
|
||||
389A0034 1CB4001F
|
||||
389A0036 1CB4001F
|
||||
7C842A14 3D80803A
|
||||
618C6B98 7D8903A6
|
||||
4E800421 7FA3EB78
|
||||
@@ -4980,18 +4980,18 @@ BE8100B0 38600000
|
||||
989E004A C03F0000
|
||||
D03E0008 C03F0004
|
||||
D03E0024 D03E0028
|
||||
887D0264 2C030001
|
||||
887D0266 2C030001
|
||||
41820038 387F0010
|
||||
389F0052 38BD0034
|
||||
389F0052 38BD0036
|
||||
38C00000 C03F001C
|
||||
48000141 387F0014
|
||||
389F0055 38BD0053
|
||||
389F0055 38BD0055
|
||||
38C00000 C03F0020
|
||||
48000129 48000038
|
||||
807D000D 4800022D
|
||||
807D000F 4800022D
|
||||
387F0010 389F0044
|
||||
C03F001C 4800010D
|
||||
807D0011 48000215
|
||||
807D0013 48000215
|
||||
387F0014 389F004B
|
||||
C03F0020 480000F5
|
||||
48000004 38600000
|
||||
@@ -5007,12 +5007,12 @@ C03F0004 D03E0024
|
||||
D03E0028 38800001
|
||||
989E004A 989E0049
|
||||
C03F0000 D03E0008
|
||||
7FC3F378 A09D026A
|
||||
7FC3F378 A09D026C
|
||||
3D808000 618C5690
|
||||
7D8903A6 4E800421
|
||||
2C030001 41820058
|
||||
3CA0803B 60A57808
|
||||
A0DD026A 38600000
|
||||
A0DD026C 38600000
|
||||
1C830002 7C85222E
|
||||
7C043000 41820014
|
||||
38630001 2C03001D
|
||||
@@ -5064,7 +5064,7 @@ CBE100E0 CBC100E8
|
||||
7C7A3039 7C632C30
|
||||
38E00008 39200000
|
||||
7C643039 1C84001F
|
||||
38840034 7C84EA14
|
||||
38840036 7C84EA14
|
||||
7D070A14 90880000
|
||||
7C632C30 38E70004
|
||||
39290001 2C090003
|
||||
@@ -5083,7 +5083,7 @@ BE8100B0 38600000
|
||||
3D808000 618C5610
|
||||
7D8903A6 4E800421
|
||||
7C7F1B78 887F0004
|
||||
1C630024 389F02BC
|
||||
1C630024 389F02BE
|
||||
7FC418AE 7FE3FB78
|
||||
3D808037 618CF1B0
|
||||
7D8903A6 4E800421
|
||||
@@ -5372,7 +5372,7 @@ A09B0001 38840006
|
||||
7F9B21AE 387C0003
|
||||
7C9B18AE 38A40001
|
||||
7CBB19AE 1C9C0002
|
||||
38840010 A07F026A
|
||||
38840010 A07F026C
|
||||
7C7B232E 889B0000
|
||||
38840001 38600002
|
||||
7C841B96 7C052000
|
||||
@@ -5469,10 +5469,10 @@ BE8100B0 38600000
|
||||
887F0084 98640008
|
||||
887F0087 9864000E
|
||||
38600000 9864FFFF
|
||||
9864FFFB 887E0264
|
||||
9864FFFB 887E0266
|
||||
2C030000 418200F4
|
||||
887E0003 1C630024
|
||||
386302C5 7F7E18AE
|
||||
386302C7 7F7E18AE
|
||||
38600002 98640002
|
||||
38600001 9864FFFB
|
||||
98640006 98640007
|
||||
@@ -5506,7 +5506,7 @@ BE8100B0 38600000
|
||||
887F0063 98640018
|
||||
887F0084 9064001C
|
||||
887F0087 98640020
|
||||
887E0264 2C030000
|
||||
887E0266 2C030000
|
||||
41820024 887F00A8
|
||||
90640024 887F00AB
|
||||
98640028 887F00CC
|
||||
@@ -5559,7 +5559,7 @@ BE8100B0 3C808047
|
||||
618C5610 7D8903A6
|
||||
4E800421 7C7F1B78
|
||||
83CD8840 3BDE0598
|
||||
7FC3F378 389F025C
|
||||
7FC3F378 389F025E
|
||||
38A00138 3D808000
|
||||
618C31F4 7D8903A6
|
||||
4E800421 7FC3F378
|
||||
@@ -5567,16 +5567,16 @@ BE8100B0 3C808047
|
||||
7D8903A6 4E800421
|
||||
3D808017 618CEB30
|
||||
7D8903A6 4E800421
|
||||
889F02BC 98830000
|
||||
889F02BF 98830001
|
||||
889F02BE 98830000
|
||||
889F02C1 98830001
|
||||
38800000 98830002
|
||||
38800003 98830005
|
||||
38800078 98830004
|
||||
3C80803D 6084DEC8
|
||||
8084000C 887F02E0
|
||||
8084000C 887F02E2
|
||||
98640002 38602121
|
||||
B0640003 3C808049
|
||||
60840880 887F02E3
|
||||
60840880 887F02E5
|
||||
98640016 7FE3FB78
|
||||
3D808037 618CF1B0
|
||||
7D8903A6 4E800421
|
||||
@@ -5714,7 +5714,7 @@ C2005690 0000000C #Online/Static/CheckAltStageName.asm
|
||||
9421FF20 BE8100B0
|
||||
7C7E1B78 38600000
|
||||
2C040003 4082002C
|
||||
881D03C7 2C000000
|
||||
881D03C9 2C000000
|
||||
41820020 7FC3F378
|
||||
38800059 3D80803A
|
||||
618C6368 7D8903A6
|
||||
@@ -5758,7 +5758,7 @@ C2005610 00000012 #Online/Static/LoadMatchState.asm
|
||||
7C0802A6 90010004
|
||||
9421FF20 BE8100B0
|
||||
2C030000 40820018
|
||||
386003C8 3D808037
|
||||
386003CA 3D808037
|
||||
618CF1E4 7D8903A6
|
||||
4E800421 7C7F1B78
|
||||
386000B3 987F0000
|
||||
@@ -5766,7 +5766,7 @@ C2005610 00000012 #Online/Static/LoadMatchState.asm
|
||||
38A00001 3D808000
|
||||
618C55F0 7D8903A6
|
||||
4E800421 7FE3FB78
|
||||
388003C8 38A00000
|
||||
388003CA 38A00000
|
||||
3D808000 618C55F0
|
||||
7D8903A6 4E800421
|
||||
7FE3FB78 BA8100B0
|
||||
|
@@ -893,7 +893,7 @@ B07E01C9 3B200000
|
||||
7D8903A6 4E800421
|
||||
7C791B78 3A800000
|
||||
3ABF0060 3AFE01CB
|
||||
3B590034 1C74001F
|
||||
3B590036 1C74001F
|
||||
7F03BA14 1ED40024
|
||||
7ED6AA14 88760001
|
||||
2C030000 40820028
|
||||
@@ -907,7 +907,7 @@ B07E01C9 3B200000
|
||||
4E800421 3A940001
|
||||
2C140004 4180FFA0
|
||||
3A800000 3ABF0060
|
||||
3AFE0247 3B5900CF
|
||||
3AFE0247 3B5900D1
|
||||
1C74000A 7F03BA14
|
||||
1ED40024 7ED6AA14
|
||||
88760001 2C030000
|
||||
@@ -922,7 +922,7 @@ B07E01C9 3B200000
|
||||
3A940001 2C140004
|
||||
4180FFA0 3A800000
|
||||
3ABF0060 3AFE026F
|
||||
3B5900F7 1C74001D
|
||||
3B5900F9 1C74001D
|
||||
7F03BA14 1ED40024
|
||||
7ED6AA14 88760001
|
||||
2C030000 40820028
|
||||
@@ -942,7 +942,7 @@ B07E01C9 3B200000
|
||||
618CADF4 7D8903A6
|
||||
4E800421 987E02E3
|
||||
2C190000 41820044
|
||||
387E02E4 38990394
|
||||
387E02E4 38990396
|
||||
38A00033 3D808000
|
||||
618C31F4 7D8903A6
|
||||
4E800421 3C60803D
|
||||
@@ -1446,14 +1446,14 @@ B06C0001 38600001
|
||||
88780004 987B0001
|
||||
80780005 907B0007
|
||||
3C80804D 90645F90
|
||||
7FE3FB78 3898025C
|
||||
7FE3FB78 3898025E
|
||||
38A00138 3D808000
|
||||
618C31F4 7D8903A6
|
||||
4E800421 3C60801D
|
||||
6063457C 80830000
|
||||
5485302E 38800040
|
||||
7C8523D6 7C832214
|
||||
887803C7 98640008
|
||||
887803C9 98640008
|
||||
886DAFA0 2C030000
|
||||
4082007C 3CA0803D
|
||||
60A5AD40 80A50000
|
||||
@@ -3277,7 +3277,7 @@ C022AEC8 80610080
|
||||
38800009 480003B9
|
||||
887E0000 2C030004
|
||||
4182000C 38BD0064
|
||||
48000008 38BE00B0
|
||||
48000008 38BE00B2
|
||||
3880000A 48000399
|
||||
887E0000 2C030004
|
||||
4182000C 38BD0064
|
||||
@@ -3306,7 +3306,7 @@ C022AEC8 80610080
|
||||
2C030005 408200A8
|
||||
3B60000B 3B200000
|
||||
3B000000 3AE00000
|
||||
3ADE016B 7EB6C8AE
|
||||
3ADE016D 7EB6C8AE
|
||||
56A00631 41820010
|
||||
3B390002 3B180001
|
||||
48000018 2C150020
|
||||
@@ -3320,7 +3320,7 @@ C022AEC8 80610080
|
||||
3B7B0001 7ED6BA14
|
||||
3AD60001 3B200000
|
||||
3B000000 2C150000
|
||||
41820020 387E025C
|
||||
41820020 387E025E
|
||||
7C96CA14 7C041800
|
||||
40800010 2C1B000E
|
||||
41810008 4BFFFF78
|
||||
@@ -3461,7 +3461,7 @@ BE8100B0 4BFFFFB1
|
||||
3D808000 618CC160
|
||||
7D8903A6 4E800421
|
||||
3C608000 60635614
|
||||
93E30000 386003C8
|
||||
93E30000 386003CA
|
||||
3D808037 618CF1E4
|
||||
7D8903A6 4E800421
|
||||
907F0000 886DAFA0
|
||||
@@ -4214,7 +4214,7 @@ D03D0008 C03C0040
|
||||
D03D000C D03D0010
|
||||
4CC63242 C03C0048
|
||||
C05C0048 7FA3EB78
|
||||
389A0034 1CB4001F
|
||||
389A0036 1CB4001F
|
||||
7C842A14 3D80803A
|
||||
618C6B98 7D8903A6
|
||||
4E800421 7FA3EB78
|
||||
@@ -4979,18 +4979,18 @@ BE8100B0 38600000
|
||||
989E004A C03F0000
|
||||
D03E0008 C03F0004
|
||||
D03E0024 D03E0028
|
||||
887D0264 2C030001
|
||||
887D0266 2C030001
|
||||
41820038 387F0010
|
||||
389F0052 38BD0034
|
||||
389F0052 38BD0036
|
||||
38C00000 C03F001C
|
||||
48000141 387F0014
|
||||
389F0055 38BD0053
|
||||
389F0055 38BD0055
|
||||
38C00000 C03F0020
|
||||
48000129 48000038
|
||||
807D000D 4800022D
|
||||
807D000F 4800022D
|
||||
387F0010 389F0044
|
||||
C03F001C 4800010D
|
||||
807D0011 48000215
|
||||
807D0013 48000215
|
||||
387F0014 389F004B
|
||||
C03F0020 480000F5
|
||||
48000004 38600000
|
||||
@@ -5006,12 +5006,12 @@ C03F0004 D03E0024
|
||||
D03E0028 38800001
|
||||
989E004A 989E0049
|
||||
C03F0000 D03E0008
|
||||
7FC3F378 A09D026A
|
||||
7FC3F378 A09D026C
|
||||
3D808000 618C5690
|
||||
7D8903A6 4E800421
|
||||
2C030001 41820058
|
||||
3CA0803B 60A57808
|
||||
A0DD026A 38600000
|
||||
A0DD026C 38600000
|
||||
1C830002 7C85222E
|
||||
7C043000 41820014
|
||||
38630001 2C03001D
|
||||
@@ -5063,7 +5063,7 @@ CBE100E0 CBC100E8
|
||||
7C7A3039 7C632C30
|
||||
38E00008 39200000
|
||||
7C643039 1C84001F
|
||||
38840034 7C84EA14
|
||||
38840036 7C84EA14
|
||||
7D070A14 90880000
|
||||
7C632C30 38E70004
|
||||
39290001 2C090003
|
||||
@@ -5082,7 +5082,7 @@ BE8100B0 38600000
|
||||
3D808000 618C5610
|
||||
7D8903A6 4E800421
|
||||
7C7F1B78 887F0004
|
||||
1C630024 389F02BC
|
||||
1C630024 389F02BE
|
||||
7FC418AE 7FE3FB78
|
||||
3D808037 618CF1B0
|
||||
7D8903A6 4E800421
|
||||
@@ -5371,7 +5371,7 @@ A09B0001 38840006
|
||||
7F9B21AE 387C0003
|
||||
7C9B18AE 38A40001
|
||||
7CBB19AE 1C9C0002
|
||||
38840010 A07F026A
|
||||
38840010 A07F026C
|
||||
7C7B232E 889B0000
|
||||
38840001 38600002
|
||||
7C841B96 7C052000
|
||||
@@ -5468,10 +5468,10 @@ BE8100B0 38600000
|
||||
887F0084 98640008
|
||||
887F0087 9864000E
|
||||
38600000 9864FFFF
|
||||
9864FFFB 887E0264
|
||||
9864FFFB 887E0266
|
||||
2C030000 418200F4
|
||||
887E0003 1C630024
|
||||
386302C5 7F7E18AE
|
||||
386302C7 7F7E18AE
|
||||
38600002 98640002
|
||||
38600001 9864FFFB
|
||||
98640006 98640007
|
||||
@@ -5505,7 +5505,7 @@ BE8100B0 38600000
|
||||
887F0063 98640018
|
||||
887F0084 9064001C
|
||||
887F0087 98640020
|
||||
887E0264 2C030000
|
||||
887E0266 2C030000
|
||||
41820024 887F00A8
|
||||
90640024 887F00AB
|
||||
98640028 887F00CC
|
||||
@@ -5558,7 +5558,7 @@ BE8100B0 3C808047
|
||||
618C5610 7D8903A6
|
||||
4E800421 7C7F1B78
|
||||
83CD8840 3BDE0598
|
||||
7FC3F378 389F025C
|
||||
7FC3F378 389F025E
|
||||
38A00138 3D808000
|
||||
618C31F4 7D8903A6
|
||||
4E800421 7FC3F378
|
||||
@@ -5566,16 +5566,16 @@ BE8100B0 3C808047
|
||||
7D8903A6 4E800421
|
||||
3D808017 618CEB30
|
||||
7D8903A6 4E800421
|
||||
889F02BC 98830000
|
||||
889F02BF 98830001
|
||||
889F02BE 98830000
|
||||
889F02C1 98830001
|
||||
38800000 98830002
|
||||
38800003 98830005
|
||||
38800078 98830004
|
||||
3C80803D 6084DEC8
|
||||
8084000C 887F02E0
|
||||
8084000C 887F02E2
|
||||
98640002 38602121
|
||||
B0640003 3C808049
|
||||
60840880 887F02E3
|
||||
60840880 887F02E5
|
||||
98640016 7FE3FB78
|
||||
3D808037 618CF1B0
|
||||
7D8903A6 4E800421
|
||||
@@ -5713,7 +5713,7 @@ C2005690 0000000C #Online/Static/CheckAltStageName.asm
|
||||
9421FF20 BE8100B0
|
||||
7C7E1B78 38600000
|
||||
2C040003 4082002C
|
||||
881D03C7 2C000000
|
||||
881D03C9 2C000000
|
||||
41820020 7FC3F378
|
||||
38800059 3D80803A
|
||||
618C6368 7D8903A6
|
||||
@@ -5757,7 +5757,7 @@ C2005610 00000012 #Online/Static/LoadMatchState.asm
|
||||
7C0802A6 90010004
|
||||
9421FF20 BE8100B0
|
||||
2C030000 40820018
|
||||
386003C8 3D808037
|
||||
386003CA 3D808037
|
||||
618CF1E4 7D8903A6
|
||||
4E800421 7C7F1B78
|
||||
386000B3 987F0000
|
||||
@@ -5765,7 +5765,7 @@ C2005610 00000012 #Online/Static/LoadMatchState.asm
|
||||
38A00001 3D808000
|
||||
618C55F0 7D8903A6
|
||||
4E800421 7FE3FB78
|
||||
388003C8 38A00000
|
||||
388003CA 38A00000
|
||||
3D808000 618C55F0
|
||||
7D8903A6 4E800421
|
||||
7FE3FB78 BA8100B0
|
||||
|
2
Externals/SlippiRustExtensions
vendored
2
Externals/SlippiRustExtensions
vendored
Submodule Externals/SlippiRustExtensions updated: e60cde959c...9d59002e2f
@@ -150,6 +150,8 @@ struct SConfig : NonCopyable
|
||||
bool bAdapterWarning = true;
|
||||
|
||||
bool bReduceTimingDispersion = false;
|
||||
bool bSlippiPlayerRankDisplay = true;
|
||||
bool bSlippiOpponentRankDisplay = true;
|
||||
bool bSlippiJukeboxEnabled = true;
|
||||
int iSlippiJukeboxVolume = 100;
|
||||
|
||||
|
@@ -2148,6 +2148,8 @@ void CEXISlippi::prepareOnlineMatchState()
|
||||
std::string oppName = "";
|
||||
std::string p1Name = "";
|
||||
std::string p2Name = "";
|
||||
u8 localRank = 0;
|
||||
u8 oppRank = 0;
|
||||
u8 chatMessageId = 0;
|
||||
u8 chatMessagePlayerIdx = 0;
|
||||
u8 sentChatMessageId = 0;
|
||||
@@ -2160,6 +2162,8 @@ void CEXISlippi::prepareOnlineMatchState()
|
||||
// in CSS p1 is always current player and p2 is opponent
|
||||
localPlayerName = p1Name = userInfo.displayName;
|
||||
oppName = p2Name = "Player 2";
|
||||
localRank = 8;
|
||||
oppRank = 15;
|
||||
#endif
|
||||
|
||||
SlippiDesyncRecoveryResp desync_recovery;
|
||||
@@ -2488,6 +2492,16 @@ void CEXISlippi::prepareOnlineMatchState()
|
||||
m_read_queue.push_back((u8)chatMessageId);
|
||||
m_read_queue.push_back((u8)chatMessagePlayerIdx);
|
||||
|
||||
bool isRanked = lastSearch.mode == SlippiMatchmaking::OnlinePlayMode::RANKED;
|
||||
if (isRanked)
|
||||
{
|
||||
localRank = (u8)matchmaking->GetPlayerRank(localPlayerIndex);
|
||||
oppRank = (u8)matchmaking->GetPlayerRank(remotePlayerIndex);
|
||||
}
|
||||
|
||||
m_read_queue.push_back(localRank);
|
||||
m_read_queue.push_back(oppRank);
|
||||
|
||||
// Add player groupings for VS splash screen
|
||||
leftTeamPlayers.resize(4, 0);
|
||||
rightTeamPlayers.resize(4, 0);
|
||||
@@ -3199,6 +3213,30 @@ void CEXISlippi::handleGetPlayerSettings()
|
||||
m_read_queue.insert(m_read_queue.end(), data_ptr, data_ptr + sizeof(SlippiExiTypes::GetPlayerSettingsResponse));
|
||||
}
|
||||
|
||||
void CEXISlippi::handleGetRank()
|
||||
{
|
||||
RustRankInfo rank_info = slprs_get_rank_info(slprs_exi_device_ptr);
|
||||
m_read_queue.clear();
|
||||
|
||||
// Determine rank info visibility
|
||||
u8 local_rank_enabled = static_cast<u8>(SConfig::GetInstance().bSlippiPlayerRankDisplay);
|
||||
u8 opp_rank_enabled = static_cast<u8>(SConfig::GetInstance().bSlippiOpponentRankDisplay);
|
||||
u8 rank_visibility = local_rank_enabled | (opp_rank_enabled << 1);
|
||||
|
||||
// Push rank data header
|
||||
m_read_queue.push_back(rank_visibility);
|
||||
m_read_queue.push_back(static_cast<u8>(rank_info.fetch_status));
|
||||
|
||||
// ERROR_LOG_FMT(SLIPPI_ONLINE, "Update count: {}", rank_info.rating_update_count);
|
||||
|
||||
// Push rank data
|
||||
m_read_queue.push_back(static_cast<u8>(rank_info.rank));
|
||||
appendWordToBuffer(&m_read_queue, *(u32 *)(&rank_info.rating_ordinal));
|
||||
appendWordToBuffer(&m_read_queue, static_cast<u32>(rank_info.rating_update_count));
|
||||
appendWordToBuffer(&m_read_queue, *(u32 *)(&rank_info.rating_change));
|
||||
m_read_queue.push_back(static_cast<u8>(rank_info.rank_change));
|
||||
}
|
||||
|
||||
void CEXISlippi::DMAWrite(u32 _uAddr, u32 _uSize)
|
||||
{
|
||||
u8 *memPtr = Memory::GetPointer(_uAddr);
|
||||
@@ -3390,6 +3428,16 @@ void CEXISlippi::DMAWrite(u32 _uAddr, u32 _uSize)
|
||||
slprs_jukebox_set_melee_music_volume(slprs_exi_device_ptr, args.volume);
|
||||
break;
|
||||
}
|
||||
case CMD_GET_RANK:
|
||||
{
|
||||
handleGetRank();
|
||||
break;
|
||||
}
|
||||
case CMD_FETCH_RANK:
|
||||
{
|
||||
slprs_fetch_match_result(slprs_exi_device_ptr, recentMmResult.id.c_str());
|
||||
break;
|
||||
}
|
||||
default:
|
||||
writeToFileAsync(&memPtr[bufLoc], payloadLen + 1, "");
|
||||
m_slippiserver->write(&memPtr[bufLoc], payloadLen + 1);
|
||||
|
@@ -106,6 +106,9 @@ class CEXISlippi : public IEXIDevice
|
||||
CMD_CHANGE_MUSIC_VOLUME = 0xD8,
|
||||
CMD_PREMADE_TEXT_LENGTH = 0xE1,
|
||||
CMD_PREMADE_TEXT_LOAD = 0xE2,
|
||||
CMD_GET_RANK = 0xE3,
|
||||
CMD_FETCH_RANK = 0xE4,
|
||||
CMD_GET_RANK_VISIBILITY = 0xE5
|
||||
};
|
||||
|
||||
enum
|
||||
@@ -189,6 +192,9 @@ class CEXISlippi : public IEXIDevice
|
||||
{CMD_CHANGE_MUSIC_VOLUME, static_cast<u32>(sizeof(SlippiExiTypes::ChangeMusicVolumeQuery) - 1)},
|
||||
{CMD_PREMADE_TEXT_LENGTH, 0x2},
|
||||
{CMD_PREMADE_TEXT_LOAD, 0x2},
|
||||
{CMD_GET_RANK, 0x0},
|
||||
{CMD_FETCH_RANK, 0x0},
|
||||
{CMD_GET_RANK_VISIBILITY, 0x0},
|
||||
};
|
||||
|
||||
struct WriteMessage
|
||||
@@ -257,6 +263,7 @@ class CEXISlippi : public IEXIDevice
|
||||
void handleCompleteSet(const SlippiExiTypes::ReportSetCompletionQuery &query);
|
||||
void handleMatchStatusUpdate(const SlippiExiTypes::ReportMatchStatusUpdateQuery &query);
|
||||
void handleGetPlayerSettings();
|
||||
void handleGetRank();
|
||||
|
||||
// replay playback stuff
|
||||
void prepareGameInfo(u8 *payload);
|
||||
|
@@ -531,6 +531,15 @@ void SlippiMatchmaking::handleMatchmaking()
|
||||
playerInfo.chatMessages = m_user->GetDefaultChatMessages();
|
||||
}
|
||||
|
||||
json rankEl = el["rank"];
|
||||
if (rankEl.is_object())
|
||||
{
|
||||
playerInfo.rankedRating = rankEl.value("rating", 0.0f);
|
||||
playerInfo.rankedUpdateCount = rankEl.value("updateCount", 0);
|
||||
playerInfo.rankedGlobalPlacement = rankEl.value("globalPlacement", 0);
|
||||
playerInfo.rankedRegionalPlacement = rankEl.value("regionalPlacement", 0);
|
||||
}
|
||||
|
||||
m_playerInfo.push_back(playerInfo);
|
||||
|
||||
if (isLocal)
|
||||
@@ -609,8 +618,11 @@ void SlippiMatchmaking::handleMatchmaking()
|
||||
// Disconnect and destroy enet client to mm server
|
||||
terminateMmConnection();
|
||||
|
||||
// Report to backend that we are attempting to connect to this match
|
||||
slprs_exi_device_report_match_status(slprs_exi_device_ptr, matchId.c_str(), "connecting", true);
|
||||
// If ranked, report to backend that we are attempting to connect to this match
|
||||
if (matchId.find("mode.ranked") != std::string::npos)
|
||||
{
|
||||
slprs_exi_device_report_match_status(slprs_exi_device_ptr, matchId.c_str(), "connecting", true);
|
||||
}
|
||||
|
||||
m_state = ProcessState::OPPONENT_CONNECTING;
|
||||
ERROR_LOG(SLIPPI_ONLINE, "[Matchmaking] Opponent found. isDecider: %s", m_isHost ? "true" : "false");
|
||||
@@ -631,6 +643,125 @@ std::vector<u16> SlippiMatchmaking::GetStages()
|
||||
return m_allowedStages;
|
||||
}
|
||||
|
||||
// This is kind of duplicate code from what exists in rust. Maybe eventually it should be remove
|
||||
// and exist only on the rust side
|
||||
SlippiMatchmaking::SlippiRank SlippiMatchmaking::GetPlayerRank(u8 port)
|
||||
{
|
||||
if (port >= m_playerInfo.size())
|
||||
{
|
||||
return SlippiRank::Unranked;
|
||||
}
|
||||
|
||||
auto info = m_playerInfo[port];
|
||||
|
||||
float rating = info.rankedRating;
|
||||
int updateCount = info.rankedUpdateCount;
|
||||
int global = info.rankedGlobalPlacement;
|
||||
int regional = info.rankedRegionalPlacement;
|
||||
|
||||
if (updateCount < 5)
|
||||
{
|
||||
return SlippiRank::Unranked;
|
||||
}
|
||||
|
||||
if (rating <= 765.42f)
|
||||
{
|
||||
return SlippiRank::Bronze1;
|
||||
}
|
||||
|
||||
if (rating > 765.43f && rating <= 913.71f)
|
||||
{
|
||||
return SlippiRank::Bronze2;
|
||||
}
|
||||
|
||||
if (rating > 913.72f && rating <= 1054.86f)
|
||||
{
|
||||
return SlippiRank::Bronze3;
|
||||
}
|
||||
|
||||
if (rating > 1054.87f && rating <= 1188.87f)
|
||||
{
|
||||
return SlippiRank::Silver1;
|
||||
}
|
||||
|
||||
if (rating > 1188.88f && rating <= 1315.74f)
|
||||
{
|
||||
return SlippiRank::Silver2;
|
||||
}
|
||||
|
||||
if (rating > 1315.75f && rating <= 1435.47f)
|
||||
{
|
||||
return SlippiRank::Silver3;
|
||||
}
|
||||
|
||||
if (rating > 1435.48f && rating <= 1548.06f)
|
||||
{
|
||||
return SlippiRank::Gold1;
|
||||
}
|
||||
|
||||
if (rating > 1548.07f && rating <= 1653.51f)
|
||||
{
|
||||
return SlippiRank::Gold2;
|
||||
}
|
||||
|
||||
if (rating > 1653.52f && rating <= 1751.82f)
|
||||
{
|
||||
return SlippiRank::Gold3;
|
||||
}
|
||||
|
||||
if (rating > 1751.83f && rating <= 1842.99f)
|
||||
{
|
||||
return SlippiRank::Platinum1;
|
||||
}
|
||||
|
||||
if (rating > 1843.0f && rating <= 1927.02f)
|
||||
{
|
||||
return SlippiRank::Platinum2;
|
||||
}
|
||||
|
||||
if (rating > 1927.03f && rating <= 2003.91f)
|
||||
{
|
||||
return SlippiRank::Platinum3;
|
||||
}
|
||||
|
||||
if (rating > 2003.92f && rating <= 2073.66f)
|
||||
{
|
||||
return SlippiRank::Diamond1;
|
||||
}
|
||||
|
||||
if (rating > 2073.67f && rating <= 2136.27f)
|
||||
{
|
||||
return SlippiRank::Diamond2;
|
||||
}
|
||||
|
||||
if (rating > 2136.28f && rating <= 2191.74f)
|
||||
{
|
||||
return SlippiRank::Diamond3;
|
||||
}
|
||||
|
||||
if (rating >= 2191.75f && global > 0 && regional > 0)
|
||||
{
|
||||
return SlippiRank::Grandmaster;
|
||||
}
|
||||
|
||||
if (rating > 2191.75f && rating <= 2274.99f)
|
||||
{
|
||||
return SlippiRank::Master1;
|
||||
}
|
||||
|
||||
if (rating > 2275.0f && rating <= 2350.0f)
|
||||
{
|
||||
return SlippiRank::Master2;
|
||||
}
|
||||
|
||||
if (rating > 2350.0f)
|
||||
{
|
||||
return SlippiRank::Master3;
|
||||
}
|
||||
|
||||
return SlippiRank::Unranked;
|
||||
}
|
||||
|
||||
SlippiMatchmaking::MatchmakeResult SlippiMatchmaking::GetMatchmakeResult()
|
||||
{
|
||||
return m_mmResult;
|
||||
|
@@ -40,6 +40,30 @@ class SlippiMatchmaking
|
||||
ERROR_ENCOUNTERED,
|
||||
};
|
||||
|
||||
enum SlippiRank
|
||||
{
|
||||
Unranked,
|
||||
Bronze1,
|
||||
Bronze2,
|
||||
Bronze3,
|
||||
Silver1,
|
||||
Silver2,
|
||||
Silver3,
|
||||
Gold1,
|
||||
Gold2,
|
||||
Gold3,
|
||||
Platinum1,
|
||||
Platinum2,
|
||||
Platinum3,
|
||||
Diamond1,
|
||||
Diamond2,
|
||||
Diamond3,
|
||||
Master1,
|
||||
Master2,
|
||||
Master3,
|
||||
Grandmaster
|
||||
};
|
||||
|
||||
struct MatchSearchSettings
|
||||
{
|
||||
OnlinePlayMode mode = OnlinePlayMode::RANKED;
|
||||
@@ -62,6 +86,7 @@ class SlippiMatchmaking
|
||||
int LocalPlayerIndex();
|
||||
std::vector<SlippiUser::UserInfo> GetPlayerInfo();
|
||||
std::string GetPlayerName(u8 port);
|
||||
SlippiRank GetPlayerRank(u8 port);
|
||||
std::vector<u16> GetStages();
|
||||
u8 RemotePlayerCount();
|
||||
MatchmakeResult GetMatchmakeResult();
|
||||
|
@@ -33,6 +33,11 @@ class SlippiUser
|
||||
std::vector<std::string> chatMessages;
|
||||
|
||||
bool isBot = false;
|
||||
|
||||
float rankedRating = 0;
|
||||
int rankedUpdateCount = 0;
|
||||
int rankedGlobalPlacement = 0;
|
||||
int rankedRegionalPlacement = 0;
|
||||
};
|
||||
|
||||
SlippiUser(uintptr_t rs_exi_device_ptr);
|
||||
|
@@ -101,6 +101,10 @@ void SlippiNetplayConfigPane::InitializeGUI()
|
||||
_("Make inputs feel more console-like for overclocked GCC to USB "
|
||||
"adapters at the cost of 1.6ms of input lag (2ms for single-port official adapter)."));
|
||||
|
||||
m_slippi_show_player_rank =
|
||||
new wxCheckBox(this, wxID_ANY, _("Show your rank (Character Select and Ranked Setup Screen)"));
|
||||
m_slippi_show_opponent_rank = new wxCheckBox(this, wxID_ANY, _("Show opponent's rank (Ranked Setup Screen"));
|
||||
|
||||
m_slippi_jukebox_enabled_checkbox = new wxCheckBox(this, wxID_ANY, _("Enable Music"));
|
||||
|
||||
// WASAPI does not work with this and we want a note for the user.
|
||||
@@ -180,6 +184,17 @@ void SlippiNetplayConfigPane::InitializeGUI()
|
||||
main_sizer->Add(sbSlippiInputSettings, 0, wxEXPAND | wxLEFT | wxRIGHT, space5);
|
||||
main_sizer->AddSpacer(space5);
|
||||
|
||||
wxStaticBoxSizer *const sbRankSettings =
|
||||
new wxStaticBoxSizer(wxVERTICAL, this, _("Rank Settings"));
|
||||
sbRankSettings->AddSpacer(space5);
|
||||
sbRankSettings->Add(m_slippi_show_player_rank, 0, wxLEFT | wxRIGHT, space5);
|
||||
sbRankSettings->AddSpacer(space5);
|
||||
sbRankSettings->Add(m_slippi_show_opponent_rank, 0, wxLEFT | wxRIGHT, space5);
|
||||
sbRankSettings->AddSpacer(space5);
|
||||
|
||||
main_sizer->Add(sbRankSettings, 0, wxEXPAND | wxLEFT | wxRIGHT, space5);
|
||||
main_sizer->AddSpacer(space5);
|
||||
|
||||
wxStaticBoxSizer *const sbSlippiJukeboxSettings =
|
||||
new wxStaticBoxSizer(wxVERTICAL, this, _("Slippi Jukebox Settings (Beta)"));
|
||||
sbSlippiJukeboxSettings->AddSpacer(space5);
|
||||
@@ -233,6 +248,9 @@ void SlippiNetplayConfigPane::LoadGUIValues()
|
||||
|
||||
m_reduce_timing_dispersion_checkbox->SetValue(startup_params.bReduceTimingDispersion);
|
||||
|
||||
m_slippi_show_player_rank->SetValue(startup_params.bSlippiPlayerRankDisplay);
|
||||
m_slippi_show_opponent_rank->SetValue(startup_params.bSlippiOpponentRankDisplay);
|
||||
|
||||
m_slippi_jukebox_enabled_checkbox->SetValue(enableJukebox);
|
||||
m_slippi_jukebox_volume_slider->SetValue(startup_params.iSlippiJukeboxVolume);
|
||||
m_jukebox_volume_text->SetLabel(wxString::Format("%d %%", startup_params.iSlippiJukeboxVolume));
|
||||
@@ -267,6 +285,9 @@ void SlippiNetplayConfigPane::BindEvents()
|
||||
m_reduce_timing_dispersion_checkbox->Bind(wxEVT_CHECKBOX, &SlippiNetplayConfigPane::OnReduceTimingDispersionToggle,
|
||||
this);
|
||||
|
||||
m_slippi_show_player_rank->Bind(wxEVT_CHECKBOX, &SlippiNetplayConfigPane::OnToggleShowPlayerRank, this);
|
||||
m_slippi_show_opponent_rank->Bind(wxEVT_CHECKBOX, &SlippiNetplayConfigPane::OnToggleShowOpponentRank, this);
|
||||
|
||||
m_slippi_jukebox_enabled_checkbox->Bind(wxEVT_CHECKBOX, &SlippiNetplayConfigPane::OnToggleJukeboxEnabled, this);
|
||||
m_slippi_jukebox_volume_slider->Bind(wxEVT_SLIDER, &SlippiNetplayConfigPane::OnJukeboxVolumeUpdate, this);
|
||||
}
|
||||
@@ -353,6 +374,16 @@ void SlippiNetplayConfigPane::OnReduceTimingDispersionToggle(wxCommandEvent &eve
|
||||
SConfig::GetInstance().bReduceTimingDispersion = m_reduce_timing_dispersion_checkbox->GetValue();
|
||||
}
|
||||
|
||||
void SlippiNetplayConfigPane::OnToggleShowPlayerRank(wxCommandEvent &event)
|
||||
{
|
||||
SConfig::GetInstance().bSlippiPlayerRankDisplay = m_slippi_show_player_rank->GetValue();
|
||||
}
|
||||
|
||||
void SlippiNetplayConfigPane::OnToggleShowOpponentRank(wxCommandEvent &event)
|
||||
{
|
||||
SConfig::GetInstance().bSlippiOpponentRankDisplay = m_slippi_show_opponent_rank->GetValue();
|
||||
}
|
||||
|
||||
void SlippiNetplayConfigPane::OnToggleJukeboxEnabled(wxCommandEvent &event)
|
||||
{
|
||||
bool isEnabled = m_slippi_jukebox_enabled_checkbox->GetValue();
|
||||
|
@@ -42,6 +42,10 @@ class SlippiNetplayConfigPane final : public wxPanel
|
||||
void OnQuickChatChanged(wxCommandEvent &event);
|
||||
void OnReduceTimingDispersionToggle(wxCommandEvent &event);
|
||||
void PopulateEnableChatChoiceBox();
|
||||
void OnToggleJukeboxEnabled(wxCommandEvent &event);
|
||||
void OnJukeboxVolumeUpdate(wxCommandEvent &event);
|
||||
void OnToggleShowPlayerRank(wxCommandEvent &event);
|
||||
void OnToggleShowOpponentRank(wxCommandEvent &event);
|
||||
|
||||
wxArrayString m_slippi_enable_quick_chat_strings;
|
||||
|
||||
@@ -59,11 +63,12 @@ class SlippiNetplayConfigPane final : public wxPanel
|
||||
|
||||
wxCheckBox *m_reduce_timing_dispersion_checkbox;
|
||||
|
||||
void OnToggleJukeboxEnabled(wxCommandEvent &event);
|
||||
wxCheckBox *m_slippi_show_player_rank;
|
||||
wxCheckBox *m_slippi_show_opponent_rank;
|
||||
|
||||
wxCheckBox *m_slippi_jukebox_enabled_checkbox;
|
||||
DolphinSlider *m_slippi_jukebox_volume_slider;
|
||||
wxStaticText *m_jukebox_volume_text;
|
||||
void OnJukeboxVolumeUpdate(wxCommandEvent &event);
|
||||
};
|
||||
|
||||
class SlippiPlaybackConfigPane final : public wxPanel
|
||||
|
Reference in New Issue
Block a user