96 lines
3.1 KiB
ArmAsm
96 lines
3.1 KiB
ArmAsm
# 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
|
|
|
|
.meta visibility="all"
|
|
.meta name="Common bank"
|
|
.meta description="Hold L and open\nthe bank to use a\ncommon bank stored\nin temp character\n3's data"
|
|
|
|
.versions 3OJ2 3OJ3 3OJ4 3OJ5 3OE0 3OE1 3OE2 3OP0
|
|
|
|
entry_ptr:
|
|
reloc0:
|
|
.offsetof start
|
|
start:
|
|
.include WriteCodeBlocks
|
|
|
|
.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 - <VERS 0x7150 0x7150 0x7150 0x7150 0x7148 0x7148 0x7148 0x7148>]
|
|
cmplwi r0, 1
|
|
bne hook2_skip
|
|
lis r4, 0x8051
|
|
lhz r4, [r4 - <VERS 0x7530 0x3A70 0x1430 0x1690 0x6C50 0x6770 0x1D90 0x0D70>]
|
|
andi. r0, r4, 0x0002
|
|
beq hook2_default_bank
|
|
lwz r0, [r13 - <VERS 0x46C4 0x46BC 0x469C 0x469C 0x46AC 0x46AC 0x468C 0x464C>]
|
|
cmplwi r0, 6
|
|
beq hook2_default_bank
|
|
lwz r3, [r13 - <VERS 0x46E0 0x46D8 0x46B8 0x46B8 0x46C8 0x46C8 0x46A8 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 - <VERS 0x7150 0x7150 0x7150 0x7150 0x7148 0x7148 0x7148 0x7148>]
|
|
cmplwi r0, 1
|
|
bne hook3_skip
|
|
lis r3, 0x8001
|
|
lwz r3, [r3 - 0x3CD4]
|
|
hook3_skip:
|
|
mr. r8, r3
|
|
blr
|
|
hooks_end:
|
|
|
|
.data <VERS 0x8020F9F8 0x8021034C 0x8021112C 0x80210E88 0x8021026C 0x8021026C 0x802111BC 0x80210BB8>
|
|
.data 0x00000004
|
|
.address <VERS 0x8020F9F8 0x8021034C 0x8021112C 0x80210E88 0x8021026C 0x8021026C 0x802111BC 0x80210BB8>
|
|
bl hook3
|
|
|
|
.data <VERS 0x8020FAE4 0x802103C0 0x802111A0 0x80210EFC 0x802102E0 0x802102E0 0x80211230 0x80210C2C>
|
|
.data 0x00000004
|
|
.address <VERS 0x8020FAE4 0x802103C0 0x802111A0 0x80210EFC 0x802102E0 0x802102E0 0x80211230 0x80210C2C>
|
|
bl hook2
|
|
|
|
.data <VERS 0x8030AA54 0x8030BAA4 0x8030CEF0 0x8030CCA4 0x8030B414 0x8030B458 0x8030CE60 0x8030C228>
|
|
.data 0x00000004
|
|
.address <VERS 0x8030AA54 0x8030BAA4 0x8030CEF0 0x8030CCA4 0x8030B414 0x8030B458 0x8030CE60 0x8030C228>
|
|
bl hook1
|
|
|
|
.data <VERS 0x8030AAAC 0x8030BAFC 0x8030CF48 0x8030CCFC 0x8030B46C 0x8030B4B0 0x8030CEB8 0x8030C280>
|
|
.data 0x00000004
|
|
.address <VERS 0x8030AAAC 0x8030BAFC 0x8030CF48 0x8030CCFC 0x8030B46C 0x8030B4B0 0x8030CEB8 0x8030C280>
|
|
bl hook1
|
|
|
|
.data <VERS 0x8046CECC 0x8046FCEC 0x80471E4C 0x80471C14 0x8046DC5C 0x8046E0DC 0x80471ACC 0x80471804>
|
|
.data 0x00000004
|
|
.address <VERS 0x8046CECC 0x8046FCEC 0x80471E4C 0x80471C14 0x8046DC5C 0x8046E0DC 0x80471ACC 0x80471804>
|
|
.data 0xFFFFFFFF
|
|
|
|
.data 0x00000000
|
|
.data 0x00000000
|