add logic to output latest finalized frame

This commit is contained in:
Jas Laferriere
2020-07-08 07:16:42 -07:00
parent 581f61f88e
commit 67f83e023a
13 changed files with 284 additions and 223 deletions

View File

@@ -286,6 +286,8 @@ rlwinm \reg, \reg, 8, 0xFFFF # Loads major and minor scene into bottom of reg
.set CONST_SlippiCmdFileLength, 0xD1
.set CONST_SlippiCmdFileLoad, 0xD2
.set CONST_FirstFrameIdx, -123
.set GeckoCodeSectionStart,0x801910E8
.set RtocAddress, 0x804df9e0

View File

@@ -19,7 +19,7 @@
bne IncrementFrameIndex
InitIndex:
li r3,-123
li r3,CONST_FirstFrameIdx
stw r3,frameIndex(r13)
b Exit

View File

@@ -49,6 +49,9 @@ lbz r4, ODB_ROLLBACK_SHOULD_LOAD_STATE(r5)
stb r4, ODB_STABLE_ROLLBACK_SHOULD_LOAD_STATE(r5)
lwz r4, ODB_SAVESTATE_FRAME(r5)
stw r4, ODB_STABLE_SAVESTATE_FRAME(r5)
lwz r4, ODB_RXB_ADDR(r5)
lwz r4, RXB_OPNT_FRAME_NUM(r4)
stw r4, ODB_STABLE_OPNT_FRAME_NUM(r5)
b RESTORE_AND_EXIT
HANDLE_NO_ROLLBACK_NO_INPUTS:

View File

@@ -51,6 +51,8 @@ li r3, RXB_SIZE
branchl r12, HSD_MemAlloc
stw r3, ODB_RXB_ADDR(REG_ODB_ADDRESS)
mr REG_RXB_ADDRESS, r3
li r4, RXB_SIZE
branchl r12, Zero_AreaLength # For frame num, may not be necessary
# Prepare buffer for requesting savestate actions from Dolphin
li r3, SSRB_SIZE

View File

@@ -187,7 +187,8 @@ lwz \reg, -0x62A0(\reg)
.set ODB_STABLE_ROLLBACK_END_FRAME, ODB_STABLE_ROLLBACK_IS_ACTIVE + 1 # s32
.set ODB_STABLE_ROLLBACK_SHOULD_LOAD_STATE, ODB_STABLE_ROLLBACK_END_FRAME + 4 # bool
.set ODB_STABLE_SAVESTATE_FRAME, ODB_STABLE_ROLLBACK_SHOULD_LOAD_STATE + 1 # s32
.set ODB_SHOULD_FORCE_PAD_RENEW, ODB_STABLE_SAVESTATE_FRAME + 4 # bool
.set ODB_STABLE_OPNT_FRAME_NUM, ODB_STABLE_SAVESTATE_FRAME + 4 # s32
.set ODB_SHOULD_FORCE_PAD_RENEW, ODB_STABLE_OPNT_FRAME_NUM + 4 # bool
.set ODB_SIZE, ODB_SHOULD_FORCE_PAD_RENEW + 1
.set TXB_CMD, 0 # u8

Binary file not shown.

Binary file not shown.

View File

