Announcement

Collapse
No announcement yet.

IS there any example/guide for disabling collision detection?

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

  • IS there any example/guide for disabling collision detection?

    As Subject suggested,I need to know how to disable collision detection in emulated games(Magic-engine most of times.) in order to make perfect invincibility cheat code.
    Is there any guide or example for creating this type of cheat?
    Thanks in advance.

  • #2
    I found a guide. It does not talk about emulators, but talks about the PS2. Maybe it can help you.

    Hacking a walk through walls code involves locating the game's clipping routines, which can often be very spread-out and embedded deep in the physics engine. This theory will focus on 3D games, but much of it can also be applied to many 2D games. 2D games simply lack a Z axis.

    Locating the clipping routines may take a few different steps, depending upon the game and how it was programmed. Locating the main character's coordinates is the best place to start. Coordinates can be found with a simple 32-bit unknown search. With 3D games, there are always three coordinates named "X", "Y", and "Z". The Y coordinate is the usually easiest to find because no matter which way the character or "camera" are facing, the Y axis is always up-and-down.

    Reference Position Modifiers for more information on locating coordinates.

    Coordinates are almost always placed in memory in order; the Y coordinate will appear between the X and Z coordinates. This idea can be exploited to locate all three coordinates after finding just one of them. Once the X and Z coordinates have been pin-pointed, these can be used to locate the clipping routines.

    The second step requires a write watchpoint on either the X or Z coordinate. Choosing which coordinate to use is entirely up to the hacker, as they will typically both lead to the same routines. Setting a breakpoint on one of the coordinates will usually cause a break right away, even with the main character standing completely still. If the break-causing store instruction is disabled, sometimes additional breaks will occur. It is wise to keep a list of all addresses which cause breaks without moving, and the instruction data they contain. This makes it easy to re-enable the instruction later. As soon as there are no other breaks occuring while the main character is standing still, this step is complete.

    The next step requires checking if any breaks occur while walking in an open area, without touching any walls. Most of the character control routines have already been disabled, by this point, and in most cases the main character should be "stuck" walking along only one axis. However, in a few other cases, a break will occur as soon as the main character begins to move. If this happens, the instructions causing these breaks must also be disabled. When the main character is able to glide peacefully along a single axis, the only breaks occuring should be when the main character hits a wall.

    With all of the character controlling routines disabled, walking into any wall should cause a break as the physics engine is attempting to clip the character's forward movement against the wall while retaining lateral movement (to "slide" against the wall when hit at an angle). This works because most physics engines want to adjust the coordinate for clipping (the one which was disabled for standard control) separately from the standard control routines. (Note that not all games will exhibit this behavior. For such games, the clipping will be done before the standard control routines write to the coordinates.)

    At this point, the first clipping routine has been located. Disabling it (either by disabling the single instruction with a NOP instruction, or by branching over the write or the entire routine if it can be done safely) should result in one of two possibilities: The character will either move through the wall, or yet another break will occur. In the case of the former, the code has been found (or at least one part for one of the two axes). For the latter, these clipping routines can be consecutively disabled, with each new routine found becoming another part of the completed code; all clipping routines must be disabled for both the X and Z axes.

    That concludes the basic rundown for walk through walls codes. To recap: Locate the clipping routines by disabling the standard controlling routines. Then disable those clipping routines. Test the game with the clipping routines disabled by re-enabling all of the standard controlling routines, or simply by resetting the console with the clipping-disabling codes enabled.
    The Hackmaster

    Comment


    • #3
      I can remember the barbaric method I used for Silent Hill 2. I first found the player position modifier. Then I made a dump of the game. I then opened the dump in PS2Dis and checked what referrers there were to the player position modifiers. Whatever function referred to it, I canceled. I found it within the first 2 results when I noticed I could go through any wall.

      What system and game are you looking for?
      July 7, 2019

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

      Comment


      • #4
        OP: is asking how to find invincibility code

        OP: is asking how to find invincibility code

        Originally posted by bshi02 View Post
        As Subject suggested,I need to know how to disable collision detection in emulated games(Magic-engine most of times.) in order to make perfect invincibility cheat code.
        Is there any guide or example for creating this type of cheat?
        Thanks in advance.
        when you not hit the value is zero
        when you are hit and your character/airship is flashing the value is higher than zero
        when your character/airship stop flashing value is back to zero
        Last edited by lee4; 02-05-2012, 02:43:22 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


        • #5
          There's another barbaric method for that. Find where your health is located. Make a dump of the game. Open the dump in PS2Dis and invoke the analyzer. Go to health and check what there is for referrers. For any referrer, cancel that entire function. If that doesn't do the trick, find the functions that refer to those functions and delete them. Usually somewhere along the line you'll find one where you won't react to harm.
          July 7, 2019

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

          Comment


          • #6
            This is a Hacking Untouchable/Invincibility guide I wrote a while back that describes a few different methods (depending on what game your playing). Things can be very simple, or very complicated just depending on how the programmers decided to program those routines (things are easy usually if you have an invincibility state to work with). I hope that helps.
            Not taking any requests at this time.

            Bored? Watch some of my hacks here.

            Comment


            • #7
              Lee4, the original question was IS there any example/guide for disabling collision detection? which is what hacking a walk through walls code involves. That is why I posted that guide. Hacking the invincibility code is a secondary issue. Read the topic title before you respond to one of my posts. This is your last warning.
              The Hackmaster

              Comment


              • #8
                Originally posted by dlevere View Post
                Lee4, the original question was IS there any example/guide for disabling collision detection? which is what hacking a walk through walls code involves. That is why I posted that guide. Hacking the invincibility code is a secondary issue. Read the topic title before you respond to one of my posts. This is your last warning.
                I think it was just worded oddly up there. Here is my take on it:

                Code:
                [COLOR="#FF0000"]I need to know how to disable collision detection in emulated games(Magic-engine most of times.) in order to make perfect invincibility cheat code.[/COLOR]
                turns into:

                Code:
                [COLOR="#0000FF"]I need to know how to disable collision detection in order to make perfect invincibility cheat code.[/COLOR]
                I believe he should have worded it (eh...):

                Code:
                [COLOR="#0000FF"]I need to know how to disable hit detection in order to make the perfect invincibility cheat code.[/COLOR]
                At least his question got answered in every way possible . But I can see where the title "IS there any example/guide for disabling collision detection?" was misleading in comparison to the message body.
                Last edited by Abystus; 02-08-2012, 11:27:48 PM.
                Not taking any requests at this time.

                Bored? Watch some of my hacks here.

                Comment


                • #9
                  Which is why when posting users should be as clear as possible to avoid these confusions the next time.

                  Comment


                  • #10
                    "Last warning"? What are you going to do, ban Lee for reading an entire post, instead of just the topic title? This seems like a complete overreaction. Is there some history here or something?

                    You can't blame the OP either. Based on his phrasing, my first guess is that English isn't his primary language. His post is pretty clear to begin with, but especially so if that's true. Although, I do agree that the topic title could have been more specific. Regardless, registering hits is a specialized form of collision detection, and you can't complain that he didn't get more specific as the sentence went on.

                    Comment


                    • #11
                      Yes, there is a history. Not that it's any of your business, Pyriel.

                      I sent Lee4 a private message about a month ago asking him to keep his smart assed comments to himself, and he keeps on doing it. Now I'm making it public.

                      All anyone has to do is look at his posts over the last year, and it will prove my point. It seems that his sole purpose in life is to follow my posts and make stupid, misspelled comments about them.

                      At first I was ignoring him, but now I'm getting sick of it. Like I said before, Lee4, if you don't have anything constructive to say, don't say anything. You are famous for doing the same thing at other message boards, too. Nobody wants to hear what you have to say. I know I don't.
                      The Hackmaster

                      Comment


                      • #12
                        Well, I didn't really ask what the history was, but if your intent was to make the tiff public, you can hardly be upset that people wonder about it.

                        I realize Lee can be a little off-putting at times. That's just the way he phrases things. In this case, what he said was constructive and correct, and as far as I can tell he didn't break any rules, even if he might have used a friendlier tone. Had you just told him to piss off, it wouldn't have registered with me. However, "last warning", sounds like you intend to either ban him or hunt him down with small caliber weapons, and neither of those seems appropriate to me.

                        Out of curiosity, I skimmed through the last five or six months of his post history, and could scarcely find any threads you both participated in. Maybe the posts have been deleted; I don't know. Based on what I can see as a peon, it doesn't look like being a prick to you is his sole purpose. It just looks like you're occasionally crossing paths, and Lee being Lee grates on your nerves. There were these:

                        http://gamehacking.org/vb/threads/59...ght=#post51286
                        http://gamehacking.org/vb/threads/58...ght=#post50599

                        The second one could be interpreted as sort of directed at you, and either could be viewed as crapping on your news posts a bit, if you were inclined to take it that way. I wouldn't take them that way myself, but I can see how someone might.

                        Anyway, I don't want to drag this poor guy's topic further off the rails, so no more out of me.

                        Comment


                        • #13
                          I've said what I have to say. I agree, let's drop the subject.
                          The Hackmaster

                          Comment


                          • #14
                            I did a few of these for N64. I dunno how those guys at Galoob did it for so many older games all those years ago. My method was to trace it from health using a breakpoint on the health address being written while taking damage. Tracing it back and killing the jumps/branches until I got back far enough that the player was completely unaffected by attacks.

                            Comment


                            • #15
                              Thanks very much for your all of you who reply my thread.
                              As I have lived in korea from my birth and English is not native language in Korea, I always have a difficulty in reading especially writing any type of sentence in english.
                              I made a thread in mednafen forum because I need some debug function in order to set watch/breakpoint on health/flashing Invincibility address, and I get reply from VisitntX,but he refused to show how he found his works of invincibility code,and only recommend to make disable collision detection cheat code and use mess emulator for debugging tg16 game
                              http://forum.fobby.net/index.php?t=t...=676&#page_top
                              I intend to get more advanced technical infomation about invincibility code including "how to make disable collision detection"
                              I'm very sorry for my oddly writting thread which seems to cause some severe dispute over some members.

                              Btw,I tried to use Mess for emulating tg16/pce cd game,s I added -cheat in cmd command in order to make new cheat for faussete amour (mess tg16 -cdrom faussete -cheat),
                              I followed below url link for Cheat guide of mess emulator but there is no cheat option in mess' config option(I press F6 for making cheat enable and tab key to summon config but no cheat option in config menu)
                              http://members.shaw.ca/kelvsyc/cheatguide.html

                              How can I manipulate cheat option in mess?
                              Is there anyone who make use of cheat function in mess emulator?
                              Last edited by bshi02; 02-16-2012, 01:58:48 AM.

                              Comment

                              Working...
                              X