rewrite common bank patch

This commit is contained in:
Martin Michelsen
2025-02-08 22:47:23 -08:00
parent 07c5a8a4b6
commit 9d7c71fb26
8 changed files with 648 additions and 528 deletions
@@ -1,6 +1,6 @@
.meta name="Common bank" .meta name="Common bank"
.meta description="Hold L and open\nthe bank to use a\ncommon bank stored\nin temp character\n3's data" .meta description="Hold L and open\nthe bank to use a\ncommon bank stored\nin temp character\n3's data"
# Original code by Ralf @ GC-Forever and Aleron Ives # Original code by Ralf @ GC-Forever ("Common Bank (Hold L And Open Bank)")
# https://www.gc-forever.com/forums/viewtopic.php?t=2050 # https://www.gc-forever.com/forums/viewtopic.php?t=2050
# https://www.gc-forever.com/forums/viewtopic.php?t=2049 # https://www.gc-forever.com/forums/viewtopic.php?t=2049
@@ -9,68 +9,83 @@ reloc0:
.offsetof start .offsetof start
start: start:
.include WriteCodeBlocksGC .include WriteCodeBlocksGC
# region @ 8000BAB4 (156 bytes)
.data 0x8000BAB4 # address .data 0x8000BAB4
.data 0x0000009C # size .deltaof hook1, hooks_end
.data 0x281B0002 # 8000BAB4 => cmplwi r27, 2 .address 0x8000BAB4
.data 0x40820018 # 8000BAB8 => bne +0x00000018 /* 8000BAD0 */
.data 0x3C008000 # 8000BABC => lis r0, 0x8000 hook1:
.data 0x6000BAD8 # 8000BAC0 => ori r0, r0, 0xBAD8 cmplwi r27, 2
.data 0x90030004 # 8000BAC4 => stw [r3 + 0x0004], r0 bne hook1_skip
.data 0x38000000 # 8000BAC8 => li r0, 0x0000 lis r0, 0x8000
.data 0x90030008 # 8000BACC => stw [r3 + 0x0008], r0 ori r0, r0, 0xBAD8
.data 0x807F0040 # 8000BAD0 => lwz r3, [r31 + 0x0040] stw [r3 + 0x0004], r0
.data 0x4E800020 # 8000BAD4 => blr li r0, 0x0000
.data 0x434F4D4D # 8000BAD8 => bdzl cr3, +0x00004D4C /* 80010824 */ stw [r3 + 0x0008], r0
.data 0x4F4E2042 # 8000BADC => crnor crb26, crb14, crb4 hook1_skip:
.data 0x414E4B00 # 8000BAE0 => bc 10, 14, +0x00004B00 /* 800105E0 */ lwz r3, [r31 + 0x0040]
.data 0x800D8EB8 # 8000BAE4 => lwz r0, [r13 - 0x7148] blr
.data 0x28000001 # 8000BAE8 => cmplwi r0, 1 .binary 434F4D4D4F4E2042414E4B00
.data 0x40820040 # 8000BAEC => bne +0x00000040 /* 8000BB2C */
.data 0x3C808051 # 8000BAF0 => lis r4, 0x8051 hook2:
.data 0xA08493B0 # 8000BAF4 => lhz r4, [r4 - 0x6C50] lwz r0, [r13 - 0x7148]
.data 0x70800002 # 8000BAF8 => andi. r0, r4, 0x0002 cmplwi r0, 1
.data 0x41820028 # 8000BAFC => beq +0x00000028 /* 8000BB24 */ bne hook2_skip
.data 0x800DB954 # 8000BB00 => lwz r0, [r13 - 0x46AC] lis r4, 0x8051
.data 0x28000006 # 8000BB04 => cmplwi r0, 6 lhz r4, [r4 - 0x6C50]
.data 0x4182001C # 8000BB08 => beq +0x0000001C /* 8000BB24 */ andi. r0, r4, 0x0002
.data 0x806DB938 # 8000BB0C => lwz r3, [r13 - 0x46C8] beq hook2_default_bank
.data 0x28030000 # 8000BB10 => cmplwi r3, 0 lwz r0, [r13 - 0x46AC]
.data 0x41820010 # 8000BB14 => beq +0x00000010 /* 8000BB24 */ cmplwi r0, 6
.data 0x38000000 # 8000BB18 => li r0, 0x0000 beq hook2_default_bank
.data 0x6000F1B0 # 8000BB1C => ori r0, r0, 0xF1B0 lwz r3, [r13 - 0x46C8]
.data 0x7C630214 # 8000BB20 => add r3, r3, r0 cmplwi r3, 0
.data 0x3C808001 # 8000BB24 => lis r4, 0x8001 beq hook2_default_bank
.data 0x9064C32C # 8000BB28 => stw [r4 - 0x3CD4], r3 li r0, 0x0000
.data 0x28030000 # 8000BB2C => cmplwi r3, 0 ori r0, r0, 0xF1B0
.data 0x482047B4 # 8000BB30 => b +0x002047B4 /* 802102E4 */ add r3, r3, r0
.data 0x800D8EB8 # 8000BB34 => lwz r0, [r13 - 0x7148] hook2_default_bank:
.data 0x28000001 # 8000BB38 => cmplwi r0, 1 lis r4, 0x8001
.data 0x4082000C # 8000BB3C => bne +0x0000000C /* 8000BB48 */ stw [r4 - 0x3CD4], r3
.data 0x3C608001 # 8000BB40 => lis r3, 0x8001 hook2_skip:
.data 0x8063C32C # 8000BB44 => lwz r3, [r3 - 0x3CD4] cmplwi r3, 0
.data 0x7C681B79 # 8000BB48 => mr. r8, r3 blr
.data 0x48204724 # 8000BB4C => b +0x00204724 /* 80210270 */
# region @ 8021026C (4 bytes) hook3:
.data 0x8021026C # address lwz r0, [r13 - 0x7148]
.data 0x00000004 # size cmplwi r0, 1
.data 0x4BDFB8C8 # 8021026C => b -0x00204738 /* 8000BB34 */ bne hook3_skip
# region @ 802102E0 (4 bytes) lis r3, 0x8001
.data 0x802102E0 # address lwz r3, [r3 - 0x3CD4]
.data 0x00000004 # size hook3_skip:
.data 0x4BDFB804 # 802102E0 => b -0x002047FC /* 8000BAE4 */ mr. r8, r3
# region @ 8030B414 (4 bytes) blr
.data 0x8030B414 # address hooks_end:
.data 0x00000004 # size
.data 0x4BD006A1 # 8030B414 => bl -0x002FF960 /* 8000BAB4 */ .data 0x8021026C
# region @ 8030B46C (4 bytes) .data 0x00000004
.data 0x8030B46C # address .address 0x8021026C
.data 0x00000004 # size bl hook3
.data 0x4BD00649 # 8030B46C => bl -0x002FF9B8 /* 8000BAB4 */
# region @ 8046DC5C (4 bytes) .data 0x802102E0
.data 0x8046DC5C # address .data 0x00000004
.data 0x00000004 # size .address 0x802102E0
.data 0xFFFFFFFF # 8046DC5C => fnmadd. f31, f31, f31, f31 bl hook2
# end sentinel
.data 0x00000000 # address .data 0x8030B414
.data 0x00000000 # size .data 0x00000004
.address 0x8030B414
bl hook1
.data 0x8030B46C
.data 0x00000004
.address 0x8030B46C
bl hook1
.data 0x8046DC5C
.data 0x00000004
.address 0x8046DC5C
.data 0xFFFFFFFF
.data 0x00000000
.data 0x00000000
@@ -1,6 +1,6 @@
.meta name="Common bank" .meta name="Common bank"
.meta description="Hold L and open\nthe bank to use a\ncommon bank stored\nin temp character\n3's data" .meta description="Hold L and open\nthe bank to use a\ncommon bank stored\nin temp character\n3's data"
# Original code by Ralf @ GC-Forever and Aleron Ives # Original code by Ralf @ GC-Forever ("Common Bank (Hold L And Open Bank)")
# https://www.gc-forever.com/forums/viewtopic.php?t=2050 # https://www.gc-forever.com/forums/viewtopic.php?t=2050
# https://www.gc-forever.com/forums/viewtopic.php?t=2049 # https://www.gc-forever.com/forums/viewtopic.php?t=2049
@@ -9,68 +9,83 @@ reloc0:
.offsetof start .offsetof start
start: start:
.include WriteCodeBlocksGC .include WriteCodeBlocksGC
# region @ 8000BAB4 (156 bytes)
.data 0x8000BAB4 # address .data 0x8000BAB4
.data 0x0000009C # size .deltaof hook1, hooks_end
.data 0x281B0002 # 8000BAB4 => cmplwi r27, 2 .address 0x8000BAB4
.data 0x40820018 # 8000BAB8 => bne +0x00000018 /* 8000BAD0 */
.data 0x3C008000 # 8000BABC => lis r0, 0x8000 hook1:
.data 0x6000BAD8 # 8000BAC0 => ori r0, r0, 0xBAD8 cmplwi r27, 2
.data 0x90030004 # 8000BAC4 => stw [r3 + 0x0004], r0 bne hook1_skip
.data 0x38000000 # 8000BAC8 => li r0, 0x0000 lis r0, 0x8000
.data 0x90030008 # 8000BACC => stw [r3 + 0x0008], r0 ori r0, r0, 0xBAD8
.data 0x807F0040 # 8000BAD0 => lwz r3, [r31 + 0x0040] stw [r3 + 0x0004], r0
.data 0x4E800020 # 8000BAD4 => blr li r0, 0x0000
.data 0x434F4D4D # 8000BAD8 => bdzl cr3, +0x00004D4C /* 80010824 */ stw [r3 + 0x0008], r0
.data 0x4F4E2042 # 8000BADC => crnor crb26, crb14, crb4 hook1_skip:
.data 0x414E4B00 # 8000BAE0 => bc 10, 14, +0x00004B00 /* 800105E0 */ lwz r3, [r31 + 0x0040]
.data 0x800D8EB8 # 8000BAE4 => lwz r0, [r13 - 0x7148] blr
.data 0x28000001 # 8000BAE8 => cmplwi r0, 1 .binary 434F4D4D4F4E2042414E4B00
.data 0x40820040 # 8000BAEC => bne +0x00000040 /* 8000BB2C */
.data 0x3C808051 # 8000BAF0 => lis r4, 0x8051 hook2:
.data 0xA0849890 # 8000BAF4 => lhz r4, [r4 - 0x6770] lwz r0, [r13 - 0x7148]
.data 0x70800002 # 8000BAF8 => andi. r0, r4, 0x0002 cmplwi r0, 1
.data 0x41820028 # 8000BAFC => beq +0x00000028 /* 8000BB24 */ bne hook2_skip
.data 0x800DB954 # 8000BB00 => lwz r0, [r13 - 0x46AC] lis r4, 0x8051
.data 0x28000006 # 8000BB04 => cmplwi r0, 6 lhz r4, [r4 - 0x6770]
.data 0x4182001C # 8000BB08 => beq +0x0000001C /* 8000BB24 */ andi. r0, r4, 0x0002
.data 0x806DB938 # 8000BB0C => lwz r3, [r13 - 0x46C8] beq hook2_default_bank
.data 0x28030000 # 8000BB10 => cmplwi r3, 0 lwz r0, [r13 - 0x46AC]
.data 0x41820010 # 8000BB14 => beq +0x00000010 /* 8000BB24 */ cmplwi r0, 6
.data 0x38000000 # 8000BB18 => li r0, 0x0000 beq hook2_default_bank
.data 0x6000F1B0 # 8000BB1C => ori r0, r0, 0xF1B0 lwz r3, [r13 - 0x46C8]
.data 0x7C630214 # 8000BB20 => add r3, r3, r0 cmplwi r3, 0
.data 0x3C808001 # 8000BB24 => lis r4, 0x8001 beq hook2_default_bank
.data 0x9064C32C # 8000BB28 => stw [r4 - 0x3CD4], r3 li r0, 0x0000
.data 0x28030000 # 8000BB2C => cmplwi r3, 0 ori r0, r0, 0xF1B0
.data 0x482047B4 # 8000BB30 => b +0x002047B4 /* 802102E4 */ add r3, r3, r0
.data 0x800D8EB8 # 8000BB34 => lwz r0, [r13 - 0x7148] hook2_default_bank:
.data 0x28000001 # 8000BB38 => cmplwi r0, 1 lis r4, 0x8001
.data 0x4082000C # 8000BB3C => bne +0x0000000C /* 8000BB48 */ stw [r4 - 0x3CD4], r3
.data 0x3C608001 # 8000BB40 => lis r3, 0x8001 hook2_skip:
.data 0x8063C32C # 8000BB44 => lwz r3, [r3 - 0x3CD4] cmplwi r3, 0
.data 0x7C681B79 # 8000BB48 => mr. r8, r3 blr
.data 0x48204724 # 8000BB4C => b +0x00204724 /* 80210270 */
# region @ 8021026C (4 bytes) hook3:
.data 0x8021026C # address lwz r0, [r13 - 0x7148]
.data 0x00000004 # size cmplwi r0, 1
.data 0x4BDFB8C8 # 8021026C => b -0x00204738 /* 8000BB34 */ bne hook3_skip
# region @ 802102E0 (4 bytes) lis r3, 0x8001
.data 0x802102E0 # address lwz r3, [r3 - 0x3CD4]
.data 0x00000004 # size hook3_skip:
.data 0x4BDFB804 # 802102E0 => b -0x002047FC /* 8000BAE4 */ mr. r8, r3
# region @ 8030B458 (4 bytes) blr
.data 0x8030B458 # address hooks_end:
.data 0x00000004 # size
.data 0x4BD0065D # 8030B458 => bl -0x002FF9A4 /* 8000BAB4 */ .data 0x8021026C
# region @ 8030B4B0 (4 bytes) .data 0x00000004
.data 0x8030B4B0 # address .address 0x8021026C
.data 0x00000004 # size bl hook3
.data 0x4BD00605 # 8030B4B0 => bl -0x002FF9FC /* 8000BAB4 */
# region @ 8046E0DC (4 bytes) .data 0x802102E0
.data 0x8046E0DC # address .data 0x00000004
.data 0x00000004 # size .address 0x802102E0
.data 0xFFFFFFFF # 8046E0DC => fnmadd. f31, f31, f31, f31 bl hook2
# end sentinel
.data 0x00000000 # address .data 0x8030B458
.data 0x00000000 # size .data 0x00000004
.address 0x8030B458
bl hook1
.data 0x8030B4B0
.data 0x00000004
.address 0x8030B4B0
bl hook1
.data 0x8046E0DC
.data 0x00000004
.address 0x8046E0DC
.data 0xFFFFFFFF
.data 0x00000000
.data 0x00000000
@@ -1,6 +1,6 @@
.meta name="Common bank" .meta name="Common bank"
.meta description="Hold L and open\nthe bank to use a\ncommon bank stored\nin temp character\n3's data" .meta description="Hold L and open\nthe bank to use a\ncommon bank stored\nin temp character\n3's data"
# Original code by Ralf @ GC-Forever and Aleron Ives # Original code by Ralf @ GC-Forever ("Common Bank (Hold L And Open Bank)")
# https://www.gc-forever.com/forums/viewtopic.php?t=2050 # https://www.gc-forever.com/forums/viewtopic.php?t=2050
# https://www.gc-forever.com/forums/viewtopic.php?t=2049 # https://www.gc-forever.com/forums/viewtopic.php?t=2049
@@ -9,68 +9,83 @@ reloc0:
.offsetof start .offsetof start
start: start:
.include WriteCodeBlocksGC .include WriteCodeBlocksGC
# region @ 8000BAB4 (156 bytes)
.data 0x8000BAB4 # address .data 0x8000BAB4
.data 0x0000009C # size .deltaof hook1, hooks_end
.data 0x281B0002 # 8000BAB4 => cmplwi r27, 2 .address 0x8000BAB4
.data 0x40820018 # 8000BAB8 => bne +0x00000018 /* 8000BAD0 */
.data 0x3C008000 # 8000BABC => lis r0, 0x8000 hook1:
.data 0x6000BAD8 # 8000BAC0 => ori r0, r0, 0xBAD8 cmplwi r27, 2
.data 0x90030004 # 8000BAC4 => stw [r3 + 0x0004], r0 bne hook1_skip
.data 0x38000000 # 8000BAC8 => li r0, 0x0000 lis r0, 0x8000
.data 0x90030008 # 8000BACC => stw [r3 + 0x0008], r0 ori r0, r0, 0xBAD8
.data 0x807F0040 # 8000BAD0 => lwz r3, [r31 + 0x0040] stw [r3 + 0x0004], r0
.data 0x4E800020 # 8000BAD4 => blr li r0, 0x0000
.data 0x434F4D4D # 8000BAD8 => bdzl cr3, +0x00004D4C /* 80010824 */ stw [r3 + 0x0008], r0
.data 0x4F4E2042 # 8000BADC => crnor crb26, crb14, crb4 hook1_skip:
.data 0x414E4B00 # 8000BAE0 => bc 10, 14, +0x00004B00 /* 800105E0 */ lwz r3, [r31 + 0x0040]
.data 0x800D8EB8 # 8000BAE4 => lwz r0, [r13 - 0x7148] blr
.data 0x28000001 # 8000BAE8 => cmplwi r0, 1 .binary 434F4D4D4F4E2042414E4B00
.data 0x40820040 # 8000BAEC => bne +0x00000040 /* 8000BB2C */
.data 0x3C808051 # 8000BAF0 => lis r4, 0x8051 hook2:
.data 0xA084E270 # 8000BAF4 => lhz r4, [r4 - 0x1D90] lwz r0, [r13 - 0x7148]
.data 0x70800002 # 8000BAF8 => andi. r0, r4, 0x0002 cmplwi r0, 1
.data 0x41820028 # 8000BAFC => beq +0x00000028 /* 8000BB24 */ bne hook2_skip
.data 0x800DB974 # 8000BB00 => lwz r0, [r13 - 0x468C] lis r4, 0x8051
.data 0x28000006 # 8000BB04 => cmplwi r0, 6 lhz r4, [r4 - 0x1D90]
.data 0x4182001C # 8000BB08 => beq +0x0000001C /* 8000BB24 */ andi. r0, r4, 0x0002
.data 0x806DB958 # 8000BB0C => lwz r3, [r13 - 0x46A8] beq hook2_default_bank
.data 0x28030000 # 8000BB10 => cmplwi r3, 0 lwz r0, [r13 - 0x468C]
.data 0x41820010 # 8000BB14 => beq +0x00000010 /* 8000BB24 */ cmplwi r0, 6
.data 0x38000000 # 8000BB18 => li r0, 0x0000 beq hook2_default_bank
.data 0x6000F1B0 # 8000BB1C => ori r0, r0, 0xF1B0 lwz r3, [r13 - 0x46A8]
.data 0x7C630214 # 8000BB20 => add r3, r3, r0 cmplwi r3, 0
.data 0x3C808001 # 8000BB24 => lis r4, 0x8001 beq hook2_default_bank
.data 0x9064C32C # 8000BB28 => stw [r4 - 0x3CD4], r3 li r0, 0x0000
.data 0x28030000 # 8000BB2C => cmplwi r3, 0 ori r0, r0, 0xF1B0
.data 0x48205704 # 8000BB30 => b +0x00205704 /* 80211234 */ add r3, r3, r0
.data 0x800D8EB8 # 8000BB34 => lwz r0, [r13 - 0x7148] hook2_default_bank:
.data 0x28000001 # 8000BB38 => cmplwi r0, 1 lis r4, 0x8001
.data 0x4082000C # 8000BB3C => bne +0x0000000C /* 8000BB48 */ stw [r4 - 0x3CD4], r3
.data 0x3C608001 # 8000BB40 => lis r3, 0x8001 hook2_skip:
.data 0x8063C32C # 8000BB44 => lwz r3, [r3 - 0x3CD4] cmplwi r3, 0
.data 0x7C681B79 # 8000BB48 => mr. r8, r3 blr
.data 0x48205674 # 8000BB4C => b +0x00205674 /* 802111C0 */
# region @ 802111BC (4 bytes) hook3:
.data 0x802111BC # address lwz r0, [r13 - 0x7148]
.data 0x00000004 # size cmplwi r0, 1
.data 0x4BDFA978 # 802111BC => b -0x00205688 /* 8000BB34 */ bne hook3_skip
# region @ 80211230 (4 bytes) lis r3, 0x8001
.data 0x80211230 # address lwz r3, [r3 - 0x3CD4]
.data 0x00000004 # size hook3_skip:
.data 0x4BDFA8B4 # 80211230 => b -0x0020574C /* 8000BAE4 */ mr. r8, r3
# region @ 8030CE60 (4 bytes) blr
.data 0x8030CE60 # address hooks_end:
.data 0x00000004 # size
.data 0x4BCFEC55 # 8030CE60 => bl -0x003013AC /* 8000BAB4 */ .data 0x802111BC
# region @ 8030CEB8 (4 bytes) .data 0x00000004
.data 0x8030CEB8 # address .address 0x802111BC
.data 0x00000004 # size bl hook3
.data 0x4BCFEBFD # 8030CEB8 => bl -0x00301404 /* 8000BAB4 */
# region @ 80471ACC (4 bytes) .data 0x80211230
.data 0x80471ACC # address .data 0x00000004
.data 0x00000004 # size .address 0x80211230
.data 0xFFFFFFFF # 80471ACC => fnmadd. f31, f31, f31, f31 bl hook2
# end sentinel
.data 0x00000000 # address .data 0x8030CE60
.data 0x00000000 # size .data 0x00000004
.address 0x8030CE60
bl hook1
.data 0x8030CEB8
.data 0x00000004
.address 0x8030CEB8
bl hook1
.data 0x80471ACC
.data 0x00000004
.address 0x80471ACC
.data 0xFFFFFFFF
.data 0x00000000
.data 0x00000000
@@ -1,6 +1,6 @@
.meta name="Common bank" .meta name="Common bank"
.meta description="Hold L and open\nthe bank to use a\ncommon bank stored\nin temp character\n3's data" .meta description="Hold L and open\nthe bank to use a\ncommon bank stored\nin temp character\n3's data"
# Original code by Ralf @ GC-Forever and Aleron Ives # Original code by Ralf @ GC-Forever ("Common Bank (Hold L And Open Bank)")
# https://www.gc-forever.com/forums/viewtopic.php?t=2050 # https://www.gc-forever.com/forums/viewtopic.php?t=2050
# https://www.gc-forever.com/forums/viewtopic.php?t=2049 # https://www.gc-forever.com/forums/viewtopic.php?t=2049
@@ -9,68 +9,83 @@ reloc0:
.offsetof start .offsetof start
start: start:
.include WriteCodeBlocksGC .include WriteCodeBlocksGC
# region @ 8000BAB4 (156 bytes)
.data 0x8000BAB4 # address .data 0x8000BAB4
.data 0x0000009C # size .deltaof hook1, hooks_end
.data 0x281B0002 # 8000BAB4 => cmplwi r27, 2 .address 0x8000BAB4
.data 0x40820018 # 8000BAB8 => bne +0x00000018 /* 8000BAD0 */
.data 0x3C008000 # 8000BABC => lis r0, 0x8000 hook1:
.data 0x6000BAD8 # 8000BAC0 => ori r0, r0, 0xBAD8 cmplwi r27, 2
.data 0x90030004 # 8000BAC4 => stw [r3 + 0x0004], r0 bne hook1_skip
.data 0x38000000 # 8000BAC8 => li r0, 0x0000 lis r0, 0x8000
.data 0x90030008 # 8000BACC => stw [r3 + 0x0008], r0 ori r0, r0, 0xBAD8
.data 0x807F0040 # 8000BAD0 => lwz r3, [r31 + 0x0040] stw [r3 + 0x0004], r0
.data 0x4E800020 # 8000BAD4 => blr li r0, 0x0000
.data 0x434F4D4D # 8000BAD8 => bdzl cr3, +0x00004D4C /* 80010824 */ stw [r3 + 0x0008], r0
.data 0x4F4E2042 # 8000BADC => crnor crb26, crb14, crb4 hook1_skip:
.data 0x414E4B00 # 8000BAE0 => bc 10, 14, +0x00004B00 /* 800105E0 */ lwz r3, [r31 + 0x0040]
.data 0x800D8EB0 # 8000BAE4 => lwz r0, [r13 - 0x7150] blr
.data 0x28000001 # 8000BAE8 => cmplwi r0, 1 .binary 434F4D4D4F4E2042414E4B00
.data 0x40820040 # 8000BAEC => bne +0x00000040 /* 8000BB2C */
.data 0x3C808051 # 8000BAF0 => lis r4, 0x8051 hook2:
.data 0xA0848AD0 # 8000BAF4 => lhz r4, [r4 - 0x7530] lwz r0, [r13 - 0x7150]
.data 0x70800002 # 8000BAF8 => andi. r0, r4, 0x0002 cmplwi r0, 1
.data 0x41820028 # 8000BAFC => beq +0x00000028 /* 8000BB24 */ bne hook2_skip
.data 0x800DB93C # 8000BB00 => lwz r0, [r13 - 0x46C4] lis r4, 0x8051
.data 0x28000006 # 8000BB04 => cmplwi r0, 6 lhz r4, [r4 - 0x7530]
.data 0x4182001C # 8000BB08 => beq +0x0000001C /* 8000BB24 */ andi. r0, r4, 0x0002
.data 0x806DB920 # 8000BB0C => lwz r3, [r13 - 0x46E0] beq hook2_default_bank
.data 0x28030000 # 8000BB10 => cmplwi r3, 0 lwz r0, [r13 - 0x46C4]
.data 0x41820010 # 8000BB14 => beq +0x00000010 /* 8000BB24 */ cmplwi r0, 6
.data 0x38000000 # 8000BB18 => li r0, 0x0000 beq hook2_default_bank
.data 0x6000F1B0 # 8000BB1C => ori r0, r0, 0xF1B0 lwz r3, [r13 - 0x46E0]
.data 0x7C630214 # 8000BB20 => add r3, r3, r0 cmplwi r3, 0
.data 0x3C808001 # 8000BB24 => lis r4, 0x8001 beq hook2_default_bank
.data 0x9064C32C # 8000BB28 => stw [r4 - 0x3CD4], r3 li r0, 0x0000
.data 0x28030000 # 8000BB2C => cmplwi r3, 0 ori r0, r0, 0xF1B0
.data 0x48203FB8 # 8000BB30 => b +0x00203FB8 /* 8020FAE8 */ add r3, r3, r0
.data 0x800D8EB0 # 8000BB34 => lwz r0, [r13 - 0x7150] hook2_default_bank:
.data 0x28000001 # 8000BB38 => cmplwi r0, 1 lis r4, 0x8001
.data 0x4082000C # 8000BB3C => bne +0x0000000C /* 8000BB48 */ stw [r4 - 0x3CD4], r3
.data 0x3C608001 # 8000BB40 => lis r3, 0x8001 hook2_skip:
.data 0x8063C32C # 8000BB44 => lwz r3, [r3 - 0x3CD4] cmplwi r3, 0
.data 0x7C681B79 # 8000BB48 => mr. r8, r3 blr
.data 0x48203EB0 # 8000BB4C => b +0x00203EB0 /* 8020F9FC */
# region @ 8020F9F8 (4 bytes) hook3:
.data 0x8020F9F8 # address lwz r0, [r13 - 0x7150]
.data 0x00000004 # size cmplwi r0, 1
.data 0x4BDFC13C # 8020F9F8 => b -0x00203EC4 /* 8000BB34 */ bne hook3_skip
# region @ 8020FAE4 (4 bytes) lis r3, 0x8001
.data 0x8020FAE4 # address lwz r3, [r3 - 0x3CD4]
.data 0x00000004 # size hook3_skip:
.data 0x4BDFC000 # 8020FAE4 => b -0x00204000 /* 8000BAE4 */ mr. r8, r3
# region @ 8030AA54 (4 bytes) blr
.data 0x8030AA54 # address hooks_end:
.data 0x00000004 # size
.data 0x4BD01061 # 8030AA54 => bl -0x002FEFA0 /* 8000BAB4 */ .data 0x8020F9F8
# region @ 8030AAAC (4 bytes) .data 0x00000004
.data 0x8030AAAC # address .address 0x8020F9F8
.data 0x00000004 # size bl hook3
.data 0x4BD01009 # 8030AAAC => bl -0x002FEFF8 /* 8000BAB4 */
# region @ 8046CECC (4 bytes) .data 0x8020FAE4
.data 0x8046CECC # address .data 0x00000004
.data 0x00000004 # size .address 0x8020FAE4
.data 0xFFFFFFFF # 8046CECC => fnmadd. f31, f31, f31, f31 bl hook2
# end sentinel
.data 0x00000000 # address .data 0x8030AA54
.data 0x00000000 # size .data 0x00000004
.address 0x8030AA54
bl hook1
.data 0x8030AAAC
.data 0x00000004
.address 0x8030AAAC
bl hook1
.data 0x8046CECC
.data 0x00000004
.address 0x8046CECC
.data 0xFFFFFFFF
.data 0x00000000
.data 0x00000000
@@ -1,6 +1,6 @@
.meta name="Common bank" .meta name="Common bank"
.meta description="Hold L and open\nthe bank to use a\ncommon bank stored\nin temp character\n3's data" .meta description="Hold L and open\nthe bank to use a\ncommon bank stored\nin temp character\n3's data"
# Original code by Ralf @ GC-Forever and Aleron Ives # Original code by Ralf @ GC-Forever ("Common Bank (Hold L And Open Bank)")
# https://www.gc-forever.com/forums/viewtopic.php?t=2050 # https://www.gc-forever.com/forums/viewtopic.php?t=2050
# https://www.gc-forever.com/forums/viewtopic.php?t=2049 # https://www.gc-forever.com/forums/viewtopic.php?t=2049
@@ -9,68 +9,83 @@ reloc0:
.offsetof start .offsetof start
start: start:
.include WriteCodeBlocksGC .include WriteCodeBlocksGC
# region @ 8000BAB4 (156 bytes)
.data 0x8000BAB4 # address .data 0x8000BAB4
.data 0x0000009C # size .deltaof hook1, hooks_end
.data 0x281B0002 # 8000BAB4 => cmplwi r27, 2 .address 0x8000BAB4
.data 0x40820018 # 8000BAB8 => bne +0x00000018 /* 8000BAD0 */
.data 0x3C008000 # 8000BABC => lis r0, 0x8000 hook1:
.data 0x6000BAD8 # 8000BAC0 => ori r0, r0, 0xBAD8 cmplwi r27, 2
.data 0x90030004 # 8000BAC4 => stw [r3 + 0x0004], r0 bne hook1_skip
.data 0x38000000 # 8000BAC8 => li r0, 0x0000 lis r0, 0x8000
.data 0x90030008 # 8000BACC => stw [r3 + 0x0008], r0 ori r0, r0, 0xBAD8
.data 0x807F0040 # 8000BAD0 => lwz r3, [r31 + 0x0040] stw [r3 + 0x0004], r0
.data 0x4E800020 # 8000BAD4 => blr li r0, 0x0000
.data 0x434F4D4D # 8000BAD8 => bdzl cr3, +0x00004D4C /* 80010824 */ stw [r3 + 0x0008], r0
.data 0x4F4E2042 # 8000BADC => crnor crb26, crb14, crb4 hook1_skip:
.data 0x414E4B00 # 8000BAE0 => bc 10, 14, +0x00004B00 /* 800105E0 */ lwz r3, [r31 + 0x0040]
.data 0x800D8EB0 # 8000BAE4 => lwz r0, [r13 - 0x7150] blr
.data 0x28000001 # 8000BAE8 => cmplwi r0, 1 .binary 434F4D4D4F4E2042414E4B00
.data 0x40820040 # 8000BAEC => bne +0x00000040 /* 8000BB2C */
.data 0x3C808051 # 8000BAF0 => lis r4, 0x8051 hook2:
.data 0xA084C590 # 8000BAF4 => lhz r4, [r4 - 0x3A70] lwz r0, [r13 - 0x7150]
.data 0x70800002 # 8000BAF8 => andi. r0, r4, 0x0002 cmplwi r0, 1
.data 0x41820028 # 8000BAFC => beq +0x00000028 /* 8000BB24 */ bne hook2_skip
.data 0x800DB944 # 8000BB00 => lwz r0, [r13 - 0x46BC] lis r4, 0x8051
.data 0x28000006 # 8000BB04 => cmplwi r0, 6 lhz r4, [r4 - 0x3A70]
.data 0x4182001C # 8000BB08 => beq +0x0000001C /* 8000BB24 */ andi. r0, r4, 0x0002
.data 0x806DB928 # 8000BB0C => lwz r3, [r13 - 0x46D8] beq hook2_default_bank
.data 0x28030000 # 8000BB10 => cmplwi r3, 0 lwz r0, [r13 - 0x46BC]
.data 0x41820010 # 8000BB14 => beq +0x00000010 /* 8000BB24 */ cmplwi r0, 6
.data 0x38000000 # 8000BB18 => li r0, 0x0000 beq hook2_default_bank
.data 0x6000F1B0 # 8000BB1C => ori r0, r0, 0xF1B0 lwz r3, [r13 - 0x46D8]
.data 0x7C630214 # 8000BB20 => add r3, r3, r0 cmplwi r3, 0
.data 0x3C808001 # 8000BB24 => lis r4, 0x8001 beq hook2_default_bank
.data 0x9064C32C # 8000BB28 => stw [r4 - 0x3CD4], r3 li r0, 0x0000
.data 0x28030000 # 8000BB2C => cmplwi r3, 0 ori r0, r0, 0xF1B0
.data 0x48204894 # 8000BB30 => b +0x00204894 /* 802103C4 */ add r3, r3, r0
.data 0x800D8EB0 # 8000BB34 => lwz r0, [r13 - 0x7150] hook2_default_bank:
.data 0x28000001 # 8000BB38 => cmplwi r0, 1 lis r4, 0x8001
.data 0x4082000C # 8000BB3C => bne +0x0000000C /* 8000BB48 */ stw [r4 - 0x3CD4], r3
.data 0x3C608001 # 8000BB40 => lis r3, 0x8001 hook2_skip:
.data 0x8063C32C # 8000BB44 => lwz r3, [r3 - 0x3CD4] cmplwi r3, 0
.data 0x7C681B79 # 8000BB48 => mr. r8, r3 blr
.data 0x48204804 # 8000BB4C => b +0x00204804 /* 80210350 */
# region @ 8021034C (4 bytes) hook3:
.data 0x8021034C # address lwz r0, [r13 - 0x7150]
.data 0x00000004 # size cmplwi r0, 1
.data 0x4BDFB7E8 # 8021034C => b -0x00204818 /* 8000BB34 */ bne hook3_skip
# region @ 802103C0 (4 bytes) lis r3, 0x8001
.data 0x802103C0 # address lwz r3, [r3 - 0x3CD4]
.data 0x00000004 # size hook3_skip:
.data 0x4BDFB724 # 802103C0 => b -0x002048DC /* 8000BAE4 */ mr. r8, r3
# region @ 8030BAA4 (4 bytes) blr
.data 0x8030BAA4 # address hooks_end:
.data 0x00000004 # size
.data 0x4BD00011 # 8030BAA4 => bl -0x002FFFF0 /* 8000BAB4 */ .data 0x8021034C
# region @ 8030BAFC (4 bytes) .data 0x00000004
.data 0x8030BAFC # address .address 0x8021034C
.data 0x00000004 # size bl hook3
.data 0x4BCFFFB9 # 8030BAFC => bl -0x00300048 /* 8000BAB4 */
# region @ 8046FCEC (4 bytes) .data 0x802103C0
.data 0x8046FCEC # address .data 0x00000004
.data 0x00000004 # size .address 0x802103C0
.data 0xFFFFFFFF # 8046FCEC => fnmadd. f31, f31, f31, f31 bl hook2
# end sentinel
.data 0x00000000 # address .data 0x8030BAA4
.data 0x00000000 # size .data 0x00000004
.address 0x8030BAA4
bl hook1
.data 0x8030BAFC
.data 0x00000004
.address 0x8030BAFC
bl hook1
.data 0x8046FCEC
.data 0x00000004
.address 0x8046FCEC
.data 0xFFFFFFFF
.data 0x00000000
.data 0x00000000
@@ -1,6 +1,6 @@
.meta name="Common bank" .meta name="Common bank"
.meta description="Hold L and open\nthe bank to use a\ncommon bank stored\nin temp character\n3's data" .meta description="Hold L and open\nthe bank to use a\ncommon bank stored\nin temp character\n3's data"
# Original code by Ralf @ GC-Forever and Aleron Ives # Original code by Ralf @ GC-Forever ("Common Bank (Hold L And Open Bank)")
# https://www.gc-forever.com/forums/viewtopic.php?t=2050 # https://www.gc-forever.com/forums/viewtopic.php?t=2050
# https://www.gc-forever.com/forums/viewtopic.php?t=2049 # https://www.gc-forever.com/forums/viewtopic.php?t=2049
@@ -9,68 +9,83 @@ reloc0:
.offsetof start .offsetof start
start: start:
.include WriteCodeBlocksGC .include WriteCodeBlocksGC
# region @ 8000BAB4 (156 bytes)
.data 0x8000BAB4 # address .data 0x8000BAB4
.data 0x0000009C # size .deltaof hook1, hooks_end
.data 0x281B0002 # 8000BAB4 => cmplwi r27, 2 .address 0x8000BAB4
.data 0x40820018 # 8000BAB8 => bne +0x00000018 /* 8000BAD0 */
.data 0x3C008000 # 8000BABC => lis r0, 0x8000 hook1:
.data 0x6000BAD8 # 8000BAC0 => ori r0, r0, 0xBAD8 cmplwi r27, 2
.data 0x90030004 # 8000BAC4 => stw [r3 + 0x0004], r0 bne hook1_skip
.data 0x38000000 # 8000BAC8 => li r0, 0x0000 lis r0, 0x8000
.data 0x90030008 # 8000BACC => stw [r3 + 0x0008], r0 ori r0, r0, 0xBAD8
.data 0x807F0040 # 8000BAD0 => lwz r3, [r31 + 0x0040] stw [r3 + 0x0004], r0
.data 0x4E800020 # 8000BAD4 => blr li r0, 0x0000
.data 0x434F4D4D # 8000BAD8 => bdzl cr3, +0x00004D4C /* 80010824 */ stw [r3 + 0x0008], r0
.data 0x4F4E2042 # 8000BADC => crnor crb26, crb14, crb4 hook1_skip:
.data 0x414E4B00 # 8000BAE0 => bc 10, 14, +0x00004B00 /* 800105E0 */ lwz r3, [r31 + 0x0040]
.data 0x800D8EB0 # 8000BAE4 => lwz r0, [r13 - 0x7150] blr
.data 0x28000001 # 8000BAE8 => cmplwi r0, 1 .binary 434F4D4D4F4E2042414E4B00
.data 0x40820040 # 8000BAEC => bne +0x00000040 /* 8000BB2C */
.data 0x3C808051 # 8000BAF0 => lis r4, 0x8051 hook2:
.data 0xA084EBD0 # 8000BAF4 => lhz r4, [r4 - 0x1430] lwz r0, [r13 - 0x7150]
.data 0x70800002 # 8000BAF8 => andi. r0, r4, 0x0002 cmplwi r0, 1
.data 0x41820028 # 8000BAFC => beq +0x00000028 /* 8000BB24 */ bne hook2_skip
.data 0x800DB964 # 8000BB00 => lwz r0, [r13 - 0x469C] lis r4, 0x8051
.data 0x28000006 # 8000BB04 => cmplwi r0, 6 lhz r4, [r4 - 0x1430]
.data 0x4182001C # 8000BB08 => beq +0x0000001C /* 8000BB24 */ andi. r0, r4, 0x0002
.data 0x806DB948 # 8000BB0C => lwz r3, [r13 - 0x46B8] beq hook2_default_bank
.data 0x28030000 # 8000BB10 => cmplwi r3, 0 lwz r0, [r13 - 0x469C]
.data 0x41820010 # 8000BB14 => beq +0x00000010 /* 8000BB24 */ cmplwi r0, 6
.data 0x38000000 # 8000BB18 => li r0, 0x0000 beq hook2_default_bank
.data 0x6000F1B0 # 8000BB1C => ori r0, r0, 0xF1B0 lwz r3, [r13 - 0x46B8]
.data 0x7C630214 # 8000BB20 => add r3, r3, r0 cmplwi r3, 0
.data 0x3C808001 # 8000BB24 => lis r4, 0x8001 beq hook2_default_bank
.data 0x9064C32C # 8000BB28 => stw [r4 - 0x3CD4], r3 li r0, 0x0000
.data 0x28030000 # 8000BB2C => cmplwi r3, 0 ori r0, r0, 0xF1B0
.data 0x48205674 # 8000BB30 => b +0x00205674 /* 802111A4 */ add r3, r3, r0
.data 0x800D8EB0 # 8000BB34 => lwz r0, [r13 - 0x7150] hook2_default_bank:
.data 0x28000001 # 8000BB38 => cmplwi r0, 1 lis r4, 0x8001
.data 0x4082000C # 8000BB3C => bne +0x0000000C /* 8000BB48 */ stw [r4 - 0x3CD4], r3
.data 0x3C608001 # 8000BB40 => lis r3, 0x8001 hook2_skip:
.data 0x8063C32C # 8000BB44 => lwz r3, [r3 - 0x3CD4] cmplwi r3, 0
.data 0x7C681B79 # 8000BB48 => mr. r8, r3 blr
.data 0x482055E4 # 8000BB4C => b +0x002055E4 /* 80211130 */
# region @ 8021112C (4 bytes) hook3:
.data 0x8021112C # address lwz r0, [r13 - 0x7150]
.data 0x00000004 # size cmplwi r0, 1
.data 0x4BDFAA08 # 8021112C => b -0x002055F8 /* 8000BB34 */ bne hook3_skip
# region @ 802111A0 (4 bytes) lis r3, 0x8001
.data 0x802111A0 # address lwz r3, [r3 - 0x3CD4]
.data 0x00000004 # size hook3_skip:
.data 0x4BDFA944 # 802111A0 => b -0x002056BC /* 8000BAE4 */ mr. r8, r3
# region @ 8030CEF0 (4 bytes) blr
.data 0x8030CEF0 # address hooks_end:
.data 0x00000004 # size
.data 0x4BCFEBC5 # 8030CEF0 => bl -0x0030143C /* 8000BAB4 */ .data 0x8021112C
# region @ 8030CF48 (4 bytes) .data 0x00000004
.data 0x8030CF48 # address .address 0x8021112C
.data 0x00000004 # size bl hook3
.data 0x4BCFEB6D # 8030CF48 => bl -0x00301494 /* 8000BAB4 */
# region @ 80471E4C (4 bytes) .data 0x802111A0
.data 0x80471E4C # address .data 0x00000004
.data 0x00000004 # size .address 0x802111A0
.data 0xFFFFFFFF # 80471E4C => fnmadd. f31, f31, f31, f31 bl hook2
# end sentinel
.data 0x00000000 # address .data 0x8030CEF0
.data 0x00000000 # size .data 0x00000004
.address 0x8030CEF0
bl hook1
.data 0x8030CF48
.data 0x00000004
.address 0x8030CF48
bl hook1
.data 0x80471E4C
.data 0x00000004
.address 0x80471E4C
.data 0xFFFFFFFF
.data 0x00000000
.data 0x00000000
@@ -1,6 +1,6 @@
.meta name="Common bank" .meta name="Common bank"
.meta description="Hold L and open\nthe bank to use a\ncommon bank stored\nin temp character\n3's data" .meta description="Hold L and open\nthe bank to use a\ncommon bank stored\nin temp character\n3's data"
# Original code by Ralf @ GC-Forever and Aleron Ives # Original code by Ralf @ GC-Forever ("Common Bank (Hold L And Open Bank)")
# https://www.gc-forever.com/forums/viewtopic.php?t=2050 # https://www.gc-forever.com/forums/viewtopic.php?t=2050
# https://www.gc-forever.com/forums/viewtopic.php?t=2049 # https://www.gc-forever.com/forums/viewtopic.php?t=2049
@@ -9,68 +9,83 @@ reloc0:
.offsetof start .offsetof start
start: start:
.include WriteCodeBlocksGC .include WriteCodeBlocksGC
# region @ 8000BAB4 (156 bytes)
.data 0x8000BAB4 # address .data 0x8000BAB4
.data 0x0000009C # size .deltaof hook1, hooks_end
.data 0x281B0002 # 8000BAB4 => cmplwi r27, 2 .address 0x8000BAB4
.data 0x40820018 # 8000BAB8 => bne +0x00000018 /* 8000BAD0 */
.data 0x3C008000 # 8000BABC => lis r0, 0x8000 hook1:
.data 0x6000BAD8 # 8000BAC0 => ori r0, r0, 0xBAD8 cmplwi r27, 2
.data 0x90030004 # 8000BAC4 => stw [r3 + 0x0004], r0 bne hook1_skip
.data 0x38000000 # 8000BAC8 => li r0, 0x0000 lis r0, 0x8000
.data 0x90030008 # 8000BACC => stw [r3 + 0x0008], r0 ori r0, r0, 0xBAD8
.data 0x807F0040 # 8000BAD0 => lwz r3, [r31 + 0x0040] stw [r3 + 0x0004], r0
.data 0x4E800020 # 8000BAD4 => blr li r0, 0x0000
.data 0x434F4D4D # 8000BAD8 => bdzl cr3, +0x00004D4C /* 80010824 */ stw [r3 + 0x0008], r0
.data 0x4F4E2042 # 8000BADC => crnor crb26, crb14, crb4 hook1_skip:
.data 0x414E4B00 # 8000BAE0 => bc 10, 14, +0x00004B00 /* 800105E0 */ lwz r3, [r31 + 0x0040]
.data 0x800D8EB0 # 8000BAE4 => lwz r0, [r13 - 0x7150] blr
.data 0x28000001 # 8000BAE8 => cmplwi r0, 1 .binary 434F4D4D4F4E2042414E4B00
.data 0x40820040 # 8000BAEC => bne +0x00000040 /* 8000BB2C */
.data 0x3C808051 # 8000BAF0 => lis r4, 0x8051 hook2:
.data 0xA084E970 # 8000BAF4 => lhz r4, [r4 - 0x1690] lwz r0, [r13 - 0x7150]
.data 0x70800002 # 8000BAF8 => andi. r0, r4, 0x0002 cmplwi r0, 1
.data 0x41820028 # 8000BAFC => beq +0x00000028 /* 8000BB24 */ bne hook2_skip
.data 0x800DB964 # 8000BB00 => lwz r0, [r13 - 0x469C] lis r4, 0x8051
.data 0x28000006 # 8000BB04 => cmplwi r0, 6 lhz r4, [r4 - 0x1690]
.data 0x4182001C # 8000BB08 => beq +0x0000001C /* 8000BB24 */ andi. r0, r4, 0x0002
.data 0x806DB948 # 8000BB0C => lwz r3, [r13 - 0x46B8] beq hook2_default_bank
.data 0x28030000 # 8000BB10 => cmplwi r3, 0 lwz r0, [r13 - 0x469C]
.data 0x41820010 # 8000BB14 => beq +0x00000010 /* 8000BB24 */ cmplwi r0, 6
.data 0x38000000 # 8000BB18 => li r0, 0x0000 beq hook2_default_bank
.data 0x6000F1B0 # 8000BB1C => ori r0, r0, 0xF1B0 lwz r3, [r13 - 0x46B8]
.data 0x7C630214 # 8000BB20 => add r3, r3, r0 cmplwi r3, 0
.data 0x3C808001 # 8000BB24 => lis r4, 0x8001 beq hook2_default_bank
.data 0x9064C32C # 8000BB28 => stw [r4 - 0x3CD4], r3 li r0, 0x0000
.data 0x28030000 # 8000BB2C => cmplwi r3, 0 ori r0, r0, 0xF1B0
.data 0x482053D0 # 8000BB30 => b +0x002053D0 /* 80210F00 */ add r3, r3, r0
.data 0x800D8EB0 # 8000BB34 => lwz r0, [r13 - 0x7150] hook2_default_bank:
.data 0x28000001 # 8000BB38 => cmplwi r0, 1 lis r4, 0x8001
.data 0x4082000C # 8000BB3C => bne +0x0000000C /* 8000BB48 */ stw [r4 - 0x3CD4], r3
.data 0x3C608001 # 8000BB40 => lis r3, 0x8001 hook2_skip:
.data 0x8063C32C # 8000BB44 => lwz r3, [r3 - 0x3CD4] cmplwi r3, 0
.data 0x7C681B79 # 8000BB48 => mr. r8, r3 blr
.data 0x48205340 # 8000BB4C => b +0x00205340 /* 80210E8C */
# region @ 80210E88 (4 bytes) hook3:
.data 0x80210E88 # address lwz r0, [r13 - 0x7150]
.data 0x00000004 # size cmplwi r0, 1
.data 0x4BDFACAC # 80210E88 => b -0x00205354 /* 8000BB34 */ bne hook3_skip
# region @ 80210EFC (4 bytes) lis r3, 0x8001
.data 0x80210EFC # address lwz r3, [r3 - 0x3CD4]
.data 0x00000004 # size hook3_skip:
.data 0x4BDFABE8 # 80210EFC => b -0x00205418 /* 8000BAE4 */ mr. r8, r3
# region @ 8030CCA4 (4 bytes) blr
.data 0x8030CCA4 # address hooks_end:
.data 0x00000004 # size
.data 0x4BCFEE11 # 8030CCA4 => bl -0x003011F0 /* 8000BAB4 */ .data 0x80210E88
# region @ 8030CCFC (4 bytes) .data 0x00000004
.data 0x8030CCFC # address .address 0x80210E88
.data 0x00000004 # size bl hook3
.data 0x4BCFEDB9 # 8030CCFC => bl -0x00301248 /* 8000BAB4 */
# region @ 80471C14 (4 bytes) .data 0x80210EFC
.data 0x80471C14 # address .data 0x00000004
.data 0x00000004 # size .address 0x80210EFC
.data 0xFFFFFFFF # 80471C14 => fnmadd. f31, f31, f31, f31 bl hook2
# end sentinel
.data 0x00000000 # address .data 0x8030CCA4
.data 0x00000000 # size .data 0x00000004
.address 0x8030CCA4
bl hook1
.data 0x8030CCFC
.data 0x00000004
.address 0x8030CCFC
bl hook1
.data 0x80471C14
.data 0x00000004
.address 0x80471C14
.data 0xFFFFFFFF
.data 0x00000000
.data 0x00000000
@@ -1,6 +1,6 @@
.meta name="Common bank" .meta name="Common bank"
.meta description="Hold L and open\nthe bank to use a\ncommon bank stored\nin temp character\n3's data" .meta description="Hold L and open\nthe bank to use a\ncommon bank stored\nin temp character\n3's data"
# Original code by Ralf @ GC-Forever and Aleron Ives # Original code by Ralf @ GC-Forever ("Common Bank (Hold L And Open Bank)")
# https://www.gc-forever.com/forums/viewtopic.php?t=2050 # https://www.gc-forever.com/forums/viewtopic.php?t=2050
# https://www.gc-forever.com/forums/viewtopic.php?t=2049 # https://www.gc-forever.com/forums/viewtopic.php?t=2049
@@ -9,68 +9,83 @@ reloc0:
.offsetof start .offsetof start
start: start:
.include WriteCodeBlocksGC .include WriteCodeBlocksGC
# region @ 8000BAB4 (156 bytes)
.data 0x8000BAB4 # address .data 0x8000BAB4
.data 0x0000009C # size .deltaof hook1, hooks_end
.data 0x281B0002 # 8000BAB4 => cmplwi r27, 2 .address 0x8000BAB4
.data 0x40820018 # 8000BAB8 => bne +0x00000018 /* 8000BAD0 */
.data 0x3C008000 # 8000BABC => lis r0, 0x8000 hook1:
.data 0x6000BAD8 # 8000BAC0 => ori r0, r0, 0xBAD8 cmplwi r27, 2
.data 0x90030004 # 8000BAC4 => stw [r3 + 0x0004], r0 bne hook1_skip
.data 0x38000000 # 8000BAC8 => li r0, 0x0000 lis r0, 0x8000
.data 0x90030008 # 8000BACC => stw [r3 + 0x0008], r0 ori r0, r0, 0xBAD8
.data 0x807F0040 # 8000BAD0 => lwz r3, [r31 + 0x0040] stw [r3 + 0x0004], r0
.data 0x4E800020 # 8000BAD4 => blr li r0, 0x0000
.data 0x434F4D4D # 8000BAD8 => bdzl cr3, +0x00004D4C /* 80010824 */ stw [r3 + 0x0008], r0
.data 0x4F4E2042 # 8000BADC => crnor crb26, crb14, crb4 hook1_skip:
.data 0x414E4B00 # 8000BAE0 => bc 10, 14, +0x00004B00 /* 800105E0 */ lwz r3, [r31 + 0x0040]
.data 0x800D8EB8 # 8000BAE4 => lwz r0, [r13 - 0x7148] blr
.data 0x28000001 # 8000BAE8 => cmplwi r0, 1 .binary 434F4D4D4F4E2042414E4B00
.data 0x40820040 # 8000BAEC => bne +0x00000040 /* 8000BB2C */
.data 0x3C808051 # 8000BAF0 => lis r4, 0x8051 hook2:
.data 0xA084F290 # 8000BAF4 => lhz r4, [r4 - 0x0D70] lwz r0, [r13 - 0x7148]
.data 0x70800002 # 8000BAF8 => andi. r0, r4, 0x0002 cmplwi r0, 1
.data 0x41820028 # 8000BAFC => beq +0x00000028 /* 8000BB24 */ bne hook2_skip
.data 0x800DB9B4 # 8000BB00 => lwz r0, [r13 - 0x464C] lis r4, 0x8051
.data 0x28000006 # 8000BB04 => cmplwi r0, 6 lhz r4, [r4 - 0x0D70]
.data 0x4182001C # 8000BB08 => beq +0x0000001C /* 8000BB24 */ andi. r0, r4, 0x0002
.data 0x806DB998 # 8000BB0C => lwz r3, [r13 - 0x4668] beq hook2_default_bank
.data 0x28030000 # 8000BB10 => cmplwi r3, 0 lwz r0, [r13 - 0x464C]
.data 0x41820010 # 8000BB14 => beq +0x00000010 /* 8000BB24 */ cmplwi r0, 6
.data 0x38000000 # 8000BB18 => li r0, 0x0000 beq hook2_default_bank
.data 0x6000F1B0 # 8000BB1C => ori r0, r0, 0xF1B0 lwz r3, [r13 - 0x4668]
.data 0x7C630214 # 8000BB20 => add r3, r3, r0 cmplwi r3, 0
.data 0x3C808001 # 8000BB24 => lis r4, 0x8001 beq hook2_default_bank
.data 0x9064C32C # 8000BB28 => stw [r4 - 0x3CD4], r3 li r0, 0x0000
.data 0x28030000 # 8000BB2C => cmplwi r3, 0 ori r0, r0, 0xF1B0
.data 0x48205100 # 8000BB30 => b +0x00205100 /* 80210C30 */ add r3, r3, r0
.data 0x800D8EB8 # 8000BB34 => lwz r0, [r13 - 0x7148] hook2_default_bank:
.data 0x28000001 # 8000BB38 => cmplwi r0, 1 lis r4, 0x8001
.data 0x4082000C # 8000BB3C => bne +0x0000000C /* 8000BB48 */ stw [r4 - 0x3CD4], r3
.data 0x3C608001 # 8000BB40 => lis r3, 0x8001 hook2_skip:
.data 0x8063C32C # 8000BB44 => lwz r3, [r3 - 0x3CD4] cmplwi r3, 0
.data 0x7C681B79 # 8000BB48 => mr. r8, r3 blr
.data 0x48205070 # 8000BB4C => b +0x00205070 /* 80210BBC */
# region @ 80210BB8 (4 bytes) hook3:
.data 0x80210BB8 # address lwz r0, [r13 - 0x7148]
.data 0x00000004 # size cmplwi r0, 1
.data 0x4BDFAF7C # 80210BB8 => b -0x00205084 /* 8000BB34 */ bne hook3_skip
# region @ 80210C2C (4 bytes) lis r3, 0x8001
.data 0x80210C2C # address lwz r3, [r3 - 0x3CD4]
.data 0x00000004 # size hook3_skip:
.data 0x4BDFAEB8 # 80210C2C => b -0x00205148 /* 8000BAE4 */ mr. r8, r3
# region @ 8030C228 (4 bytes) blr
.data 0x8030C228 # address hooks_end:
.data 0x00000004 # size
.data 0x4BCFF88D # 8030C228 => bl -0x00300774 /* 8000BAB4 */ .data 0x80210BB8
# region @ 8030C280 (4 bytes) .data 0x00000004
.data 0x8030C280 # address .address 0x80210BB8
.data 0x00000004 # size bl hook3
.data 0x4BCFF835 # 8030C280 => bl -0x003007CC /* 8000BAB4 */
# region @ 80471804 (4 bytes) .data 0x80210C2C
.data 0x80471804 # address .data 0x00000004
.data 0x00000004 # size .address 0x80210C2C
.data 0xFFFFFFFF # 80471804 => fnmadd. f31, f31, f31, f31 bl hook2
# end sentinel
.data 0x00000000 # address .data 0x8030C228
.data 0x00000000 # size .data 0x00000004
.address 0x8030C228
bl hook1
.data 0x8030C280
.data 0x00000004
.address 0x8030C280
bl hook1
.data 0x80471804
.data 0x00000004
.address 0x80471804
.data 0xFFFFFFFF
.data 0x00000000
.data 0x00000000