@@ -571,25 +571,31 @@ $Required: Slippi Recording [Fizzi, Achilles, UnclePunch]
*Saves replays, Slippi device must be in Slot B.
*To disable saving replays, visit the Slippi settings in Config > GameCube
040679BC 38802600 #Recording/ExtendPlayerBlock.asm
C23219EC 00000012 #Recording/FlushFrameBuffer.asm
C23219EC 00000018 #Recording/FlushFrameBuffer.asm
7C0802A6 90010004
9421FF50 BE810008
3D808000 618C5604
7D8903A6 4E800421
2C030000 41820050
2C030000 41820084
83CDB64C 83ADB650
7F9EEA14 2C1D0000
4182003C 3860003C
41820070 3860003C
987C0000 806DB654
907C0001 3BBD0005
7FC3F378 7FA4EB78
38A00001 3D808000
618C55F0 7D8903A6
4E800421 38600000
906DB650 BA810008
800100B4 382100B0
7C0803A6 8001001C
60000000 00000000
907C0001 3C608048
80639D30 5463443E
2C030208 806DB654
4082001C 808DB61C
808406FC 3884FF85
7C041800 40800008
7C832378 907C0005
3BBD0009 7FC3F378
7FA4EB78 38A00001
3D808000 618C55F0
7D8903A6 4E800421
38600000 906DB650
BA810008 800100B4
382100B0 7C0803A6
8001001C 00000000
C216D30C 00000013 #Recording/SendGameEnd.asm
7C0802A6 90010004
9421FF50 BE810008
@@ -610,12 +616,12 @@ C216D30C 00000013 #Recording/SendGameEnd.asm
BA810008 800100B4
382100B0 7C0803A6
8001003C 00000000
C216E74C 000000B5 #Recording/SendGameInfo.asm
C216E74C 000000B7 #Recording/SendGameInfo.asm
7C0802A6 90010004
9421FF50 BE810008
3D808000 618C5604
7D8903A6 4E800421
2C030000 4182056C
2C030000 4182057C
386006DE 3D808037
618CF1E4 7D8903A6
4E800421 7C7E1B78
@@ -627,7 +633,7 @@ C216E74C 000000B5 #Recording/SendGameInfo.asm
7C7C1B78 38600035
987E0000 3860001C
987E0001 38600036
987E0002 386001A2
987E0002 386001A4
B07E0003 38600037
987E0005 3860003F
B07E0006 38600038
@@ -701,7 +707,9 @@ B07E0015 3860003D
2C140004 4180FF88
8862F234 987E01BE
8862F23C 987E01BF
7FC3F378 388001C0
3C608048 80639D30
5463443E B07E01C0
7FC3F378 388001C2
38A00001 3D808000
618C55F0 7D8903A6
4E800421 38600205
@@ -1097,54 +1105,56 @@ FC020840 4180000C
38600001 BA810008
800100B4 382100B0
7C0803A6 00000000
C21A4DB4 0000002F #Online/Core/ForceEngineOnRollback.asm
C21A4DB4 00000031 #Online/Core/ForceEngineOnRollback.asm
3C608048 80639D30
5463443E 2C030208
4082014C 3C608047
40820158 3C608047
60639D64 80630000
2C030000 40820138
2C030000 40820144
3D808034 618C7364
7D8903A6 4E800421
7C7A1B78 80ADB61C
2C1B0000 41810014
888500D9 2C040000
4182002C 3B600001
41820038 3B600001
888500D9 988506F2
808500DB 908506F3
888500DA 988506F7
8085018B 908506F8
480000D0 888506FC
2C040000 418200C4
38800000 988506FC
3D808001 618C95FC
7D8903A6 4E800421
48000020 4E800021
466F7263 65642061
20706164 2072656E
65772E2E 2E000000
7C0802A6 90010004
9421FF00 BC610008
808500D5 80840001
908506FC 480000D0
88850700 2C040000
418200C4 38800000
98850700 3D808001
618C95FC 7D8903A6
4E800421 48000020
4E800021 466F7263
65642061 20706164
2072656E 65772E2E
2E000000 7C0802A6
90010004 9421FF00
BC610008 60000000
60000000 60000000
60000000 60000000
60000000 806DAFC4
38630003 4BFFFFB9
7C8802A6 3D808032
618C3CF4 7D8903A6
4E800421 806DAFC4
388000D0 98830000
38800000 98830001
38800001 98830002
38800080 38A00001
3D808000 618C55F0
806DAFC4 38630003
4BFFFFB9 7C8802A6
3D808032 618C3CF4
7D8903A6 4E800421
B8610008 80010104
38210100 7C0803A6
7F43D378 3D808034
618C738C 7D8903A6
4E800421 2C1B0000
40820014 3D80801A
618C4DA8 7D8903A6
4E800420 00000000
806DAFC4 388000D0
98830000 38800000
98830001 38800001
98830002 38800080
38A00001 3D808000
618C55F0 7D8903A6
4E800421 B8610008
80010104 38210100
7C0803A6 7F43D378
3D808034 618C738C
7D8903A6 4E800421
2C1B0000 40820014
3D80801A 618C4DA8
7D8903A6 4E800420
60000000 00000000
C216D310 00000009 #Online/Core/HandleLRAS.asm
3C608048 80639D30
5463443E 2C030208
@@ -1171,21 +1181,21 @@ BA810008 800100B4
800100B4 382100B0
7C0803A6 7C7D1B78
60000000 00000000
C216E748 00000050 #Online/Core/InitOnlinePlay.asm
C216E748 00000053 #Online/Core/InitOnlinePlay.asm
3D808022 618C54B8
7D8903A6 4E800421
7C0802A6 90010004
9421FF50 BE810008
3C608048 80639D30
5463443E 2C030208
4082023C 386006FD
40820250 38600701
3D808037 618CF1E4
7D8903A6 4E800421
7C7B1B78 388006FD
7C7B1B78 38800701
3D808000 618CC160
7D8903A6 4E800421
936DB61C 38600001
907B0003 480001ED
907B0003 48000201
7C6802A6 907B06EE
38600012 3D808037
618CF1E4 7D8903A6
@@ -1193,65 +1203,68 @@ C216E748 00000050 #Online/Core/InitOnlinePlay.asm
38600059 3D808037
618CF1E4 7D8903A6
4E800421 907B00D5
7C7A1B78 38600021
7C7A1B78 38800059
3D808000 618CC160
7D8903A6 4E800421
38600021 3D808037
618CF1E4 7D8903A6
4E800421 7C791B78
933B018F 3860009E
3D808037 618CF1E4
7D8903A6 4E800421
7C791B78 933B018F
3860009E 3D808037
618CF1E4 7D8903A6
4E800421 907B0193
3880009E 3D808000
618CC160 7D8903A6
4E800421 38800000
98830000 38800007
98830001 93790005
386006FD 90790009
9359000D 38600059
90790011 807B0193
90790015 3860009E
90790019 38600000
9079001D 38600000
3D808000 618C5610
907B0193 3880009E
3D808000 618CC160
7D8903A6 4E800421
7C781B78 886DAEF8
987B0002 88780003
987B0000 88780004
987B0001 80780005
907B0007 3C80804D
90645F90 7FE3FB78
38980158 38A00138
3D808000 618C31F4
38800000 98830000
38800007 98830001
93790005 38600701
90790009 9359000D
38600059 90790011
807B0193 90790015
3860009E 90790019
38600000 9079001D
38600000 3D808000
618C5610 7D8903A6
4E800421 7C781B78
886DAEF8 987B0002
88780003 987B0000
88780004 987B0001
80780005 907B0007
3C80804D 90645F90
7FE3FB78 38980158
38A00138 3D808000
618C31F4 7D8903A6
4E800421 88780009
2C030001 41800010
2C03000F 41810010
48000010 38600001
48000008 3860000F
987B001B 8062F228
907B06EA 3C600101
60630101 9062F228
38A00000 3C60804C
606320BC 1C850044
7C632214 38800000
90830000 38A50001
2C050004 4180FFE0
38600004 38800007
38A00000 3D808039
618C01F0 7D8903A6
4E800421 48000021
7C8802A6 38A00000
3D808038 618CFD54
7D8903A6 4E800421
88780009 2C030001
41800010 2C03000F
41810010 48000010
38600001 48000008
3860000F 987B001B
8062F228 907B06EA
3C600101 60630101
9062F228 38A00000
3C60804C 606320BC
1C850044 7C632214
38800000 90830000
38A50001 2C050004
4180FFE0 38600004
38800007 38A00000
3D808039 618C01F0
7D8903A6 4E800421
48000021 7C8802A6
38A00000 3D808038
618CFD54 7D8903A6
4E800421 48000040
4E800021 3C608048
80639D60 5464803E
806DB61C 80630007
7C841A14 3C60804D
90835F90 4E800020
4E800021 808DB61C
806406EA 9062F228
4E800020 BA810008
800100B4 382100B0
7C0803A6 00000000
48000040 4E800021
3C608048 80639D60
5464803E 806DB61C
80630007 7C841A14
3C60804D 90835F90
4E800020 4E800021
808DB61C 806406EA
9062F228 4E800020
BA810008 800100B4
382100B0 7C0803A6
60000000 00000000
C216E904 0000003B #Online/Core/InitPause.asm
3C608048 80639D30
5463443E 2C030208
@@ -1761,7 +1774,7 @@ C2019608 00000024 #Online/Core/Hacks/PreventPadAlarmDuringRollback.asm
7D8903A6 4E800421
B8610008 80010104
38210100 7C0803A6
38600001 986506FC
38600001 98650700
3D808001 618C9618
7D8903A6 4E800420
38600000 00000000

