How to Make your own Cheat Codes
#31
LightKingdom666, just to be clear, you are wanting to make the codes for the NTSC version correct?
Reply
#32
(04-28-2023, 04:01 AM)Vega Wrote: You cannot 'make' one code using two hook instructions. It would be two ASM codes. Each code using its respective hook address.

But, once both codes have been created, I was referring to whether they could be combined to make it one, something like this:

Code:
C335639C 00000003
2C030001 40820008
38000000 90050224
60000000 00000000
C218B300 00000003
2C040000 4082000C
3D803F80 9185010C
C3E5010C 00000000

#The first 4 lines represent the first code (Basketball) and the last 4 lines represent the second code (Volleyball, Dodgeball and Hockey).

(04-28-2023, 04:01 AM)Vega Wrote: That first one is kinda odd that it's only for 0 or 5. There is definitely an instruction that exists for the other values in basketball, you just have to find it.

Well, in fact, it does exist, I just discarded it for purely aesthetic reasons (although I don't know if that represents a problem), since said code when I wanted the bar not to fill up, it would fill up anyway (although it was only purely aesthetic, when it got crowded, it didn't really do anything), and with the other code the bar was not filled, although in the opposite case when I wanted the bar to always be full, in both codes it was filled and it worked too. Yes, I know that maybe it's silly, but I wanted the basketball code to be aesthetically on a par with the one that works for other sports.

The code is actually this:

Code:
8018b4c8 stfs f3, 0x010C (r3)

(04-28-2023, 04:01 AM)Vega Wrote: You have the right idea. It's possible that you may have the wrong GVR or the values for Blue vs Red aren't what you assume to be. Your example codes are fundamentally correct from an Assembly standpoint.

Yes, you are indeed right, the GVR was wrong, although I assume that the values for blue and red will always be 0x0 and 0x1 respectively (since I just created a different code for this game with those two values).

A somewhat strange thing is that I use registers 3 and 4 for the two codes respectively, and what's so strange about that? Well, it is assumed that r3 and r4 do not belong to the GVRs (the GVRs go from r14 to r31), so I don't understand why (if you ask me, I tried to use one of the registers from r14 to r31, but none of them worked for me).

Another thing is that in the first code, when I want it to affect the blue team, it works, but if I want it to affect the red team, it works too, but the code that previously affected the blue team no longer works (this is very strange too), this also works in the second code, but in a different way, since when I want the code to affect so that the blue team always has a full bar, the red team's bar is automatically always empty, even though it doesn't even create another code for it.

(04-28-2023, 04:01 AM)Hackwiz Wrote: LightKingdom666, just to be clear, you are wanting to make the codes for the NTSC version correct?

Well, I think the version to which these codes belong is irrelevant (although in this case I'm only creating codes for NTSC-U, but maybe if I don't have difficulties with the creation of later codes, I could port them to the other versions too), I suppose that what really matters is how these codes were created for a better understanding of the subject, and although I have come to understand some things and created some other code, the truth is that there are some things that I still do not understand very well (and that also prevent me from creating slightly more difficult codes).
Reply
#33
Well, what I want to do is modify the spaces occupied by those characters so that, for example, in P1 you can only choose Daisy (for example), in P2 a Ninja and in P3 a White Mage, in the same way in P4 a Daisy, in P5 to Ninja and in P6 to White Mage so that it looks something like this:

P1. Daisy P4. Daisy
P2. Ninja vs P5. Ninja
P3. White Mage P6. White Mage

-------------------------------------------------------------------------------------------------------------------------------------------------------------

In the (U) version you can choose whatever characters you wish by modifying a byte which is loaded from here:

816035B0 lbz r0, 0x10 (r27)

#ASM this instruction is used for all characters, and breaks whenever moving between, and selecting characters. The addresses are dynamic.
Go to the address and change the character value to whatever you wish. I was playing a 2 on 2 basketball game with all Princess Peaches last night.

Example 2 on 2 Bball:

