+ Reply to Thread
Showing results 1 to 27 of 27

Thread: How to Hack Cheats the Friendly Way!

  1. #1
    Join Date
    Jan 2011
    Posts
    51

    Lightbulb How to make cheat package and hack cheats

    ....
    Last edited by sesiom316; 02-21-2014 at 10:05 AM

  2. #2
    Join Date
    Aug 2005
    Location
    Calgary
    Posts
    5,056

    Default

    Iv advanced CMP auto tools a bit since 6.1.. i will post up the new Bats later there are some ppl already using it..
    Nice tut .. CMP auto tools was built to be able to do everything that u just done above with Multi tools

    1. Cygwin <-- anything done in this can be already done in CMP auto tools 6.1 ( outside of 3.60+ and NPDRM) Fixed in 6.2
    2. CMP Auto Tools v6.1 <-- New Version 6.2 will upload when home .. think i have a few Tweeks im goin to make first
    3. Hex Workshop / HxD <--- HxD is Packed with 6.2 to make use of the non automated spots
    4. Microsoft Excel (Optional)
    5. Programmer's Notepad <--- CMPSelf>Txt
    6. ps3tools by aldo <--- Auto tools 6.2 Same function
    7. PS3Tools GUI Edition v3.3 by PSDev <--- Auto tools 6.2 Same function
    -------------------------------------------------------------------------------

    4. Now we have our ELF, use vdappc to dissamble it. <---- Handled By CMP SELF>ELF>Text.bat
    7. The HxD window will popup during the convertion. <---- this is so u dont need to use PARAM.SFO it alows you to change the DG to HG/DG or whatever elts.. iv also enhanced the Pkg config so u dont need to change the FW version as well its done auto sets it to 3.41..

    again Thanks for the Tuts and very good to see

    Thanx to anyone that has or is donating to me.. it helps alot with getting new things to hack..
    PS3 Hack PkgsL http://Ps3pkgs.4shared.com/

    Always have your stuff when you need it with @Dropbox.
    Sign up for free! http://db.tt/yqKJ6JdH

  3. #3
    Join Date
    Sep 2012
    Posts
    22

    Default

    Great job ! Love that Excel method, definetely will try it out today. Many thanks.

    BTW : As Skiller said, CMP Auto tools, the new one 6.2 is able to do all of these things.
    New Version 6.2 will upload when home .. think i have a few Tweeks im goin to make first
    Great news, thank you again.
    Last edited by holoPuff; 10-11-2012 at 10:01 AM

  4. #4
    Join Date
    Sep 2012
    Posts
    22

    Default

    Hey, could you also upload your .xlsx? One formula doesn't want to work for me, maybe because of different excel language, I don't know..

  5. #5
    Join Date
    Apr 2008
    Posts
    2,085

    Default

    Quote Originally Posted by sesiom316 View Post
    This where confusion and vomiting for days of work comes in place. Anyways, this is my reference for hacking cheats, thanks @bungholio @medo

    Code:
    http://www.codemasters-project.net/vb/showthread.php?14571-Want-To-Know-How-To-Find-Codes-This-Might-Help-You
    Important notes from @bungholio:
    --------------------------------------------------------------------------------
    Start finding cheat values from these lines:

    Code:
    0008 ble        0008 blt        0008 bge        0008 bgt
    000C ble        000C blt        000C bge        000C bgt
    0010 ble        0010 blt        0010 bge        0010 bgt
    0014 ble        0014 blt        0014 bge        0014 bgt
    Change them to "nop" with the value "60 00 00 00"
    --------------------------------------------------------------------------------
    Search for floats, mainly of "1" which is "3F800000". They are created with "lis" operations. These are all possibilities:

    Code:
    3C003F80        3D003F80        3E003F80        3F003F80
    3C203F80        3D203F80        3E203F80        3F203F80
    3C403F80        3D403F80        3E403F80        3F403F80
    3C603F80        3D603F80        3E603F80        3F603F80
    3C803F80        3D803F80        3E803F80        3F803F80
    3CA03F80        3DA03F80        3EA03F80        3FA03F80
    3CC03F80        3DC03F80        3EC03F80        3FC03F80
    3CE03F80        3DE03F80        3EE03F80        3FE03F80
    Change the "3F80" part to "0000" and then try it out.

    @medo recommends me to look for "lw" or "lwz"
    --------------------------------------------------------------------------------
    Finding specific values (MONEY, STATS, AMMO, LEVEL)
    99,999,999 = 0x05F5E0FF

    "05F5 lis"
    "E0FF ori"

    Most address should look this way:
    line 1 lis
    line 2 ori
    line 3 cmpw(i)
    line 4 ble/blt/bge/bgt

    Change to these line to see if it affects the game:
    line 1 "0000 lis"
    line 2 "???? ori" ? = hex value
    I've been using CATs 6.2 for a few months, mainly just for Disgaea 4. It has all the tools you need to decrypt a game's eboot and then change it back and make a package. The only other tools I use that don't come with it is AutoHotKey which is free and perfect for my lazy butt. For that batch files that come with CATs, I copy and modify them 2 ways. These are the 2 examples I have from both CATs versions 5, and the 6.2 version. I strip them of extra stuff that asks questions so I click and it's done. The parts in red are the only parts that need to change from game to game.

    inFamous CATs 5.1 MakeElf.bat
    SET HOME=C:\CMP Auto Tools
    SET SFILE=inFamous
    SET SREG=NTSC
    SET GAMEID=BCUS98119
    SET VerID=01.50
    SET AVERID=01.50
    MD GamesOutput\"%SFILE%"\%SREG%
    MD GamesOutput\"%SFILE%"\%SREG%\3.55
    MD GamesOutput\"%SFILE%"\%SREG%\3.41
    MD GamesOutput\"%SFILE%"\%SREG%\Mover
    MD GamesOutput\"%SFILE%"\%SREG%\CDreplace
    SET "FIRSTLINE=[www.Codemasters-Project.net]"
    unself.exe GamesSource/"%SFILE%"/%SREG%/USRDIR/EBOOT.BIN EBOOT.Elf
    COPY /Y Eboot.Elf GamesOutput\"%SFILE%"\%SREG%
    vdappc Eboot.ELF 0x0 > GamesOutput/"%SFILE%"/%SREG%/"%SFILE%"-%SREG%.txt
    Exit
    inFamous CATs 5.1 MakeEboot.bat
    SET HOME=C:\CMP Auto Tools
    SET SFILE=inFamous
    SET SREG=NTSC
    SET GAMEID=BCUS98119
    SET VerID=01.50
    SET AVERID=01.50
    MD GamesOutput\"%SFILE%"\%SREG%
    MD GamesOutput\"%SFILE%"\%SREG%\3.55
    MD GamesOutput\"%SFILE%"\%SREG%\3.41
    MD GamesOutput\"%SFILE%"\%SREG%\Mover
    MD GamesOutput\"%SFILE%"\%SREG%\CDreplace
    SET "FIRSTLINE=[www.Codemasters-Project.net]"
    SET PACKAGE=UP0001-%GAMEID%_00-CMPCHEATCODES000
    make_self.exe Eboot.elf EBOOT.BIN
    Move EBOOT.BIN GamesOutput\"%SFILE%"\%SREG%\CDreplace
    make_self_npdrm.exe EBOOT.ELF EBOOT.BIN %PACKAGE%
    Copy /Y EBOOT.BIN GamesOutput\"%SFILE%"\%SREG%\Mover
    XCOPY /Y /S /I "GamesSource\%SFILE%\%SREG%" "GamesTEMP\%GAMEID%"
    MOVE /Y EBOOT.BIN GamesTEMP\%GAMEID%\USRDIR
    MOVE /Y GamesTEMP\PARAM.HIP GamesTEMP\%GAMEID%\
    SET "FIRSTLINE=Content-ID = %PACKAGE%"
    sfopatch.exe GamesTEMP\sfo.info
    MOVE /Y PARAM.SFO GamesTEMP\%GAMEID%\
    psn_package_npdrm.exe GamesTEMP\%GAMEID%.CONF GamesTEMP\%GAMEID%\
    COPY /Y %PACKAGE%.pkg GamesOutput\"%SFILE%"\%SREG%\3.41
    pause
    Disgaea 4 CATs 6.2 MakeElf.bat
    @ECHO OFF
    TITLE CMP Self3Elf2txt your all in one Hacking needs
    IF (%CRETRN%)==(12) GOTO CDONE
    SET CMPBACK=%~dp0
    SET HOME=%~dp0MAIN
    SET SFODIR="%~dp0GamesSource\Disgaea 4\PARAM.SFO"
    SET WHATEVER="%~dp0GamesSource\Disgaea 4"
    "%HOME%\read_sfo.exe" %SFODIR% TITLE_ID> "%HOME%\out.tmp"
    set /p SFOTITLE_ID= < "%HOME%\out.tmp"

    SET GAMENAME=Disgaea 4
    "%HOME%\unself.exe" %WHATEVER%\USRDIR\EBOOT.BIN "%HOME%\ELFS\%GAMENAME%_%SFOTITLE_ID%.ELF"
    "%HOME%\vdappc.exe" "%HOME%\ELFS\%GAMENAME%_%SFOTITLE_ID%.ELF" 0x0 > "%HOME%\TXT\%GAMENAME%_%SFOTITLE_ID%.txt"
    Exit
    Disgaea 4 CATs 6.2 MakeEboot.bat
    @ECHO OFF
    TITLE CMP Auto tools Drag and Drop - Go From Folder to PKg with codes added
    IF (%CRETRN%)==(12) GOTO CDONE
    SET CMPBACK=%~dp0
    SET HOME=%~dp0MAIN
    SET SFODIR="%~dp0\GamesSource\Disgaea 4\PARAM.SFO"
    SET WHATEVER="%~dp0GamesSource\Disgaea 4"

    "%HOME%\read_sfo.exe" %SFODIR% TITLE_ID> "%HOME%\out.tmp"
    set /p SFOTITLE_ID= < "%HOME%\out.tmp"

    "%HOME%\read_sfo.exe" %SFODIR% VERSION> "%HOME%\out.tmp"
    set /p SFOVERSION= < "%HOME%\out.tmp"

    "%HOME%\XCOPY" /Y/S/I/Q %WHATEVER% "%HOME%\GameTMP\%SFOTITLE_ID%"
    SET HGBACK=%SFOTITLE_ID%

    "%HOME%\read_sfo.exe" "%HOME%\GameTMP\%SFOTITLE_ID%\PARAM.SFO" CATEGORY> "%HOME%\out.tmp"
    set /p SFOCATEGORY= < "%HOME%\out.tmp"

    "%HOME%\read_sfo.exe" "%HOME%\GameTMP\%SFOTITLE_ID%\PARAM.SFO" TITLE_ID> "%HOME%\out.tmp"
    set /p SFOTITLE_ID= < "%HOME%\out.tmp"
    IF NOT %SFOCATEGORY%==HG GOTO GAMEDATA
    IF %SFOTITLE_ID%==%HGBACK% GOTO SKIPID
    "%HOME%\XCOPY" /Y/S/I "%HOME%\GameTMP\%HGBACK%" "%HOME%\GameTMP\%SFOTITLE_ID%"

    :SKIPID
    set ContentID=UP0001-%SFOTITLE_ID%_00-CMPAUTOTOOLS00HG
    GOTO UNSEL

    :GAMEDATA
    IF NOT %SFOCATEGORY%==GD GOTO EXIT
    set ContentID=UP0001-%SFOTITLE_ID%_00-CMPAUTOTOOLS00GD

    :UNSEL
    DEL "%HOME%\GameTMP\%SFOTITLE_ID%\USRDIR\EBOOT.BIN "
    IF EXIST "%HOME%\GameTMP\%SFOTITLE_ID%\USRDIR\EBOOT.ELF " GOTO ELFD
    "%HOME%\unself.exe" %WHATEVER%\USRDIR\EBOOT.BIN "%HOME%\GameTMP\%SFOTITLE_ID%\USRDIR\EBOOT.ELF "
    IF ERRORLEVEL 1 GOTO E2ND

    :ELFD
    IF EXIST "%HOME%\Codes" RMDIR /S/Q "%HOME%\Codes"
    MD "%HOME%\Codes"
    Copy /Y "%HOME%\MCodes.txt" "%HOME%\Codes\MCodes.txt"
    Ren "%HOME%\Codes\MCodes.txt" Codes.Bat
    CALL "%HOME%\Codes\CODES.bat"

    :CDONE
    "%HOME%\Make_self.exe" "%HOME%\ELFS\Disgaea 4_BLUS30727.ELF" "%HOME%\CDReplace\EBOOT.BIN"
    "%HOME%\make_self_npdrm.exe" "%HOME%\ELFS\Disgaea 4_BLUS30727.ELF" "%HOME%\GameTMP\%SFOTITLE_ID%\USRDIR\EBOOT.BIN " %ContentID%
    SET "FIRSTLINE=[www.Codemasters-Project.net]"
    del "%HOME%\GameTMP\%SFOTITLE_ID%\USRDIR\EBOOT.ELF "
    "%HOME%\psn_package_npdrm.exe" "%HOME%\config.conf" "%HOME%\GameTMP\%SFOTITLE_ID%"
    del "%HOME%\out.tmp"
    del "%HOME%\config.conf"
    RMDIR /S/Q "%HOME%\GameTMP\"
    RMDIR /S/Q "%HOME%\Codes\"
    :EXIT
    Exit
    :E2ND
    Exit

    I use AutoHotKey with a few scripts I made. 1 script uses the search function in programmer's notepad to find certain operations, copy the entire line, and paste it in a text file for me in order. Depending on what I'm looking for, I use another script to delete lines that I already know I don't want. From there, maybe another script to take the results and find more specific things from them. When I've got the results I'm fine enough with, I then use a last script to take the results from the text file and go to the address in HxD with the eboot open, modifies a line or few, moves to the next result, and repeat countless times, then makes the package and names it with the game name, what I changed, how many lines, and the last modified address. I can then just go to work, and when I'm done I come back and have a bunch of packages I can test, and type down the results.

  6. #6
    Join Date
    Sep 2012
    Posts
    22

    Default

    Okay, last question for now. Let's say I have found something like that:

    0006B56C: 2B800009 cr7,r0,9
    How do I know what should I change in "2B800009" to hack something? Could you say something more on that part?

  7. #7
    Join Date
    Apr 2008
    Posts
    2,085

    Default

    These would be my AutoHotKey scripts. They can definitely be improved upon I'm guessing, I'm just too lazy to learn because these work for me well enough. Things may be different depending on computer settings that display full folder or file paths, hidden extensions, or possibly other things. AHK can parse text and do much more advanced stuff, but I'm really lazy and impatient.

    /*
    With all of these, I have a few things open. I have C:\CMP Auto Tools 6.2\, C:\CMP Auto Tools 6.2\GamesSource\Disgaea 4\, my text file for the game, temp1.txt, temp2.txt, HxD with the game's elf file open, and programmer's notepad with the game's text file for assembly open. I also have an unmodified copy of each game's elf file too. The script could be made much better I'm guessing, I don't know much about how to script.
    */
    #InstallKeybdHook

    #z::
    ;take things from text file, apply them to eboot, compile, name, delete elf and copy unmodified copy.
    loop 1 ;how many times I want this entire script to loop. I usually set it high to go on forever.
    {
    Loop 47 ;set how many lines of code you want modified. I usually use more even numbers, lie 1024, 512, 256, 128, 64, 32, and on just dividing like that.
    {
    WinActivate, Disgaea 4.txt - WordPad ;bring the game text file window to the front.
    WinWait, Disgaea 4.txt - WordPad ;make sure to wait for it to open before continuing.
    Send, {HOME}{SHIFTDOWN}{CTRLDOWN}{RIGHT}{SHIFTUP}c{CTRLU P} ;I always have the cursor on the first line of code I want modified, then this gets to the first line, selects the address, and copies it.
    WinActivate, HxD - [C:\CMP Auto Tools 6.2\MAIN\ELFS\Disgaea 4_BLUS30727.ELF] ;bring the game's elf file window to the front.
    WinWaitActive, HxD - [C:\CMP Auto Tools 6.2\MAIN\ELFS\Disgaea 4_BLUS30727.ELF] ;wait before continuing.
    Sleep, 100 ;force it to wait 1/10 of a second because sometimes it doesn't wait.
    Send, {CTRLDOWN}gv{CTRLUP}{ENTER}60000000 ;go to the address and give it the value 60000000 which deletes the line. I don't always do that either, sometimes I might always force a branch with 4800 or do other things.
    WinActivate, Disgaea 4.txt - WordPad ;go back to the text file.
    WinWaitActive, Disgaea 4.txt - WordPad
    Sleep, 100
    Send, {DOWN}{HOME} ;go to the next line to be modified and then repeat this script 46 more times.
    }
    WinActivate, Disgaea 4.txt - WordPad ;done modifying 47 lines of code, activate text file.
    WinWaitActive, Disgaea 4.txt - WordPad
    Send,47={ENTER 3} ;type "47=" to mark the area for me, and press enter 3 times.
    WinActivate, HxD - [C:\CMP Auto Tools 6.2\MAIN\ELFS\Disgaea 4_BLUS30727.ELF] ;go to the elf file.
    WinWaitActive, HxD - [C:\CMP Auto Tools 6.2\MAIN\ELFS\Disgaea 4_BLUS30727.ELF]
    Sleep, 1000 ;wait 1 second.
    Send, {ALTDOWN}{F4}{ALTUP} ;press ALT+F4 to get the save and exit prompt.
    Sleep, 1000 ;wait 1 second.
    Send, y ;press y to save the elf file and exit.
    WinWaitClose, HxD - [C:\CMP Auto Tools 6.2\MAIN\ELFS\Disgaea 4_BLUS30727.ELF] ;wait for the elf file to completely close before continuing.
    RunWait, Disgaea 4 MakeEboot.bat, C:\CMP Auto Tools 6.2\ ;run the batch file I made for the game to make a package, and wait for it to close before continuing.
    WinWaitClose, Disgaea 4 MakeEboot.bat ;just another precaution to make sure it closes before continuing.
    Sleep, 1000 ;wait 1 second.
    FileRecycle, C:\CMP Auto Tools 6.2\MAIN\ELFS\Disgaea 4_BLUS30727.ELF ;send the elf file to the recycle bin.
    FileRecycleEmpty, C:\ ;empty the recycling bin.
    Sleep, 1000 ;wait 1 second.
    FileCopy, C:\CMP Auto Tools 6.2\MAIN\ELFS\Disgaea 4_BLUS30727 - Copy.ELF, C:\CMP Auto Tools 6.2\MAIN\ELFS \Disgaea 4_BLUS30727.ELF ;make a copy of my unmodified copy of the elf file and rename it without the " - Copy" part.
    Sleep, 3000 ;wait 3 seconds, it's doing a few things and sometimes I need to increase the wait depending on how big the game's elf file is.
    WinActivate, C:\CMP Auto Tools 6.2 ;activate this folder.
    WinWaitActive, C:\CMP Auto Tools 6.2
    Sleep, 1000 ;wait 1 second.
    Send, up0001{F2}Disgaea4_bgt947_{CTRLDOWN}v{CTRLUP}{ENTE R} ;the batch file made the package in that directory. This selects the file, and renames it with game name, things I modified, how many lines, and the last line that was modified.
    Sleep, 1000 ;wait 1 second.
    Run, Disgaea 4_BLUS30727.ELF, C:\CMP Auto Tools 6.2\MAIN\ELFS\ ;open the new unmodified copy of the elf file.
    Sleep, 2000 ;wait to seconds.
    }
    return

    #a::
    ;transfer from programmer's notepad to a text file.
    Loop 999999 ;how many lines to get. Set to go forever usually.
    {
    WinActivate, Programmer's Notepad - [Disgaea 4_BLUS30727.txt] ;activate the programmer's notepad window for the game.
    WinWaitActive, Programmer's Notepad - [Disgaea 4_BLUS30727.txt]
    SendInput, {F3}{HOME}{SHIFTDOWN}{END}{SHIFTUP}{CTRLDOWN}c{CTR LUP} ;when I open programmer's notepad, I manually type what I'm looking for and search once, then I return to the beginning of the text. This then presses F3 to go to the next result, goes to the beginning of the line, selects the entire line, and then copies it. Sometimes I'll make it copy 2 or more lines at a time.
    Sleep, 2000 ;wait 2 seconds because sometimes there are huge gaps between results which makes programmer's notepad take a moment, and if it doesn't get there in time it ends up as a duplicate in the list.
    WinActivate, Disgaea 4.txt - WordPad ;activate the game's text file window.
    WinWaitActive, Disgaea 4.txt - WordPad
    SendInput, {CTRLDOWN}v{CTRLUP}{ENTER} ;copy the result in the text file and go to the next line.
    }
    return

    #q::
    ;used in an open text file to search and delete.
    Loop 1131072
    {
    ;Send, {F3}{END}{SHIFTDOWN}{HOME}{LEFT}{SHIFTUP}{DELETE}
    Send, {F3}{HOME}{UP}{SHIFTDOWN}{DOWN}{END}{SHIFTUP}{BACK SPACE} ;I use these 2 for things I know I don't want. If I were to search for results that were a store operation, I already know I don't want them if they store to register r1. So I manually search for "(r1)" once, then run the script to delete all of them. At times I'll have it delete 2 lines at a time if my results were searching for certain sequences of lines, like what I would do with windows key + w or whatever I grab from programmer's notepad.
    }
    return

    #w::
    ;used to transfer some work in progress thing from 1 temp text file to another. It's only used if I searched for results that were more than 1 line.
    Loop 999
    {
    WinActivate, temp1.txt - WordPad ;activate the temp1 text file window.
    WinWaitActive, temp1.txt - WordPad
    Send, {F3}{END}{SHIFTDOWN}{HOME}{UP 2}{SHIFTUP}{CTRLDOWN}x{CTRLUP}{DOWN 3} ;I do a manual search first for a certain thing, go to the beginning, run the script, it cuts the result, and goes to the next result.
    WinActivate, temp2.txt - WordPad ;activate the 2nd temp file window.
    WinWaitActive, temp2.txt - WordPad
    Send, {CTRLDOWN}v{CTRLUP}{ENTER} ;paste the result her, go to next line.
    }
    return

    #v::
    ;used for temp1 to re-add lines from programmer's notepad.
    Loop 999
    {
    WinActivate, temp1.txt - WordPad ;activate temp file window.
    WinWaitActive, temp1.txt - WordPad
    Send, {END}{SHIFTDOWN}{HOME}{SHIFTUP}{CTRLDOWN}c{CTRLUP} ;copy a result.
    Sleep, 50 ;wait.
    WinActivate, Programmer's Notepad - [Disgaea 4_BLUS30727.txt] ;activate programmer's notepad.
    WinWaitActive, Programmer's Notepad - [Disgaea 4_BLUS30727.txt]
    Send, {CTRLDOWN}fv{CTRLUP}{ENTER} ;open search window and go to that exact result.
    Sleep, 2000 ;wait, sometimes it takes a while to get to the result.
    Send, {DOWN}{END}{SHIFTDOWN}{HOME}{SHIFTUP}{CTRLDOWN}c{C TRLUP} ;copy a line before or after the result.
    WinActivate, temp1.txt - WordPad ;go to temp file window.
    WinWaitActive, temp1.txt - WordPad
    Sleep, 50
    Send, {END}{ENTER}{CTRLDOWN}v{CTRLUP}{DOWN 2} ;add the new line to the result and go to the next one.
    }
    return

    This is an example of how I've used them all for Disgaea 4. I wanted to find the code that modifies how senators vote and love me, but the method I used for 3 didn't work because 4 doesn't separate individual area's enemies stats. So I looked at the code and saw it like this:
    001A1704: A13C0418 lhz r9,1048(r28)
    001A1708: 7C004A14 add r0,r0,r9
    001A170C: B01C0418 sth r0,1048(r28)

    001A178C: A13C0418 lhz r9,1048(r28)
    001A1790: 7C004A14 add r0,r0,r9
    001A1794: B01C0418 sth r0,1048(r28)

    I see it takes whatever 2 byte value, adds something to it, and saves the new value back where it came from. So I'd be looking for 3 lines like this:

    lhz, r"whatever",offset1(r"whatever2")
    add, r"whatever3",stuff
    sth, r"whatever3",offset1(r"whatever2")

    The offset loaded from and stored to are the same and from the same register. The value created from adding is the value stored at the address.

    Since I'm lazy, I never bothered figuring out how to make AHK parse text and do stuff like this for me while searching. So I took the route of using the windows key + a script to search for all instances of "sth" because it could be any register with any offset, and I have it copy the line before it too. Once that's done, I use the windows key + q script to search for all results that store to "(r1)" and delete them because I already know it's none of them. After that I I use the windows key + w script to search results that have an "add" operation before them. So that transfers all of them that are like this to temp2:
    add r?????
    sth r????(r?)
    After that, I manually delete everything in temp1 and transfer the stuff from temp2 to it. It then use the windows key + v script to get the line that comes before the line that has "add". I then use the windows key + w script again to get only the results that have a "lhz" just before the "add". So now in temp2 there's only results that have those 3 in order like:
    lhz r?????
    add r?????
    sth r?????
    I never learned how to use AutoHotKey to do this next ask for me, so I manually do it myself. I'll make up the registers and stuff so they show an example of what they can be.

    lhz r9, 100(r3) <---I need to make sure the first register the value is loaded into is used in the next line that adds, and make sure the offset and register loaded from will be the same for the third line that does "sth".
    add r0, r0, r9 <---The first register must match the first one for the next line that's "sth", and one of the next 2 must match the first one from the previous "lhz" line.
    sth r0, 100(r3) <---The first register must match the first of the previous "add", and the offset and second register must match the ones from the previous "lhz" line.

    So I do that since there aren't many results, and I have 42 results remaining. I then use the windows key + w script to put them in temp2 in numerical order of which register is being stored. I end up with these:
    0001947C: A009039E lhz r0,926(r9)
    00019480: 7C030214 add r0,r3,r0
    00019484: B009039E sth r0,926(r9)
    0001953C: A009039E lhz r0,926(r9)
    00019540: 7C030214 add r0,r3,r0
    00019544: B009039E sth r0,926(r9)
    001276B8: A13D04A0 lhz r9,1184(r29)
    001276BC: 7C004A14 add r0,r0,r9
    001276C0: B01D04A0 sth r0,1184(r29)
    00127740: A13304A0 lhz r9,1184(r19)
    00127744: 7C004A14 add r0,r0,r9
    00127748: B01304A0 sth r0,1184(r19)
    00138A38: A0093960 lhz r0,14688(r9)
    00138A3C: 7C0B0214 add r0,r11,r0
    00138A40: B0093960 sth r0,14688(r9)
    00139220: A0093960 lhz r0,14688(r9)
    00139224: 7C030214 add r0,r3,r0
    00139228: B0093960 sth r0,14688(r9)
    0013924C: A0093968 lhz r0,14696(r9)
    00139250: 7C030214 add r0,r3,r0
    00139254: B0093968 sth r0,14696(r9)
    00205E54: A12B0000 lhz r9,0(r11)
    00205E58: 7C004A14 add r0,r0,r9
    00205E5C: B00B0000 sth r0,0(r11)
    00252A40: A003018A lhz r0,394(r3)
    00252A44: 7C002214 add r0,r0,r4
    00252A48: B003018A sth r0,394(r3)
    002681A4: A009FB62 lhz r0,-1182(r9)
    002681A8: 7C030214 add r0,r3,r0
    002681AC: B009FB62 sth r0,-1182(r9)
    002681CC: A009FB64 lhz r0,-1180(r9)
    002681D0: 7C0B0214 add r0,r11,r0
    002681D4: B009FB64 sth r0,-1180(r9)
    00269198: A0090000 lhz r0,0(r9)
    0026919C: 7C060214 add r0,r6,r0
    002691A0: B0090000 sth r0,0(r9)
    002691A4: A0090004 lhz r0,4(r9)
    002691A8: 7C080214 add r0,r8,r0
    002691AC: B0090004 sth r0,4(r9)
    002691B0: A0090006 lhz r0,6(r9)
    002691B4: 7C0A0214 add r0,r10,r0
    002691B8: B0090006 sth r0,6(r9)
    002691BC: A0090008 lhz r0,8(r9)
    002691C0: 7C0B0214 add r0,r11,r0
    002691C4: B0090008 sth r0,8(r9)
    00273058: A00300EC lhz r0,236(r3)
    0027305C: 7C005A14 add r0,r0,r11
    00273060: B00300EC sth r0,236(r3)
    002730AC: A00300EE lhz r0,238(r3)
    002730B0: 7C004A14 add r0,r0,r9
    002730B4: B00300EE sth r0,238(r3)
    00291EF0: A009D6CE lhz r0,-10546(r9)
    00291EF4: 7C150214 add r0,r21,r0
    00291EF8: B009D6CE sth r0,-10546(r9)
    002D6EE4: A0030002 lhz r0,2(r3)
    002D6EE8: 7C040214 add r0,r4,r0
    002D6EEC: B0030002 sth r0,2(r3)
    002DCA24: A12B0000 lhz r9,0(r11)
    002DCA28: 7C004A14 add r0,r0,r9
    002DCA2C: B00B0000 sth r0,0(r11)
    002ED59C: A007A834 lhz r0,-22476(r7)
    002ED5A0: 7C0A0214 add r0,r10,r0
    002ED5A4: B007A834 sth r0,-22476(r7)
    002ED620: A00AA834 lhz r0,-22476(r10)
    002ED624: 7C090214 add r0,r9,r0
    002ED628: B00AA834 sth r0,-22476(r10)
    002ED7EC: A00AA830 lhz r0,-22480(r10)
    002ED7F0: 7C1D0214 add r0,r29,r0
    002ED7F4: B00AA830 sth r0,-22480(r10)
    002ED7F8: A00AA834 lhz r0,-22476(r10)
    002ED7FC: 7C1D0214 add r0,r29,r0
    002ED800: B00AA834 sth r0,-22476(r10)
    002ED824: A00AA832 lhz r0,-22478(r10)
    002ED828: 7C1D0214 add r0,r29,r0
    002ED82C: B00AA832 sth r0,-22478(r10)
    0031D4F8: A00B054E lhz r0,1358(r11)
    0031D4FC: 7C004A14 add r0,r0,r9
    0031D500: B00B054E sth r0,1358(r11)


    0005AADC: A009A838 lhz r0,-22472(r9)
    0005AAE0: 7C630214 add r3,r3,r0
    0005AAE4: B069A838 sth r3,-22472(r9)
    0026908C: A01C0004 lhz r0,4(r28)
    00269090: 7C630214 add r3,r3,r0
    00269094: B07C0004 sth r3,4(r28)
    002690A4: A01C0006 lhz r0,6(r28)
    002690A8: 7C630214 add r3,r3,r0
    002690AC: B07C0006 sth r3,6(r28)
    002690BC: A01C0008 lhz r0,8(r28)
    002690C0: 7C630214 add r3,r3,r0
    002690C4: B07C0008 sth r3,8(r28)


    002529F8: A0030202 lhz r0,514(r3)
    002529FC: 7C840214 add r4,r4,r0
    00252A00: B0830202 sth r4,514(r3)
    00252A08: A0030204 lhz r0,516(r3)
    00252A0C: 7C840214 add r4,r4,r0
    00252A10: B0830204 sth r4,516(r3)
    00252A18: A0030206 lhz r0,518(r3)
    00252A1C: 7C840214 add r4,r4,r0
    00252A20: B0830206 sth r4,518(r3)
    002BB5EC: A0030112 lhz r0,274(r3)
    002BB5F0: 7C840214 add r4,r4,r0
    002BB5F4: B0830112 sth r4,274(r3)
    002BB628: A0030110 lhz r0,272(r3)
    002BB62C: 7C840214 add r4,r4,r0
    002BB630: B0830110 sth r4,272(r3)
    002E5958: A01C0000 lhz r0,0(r28)
    002E595C: 7C840214 add r4,r4,r0
    002E5960: B09C0000 sth r4,0(r28)
    002EF66C: A01D0000 lhz r0,0(r29)
    002EF670: 7C840214 add r4,r4,r0
    002EF674: B09D0000 sth r4,0(r29)
    002F8060: A01C0000 lhz r0,0(r28)
    002F8064: 7C840214 add r4,r4,r0
    002F8068: B09C0000 sth r4,0(r28)
    002F8060: A01C0000 lhz r0,0(r28)
    002F8064: 7C840214 add r4,r4,r0
    002F8068: B09C0000 sth r4,0(r28)


    00145114: A0030004 lhz r0,4(r3)
    00145118: 7CA50214 add r5,r5,r0
    0014511C: B0A30004 sth r5,4(r3)


    003510B4: A00B0000 lhz r0,0(r11)
    003510B8: 7D290214 add r9,r9,r0
    003510BC: B12B0000 sth r9,0(r11)


    00293BA0: A009CD34 lhz r0,-13004(r9)
    00293BA4: 7D6B0214 add r11,r11,r0
    00293BA8: B169CD34 sth r11,-13004(r9)
    002B6368: A009CD34 lhz r0,-13004(r9)
    002B636C: 7D6A0214 add r11,r10,r0
    002B6370: B169CD34 sth r11,-13004(r9)
    So now what matters is the value being stored, so I need to set a value. I took the easy route of using a "li" that uses the same register with a value of 7FFF. So if it started with "sth r0," I know to change the "add" operation before it to "li r0, value 7FFF". If it's "sth r4," I change the "add" before it to "li r4, value 7FFF".

    So now I finally use my windows key + z script to go through them separately. I have 25 of them that stored register r0, so I alter it to go to the lines that do "add" and give them the value "38007FFF". It makes a package, I try it out. I know this is all assumption and no guarantee, but Disgaea 4 looks and acts very much like 3, just like 2 and 1. So that gets my hope up. I call the senate and select something with about a 50% chance of passing. I select it, and I see all senators are blue. Just to make sure, I have them vote and win. I then select to extort money from senators because that always has a 1% chance to pass. I select it, everyone is blue and loves me. I vote, I win, and feel happy I lucked out finding it. So I have 25 results, I start trying half at a time. I try 13, then 7, then 4, then 2, then 1, and it turns out I only need one line compared to Disgaea 3 that needed 2. Code found.






    You can be very lazy though and luck out. A simple example of that I had for Katamari Forever's code to always have full water. All I know is that it's a decreasing timer, a meter, so it's very likely a float. So I know if I delete the correct operation that is a "stfs" or "stfd" operation, it should stop decreasing. So I use AHK to find "stf" lines in programmer's notepad, and delete all that store to register r1. Try a bunch at a time, and who knows what I'll spot. Maybe the level timer won't decrease, something might affect item weight, or the game might freeze somewhere or not even start. Whatever happens, I type it down and either move on or single things out by trying half at a time. I didn't need to do any thinking to make the code work, just deleted that line with value "60000000" and that's all I needed to do.

  8. #8
    Join Date
    Apr 2008
    Posts
    2,085

    Default

    @holopuff

    For this: 0006B56C: 2B800009 cr7,r0,9

    Who knows what it affects. But to check how it's at least being used, look for a branch after it maybe 1 to 10 lines down that uses "cr7" which is comparison register 7. If ble or bgt is after it, it's probably enforcing a limit. If it's don't beq or bne, it's probably checking what it is for a purpose, like there being 14 player classes to choose and it deciding which class to run code for. You can cancel a branch or any line of code with "60000000", or force any branch by changing the first 4 numbers to "4800". You can also change the value that comparison is looking at because it compares to the last 4 digits "2B800009". You can change that value to 0 as a simple way to usually max something out, or change it to another value to get different effects if it's being used to separate and run code for certain things.

  9. #9
    Join Date
    Sep 2012
    Posts
    22

    Default

    Thanks didn't know about all of these things. Will also read your "Need find with helping codes?" thread. I thought that I can change value to what I want, for example from 2B800009 to 2BFAAF3A, but it looks like I cannot.

  10. #10
    Join Date
    Apr 2008
    Posts
    2,085

    Default

    You can change the value, you just need to know what operation that value does. It helps to know binary to break these things down. To break down what makes that code what it is, you have this:
    2B800009 cmplwi cr7,r0,9
    0010 1011 1000 0000 0000 0000 0000 1001
    0010 1011 1000 0000 = the operation and registers used.
    0000 0000 0000 1001 = the value to compare the register to.

    001010 111 00 00000 = the operation is 6 bits, comparison register 7 is 3 bits, then there's 2 unused bits, and r0 is 5 bits.
    001010 = cmplwi = compare 4 bytes of a register(r0) to a value you supply(0009), and store the conclusion of the comparison in the selected comparison register(cr7). I honestly don't know what the "l" in cmplwi means, I just use it the way it is anyway.

    An example of how to change it:
    cmplwi cr5,r29,9999
    001010 101 00 11101 0010 0111 0000 1111
    cr5 = 101
    r29 = 11101
    9999 = "270F" = 0010 0111 0000 1111

    You just need to know binary and how the operations are made.
    Operations that in any way supply a value usually have the first 6 bits as the operation, the next 5 bits is a register, the next 5 is another register, and the last 16 bits is a value you supply. ORI r9,r10,4567 = 011000 01001 01010 0100 0101 0110 0111 = 612A4567
    Operations that just use registers without supplied values usually have something like the first 6 bits used in the operation for whatever, next 5 is a register, next 5 another register, next 5 another register, next 5 used in the operation for whatever, and the last 6 bits is the operation. The 2 parts used in the operation aren't always used, and often end up just being 0's. ADD r0,r3,r0 = 011111 00000 00011 00000 01000 010100 = 7C030214
    For unconditional branches (b) and branch and link operations (bl), the first 6 bits determines the operation and the remaining 26 bits determine how far it will branch.

    The thread I made about how to find codes will look incredibly big, but that's just mainly because I was listing every address I encountered to show people exactly what I did. If there were a text option on these forums for it, I'd have the addresses set to hidden unless you click to show them and expand them in a box.
    Last edited by bungholio; 10-13-2012 at 11:47 AM

  11. #11
    Join Date
    Sep 2012
    Posts
    22

    Default

    "easy stuff" : \

    It's really hard for me to understand all of that.

    Thanks anyway, definitely will try to learn something from this. If you have any other useful advices for begginners, feel free to post. Hopefully I will hack something someday..
    Last edited by holoPuff; 10-13-2012 at 12:56 PM

  12. #12
    Join Date
    Apr 2008
    Posts
    2,085

    Default

    I have IDA and didn't really try it much. It looks like it might be able to index a few more things for me that could allow me to find a few codes I lost patience with before, like maybe infinite health for me only in Resistance 2, or the same thing for Singularity. It also looks like it gives me a graph of the flow of code in a function which could save me some more thinking. However, I really haven't tried it for much longer than 30 minutes.

    For the thing that shows up as "Gil" for you, didn't IDA somehow find that string of text in the PS3 game?? Because if that is so, it might even have a bit more handy things for me.

  13. #13
    Join Date
    Mar 2011
    Posts
    1,051

    Default

    Quote Originally Posted by sesiom316 View Post
    WOW! IDA hacking was clarified to me by @Skiller! I'm almost there now and I really owe you this one! Thanks a bunch!
    waiting for your first code

  14. #14
    Join Date
    Nov 2011
    Location
    Brazil - São Paulo
    Posts
    339

    Default

    I think this is the same system as cheat engine .-. maybe they could create an cheat engine for PS3 too(in a possible future, like they create these systems for android... maybe it would be the same method who knows, cause for android we have GameKiller, Game Guardian and other search engines(GameCIH for example), maybe it's possible to create an engine like this for PS3 with an Hotkey(a homebrew) for open the window and search for the values during gameplay(it would make much more easier the search for codes if the game is a rpg for example...) .-. Thanks to this tutorial, and bungholio tips, i'm starting to understand all these things in valors, my error was always try search into eboot.elf and not .txt .-.(and cygwin make things much more easier, thanks for who create it /o/) ^^, I've finally learned how to use CMP auto tools after all this time e.e(And i don't know how, but who create the engine create a manner to block it from search some games too, maybe because some people still cheat while play online e.e .-.)

  15. #15
    Join Date
    Apr 2008
    Posts
    2,085

    Default

    It can be justified that they block it these days because of online. However, the era of N64 and PS1 and before them had no online capability. They still had a cow for no reason even though everything was offline. They just have sticks up their asses.

  16. #16
    Join Date
    Nov 2011
    Location
    Brazil - São Paulo
    Posts
    339

    Default

    Sesion, xtatu give another type about search, he said this:
    The floats bungholio give were 3F80 = 1x
    xtatu give another floats for search: 40820008(starts in this adress...) = 2x

    and search for values and parameters like:
    99= 0063 for find
    100=0064 for find
    999= 03e7 search for this to find
    9999=270f you can find this too
    99999=1869f you use only 869f to find
    999999=f423f this is 423f to find
    This helps with status and parameters in the game... .-.

    And he recommended change for beq and bne too .-.

  17. #17
    Join Date
    Sep 2012
    Posts
    2

    Default

    HI GUYS.
    i am also try a shot of them. about those progress which you tell. could you make a video clearly that we can see. you can use screen capture videos etc. that we can know what do do exactly. thanks for help. i am try to hack darksiders2 at the moment.

  18. #18
    Join Date
    Nov 2011
    Location
    Brazil - São Paulo
    Posts
    339

    Default

    I find something that can help many people with understanding some of assembly code language, here it is: (I think this was interesting because mod the words and commands we use in the eboots too .-.)
    http://www.textmaestro.com/InfoEx_17...t_Assembly.htm
    A Example with assembly codes and some actions they do in the text file .-.

    http://cs.smith.edu/~thiebaut/ArtOfA...09/CH09-8.html
    And this is a tutorial how to multiply values in asm format .-.(apparently)

    http://www.ece.uah.edu/~milenka/cpe3...ProgReader.pdf
    Explains how to use the assembly with some commands and some other functions they do .-.

    This site was the more explained in my opinion:
    http://www.toves.org/books/arm/
    ^^, maybe someone would like to learn something while reading these .-.

    Another one that calls my attention was this site:
    http://www.csd.uwo.ca/~mburrel/stuff/ppc-asm.html
    There have a tutorial in how to use PPC language(eboot.elf language) and a blog for helping who wanna learn more about what was the commands and what they do(lwz, ble, r1,r0... etc '-')

    Another One Explaining about giving commands using PPC Language(.elf files language edit and explain about branchs and even frames for who wanna learn the language .-.):
    http://wiki.netbsd.org/examples/elf_...s_for_powerpc/

    And at last a japanese site showing "All" PPC Commands and what they do in library form o.O(how these japaneses exist? are they even humans? o.O)
    http://www.super-computing.org/~ysd/yuke/ppcasm.html
    Last edited by JorgeFFC; 11-09-2012 at 12:05 PM

  19. #19
    Join Date
    Jan 2011
    Posts
    12

    Default

    Get IDA if you can, it's easier to read ppc disassembly opcodes.

  20. #20
    Join Date
    Nov 2011
    Location
    Brazil - São Paulo
    Posts
    339

    Default

    One more page for who is studying about ASM PPC Language http://publib.boulder.ibm.com/infoce...f/alangref.pdf

  21. #21
    Join Date
    Dec 2012
    Posts
    10

    Default

    I've followed your tutorial but when I put EBOOT.ELF file into BLES01301/USRDIR/ (BLES01301 is Gundam 3), it generate a PKG without EBOOT.BIN.
    If I unself EBOOT.BIN to EBOOT.ELF and modify address (add cheat code) and then encrypt to EBOOT.BIN again and put to BLES01301/USRDIR/ the package exist EBOOT.BIN in USRDIR folder.

    Can you please clarify me why the first case doesn't contain EBOOT.BIN???

  22. #22
    Join Date
    Apr 2008
    Posts
    2,085

    Default

    Unless you've modified your version of CMP Auto Tools, you don't need to put EBOOT.ELF in the /GamesSource/Game/USRDIR/ folder. It is read from the /MAIN/ELFS/ directory. That's the one you need to modify.

  23. #23
    Join Date
    Dec 2012
    Posts
    10

    Default

    Thanks for your help bungholio, I was success build cheat package and work fine for Rogero 4.30 using unself, scetool, make_self_npdrm, psn_package_npdrm and package_finalize with CMP Auto Tool command

  24. #24
    Join Date
    Jul 2011
    Posts
    34

    Default

    Instead of setting a fixed time to wait for search to complete, try this script for AutoHotKey and Notepad++. Make use of the status bar text, info from window spy(right click autohotkey icon). it also stops automatically after reaching the end and going back to the start.

    Code:
    WinActivate, EBOOT TXT
    WinWaitActive, EBOOT TXT
    StatusBarGetText, OrigText, 3 ;
    SendInput, {F3} ;
    StatusBarWait, ^(?!^\Q%OrigText%\E$)  ; 
    StatusBarGetText, IniText, 3 ;
    SendInput, {HOME}{SHIFTDOWN}{END}{SHIFTUP}{CTRLDOWN}c{CTRLUP} ;
    WinActivate, Vanquish\.txt - Notepad ;
    WinWaitActive, Vanquish\.txt - Notepad ;
    SendInput, {CTRLDOWN}v{CTRLUP}{ENTER} ;
    Loop
    {
    WinActivate, EBOOT TXT
    WinWaitActive, EBOOT TXT
    StatusBarGetText, OrigText, 3 ;
    SendInput, {F3} ;
    StatusBarWait, ^(?!^\Q%OrigText%\E$)  ; 
    StatusBarGetText, NewText, 3 ;
    if (NewText = IniText)
    {
    Break ;
    }
    else
    {
    SendInput, {HOME}{SHIFTDOWN}{END}{SHIFTUP}{CTRLDOWN}c{CTRLUP} ;
    WinActivate, Vanquish\.txt - Notepad ;
    WinWaitActive, Vanquish\.txt - Notepad ;
    SendInput, {CTRLDOWN}v{CTRLUP}{ENTER} ;
    }
    }
    Return ;
    Last edited by predprey; 12-15-2012 at 08:52 AM

  25. #25
    Join Date
    Apr 2008
    Posts
    2,085

    Default

    This is what I've been using lately to make things easier for me:

    Code:
    #InstallKeybdHook
    Game := "Mini Ninjas"
    GameElf := "BLUS30284"
    Home := "C:\CMP Auto Tools 6.2"
    GameTextFile = Programmer's Notepad - [%Game%_%GameElf%.txt *]
    GameASMTextFile = Programmer's Notepad - [%Game%_%GameElf%.txt]
    HxD = HxD - [%Home%\MAIN\ELFS\%Game%_%GameElf%.ELF]
    
    ; With all of these, adjust the "Sleep" durations accordingly. Some computers are faster than others at opening files, and some PS3 games have much bigger executables than others. Because of that, running the batch files for games to create packages or the binary files can take different amount of times to fully create even after the batch file has finished, and your computer's processing speed also affects that. Opening the created text file in programmer's notepad can take anywhere from 2 seconds to 20 seconds depending on how big the game's executable is and how fast your computer is. Adjust things as you need to.
    
    #z::
    ; Take things from text file, apply them to eboot, compile, name, delete elf and copy unmodified copy.
    ; InputBox, Loopcount, Loopcount
    Loopcount = 2
    Modtype := "0008bgt"
    IfWinNotExist, %HxD%
    {
       Run, %Home%\MAIN\ELFS\%Game%_%GameElf%.ELF
       Sleep, 3000
    }
    Sleep, 100
    Loop 1
    {
       Loop %Loopcount%
       {
          WinActivate, %GameTextFile%
          Send, {HOME}+^{RIGHT}
          Sleep, 150
          Send, ^c
          WinActivate, %HxD%
          Sleep, 300
          Send, ^g
          Sleep, 150
          Send, ^v{ENTER}60000000
          Sleep, 150
          WinActivate, %GameTextFile%
          Sleep, 300
          Send, {DOWN}{HOME}
       }
    ;   Send, %Loopcount%={ENTER}%Loopcount%forced={ENTER 3}
       Send, %Loopcount%forced={ENTER 3}
       WinActivate, %HxD%
       Sleep, 300
       Send, ^s
       Sleep, 3000
       Send, ^s
       Sleep, 3000
       WinClose, %HxD%,
       WinWaitClose, %HxD%
       Sleep, 2000
       RunWait, %Game%_%GameElf% MakeEboot.bat, %Home%\
       WinWaitClose, %Game%_%GameElf% MakeEboot.bat
       Sleep, 1000
       FileRecycle, %Home%\MAIN\ELFS\%Game%_%GameElf%.ELF
       FileRecycleEmpty, C:\
       Sleep, 1000
       FileCopy, %Home%\MAIN\ELFS\%Game%_%GameElf% - Copy.ELF, %Home%\MAIN\ELFS\%Game%_%GameElf%.ELF
       Sleep, 3000
       FileMove, %Home%\UP0001-%GameElf%_00-CMPAUTOTOOLS00GD.pkg, %Home%\%Game%_%ModType%_%Loopcount%_%clipboard%.pkg
       Sleep, 3000
       Run, %Game%_%GameElf%.ELF, %Home%\MAIN\ELFS\
       Sleep, 3000
    }
    return
    
    #a::
    ;transfer whatever you are looking for from programmer's notepad to a text file.
    IfWinNotExist, %GameASMTextFile%
    {
       Run, pn.exe, %Home%\OtherTools\Programmer's Notepad 2\
       Sleep, 1000
       WinActivate, Programmer's Notepad - [Untitled]
       Send, ^o
       Sleep, 1000
       Send, %Home%\MAIN\TXT\%Game%_%GameElf%.txt{ENTER}
       Send, ^o
       Sleep, 1000
       Send, %Home%\temp1.txt   
       Return
    }
    Loop 9999999
    {
    SendInput, {F3}
    Sleep, 200
    SendInput, {HOME}+{END}^c
    SendInput, ^{TAB}
    Sleep, 50
    SendInput, ^v{ENTER}
    SendInput, ^{TAB}
    }
    return
    
    #q::
    ; Used in an open text file to search and delete. Open the search box and type whatever you are looking for and search for it at least once.
    Loop 1131072
    {
    ;Send, {F3}{DOWN}+{UP}+{HOME}+{UP 2}{BACKSPACE}
    ;Sleep, 150
    ;Send, {F3}{HOME}+{END}{BACKSPACE 2}
    Send, {F3}{HOME}+{DOWN 4}{BACKSPACE}
    }
    return
    
    #w::
    ; Used to transfer some work in progress thing from 1 temp text file to another. Open the search box and type whatever you are looking for and search for it at least once.
    Loop 99999
    {
    WinActivate, temp1.txt - WordPad
    Send, {F3}{HOME}+{END}^x
    WinActivate, temp2.txt - WordPad
    Send, ^v
    }
    return
    
    #v::
    ; Used for temp1 to re-add lines from programmer's notepad. Open the search box and type whatever you are looking for and search for it at least once.
    Loop 10
    {
    WinActivate, temp1.txt - WordPad
    Send, {END}+{HOME}^c
    Sleep, 500
    WinActivate, %GameASMTextFile%
    Send, ^f^v{ENTER}
    Sleep, 1000
    Send, {DOWN}{END}+{HOME}^c
    WinActivate, temp1.txt - WordPad
    Sleep, 50
    Send, {END}{ENTER}^v{DOWN 2}
    }
    return
    Now instead of changing a bunch of things, I only ever need to change these 4 variables from game to game or for whatever I'm searching for:
    Game
    GameElf
    Loopcount
    ModType


    EDIT: Well, I can take back everything I said about the help file's examples being wrong for comparing strings, I found the problem. I had a test text file to try with this text:
    (r1)
    asdfhjewrjh(r1)
    (r11)
    (asdfwe)(r11)

    I made this as a script:
    #s::
    Loop 4
    {
    Send, {END}{LEFT}+{LEFT 2}
    Sleep, 500
    Send, ^c
    IfInString, clipboard, r1
    {
    msgbox, herpdederp
    }
    Sleep, 500
    Send, {DOWN}
    Sleep, 500
    }
    return

    I tried many things and every one of them failed. All I had to do was put a pause between selecting text and copying it, and that fixed everything. Days of frustration thanks to something that simple screwing it all up. Always pause in between selecting text and copying it is the lesson I learned.
    Last edited by bungholio; 12-13-2012 at 04:22 PM

  26. #26
    Join Date
    Jan 2012
    Posts
    165

    Default

    When trying to find codes it states here to search.

    0008 ble 0008 blt 0008 bge 0008 bgt
    000C ble 000C blt 000C bge 000C bgt
    0010 ble 0010 blt 0010 bge 0010 bgt
    0014 ble 0014 blt 0014 bge 0014 bgt

    does that mean to look for 000C ble or C ble so could find lines like this = 4081002C ble- ?or is it specific to what is written.OR 4081000C ble.
    many thanks.

  27. #27
    Join Date
    Jan 2012
    Posts
    165

    Default

    thanks for the reply dude.

+ Reply to Thread

Similar Threads

  1. How to use Game Genie Advanced Mode To Hack and Apply/Modify Cheats
    By Deathwing Zero in forum PS3 Save Hacking Discussion and Help
    Replies: 11
    Last Post: 01-31-2013, 10:05 PM
  2. How to use Game Genie Advanced Mode To Hack and Apply/Modify Cheats
    By Deathwing Zero in forum Hacking Discussion and Help (PS3 Only)
    Replies: 0
    Last Post: 07-25-2012, 09:56 PM
  3. Corrupted after cheats?
    By angcams in forum Hacking Discussion and Help (PS3 Only)
    Replies: 3
    Last Post: 04-04-2011, 12:54 AM
  4. How to make PS1 Cheats into PS2 cheats?
    By kuter in forum Hacking Discussion and Help (PS2 Only)
    Replies: 7
    Last Post: 04-11-2010, 03:13 PM

Posting Rules

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may edit your posts