View File

@@ -571,25 +571,31 @@ $Required: Slippi Recording [Fizzi, Achilles, UnclePunch]
*Saves replays, Slippi device must be in Slot B.
*To disable saving replays, visit the Slippi settings in Config > GameCube
040679BC 38802600 #Recording/ExtendPlayerBlock.asm
C23219EC 00000012 #Recording/FlushFrameBuffer.asm
C23219EC 00000018 #Recording/FlushFrameBuffer.asm
7C0802A6 90010004
9421FF50 BE810008
3D808000 618C5604
7D8903A6 4E800421
2C030000 41820050
2C030000 41820084
83CDB64C 83ADB650
7F9EEA14 2C1D0000
4182003C 3860003C
41820070 3860003C
987C0000 806DB654
907C0001 3BBD0005
7FC3F378 7FA4EB78
38A00001 3D808000
618C55F0 7D8903A6
4E800421 38600000
906DB650 BA810008
800100B4 382100B0
7C0803A6 8001001C
60000000 00000000
907C0001 3C608048
80639D30 5463443E
2C030208 806DB654
4082001C 808DB61C
808406FC 3884FF85
7C041800 40800008
7C832378 907C0005
3BBD0009 7FC3F378
7FA4EB78 38A00001
3D808000 618C55F0
7D8903A6 4E800421
38600000 906DB650
BA810008 800100B4
382100B0 7C0803A6
8001001C 00000000
C216D30C 00000013 #Recording/SendGameEnd.asm
7C0802A6 90010004
9421FF50 BE810008
@@ -610,12 +616,12 @@ C216D30C 00000013 #Recording/SendGameEnd.asm
BA810008 800100B4
382100B0 7C0803A6
8001003C 00000000
C216E74C 000000B5 #Recording/SendGameInfo.asm
C216E74C 000000B7 #Recording/SendGameInfo.asm
7C0802A6 90010004
9421FF50 BE810008
3D808000 618C5604
7D8903A6 4E800421
2C030000 4182056C
2C030000 4182057C
386006DE 3D808037
618CF1E4 7D8903A6
4E800421 7C7E1B78
@@ -627,7 +633,7 @@ C216E74C 000000B5 #Recording/SendGameInfo.asm
7C7C1B78 38600035
987E0000 3860001C
987E0001 38600036
987E0002 386001A2
987E0002 386001A4
B07E0003 38600037
987E0005 3860003F
B07E0006 38600038
@@ -701,7 +707,9 @@ B07E0015 3860003D
2C140004 4180FF88
8862F234 987E01BE
8862F23C 987E01BF
7FC3F378 388001C0
3C608048 80639D30
5463443E B07E01C0
7FC3F378 388001C2
38A00001 3D808000
618C55F0 7D8903A6
4E800421 38600205
@@ -1097,54 +1105,56 @@ FC020840 4180000C
38600001 BA810008
800100B4 382100B0
7C0803A6 00000000
C21A4DB4 0000002F #Online/Core/ForceEngineOnRollback.asm
C21A4DB4 00000031 #Online/Core/ForceEngineOnRollback.asm
3C608048 80639D30
5463443E 2C030208
4082014C 3C608047
40820158 3C608047
60639D64 80630000
2C030000 40820138
2C030000 40820144
3D808034 618C7364
7D8903A6 4E800421
7C7A1B78 80ADB61C
2C1B0000 41810014
888500D9 2C040000
4182002C 3B600001
41820038 3B600001
888500D9 988506F2
808500DB 908506F3
888500DA 988506F7
8085018B 908506F8
480000D0 888506FC
2C040000 418200C4
38800000 988506FC
3D808001 618C95FC
7D8903A6 4E800421
48000020 4E800021
466F7263 65642061
20706164 2072656E
65772E2E 2E000000
7C0802A6 90010004
9421FF00 BC610008
808500D5 80840001
908506FC 480000D0
88850700 2C040000
418200C4 38800000
98850700 3D808001
618C95FC 7D8903A6
4E800421 48000020
4E800021 466F7263
65642061 20706164
2072656E 65772E2E
2E000000 7C0802A6
90010004 9421FF00
BC610008 60000000
60000000 60000000
60000000 60000000
60000000 806DAFC4
38630003 4BFFFFB9
7C8802A6 3D808032
618C3CF4 7D8903A6
4E800421 806DAFC4
388000D0 98830000
38800000 98830001
38800001 98830002
38800080 38A00001
3D808000 618C55F0
806DAFC4 38630003
4BFFFFB9 7C8802A6
3D808032 618C3CF4
7D8903A6 4E800421
B8610008 80010104
38210100 7C0803A6
7F43D378 3D808034
618C738C 7D8903A6
4E800421 2C1B0000
40820014 3D80801A
618C4DA8 7D8903A6
4E800420 00000000
806DAFC4 388000D0
98830000 38800000
98830001 38800001
98830002 38800080
38A00001 3D808000
618C55F0 7D8903A6
4E800421 B8610008
80010104 38210100
7C0803A6 7F43D378
3D808034 618C738C
7D8903A6 4E800421
2C1B0000 40820014
3D80801A 618C4DA8
7D8903A6 4E800420
60000000 00000000
C216D310 00000009 #Online/Core/HandleLRAS.asm
3C608048 80639D30
5463443E 2C030208
@@ -1171,21 +1181,21 @@ BA810008 800100B4
800100B4 382100B0
7C0803A6 7C7D1B78
60000000 00000000
C216E748 00000050 #Online/Core/InitOnlinePlay.asm
C216E748 00000053 #Online/Core/InitOnlinePlay.asm
3D808022 618C54B8
7D8903A6 4E800421
7C0802A6 90010004
9421FF50 BE810008
3C608048 80639D30
5463443E 2C030208
4082023C 386006FD
40820250 38600701
3D808037 618CF1E4
7D8903A6 4E800421
7C7B1B78 388006FD
7C7B1B78 38800701
3D808000 618CC160
7D8903A6 4E800421
936DB61C 38600001
907B0003 480001ED
907B0003 48000201
7C6802A6 907B06EE
38600012 3D808037
618CF1E4 7D8903A6
@@ -1193,65 +1203,68 @@ C216E748 00000050 #Online/Core/InitOnlinePlay.asm
38600059 3D808037
618CF1E4 7D8903A6
4E800421 907B00D5
7C7A1B78 38600021
7C7A1B78 38800059
3D808000 618CC160
7D8903A6 4E800421
38600021 3D808037
618CF1E4 7D8903A6
4E800421 7C791B78
933B018F 3860009E
3D808037 618CF1E4
7D8903A6 4E800421
7C791B78 933B018F
3860009E 3D808037
618CF1E4 7D8903A6
4E800421 907B0193
3880009E 3D808000
618CC160 7D8903A6
4E800421 38800000
98830000 38800007
98830001 93790005
386006FD 90790009
9359000D 38600059
90790011 807B0193
90790015 3860009E
90790019 38600000
9079001D 38600000
3D808000 618C5610
907B0193 3880009E
3D808000 618CC160
7D8903A6 4E800421
7C781B78 886DAEF8
987B0002 88780003
987B0000 88780004
987B0001 80780005
907B0007 3C80804D
90645F90 7FE3FB78
38980158 38A00138
3D808000 618C31F4
38800000 98830000
38800007 98830001
93790005 38600701
90790009 9359000D
38600059 90790011
807B0193 90790015
3860009E 90790019
38600000 9079001D
38600000 3D808000
618C5610 7D8903A6
4E800421 7C781B78
886DAEF8 987B0002
88780003 987B0000
88780004 987B0001
80780005 907B0007
3C80804D 90645F90
7FE3FB78 38980158
38A00138 3D808000
618C31F4 7D8903A6
4E800421 88780009
2C030001 41800010
2C03000F 41810010
48000010 38600001
48000008 3860000F
987B001B 8062F228
907B06EA 3C600101
60630101 9062F228
38A00000 3C60804C
606320BC 1C850044
7C632214 38800000
90830000 38A50001
2C050004 4180FFE0
38600004 38800007
38A00000 3D808039
618C01F0 7D8903A6
4E800421 48000021
7C8802A6 38A00000
3D808038 618CFD54
7D8903A6 4E800421
88780009 2C030001
41800010 2C03000F
41810010 48000010
38600001 48000008
3860000F 987B001B
8062F228 907B06EA
3C600101 60630101
9062F228 38A00000
3C60804C 606320BC
1C850044 7C632214
38800000 90830000
38A50001 2C050004
4180FFE0 38600004
38800007 38A00000
3D808039 618C01F0
7D8903A6 4E800421
48000021 7C8802A6
38A00000 3D808038
618CFD54 7D8903A6
4E800421 48000040
4E800021 3C608048
80639D60 5464803E
806DB61C 80630007
7C841A14 3C60804D
90835F90 4E800020
4E800021 808DB61C
806406EA 9062F228
4E800020 BA810008
800100B4 382100B0
7C0803A6 00000000
48000040 4E800021
3C608048 80639D60
5464803E 806DB61C
80630007 7C841A14
3C60804D 90835F90
4E800020 4E800021
808DB61C 806406EA
9062F228 4E800020
BA810008 800100B4
382100B0 7C0803A6
60000000 00000000
C216E904 0000003B #Online/Core/InitPause.asm
3C608048 80639D30
5463443E 2C030208
@@ -1761,7 +1774,7 @@ C2019608 00000024 #Online/Core/Hacks/PreventPadAlarmDuringRollback.asm
7D8903A6 4E800421
B8610008 80010104
38210100 7C0803A6
38600001 986506FC
38600001 98650700
3D808001 618C9618
7D8903A6 4E800420
38600000 00000000

View File

@@ -166,7 +166,7 @@ SkipPercentageRestore:
# Correct spawn points on the first frame
lwz r3,frameIndex(r13)
cmpwi r3,-123
cmpwi r3,CONST_FirstFrameIdx
bne SkipSpawnCorrection
# Force Direction Change
mr r3,PlayerData

View File

@@ -3,6 +3,7 @@
################################################################################
.include "Common/Common.s"
.include "Recording/Recording.s"
.include "Online/Online.s"
################################################################################
# Routine: FlushFrameBuffer
@@ -13,7 +14,8 @@
# struct offsets
.set OFST_CMD,0x0
.set OFST_FRAME,OFST_CMD+0x1
.set BOOKEND_STRUCT_SIZE,OFST_FRAME+0x4
.set OFST_LATEST_FINALIZED_FRAME,OFST_FRAME+0x4
.set BOOKEND_STRUCT_SIZE,OFST_LATEST_FINALIZED_FRAME+0x4
# registers
.set REG_Buffer,30
@@ -45,6 +47,24 @@ backup
lwz r3,frameIndex(r13)
stw r3,OFST_FRAME(REG_WritePos)
# send the latest finalized frame index. This is only relevant during rollback
# where we continue on with frames when their contents may change later.
# Having this here helps any kind of real-time system listening to the file
# wait until a frame will no longer change before processing it
getMinorMajor r3
cmpwi r3, SCENE_ONLINE_IN_GAME
lwz r3,frameIndex(r13)
bne WRITE_FINALIZED_FRAME
# Convert latest online frame index to replay frame index format
lwz r4, OFST_R13_ODB_ADDR(r13) # data buffer address
lwz r4, ODB_STABLE_OPNT_FRAME_NUM(r4)
addi r4, r4, CONST_FirstFrameIdx
cmpw r4, r3
bge WRITE_FINALIZED_FRAME # If latest frame greater than current frame, use current
mr r3, r4
WRITE_FINALIZED_FRAME:
stw r3,OFST_LATEST_FINALIZED_FRAME(REG_WritePos)
# increment buffer offset, we dont need to write it to memory because it's
# about to get cleared anyway
addi REG_BufferOffset,REG_BufferOffset,BOOKEND_STRUCT_SIZE

