Force Set CPU Difficulty [Vega]
#1
Force Set CPU Difficulty [Vega]

Works everywhere. This code overrides what is selected in the game.

X = Difficulty
0 = Easy
1 = Medium
2 = Hard

NTSC-U
C272B9AC 00000002
3800000X 9003001C
38600014 00000000

PAL
C2738FD4 00000002
3800000X 9003001C
38600014 00000000

NTSC-J
C2738640 00000002
3800000X 9003001C
38600014 00000000

NTSC-K
C272737C 00000002
3800000X 9003001C
38600014 00000000

Source:
Code:
#Address's
#NTSC-U 8072B9AC
#PAL 80738FD4
#NTSC-J 80738640
#NTSC-K 8072737C

#Write over CPU difficulty setting byte in memory
li r0, 2 #Hard used for assembling, adjust this to what you want
stw r0, 0x1C (r3)

#Original Instruction of Hook Address
li r3, 20

/*NOTE: I did 1 test on GP, VS, Battle, and Coins. The parent func seems to be the only one to call the responsible child func (one instruction above hook addr), however this could be wrong. If code doesn't work because this parent func isn't always used to call child func, then we need to edit the child func. Code for this in PAL is...
04739a1c 3800000X
04739a30 3800000X
04739a3c 3800000X
04739a50 3800000X
04739a64 3800000X
04739a70 3800000X
*/

Code creator: Vega
Code credits: RiiDefi
Reply
#2
Nice. I like how there's still simple QoL codes that are still being made/come up with
Reply
#3
(08-01-2024, 08:09 PM)Vega Wrote: Force Set CPU Difficulty [Vega]

Works everywhere. This code overrides what is selected in the game.

X = Difficulty
0 = Easy
1 = Medium
2 = Hard

NTSC-U
C272B9AC 00000002
3800000X 9003001C
38600014 00000000

PAL
C2738FD4 00000002
3800000X 9003001C
38600014 00000000

NTSC-J
C2738640 00000002
3800000X 9003001C
38600014 00000000

NTSC-K
C272737C 00000002
3800000X 9003001C
38600014 00000000

Source:
Code:
#Address's
#NTSC-U 8072B9AC
#PAL 80738FD4
#NTSC-J 80738640
#NTSC-K 8072737C

#Write over CPU difficulty setting byte in memory
li r0, 2 #Hard used for assembling, adjust this to what you want
stw r0, 0x1C (r3)

#Original Instruction of Hook Address
li r3, 20

/*NOTE: I did 1 test on GP, VS, Battle, and Coins. The parent func seems to be the only one to call the responsible child func (one instruction above hook addr), however this could be wrong. If code doesn't work because this parent func isn't always used to call child func, then we need to edit the child func. Code for this in PAL is...
04739a1c 3800000X
04739a30 3800000X
04739a3c 3800000X
04739a50 3800000X
04739a64 3800000X
04739a70 3800000X
*/

Code creator: Vega
Code credits: RiiDefi

I have a question
what does stw r0, 0x1c(r3) do?
Reply
#4
The address at r3 + 0x1C is where the CPU difficulty byte is stored at. The code overwrites the byte before any relative game functions/operations reference/use the byte
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)