fix bug with backing up gecko codes

This commit is contained in:
Jas Laferriere
2021-02-06 00:35:41 -08:00
parent a38eab9233
commit d39498d15a
7 changed files with 239 additions and 230 deletions

View File

@@ -321,8 +321,6 @@ rlwinm \reg, \reg, 8, 0xFFFF # Loads major and minor scene into bottom of reg
.set CONST_FirstFrameIdx, -123
.set GeckoCodeSectionStart,0x801910E8
.set RtocAddress, 0x804df9e0
.set ControllerFixOptions,0xDD8 # Each byte at offset is a player's setting

View File

@@ -18,12 +18,13 @@
.set REG_CodeCount, 28
.set REG_NextCodeDistance, 27
#.set REG_CopyFromAddress, 26
.set REG_StartAddress, 26
.set REG_ReplaceSize, 25
backup
mr REG_Cursor, r3
mr REG_StartAddress, r3
# Move optional callback into reg
mr REG_Callback, r4
@@ -131,8 +132,7 @@ b LOOP_START
LOOP_EXIT:
# Prepare return values
load r3, GeckoCodeSectionStart
sub r3, REG_Cursor, r3 # Total size
sub r3, REG_Cursor, REG_StartAddress # Total size
restore
blr

Binary file not shown.

View File

