Disable Multi Channel BRSTMs [CLF78]
#1
This code disables channel switching for track music, removing the requirement of multi-channel BRSTMs in the slots that previously needed it. Hint: You can disable channel switching altogether by inserting a single BLR instead.

NTSC-U
C26F5BC4 00000004
3CC08071 60C695F0
7CE802A6 7CE63850
28071464 4CA10020
9421FFE0 00000000

PAL
C26FAB2C 00000004
3CC08071 60C61724
7CE802A6 7CE63850
28071464 4CA10020
9421FFE0 00000000

NTSC-J
C26FA198 00000004
3CC08071 60C68C5C
7CE802A6 7CE63850
28071464 4CA10020
9421FFE0 00000000

NTSC-K
C26E8ED4 00000004
3CC08070 60C67998
7CE802A6 7CE63850
28071464 4CA10020
9421FFE0 00000000

Source:
Code:
# Address ports
.set REGION, ''
.if (REGION == 'P' || REGION == 'p')
    .set FirstCall, 0x807195F0
.elseif (REGION == 'U' || REGION == 'u' || REGION == 'E' || REGION == 'e')
    .set FirstCall, 0x80711724
.elseif (REGION == 'J' || REGION == 'j')
    .set FirstCall, 0x80718C5C
.elseif (REGION == 'K' || REGION == 'k')
    .set FirstCall, 0x80707998
.else
    .err
.endif

# Get address of earliest call in memory we want to kill
lis r6, FirstCall@h
ori r6, r6, FirstCall@l

# Get caller
mflr r7

# Exit function if the caller is in the range FirstCall+0x1464
sub r7, r7, r6
cmplwi r7, 0x1464
blelr+

# Original instruction
stwu sp, -0x20(sp)

Code created by: CLF78
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)