I found a pointer that leads to the first character for Mario sports mix. The pointer code will set how many times you played with Mario.
Mario qty played on dodgeball
48000000 80A42144
DE000000 90009340
1400603C 00000088
E0000000 80008000
Is it possible to input a slider code into this? ( there are 11 more characters separated by 4x32 bytes)
e.g.:
48000000 80A42144
DE000000 90009340
1800603C 00000064
20110010 00000000
E0000000 80008000
if this is possible then I will be able to activate all missing characters. instead of 603C it'll be 6038 with a value of 00010000. Yoshi sets with 00550000 to activate all the colors. Black/White/Ninja is 00050000. Still testing others...
Edit: I'm thinking that possibly loading the pointer into a gecko register then using 4A.... I'll keep brains storming until someone replies.
Anyways is it possible?
The code works! Thank you very much.
BIG thanks for the code :D (+ 1 "thank you")
I really wanted to create/get unlocker codes for that game.
Where did you see the times, a character was used in matches?
Interesting that a RAM Write on every characters usage stats automatically unlocks them.
This happened on Yugioh aswell as I created a 255 wins + All Characters Unlocked code O0
Did I get that right? However, was it Mem90 where these stats are stored? :eek:
You could easily do it with a BP Read, if you don´t want to use that serial codestype and achive the same result.
My guess is that the ASM would write to all characters´ addresses then...
Greets, Bully ;)
Yeah I aggree with you a bp stw 0x99 would have done the trick for every character played.
It is in mem2 I did it this way because I thought I could get the purple yoshi and red yoshi. The next thing I'd like to do with this game is a character swapper (push - to change character). This ways I can also do it for all game types and not only for one type. The ASM would have been different for each game type I think. Go ahead and do the ASM if you'd like.
Check this out. I can also give a place for dodgeball hp
Once in the game this address gives you HP for everyone.
81385330
it'll be stw r4,500(r7)
lis r12, (player1 value)
ori r12,r12,(player 1value)
cmpw r12,r7
beq- NODAMAGE
lis r12,(player 2 value)
ori r12,r12,(player 2 value)
cmpw r12,r7
beq- NODAMAGE
b ENEMY
NODAMAGE:
li r4,0 #damage increases to compare with r? which is valued at 64
b END
ENEMY:
li r4,65
b END
END:
stw r4,500(r7)
The thing is the values change a bit, it's not always the same value for p1 and p2, I haven't really checked up on it carefully enough to post it properly. You can have a go at it if you'd like. I imagine that there would be a pointer address for them. Nonetheless if you bp on it and change the r4 value when you attack the computer to 65 they're automatically out.
I found the value played for the characters in the Record book.
I did what we were saying and this is the function that has this in.
[spoiler]801C2A6C: 9421FFE0 stwu r1,-32(r1)
801C2A70: 7C0802A6 mflr r0
801C2A74: 2C040013 cmpwi r4,19
801C2A78: 39000000 li r8,0
801C2A7C: 90010024 stw r0,36(r1)
801C2A80: BF410008 stmw r26,8(r1)
801C2A84: 7C7D1B78 mr r29,r3
801C2A88: 7C9E2378 mr r30,r4
801C2A8C: 41800008 blt- 0x801c2a94
801C2A90: 3BC00013 li r30,19
801C2A94: 2C050000 cmpwi r5,0
801C2A98: 41820020 beq- 0x801c2ab8
801C2A9C: 2C050001 cmpwi r5,1
801C2AA0: 41820028 beq- 0x801c2ac8
801C2AA4: 2C050002 cmpwi r5,2
801C2AA8: 41820030 beq- 0x801c2ad8
801C2AAC: 2C050003 cmpwi r5,3
801C2AB0: 41820038 beq- 0x801c2ae8
801C2AB4: 48000040 b 0x801c2af4
801C2AB8: 57C02036 rlwinm r0,r30,4,0,27
801C2ABC: 7C830214 add r4,r3,r0
801C2AC0: 390456F0 addi r8,r4,22256
801C2AC4: 48000030 b 0x801c2af4
801C2AC8: 57C02036 rlwinm r0,r30,4,0,27
801C2ACC: 7C830214 add r4,r3,r0
801C2AD0: 39045830 addi r8,r4,22576
801C2AD4: 48000020 b 0x801c2af4
801C2AD8: 57C02036 rlwinm r0,r30,4,0,27
801C2ADC: 7C830214 add r4,r3,r0
801C2AE0: 39045970 addi r8,r4,22896
801C2AE4: 48000010 b 0x801c2af4
801C2AE8: 57C02036 rlwinm r0,r30,4,0,27
801C2AEC: 7C830214 add r4,r3,r0
801C2AF0: 39045AB0 addi r8,r4,23216
801C2AF4: 80E80004 lwz r7,4(r8)
801C2AF8: 3C800002 lis r4,2
801C2AFC: 3804869F subi r0,r4,31073
801C2B00: 38870001 addi r4,r7,1
801C2B04: 90880004 stw r4,4(r8)
801C2B08: 7C040000 cmpw r4,r0[/b]
801C2B0C: 41800008 blt- 0x801c2b14
801C2B10: 90080004 stw r0,4(r8)
801C2B14: 2C060001 cmpwi r6,1
801C2B18: 40820028 bne- 0x801c2b40
801C2B1C: 80C80008 lwz r6,8(r8)
801C2B20: 3C800002 lis r4,2
801C2B24: 3804869F subi r0,r4,31073
801C2B28: 38860001 addi r4,r6,1
801C2B2C: 90880008 stw r4,8(r8)
801C2B30: 7C040000 cmpw r4,r0
801C2B34: 41800034 blt- 0x801c2b68
801C2B38: 90080008 stw r0,8(r8)
801C2B3C: 4800002C b 0x801c2b68
801C2B40: 2C06FFFF cmpwi r6,-1
801C2B44: 40820024 bne- 0x801c2b68
801C2B48: 80C8000C lwz r6,12(r8)
801C2B4C: 3C800002 lis r4,2
801C2B50: 3804869F subi r0,r4,31073 #MAX
801C2B54: 38860001 addi r4,r6,1 #mr r4,r0 would do the trick
801C2B58: 9088000C stw r4,12(r8)
801C2B5C: 7C040000 cmpw r4,r0
801C2B60: 41800008 blt- 0x801c2b68
801C2B64: 9008000C stw r0,12(r8)
801C2B68: 2C1E0013 cmpwi r30,19
801C2B6C: 41820080 beq- 0x801c2bec
801C2B70: 1FE50104 mulli r31,r5,260
801C2B74: 38000005 li r0,5
801C2B78: 83880004 lwz r28,4(r8)
801C2B7C: 38A00000 li r5,0
801C2B80: 7CC3FA14 add r6,r3,r31
801C2B84: 7C0903A6 mtctr r0
801C2B88: 3C860001 addis r4,r6,1
801C2B8C: 8004898C lwz r0,-30324(r4)
801C2B90: 7C00E000 cmpw r0,r28
801C2B94: 4181004C bgt- 0x801c2be0
801C2B98: 3C030001 addis r0,r3,1
801C2B9C: 38650001 addi r3,r5,1
801C2BA0: 7C80FA14 add r4,r0,r31
801C2BA4: 1F650034 mulli r27,r5,52
801C2BA8: 20050004 subfic r0,r5,4
801C2BAC: 38C4897C subi r6,r4,30340
801C2BB0: 1C630034 mulli r3,r3,52
801C2BB4: 7F46DA14 add r26,r6,r27
801C2BB8: 1CA00034 mulli r5,r0,52
801C2BBC: 7F44D378 mr r4,r26
801C2BC0: 7C661A14 add r3,r6,r3
801C2BC4: 4BE41801 bl 0x800043c4
801C2BC8: 3C1D0001 addis r0,r29,1
801C2BCC: 93DA0000 stw r30,0(r26)
801C2BD0: 7C00FA14 add r0,r0,r31
801C2BD4: 7C60DA14 add r3,r0,r27
801C2BD8: 9383898C stw r28,-30324(r3)
801C2BDC: 48000010 b 0x801c2bec
801C2BE0: 38C60034 addi r6,r6,52
801C2BE4: 38A50001 addi r5,r5,1
801C2BE8: 4200FFA0 bdnz+ 0x801c2b88
801C2BEC: BB410008 lmw r26,8(r1)
801C2BF0: 80010024 lwz r0,36(r1)
801C2BF4: 7C0803A6 mtlr r0
801C2BF8: 38210020 addi r1,r1,32
801C2BFC: 4E800020 blr
[/spoiler]
code: Max player played 041C2B04 90880004 but only for the player that is played with. My assumptions were correct.
It seems that r30 and r28 are in play and r5 too. I'm pretty sure r5 is the type of game that is played either it be basketball.volley,hockey,dodgeball. Perhaps r30 and r28 are for special occasions which then adds variations to the character. IE: blue pink yellow yoshi.
I would stick to the pointer slider so that every character is played 100 times, this will allow all characters to be unlocked instead of just the player played.
It was fun checking this out and reassessing my hypothesis. Thanks Bully. I'm still looking forward to play with the Red and Purple Yoshi in the near future.
your pointer codes don´t work.
It always has a value of 00000000.
I made working ASM codes instead, but I couldn´t locate the "unlock all characters" one.