save and restore raw cstick values

fixes playback bug with UCF 0.84 1.0 cardinals on cstick
This commit is contained in:
Jas Laferriere
2024-06-30 13:50:39 -04:00
parent 7cd7e77626
commit c852afae8e
8 changed files with 60 additions and 38 deletions

View File

@@ -784,7 +784,7 @@ C216E74C 0000010A #Recording/SendGameInfo.asm
936DB64C 38800005
3D808000 618CC160
7D8903A6 4E800421
38600770 3D808037
38600780 3D808037
618CF1E4 7D8903A6
4E800421 7C7E1B78
93DB0000 38600000
@@ -798,7 +798,7 @@ C216E74C 0000010A #Recording/SendGameInfo.asm
987E0001 38600036
987E0002 386002F8
B07E0003 38600037
987E0005 38600040
987E0005 38600042
B07E0006 38600038
987E0008 38600054
B07E0009 38600039
@@ -814,7 +814,7 @@ B07E0015 3860003D
38600010 987E001A
38600204 B07E001B
38600036 987E001D
3C600310 60630000
3C600311 60630000
907E001E 387E0022
7FE4FB78 38A00138
3D808000 618C31F4
@@ -1096,12 +1096,12 @@ A07F2088 B07D0053
800100E4 382100E0
7C0803A6 8001001C
60000000 00000000
C206B0E0 0000002C #Recording/SendGamePreFrame.asm
C206B0E0 0000002E #Recording/SendGamePreFrame.asm
7C0802A6 90010004
9421FF20 BE8100B0
3D808000 618C5604
7D8903A6 4E800421
2C030000 41820120
2C030000 41820130
8B7F000C 806DB64C
83A30000 838DB650
7FBDE214 38600037
@@ -1135,8 +1135,10 @@ B07D0031 80640030
1C9B000C 7C832214
88640002 987D003B
88640003 987D0040
88640004 987D0041
88640005 987D0042
807F1830 907D003C
838DB650 3B9C0041
838DB650 3B9C0043
938DB650 BA8100B0
800100E4 382100E0
7C0803A6 881F2219

View File

@@ -783,7 +783,7 @@ C216E74C 0000010A #Recording/SendGameInfo.asm
936DB64C 38800005
3D808000 618CC160
7D8903A6 4E800421
38600770 3D808037
38600780 3D808037
618CF1E4 7D8903A6
4E800421 7C7E1B78
93DB0000 38600000
@@ -797,7 +797,7 @@ C216E74C 0000010A #Recording/SendGameInfo.asm
987E0001 38600036
987E0002 386002F8
B07E0003 38600037
987E0005 38600040
987E0005 38600042
B07E0006 38600038
987E0008 38600054
B07E0009 38600039
@@ -813,7 +813,7 @@ B07E0015 3860003D
38600010 987E001A
38600204 B07E001B
38600036 987E001D
3C600310 60630000
3C600311 60630000
907E001E 387E0022
7FE4FB78 38A00138
3D808000 618C31F4
@@ -1095,12 +1095,12 @@ A07F2088 B07D0053
800100E4 382100E0
7C0803A6 8001001C
60000000 00000000
C206B0E0 0000002C #Recording/SendGamePreFrame.asm
C206B0E0 0000002E #Recording/SendGamePreFrame.asm
7C0802A6 90010004
9421FF20 BE8100B0
3D808000 618C5604
7D8903A6 4E800421
2C030000 41820120
2C030000 41820130
8B7F000C 806DB64C
83A30000 838DB650
7FBDE214 38600037
@@ -1134,8 +1134,10 @@ B07D0031 80640030
1C9B000C 7C832214
88640002 987D003B
88640003 987D0040
88640004 987D0041
88640005 987D0042
807F1830 907D003C
838DB650 3B9C0041
838DB650 3B9C0043
938DB650 BA8100B0
800100E4 382100E0
7C0803A6 881F2219

View File