@@ -721,12 +721,12 @@ C216D884 0000001C #Recording/SendGameEnd.asm
800100B4 382100B0
7C0803A6 819F2514
60000000 00000000
C216E74C 000000E1 #Recording/SendGameInfo.asm
C216E74C 000000E3 #Recording/SendGameInfo.asm
7C0802A6 90010004
9421FF50 BE810008
3D808000 618C5604
7D8903A6 4E800421
2C030000 418206CC
2C030000 418206DC
38600005 3D808037
618CF1E4 7D8903A6
4E800421 7C7B1B78
@@ -739,138 +739,140 @@ C216E74C 000000E1 #Recording/SendGameInfo.asm
93DB0000 38600000
906DB650 3C608000
60635600 80630000
38800000 3D808000
618C55FC 7D8903A6
4E800421 7C7C1B78
38600035 987E0000
3860001C 987E0001
38600036 987E0002
38600248 B07E0003
38600037 987E0005
3860003F B07E0006
38600038 987E0008
3860004C B07E0009
38600039 987E000B
38600002 B07E000C
3860003A 987E000E
38600008 B07E000F
3860003B 987E0011
3860002A B07E0012
3860003C 987E0014
38600008 B07E0015
3860003D 987E0017
B39E0018 38600010
987E001A 38600204
B07E001B 38600036
987E001D 3C600308
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
38630008 38800000
3D808000 618C55FC
7D8903A6 4E800421
7C7C1B78 38600035
987E0000 3860001C
987E0001 38600036
987E0002 38600248
B07E0003 38600037
987E0005 3860003F
B07E0006 38600038
987E0008 3860004C
B07E0009 38600039
987E000B 38600002
B07E000C 3860003A
987E000E 38600008
B07E000F 3860003B
987E0011 3860002A
B07E0012 3860003C
987E0014 38600008
B07E0015 3860003D
987E0017 B39E0018
38600010 987E001A
38600204 B07E001B
38600036 987E001D
3C600309 60630000
907E001E 387E0022
7FE4FB78 38A00138
3D808000 618C31F4
7D8903A6 4E800421
387E0062 3880001C
3D808000 618CC160
7D8903A6 4E800421
387E0022 3AA30060
3A800000 1ED40024
7ED6AA14 88760001
2C030000 4082002C
88760000 3D808016
618C9238 7D8903A6
4E800421 88960003
7C041800 4081000C
38600000 98760003
2C030000 40820034
88760000 2C030012
40820028 3C60804C
606320BC 1C940044
7C632214 80630000
546005EF 4182000C
38600013 98760000
3A940001 2C140004
4180FFBC 3C60804D
80635F90 907E015A
3A82F228 3AA00000
3ADE015E 1EF50008
7C75A0AE 7C76B92E
3AF70004 7C76B92E
3AB50001 2C150004
4180FFE4 3A800000
3ABF0060 3AFE017E
1F140010 7F18BA14
4180FFB4 387E0022
3AA30060 3A800000
1ED40024 7ED6AA14
88760001 2C030000
40820040 8876000A
2C030078 41820034
3D808023 618C754C
4082002C 88760000
3D808016 618C9238
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 38600000
3D808000 618C5610
7D8903A6 4E800421
7C791B78 3A800000
3ABF0060 3AFE01C2
3B590034 1C74001F
7F03BA14 1ED40024
88960003 7C041800
4081000C 38600000
98760003 3A940001
2C140004 4180FFBC
3C60804D 80635F90
907E015A 3A82F228
3AA00000 3ADE015E
1EF50008 7C75A0AE
7C76B92E 3AF70004
7C76B92E 3AB50001
2C150004 4180FFE4
3A800000 3ABF0060
3AFE017E 1F140010
7F18BA14 1ED40024
7ED6AA14 88760001
2C030000 40820028
1C74001F 7C83D214
7F03C378 38A0001F
2C030000 40820040
8876000A 2C030078
41820034 3D808023
618C754C 7D8903A6
4E800421 7C641B78
7F03C378 38A00010
3D808000 618C31F4
7D8903A6 4E800421
4800001C 7F03C378
3880001F 3D808000
38800010 3D808000
618CC160 7D8903A6
4E800421 3A940001
2C140004 4180FFA0
2C140004 4180FF88
8862F234 987E01BE
8862F23C 987E01BF
3C608048 80639D30
5463443E B07E01C0
38600000 3D808000
618C5610 7D8903A6
4E800421 7C791B78
3A800000 3ABF0060
3AFE023E 3B5900EF
1C74000A 7F03BA14
3AFE01C2 3B590034
1C74001F 7F03BA14
1ED40024 7ED6AA14
88760001 2C030000
40820028 1C74000A
40820028 1C74001F
7C83D214 7F03C378
38A0000A 3D808000
38A0001F 3D808000
618C31F4 7D8903A6
4E800421 4800001C
7F03C378 3880000A
7F03C378 3880001F
3D808000 618CC160
7D8903A6 4E800421
3A940001 2C140004
4180FFA0 7F23CB78
3D808037 618CF1B0
4180FFA0 3A800000
3ABF0060 3AFE023E
3B5900EF 1C74000A
7F03BA14 1ED40024
7ED6AA14 88760001
2C030000 40820028
1C74000A 7C83D214
7F03C378 38A0000A
3D808000 618C31F4
7D8903A6 4E800421
7FC3F378 38800266
38A00001 3D808000
618C55F0 7D8903A6
4E800421 38600205
3D808037 618CF1E4
4800001C 7F03C378
3880000A 3D808000
618CC160 7D8903A6
4E800421 3A940001
2C140004 4180FFA0
7F23CB78 3D808037
618CF1B0 7D8903A6
4E800421 7FC3F378
38800266 38A00001
3D808000 618C55F0
7D8903A6 4E800421
7C751B78 38600010
98750000 3860003D
98750203 38600200
B0750201 38600000
98750204 3AC00000
7C76E050 2C030200
41810010 B0750201
38600001 98750204
38750001 3C808019
608410E8 7C84B214
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
@@ -878,7 +880,7 @@ A0B50201 3D808000
3D808000 618C55F0
7D8903A6 4E800421
3AD60200 7C16E000
4180FFA0 7EA3AB78
4180FFA4 7EA3AB78
3D808037 618CF1B0
7D8903A6 4E800421
38600004 38800007

View File

