Announcement

Collapse
No announcement yet.

(Artemis) Code Types

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

  • #61
    Now you can finally take a look at the cheat engine and send me patches.

    https://svn.bountysource.com/artemis...ngine/engine.S

    Comment


    • #62
      I think later I should release one of the older versions of the cheat engine used in non-released cheat devices I wrote (basically test engines that work like a charm and are actually well designed).

      Comment


      • #63
        For the pointer write.

        6-aaaaaaa vvvvvvvv
        TTLL0000 iiiiiiii

        "LL" is your length. 0 = 1 byte, 1 = 2 bytes, or 2 = 4 bytes.
        "TT" is your type. 00 = normal constant write, 01 = OR, 02 = AND, and 03 = XOR.
        July 7, 2019

        https://www.4shared.com/s/fLf6qQ66Zee
        https://www.sendspace.com/file/jvsdbd

        Comment


        • #64
          Originally posted by misfire View Post
          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.
          I never use higher than 1 anyway
          Originally posted by bungholio View Post
          For the pointer write.

          6-aaaaaaa vvvvvvvv
          TTLL0000 iiiiiiii

          "LL" is your length. 0 = 1 byte, 1 = 2 bytes, or 2 = 4 bytes.
          "TT" is your type. 00 = normal constant write, 01 = OR, 02 = AND, and 03 = XOR.
          you are missing the point of 6 type code (no pun intend)

          does offset /offdirect writing only

          the thing you want is do a subroutine codes like ones Skiller does
          Last edited by lee4; 08-09-2009, 02:17:01 AM. Reason: typos
          lee4 Does Not Accept Codes Requests !
          When lee4 asks a question it does not mean lee4 will look at your game
          *How to create and use SegaCD codes >click here<*
          >)

          Comment


          • #65
            the 6type code is good .. and yes some games do need Double pointer but most ppl will just build there own Sub codes ..

            Like i was stating befor a copybytes code with the add on of Copy fromPointer address would be very helpfull in collection type games like Taito and so on .

            U know another Usefull Code type would be one that Alows u to Copy From within a pointer

            5-sssssss nnnnnnnn
            0ddddddd z0XXXXXX

            s = address to copy from (25 bits)
            n = number of bytes to copy (32 bits)
            d = address to copy to (25 bits)
            Z = 1 = Read Address as pointer 0 = Dont Use
            X = Offset (24bits)

            THis would alow u to make Activators for games with moving Memory .. and your activator is in that memsection ..

            Example:
            5036AED4 00000001
            000A0000 100002EC


            (0036AED4 = Value 01000000 Above code would Read that then go to 010002EC and Read the value Starting from that address and then copy it to 000A0000)

            This would have made My help with Hacking Pgen (Homebrew EMU for GEN) alot easyer

            For If you like what i do

            Comment


            • #66
              Thank you for all of your suggestions.

              At the moment, I'm quite busy with non-engine related stuff like merging Jimmi's work, but I promise that no idea gets lost.

              Comment


              • #67
                some idea's on unused codetypes as of yet

                8. Add word to specified address constant write

                80123456 00000002

                adds 0002 hex to a specified address one time only at a constant write

                example: value of the address 0102 + 0002 = 0104. value changes to 0108 by some in game change + 0002 = 010A

                A and B codetypes should be the greater then less then conditional codetypes

                Comment


                • #68
                  @ DarkSerge

                  I doubt that would ever happen. You could achieve that effect in 3 to 4 lines with 2 jokers, like:
                  D042dac6 00400310 (L2 + R2 + Up)
                  D042dac6 0000FEEF (L2 + Up)
                  30200002 00123456
                  That should increase a value 1 time, but wouldn't be a constant write.
                  July 7, 2019

                  https://www.4shared.com/s/fLf6qQ66Zee
                  https://www.sendspace.com/file/jvsdbd

                  Comment


                  • #69
                    Originally posted by Skiller View Post
                    Like i was stating befor a copybytes code with the add on of Copy from Pointer address would be very helpfull in collection type games like Taito and so on .

                    U know another Usefull Code type would be one that Alows u to Copy From within a pointer

                    5-sssssss nnnnnnnn
                    0ddddddd z0XXXXXX

                    s = address to copy from (25 bits)
                    n = number of bytes to copy (32 bits)
                    d = address to copy to (25 bits)
                    Z = 1 = Read Address as pointer 0 = Dont Use
                    X = Offset (24bits)

                    THis would alow u to make Activators for games with moving Memory .. and your activator is in that memsection ..

                    Example:
                    5036AED4 00000001
                    000A0000 100002EC


                    (0036AED4 = Value 01000000 Above code would Read that then go to 010002EC and Read the value Starting from that address and then copy it to 000A0000)

                    This would have made My help with Hacking Pgen (Homebrew EMU for GEN) alot easyer
                    This is very good idea

                    better than you previous suggested with Hi and Lo RAM non-sense.
                    lee4 Does Not Accept Codes Requests !
                    When lee4 asks a question it does not mean lee4 will look at your game
                    *How to create and use SegaCD codes >click here<*
                    >)

                    Comment


                    • #70
                      Originally posted by bungholio View Post
                      @ DarkSerge

                      I doubt that would ever happen. You could achieve that effect in 3 to 4 lines with 2 jokers, like:
                      D042dac6 00400310 (L2 + R2 + Up)
                      D042dac6 0000FEEF (L2 + Up)
                      30200002 00123456
                      That should increase a value 1 time, but wouldn't be a constant write.
                      The idea of that was to make a codetype that would make togglers(press a button to toggle thru items etc) much shorter. Another idea I had is an enhanced Increase/decrease codetype where you can set the timing it Increases/decreases in milliseconds. An example of this would be:

                      Increase the address 00123456 by 5 every 1000 milliseconds
                      30000001 00123456
                      00000000 00001000

                      Increase the adresss 00123456 by 1193046 every 1500 milliseconds
                      30400000 00123456
                      00123456 00001500

                      of course setting the value to 0 means instant increase or decrease

                      Comment


                      • #71
                        Such timer codes are hard to implement because the master code defines how often the cheat engine loop is executed per second.

                        I guess it would be possible using hardware timers as long as the game doesn't modify them... IMHO, it's not worth the trouble.

                        Comment


                        • #72
                          the F codetype should be used as a Game identifier codetype so that in the future when Artimis has support for HDloader or whatever codes won't activate while in HDloader. Example

                          f0xxxxxx 00000000 where x is the games Identification code. Which could be the slus or whatever. In other words this is a master code or something like that..

                          Comment


                          • #73
                            Originally posted by DarkSerge View Post
                            the F codetype should be used as a Game identifier codetype so that in the future when Artimis has support for HDloader or whatever codes won't activate while in HDloader. Example

                            f0xxxxxx 00000000 where x is the games Identification code. Which could be the slus or whatever. In other words this is a master code or something like that..
                            that is whole proposes of "9 codetype" which is already incorporated.
                            in Madcatz GSv3+, XPv4+, CBv6+ and (Artemis) Cheat System
                            Last edited by lee4; 08-11-2009, 06:17:03 PM.
                            lee4 Does Not Accept Codes Requests !
                            When lee4 asks a question it does not mean lee4 will look at your game
                            *How to create and use SegaCD codes >click here<*
                            >)

                            Comment


                            • #74
                              Originally posted by DarkSerge View Post
                              The idea of that was to make a codetype that would make togglers(press a button to toggle thru items etc) much shorter. Another idea I had is an enhanced Increase/decrease codetype where you can set the timing it Increases/decreases in milliseconds. An example of this would be:

                              Increase the address 00123456 by 5 every 1000 milliseconds
                              30000001 00123456
                              00000000 00001000

                              Increase the adresss 00123456 by 1193046 every 1500 milliseconds
                              30400000 00123456
                              00123456 00001500

                              of course setting the value to 0 means instant increase or decrease
                              Demon Slot 1-Hold L1, Then Press Right Or Left
                              E0060000 000C0000
                              E002FBDF 0058F0C2
                              100C0000 00000001
                              30200001 01249308
                              E002FB7F 0058F0C2
                              100C0000 00000001
                              30300001 01249308
                              E001FBFF 0058F0C2
                              100C0000 00000000

                              best way to use the Incrament code is like this this will make it so it only goes up or down by 1
                              if u just use a joker and it will add alot to it .. since the Cheat divice is called alot of times per sec

                              For If you like what i do

                              Comment


                              • #75
                                Increment/Decrement codes are funny things. They're almost useless by themselves, but attempts to make them useful as standalone codes run into complications pretty quickly.

                                Like Misfire already said, timing is quirky. If you look at the references for the B code type, which is an honest-to-goodness attempt at a timer, you'll see no one claims that a value of X will give you a delay of two seconds. It's just a value that decrements every time the code executes, so 0x10000 could reduce to zero in half a second or a minute depending on a few variables. You could do something like that with timers inherent to the 3 code type, but you'd have to explain pretty loudly that the actual amount of elapsed wall-clock time will vary greatly from game to game. Of course, then there's the fact that there isn't likely to be much more value in a code type that increments every second versus one that increments every millisecond. Further, unless it stores the "timer", or the original countdown value somewhere other than in the code, it's going only going to countdown once. That's what the B code type does. Once it reaches zero, it's done forever. Again, there are things you could do to get around it, e.g. leaving empty space in the code for the actual timer; dicey methods of "dynamically" allocating space to a timer, at addresses chosen by the cheat engine or the user; and limiting the user to a fixed number of active timers. But how much value would that really add for the effort involved?

                                If someone wanted to, they could probably make it more useful by making a pad activator inherent to the Increment/Decrement code type. You still have most of the problems of tracking a timer because, you'd have to track the input ("debouncing" for lack of a better term). So by the time you've made a "simplified" replacement for Skiller's 9-line code above, it could be done in 4-6 lines, depending on how you implement the type in the engine. Again, not a lot of bang for the work involved. And just for fun, you foist a more complicated conversion on the users, and you rob them of some freedom with the code type. Well, unless you go to the hassle of adding a switch to indicate whether the new fields are used, and add logic to somehow ensure the code is always executed on each pass when the new fields are absent. And if you do that, you have to be careful that your method allows the D and E type codes that may come before to work properly.

                                Ugh.

                                As much as I believe the Increment/Decrement code type is gimpy, I think we're stuck with it as-is.

                                I'm sorry for the length. I just thought it might be helpful to show the sort of complications an idea that seems great and simple can produce.

                                Comment

                                Working...
                                X