@@ -165,7 +165,7 @@ BE8100B0 806DAFC0
38800005 38A00001
3D808000 618C55F0
7D8903A6 4E800421
7F63DB78 38800197
7F63DB78 388001A7
38A00000 3D808000
618C55F0 7D8903A6
4E800421 887B0000
@@ -177,7 +177,7 @@ BE8100B0 806DAFC0
BA8100B0 800100E4
382100E0 7C0803A6
881F0008 00000000
C206B0DC 00000049 #Playback/Core/RestoreGameFrame.asm
C206B0DC 0000004B #Playback/Core/RestoreGameFrame.asm
7C0802A6 90010004
9421FF20 BE8100B0
8BBF000C 7FA3EB78
@@ -189,10 +189,10 @@ C206B0DC 00000049 #Playback/Core/RestoreGameFrame.asm
7D8903A6 4E800421
7C741B78 2C140000
41820010 8879056F
2C030000 418201D4
2C030000 418201E4
389B0007 88BF000C
1CA50064 7C842A14
1CB40032 7F442A14
1CA50068 7C842A14
1CB40034 7F442A14
807A0004 907F0620
807A0008 907F0624
807A000C 907F0638
@@ -215,6 +215,8 @@ C206B0DC 00000049 #Playback/Core/RestoreGameFrame.asm
1C84000C 7E832214
887A002C 98740002
887A002D 98740003
887A0032 98740004
887A0033 98740005
8879056F 2C030000
4182004C 807A002E
2C03FFFF 41820040
@@ -1021,7 +1023,7 @@ C216E74C 0000010A #Recording/SendGameInfo.asm
936DB64C 38800005
3D808000 618CC160
7D8903A6 4E800421
38600770 3D808037
38600780 3D808037
618CF1E4 7D8903A6
4E800421 7C7E1B78
93DB0000 38600000
@@ -1035,7 +1037,7 @@ C216E74C 0000010A #Recording/SendGameInfo.asm
987E0001 38600036
987E0002 386002F8
B07E0003 38600037
987E0005 38600040
987E0005 38600042
B07E0006 38600038
987E0008 38600054
B07E0009 38600039
@@ -1051,7 +1053,7 @@ B07E0015 3860003D
38600010 987E001A
38600204 B07E001B
38600036 987E001D
3C600310 60630000
3C600311 60630000
907E001E 387E0022
7FE4FB78 38A00138
3D808000 618C31F4
@@ -1333,12 +1335,12 @@ A07F2088 B07D0053
800100E4 382100E0
7C0803A6 8001001C
60000000 00000000
C206B0E0 0000002C #Recording/SendGamePreFrame.asm
C206B0E0 0000002E #Recording/SendGamePreFrame.asm
7C0802A6 90010004
9421FF20 BE8100B0
3D808000 618C5604
7D8903A6 4E800421
2C030000 41820120
2C030000 41820130
8B7F000C 806DB64C
83A30000 838DB650
7FBDE214 38600037
@@ -1372,8 +1374,10 @@ B07D0031 80640030
1C9B000C 7C832214
88640002 987D003B
88640003 987D0040
88640004 987D0041
88640005 987D0042
807F1830 907D003C
838DB650 3B9C0041
838DB650 3B9C0043
938DB650 BA8100B0
800100E4 382100E0
7C0803A6 881F2219

View File

@@ -164,7 +164,7 @@ BE8100B0 806DAFC0
38800005 38A00001
3D808000 618C55F0
7D8903A6 4E800421
7F63DB78 38800197
7F63DB78 388001A7
38A00000 3D808000
618C55F0 7D8903A6
4E800421 887B0000
@@ -176,7 +176,7 @@ BE8100B0 806DAFC0
BA8100B0 800100E4
382100E0 7C0803A6
881F0008 00000000
C206B0DC 00000049 #Playback/Core/RestoreGameFrame.asm
C206B0DC 0000004B #Playback/Core/RestoreGameFrame.asm
7C0802A6 90010004
9421FF20 BE8100B0
8BBF000C 7FA3EB78
@@ -188,10 +188,10 @@ C206B0DC 00000049 #Playback/Core/RestoreGameFrame.asm
7D8903A6 4E800421
7C741B78 2C140000
41820010 8879056F
2C030000 418201D4
2C030000 418201E4
389B0007 88BF000C
1CA50064 7C842A14
1CB40032 7F442A14
1CA50068 7C842A14
1CB40034 7F442A14
807A0004 907F0620
807A0008 907F0624
807A000C 907F0638
@@ -214,6 +214,8 @@ C206B0DC 00000049 #Playback/Core/RestoreGameFrame.asm
1C84000C 7E832214
887A002C 98740002
887A002D 98740003
887A0032 98740004
887A0033 98740005
8879056F 2C030000
4182004C 807A002E
2C03FFFF 41820040
@@ -1020,7 +1022,7 @@ C216E74C 0000010A #Recording/SendGameInfo.asm
936DB64C 38800005
3D808000 618CC160
7D8903A6 4E800421
38600770 3D808037
38600780 3D808037
618CF1E4 7D8903A6
4E800421 7C7E1B78
93DB0000 38600000
@@ -1034,7 +1036,7 @@ C216E74C 0000010A #Recording/SendGameInfo.asm
987E0001 38600036
987E0002 386002F8
B07E0003 38600037
987E0005 38600040
987E0005 38600042
B07E0006 38600038
987E0008 38600054
B07E0009 38600039
@@ -1050,7 +1052,7 @@ B07E0015 3860003D
38600010 987E001A
38600204 B07E001B
38600036 987E001D
3C600310 60630000
3C600311 60630000
907E001E 387E0022
7FE4FB78 38A00138
3D808000 618C31F4
@@ -1332,12 +1334,12 @@ A07F2088 B07D0053
800100E4 382100E0
7C0803A6 8001001C
60000000 00000000
C206B0E0 0000002C #Recording/SendGamePreFrame.asm
C206B0E0 0000002E #Recording/SendGamePreFrame.asm
7C0802A6 90010004
9421FF20 BE8100B0
3D808000 618C5604
7D8903A6 4E800421
2C030000 41820120
2C030000 41820130
8B7F000C 806DB64C
83A30000 838DB650
7FBDE214 38600037
@@ -1371,8 +1373,10 @@ B07D0031 80640030
1C9B000C 7C832214
88640002 987D003B
88640003 987D0040
88640004 987D0041
88640005 987D0042
807F1830 907D003C
838DB650 3B9C0041
838DB650 3B9C0043
938DB650 BA8100B0
800100E4 382100E0
7C0803A6 881F2219

