Emulator Issues #4291
closedDo not truncate hex value in game patch dialog and store long hex values correctly
0%
Description
What steps will reproduce the problem?
- Right click the game and choose properties.
- Select the Patches tab.
- Add a patch and for the value, enter a long hex value (such as an ASM patch).
- A value > 4 bytes or 8 characters is either truncated or turned into 0x00000000 if it's too long to be stored.
What is the expected output? What do you see instead?
The value entered is expected to not be truncated or removed (see above).
Dolphin version with the problem? Other Dolphin version without the
problem?
All revisions. This was tested on the latest revision, which is 7369 as of now.
32-bit or 64-bit and any other build parameters?
64 bit with no parameters passed to either cmake or make.
OS version and versions of tools/libraries used?
OS: Arch Linux
Gcc: 4.5.2-6
Cmake: 2.8.4-1
Make: 3.81-5
Please provide any additional information below.
This was tested using hex values from the memory patch portion of "Another Mario World's" riivolution xml.
A value of 616E6F746865722E is truncated to the last 4 bytes/8 characters and a value of <look at attachment> is reverted back to 0x00000000. I'm assuming that the int/long/long long used in the source can't store such a large variable.
I don't know too much about C++, but from a quick look at the sources, it seems like the problem lies in these 2 source files:
Source/Core/DolphinWX/Src/PatchAddEdit.cpp (for the truncation maybe?)
Source/Core/Core/Src/PatchEngine.cpp (inability to store super long hex value?)
It doesn't seem like too hard of a problem to fix. Let me know if you need more information.