@@ -721,12 +721,12 @@ C216D884 0000001C #Recording/SendGameEnd.asm
800100B4 382100B0
7C0803A6 819F2514
60000000 00000000
C216E74C 000000E1 #Recording/SendGameInfo.asm
C216E74C 000000E3 #Recording/SendGameInfo.asm
7C0802A6 90010004
9421FF50 BE810008
3D808000 618C5604
7D8903A6 4E800421
2C030000 418206CC
2C030000 418206DC
38600005 3D808037
618CF1E4 7D8903A6
4E800421 7C7B1B78
@@ -739,138 +739,140 @@ C216E74C 000000E1 #Recording/SendGameInfo.asm
93DB0000 38600000
906DB650 3C608000
60635600 80630000
38800000 3D808000
618C55FC 7D8903A6
4E800421 7C7C1B78
38600035 987E0000
3860001C 987E0001
38600036 987E0002
38600248 B07E0003
38600037 987E0005
3860003F B07E0006
38600038 987E0008
3860004C B07E0009
38600039 987E000B
38600002 B07E000C
3860003A 987E000E
38600008 B07E000F
3860003B 987E0011
3860002A B07E0012
3860003C 987E0014
38600008 B07E0015
3860003D 987E0017
B39E0018 38600010
987E001A 38600204
B07E001B 38600036
987E001D 3C600308
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
38630008 38800000
3D808000 618C55FC
7D8903A6 4E800421
7C7C1B78 38600035
987E0000 3860001C
987E0001 38600036
987E0002 38600248
B07E0003 38600037
987E0005 3860003F
B07E0006 38600038
987E0008 3860004C
B07E0009 38600039
987E000B 38600002
B07E000C 3860003A
987E000E 38600008
B07E000F 3860003B
987E0011 3860002A
B07E0012 3860003C
987E0014 38600008
B07E0015 3860003D
987E0017 B39E0018
38600010 987E001A
38600204 B07E001B
38600036 987E001D
3C600309 60630000
907E001E 387E0022
7FE4FB78 38A00138
3D808000 618C31F4
7D8903A6 4E800421
387E0062 3880001C
3D808000 618CC160
7D8903A6 4E800421
387E0022 3AA30060
3A800000 1ED40024
7ED6AA14 88760001
2C030000 4082002C
88760000 3D808016
618C9238 7D8903A6
4E800421 88960003
7C041800 4081000C
38600000 98760003
2C030000 40820034
88760000 2C030012
40820028 3C60804C
606320BC 1C940044
7C632214 80630000
546005EF 4182000C
38600013 98760000
3A940001 2C140004
4180FFBC 3C60804D
80635F90 907E015A
3A82F228 3AA00000
3ADE015E 1EF50008
7C75A0AE 7C76B92E
3AF70004 7C76B92E
3AB50001 2C150004
4180FFE4 3A800000
3ABF0060 3AFE017E
1F140010 7F18BA14
4180FFB4 387E0022
3AA30060 3A800000
1ED40024 7ED6AA14
88760001 2C030000
40820040 8876000A
2C030078 41820034
3D808023 618C754C
4082002C 88760000
3D808016 618C9238
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 38600000
3D808000 618C5610
7D8903A6 4E800421
7C791B78 3A800000
3ABF0060 3AFE01C2
3B590034 1C74001F
7F03BA14 1ED40024
88960003 7C041800
4081000C 38600000
98760003 3A940001
2C140004 4180FFBC
3C60804D 80635F90
907E015A 3A82F228
3AA00000 3ADE015E
1EF50008 7C75A0AE
7C76B92E 3AF70004
7C76B92E 3AB50001
2C150004 4180FFE4
3A800000 3ABF0060
3AFE017E 1F140010
7F18BA14 1ED40024
7ED6AA14 88760001
2C030000 40820028
1C74001F 7C83D214
7F03C378 38A0001F
2C030000 40820040
8876000A 2C030078
41820034 3D808023
618C754C 7D8903A6
4E800421 7C641B78
7F03C378 38A00010
3D808000 618C31F4
7D8903A6 4E800421
4800001C 7F03C378
3880001F 3D808000
38800010 3D808000
618CC160 7D8903A6
4E800421 3A940001
2C140004 4180FFA0
2C140004 4180FF88
8862F234 987E01BE
8862F23C 987E01BF
3C608048 80639D30
5463443E B07E01C0
38600000 3D808000
618C5610 7D8903A6
4E800421 7C791B78
3A800000 3ABF0060
3AFE023E 3B5900EF
1C74000A 7F03BA14
3AFE01C2 3B590034
1C74001F 7F03BA14
1ED40024 7ED6AA14
88760001 2C030000
40820028 1C74000A
40820028 1C74001F
7C83D214 7F03C378
38A0000A 3D808000
38A0001F 3D808000
618C31F4 7D8903A6
4E800421 4800001C
7F03C378 3880000A
7F03C378 3880001F
3D808000 618CC160
7D8903A6 4E800421
3A940001 2C140004
4180FFA0 7F23CB78
3D808037 618CF1B0
4180FFA0 3A800000
3ABF0060 3AFE023E
3B5900EF 1C74000A
7F03BA14 1ED40024
7ED6AA14 88760001
2C030000 40820028
1C74000A 7C83D214
7F03C378 38A0000A
3D808000 618C31F4
7D8903A6 4E800421
7FC3F378 38800266
38A00001 3D808000
618C55F0 7D8903A6
4E800421 38600205
3D808037 618CF1E4
4800001C 7F03C378
3880000A 3D808000
618CC160 7D8903A6
4E800421 3A940001
2C140004 4180FFA0
7F23CB78 3D808037
618CF1B0 7D8903A6
4E800421 7FC3F378
38800266 38A00001
3D808000 618C55F0
7D8903A6 4E800421
7C751B78 38600010
98750000 3860003D
98750203 38600200
B0750201 38600000
98750204 3AC00000
7C76E050 2C030200
41810010 B0750201
38600001 98750204
38750001 3C808019
608410E8 7C84B214
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
@@ -878,7 +880,7 @@ A0B50201 3D808000
3D808000 618C55F0
7D8903A6 4E800421
3AD60200 7C16E000
4180FFA0 7EA3AB78
4180FFA4 7EA3AB78
3D808037 618CF1B0
7D8903A6 4E800421
38600004 38800007

