From a2e7642fae04d850ee4d0d97919340443173b173 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Mon, 8 Jul 2024 11:13:43 -0400 Subject: [PATCH] chore: mirror lgl and codeset changes from ishii --- Data/PlaybackGeckoCodes/GALE01r2.ini | 32 ++- Data/PlaybackGeckoCodes/GALJ01r2.ini | 32 ++- Data/Sys/GameSettings/GALE01r2.ini | 230 +++++++++++------- Data/Sys/GameSettings/GALJ01r2.ini | 230 +++++++++++------- .../Slippi/InjectionLists/list_netplay.json | 7 + Source/Core/Core/HW/EXI/EXI_DeviceSlippi.cpp | 4 +- Source/Core/Core/Slippi/SlippiGame.cpp | 3 + Source/Core/Core/Slippi/SlippiGame.h | 3 + 8 files changed, 348 insertions(+), 193 deletions(-) diff --git a/Data/PlaybackGeckoCodes/GALE01r2.ini b/Data/PlaybackGeckoCodes/GALE01r2.ini index 99a333104d..94f05bdb59 100644 --- a/Data/PlaybackGeckoCodes/GALE01r2.ini +++ b/Data/PlaybackGeckoCodes/GALE01r2.ini @@ -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 @@ -251,7 +253,7 @@ C0230044 D0230030 BA8100B0 800100E4 382100E0 7C0803A6 881F2219 00000000 -C216E748 0000009F #Playback/Core/RestoreGameInfo.asm +C216E748 000000A1 #Playback/Core/RestoreGameInfo.asm 3D808022 618C54B8 7D8903A6 4E800421 7C0802A6 90010004 @@ -328,7 +330,9 @@ C216E748 0000009F #Playback/Core/RestoreGameInfo.asm 807E021D 3D808037 618CF1E4 7D8903A6 4E800421 7C7D1B78 -93BC0008 3860008A +93BC0008 3C808000 +60845600 387DFFF8 +90640000 3860008A 987D0000 7FA3EB78 38800001 38A00001 3D808000 618C55F0 @@ -1019,7 +1023,7 @@ C216E74C 0000010A #Recording/SendGameInfo.asm 936DB64C 38800005 3D808000 618CC160 7D8903A6 4E800421 -38600770 3D808037 +38600780 3D808037 618CF1E4 7D8903A6 4E800421 7C7E1B78 93DB0000 38600000 @@ -1033,7 +1037,7 @@ C216E74C 0000010A #Recording/SendGameInfo.asm 987E0001 38600036 987E0002 386002F8 B07E0003 38600037 -987E0005 38600040 +987E0005 38600042 B07E0006 38600038 987E0008 38600054 B07E0009 38600039 @@ -1049,7 +1053,7 @@ B07E0015 3860003D 38600010 987E001A 38600204 B07E001B 38600036 987E001D -3C600310 60630000 +3C600311 60630000 907E001E 387E0022 7FE4FB78 38A00138 3D808000 618C31F4 @@ -1331,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 @@ -1370,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 diff --git a/Data/PlaybackGeckoCodes/GALJ01r2.ini b/Data/PlaybackGeckoCodes/GALJ01r2.ini index 99f39ae2f6..8b3f391041 100644 --- a/Data/PlaybackGeckoCodes/GALJ01r2.ini +++ b/Data/PlaybackGeckoCodes/GALJ01r2.ini @@ -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 @@ -250,7 +252,7 @@ C0230044 D0230030 BA8100B0 800100E4 382100E0 7C0803A6 881F2219 00000000 -C216E748 0000009F #Playback/Core/RestoreGameInfo.asm +C216E748 000000A1 #Playback/Core/RestoreGameInfo.asm 3D808022 618C54B8 7D8903A6 4E800421 7C0802A6 90010004 @@ -327,7 +329,9 @@ C216E748 0000009F #Playback/Core/RestoreGameInfo.asm 807E021D 3D808037 618CF1E4 7D8903A6 4E800421 7C7D1B78 -93BC0008 3860008A +93BC0008 3C808000 +60845600 387DFFF8 +90640000 3860008A 987D0000 7FA3EB78 38800001 38A00001 3D808000 618C55F0 @@ -1018,7 +1022,7 @@ C216E74C 0000010A #Recording/SendGameInfo.asm 936DB64C 38800005 3D808000 618CC160 7D8903A6 4E800421 -38600770 3D808037 +38600780 3D808037 618CF1E4 7D8903A6 4E800421 7C7E1B78 93DB0000 38600000 @@ -1032,7 +1036,7 @@ C216E74C 0000010A #Recording/SendGameInfo.asm 987E0001 38600036 987E0002 386002F8 B07E0003 38600037 -987E0005 38600040 +987E0005 38600042 B07E0006 38600038 987E0008 38600054 B07E0009 38600039 @@ -1048,7 +1052,7 @@ B07E0015 3860003D 38600010 987E001A 38600204 B07E001B 38600036 987E001D -3C600310 60630000 +3C600311 60630000 907E001E 387E0022 7FE4FB78 38A00138 3D808000 618C31F4 @@ -1330,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 @@ -1369,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 diff --git a/Data/Sys/GameSettings/GALE01r2.ini b/Data/Sys/GameSettings/GALE01r2.ini index b366df7163..e68cabc5c5 100644 --- a/Data/Sys/GameSettings/GALE01r2.ini +++ b/Data/Sys/GameSettings/GALE01r2.ini @@ -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 @@ -1596,6 +1598,59 @@ C216E904 0000004C #Online/Core/InitPause.asm 800100E4 382100E0 7C0803A6 4E800020 881F0001 00000000 +C22F70C4 00000034 #Online/Core/LGLExceededGameEnd.asm +48000058 4E800021 +3F333333 00000000 +428C0000 42700000 +3F800000 000000FF +D7A5FFFF FAFA78FF +596F7500 4F70706F +6E656E74 00257320 +45786365 65646564 +204C6564 67652047 +72616220 4C696D69 +74206F66 20256400 +7C0802A6 90010004 +9421FF20 BE8100B0 +7C9F2378 7CBE2B78 +7CDD3378 3B200000 +4BFFFF8D 7F0802A6 +3C608048 80639D30 +5463443E 2C030208 +408200E8 886DAFA0 +2C030003 418200DC +38600000 3D808004 +618C0AF0 7D8903A6 +4E800421 7C7C1B78 +38600001 3D808004 +618C0AF0 7D8903A6 +4E800421 7C7B1B78 +2C1C002D 4081000C +2C1B002D 4181009C +2C1C002D 3B400000 +41810014 2C1B002D +3B400001 41810008 +48000080 806DB61C +88630000 7C03D000 +3B200002 3AF8001C +3AD80024 C0780008 +40820014 3B200006 +3AF80018 3AD80020 +C078000C 3C608046 +6063B6A0 388000FD +988324D5 806DB61C +80630912 7EE4BB78 +38A00001 38D80014 +38F8002D 7EC8B378 +3920002D C0380000 +C0580004 C0D80010 +3D808000 618C56B4 +7D8903A6 4E800421 +7FE4FB78 7FC5F378 +7FA6EB78 7F23CB78 +BA8100B0 800100E4 +382100E0 7C0803A6 +38FF0000 00000000 C21A5014 0000005C #Online/Core/LoopEngineForRollback.asm 41A20014 3D80801A 618C5024 7D8903A6 @@ -4795,7 +4850,7 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 000001FF #Online/Slippi Online Scene/main.asm +C21A45B8 00000208 #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF20 BE8100B0 3C80803E @@ -4806,7 +4861,7 @@ BE8100B0 3C80803E 986DAFEC 986DAFE0 38600008 480001C1 7C8802A6 4800002D -48000F88 80830000 +48000FD4 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4876,8 +4931,8 @@ BA8100B0 800100E4 04030000 4800062D 48000969 20000000 80490880 804D68D0 -05030000 48000C7D -48000CBD 50000000 +05030000 48000CC9 +48000D09 50000000 48000019 48000015 FF000000 4E800021 81940000 4E800021 @@ -5023,7 +5078,7 @@ B07B0001 38600000 7D8903A6 4E800421 3C808047 60849D30 38600001 98640005 -887F0003 480006E9 +887F0003 48000735 986DAFC9 886DAFA0 2C030003 40820020 887F0003 38800001 @@ -5031,14 +5086,14 @@ B07B0001 38600000 38800000 988DAFC9 4800003C 3A800000 3AA00000 7E83A378 -480006AD 2C030000 +480006F9 2C030000 41820008 3AB50001 3A940001 2C140004 4180FFE4 2C150001 4182000C 38600000 986DAFC9 3E808047 62949DA4 887F0003 -48000675 2C030000 +480006C1 2C030000 41820018 38600001 98740000 38600000 9874005D 48000014 @@ -5216,97 +5271,106 @@ BE8100B0 38600000 BE8100B0 3FE08047 63FF9DA4 887F0004 2C030001 41820010 -2C030002 4182007C -480000C4 38600000 -3D808003 618C3BD8 +2C030002 418200C8 +48000110 38600000 +3D808004 618C0AF0 7D8903A6 4E800421 7C7B1B78 38600001 -3D808003 618C3BD8 +3D808004 618C0AF0 7D8903A6 4E800421 -7C1B1800 41810080 -41800084 38600000 -3D808003 618C42B4 -7D8903A6 4E800421 -7C7B1B78 38600001 -3D808003 618C42B4 -7D8903A6 4E800421 -7C1B1800 41800048 -4181004C 48000050 +2C1B002D 4081000C +2C03002D 41810014 +2C1B002D 418100C4 +2C03002D 418100B4 38600000 3D808003 618C3BD8 7D8903A6 -4E800421 2C030000 -40820024 38600001 +4E800421 7C7B1B78 +38600001 3D808003 +618C3BD8 7D8903A6 +4E800421 7C1B1800 +41810080 41800084 +38600000 3D808003 +618C42B4 7D8903A6 +4E800421 7C7B1B78 +38600001 3D808003 +618C42B4 7D8903A6 +4E800421 7C1B1800 +41800048 4181004C +48000050 38600000 3D808003 618C3BD8 7D8903A6 4E800421 -2C030000 40820010 -48000014 38600000 -48000010 38600001 -48000008 3860FFFF -BA8100B0 800100E4 -382100E0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF20 -BE8100B0 7C7D1B78 -3FE08047 63FF9DA4 -1FDD00A8 7FDEFA14 -887F0004 2C030000 -418200B0 3C608046 -6063B6A0 886324D0 -889F0006 7C032000 -40820098 887E0058 -2C030003 4182008C -887F0004 2C030007 -40820040 887F0006 -2C030001 40820024 -887F0000 1C6300A8 -7C63FA14 8863005F -889E005F 7C032000 -41820058 4800005C -887F0000 7C03E800 -41820048 4800004C -887F0006 2C030001 -40820028 7FE3FB78 -3D808016 618C54A0 -7D8903A6 4E800421 -889E005F 7C032000 -41820020 48000014 -887E005D 2C030000 -41820010 48000004 -38600000 48000008 -38600001 BA8100B0 +2C030000 40820024 +38600001 3D808003 +618C3BD8 7D8903A6 +4E800421 2C030000 +40820010 48000014 +38600000 48000010 +38600001 48000008 +3860FFFF BA8100B0 800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 9421FF20 BE8100B0 -83E30010 887F0006 -2C030000 40820014 -3D808001 618C74BC -7D8903A6 4E800421 +7C7D1B78 3FE08047 +63FF9DA4 1FDD00A8 +7FDEFA14 887F0004 +2C030000 418200B0 +3C608046 6063B6A0 +886324D0 889F0006 +7C032000 40820098 +887E0058 2C030003 +4182008C 887F0004 +2C030007 40820040 +887F0006 2C030001 +40820024 887F0000 +1C6300A8 7C63FA14 +8863005F 889E005F +7C032000 41820058 +4800005C 887F0000 +7C03E800 41820048 +4800004C 887F0006 +2C030001 40820028 +7FE3FB78 3D808016 +618C54A0 7D8903A6 +4E800421 889E005F +7C032000 41820020 +48000014 887E005D +2C030000 41820010 +48000004 38600000 +48000008 38600001 BA8100B0 800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 9421FF20 BE8100B0 83E30010 -38600000 3D808000 -618C5610 7D8903A6 -4E800421 7C7E1B78 -887E0000 2C030004 -41820018 3C808047 -60849D30 38600001 -98640005 48000038 887F0006 2C030000 -41820018 3C808047 -60849D30 38600003 -98640005 48000018 -4BFFFC5D 3C808047 -60849D30 38600005 -98640005 BA8100B0 +40820014 3D808001 +618C74BC 7D8903A6 +4E800421 BA8100B0 800100E4 382100E0 7C0803A6 4E800020 +7C0802A6 90010004 +9421FF20 BE8100B0 +83E30010 38600000 +3D808000 618C5610 +7D8903A6 4E800421 +7C7E1B78 887E0000 +2C030004 41820018 +3C808047 60849D30 +38600001 98640005 +48000038 887F0006 +2C030000 41820018 +3C808047 60849D30 +38600003 98640005 +48000018 4BFFFC11 +3C808047 60849D30 +38600005 98640005 BA8100B0 800100E4 382100E0 7C0803A6 -38600028 987E0000 -60000000 00000000 +4E800020 BA8100B0 +800100E4 382100E0 +7C0803A6 38600028 +987E0000 00000000 04005694 4E800020 #Online/Static/AdjustNullCharID.asm C20056BC 00000012 #Online/Static/CSSUpdateCSP.asm 7C0802A6 90010004 diff --git a/Data/Sys/GameSettings/GALJ01r2.ini b/Data/Sys/GameSettings/GALJ01r2.ini index a306c55488..afe26c6dbf 100644 --- a/Data/Sys/GameSettings/GALJ01r2.ini +++ b/Data/Sys/GameSettings/GALJ01r2.ini @@ -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 @@ -1595,6 +1597,59 @@ C216E904 0000004C #Online/Core/InitPause.asm 800100E4 382100E0 7C0803A6 4E800020 881F0001 00000000 +C22F70C4 00000034 #Online/Core/LGLExceededGameEnd.asm +48000058 4E800021 +3F333333 00000000 +428C0000 42700000 +3F800000 000000FF +D7A5FFFF FAFA78FF +596F7500 4F70706F +6E656E74 00257320 +45786365 65646564 +204C6564 67652047 +72616220 4C696D69 +74206F66 20256400 +7C0802A6 90010004 +9421FF20 BE8100B0 +7C9F2378 7CBE2B78 +7CDD3378 3B200000 +4BFFFF8D 7F0802A6 +3C608048 80639D30 +5463443E 2C030208 +408200E8 886DAFA0 +2C030003 418200DC +38600000 3D808004 +618C0AF0 7D8903A6 +4E800421 7C7C1B78 +38600001 3D808004 +618C0AF0 7D8903A6 +4E800421 7C7B1B78 +2C1C002D 4081000C +2C1B002D 4181009C +2C1C002D 3B400000 +41810014 2C1B002D +3B400001 41810008 +48000080 806DB61C +88630000 7C03D000 +3B200002 3AF8001C +3AD80024 C0780008 +40820014 3B200006 +3AF80018 3AD80020 +C078000C 3C608046 +6063B6A0 388000FD +988324D5 806DB61C +80630912 7EE4BB78 +38A00001 38D80014 +38F8002D 7EC8B378 +3920002D C0380000 +C0580004 C0D80010 +3D808000 618C56B4 +7D8903A6 4E800421 +7FE4FB78 7FC5F378 +7FA6EB78 7F23CB78 +BA8100B0 800100E4 +382100E0 7C0803A6 +38FF0000 00000000 C21A5014 0000005C #Online/Core/LoopEngineForRollback.asm 41A20014 3D80801A 618C5024 7D8903A6 @@ -4794,7 +4849,7 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 000001FF #Online/Slippi Online Scene/main.asm +C21A45B8 00000208 #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF20 BE8100B0 3C80803E @@ -4805,7 +4860,7 @@ BE8100B0 3C80803E 986DAFEC 986DAFE0 38600008 480001C1 7C8802A6 4800002D -48000F88 80830000 +48000FD4 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4875,8 +4930,8 @@ BA8100B0 800100E4 04030000 4800062D 48000969 20000000 80490880 804D68D0 -05030000 48000C7D -48000CBD 50000000 +05030000 48000CC9 +48000D09 50000000 48000019 48000015 FF000000 4E800021 81940000 4E800021 @@ -5022,7 +5077,7 @@ B07B0001 38600000 7D8903A6 4E800421 3C808047 60849D30 38600001 98640005 -887F0003 480006E9 +887F0003 48000735 986DAFC9 886DAFA0 2C030003 40820020 887F0003 38800001 @@ -5030,14 +5085,14 @@ B07B0001 38600000 38800000 988DAFC9 4800003C 3A800000 3AA00000 7E83A378 -480006AD 2C030000 +480006F9 2C030000 41820008 3AB50001 3A940001 2C140004 4180FFE4 2C150001 4182000C 38600000 986DAFC9 3E808047 62949DA4 887F0003 -48000675 2C030000 +480006C1 2C030000 41820018 38600001 98740000 38600000 9874005D 48000014 @@ -5215,97 +5270,106 @@ BE8100B0 38600000 BE8100B0 3FE08047 63FF9DA4 887F0004 2C030001 41820010 -2C030002 4182007C -480000C4 38600000 -3D808003 618C3BD8 +2C030002 418200C8 +48000110 38600000 +3D808004 618C0AF0 7D8903A6 4E800421 7C7B1B78 38600001 -3D808003 618C3BD8 +3D808004 618C0AF0 7D8903A6 4E800421 -7C1B1800 41810080 -41800084 38600000 -3D808003 618C42B4 -7D8903A6 4E800421 -7C7B1B78 38600001 -3D808003 618C42B4 -7D8903A6 4E800421 -7C1B1800 41800048 -4181004C 48000050 +2C1B002D 4081000C +2C03002D 41810014 +2C1B002D 418100C4 +2C03002D 418100B4 38600000 3D808003 618C3BD8 7D8903A6 -4E800421 2C030000 -40820024 38600001 +4E800421 7C7B1B78 +38600001 3D808003 +618C3BD8 7D8903A6 +4E800421 7C1B1800 +41810080 41800084 +38600000 3D808003 +618C42B4 7D8903A6 +4E800421 7C7B1B78 +38600001 3D808003 +618C42B4 7D8903A6 +4E800421 7C1B1800 +41800048 4181004C +48000050 38600000 3D808003 618C3BD8 7D8903A6 4E800421 -2C030000 40820010 -48000014 38600000 -48000010 38600001 -48000008 3860FFFF -BA8100B0 800100E4 -382100E0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF20 -BE8100B0 7C7D1B78 -3FE08047 63FF9DA4 -1FDD00A8 7FDEFA14 -887F0004 2C030000 -418200B0 3C608046 -6063B6A0 886324D0 -889F0006 7C032000 -40820098 887E0058 -2C030003 4182008C -887F0004 2C030007 -40820040 887F0006 -2C030001 40820024 -887F0000 1C6300A8 -7C63FA14 8863005F -889E005F 7C032000 -41820058 4800005C -887F0000 7C03E800 -41820048 4800004C -887F0006 2C030001 -40820028 7FE3FB78 -3D808016 618C54A0 -7D8903A6 4E800421 -889E005F 7C032000 -41820020 48000014 -887E005D 2C030000 -41820010 48000004 -38600000 48000008 -38600001 BA8100B0 +2C030000 40820024 +38600001 3D808003 +618C3BD8 7D8903A6 +4E800421 2C030000 +40820010 48000014 +38600000 48000010 +38600001 48000008 +3860FFFF BA8100B0 800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 9421FF20 BE8100B0 -83E30010 887F0006 -2C030000 40820014 -3D808001 618C74BC -7D8903A6 4E800421 +7C7D1B78 3FE08047 +63FF9DA4 1FDD00A8 +7FDEFA14 887F0004 +2C030000 418200B0 +3C608046 6063B6A0 +886324D0 889F0006 +7C032000 40820098 +887E0058 2C030003 +4182008C 887F0004 +2C030007 40820040 +887F0006 2C030001 +40820024 887F0000 +1C6300A8 7C63FA14 +8863005F 889E005F +7C032000 41820058 +4800005C 887F0000 +7C03E800 41820048 +4800004C 887F0006 +2C030001 40820028 +7FE3FB78 3D808016 +618C54A0 7D8903A6 +4E800421 889E005F +7C032000 41820020 +48000014 887E005D +2C030000 41820010 +48000004 38600000 +48000008 38600001 BA8100B0 800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 9421FF20 BE8100B0 83E30010 -38600000 3D808000 -618C5610 7D8903A6 -4E800421 7C7E1B78 -887E0000 2C030004 -41820018 3C808047 -60849D30 38600001 -98640005 48000038 887F0006 2C030000 -41820018 3C808047 -60849D30 38600003 -98640005 48000018 -4BFFFC5D 3C808047 -60849D30 38600005 -98640005 BA8100B0 +40820014 3D808001 +618C74BC 7D8903A6 +4E800421 BA8100B0 800100E4 382100E0 7C0803A6 4E800020 +7C0802A6 90010004 +9421FF20 BE8100B0 +83E30010 38600000 +3D808000 618C5610 +7D8903A6 4E800421 +7C7E1B78 887E0000 +2C030004 41820018 +3C808047 60849D30 +38600001 98640005 +48000038 887F0006 +2C030000 41820018 +3C808047 60849D30 +38600003 98640005 +48000018 4BFFFC11 +3C808047 60849D30 +38600005 98640005 BA8100B0 800100E4 382100E0 7C0803A6 -38600028 987E0000 -60000000 00000000 +4E800020 BA8100B0 +800100E4 382100E0 +7C0803A6 38600028 +987E0000 00000000 04005694 4E800020 #Online/Static/AdjustNullCharID.asm C20056BC 00000012 #Online/Static/CSSUpdateCSP.asm 7C0802A6 90010004 diff --git a/Data/Sys/Slippi/InjectionLists/list_netplay.json b/Data/Sys/Slippi/InjectionLists/list_netplay.json index 71b9f580ce..a914113e19 100644 --- a/Data/Sys/Slippi/InjectionLists/list_netplay.json +++ b/Data/Sys/Slippi/InjectionLists/list_netplay.json @@ -637,6 +637,13 @@ "Annotation": "Online/Core/InitPause.asm", "Tags": "" }, + { + "InjectionAddress": "802F70C4", + "Name": "Required: Slippi Online", + "Codetype": "Auto", + "Annotation": "Online/Core/LGLExceededGameEnd.asm", + "Tags": "" + }, { "InjectionAddress": "801A5014", "Name": "Required: Slippi Online", diff --git a/Source/Core/Core/HW/EXI/EXI_DeviceSlippi.cpp b/Source/Core/Core/HW/EXI/EXI_DeviceSlippi.cpp index 8b547e0322..51b84e717c 100644 --- a/Source/Core/Core/HW/EXI/EXI_DeviceSlippi.cpp +++ b/Source/Core/Core/HW/EXI/EXI_DeviceSlippi.cpp @@ -924,7 +924,7 @@ void CEXISlippi::prepareCharacterFrameData(Slippi::FrameData* frame, u8 port, u8 source = is_follower ? frame->followers : frame->players; // This must be updated if new data is added - int character_data_len = 50; + int character_data_len = 52; // Check if player exists if (!source.count(port)) @@ -959,6 +959,8 @@ void CEXISlippi::prepareCharacterFrameData(Slippi::FrameData* frame, u8 port, u8 m_read_queue.push_back(data.joystickXRaw); m_read_queue.push_back(data.joystickYRaw); appendWordToBuffer(&m_read_queue, static_cast(data.percent)); + m_read_queue.push_back(data.cstickXRaw); + m_read_queue.push_back(data.cstickYRaw); // NOTE TO DEV: If you add data here, make sure to increase the size above } diff --git a/Source/Core/Core/Slippi/SlippiGame.cpp b/Source/Core/Core/Slippi/SlippiGame.cpp index f8e7fe9b7d..1a516a43ac 100644 --- a/Source/Core/Core/Slippi/SlippiGame.cpp +++ b/Source/Core/Core/Slippi/SlippiGame.cpp @@ -262,6 +262,9 @@ void handlePreFrameUpdate(Game* game, uint32_t maxSize) p.joystickYRaw = readByte(data, idx, maxSize, 0); + p.cstickXRaw = readByte(data, idx, maxSize, 0); + p.cstickYRaw = readByte(data, idx, maxSize, 0); + // Add player data to frame std::unordered_map* target; target = isFollower ? &frame->followers : &frame->players; diff --git a/Source/Core/Core/Slippi/SlippiGame.h b/Source/Core/Core/Slippi/SlippiGame.h index 99f434b329..679a995c9f 100644 --- a/Source/Core/Core/Slippi/SlippiGame.h +++ b/Source/Core/Core/Slippi/SlippiGame.h @@ -69,6 +69,9 @@ typedef struct uint8_t joystickXRaw; uint8_t joystickYRaw; + + uint8_t cstickXRaw; + uint8_t cstickYRaw; } PlayerFrameData; typedef struct FrameData