View File

@@ -15,7 +15,7 @@
# Payload lengths, if any additional data is added, these must be incremented
.set MESSAGE_DESCRIPTIONS_PAYLOAD_LENGTH, 3 * (COMMAND_COUNT - 1) + 1 # byte count
.set GAME_INFO_PAYLOAD_LENGTH, 418 # byte count
.set GAME_INFO_PAYLOAD_LENGTH, 420 # byte count
.set GAME_INITIAL_RNG_PAYLOAD_LENGTH, 8 #byte count
.set GAME_PRE_FRAME_PAYLOAD_LENGTH, 63 # byte count
.set GAME_POST_FRAME_PAYLOAD_LENGTH, 72 # byte count

View File

@@ -329,6 +329,13 @@ SEND_GAME_INFO_NAMETAG_INC_LOOP:
lbz r3,FSToggle(rtoc)
stb r3,FSToggleStart+0x0(REG_Buffer)
#------------- SEND Major/Minor Scene ------------
.set MinorMajorStart, (FSToggleStart + FSToggleLength)
.set MinorMajorLength, 0x2
getMinorMajor r3
sth r3, MinorMajorStart(REG_Buffer)
#------------- Transfer Buffer ------------
mr r3,REG_Buffer
li r4,MESSAGE_DESCRIPTIONS_PAYLOAD_LENGTH+1 + GAME_INFO_PAYLOAD_LENGTH+1