forums.PPSSPP.org
CwCheat Support - Printable Version

+- forums.PPSSPP.org (https://forums.ppsspp.org)
+-- Forum: PPSSPP - Playstation Portable Simulator Suitable for Playing Portably (/forumdisplay.php?fid=1)
+--- Forum: Commercial Games - Compatibility and Results (/forumdisplay.php?fid=5)
+---- Forum: CWCheat codes (/forumdisplay.php?fid=31)
+---- Thread: CwCheat Support (/showthread.php?tid=3590)



RE: CwCheat Support - GameTuerkLP - 06-08-2013 02:30 PM

Her is the Video TUT:






RE: CwCheat Support - elsword - 06-11-2013 11:03 AM

will joker command ever be available ?


RE: CwCheat Support - ushasha - 06-11-2013 07:25 PM

is it possible to search for specific codes using cheat engine? or do we need other tools? for example i'm trying to add a specific item in mhfu, but can't find the code anywhere...trying with cheat engine could be useful?


RE: CwCheat Support - elsword - 06-12-2013 03:00 AM

if you can calculate byte order , yes

ex : item slot.2 = item slot.1 + X


RE: CwCheat Support - Guyverd - 06-12-2013 09:45 AM

Sorry, I tried to use CW Cheats in Naruto Shippuden Ultimate Ninja Impact.
I used this format

//Naruto Shippude Ultimate Ninja Impact [USA]

//Infinite Health
0x617FE4D4 0x00000152
0x00020001 0x000007B9

But the cheat didn't work.

Tried another format

Naruto Shippude Ultimate Ninja Impact [USA]

Infinite Health
0x617FE4D4 0x00000152
0x00020001 0x000007B9

When I used this format at the beginning of the game, my PPSSPP clashed automatically.

Any suggestion?

Thanks Smile


RE: CwCheat Support - VIRGIN KLM - 06-12-2013 10:15 AM

The memory allocation is not working properly so there is nothing you can do about it.
CWCheat implementation needs a major fix/rework.
1. Fix memory ranges that are offeseted wrong.
2. Include extra memory ranges (example: 6XXXXXXX)
3. Change format of CWCheats to match CWcheats database of a real PSP (So "_S", "_G" and "_C0" strings are equal to the current "//" string and "_L" has the same behaviour as if there is nothing infront of a cheat [acts like an active cheat])

As far as we go from the original implementation of CWCheat, the more issues will come up again over and over.

Also if somebody wants to implement a GUI, simmilar to Dolphin's Gecko codes gui, here's a list of what each string does:

_S = The UMD code of the game, serves as identifier for the system, "S" stands for "serial" (example: ULUS-12345)
_G = The name of the game, serves as how it will be displayed to the player, "G" stands for "game" (example: Tekken 6)
_C0 or _C1 = The name of the cheat to follow or a comment, "C" stands for "comment" not "code". 0 stands for deactivated, 1 for activated (example: "Max Money" incase it is a code or "Use the approriate value from the list and replace it with XX" incase it's a comment)
_L = The actual cheat, the adress followed by the value to be applied (example: _L 0x1234567 0x9ABCDEF)

So a fast fix to go as near as possible to the real CWCheat database, from the little to nothing I understand of coding I was thinking something this:

Instead of:
Code:
+  char* skip = "//";

do this:
Code:
+  char* skip = "//"; -> So it won't break currently generated cheats
+  char* skip = "_S";
+  char* skip = "_G";
+  char* skip = "_C0";

I know it can get condensed but I did it to get more clear.

and for enabled codes something that simply ignores "_L"


RE: CwCheat Support - makotech222 - 06-12-2013 12:28 PM

(06-12-2013 10:15 AM)VIRGIN KLM Wrote:  The memory allocation is not working properly so there is nothing you can do about it.
CWCheat implementation needs a major fix/rework.
1. Fix memory ranges that are offeseted wrong.
2. Include extra memory ranges (example: 6XXXXXXX)
3. Change format of CWCheats to match CWcheats database of a real PSP (So "_S", "_G" and "_C0" strings are equal to the current "//" string and "_L" has the same behaviour as if there is nothing infront of a cheat [acts like an active cheat])

As far as we go from the original implementation of CWCheat, the more issues will come up again over and over.

Also if somebody wants to implement a GUI, simmilar to Dolphin's Gecko codes gui, here's a list of what each string does:

_S = The UMD code of the game, serves as identifier for the system, "S" stands for "serial" (example: ULUS-12345)
_G = The name of the game, serves as how it will be displayed to the player, "G" stands for "game" (example: Tekken 6)
_C0 or _C1 = The name of the cheat to follow or a comment, "C" stands for "comment" not "code". 0 stands for deactivated, 1 for activated (example: "Max Money" incase it is a code or "Use the approriate value from the list and replace it with XX" incase it's a comment)
_L = The actual cheat, the adress followed by the value to be applied (example: _L 0x1234567 0x9ABCDEF)

So a fast fix to go as near as possible to the real CWCheat database, from the little to nothing I understand of coding I was thinking something this:

Instead of:
Code:
+  char* skip = "//";

do this:
Code:
+  char* skip = "//"; -> So it won't break currently generated cheats
+  char* skip = "_S";
+  char* skip = "_G";
+  char* skip = "_C0";

I know it can get condensed but I did it to get more clear.

and for enabled codes something that simply ignores "_L"

Hehe yep. Not a TOTAL rewrite, but i will be taking a look at it tomorrow. I will be fixing the .ini system so that it matches what databases already look like. I will also try to implement a UI to use in-game for enabling and disabling. Can you explain more about
"2. Include extra memory ranges (example: 6XXXXXXX)"

Also about offsetting wrong, we would probably have to include the offsets by hand. The memory addresses I used are static from PPSSPP. I can do it on a title-by-title implementation, but i need the offset itself. Can you tell me the offset for god eater burst so i can test?


RE: CwCheat Support - VIRGIN KLM - 06-12-2013 12:37 PM

(06-12-2013 12:28 PM)makotech222 Wrote:  Hehe yep. Not a TOTAL rewrite, but i will be taking a look at it tomorrow. I will be fixing the .ini system so that it matches what databases already look like. I will also try to implement a UI to use in-game for enabling and disabling. Can you explain more about
"2. Include extra memory ranges (example: 6XXXXXXX)"

Also about offsetting wrong, we would probably have to include the offsets by hand. The memory addresses I used are static from PPSSPP. I can do it on a title-by-title implementation, but i need the offset itself. Can you tell me the offset for god eater burst so i can test?

It's not needed in JPCSP and it uses exactly the same source code for CWCheat. There's eirther something you may be missing or there's something wrong with PPSSPP's memory allocation that is left unnoticed. Possibly the memory may be static but is not allocated as a real PSP's memory. Doing it manualy for each game is the wrong direction since it's a bug.

Also if you make a GUI make sure that you won't mess up in case _C0 is not the name of the code but a comment instead:

Here's how a code name looks like:

Code:
_C0 Max Money
_L 0x1234567 0x9ABCDEF

and here's how comments look like:

Code:
_C0 Play as...
_C0 Change the XX value
_C0 with a value of of the
_C0 list in the characters.txt
_C0 provided in this release
_L 0x1234567 0x00000XX

Notice the row of "_C0"s? It's a comment splitted into lines. You can merge into one thing the whole _C0 lines until it reaches a "_L" line.


RE: CwCheat Support - makotech222 - 06-12-2013 01:09 PM

I tried codes for god eater burst in JPCSP and they didn't work either...


RE: CwCheat Support - VIRGIN KLM - 06-12-2013 01:20 PM

(06-12-2013 01:09 PM)makotech222 Wrote:  I tried codes for god eater burst in JPCSP and they didn't work either...

Then it's a bug on the CWCheat implementation.


RE: CwCheat Support - makotech222 - 06-12-2013 02:32 PM

Its a bug with the game starting at a different offset in PPSSPP. Thats why theres like 5 different sets of codes for different CFW's. I just need the offset and i can fix it.

Fire Emblem on dolphin does the same thing.


RE: CwCheat Support - VIRGIN KLM - 06-12-2013 02:49 PM

(06-12-2013 02:32 PM)makotech222 Wrote:  Its a bug with the game starting at a different offset in PPSSPP. Thats why theres like 5 different sets of codes for different CFW's. I just need the offset and i can fix it.

Fire Emblem on dolphin does the same thing.
I guess Henrik would be able to provide that.


RE: CwCheat Support - makotech222 - 06-12-2013 02:55 PM

I'm not too great with memory address, but you could probably just subtract the difference from the code that works for ppsspp with the codes that are for the regular psp.


RE: CwCheat Support - VIRGIN KLM - 06-12-2013 03:18 PM

I think I just did that some posts above but I bet it's not the same one between different ranges. You could try it though.

Also I forgot to mention one thing about cheats detection.
There are some cheats like, let's say, you can select which stage you want to load. Usualy (well I guess always, but it may be a bit more complicated than just that) it's the address that is responsible for the stage it will load and then comes a 2 digit value that specifies which stage it will load (from 00 to FF). Cheats usually have them wildcarded as "XX" so the user will edit them manualy, it should look like:


_L 0x1234567 0x00000XX

I guess on PPSSPP if you have a cheat like that accidentaly, it will result into an instant crash. You could avoid it by checking if the values contain any non HEX range values so everything else than 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F will make PPSSPP simply ignore the cheat like it's deactivated. It would be proven also good in case there is a small typo on the cheats that somebody may have not detected, so it won't crash PPSSPP! Big Grin You could also return a cheat issue into the LOG like "CHT - Cheat format not correct, ignoring."


RE: CwCheat Support - shokoraku - 06-14-2013 04:42 AM

Well i have problems with it i open my games and it does not create a cheat folder what do i do?