modify playback/recording to work simultaneously

This commit is contained in:
Jas Laferriere
2023-11-12 19:03:49 -05:00
parent 676c8a0d12
commit 708531b2be
29 changed files with 1075 additions and 94 deletions

View File

@@ -313,7 +313,7 @@ lbz \reg, -0x62D0(\reg) # Load byte from 0x80479D30 (major ID)
.macro loadGlobalFrame reg
lis \reg, 0x8048
lwz \reg, -0x62A0(\reg)
lwz \reg, -0x62A0(\reg) # 80479D60
.endm
# This macro takes in an address that is expected to have a branch instruction. It will set
@@ -603,6 +603,7 @@ add \reg, r3, r4
# Offsets from r13
################################################################################
.set primaryDataBuffer,-0x49b4
.set playbackDataBuffer,-0x5040 # From tournament mode line 8019b9d4, seems to be only used in one place
.set secondaryDmaBuffer,-0x49b0
.set archiveDataBuffer, -0x4AE8
.set bufferOffset,-0x49b0

View File

@@ -456,7 +456,7 @@ A07F2088 B07D0053
800100E4 382100E0
7C0803A6 8001001C
60000000 00000000
C206B0DC 0000002C #Recording/SendGamePreFrame.asm
C206B0E0 0000002C #Recording/SendGamePreFrame.asm
7C0802A6 90010004
9421FF20 BE8100B0
3D808000 618C5604
@@ -500,14 +500,15 @@ B07D0031 80640030
938DB650 BA8100B0
800100E4 382100E0
7C0803A6 881F2219
60000000 00000000
C2005604 0000000A #Recording/ShouldRecord.asm
807F065C 00000000
C2005604 0000000B #Recording/ShouldRecord.asm
3C608048 80639D30
5463443E 2C030202
4182002C 2C030302
41820024 2C030208
4182001C 2C03010F
41820014 2C030120
41820034 2C030302
4182002C 2C030208
41820024 2C03010F
4182001C 2C030120
41820014 2C03010E
4182000C 38600000
4800000C 38600001
48000004 4E800020

Binary file not shown.

Binary file not shown.

View File