Set an instruction BP on 816035B0 in the character selection screen.
When you select a character for P1, it should break.
Make note of the address in r27 (add 0x10 of course). This would make a great pointer.
Go to that address in the ram viewer.
Now choose the other three AI characters. You will see the character values change.
The offsets from that great pointer are AI1 -> 0x28 AI2 -> 0x78 AI3 -> 0xA0
Once you choose the last character, the select difficulty menu will pop up.
This is the time to go in and change the different character byte values to what you want.
You will see the characters change behind the select difficulty menu pop up.
Hit ok.
Reply
#34
(05-01-2023, 11:17 AM)Hackwiz Wrote: In the (U) version you can choose whatever characters you wish by modifying a byte which is loaded from here:

816035B0 lbz r0, 0x10 (r27)

#ASM this instruction is used for all characters, and breaks whenever moving between, and selecting characters. The addresses are dynamic.
Go to the address and change the character value to whatever you wish. I was playing a 2 on 2 basketball game with all Princess Peaches last night.

Example 2 on 2 Bball:

Set an instruction BP on 816035B0 in the character selection screen.
When you select a character for P1, it should break.
Make note of the address in r27 (add 0x10 of course). This would make a great pointer.
Go to that address in the ram viewer.
Now choose the other three AI characters. You will see the character values change.
The offsets from that great pointer are AI1 -> 0x28  AI2 -> 0x78  AI3 -> 0xA0
Once you choose the last character, the select difficulty menu will pop up.
This is the time to go in and change the different character byte values to what you want.
You will see the characters change behind the select difficulty menu pop up.
Hit ok.

A bit strange, since when I put the breakpoint in that direction, the game stops, but only when choosing 2 vs 2 or 3 vs 3 (I mean the options), also, they appear in that same direction other completely different instructions, which are these:

Code:
816035b0 stw r5, 0x009C (r29)

The truth is that I don't know if you made a mistake in the address (I mean at the time of writing the post), or if you actually made a mistake in the version (since that can also be the case), in case you have made a mistake in the version I'll give you a link where you can download that same game in the NTSC-U version (the game ID in that version is RMKE01): *REMOVED* don't post download links - Vega
Reply
#35
That's where I got game. it is RMKE01. And I just confirmed that I have:

816035B0 lbz r0, 0x10 (r27)
816035b4 stw r0, 0x9C (r23)
Reply
#36
(05-01-2023, 05:57 PM)Hackwiz Wrote: That's where I got game. it is RMKE01. And I just confirmed that I have:

816035B0 lbz r0, 0x10 (r27)
816035b4 stw r0, 0x9C (r23)

mmm, this phenomenon is too strange, I kept trying with the first address you gave (816035B0) and it keeps giving me the same instructions and with the same results, since the game does not stop where it is supposed to, also in the second address it also generates other instructions, which are these:

Code:
816035b4 stw r6, 0x00B4 (r29)

The truth is that I don't know if I'm the one doing something wrong, but if things continue like this, I would prefer that you explain to me what methodology you used to reach those results and be able to create the code with other instructions.
Reply
#37
What's odd is how you guys are getting integer based instructions at this frequency. You should get getting mostly stfs instructions for Write BPs and lfs instructions for Read BPs.
Reply
#38
Let's try this. Forget about setting a breakpoint on 816035B0

Boot up the game with no cheat codes enabled.
When you get to the main screen, pause the game (in dolphin).
In the "Code" tab, enter 816035B0 in the Search Address field.

What instruction do you see at that address???
Reply
#39
(05-02-2023, 10:19 AM)Hackwiz Wrote: Let's try this. Forget about setting a breakpoint on 816035B0

Boot up the game with no cheat codes enabled.
When you get to the main screen, pause the game (in dolphin).
In the "Code" tab, enter 816035B0 in the Search Address field.

What instruction do you see at that address???

I already tried it, and the exact same instructions appear in that direction, what explanation could you give?
Reply
#40
I would try downloading the game again. I'm seeing a negative offset from my address, to the address of what you're seeing.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)