Post Reply 
 
Thread Rating:
  • 6 Votes - 4.17 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Monster Hunter Freedom Unite [USA]
09-14-2024, 05:06 PM
Post: #128
RE: Monster Hunter Freedom Unite [USA]
Thanks for taking the time to even view this if it catches you.

Before I go deep into explanation I just wanted to state that this is in reference to the conversation you had with another user in this thread (page 2) allowing times 1.X/2.X/3.X...etc multiplication of the player's attack instead of x2/x4/x6/etc. (There's also a similar code discussed later in the thread in relation to defense values, but I am mainly focused on the xAttack versions).

Here are the codes in reference:
Code:
_C0 Attack x XXXX / YYYYY
_L 0xE0080CCC 0x100D9298 (this line is optional)
_L 0x200D9298 0x0A200CCC
_L 0x20003330 0x2416XXXX
_L 0x20003334 0x2417YYYY
_L 0x20003338 0x02160018
_L 0x2000333C 0x00008012
_L 0x20003340 0x0217001A
_L 0x20003344 0x00008012
_L 0x20003348 0x0A2364A9
//XXXX and YYYY has to be in hex`

So for example for 1.2 substitute 000C (12) for XXXX and 000A (10) for YYYY

Code:
Example
_C0 Attack x1.2
_L 0x200D9298 0x0A200CCC
_L 0x20003330 0x2416000C
_L 0x20003334 0x2417000A
_L 0x20003338 0x02160018
_L 0x2000333C 0x00008012
_L 0x20003340 0x0217001A
_L 0x20003344 0x00008012
_L 0x20003348 0x0A2364A9`

Additionally, this is the standard x2 attack code that was referenced initially in the thread that was requested to be changed to x1.2/x1.3/etc

Code:
_C0 Attack x 2
_L 0x200D9298 0x00000000
_L 0x200D92A0 0x00108040

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

I'm interested in using these codes with the JPN version of the game (P2ndG) for compatibility with another project/mod so I was looking to simply translate these over to that version. If I understood the process well enough, I was also looking to make similar codes for the other PSP games in the series. I have a slight level of knowledge of assembly and reading hex values so I took a look at the CwCheat "documentation' over at https://datacrystal.romhacking.net/wiki/CwCheat to get an understanding of the process for making these cheats. From what I understand, this is what's happening in the cheat:

Code:
_L 0xE0080CCC 0x100D9298 (this line is optional)
This line above is checking at address 0x100D9298 and seeing if its halfword is not equal to the value of 0CCC. If that condition checks out, it executes the following 8 lines of the cheat (essentially the rest of the cheat). So essentially, every frame this check is done to continuously perform the address value assignments if needed.

Code:
_L 0x200D9298 0x0A200CCC
This line is doing the assignment of the halfword 0CCC to the address of 0x200D9298 that is referenced in the conditional above. This address is also the same value used in the base x2/x4/etc codes.

Code:
_L 0x20003330 0x2416XXXX
_L 0x20003334 0x2417YYYY
These lines are essentially assigning the values XXXX and YYYY in hex to two address locations to be used later in for the multiplication. So XXXX/YYYY -> 000C/000A -> 12/10 -> x.12

The following is where I am roadblocked, I am assuming the remainder if the actual multiplication process, but I have no understanding of it:
Code:
_L 0x20003338 0x02160018
_L 0x2000333C 0x00008012
_L 0x20003340 0x0217001A
_L 0x20003344 0x00008012
_L 0x20003348 0x0A2364A9

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

This is the Attack x2 code for the JPN version of the game, which uses a different address value than FU:
Code:
_C0 Attack x2
_L 0x200DBBE0 0x00000000
_L 0x200DBBE8 0x00108040

I thought I could simply convert the above process to the times 1.X variants by simply swapping out the Attack Values address and came up with the following, but that doesn't seem to be the case.

My Attempt/"Conversion":
Code:
_C0 Attack x 000C(12)/000A(10) (x1.2)
_L 0xE0080CCC 0x100D9298 (this line is optional)
_L 0x200DBBE0 0x0A200CCC
_L 0x217FFF50 0x2416000C
_L 0x217FFF54 0x2417000A
_L 0x217FFF58 0x02160018
_L 0x217FF000 0x00008012
_L 0x217FF004 0x0217001A
_L 0x217FF008 0x00008012
_L 0x217FF00C 0x0A2364A9

For the address values in lines 2-9 (0x217FFF50 - 0x217FF00C) I used the address locations of an existing HP Display code since I thought this would be a "free space" in memory where I could store the address values used for the multiplication. This code causes a freeze when accessing the Status Page in game when enabled.

If you could help me out or guide me in the right direction on this it would be greatly appreciated.
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
Monster Hunter Freedom Unite [USA] - aki21 - 07-26-2013, 04:46 AM
RE: Monster Hunter Freedom Unite [USA] - InfniteGreen - 09-14-2024 05:06 PM

Forum Jump: