making anyone editable is as simple as using this gameshark code: 811502C6 0200 but what makes it tick? values of 0x0100 and 0x0200 make it work. ----------------------------------------- on reading it with The Dwayne Johnson: LBU V0 0x0CC6 (T0) ; [V0 01] from 801502C6 (T0 is 8014F600) SLTIU V0 V0 0x01 ; [V0 00] LUI AT 0x8017 SB V0 0xEED8 (AT); 8016EED8: [V0 00] ANDI V0 V0 0xFF; [V0 00] BEQ V0 R0 8010C0D0 ; takes branch ADDU A0 = R0; ADDIU A1 R0 0x4A ADDIU A2 R0 0x12 ; as opposed to 0x13 (see PC 8010C0C4) ADDIU A3 R0 0x05 ; as opposed to 0x0A (see PC 8010C0CC which runs after a jump) SW R0 0x10 (SP); 8008E508: 0 JAL 80141ED4 ; takes jump SW R0 0x14 (SP); 8008E50C: 0 ADDIU SP SP 0xFFC8 ; [SP 8008E4C0] stack pointer fuckery. by now everything is said and done. ________________________________________ and now with a Created Wrestler: LBU V0 0x0CC6 (T0) ; [V0 02] from 801502C6 (T0 is 8014F600) SLTIU V0 V0 0x01 ; [V0 00] LUI AT 0x8017 SB V0 0xEED8 (AT); 8016EED8: [V0 00] ANDI V0 V0 0xFF; [V0 00] BEQ V0 R0 8010C0D0 ; takes branch ADDU A0 = R0; ADDIU A1 R0 0x4A ADDIU A2 R0 0x12 ADDIU A3 R0 0x05 SW R0 0x10 (SP); 8008E508: 0 JAL 80141ED4 ; takes jump SW R0 0x14 (SP); 8008E50C: 0 ADDIU SP SP 0xFFC8 ; [SP 8008E4C0] stack pointer fuckery. by now everything is said and done. ________________________________________ let's write to it with a caw PC is 8000796C zeroing it out. next press of go yields SH V0 (S0); 801502C4: [V0 02] ADDIU V0 A0 0x1; [V0 37] ADDU A0 V0 R0 ; [A0 37] (was 36 before this) SLL V0 V0 0x10 ; [V0 00370000] SRA V0 V0 0x10 ; [V0 00000037] SLTI V0 V0 0x37 ; [V0 00] <-- this seems like a check. BNEZ V0 800079AC ; no jump ADDIU S0 S0 0x02 ; [S0 801502C6] LW RA 0x54 (SP) ; [RA 80005FB8] from 8008E55C LW S0 0x50 (SP) ; [S0 80323FA8] from 8008E558 JR RA ADDIU SP SP 0x58; [SP 8008E560] ADDU A0 S0 R0 ; [A0 80323FA8] ADDU A1 S2 R0 ; [A1 8014FB80] JAL 8000766C ADDU A2 S1 R0 ; [A2 80150258] stack pointer storage stuff. hitting go. (this was a bad idea) PC is now 8012156C SB V0 0x0CC6 (S0) ; 801502C6: [V0 02] <- we seem to be writing to the best place! LW A0 0x0258 (S0) ; [A0 0A01] from 8014F858 <- wrestler ID4 JAL 8011FDE0 LW A1 0x025C (S0) ; [A1 00000000] from 8014F85C ADDIU V0 R0 0x01 LUI AT 0x8015 SB V0 0x1B2C (AT) ; 80151B2C: [V0 01] LUI AT 0x8015 SW A0 0x1B30 (AT) ; 80151B30: [A0 0A01] LUI AT 0x8015 JR RA ; (8012157C) SW A1 0x1B34 (AT) ; 80151B34: [A1 00] and that's it for that one. ________________________________________ writing to it with das rock; PC is 8000796C again. zeroing it out. next press of go yields PC 80007E98, most of which seems the same. SH V0 (S0); 801502C4: [V0 0001] ADDIU V0 A0 0x1; [V0 37] ADDU A0 V0 R0 ; [A0 37] SLL V0 V0 0x10 ; [V0 00370000] SRA V0 V0 0x10 ; [V0 00000037] SLTI V0 V0 0x37 ; [V0 00] BNEZ V0 800079AC ; no jump ADDIU S0 S0 0x02 ; [S0 801502C6] LW RA 0x54 (SP) ; [RA 80005FB8] from 8008E55C LW S0 0x50 (SP) ; [S0 80323FA8] from 8008E558 JR RA ADDIU SP SP 0x58; [SP 8008E560] ADDU A0 S0 R0 ; [A0 803209A8] <- this changed. ADDU A1 S2 R0 ; [A1 8014FB80] JAL 8000766C ADDU A2 S1 R0 ; [A2 80150258] stack pointer storage stuff. hitting go. (this was a bad idea) PC is now 8012156C SB V0 0x0CC6 (S0) ; 801502C6: [V0 01] <- we seem to be writing to the best place! LW A0 0x0258 (S0) ; [A0 0001] from 8014F858 <- wrestler ID4 JAL 8011FDE0 LW A1 0x025C (S0) ; [A1 00000000] from 8014F85C ADDIU V0 R0 0x01 LUI AT 0x8015 SB V0 0x1B2C (AT) ; 80151B2C: [V0 01] LUI AT 0x8015 SW A0 0x1B30 (AT) ; 80151B30: [A0 0001] LUI AT 0x8015 JR RA ; (8012157C) SW A1 0x1B34 (AT) ; 80151B34: [A1 00] ________________________________________ at this point I want to see how V0 gets written at 8012156C. PC 80121568 ADDIU V0 R0 0x02 ; [V0 02] apparently we've come across a branch here. going backwards, PC 8012155C SLTI V0 V0 0x0A00 ; [V0 00000A01] -> [V0 01] ; the check to see if it's a CAW.