View File

@@ -52,8 +52,8 @@
# build version number. Each byte is one digit
# any change in command data should result in a minor version change
# current version: 3.8.0
.set CURRENT_VERSION,0x03080000
# current version: 3.9.0
.set CURRENT_VERSION,0x03090000
################################################################################
# Static Function Locations

View File

@@ -50,6 +50,7 @@ backup
#------------- DETERMINE SIZE OF GECKO CODE SECTION -----------------
load r3,GeckoHeapPtr
lwz r3, 0 (r3) # Gecko code list start
addi r3, r3, 8 # skip past d0c0de d0c0de
li r4, 0 # No callback
branchl r12, FN_ProcessGecko
mr REG_GeckoListSize, r3
@@ -476,11 +477,17 @@ SEND_GAME_INFO_NAMETAG_INC_LOOP:
#-------------- Transfer Gecko List ---------------
.set REG_GeckoCopyBuffer,21
.set REG_GeckoCopyPos,22
.set REG_GeckoSectionStart,23
# Create copy buffer
li r3, SPLIT_MESSAGE_BUF_LEN
branchl r12, HSD_MemAlloc
mr REG_GeckoCopyBuffer, r3
# Load gecko code section start
load r3, GeckoHeapPtr
lwz r3, 0 (r3) # Gecko code list start
addi REG_GeckoSectionStart, r3, 8 # skip past d0c0de d0c0de
li r3, CMD_SPLIT_MESSAGE
stb r3, SPLIT_MESSAGE_OFST_COMMAND(REG_GeckoCopyBuffer)
@@ -513,7 +520,7 @@ CODE_LIST_LOOP_START:
CODE_LIST_COPY_BLOCK:
# Copy next gecko list section
addi r3, REG_GeckoCopyBuffer, SPLIT_MESSAGE_OFST_DATA # destination
load r4, GeckoCodeSectionStart
mr r4, REG_GeckoSectionStart
add r4, r4, REG_GeckoCopyPos
lhz r5, SPLIT_MESSAGE_OFST_SIZE(REG_GeckoCopyBuffer)
branchl r12, memcpy