@@ -239,7 +239,7 @@
"Tags": ""
},
{
"InjectionAddress": "8006B0DC",
"InjectionAddress": "8006B0E0",
"Name": "Slippi Recording",
"Codetype": "Auto",
"Annotation": "Recording/SendGamePreFrame.asm",

View File

@@ -435,7 +435,7 @@
"Tags": ""
},
{
"InjectionAddress": "8006B0DC",
"InjectionAddress": "8006B0E0",
"Name": "Required: Slippi Recording",
"Codetype": "Auto",
"Annotation": "Recording/SendGamePreFrame.asm",

View File

@@ -959,7 +959,7 @@ A07F2088 B07D0053
800100E4 382100E0
7C0803A6 8001001C
60000000 00000000
C206B0DC 0000002C #Recording/SendGamePreFrame.asm
C206B0E0 0000002C #Recording/SendGamePreFrame.asm
7C0802A6 90010004
9421FF20 BE8100B0
3D808000 618C5604
@@ -1003,14 +1003,15 @@ B07D0031 80640030
938DB650 BA8100B0
800100E4 382100E0
7C0803A6 881F2219
60000000 00000000
C2005604 0000000A #Recording/ShouldRecord.asm
807F065C 00000000
C2005604 0000000B #Recording/ShouldRecord.asm
3C608048 80639D30
5463443E 2C030202
4182002C 2C030302
41820024 2C030208
4182001C 2C03010F
41820014 2C030120
41820034 2C030302
4182002C 2C030208
41820024 2C03010F
4182001C 2C030120
41820014 2C03010E
4182000C 38600000
4800000C 38600001
48000004 4E800020

View File

@@ -958,7 +958,7 @@ A07F2088 B07D0053
800100E4 382100E0
7C0803A6 8001001C
60000000 00000000
C206B0DC 0000002C #Recording/SendGamePreFrame.asm
C206B0E0 0000002C #Recording/SendGamePreFrame.asm
7C0802A6 90010004
9421FF20 BE8100B0
3D808000 618C5604
@@ -1002,14 +1002,15 @@ B07D0031 80640030
938DB650 BA8100B0
800100E4 382100E0
7C0803A6 881F2219
60000000 00000000
C2005604 0000000A #Recording/ShouldRecord.asm
807F065C 00000000
C2005604 0000000B #Recording/ShouldRecord.asm
3C608048 80639D30
5463443E 2C030202
4182002C 2C030302
41820024 2C030208
4182001C 2C03010F
41820014 2C030120
41820034 2C030302
4182002C 2C030208
41820024 2C03010F
4182001C 2C030120
41820014 2C03010E
4182000C 38600000
4800000C 38600001
48000004 4E800020

View File

@@ -126,7 +126,7 @@ $Required: Slippi Playback [Fizzi, UnclePunch, Achilles, tauKhan, Krohnos]
C216E9E4 0000001D #Playback/Core/CleanDynamicGeckos.asm
3BC30000 7C0802A6
90010004 9421FF20
BE8100B0 83CDB64C
BE8100B0 83CDAFC0
83BE0010 3B800000
807D0000 2C030000
41820018 3B9C0001
@@ -157,7 +157,7 @@ C216D298 00000016 #Playback/Core/FetchGameFrame.asm
881F0008 2C000000
408200A0 7C0802A6
90010004 9421FF20
BE8100B0 806DB64C
BE8100B0 806DAFC0
83630000 38600076
987B0000 806DB654
907B0001 7F63DB78
@@ -182,7 +182,7 @@ C206B0DC 00000049 #Playback/Core/RestoreGameFrame.asm
8BBF000C 7FA3EB78
3D808003 618C1724
7D8903A6 4E800421
7C7C1B78 832DB64C
7C7C1B78 832DAFC0
83790000 7FE3FB78
3D808000 618C55F8
7D8903A6 4E800421
@@ -250,13 +250,15 @@ C0230044 D0230030
BA8100B0 800100E4
382100E0 7C0803A6
881F2219 00000000
C216E74C 0000009E #Playback/Core/RestoreGameInfo.asm
C216E748 0000009F #Playback/Core/RestoreGameInfo.asm
3D808022 618C54B8
7D8903A6 4E800421
7C0802A6 90010004
9421FF20 BE8100B0
386005EC 3D808037
618CF1E4 7D8903A6
4E800421 7C7C1B78
938DB64C 388005EC
938DAFC0 388005EC
3D808000 618CC160
7D8903A6 4E800421
38600221 3D808037
@@ -347,7 +349,7 @@ C216E74C 0000009E #Playback/Core/RestoreGameInfo.asm
7D8903A6 4E800421
4800013C 4E800021
2C050000 41820018
80CDB64C 8066000C
80CDAFC0 8066000C
38630008 7C632A14
9066000C 4E800020
4E800021 2C050000
@@ -356,7 +358,7 @@ C216E74C 0000009E #Playback/Core/RestoreGameInfo.asm
BE8100B0 7C9E2378
7CBB2B78 80BE0000
54A501FE 64BD8000
834DB64C 833A0014
834DAFC0 833A0014
2C030004 41820014
2C030006 41820014
2C0300C2 41820014
@@ -399,7 +401,7 @@ BA8100B0 800100E4
4800004C 4E800021
7C0802A6 90010004
9421FF20 BE8100B0
806DB64C 83A30000
806DAFC0 83A30000
887D0002 2C030000
41820010 807D0003
3C80804D 90645F90
@@ -407,10 +409,9 @@ BA8100B0 800100E4
382100E0 7C0803A6
4E800020 BA8100B0
800100E4 382100E0
7C0803A6 3C608017
60000000 00000000
7C0803A6 00000000
C216D304 00000009 #Playback/Core/RestoreLRAStart.asm
806DB64C 80630000
806DAFC0 80630000
88630000 2C030002
4082002C 3860FFFF
38800007 3D808016
@@ -420,18 +421,18 @@ C216D304 00000009 #Playback/Core/RestoreLRAStart.asm
4E800420 7FE3FB78
60000000 00000000
C216B9C0 00000012 #Playback/Core/RestoreStockSteal.asm
80ADB64C 80A50004
80ADAFC0 80A50004
38800089 98850000
808DB654 90850001
98650005 7CA32B78
38800006 38A00001
3D808000 618C55F0
7D8903A6 4E800421
806DB64C 80630004
806DAFC0 80630004
38800001 38A00000
3D808000 618C55F0
7D8903A6 4E800421
806DB64C 80630004
806DAFC0 80630004
88630000 2C030000
41820014 3D808016
618CBA1C 7D8903A6
@@ -446,13 +447,13 @@ C21A501C 0000002A #Playback/Core/FastForward/FastForward.asm
3D80801A 618C45E8
7D8903A6 4E800421
2C030002 41820018
806DB64C 80630000
806DAFC0 80630000
88630000 2C030003
41820024 38600001
38800002 3D808002
618C5064 7D8903A6
4E800421 7C1AD800
480000E0 806DB64C
480000E0 806DAFC0
80630000 88630001
2C030001 4182001C
38600000 38800000
@@ -673,7 +674,7 @@ C238D224 00000015 #Playback/Core/Sounds/AssignSoundInstanceId.asm
2C03010E 40820090
7C0802A6 90010004
9421FF20 BE8100B0
83EDB64C 3BDF001C
83EDAFC0 3BDF001C
8B9E0000 3C608048
80639D60 809F056B
7C032000 41810028
@@ -699,7 +700,7 @@ C21A5014 00000032 #Playback/Core/Sounds/HandleFrameSoundLog.asm
9421FF20 BE8100B0
3D808034 618C7364
7D8903A6 4E800421
7C7D1B78 83EDB64C
7C7D1B78 83EDAFC0
3BDF001C 8B9E0000
3F008048 83189D60
3B18FFFF 82FF056B
@@ -745,7 +746,7 @@ C2088224 0000001D #Playback/Core/Sounds/NoDestroyVoice.asm
5463443E 2C03010E
408200CC 7C0802A6
90010004 9421FF20
BE8100B0 83EDB64C
BE8100B0 83EDAFC0
3BBF001C 57DE043E
8B9D0000 3C608048
80639D60 809F056B
@@ -775,7 +776,7 @@ C20882B0 0000001D #Playback/Core/Sounds/NoDestroyVoice2.asm
5463443E 2C03010E
408200CC 7C0802A6
90010004 9421FF20
BE8100B0 83EDB64C
BE8100B0 83EDAFC0
3BBF001C 57DE043E
8B9D0000 3C608048
80639D60 809F056B
@@ -805,7 +806,7 @@ C238D0B0 00000027 #Playback/Core/Sounds/PreventDuplicateSounds.asm
5463443E 2C03010E
40820120 7C0802A6
90010004 9421FF20
BE8100B0 83EDB64C
BE8100B0 83EDAFC0
3BDF001C 3BA00000
3B400000 56FB043E
8B9E0000 3C608048
@@ -922,6 +923,480 @@ C20056A8 00000005 #Common/CompatibilityHooks/RequestSSMLoad.asm
7C83612E 4E800020
60000000 00000000
$Optional: Slippi Recording [Fizzi, Achilles, UnclePunch, Nikki, jmlee337, Krohnos]
*Allows for outputting new replay data during playback.
*Useful for spectator service or upgrading replay versions.
040679BC 38802600 #Recording/ExtendPlayerBlock.asm
C23219EC 0000001D #Recording/FlushFrameBuffer.asm
7C0802A6 90010004
9421FF20 BE8100B0
3D808000 618C5604
7D8903A6 4E800421
2C030000 418200A8
806DB64C 83C30000
83ADB650 7F9EEA14
2C1D0000 41820090
3860003C 987C0000
806DB654 907C0001
3C608048 80639D30
5463443E 2C030208
806DB654 4082003C
80ADB61C 88850010
2C040000 4082002C
8885000F 2C040000
40820020 80850909
3884FF85 80E50916
7C872050 7C041800
40800008 7C832378
907C0005 3BBD0009
7FC3F378 7FA4EB78
38A00001 3D808000
618C55F0 7D8903A6
4E800421 38600000
906DB650 BA8100B0
800100E4 382100E0
7C0803A6 8001001C
60000000 00000000
C216D884 00000030 #Recording/SendGameEnd.asm
7C0802A6 90010004
9421FF20 BE8100B0
3D808000 618C5604
7D8903A6 4E800421
2C030000 41820144
3F208046 6339B6A0
8B590008 2C1A0000
41820130 830DB64C
88780004 2C030000
40820120 3C608048
80639D30 5463443E
2C030208 4082001C
2C1A0002 40820014
806DB61C 8863000F
2C030000 418200F4
83B80000 38600039
987D0000 9B5D0001
2C1A0007 4082000C
88790001 48000008
3860FFFF 987D0002
3E808047 62949DA4
7E83A378 3C808046
6084B8EC 38A02278
3D808000 618C31F4
7D8903A6 4E800421
3C808046 6084B6A0
7E83A378 880424D0
98030006 88040008
98030004 3D808016
618C6378 7D8903A6
4E800421 3AA00000
7EA3AB78 48000041
38950003 7C64E9AE
3AB50001 2C150003
4081FFE8 7FA3EB78
38800007 38A00001
3D808000 618C55F0
7D8903A6 4E800421
38600001 98780004
48000030 3D808047
618C9DA4 1D6300A8
7D6B6214 886B0058
2C030003 4182000C
886B005E 48000008
3860FFFF 4E800020
BA8100B0 800100E4
382100E0 7C0803A6
819F2514 00000000
C216E74C 0000010A #Recording/SendGameInfo.asm
7C0802A6 90010004
9421FF20 BE8100B0
3D808000 618C5604
7D8903A6 4E800421
2C030000 41820814
38600005 3D808037
618CF1E4 7D8903A6
4E800421 7C7B1B78
936DB64C 38800005
3D808000 618CC160
7D8903A6 4E800421
38600770 3D808037
618CF1E4 7D8903A6
4E800421 7C7E1B78
93DB0000 38600000
906DB650 3C608000
60635600 80630000
38630008 38800000
3D808000 618C55FC
7D8903A6 4E800421
7C7C1B78 38600035
987E0000 3860001C
987E0001 38600036
987E0002 386002F8
B07E0003 38600037
987E0005 38600040
B07E0006 38600038
987E0008 38600054
B07E0009 38600039
987E000B 38600006
B07E000C 3860003A
987E000E 3860000C
B07E000F 3860003B
987E0011 3860002C
B07E0012 3860003C
987E0014 38600008
B07E0015 3860003D
987E0017 B39E0018
38600010 987E001A
38600204 B07E001B
38600036 987E001D
3C600310 60630000
907E001E 387E0022
7FE4FB78 38A00138
3D808000 618C31F4
7D8903A6 4E800421
387E0062 3880001C
3D808000 618CC160
7D8903A6 4E800421
387E0022 3AA30060
3A800000 1ED40024
7ED6AA14 88760001
2C030000 40820034
88760000 2C030012
40820028 3C60804C
606320BC 1C940044
7C632214 80630000
546005EF 4182000C
38600013 98760000
3A940001 2C140004
4180FFB4 387E0022
3AA30060 3A800000
1ED40024 7ED6AA14
88760001 2C030000
4082002C 88760000
3D808016 618C9238
7D8903A6 4E800421
88960003 7C041800
4081000C 38600000
98760003 3A940001
2C140004 4180FFBC
3C60804D 80635F90
907E015A 3A82F228
3AA00000 3ADE015E
1EF50008 38600001
7C76B92E 3AF70004
7C76B92E 3AB50001
2C150004 4180FFE4
3A800000 3ABF0060
3AFE017E 1F140010
7F18BA14 1ED40024
7ED6AA14 88760001
2C030000 40820040
8876000A 2C030078
41820034 3D808023
618C754C 7D8903A6
4E800421 7C641B78
7F03C378 38A00010
3D808000 618C31F4
7D8903A6 4E800421
4800001C 7F03C378
38800010 3D808000
618CC160 7D8903A6
4E800421 3A940001
2C140004 4180FF88
8862F234 987E01BE
8862F23C 987E01BF
3C608048 80639D30
5463443E B07E01C0
3B200000 3C608048
80639D30 5463443E
2C030208 4082017C
38600000 3D808000
618C5610 7D8903A6
4E800421 7C791B78
3A800000 3ABF0060
3AFE01C2 3B590034
1C74001F 7F03BA14
1ED40024 7ED6AA14
88760001 2C030000
40820028 1C74001F
7C83D214 7F03C378
38A0001F 3D808000
618C31F4 7D8903A6
4E800421 4800001C
7F03C378 3880001F
3D808000 618CC160
7D8903A6 4E800421
3A940001 2C140004
4180FFA0 3A800000
3ABF0060 3AFE023E
3B5900CF 1C74000A
7F03BA14 1ED40024
7ED6AA14 88760001
2C030000 40820028
1C74000A 7C83D214
7F03C378 38A0000A
3D808000 618C31F4
7D8903A6 4E800421
4800001C 7F03C378
3880000A 3D808000
618CC160 7D8903A6
4E800421 3A940001
2C140004 4180FFA0
3A800000 3ABF0060
3AFE0266 3B5900F7
1C74001D 7F03BA14
1ED40024 7ED6AA14
88760001 2C030000
40820028 1C74001D
7C83D214 7F03C378
38A0001D 3D808000
618C31F4 7D8903A6
4E800421 4800001C
7F03C378 3880001D
3D808000 618CC160
7D8903A6 4E800421
3A940001 2C140004
4180FFA0 4800001C
387E01C2 38800118
3D808000 618CC160
7D8903A6 4E800421
3D808000 618CADF4
7D8903A6 4E800421
987E02DA 2C190000
41820044 387E02DB
38990394 38A00033
3D808000 618C31F4
7D8903A6 4E800421
3C60803D 6063AD40
80630000 81830088
A06C0001 907E030E
886C0006 907E0312
4800001C 387E02DB
3880003B 3D808000
618CC160 7D8903A6
4E800421 2C190000
41820018 7F23CB78
3D808037 618CF1B0
7D8903A6 4E800421
7FC3F378 38800316
38A00001 3D808000
618C55F0 7D8903A6
4E800421 38600205
3D808037 618CF1E4
7D8903A6 4E800421
7C751B78 3C608000
60635600 80630000
3AE30008 38600010
98750000 3860003D
98750203 38600200
B0750201 38600000
98750204 3AC00000
7C76E050 2C030200
41810010 B0750201
38600001 98750204
38750001 7EE4BB78
7C84B214 A0B50201
3D808000 618C31F4
7D8903A6 4E800421
7EA3AB78 38800205
38A00001 3D808000
618C55F0 7D8903A6
4E800421 3AD60200
7C16E000 4180FFA4
7EA3AB78 3D808037
618CF1B0 7D8903A6
4E800421 38600004
38800007 38A00000
3D808039 618C01F0
7D8903A6 4E800421
48000021 7C8802A6
38A00000 3D808038
618CFD54 7D8903A6
4E800421 48000070
4E800021 7C0802A6
90010004 9421FF20
BE8100B0 806DB64C
83A30000 838DB650
7FBDE214 3860003A
987D0000 806DB654
907D0001 3C60804D
80635F90 907D0005
3C608048 80639D60
907D0009 838DB650
3B9C000D 938DB650
BA8100B0 800100E4
382100E0 7C0803A6
4E800020 38600004
38800007 38A00000
3D808039 618C01F0
7D8903A6 4E800421
48000021 7C8802A6
38A0000F 3D808038
618CFD54 7D8903A6
4E800421 4800012C
4E800021 7C0802A6
90010004 9421FF20
BE8100B0 806DB64C
83E30000 83CDB650
7FFFF214 3B600000
806DC18C 83A30024
2C1D0000 418200E0
3B7B0001 2C1B000F
418100D4 839D002C
3860003B 987F0000
806DB654 907F0001
807C0010 B07F0005
807C0024 987F0007
807C002C 907F0008
807C0040 907F000C
807C0044 907F0010
807C004C 907F0014
807C0050 907F0018
807C0C9C B07F001C
807C0D44 907F001E
807C001C 907F0022
887C0DD7 987F0026
887C0DDB 987F0027
887C0DEB 987F0028
887C0DEF 987F0029
807C0518 2C030000
41820018 8063002C
2C030000 4182000C
8863000C 48000008
3860FFFF 987F002A
A07C0DA8 B07F002B
83CDB650 3BDE002D
93CDB650 3BFF002D
83BD0008 2C1D0000
4082FF28 BA8100B0
800100E4 382100E0
7C0803A6 4E800020
BA8100B0 800100E4
382100E0 7C0803A6
3C608017 00000000
C206DA34 00000038 #Recording/SendGamePostFrame.asm
7C0802A6 90010004
9421FF20 BE8100B0
3D808000 618C5604
7D8903A6 4E800421
2C030000 41820180
887F221F 546306F7
40820174 8B7F000C
806DB64C 83A30000
838DB650 7FBDE214
38600038 987D0000
806DB654 907D0001
9B7D0005 7FE3FB78
3D808000 618C55F8
7D8903A6 4E800421
987D0006 807F0004
987D0007 807F0010
B07D0008 807F00B0
907D000A 807F00B4
907D000E 807F002C
907D0012 807F1830
907D0016 807F1998
907D001A 807F208C
987D001E A07F2090
987D001F 807F18C4
987D0020 7F63DB78
3D808003 618C3BD8
7D8903A6 4E800421
987D0021 807F0894
907D0022 887F2218
987D0026 887F221A
987D0027 887F221B
987D0028 887F221C
987D0029 887F221F
987D002A 807F2340
907D002B 807F00E0
987D002F 807F083C
B07D0030 887F1968
809F0168 7C632050
987D0032 887F25FF
987D0033 807F1988
2C030000 40820008
807F198C 987D0034
807F0080 907D0035
807F0084 907D0039
807F008C 907D003D
807F0090 907D0041
807F00EC 907D0045
807F195C 907D0049
807F0014 907D004D
A07F18EC B07D0051
A07F2088 B07D0053
838DB650 3B9C0055
938DB650 BA8100B0
800100E4 382100E0
7C0803A6 8001001C
60000000 00000000
C206B0E0 0000002C #Recording/SendGamePreFrame.asm
7C0802A6 90010004
9421FF20 BE8100B0
3D808000 618C5604
7D8903A6 4E800421
2C030000 41820120
8B7F000C 806DB64C
83A30000 838DB650
7FBDE214 38600037
987D0000 806DB654
907D0001 9B7D0005
7FE3FB78 3D808000
618C55F8 7D8903A6
4E800421 987D0006
3C60804D 80635F90
907D0007 807F0010
B07D000B 807F00B0
907D000D 807F00B4
907D0011 807F002C
907D0015 807F0620
907D0019 807F0624
907D001D 807F0638
907D0021 807F063C
907D0025 807F0650
907D0029 807F065C
907D002D 3C60804C
60631FAC 1C9B0044
7C832214 A0640002
B07D0031 80640030
907D0033 80640034
907D0037 3C608046
6063B108 3C80804C
60841F78 88840001
3884FFFF 2C040000
40A00008 38840005
1C840030 7C632214
1C9B000C 7C832214
88640002 987D003B
88640003 987D0040
807F1830 907D003C
838DB650 3B9C0041
938DB650 BA8100B0
800100E4 382100E0
7C0803A6 881F2219
807F065C 00000000
C2005604 0000000B #Recording/ShouldRecord.asm
3C608048 80639D30
5463443E 2C030202
41820034 2C030302
4182002C 2C030208
41820024 2C03010F
4182001C 2C030120
41820014 2C03010E
4182000C 38600000
4800000C 38600001
48000004 4E800020
60000000 00000000
C208D698 00000005 #Recording/GetLCancelStatus/GetLCancelStatus.asm
7C050000 4080000C
38E00001 48000008
38E00002 8103002C
98E825FF 7C050000
60000000 00000000
C206C324 00000002 #Recording/GetLCancelStatus/ResetLCancelStatus.asm
38600000 987E25FF
807E00B0 00000000
$Optional: Show Player Names [Fizzi, UnclePunch, Enzyme, jmlee337]
*Show players' Slippi Online display names as HUD elements when available
C216E9B4 0000009A #Playback/Show Player Names/InitInGame.asm
@@ -972,7 +1447,7 @@ C1C07AE1 3C6F34D7
3D80803A 618C611C
7D8903A6 4E800421
7C7F1B78 4BFFFE91
7F8802A6 834DB64C
7F8802A6 834DAFC0
3A800000 3EA0804A
62B50FF0 7E83A378
3D808003 618C241C

View File

@@ -125,7 +125,7 @@ $Required: Slippi Playback [Fizzi, UnclePunch, Achilles, tauKhan, Krohnos]
C216E9E4 0000001D #Playback/Core/CleanDynamicGeckos.asm
3BC30000 7C0802A6
90010004 9421FF20
BE8100B0 83CDB64C
BE8100B0 83CDAFC0
83BE0010 3B800000
807D0000 2C030000
41820018 3B9C0001
@@ -156,7 +156,7 @@ C216D298 00000016 #Playback/Core/FetchGameFrame.asm
881F0008 2C000000
408200A0 7C0802A6
90010004 9421FF20
BE8100B0 806DB64C
BE8100B0 806DAFC0
83630000 38600076
987B0000 806DB654
907B0001 7F63DB78
@@ -181,7 +181,7 @@ C206B0DC 00000049 #Playback/Core/RestoreGameFrame.asm
8BBF000C 7FA3EB78
3D808003 618C1724
7D8903A6 4E800421
7C7C1B78 832DB64C
7C7C1B78 832DAFC0
83790000 7FE3FB78
3D808000 618C55F8
7D8903A6 4E800421
@@ -249,13 +249,15 @@ C0230044 D0230030
BA8100B0 800100E4
382100E0 7C0803A6
881F2219 00000000
C216E74C 0000009E #Playback/Core/RestoreGameInfo.asm
C216E748 0000009F #Playback/Core/RestoreGameInfo.asm
3D808022 618C54B8
7D8903A6 4E800421
7C0802A6 90010004
9421FF20 BE8100B0
386005EC 3D808037
618CF1E4 7D8903A6
4E800421 7C7C1B78
938DB64C 388005EC
938DAFC0 388005EC
3D808000 618CC160
7D8903A6 4E800421
38600221 3D808037
@@ -346,7 +348,7 @@ C216E74C 0000009E #Playback/Core/RestoreGameInfo.asm
7D8903A6 4E800421
4800013C 4E800021
2C050000 41820018
80CDB64C 8066000C
80CDAFC0 8066000C
38630008 7C632A14
9066000C 4E800020
4E800021 2C050000
@@ -355,7 +357,7 @@ C216E74C 0000009E #Playback/Core/RestoreGameInfo.asm
BE8100B0 7C9E2378
7CBB2B78 80BE0000
54A501FE 64BD8000
834DB64C 833A0014
834DAFC0 833A0014
2C030004 41820014
2C030006 41820014
2C0300C2 41820014
@@ -398,7 +400,7 @@ BA8100B0 800100E4
4800004C 4E800021
7C0802A6 90010004
9421FF20 BE8100B0
806DB64C 83A30000
806DAFC0 83A30000
887D0002 2C030000
41820010 807D0003
3C80804D 90645F90
@@ -406,10 +408,9 @@ BA8100B0 800100E4
382100E0 7C0803A6
4E800020 BA8100B0
800100E4 382100E0
7C0803A6 3C608017
60000000 00000000
7C0803A6 00000000
C216D304 00000009 #Playback/Core/RestoreLRAStart.asm
806DB64C 80630000
806DAFC0 80630000
88630000 2C030002
4082002C 3860FFFF
38800007 3D808016
@@ -419,18 +420,18 @@ C216D304 00000009 #Playback/Core/RestoreLRAStart.asm
4E800420 7FE3FB78
60000000 00000000
C216B9C0 00000012 #Playback/Core/RestoreStockSteal.asm
80ADB64C 80A50004
80ADAFC0 80A50004
38800089 98850000
808DB654 90850001
98650005 7CA32B78
38800006 38A00001
3D808000 618C55F0
7D8903A6 4E800421
806DB64C 80630004
806DAFC0 80630004
38800001 38A00000
3D808000 618C55F0
7D8903A6 4E800421
806DB64C 80630004
806DAFC0 80630004
88630000 2C030000
41820014 3D808016
618CBA1C 7D8903A6
@@ -445,13 +446,13 @@ C21A501C 0000002A #Playback/Core/FastForward/FastForward.asm
3D80801A 618C45E8
7D8903A6 4E800421
2C030002 41820018
806DB64C 80630000
806DAFC0 80630000
88630000 2C030003
41820024 38600001
38800002 3D808002
618C5064 7D8903A6
4E800421 7C1AD800
480000E0 806DB64C
480000E0 806DAFC0
80630000 88630001
2C030001 4182001C
38600000 38800000
@@ -672,7 +673,7 @@ C238D224 00000015 #Playback/Core/Sounds/AssignSoundInstanceId.asm
2C03010E 40820090
7C0802A6 90010004
9421FF20 BE8100B0
83EDB64C 3BDF001C
83EDAFC0 3BDF001C
8B9E0000 3C608048
80639D60 809F056B
7C032000 41810028
@@ -698,7 +699,7 @@ C21A5014 00000032 #Playback/Core/Sounds/HandleFrameSoundLog.asm
9421FF20 BE8100B0
3D808034 618C7364
7D8903A6 4E800421
7C7D1B78 83EDB64C
7C7D1B78 83EDAFC0
3BDF001C 8B9E0000
3F008048 83189D60
3B18FFFF 82FF056B
@@ -744,7 +745,7 @@ C2088224 0000001D #Playback/Core/Sounds/NoDestroyVoice.asm
5463443E 2C03010E
408200CC 7C0802A6
90010004 9421FF20
BE8100B0 83EDB64C
BE8100B0 83EDAFC0
3BBF001C 57DE043E
8B9D0000 3C608048
80639D60 809F056B
@@ -774,7 +775,7 @@ C20882B0 0000001D #Playback/Core/Sounds/NoDestroyVoice2.asm
5463443E 2C03010E
408200CC 7C0802A6
90010004 9421FF20
BE8100B0 83EDB64C
BE8100B0 83EDAFC0
3BBF001C 57DE043E
8B9D0000 3C608048
80639D60 809F056B
@@ -804,7 +805,7 @@ C238D0B0 00000027 #Playback/Core/Sounds/PreventDuplicateSounds.asm
5463443E 2C03010E
40820120 7C0802A6
90010004 9421FF20
BE8100B0 83EDB64C
BE8100B0 83EDAFC0
3BDF001C 3BA00000
3B400000 56FB043E
8B9E0000 3C608048
@@ -921,6 +922,480 @@ C20056A8 00000005 #Common/CompatibilityHooks/RequestSSMLoad.asm
7C83612E 4E800020
60000000 00000000
$Optional: Slippi Recording [Fizzi, Achilles, UnclePunch, Nikki, jmlee337, Krohnos]
*Allows for outputting new replay data during playback.
*Useful for spectator service or upgrading replay versions.
040679BC 38802600 #Recording/ExtendPlayerBlock.asm
C23219EC 0000001D #Recording/FlushFrameBuffer.asm
7C0802A6 90010004
9421FF20 BE8100B0
3D808000 618C5604
7D8903A6 4E800421
2C030000 418200A8
806DB64C 83C30000
83ADB650 7F9EEA14
2C1D0000 41820090
3860003C 987C0000
806DB654 907C0001
3C608048 80639D30
5463443E 2C030208
806DB654 4082003C
80ADB61C 88850010
2C040000 4082002C
8885000F 2C040000
40820020 80850909
3884FF85 80E50916
7C872050 7C041800
40800008 7C832378
907C0005 3BBD0009
7FC3F378 7FA4EB78
38A00001 3D808000
618C55F0 7D8903A6
4E800421 38600000
906DB650 BA8100B0
800100E4 382100E0
7C0803A6 8001001C
60000000 00000000
C216D884 00000030 #Recording/SendGameEnd.asm
7C0802A6 90010004
9421FF20 BE8100B0
3D808000 618C5604
7D8903A6 4E800421
2C030000 41820144
3F208046 6339B6A0
8B590008 2C1A0000
41820130 830DB64C
88780004 2C030000
40820120 3C608048
80639D30 5463443E
2C030208 4082001C
2C1A0002 40820014
806DB61C 8863000F
2C030000 418200F4
83B80000 38600039
987D0000 9B5D0001
2C1A0007 4082000C
88790001 48000008
3860FFFF 987D0002
3E808047 62949DA4
7E83A378 3C808046
6084B8EC 38A02278
3D808000 618C31F4
7D8903A6 4E800421
3C808046 6084B6A0
7E83A378 880424D0
98030006 88040008
98030004 3D808016
618C6378 7D8903A6
4E800421 3AA00000
7EA3AB78 48000041
38950003 7C64E9AE
3AB50001 2C150003
4081FFE8 7FA3EB78
38800007 38A00001
3D808000 618C55F0
7D8903A6 4E800421
38600001 98780004
48000030 3D808047
618C9DA4 1D6300A8
7D6B6214 886B0058
2C030003 4182000C
886B005E 48000008
3860FFFF 4E800020
BA8100B0 800100E4
382100E0 7C0803A6
819F2514 00000000
C216E74C 0000010A #Recording/SendGameInfo.asm
7C0802A6 90010004
9421FF20 BE8100B0
3D808000 618C5604
7D8903A6 4E800421
2C030000 41820814
38600005 3D808037
618CF1E4 7D8903A6
4E800421 7C7B1B78
936DB64C 38800005
3D808000 618CC160
7D8903A6 4E800421
38600770 3D808037
618CF1E4 7D8903A6
4E800421 7C7E1B78
93DB0000 38600000
906DB650 3C608000
60635600 80630000
38630008 38800000
3D808000 618C55FC
7D8903A6 4E800421
7C7C1B78 38600035
987E0000 3860001C
987E0001 38600036
987E0002 386002F8
B07E0003 38600037
987E0005 38600040
B07E0006 38600038
987E0008 38600054
B07E0009 38600039
987E000B 38600006
B07E000C 3860003A
987E000E 3860000C
B07E000F 3860003B
987E0011 3860002C
B07E0012 3860003C
987E0014 38600008
B07E0015 3860003D
987E0017 B39E0018
38600010 987E001A
38600204 B07E001B
38600036 987E001D
3C600310 60630000
907E001E 387E0022
7FE4FB78 38A00138
3D808000 618C31F4
7D8903A6 4E800421
387E0062 3880001C
3D808000 618CC160
7D8903A6 4E800421
387E0022 3AA30060
3A800000 1ED40024
7ED6AA14 88760001
2C030000 40820034
88760000 2C030012
40820028 3C60804C
606320BC 1C940044
7C632214 80630000
546005EF 4182000C
38600013 98760000
3A940001 2C140004
4180FFB4 387E0022
3AA30060 3A800000
1ED40024 7ED6AA14
88760001 2C030000
4082002C 88760000
3D808016 618C9238
7D8903A6 4E800421
88960003 7C041800
4081000C 38600000
98760003 3A940001
2C140004 4180FFBC
3C60804D 80635F90
907E015A 3A82F228
3AA00000 3ADE015E
1EF50008 38600001
7C76B92E 3AF70004
7C76B92E 3AB50001
2C150004 4180FFE4
3A800000 3ABF0060
3AFE017E 1F140010
7F18BA14 1ED40024
7ED6AA14 88760001
2C030000 40820040
8876000A 2C030078
41820034 3D808023
618C754C 7D8903A6
4E800421 7C641B78
7F03C378 38A00010
3D808000 618C31F4
7D8903A6 4E800421
4800001C 7F03C378
38800010 3D808000
618CC160 7D8903A6
4E800421 3A940001
2C140004 4180FF88
8862F234 987E01BE
8862F23C 987E01BF
3C608048 80639D30
5463443E B07E01C0
3B200000 3C608048
80639D30 5463443E
2C030208 4082017C
38600000 3D808000
618C5610 7D8903A6
4E800421 7C791B78
3A800000 3ABF0060
3AFE01C2 3B590034
1C74001F 7F03BA14
1ED40024 7ED6AA14
88760001 2C030000
40820028 1C74001F
7C83D214 7F03C378
38A0001F 3D808000
618C31F4 7D8903A6
4E800421 4800001C
7F03C378 3880001F
3D808000 618CC160
7D8903A6 4E800421
3A940001 2C140004
4180FFA0 3A800000
3ABF0060 3AFE023E
3B5900CF 1C74000A
7F03BA14 1ED40024
7ED6AA14 88760001
2C030000 40820028
1C74000A 7C83D214
7F03C378 38A0000A
3D808000 618C31F4
7D8903A6 4E800421
4800001C 7F03C378
3880000A 3D808000
618CC160 7D8903A6
4E800421 3A940001
2C140004 4180FFA0
3A800000 3ABF0060
3AFE0266 3B5900F7
1C74001D 7F03BA14
1ED40024 7ED6AA14
88760001 2C030000
40820028 1C74001D
7C83D214 7F03C378
38A0001D 3D808000
618C31F4 7D8903A6
4E800421 4800001C
7F03C378 3880001D
3D808000 618CC160
7D8903A6 4E800421
3A940001 2C140004
4180FFA0 4800001C
387E01C2 38800118
3D808000 618CC160
7D8903A6 4E800421
3D808000 618CADF4
7D8903A6 4E800421
987E02DA 2C190000
41820044 387E02DB
38990394 38A00033
3D808000 618C31F4
7D8903A6 4E800421
3C60803D 6063AD40
80630000 81830088
A06C0001 907E030E
886C0006 907E0312
4800001C 387E02DB
3880003B 3D808000
618CC160 7D8903A6
4E800421 2C190000
41820018 7F23CB78
3D808037 618CF1B0
7D8903A6 4E800421
7FC3F378 38800316
38A00001 3D808000
618C55F0 7D8903A6
4E800421 38600205
3D808037 618CF1E4
7D8903A6 4E800421
7C751B78 3C608000
60635600 80630000
3AE30008 38600010
98750000 3860003D
98750203 38600200
B0750201 38600000
98750204 3AC00000
7C76E050 2C030200
41810010 B0750201
38600001 98750204
38750001 7EE4BB78
7C84B214 A0B50201
3D808000 618C31F4
7D8903A6 4E800421
7EA3AB78 38800205
38A00001 3D808000
618C55F0 7D8903A6
4E800421 3AD60200
7C16E000 4180FFA4
7EA3AB78 3D808037
618CF1B0 7D8903A6
4E800421 38600004
38800007 38A00000
3D808039 618C01F0
7D8903A6 4E800421
48000021 7C8802A6
38A00000 3D808038
618CFD54 7D8903A6
4E800421 48000070
4E800021 7C0802A6
90010004 9421FF20
BE8100B0 806DB64C
83A30000 838DB650
7FBDE214 3860003A
987D0000 806DB654
907D0001 3C60804D
80635F90 907D0005
3C608048 80639D60
907D0009 838DB650
3B9C000D 938DB650
BA8100B0 800100E4
382100E0 7C0803A6
4E800020 38600004
38800007 38A00000
3D808039 618C01F0
7D8903A6 4E800421
48000021 7C8802A6
38A0000F 3D808038
618CFD54 7D8903A6
4E800421 4800012C
4E800021 7C0802A6
90010004 9421FF20
BE8100B0 806DB64C
83E30000 83CDB650
7FFFF214 3B600000
806DC18C 83A30024
2C1D0000 418200E0
3B7B0001 2C1B000F
418100D4 839D002C
3860003B 987F0000
806DB654 907F0001
807C0010 B07F0005
807C0024 987F0007
807C002C 907F0008
807C0040 907F000C
807C0044 907F0010
807C004C 907F0014
807C0050 907F0018
807C0C9C B07F001C
807C0D44 907F001E
807C001C 907F0022
887C0DD7 987F0026
887C0DDB 987F0027
887C0DEB 987F0028
887C0DEF 987F0029
807C0518 2C030000
41820018 8063002C
2C030000 4182000C
8863000C 48000008
3860FFFF 987F002A
A07C0DA8 B07F002B
83CDB650 3BDE002D
93CDB650 3BFF002D
83BD0008 2C1D0000
4082FF28 BA8100B0
800100E4 382100E0
7C0803A6 4E800020
BA8100B0 800100E4
382100E0 7C0803A6
3C608017 00000000
C206DA34 00000038 #Recording/SendGamePostFrame.asm
7C0802A6 90010004
9421FF20 BE8100B0
3D808000 618C5604
7D8903A6 4E800421
2C030000 41820180
887F221F 546306F7
40820174 8B7F000C
806DB64C 83A30000
838DB650 7FBDE214
38600038 987D0000
806DB654 907D0001
9B7D0005 7FE3FB78
3D808000 618C55F8
7D8903A6 4E800421
987D0006 807F0004
987D0007 807F0010
B07D0008 807F00B0
907D000A 807F00B4
907D000E 807F002C
907D0012 807F1830
907D0016 807F1998
907D001A 807F208C
987D001E A07F2090
987D001F 807F18C4
987D0020 7F63DB78
3D808003 618C3BD8
7D8903A6 4E800421
987D0021 807F0894
907D0022 887F2218
987D0026 887F221A
987D0027 887F221B
987D0028 887F221C
987D0029 887F221F
987D002A 807F2340
907D002B 807F00E0
987D002F 807F083C
B07D0030 887F1968
809F0168 7C632050
987D0032 887F25FF
987D0033 807F1988
2C030000 40820008
807F198C 987D0034
807F0080 907D0035
807F0084 907D0039
807F008C 907D003D
807F0090 907D0041
807F00EC 907D0045
807F195C 907D0049
807F0014 907D004D
A07F18EC B07D0051
A07F2088 B07D0053
838DB650 3B9C0055
938DB650 BA8100B0
800100E4 382100E0
7C0803A6 8001001C
60000000 00000000
C206B0E0 0000002C #Recording/SendGamePreFrame.asm
7C0802A6 90010004
9421FF20 BE8100B0
3D808000 618C5604
7D8903A6 4E800421
2C030000 41820120
8B7F000C 806DB64C
83A30000 838DB650
7FBDE214 38600037
987D0000 806DB654
907D0001 9B7D0005
7FE3FB78 3D808000
618C55F8 7D8903A6
4E800421 987D0006
3C60804D 80635F90
907D0007 807F0010
B07D000B 807F00B0
907D000D 807F00B4
907D0011 807F002C
907D0015 807F0620
907D0019 807F0624
907D001D 807F0638
907D0021 807F063C
907D0025 807F0650
907D0029 807F065C
907D002D 3C60804C
60631FAC 1C9B0044
7C832214 A0640002
B07D0031 80640030
907D0033 80640034
907D0037 3C608046
6063B108 3C80804C
60841F78 88840001
3884FFFF 2C040000
40A00008 38840005
1C840030 7C632214
1C9B000C 7C832214
88640002 987D003B
88640003 987D0040
807F1830 907D003C
838DB650 3B9C0041
938DB650 BA8100B0
800100E4 382100E0
7C0803A6 881F2219
807F065C 00000000
C2005604 0000000B #Recording/ShouldRecord.asm
3C608048 80639D30
5463443E 2C030202
41820034 2C030302
4182002C 2C030208
41820024 2C03010F
4182001C 2C030120
41820014 2C03010E
4182000C 38600000
4800000C 38600001
48000004 4E800020
60000000 00000000
C208D698 00000005 #Recording/GetLCancelStatus/GetLCancelStatus.asm
7C050000 4080000C
38E00001 48000008
38E00002 8103002C
98E825FF 7C050000
60000000 00000000
C206C324 00000002 #Recording/GetLCancelStatus/ResetLCancelStatus.asm
38600000 987E25FF
807E00B0 00000000
$Optional: Show Player Names [Fizzi, UnclePunch, Enzyme, jmlee337]
*Show players' Slippi Online display names as HUD elements when available
C216E9B4 0000009A #Playback/Show Player Names/InitInGame.asm
@@ -971,7 +1446,7 @@ C1C07AE1 3C6F34D7
3D80803A 618C611C
7D8903A6 4E800421
7C7F1B78 4BFFFE91
7F8802A6 834DB64C
7F8802A6 834DAFC0
3A800000 3EA0804A
62B50FF0 7E83A378
3D808003 618C241C

View File

@@ -16,7 +16,7 @@ addi r30, r3, 0
backup
lwz REG_DirectoryBuffer, primaryDataBuffer(r13)
lwz REG_DirectoryBuffer, playbackDataBuffer(r13)
####################################################################################################
# Step 1: First we need to count how many items there are so we can allocate a buffer

View File

@@ -29,7 +29,7 @@
beq PreviousCodeLine
# check status for fast forward
lwz r3,primaryDataBuffer(r13) # directory address
lwz r3,playbackDataBuffer(r13) # directory address
lwz r3,PDB_EXI_BUF_ADDR(r3) # EXI buf address
lbz r3,(BufferStatus_Start)+(BufferStatus_Status)(r3)
cmpwi r3, CONST_FrameFetchResult_FastForward
@@ -49,7 +49,7 @@ FastForward:
#li r3,1
#branchl r12,VISetBlack
# mute music and SFX
lwz r3,primaryDataBuffer(r13) # directory address
lwz r3,playbackDataBuffer(r13) # directory address
lwz r3,PDB_EXI_BUF_ADDR(r3) # EXI buf address
lbz r3,(RBStatus_Start)+(RBStatus_Status)(r3)
cmpwi r3, 1

View File

@@ -9,7 +9,7 @@
.include "Playback/Playback.s"
# check status for fast forward
lwz r11,primaryDataBuffer(r13) # directory address
lwz r11,playbackDataBuffer(r13) # directory address
lwz r11,PDB_EXI_BUF_ADDR(r11) # EXI buf address
lbz r11,(RBStatus_Start)+(RBStatus_Status)(r11)
cmpwi r11, 0

View File

@@ -9,7 +9,7 @@
.include "Playback/Playback.s"
# check status for fast forward
lwz r11,primaryDataBuffer(r13) # directory address
lwz r11,playbackDataBuffer(r13) # directory address
lwz r11,PDB_EXI_BUF_ADDR(r11) # EXI buf address
lbz r11,(RBStatus_Start)+(RBStatus_Status)(r11)
cmpwi r11, 0

View File

@@ -40,7 +40,7 @@
FetchGameFrame:
backup
lwz r3,primaryDataBuffer(r13)
lwz r3,playbackDataBuffer(r13)
lwz BufferPointer,PDB_EXI_BUF_ADDR(r3)
FetchFrameInfo_REQUEST_DATA:

View File

@@ -32,7 +32,7 @@
mr PlayerDataStatic,r3
# get buffer pointer
lwz REG_PDB_ADDR,primaryDataBuffer(r13)
lwz REG_PDB_ADDR,playbackDataBuffer(r13)
lwz BufferPointer,PDB_EXI_BUF_ADDR(REG_PDB_ADDR)
#Check if this player is a follower

View File

@@ -1,9 +1,9 @@
################################################################################
# Address: 8016e74c
# Address: 8016e748
################################################################################
################################################################################
# Inject at address 8016e74c
# Inject at address 8016e748
# Function is StartMelee and we are loading game information right before
# it gets read to initialize the match
################################################################################
@@ -16,6 +16,8 @@
.set REG_GeckoBuffer,29
.set REG_DirectoryBuffer,28
branchl r12, 0x802254b8 # Replaced codeline, call function
################################################################################
# subroutine: gameInfoLoad
# description: reads game info from slippi and loads those into memory
@@ -28,7 +30,7 @@
li r3, PDB_SIZE
branchl r12, HSD_MemAlloc
mr REG_DirectoryBuffer, r3
stw REG_DirectoryBuffer, primaryDataBuffer(r13) # Store directory buffer location
stw REG_DirectoryBuffer, playbackDataBuffer(r13) # Store directory buffer location
li r4, PDB_SIZE
branchl r12, Zero_AreaLength
@@ -265,7 +267,7 @@ blrl
cmpwi r5, 0 # If size is 0, either we don't support this codetype or theres nothing to replace
beq Callback_CalculateSize_End
lwz r6, primaryDataBuffer(r13)
lwz r6, playbackDataBuffer(r13)
lwz r3, PDB_RESTORE_BUF_SIZE(r6)
addi r3, r3, 8 # For each new code, we need a target address and length
add r3, r3, r5 # Add size of the replacement to the total length
@@ -298,7 +300,7 @@ blrl
rlwinm r5, r5, 0, 0x01FFFFFF
oris REG_TargetDataPtr, r5, 0x8000 # Injection Address
lwz REG_DirectoryBuffer2, primaryDataBuffer(r13)
lwz REG_DirectoryBuffer2, playbackDataBuffer(r13)
lwz REG_RestoreBufPos, PDB_RESTORE_BUF_WRITE_POS(REG_DirectoryBuffer2)
# r3 contains the codetype, do a switch statement on it to prepare for memcpys
@@ -391,4 +393,3 @@ GECKO_CLEANUP:
Injection_Exit:
restore
lis r3, 0x8017 #execute replaced code line

View File

@@ -37,7 +37,7 @@ blrl
backup
# check status of initial RNG
lwz r3,primaryDataBuffer(r13)
lwz r3,playbackDataBuffer(r13)
lwz REG_Buffer,PDB_EXI_BUF_ADDR(r3)
lbz r3,(InitialRNG_Start)+(InitialRNG_Status)(REG_Buffer)
cmpwi r3,0

View File

@@ -12,7 +12,7 @@
# Check status of frame received. If a terminate result is received, that means
# we need to end the game immediately
lwz r3,primaryDataBuffer(r13)
lwz r3,playbackDataBuffer(r13)
lwz r3,PDB_EXI_BUF_ADDR(r3)
lbz r3,(BufferStatus_Start)+(BufferStatus_Status)(r3)
cmpwi r3, CONST_FrameFetchResult_Terminate

View File

@@ -11,7 +11,7 @@
.include "Playback/Playback.s"
# Setup buffer
lwz r5,primaryDataBuffer(r13)
lwz r5,playbackDataBuffer(r13)
lwz r5,PDB_SECONDARY_EXI_BUF_ADDR(r5) #Get secondary DMA buffer alloc
li r4,CMD_IS_STOCK_STEAL
stb r4,0x0(r5) #Store stock steal cmd ID
@@ -24,14 +24,14 @@
li r5,CONST_ExiWrite
branchl r12,FN_EXITransferBuffer
# Receive buffer over DMA
lwz r3,primaryDataBuffer(r13)
lwz r3,playbackDataBuffer(r13)
lwz r3,PDB_SECONDARY_EXI_BUF_ADDR(r3) #Get secondary DMA buffer alloc
li r4,0x1
li r5,CONST_ExiRead
branchl r12,FN_EXITransferBuffer
# Check if this player requested a stock steal on this frame
lwz r3,primaryDataBuffer(r13)
lwz r3,playbackDataBuffer(r13)
lwz r3,PDB_SECONDARY_EXI_BUF_ADDR(r3) #Get secondary DMA buffer alloc
lbz r3,0x0(r3)
cmpwi r3,0x0

View File

@@ -20,7 +20,7 @@ bne EXIT
backup
lwz REG_PDB_ADDRESS, primaryDataBuffer(r13) # data buffer address
lwz REG_PDB_ADDRESS, playbackDataBuffer(r13) # data buffer address
addi REG_SFXDB_ADDRESS, REG_PDB_ADDRESS, PDB_SFXDB_START
lbz REG_WRITE_INDEX, SFXDB_WRITE_INDEX(REG_SFXDB_ADDRESS)

View File

@@ -33,7 +33,7 @@ backup
branchl r12, OSDisableInterrupts # Not backing up r3 output, don't use r3 in body
mr REG_INTERRUPT_IDX, r3
lwz REG_PDB_ADDRESS, primaryDataBuffer(r13) # data buffer address
lwz REG_PDB_ADDRESS, playbackDataBuffer(r13) # data buffer address
addi REG_SFXDB_ADDRESS, REG_PDB_ADDRESS, PDB_SFXDB_START
lbz REG_SOUND_WRITE_INDEX, SFXDB_WRITE_INDEX(REG_SFXDB_ADDRESS)

View File

@@ -17,7 +17,7 @@ bne EXIT
backup
lwz REG_PDB_ADDRESS, primaryDataBuffer(r13) # data buffer address
lwz REG_PDB_ADDRESS, playbackDataBuffer(r13) # data buffer address
addi REG_SFXDB_ADDRESS, REG_PDB_ADDRESS, PDB_SFXDB_START
rlwinm REG_SOUND_ID, REG_SOUND_ID, 0, 0xFFFF # extract half word ID

View File

@@ -23,7 +23,7 @@ bne EXIT
backup
lwz REG_PDB_ADDRESS, primaryDataBuffer(r13) # data buffer address
lwz REG_PDB_ADDRESS, playbackDataBuffer(r13) # data buffer address
addi REG_SFXDB_ADDRESS, REG_PDB_ADDRESS, PDB_SFXDB_START
rlwinm REG_SOUND_ID, REG_SOUND_ID, 0, 0xFFFF # extract half word ID

View File

@@ -22,7 +22,7 @@ bne EXIT
backup
lwz REG_PDB_ADDRESS, primaryDataBuffer(r13) # data buffer address
lwz REG_PDB_ADDRESS, playbackDataBuffer(r13) # data buffer address
addi REG_SFXDB_ADDRESS, REG_PDB_ADDRESS, PDB_SFXDB_START
li REG_IS_SOUND_ACTIVE, 0
li REG_SOUND_INSTANCE_ID, 0

View File

@@ -134,7 +134,7 @@ bl DATA_BLRL
mflr REG_DATA_ADDR
# get PDB
lwz REG_PDB_ADDR, primaryDataBuffer(r13)
lwz REG_PDB_ADDR, playbackDataBuffer(r13)
##########################
## Display Player Names ##

View File

@@ -1,5 +1,5 @@
################################################################################
# Address: 8006b0dc
# Address: 8006b0e0
################################################################################
.include "Common/Common.s"
.include "Recording/Recording.s"
@@ -125,4 +125,5 @@ CONTINUE_RAW_X:
Injection_Exit:
restore
lbz r0, 0x2219(r31) #execute replaced code line
lbz r0, 0x2219(r31) # reload r0 from previous line
lwz r3, 0x065C(r31) # replaced code line

View File

@@ -16,6 +16,8 @@
beq ReturnTrue
cmpwi r3, SCENE_HOMERUN_IN_GAME
beq ReturnTrue
cmpwi r3, SCENE_PLAYBACK_IN_GAME
beq ReturnTrue
ReturnFalse:
li r3,0

View File

@@ -133,6 +133,29 @@
}
]
},
{
"name": "Optional: Slippi Recording",
"authors": [
"Fizzi",
"Achilles",
"UnclePunch",
"Nikki",
"jmlee337",
"Krohnos"
],
"description": [
"Allows for outputting new replay data during playback.",
"Useful for spectator service or upgrading replay versions."
],
"build": [
{
"type": "injectFolder",
"sourceFolder": "Recording",
"isRecursive": true,
"annotation": "Slippi Recording [Fizzi, Achilles, UnclePunch, Nikki, jmlee337]"
}
]
},
{
"name": "Optional: Show Player Names",
"authors": [