diff --git a/Output/Playback/GALE01r2.ini b/Output/Playback/GALE01r2.ini index bad30343..1f8ee514 100644 --- a/Output/Playback/GALE01r2.ini +++ b/Output/Playback/GALE01r2.ini @@ -250,16 +250,16 @@ C0230044 D0230030 BA8100B0 800100E4 382100E0 7C0803A6 881F2219 00000000 -C216E74C 0000009E #Playback/Core/RestoreGameInfo.asm +C216E74C 000000A1 #Playback/Core/RestoreGameInfo.asm 7C0802A6 90010004 9421FF20 BE8100B0 -386005EC 3D808037 +38600598 3D808037 618CF1E4 7D8903A6 4E800421 7C7C1B78 -938DB64C 388005EC +938DB64C 38800598 3D808000 618CC160 7D8903A6 4E800421 -38600221 3D808037 +38600249 3D808037 618CF1E4 7D8903A6 4E800421 7C7E1B78 93DC0000 38600040 @@ -273,7 +273,7 @@ C216E74C 0000009E #Playback/Core/RestoreGameInfo.asm 3880000D 38A00001 3D808000 618C55F0 7D8903A6 4E800421 -7FC3F378 38800221 +7FC3F378 38800249 38A00000 3D808000 618C55F0 7D8903A6 4E800421 887E0000 @@ -322,93 +322,96 @@ C216E74C 0000009E #Playback/Core/RestoreGameInfo.asm 389E01A1 38A0007C 3D808000 618C31F4 7D8903A6 4E800421 -807E021D 3D808037 -618CF1E4 7D8903A6 -4E800421 7C7D1B78 -93BC0008 3860008A -987D0000 7FA3EB78 -38800001 38A00001 -3D808000 618C55F0 +387C05EC 389E0221 +38A00028 3D808000 +618C31F4 7D8903A6 +4E800421 807E021D +3D808037 618CF1E4 7D8903A6 4E800421 -7FA3EB78 809E021D -38A00000 3D808000 +7C7D1B78 93BC0008 +3860008A 987D0000 +7FA3EB78 38800001 +38A00001 3D808000 618C55F0 7D8903A6 -4E800421 38800004 -909C000C 7FA3EB78 -48000055 7C8802A6 -3D808000 618C55FC +4E800421 7FA3EB78 +809E021D 38A00000 +3D808000 618C55F0 7D8903A6 4E800421 -807C000C 3D808037 -618CF1E4 7D8903A6 -4E800421 907C0010 -907C0014 7FA3EB78 -48000041 7C8802A6 -3D808000 618C55FC +38800004 909C000C +7FA3EB78 48000055 +7C8802A6 3D808000 +618C55FC 7D8903A6 +4E800421 807C000C +3D808037 618CF1E4 7D8903A6 4E800421 -4800013C 4E800021 -2C050000 41820018 -80CDB64C 8066000C -38630008 7C632A14 -9066000C 4E800020 +907C0010 907C0014 +7FA3EB78 48000041 +7C8802A6 3D808000 +618C55FC 7D8903A6 +4E800421 4800013C 4E800021 2C050000 -41820108 7C0802A6 -90010004 9421FF20 -BE8100B0 7C9E2378 -7CBB2B78 80BE0000 -54A501FE 64BD8000 -834DB64C 833A0014 -2C030004 41820014 -2C030006 41820014 -2C0300C2 41820014 -3B9E0004 48000048 -3B9E0008 48000040 -389E0008 7C7D2050 -546301BA 64634800 -907A0018 3B9A0018 -807E0004 1C630008 -7C83F214 387D0004 -7C641850 546301BA -64634800 3863FFFC -90640004 93B90000 -93790004 38790008 -7FA4EB78 7F65DB78 -3D808000 618C31F4 -7D8903A6 4E800421 -3B390008 7F39DA14 -933A0014 7FA3EB78 -7F84E378 7F65DB78 -3D808000 618C31F4 -7D8903A6 4E800421 -7FA3EB78 7F64DB78 -3D808032 618C8F50 -7D8903A6 4E800421 -BA8100B0 800100E4 -382100E0 7C0803A6 -4E800020 38600000 -809C0014 90640000 -7FA3EB78 809E021D -3D808032 618C8F50 -7D8903A6 4E800421 -38600004 38800007 -38A00000 3D808039 -618C01F0 7D8903A6 -4E800421 48000021 -7C8802A6 38A00000 -3D808038 618CFD54 -7D8903A6 4E800421 -4800004C 4E800021 +41820018 80CDB64C +8066000C 38630008 +7C632A14 9066000C +4E800020 4E800021 +2C050000 41820108 7C0802A6 90010004 9421FF20 BE8100B0 -806DB64C 83A30000 -887D0002 2C030000 -41820010 807D0003 -3C80804D 90645F90 +7C9E2378 7CBB2B78 +80BE0000 54A501FE +64BD8000 834DB64C +833A0014 2C030004 +41820014 2C030006 +41820014 2C0300C2 +41820014 3B9E0004 +48000048 3B9E0008 +48000040 389E0008 +7C7D2050 546301BA +64634800 907A0018 +3B9A0018 807E0004 +1C630008 7C83F214 +387D0004 7C641850 +546301BA 64634800 +3863FFFC 90640004 +93B90000 93790004 +38790008 7FA4EB78 +7F65DB78 3D808000 +618C31F4 7D8903A6 +4E800421 3B390008 +7F39DA14 933A0014 +7FA3EB78 7F84E378 +7F65DB78 3D808000 +618C31F4 7D8903A6 +4E800421 7FA3EB78 +7F64DB78 3D808032 +618C8F50 7D8903A6 +4E800421 BA8100B0 +800100E4 382100E0 +7C0803A6 4E800020 +38600000 809C0014 +90640000 7FA3EB78 +809E021D 3D808032 +618C8F50 7D8903A6 +4E800421 38600004 +38800007 38A00000 +3D808039 618C01F0 +7D8903A6 4E800421 +48000021 7C8802A6 +38A00000 3D808038 +618CFD54 7D8903A6 +4E800421 4800004C +4E800021 7C0802A6 +90010004 9421FF20 +BE8100B0 806DB64C +83A30000 887D0002 +2C030000 41820010 +807D0003 3C80804D +90645F90 BA8100B0 +800100E4 382100E0 +7C0803A6 4E800020 BA8100B0 800100E4 382100E0 7C0803A6 -4E800020 BA8100B0 -800100E4 382100E0 -7C0803A6 3C608017 -60000000 00000000 +3C608017 00000000 C216D304 00000009 #Playback/Core/RestoreLRAStart.asm 806DB64C 80630000 88630000 2C030002 @@ -538,7 +541,7 @@ C05E000C 3D80803A 7F83E378 38800001 38A10040 3D80803A 618C74F0 7D8903A6 -4E800421 38600221 +4E800421 38600249 3D808037 618CF1E4 7D8903A6 4E800421 7C7D1B78 3B600000 @@ -587,7 +590,7 @@ C05E000C 3D80803A 38A00001 3D808000 618C55F0 7D8903A6 4E800421 7FA3EB78 -38800221 38A00000 +38800249 38A00000 3D808000 618C55F0 7D8903A6 4E800421 887D0000 2C030001 diff --git a/Output/Playback/GALJ01r2.ini b/Output/Playback/GALJ01r2.ini index d3d3f783..b875fcad 100644 --- a/Output/Playback/GALJ01r2.ini +++ b/Output/Playback/GALJ01r2.ini @@ -249,16 +249,16 @@ C0230044 D0230030 BA8100B0 800100E4 382100E0 7C0803A6 881F2219 00000000 -C216E74C 0000009E #Playback/Core/RestoreGameInfo.asm +C216E74C 000000A1 #Playback/Core/RestoreGameInfo.asm 7C0802A6 90010004 9421FF20 BE8100B0 -386005EC 3D808037 +38600598 3D808037 618CF1E4 7D8903A6 4E800421 7C7C1B78 -938DB64C 388005EC +938DB64C 38800598 3D808000 618CC160 7D8903A6 4E800421 -38600221 3D808037 +38600249 3D808037 618CF1E4 7D8903A6 4E800421 7C7E1B78 93DC0000 38600040 @@ -272,7 +272,7 @@ C216E74C 0000009E #Playback/Core/RestoreGameInfo.asm 3880000D 38A00001 3D808000 618C55F0 7D8903A6 4E800421 -7FC3F378 38800221 +7FC3F378 38800249 38A00000 3D808000 618C55F0 7D8903A6 4E800421 887E0000 @@ -321,93 +321,96 @@ C216E74C 0000009E #Playback/Core/RestoreGameInfo.asm 389E01A1 38A0007C 3D808000 618C31F4 7D8903A6 4E800421 -807E021D 3D808037 -618CF1E4 7D8903A6 -4E800421 7C7D1B78 -93BC0008 3860008A -987D0000 7FA3EB78 -38800001 38A00001 -3D808000 618C55F0 +387C05EC 389E0221 +38A00028 3D808000 +618C31F4 7D8903A6 +4E800421 807E021D +3D808037 618CF1E4 7D8903A6 4E800421 -7FA3EB78 809E021D -38A00000 3D808000 +7C7D1B78 93BC0008 +3860008A 987D0000 +7FA3EB78 38800001 +38A00001 3D808000 618C55F0 7D8903A6 -4E800421 38800004 -909C000C 7FA3EB78 -48000055 7C8802A6 -3D808000 618C55FC +4E800421 7FA3EB78 +809E021D 38A00000 +3D808000 618C55F0 7D8903A6 4E800421 -807C000C 3D808037 -618CF1E4 7D8903A6 -4E800421 907C0010 -907C0014 7FA3EB78 -48000041 7C8802A6 -3D808000 618C55FC +38800004 909C000C +7FA3EB78 48000055 +7C8802A6 3D808000 +618C55FC 7D8903A6 +4E800421 807C000C +3D808037 618CF1E4 7D8903A6 4E800421 -4800013C 4E800021 -2C050000 41820018 -80CDB64C 8066000C -38630008 7C632A14 -9066000C 4E800020 +907C0010 907C0014 +7FA3EB78 48000041 +7C8802A6 3D808000 +618C55FC 7D8903A6 +4E800421 4800013C 4E800021 2C050000 -41820108 7C0802A6 -90010004 9421FF20 -BE8100B0 7C9E2378 -7CBB2B78 80BE0000 -54A501FE 64BD8000 -834DB64C 833A0014 -2C030004 41820014 -2C030006 41820014 -2C0300C2 41820014 -3B9E0004 48000048 -3B9E0008 48000040 -389E0008 7C7D2050 -546301BA 64634800 -907A0018 3B9A0018 -807E0004 1C630008 -7C83F214 387D0004 -7C641850 546301BA -64634800 3863FFFC -90640004 93B90000 -93790004 38790008 -7FA4EB78 7F65DB78 -3D808000 618C31F4 -7D8903A6 4E800421 -3B390008 7F39DA14 -933A0014 7FA3EB78 -7F84E378 7F65DB78 -3D808000 618C31F4 -7D8903A6 4E800421 -7FA3EB78 7F64DB78 -3D808032 618C8F50 -7D8903A6 4E800421 -BA8100B0 800100E4 -382100E0 7C0803A6 -4E800020 38600000 -809C0014 90640000 -7FA3EB78 809E021D -3D808032 618C8F50 -7D8903A6 4E800421 -38600004 38800007 -38A00000 3D808039 -618C01F0 7D8903A6 -4E800421 48000021 -7C8802A6 38A00000 -3D808038 618CFD54 -7D8903A6 4E800421 -4800004C 4E800021 +41820018 80CDB64C +8066000C 38630008 +7C632A14 9066000C +4E800020 4E800021 +2C050000 41820108 7C0802A6 90010004 9421FF20 BE8100B0 -806DB64C 83A30000 -887D0002 2C030000 -41820010 807D0003 -3C80804D 90645F90 +7C9E2378 7CBB2B78 +80BE0000 54A501FE +64BD8000 834DB64C +833A0014 2C030004 +41820014 2C030006 +41820014 2C0300C2 +41820014 3B9E0004 +48000048 3B9E0008 +48000040 389E0008 +7C7D2050 546301BA +64634800 907A0018 +3B9A0018 807E0004 +1C630008 7C83F214 +387D0004 7C641850 +546301BA 64634800 +3863FFFC 90640004 +93B90000 93790004 +38790008 7FA4EB78 +7F65DB78 3D808000 +618C31F4 7D8903A6 +4E800421 3B390008 +7F39DA14 933A0014 +7FA3EB78 7F84E378 +7F65DB78 3D808000 +618C31F4 7D8903A6 +4E800421 7FA3EB78 +7F64DB78 3D808032 +618C8F50 7D8903A6 +4E800421 BA8100B0 +800100E4 382100E0 +7C0803A6 4E800020 +38600000 809C0014 +90640000 7FA3EB78 +809E021D 3D808032 +618C8F50 7D8903A6 +4E800421 38600004 +38800007 38A00000 +3D808039 618C01F0 +7D8903A6 4E800421 +48000021 7C8802A6 +38A00000 3D808038 +618CFD54 7D8903A6 +4E800421 4800004C +4E800021 7C0802A6 +90010004 9421FF20 +BE8100B0 806DB64C +83A30000 887D0002 +2C030000 41820010 +807D0003 3C80804D +90645F90 BA8100B0 +800100E4 382100E0 +7C0803A6 4E800020 BA8100B0 800100E4 382100E0 7C0803A6 -4E800020 BA8100B0 -800100E4 382100E0 -7C0803A6 3C608017 -60000000 00000000 +3C608017 00000000 C216D304 00000009 #Playback/Core/RestoreLRAStart.asm 806DB64C 80630000 88630000 2C030002 @@ -537,7 +540,7 @@ C05E000C 3D80803A 7F83E378 38800001 38A10040 3D80803A 618C74F0 7D8903A6 -4E800421 38600221 +4E800421 38600249 3D808037 618CF1E4 7D8903A6 4E800421 7C7D1B78 3B600000 @@ -586,7 +589,7 @@ C05E000C 3D80803A 38A00001 3D808000 618C55F0 7D8903A6 4E800421 7FA3EB78 -38800221 38A00000 +38800249 38A00000 3D808000 618C55F0 7D8903A6 4E800421 887D0000 2C030001 diff --git a/Playback/Core/RestoreGameInfo.asm b/Playback/Core/RestoreGameInfo.asm index b2552f6e..e6b8ae7b 100644 --- a/Playback/Core/RestoreGameInfo.asm +++ b/Playback/Core/RestoreGameInfo.asm @@ -209,6 +209,12 @@ RESTORE_GAME_INFO_NAMETAG_INC_LOOP: li r5, DisplayNameData_Length # length branchl r12, memcpy +# Get player connect codes + addi r3, REG_DirectoryBuffer, PDB_CONNECT_CODES + addi r4, BufferPointer, ConnectCodeData + li r5, ConnectCodeData_Length + branchl r12, memcpy + #--------------- Apply Dynamic Gecko Codes --------------------- # Step 1: Grab size of gecko code list and create a buffer to store them # TODO: Make sure that returned size includes the termination sequence (8 bytes) diff --git a/Playback/Playback.s b/Playback/Playback.s index f404e9fa..43bbf241 100644 --- a/Playback/Playback.s +++ b/Playback/Playback.s @@ -59,7 +59,8 @@ .set PDB_LATEST_FRAME, PDB_SFXDB_START + SFXDB_SIZE # u32, must follow SFXDB as it is preserved .set PDB_SHOULD_RESYNC, PDB_LATEST_FRAME + 4 # bool .set PDB_DISPLAY_NAMES, PDB_SHOULD_RESYNC + 1 # string (31)[4] -.set PDB_SIZE, PDB_DISPLAY_NAMES + 124 +.set PDB_CONNECT_CODES, PDB_DISPLAY_NAMES + 124 # string (10)[4] +.set PDB_SIZE, PDB_DISPLAY_NAMES + 40 ################################################################################ # Buffer Offsets @@ -131,8 +132,10 @@ .set DisplayNameData_Length,0x7C .set GeckoListSize,0x21D .set GeckoListSize_Length,0x4 + .set ConnectCodeData,0x221 + .set ConnectCodeData_Length,0x28 - .set GameInfoLength, SuccessBool_Length + InfoRNGSeed_Length + MatchStruct_Length + UCFToggles_Length + NametagData_Length + PALBool_Length + PSPreloadBool_Length + FrozenPSBool_Length + ShouldResyncBool_Length + DisplayNameData_Length + GeckoListSize_Length + .set GameInfoLength, SuccessBool_Length + InfoRNGSeed_Length + MatchStruct_Length + UCFToggles_Length + NametagData_Length + PALBool_Length + PSPreloadBool_Length + FrozenPSBool_Length + ShouldResyncBool_Length + DisplayNameData_Length + GeckoListSize_Length + ConnectCodeData_Length .if GameInfoLength > Buffer_Length .set EXIBufferLength, GameInfoLength