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