View File

@@ -162,6 +162,10 @@ SKIP_RESYNC:
stb r3, 0x2(r20) #store raw x analog
lbz r3, AnalogRawInputY(PlayerBackup)
stb r3, 0x3(r20) #store raw y analog
lbz r3, CStickRawInputX(PlayerBackup)
stb r3, 0x4(r20) #store raw x cstick
lbz r3, CStickRawInputY(PlayerBackup)
stb r3, 0x5(r20) #store raw y cstick
# If we do not have resync logic enabled, don't try to restore percentage
lbz r3, PDB_SHOULD_RESYNC(REG_PDB_ADDR)

View File

@@ -86,7 +86,7 @@
# gameframe
.set GameFrame_Start, InitialRNG_Start + InitialRNG_Length
# per player offsets
.set PlayerDataLength,0x32
.set PlayerDataLength,0x34
.set RNGSeed,0x00
.set AnalogX,0x04
.set AnalogY,0x08
@@ -101,6 +101,8 @@
.set AnalogRawInputX,0x2C
.set AnalogRawInputY,0x2D
.set Percentage,0x2E
.set CStickRawInputX,0x32
.set CStickRawInputY,0x33
.set GameFrame_Length, PlayerDataLength * 8

View File

@@ -30,7 +30,7 @@
.set MESSAGE_DESCRIPTIONS_PAYLOAD_LENGTH, 3 * (COMMAND_COUNT - 1) + 1 # byte count
.set GAME_INFO_PAYLOAD_LENGTH, 760 # byte count
.set GAME_FRAME_START_PAYLOAD_LENGTH, 12 #byte count
.set GAME_PRE_FRAME_PAYLOAD_LENGTH, 64 # byte count
.set GAME_PRE_FRAME_PAYLOAD_LENGTH, 66 # byte count
.set GAME_POST_FRAME_PAYLOAD_LENGTH, 84 # byte count
.set GAME_ITEM_INFO_PAYLOAD_LENGTH, 44 # byte count
.set GAME_FRAME_BOOKEND_PAYLOAD_LENGTH, 8 # byte count
@@ -65,8 +65,8 @@
# build version number. Each byte is one digit
# any change in command data should result in a minor version change
# current version: 3.16.0
.set CURRENT_VERSION,0x03100000
# current version: 3.17.0
.set CURRENT_VERSION,0x03110000
################################################################################
# Static Function Locations

View File

@@ -111,6 +111,10 @@ CONTINUE_RAW_X:
stb r3, 0x3B(REG_Buffer)
lbz r3, 0x3(r4) #load raw y analog
stb r3, 0x40(REG_Buffer)
lbz r3, 0x4(r4) #load raw x c-stick
stb r3, 0x41(REG_Buffer)
lbz r3, 0x5(r4) #load raw y c-stick
stb r3, 0x42(REG_Buffer)
# Send player's percent
lwz r3,0x1830(r31)