CPU Control Cycler [Ro]
#1
CPU Control Cycler [Ro]

This code allows playing as other CPUs, you can cycle the camera thru all CPUs and you will be able to play as the one that the camera is targetting, you can drive and throw items as if you were really them. Once you change the CPU, the CPU you were previously controlling will return back to normal and will start driving by itself again. Your real player will not move or use items while you control CPUs.

This code can be fun in many ways, you can mess with CPUs, use it for testing and pictures (you can use Joshua's Disable CPU Driving code to make all CPUs not move and then control each individually to position them for a picture) or even changing CPUs combos with Vega's code and then using it for different things.

Most of the HUD is still based on your real player but minimap icon for controlled CPU was coded in.

Here's an example of a picture that I took using the code:
[Image: image.png?ex=66d6b1cb&is=66d5604b&hm=7a2...y=lossless]

XXXX: Controller Address Second Half [Example: 14C2 for Classic Controller NTSC-U]
YYYY: Both cycle buttons masked together (Button to cycle to previous+ Button to cycle to next button = YYYY) [Example: 8002 for D-Pad Left/Right for Classic Controller ]
ZZZZ: Button to cycle to previous [Example: 0002 for D-Pad Left for Classic Controller ]

No need to input button to cycle to next, YYYY logic does it, plus, makes code shorter and cleaner.

This code makes uses of addresses 0x80001620 thru 0x80001621. Make sure no other codes use these addresses.

NTSC-U
C2581B2C 00000006
819D0000 818C0000
898C0010 3D608000
896B1620 2C0B0000
4182000C 2C0C0000
4D820020 9421FFF0
60000000 00000000
C258E058 00000006
819D0000 818C0000
898C0010 3D608000
896B1620 2C0B0000
4182000C 2C0C0000
4D820020 9421FFD0
60000000 00000000
C2589BE4 00000004
88030010 3D808000
898C1620 7C006000
40820008 38000000
60000000 00000000
C25971F8 00000010
3FC08000 889E1620
3D808034 A06CXXXX
3D80809C 818CEE20
898C0010 398CFFFF
7063YYYY 41820044
897E1621 2C0B0000
40820038 706BZZZZ
41820018 2C040000
3884FFFF 4082001C
7D846378 48000014
7C0C2000 38840001
40820008 38800000
989D009C 989E1620
7063YYYY 39600001
40820008 39600000
997E1621 00000000
C2728F84 00000007
3D808000 898C1620
817D0000 814B0000
894A0010 7C0C5000
40820018 818B0004
816C0014 556B003C
916C0014 4E800020
9421FFF0 00000000
C278ED0C 00000005
A01D000C 3D808000
898C1620 2C0C0000
41820010 2C1B0000
40820008 38000000
60000000 00000000
C27E1CA8 00000002
3D808000 898C1620
7C046000 00000000
C27E2018 0000000A
80030B90 3D808000
898C1620 817CFFFC
2C0B0000 41820038
816B0000 816B0000
896B0010 396B0001
7C0B6000 40820020
38000002 819C01BC
39600001 996C00BB
819C01C0 39600005
996C00BB 00000000

PAL
C2588350 00000006
819D0000 818C0000
898C0010 3D608000
896B1620 2C0B0000
4182000C 2C0C0000
4D820020 9421FFF0
60000000 00000000
C257AB68 00000006
819D0000 818C0000
898C0010 3D608000
896B1620 2C0B0000
4182000C 2C0C0000
4D820020 9421FFD0
60000000 00000000
C2590408 00000004
88030010 3D808000
898C1620 7C006000
40820008 38000000
60000000 00000000
C25A2230 00000010
3FC08000 889E1620
3D808034 A06CXXXX
3D80809C 818C3618
898C0010 398CFFFF
7063YYYY 41820044
897E1621 2C0B0000
40820038 706BZZZZ
41820018 2C040000
3884FFFF 4082001C
7D846378 48000014
7C0C2000 38840001
40820008 38800000
989D009C 989E1620
7063YYYY 39600001
40820008 39600000
997E1621 00000000
C27255F8 00000007
3D808000 898C1620
817D0000 814B0000
894A0010 7C0C5000
40820018 818B0004
816C0014 556B003C
916C0014 4E800020
9421FFF0 00000000
C2797D18 00000005
A01D000C 3D808000
898C1620 2C0C0000
41820010 2C1B0000
40820008 38000000
60000000 00000000
C27EB554 00000002
3D808000 898C1620
7C046000 00000000
C27EB8C4 0000000A
80030B90 3D808000
898C1620 817CFFFC
2C0B0000 41820038
816B0000 816B0000
896B0010 396B0001
7C0B6000 40820020
38000002 819C01BC
39600001 996C00BB
819C01C0 39600005
996C00BB 00000000

NTSC-J
C2587CD0 00000006
819D0000 818C0000
898C0010 3D608000
896B1620 2C0B0000
4182000C 2C0C0000
4D820020 9421FFF0
60000000 00000000
C257A4E8 00000006
819D0000 818C0000
898C0010 3D608000
896B1620 2C0B0000
4182000C 2C0C0000
4D820020 9421FFD0
60000000 00000000
C258FD88 00000004
88030010 3D808000
898C1620 7C006000
40820008 38000000
60000000 00000000
C25A1BB0 00000010
3FC08000 889E1620
3D808034 A06CXXXX
3D80809C 818C2678
898C0010 398CFFFF
7063YYYY 41820044
897E1621 2C0B0000
40820038 706BZZZZ
41820018 2C040000
3884FFFF 4082001C
7D846378 48000014
7C0C2000 38840001
40820008 38800000
989D009C 989E1620
7063YYYY 39600001
40820008 39600000
997E1621 00000000
C2724C64 00000007
3D808000 898C1620
817D0000 814B0000
894A0010 7C0C5000
40820018 818B0004
816C0014 556B003C
916C0014 4E800020
9421FFF0 00000000
C2797384 00000005
A01D000C 3D808000
898C1620 2C0C0000
41820010 2C1B0000
40820008 38000000
60000000 00000000
C27EABC0 00000002
3D808000 898C1620
7C046000 00000000
C27EAF30 0000000A
80030B90 3D808000
898C1620 817CFFFC
2C0B0000 41820038
816B0000 816B0000
896B0010 396B0001
7C0B6000 40820020
38000002 819C01BC
39600001 996C00BB
819C01C0 39600005
996C00BB 00000000

NTSC-K
C25763A8 00000006
819D0000 818C0000
898C0010 3D608000
896B1620 2C0B0000
4182000C 2C0C0000
4D820020 9421FFF0
60000000 00000000
C2568BC0 00000006
819D0000 818C0000
898C0010 3D608000
896B1620 2C0B0000
4182000C 2C0C0000
4D820020 9421FFD0
60000000 00000000
C257E460 00000004
88030010 3D808000
898C1620 7C006000
40820008 38000000
60000000 00000000
C2590288 00000010
3FC08000 889E1620
3D808033 A06CXXXX
3D80809B 818C1C58
898C0010 398CFFFF
7063YYYY 41820044
897E1621 2C0B0000
40820038 706BZZZZ
41820018 2C040000
3884FFFF 4082001C
7D846378 48000014
7C0C2000 38840001
40820008 38800000
989D009C 989E1620
7063YYYY 39600001
40820008 39600000
997E1621 00000000
C27139A0 00000007
3D808000 898C1620
817D0000 814B0000
894A0010 7C0C5000
40820018 818B0004
816C0014 556B003C
916C0014 4E800020
9421FFF0 00000000
C27860D8 00000005
A01D000C 3D808000
898C1620 2C0C0000
41820010 2C1B0000
40820008 38000000
60000000 00000000
C27D9914 00000002
3D808000 898C1620
7C046000 00000000
C27D9C84 0000000A
80030B90 3D808000
898C1620 817CFFFC
2C0B0000 41820038
816B0000 816B0000
896B0010 396B0001
7C0B6000 40820020
38000002 819C01BC
39600001 996C00BB
819C01C0 39600005
996C00BB 00000000

Code creator: Ro
Code credits: JoshuaMK and B_squo (Both had important addresses that helped me find CPU AI functions), acaruso (Player camera address) and probably more people
mtctr r0 ~ bctrl / BLX R0
Reply
#2
Nice work!
Reply
#3
While taking a bath today I remembered that I forgot to change another button to YYYY. I updated it so everything works properly.
mtctr r0 ~ bctrl / BLX R0
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)