Announcement

Collapse
No announcement yet.

(Artemis) Code Types

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Originally posted by Gtlcpimp
    I have revised the public v1.1 cheat device to ensure all of you that it is not detected. Here is a list of the revisions:

    - Increased security to prevent detection
    - Updated code commands to support 7 digit code addresses
    __ 0 - 8 Bit Constant Write
    __ 1 - 16 Bit Constant Write
    __ 2 - 32 Bit Constant Write
    __ 3 - Increment / Decrement
    __ 4 - 32-bit Multiple Address Write
    __ 5 - Copy Bytes
    __ 6 - Pointer Write
    __ C - Code Stopper
    __ D - Boolean: Half (Aka: Joker)

    -== Code Command Information ==-

    -- Constant Writes --

    Code Setup: CAAAAAAA DDDDDDDD
    C - Command
    A - Address
    D - Data

    Description:
    If not jokered, these codes are constantly writing the given data to the specified address.

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

    -- Increment / Decrement --

    8 Bit Increment
    300000nn aaaaaaaa

    8 Bit Decrement
    301000nn aaaaaaaa

    16 Bit Increment
    3020nnnn aaaaaaaa

    16 Bit Decrement
    3030nnnn aaaaaaaa

    32 Bit Increment
    30400000 aaaaaaaa
    nnnnnnnn 00000000

    32 Bit Decrement
    30500000 aaaaaaaa
    nnnnnnnn 00000000

    a = Address
    n = Amount To Increase / Decrease

    Description:
    Increments or decrements the value contained at the address by the amount of data given every time this code is applied by the cheat engine.

    -------------------------------------
    -- 32 Bit Multiple Address Write --

    4aaaaaaa wwwwssss
    dddddddd nnnnnnnn

    a = Starting Address
    w = Number Of Lines To Write
    s = Number Of Lines To Skip
    d = Data To Write
    n = Ammount To Increase Given Data By

    Description:
    Writes the given data to the address specified. It also writes the same data to as many lines specified. The data can be increased for each line, and the number of lines to write can be spaced out rather than being consecutive.

    -------------------------------------
    -- Copy Bytes --

    5fffffff nnnnnnnn
    tttttttt 00000000

    f = Address To Copy From
    t = Address To Copy To
    n = Number Of Bytes To Copy

    Description:
    Copies the given number of bytes from the first address, and writes those bytes to the second address.

    -------------------------------------
    -- Pointer Write --

    8 Bit Pointer Write
    6aaaaaaa dddddddd
    0000nnnn iiiiiiii

    16 Bit Pointer Write
    6aaaaaaa dddddddd
    0001nnnn iiiiiiii

    32 Bit Pointer Write
    6aaaaaaa dddddddd
    0002nnnn iiiiiiii

    a = Pointer Address
    d = Data To Write
    i = Number of bytes from final address to write data
    n = Number of Pointers

    Description:
    Reads the address from the given address, and writes the given data to that address. If more than one pointer are needed, then it will keep reading the address contained at the current address it has loaded for as many pointers specified (n) and write the data to the final address.

    -------------------------------------
    -- Code Stopper --

    Caaaaaaaa dddddddd

    a = Address to Read
    d = Data to Compare To

    Description:
    If the value contained at the address is equal to the data given in the code, all the codes below this line will be applied like normal. If the value is not equal to the data given in the code, then the cheat engine will exit at this line (it will not apply the codes below this point).

    ===========================


    This is just a revision, and the program is still in its BETA state.

    Further Updates:

    - More binary code list files can be stored on the memory card
    - Code manager will be updated to produce the full CheatersLounge folder for indexing support
    - Binary code lists are listed through an index file for fast listings of multiple code lists on the PS2
    - On-Screen code list selection for selecting a certain code list rather than being forced to load a specific code list




    Instructions:

    1) Build the binary code lists with the code manager program (you all should know how to use that by now).
    2) Open the index builder program, it is named "Cheaters Lounge Index Builder v1.0.exe"
    3) Either drag the binary code lists to the list box, or click "Add" to add them (You can only add 1 at a time).
    4) Title each Code List to whatever name you like.
    5) Ensure that all the binary code lists you added are inside the folder named "CheatersLounge".
    6) When finished building the index list, click "Save Index" (be sure you save it inside the folder named "CheatersLounge").
    7) Follow the commonly known steps to copy the full folder named "CheatersLounge" to your PlayStation 2's memory card.
    8) Load the cheat device on your PlayStation 2, it is named "CL-CheatsEngine_PUBLIC_v1.2.elf" (This can be loaded off of a USB Flash Drive, and does not need to be placed on the memory card).
    9) Select the list you wish from the on-screen title list, press X to load the list, and then press Square to launch the game when you are ready.

    If you want to edit an existing index file, you can simply open the index by clicking the "Open Index" button and selecting the "listindex.ini" file you want to edit.

    You may download it here: http://cheaterslounge.org/downloads/...UBLIC_v1.2.rar

    ~ Gtlcpimp
    Link: http://forums.cheaterslounge.org/vie...hp?f=79&t=1094

    Just something I already have completed and working... The commands were based off of what I saw on Code Masters Project...
    Last edited by Gtlcpimp; 07-22-2009, 01:01:38 AM.

    Comment


    • #17
      Yes, and CMP got most of the information from me...

      Comment


      • #18
        Implemented code type 3 (increment/decrement) and added it to the list.

        Comment


        • #19
          With type 6 ("pointer write"), has anybody ever seen such a code where @n - the number of times to point - is greater than 1?

          6-aaaaaaa vvvvvvvv
          0002nnnn iiiiiiii

          If not, we could leave it out and only support @n = 1.

          Comment


          • #20
            One of the things that always bothered me about the PS2 jokers on CB, etc was that the value being checked had to be 16-bit. That's fine for pad reads, but pad reads aren't the only reason to use a joker. Lookig at yours, I don't see a way to make a distinction between 8 and 16 bit if you only want 8 bits tested either.

            What about a slide code? I was introduced to those on GBA. I think they're pretty nice for ASM hacks. You specify the address and number of bytes to write, then follow it with every byte to be written. The difference between this and a serial repeater is that you specify EVERY byte to be written, not just increment. Like...

            Code:
            ?aaaaaaa 0000zzzz
            XXXXXXXX XXXXXXXX
            XXXXXXXX XXXXXXXX
            XXXXXXXX XXXXXXXX
            
            a = start address
            z = # of bytes
            X = bytes to write
            
            ?01C0120 00000018
            3C020204 2402ABCD
            50410001 AC020000
            03E00008 AC410478
            
            would write:
            001C0120 3C020204
            001C0124 2402ABCD
            001C0128 50410001
            001C012C AC020000
            001C0130 03E00008
            001C0134 AC410478
            Last edited by Viper187; 07-22-2009, 08:59:32 AM.

            Comment


            • #21
              I don't really understand the problem with 8 and 16 bit tests; the D code type supports both. Please give me an example.

              As for your "slide code", this is the same as Xploder's "mod code" in the good old PSX days. I'll keep it in mind. Thanks.

              Comment


              • #22
                If we wanted to implement 32-bit conditionals, we'd have to do so with a different code type for each conditional, wouldn't we? For example, there would be a code type for greater than, less than, equal to, not equal to, greater than or equal to, less than or equal to, within a range, etc...
                I may be lazy, but I can...zzzZZZzzzZZZzzzZZZ...

                Comment


                • #23
                  No, you can actually combine many D codes to do more sophisticated tests by setting @n to the right value.

                  Implemented code type 6 (pointer write) and added it to the list.

                  Comment


                  • #24
                    So you can use, say, two 16-bit conditionals to achieve one 32-bit, eg:

                    Code:
                    D00802CC 08001234
                    D00802D0 07005678
                    200802CC 8C860000
                    200802D0 10C00033
                    200802D4 00050C02
                    200802D8 00C13021
                    200802DC 10000030
                    200802E0 A4C50000
                    100800BC 00000083
                    ...and this would accomplish, "If 802CC contains the value 1234, AND 802D0 contains 5678, then do the remaining 7 lines"? (perhaps I should change the 8 in the first conditional to a 1...I'm not sure)
                    I may be lazy, but I can...zzzZZZzzzZZZzzzZZZ...

                    Comment


                    • #25
                      Your example is absolutely correct.

                      Comment


                      • #26
                        Originally posted by misfire View Post
                        I don't really understand the problem with 8 and 16 bit tests; the D code type supports both. Please give me an example.

                        As for your "slide code", this is the same as Xploder's "mod code" in the good old PSX days. I'll keep it in mind. Thanks.
                        Ah. I didn't see the 0/1 in your D code type listing there when I first looked. You're good. With CB, there wasn't a distinction, it always loaded a 16-bit value from the address to compare with.

                        Comment


                        • #27
                          AFAIK, the 8-bit compare was introduced in CodeBreaker V7.

                          Comment


                          • #28
                            Now that the most important code types have been implemented, it's time for testing them thoroughly. I've written a simple test driver program which checks the basic functionality, and I'm sure we can fix remaining bugs when the cheat engine goes public next week.

                            The engine is now in feature freeze. No more new code types will be added until after release. On top of my to-do list are bungholio's extension for the 4 code type and Viper's mod code.

                            Comments on the code types are still welcome, of course.

                            Comment


                            • #29
                              Cool; I'm looking forward to doing some testing.
                              I may be lazy, but I can...zzzZZZzzzZZZzzzZZZ...

                              Comment


                              • #30
                                I'll also be interested to see what format you're storing the code DB in. We were talking about it in IRC last night. LB said it was going to be plain text, which could be good. I have to wonder about the processing time needed to parse a large ASCII file though. I wouldn't expect you to miss a detail like that, but I thought I'd mention it. I'm fairly sure the GS Pro code list was compiled by the PC app and sent to the console as binary. Whatever the case, I bet your cheat engine will beat the shit out of CB and AR.

                                Comment

                                Working...
                                X